Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Alle Lampen aus

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    313

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.4k

Alle Lampen aus

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 1.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Offline
    A Offline
    Andre_NMB
    schrieb am zuletzt editiert von
    #1

    Hallo alle zusammen,

    ich bin gerade dabei mir was zu basteln im Bereich der Lampensteuerung.

    Geplant ist das ich einen Button in meiner VIS habe der dort dann alle Lampen ausschaltet.

    Wieso möchte ich das haben? Angedacht habe ich das, weil ich ein Tablet am Wohnungseingang habe und dort kontrollieren möchte ob alle Fenster geschlossen sind oder nicht und falls noch irgendwo ein Lampe oder ein Radio an ist, dies dann gleich am Tablet ausschalten möchte.

    Wie kann ich da anfangen?

    Habe bis jetzt zwei Gruppen/Räume welche ich steuere. Demnächst mehr.

    Die Lampen an sich kann ich schalten oder das Tablet.

    Soll einfach ein Button sein welcher ROT leuchtet wenn irgendwo eine Lampe an ist und GRÜN wenn alle aus sind.

    Oder das ganze sogar mit einenn TEXT mir anzeigt.

    Ich bin in Skripten schreiben ganz neu. Habe da null Ahnung.

    besten Dank an euch schon mal und einen schönen ersten Advent gewünscht.

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #2

      Ausschalten würde leicht gehen mit blockly, du machst dir ein object und wen das geschaltet wird führe Script aus und darin alle Lampen aus (also steuere)

      Wen du haben möchtest wen irgendeine Lampe an las sehen in vis geht das nur mit Javascript.

      Darin alle Lampen auslesen wenn irgendeines ein Status auf true

      Sent from my iPhone using Tapatalk

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        Adnim
        schrieb am zuletzt editiert von
        #3

        Hallo Andre,

        Sehe da jetzt mehrere Funktionen in deinem Post

        -einmal auswerten ob lampen an sind

        -einmal alle Steuern

        Steuern am einfachsten per Blockly.

        Auswerten würde ich mal versuchen mit dem DeviceCounter hier aus dem Forum der kann auch gleich alle anderen Zustände der Geräte Zählen und anzeigen (mit Liste):

        (Ursprünglich aus dem Forum, hier die für mich eingestellte Version):

        //Add device rules
        addDeviceCounter("lowbat",         $('channel[state.id=*LOWBAT]'),                     true);
        addDeviceCounter("lowbat",         $('channel[state.id=*lowbat]'),                      true);
        addDeviceCounter("sticky_unreach", $('channel[state.id=*.STICKY_UNREACH]'),              true);
        addDeviceCounter("unreach",        $('channel[state.id=*.UNREACH]'),                     true);
        addDeviceCounter("config_pending", $('channel[state.id=*.CONFIG_PENDING]'),              true);
        addDeviceCounter("Motion",  $('channel[state.id=*.MOTION]'),               true);
        addDeviceCounter("DutyCycle",  $('channel[state.id=*.DUTYCYCLE]'),               true);
        addDeviceCounter("Spannungsüberwachung",  $('channel[state.id=*.VOLTAGE]'),           function(state){return state<200;});
        addDeviceCounter("Auskühlschutz",  $('channel[state.id=*.ACTUAL_TEMPERATURE]'),           function(state){return state<13;});
        addDeviceCounter("ERROR",  $('channel[state.id=*.ERROR*]'),               function(state){return state>0;});
        addDeviceCounter("Heizbedarf",  $('channel[state.id=*.VALVE_STATE]'),           function(state){return state>45;});
        addDeviceCounter("Alive",         $('channel[state.id=*alive]'),                     false);
        addDeviceCounter("CONNECTED",         $('channel[state.id=*.connected]'),                     false);
        addDeviceCounter("open_shutters",  $('channel{TYPE=BLIND}[state.id=*.LEVEL]'),           function(state){return state>0;});
        addDeviceCounter("open_windows",   $('channel{TYPE=SHUTTER_CONTACT}[state.id=*.STATE]'), true);
        
        /******************************************
         * Code - do not change anything bellow this line *
         ******************************************/
        
        function addDeviceCounter(name, selector, val_to_count) {
        
            //Total amount of devices found by selector
            var state_total = 'deviceCounter.' + name + '.total';
            createState(state_total, 0);
            //List of devices that match condition
            var state_list = 'deviceCounter.' + name + '.list';
            createState(state_list, "");
            //Number of devices that match condition
            var state_counter = 'deviceCounter.' + name + '.counter';
        
            createState(state_counter, 0);
            function countDevs(obj) {
                var d_count = 0;
                var d_list  = [];
        
                selector.each(function (id, i) {
                    var status = getState(id).val;
                    var obj    = getObject(id);
                    if ((typeof val_to_count === 'function' && val_to_count(status)) ||
                        (typeof val_to_count === 'boolean'  && val_to_count == status)) {
                        //Get parent object
                        var parentChannelId = id.slice(id.lastIndexOf("."));
                        var parentDevicelId = id.split(".").slice(0,-2).join(".");
                        var deviceObject = getObject(parentDevicelId);
                        //remember device name
                        d_list.push(deviceObject.common.name);
                    }                
                    ++d_count;                                                 // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                }); 
        
        //if ("state_counter" > 0) {event(name + "(" + d_count + "): " + d_list);
        //}
        
                setState(state_list,     d_list.join('
        '));
                setState(state_counter,  d_list.length);
                setState(state_total,    d_count);
            }
        
            //Re-evaluate when a device status changes
            selector.on(function(obj) {    // bei Zustandänderung *. LOWBAT in allen Gewerken
                countDevs(obj);
            });
        
            //Re-evaluate each hour
            schedule("*/60 * * * *", countDevs);
        
            //Evaluate for the first time
            countDevs();
        }
        
        

        Frohen 1 Advent!

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          Andre_NMB
          schrieb am zuletzt editiert von
          #4

          So richtig weiter gekommen bin ich mit dem hier nicht. Habe es nicht geschafft es zu realisieren. :(

          @Adnim:

          Hallo Andre,

          Sehe da jetzt mehrere Funktionen in deinem Post

          -einmal auswerten ob lampen an sind

          -einmal alle Steuern

          Steuern am einfachsten per Blockly.

          Auswerten würde ich mal versuchen mit dem DeviceCounter hier aus dem Forum der kann auch gleich alle anderen Zustände der Geräte Zählen und anzeigen (mit Liste):

          (Ursprünglich aus dem Forum, hier die für mich eingestellte Version):

          //Add device rules
          addDeviceCounter("lowbat",         $('channel[state.id=*LOWBAT]'),                     true);
          addDeviceCounter("lowbat",         $('channel[state.id=*lowbat]'),                      true);
          addDeviceCounter("sticky_unreach", $('channel[state.id=*.STICKY_UNREACH]'),              true);
          addDeviceCounter("unreach",        $('channel[state.id=*.UNREACH]'),                     true);
          addDeviceCounter("config_pending", $('channel[state.id=*.CONFIG_PENDING]'),              true);
          addDeviceCounter("Motion",  $('channel[state.id=*.MOTION]'),               true);
          addDeviceCounter("DutyCycle",  $('channel[state.id=*.DUTYCYCLE]'),               true);
          addDeviceCounter("Spannungsüberwachung",  $('channel[state.id=*.VOLTAGE]'),           function(state){return state<200;});
          addDeviceCounter("Auskühlschutz",  $('channel[state.id=*.ACTUAL_TEMPERATURE]'),           function(state){return state<13;});
          addDeviceCounter("ERROR",  $('channel[state.id=*.ERROR*]'),               function(state){return state>0;});
          addDeviceCounter("Heizbedarf",  $('channel[state.id=*.VALVE_STATE]'),           function(state){return state>45;});
          addDeviceCounter("Alive",         $('channel[state.id=*alive]'),                     false);
          addDeviceCounter("CONNECTED",         $('channel[state.id=*.connected]'),                     false);
          addDeviceCounter("open_shutters",  $('channel{TYPE=BLIND}[state.id=*.LEVEL]'),           function(state){return state>0;});
          addDeviceCounter("open_windows",   $('channel{TYPE=SHUTTER_CONTACT}[state.id=*.STATE]'), true);
          
          /******************************************
           * Code - do not change anything bellow this line *
           ******************************************/
          
          function addDeviceCounter(name, selector, val_to_count) {
          
              //Total amount of devices found by selector
              var state_total = 'deviceCounter.' + name + '.total';
              createState(state_total, 0);
              //List of devices that match condition
              var state_list = 'deviceCounter.' + name + '.list';
              createState(state_list, "");
              //Number of devices that match condition
              var state_counter = 'deviceCounter.' + name + '.counter';
          
              createState(state_counter, 0);
              function countDevs(obj) {
                  var d_count = 0;
                  var d_list  = [];
          
                  selector.each(function (id, i) {
                      var status = getState(id).val;
                      var obj    = getObject(id);
                      if ((typeof val_to_count === 'function' && val_to_count(status)) ||
                          (typeof val_to_count === 'boolean'  && val_to_count == status)) {
                          //Get parent object
                          var parentChannelId = id.slice(id.lastIndexOf("."));
                          var parentDevicelId = id.split(".").slice(0,-2).join(".");
                          var deviceObject = getObject(parentDevicelId);
                          //remember device name
                          d_list.push(deviceObject.common.name);
                      }                
                      ++d_count;                                                 // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  }); 
          
          //if ("state_counter" > 0) {event(name + "(" + d_count + "): " + d_list);
          //}
          
                  setState(state_list,     d_list.join('
          '));
                  setState(state_counter,  d_list.length);
                  setState(state_total,    d_count);
              }
          
              //Re-evaluate when a device status changes
              selector.on(function(obj) {    // bei Zustandänderung *. LOWBAT in allen Gewerken
                  countDevs(obj);
              });
          
              //Re-evaluate each hour
              schedule("*/60 * * * *", countDevs);
              
              //Evaluate for the first time
              countDevs();
          }
          
          

          Frohen 1 Advent! `

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          340

          Online

          32.5k

          Benutzer

          81.7k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe