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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Frage zu Licht Aus Script

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Frage zu Licht Aus Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
21 Beiträge 8 Kommentatoren 5.8k Aufrufe 1 Watching
  • Ä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.
  • blauholstenB Offline
    blauholstenB Offline
    blauholsten
    Developer
    schrieb am zuletzt editiert von
    #7

    Hi,

    Das sollte reichen….

    on(irgend eine Veränderung, function() {mache irgend was();});
    

    Entwickler vom: - Viessman Adapter
    - Alarm Adapter

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      mctom
      schrieb am zuletzt editiert von
      #8

      Hallo zusammen,

      so jetzt läuft es:

      // -----------------------------------------------
      // Variable
      // -----------------------------------------------
      
      createState('Licht.ausschalten.EG',false);
      var idTrigger = "javascript.0.Licht.ausschalten.EG"/*Licht.ausschalten.EG*/;
      
      // -----------------------------------------------
      // Trigger
      // -----------------------------------------------
      on(
          {
          id: idTrigger,
          val: true
          }, 
      
      // -----------------------------------------------
      // Aktion
      // -----------------------------------------------    
          function (obj) 
          {
              var idx = 0;
              var interval = 300;
      
              $('channel[state.id=*.STATE](functions=Licht-EG)').each(function(id,i) {
                  if (getState(id).val) setStateDelayed(id, false, (idx++) * interval); 
              });
      
              $('channel[state.id=*.LEVEL](functions=Licht-EG)').each(function(id,i) {
                  if (getState(id).val > 0) setStateDelayed(id, 0, (idx++) * interval);
              });
      
              setTimeout(function () {
                  setState(idTrigger, false, true);
              }, 2000);
      
              log('Alle Schalter und Dimmer im Erdgeschoss abgeschaltet');
          }
      );
      
      

      Danke an alle für die Hilfe.

      Gruß

      Michael

      1 Antwort Letzte Antwort
      0
      • E Offline
        E Offline
        ehome
        schrieb am zuletzt editiert von
        #9

        70/30 Fehler ….

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          mctom
          schrieb am zuletzt editiert von
          #10

          Hi,

          Du hast in deinem Script nur Licht-innen stehen.

          Probier es doch mal mit: functions=Licht-innen

          Gruß

          Michael

          1 Antwort Letzte Antwort
          0
          • E Offline
            E Offline
            ehome
            schrieb am zuletzt editiert von
            #11

            Hallo Michael,

            manchmal sieht man den Wald vor lauter Bäumen nicht.

            Es lag an der CCU, habe mittlerweile so viel Zeugs, dass sie es kaum noch schafft. Hatte die neuen Gewerke mit HQ WebUI angelegt und zugeordnet. Nach einem reboot lief dann alles auch mit "Licht-innen"

            Gruß

            Olli

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              pix
              schrieb am zuletzt editiert von
              #12

              @ehome:

              70/30 Fehler …. `
              Was war denn hier die ursprüngliche Antwort?

              Pix

              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

              1 Antwort Letzte Antwort
              0
              • E Offline
                E Offline
                ehome
                schrieb am zuletzt editiert von
                #13

                nein.

                es sollte nur heissen, dass 70% der Fehler 30 cm vor dem Bildschirm zu finden sind …..

                Da meine Frage aufgrund eines Übertragungsfehlers unsinnig war habe ich sie gelöscht um nicht Verwirrung zu stiften :(

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  Dburner
                  schrieb am zuletzt editiert von
                  #14

                  Moin zusammen,

                  muss dieses Thema nochmal aufwärmen: ich habe versucht, dass Skript von mctom per copy-paste auch bei mir zum Laufen zu bekommen. Dachte wenn ich lediglich "Licht-EG" gegen "Licht" tausche (in dem Gewerk stecken bei mir alle Lichter) müsste es doch gehen, aber leider passiert nichts. Habe das Skript einfach als einzelnes Skript im Adapter angelegt und manuell gestartet als Test. Glaube irgendwas habe ich da grundsätzlich noch nicht verstanden, für jede Hilfe bin ich dankbar.

                  Ziel ist es übrigens, dass ganze am Ende in einem Blockly Skript zum Haus verlassen zu nutzen…falls es da auch eine Möglichkeit gibt, dass direkt in Blockly zu realisieren, wäre das fast noch besser.

                  Gruß

                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #15

                    Hallo Dburner,

                    du hast ja die Gewerk-Bezeichnung schon korrekt geändert. Jetzt ist wichtig, dass die Javascript-Adapter-Instanz aktiviert ist und das Skript im Skripteditor unter Javascript (nicht coffee) abgespeichert ist. Das Skript muss auch aktiviert sein (statt rotem Dreieck, grüner Pause Knopf).

                    Falls du eine andere Instanz verwendest, kannst du diese Zeile

                    var idTrigger = "javascript.0.Licht.ausschalten.EG"/*Licht.ausschalten.EG*/;
                    ````durch diese ersetzen````
                    var idTrigger = "javascript." + instance + ".Licht.ausschalten.EG"/*Licht.ausschalten.EG*/;
                    

                    Um das Licht nun auszuschalten, muss dieses Objekt hinter dem Namen idTrigger per VIS oder Admin oder sonst wie dann auch auf true gesetzt werden. Beim Skriptstart passiert nix.

                    Gruß

                    Pix

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      Dburner
                      schrieb am zuletzt editiert von
                      #16

                      Läuft, vielen Dank!

                      1 Antwort Letzte Antwort
                      0
                      • AlCalzoneA Offline
                        AlCalzoneA Offline
                        AlCalzone
                        Developer
                        schrieb am zuletzt editiert von
                        #17

                        @mctom:

                        So jetzt versteh ich die Welt nicht mehr…

                        
                        [...]
                        
                        on({
                            id: "javascript.0.Licht.ausschalten.EG"/*Licht.auschalten.EG*/,
                            val: true
                        }, licht_aus());
                        
                        

                        So habe ich das Script jetzt eingefügt.

                        Wenn ich das Script speichere werden sofort alle Lichter ausgeschaltet […] `

                        Typischer JavaScript-Fallstrick. Die on-Funktion erwartet eine Funktion, die sie aufrufen soll, wenn der Trigger ausgelöst wird. Also so

                        on({Auslöser}, function() {...});
                        
                        

                        oder

                        on({Auslöser}, callback); 
                        
                        

                        Aber NICHT so:

                        on({Auslöser}, callback()); 
                        
                        

                        Der Callback ist ein Verweis auf eine Funktion, in JavaScript ist das der Name der Funktion ohne Klammern dahinter.

                        Dein Code entspricht letztem Fall. Hier wird callback() sofort aufgerufen (deswegen gehen deine Lichter aus) und erwartet, dass der Rückgabewert dieser Funktion selbst eine Funktion ist. Diese zurückgegebene (oder in deinem Fall nicht zurückgegebene) Funktion würde dann jedesmal aufgerufen, wenn der Trigger ausgelöst wird.

                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                        1 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          Dburner
                          schrieb am zuletzt editiert von
                          #18

                          Hallo,

                          wollte das "Licht aus" Skript in ein "Licht an" Skript umschreiben. Meine Dimmer werden bei auslösen des Triggers auch auf 100% geschaltet, allerdings werden die anderen Lichter nicht auf "true" gesetzt.

                          Kann mir vielleicht jemand helfen?

                          Besten Dank!

                          Danke, hat sich gerade erledigt. Bei der Abfrage muss natürlich noch ===false hin:

                          if (getState(id).val === false) setStateDelayed(id, true, (idx++) * interval);

                          // -----------------------------------------------
                          // Variable
                          // -----------------------------------------------
                          
                          createState('Licht anschalten',false);
                          var idTrigger = "javascript.0.Licht anschalten"/*Licht anschalten*/;
                          
                          // -----------------------------------------------
                          // Trigger
                          // -----------------------------------------------
                          on(
                              {
                              id: idTrigger,
                              val: true
                              }, 
                          
                          // -----------------------------------------------
                          // Aktion
                          // -----------------------------------------------    
                              function (obj) 
                              {
                                  var idx = 0;
                                  var interval = 300;
                          
                                  $('channel[state.id=*.STATE](functions=Licht)').each(function(id,i) {
                                      if (getState(id).val) setStateDelayed(id, true, (idx++) * interval); 
                                  });
                          
                                  $('channel[state.id=*.LEVEL](functions=Licht)').each(function(id,i) {
                                      if (getState(id).val < 100) setStateDelayed(id, 100, (idx++) * interval);
                                  });
                          
                                  setTimeout(function () {
                                      setState(idTrigger, false, true);
                                  }, 2000);
                          
                                  log('Alle Schalter und Dimmer angeschaltet');
                              }
                          );
                          
                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            adlerauge1980
                            schrieb am zuletzt editiert von
                            #19

                            Hallo Zusammen

                            Habe das Script so übernommen und "nur den teil "functions=Licht-EG" in rooms=eg geändert.

                            Dann in Vis ein HQWidgets - On / Off eingefügt, unter objekt id: script.js.licht_eg_aus eingefügt. und bei Extrasteuerung Wert für ID bei true: true

                            Was ich noch nicht verstehe (vermutlich klemmt es genau da), für was benötigt es diese Variable??:

                            // -----------------------------------------------
                            // Variable
                            // -----------------------------------------------
                            
                            createState('Licht.ausschalten.EG',false);
                            var idTrigger = "javascript.0.Licht.ausschalten.EG"/*Licht.ausschalten.EG*/;
                            script.js.licht_eg_aus
                            
                            1 Antwort Letzte Antwort
                            0
                            • cashC Offline
                              cashC Offline
                              cash
                              Most Active
                              schrieb am zuletzt editiert von
                              #20

                              Zum schalten. Wenn Du die Variable auf true änderst wird das Licht ausgeschaltet.

                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                adlerauge1980
                                schrieb am zuletzt editiert von
                                #21

                                hmm ok

                                und in welchem bezug, also zu was steht 'licht.aussschalten.EG' muss ich das irgend wo definiert haben?

                                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

                                478

                                Online

                                32.4k

                                Benutzer

                                81.4k

                                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