Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Blockly
  5. Verstehe die Fehlermeldung nicht

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    500

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    405

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    985

Verstehe die Fehlermeldung nicht

Geplant Angeheftet Gesperrt Verschoben Blockly
18 Beiträge 3 Kommentatoren 1.1k Aufrufe 2 Beobachtet
  • Ä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.
  • M Matze78

    Hallo zusammen,
    nachdem mir meine Sonoff´s nun 4 Jahre auf die Nerven gegangen sind habe ich sie alle aus den Wänden gerupft und durch Shelly´s ersetzt. Die fühlen sich direkt wertiger an - viel weniger "verbastelt".
    Wie auch immer - ich habe mir direkt einen neuen 1PM an meinem Schuppenlicht angeschlossen. Also Bewegungsmelder an Eingang, Strahler ans Relais, Eingang als detached markiert und das aktuelle Außenbeleuchtungs-Script angepasst.
    Leider läuft es nicht, und den Fehler kann ich nicht nachvollziehen. Das Script sagt mir:

    javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: setForeignState(id=shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch, state={"val":false,"ack":false,"ts":1662316800011,"q":0,"from":"system.adapter.javascript.0","lc":1662314400074,"c":"script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
    

    Ich bin alle Objekte nochmal durchgegangen, finde den Fehler aber nicht. Die Bezeichner sind alle richtig. So sieht mein Script in JS aus:

    var Nacht, Nacht1, IstNacht, Nacht2, HintertuerAn;
    
    
    schedule({astro: "sunriseEnd", shift: 10}, async function () {
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
      }
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
      }
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
      }
      IstNacht = false;
      HintertuerAn = false;
    });
    schedule({astro: "sunsetStart", shift: -10}, async function () {
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
      }
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
      }
      IstNacht = true;
      HintertuerAn = true;
    });
    Nacht = schedule('*'.toString().trim() + ' ' + '2'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
      }
    });
    Nacht1 = schedule('*'.toString().trim() + ' ' + '20'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
      }
      HintertuerAn = false;
    });
    Nacht2 = schedule('30'.toString().trim() + ' ' + '6'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
      }
      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
        HintertuerAn = true;
      }
    });
    if (getState(IstNacht).val == true) {
      if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == true) {
        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
          setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, true);
          if (getState(HintertuerAn).val == false) {
            setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
          }
        }
      }
    }
    if (getState(IstNacht).val == true) {
      if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == false) {
        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
          setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
          if (getState(HintertuerAn).val == false) {
            setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
          }
        }
      }
    }
    

    Im Grunde steuere ich damit 3 Lampen. Am 4-Pro hängt an 0 die Beleuchtung vorm Haus, am 1 die Hintertür. Der andere Shelly ist der, der am Schuppen angeschlossen ist. Der am Schuppen war früher nicht smart, über Nacht konnte also schon ab und an eine Katze mein Licht anschalten. Jetzt soll der Schuppen auch meine Hintertür "beleuchten", der Bewegungsmelder reicht bis zu der Tür.

    Kann mir da jemand helfen?

    Danke!
    Matze

    PS.: Wenn auch noch jemand sagen könnte wo ich einen Namen definiere, damit ich im Blockly nicht zig mal "Switch" sehe sondern den Namen von ebendiesem - wäre ein Traum ;)

    ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von Ein ehemaliger Benutzer
    #2

    @matze78 im JavaScript editor wenn du das Skript öffnest hast du oben rechts ein schrauben Schlüssel, klickst du dadrauf ist dort ein Punkt ‚debug‘ der scheint altiviviert zu sein. Diesen deaktivieren und das Script sollte laufen :)

    4530AF65-7B8D-412B-9DDC-E7A57294A5F4.jpeg

    M 1 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @matze78 im JavaScript editor wenn du das Skript öffnest hast du oben rechts ein schrauben Schlüssel, klickst du dadrauf ist dort ein Punkt ‚debug‘ der scheint altiviviert zu sein. Diesen deaktivieren und das Script sollte laufen :)

      4530AF65-7B8D-412B-9DDC-E7A57294A5F4.jpeg

      M Offline
      M Offline
      Matze78
      schrieb am zuletzt editiert von Matze78
      #3

      Vielen Dank @ciddi89 ,

      leider will es aber trotzdem nicht. Jetzt ist die Meldung

      21:44:14.756	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:47:5
      21:44:14.756	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:69:3
      21:44:14.756	info	javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: getState(id=undefined, timerId=undefined) => not found
      21:44:14.758	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:57:5
      21:44:14.758	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:69:3
      21:44:14.758	info	javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: registered 0 subscriptions, 5 schedules, 0 messages, 0 logs and 0 file subscriptions
      

      Das Licht schaltet nicht. Ich sehe aber durchaus den Bewegungsmelder, also der Input wechselt auf true...

      Edit: Ich glaube die Variable ist undefined. Das kann jetzt natürlich sein, die wird ja nur über Astro gesetzt. Wie löse ich das denn jetzt? In Javascript geht es iwie nicht (das ist jetzt schreibgeschützt)

      ? 1 Antwort Letzte Antwort
      0
      • M Matze78

        Vielen Dank @ciddi89 ,

        leider will es aber trotzdem nicht. Jetzt ist die Meldung

        21:44:14.756	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:47:5
        21:44:14.756	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:69:3
        21:44:14.756	info	javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: getState(id=undefined, timerId=undefined) => not found
        21:44:14.758	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:57:5
        21:44:14.758	warn	javascript.0 (448) at script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen:69:3
        21:44:14.758	info	javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: registered 0 subscriptions, 5 schedules, 0 messages, 0 logs and 0 file subscriptions
        

        Das Licht schaltet nicht. Ich sehe aber durchaus den Bewegungsmelder, also der Input wechselt auf true...

        Edit: Ich glaube die Variable ist undefined. Das kann jetzt natürlich sein, die wird ja nur über Astro gesetzt. Wie löse ich das denn jetzt? In Javascript geht es iwie nicht (das ist jetzt schreibgeschützt)

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
        #4

        @matze78 bei den definitionen ist der jetzige fehler:

        getState(IstNacht).val
        

        Das getState und das .val kannst dz weglassen also nur

        IstNacht === true 
        

        Genau so wie mit hintertueran das sind variabeln und brauchen daher nicht die funktion getState

        if (IstNacht == true) {
          if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == true) {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, true);
              if (HintertuerAn == false) {
                setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
              }
            }
          }
        }
        if (IstNacht == true) {
          if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == false) {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
              if (HintertuerAn == false) {
                setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
              }
            }
          }
        }
        
        M 1 Antwort Letzte Antwort
        0
        • M Matze78

          Hallo zusammen,
          nachdem mir meine Sonoff´s nun 4 Jahre auf die Nerven gegangen sind habe ich sie alle aus den Wänden gerupft und durch Shelly´s ersetzt. Die fühlen sich direkt wertiger an - viel weniger "verbastelt".
          Wie auch immer - ich habe mir direkt einen neuen 1PM an meinem Schuppenlicht angeschlossen. Also Bewegungsmelder an Eingang, Strahler ans Relais, Eingang als detached markiert und das aktuelle Außenbeleuchtungs-Script angepasst.
          Leider läuft es nicht, und den Fehler kann ich nicht nachvollziehen. Das Script sagt mir:

          javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: setForeignState(id=shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch, state={"val":false,"ack":false,"ts":1662316800011,"q":0,"from":"system.adapter.javascript.0","lc":1662314400074,"c":"script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
          

          Ich bin alle Objekte nochmal durchgegangen, finde den Fehler aber nicht. Die Bezeichner sind alle richtig. So sieht mein Script in JS aus:

          var Nacht, Nacht1, IstNacht, Nacht2, HintertuerAn;
          
          
          schedule({astro: "sunriseEnd", shift: 10}, async function () {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
            }
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
            }
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
            }
            IstNacht = false;
            HintertuerAn = false;
          });
          schedule({astro: "sunsetStart", shift: -10}, async function () {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
            }
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
            }
            IstNacht = true;
            HintertuerAn = true;
          });
          Nacht = schedule('*'.toString().trim() + ' ' + '2'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
            }
          });
          Nacht1 = schedule('*'.toString().trim() + ' ' + '20'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
            }
            HintertuerAn = false;
          });
          Nacht2 = schedule('30'.toString().trim() + ' ' + '6'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
            }
            if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
              setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
              HintertuerAn = true;
            }
          });
          if (getState(IstNacht).val == true) {
            if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == true) {
              if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, true);
                if (getState(HintertuerAn).val == false) {
                  setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                }
              }
            }
          }
          if (getState(IstNacht).val == true) {
            if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == false) {
              if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
                if (getState(HintertuerAn).val == false) {
                  setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                }
              }
            }
          }
          

          Im Grunde steuere ich damit 3 Lampen. Am 4-Pro hängt an 0 die Beleuchtung vorm Haus, am 1 die Hintertür. Der andere Shelly ist der, der am Schuppen angeschlossen ist. Der am Schuppen war früher nicht smart, über Nacht konnte also schon ab und an eine Katze mein Licht anschalten. Jetzt soll der Schuppen auch meine Hintertür "beleuchten", der Bewegungsmelder reicht bis zu der Tür.

          Kann mir da jemand helfen?

          Danke!
          Matze

          PS.: Wenn auch noch jemand sagen könnte wo ich einen Namen definiere, damit ich im Blockly nicht zig mal "Switch" sehe sondern den Namen von ebendiesem - wäre ein Traum ;)

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #5

          @matze78 sagte: wo ich einen Namen definiere, damit ich im Blockly nicht zig mal "Switch" sehe

          Im Tab "Objekte" rechts auf dem Bleistift (Objekt bearbeiten) klicken und den Namen ändern.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          M 1 Antwort Letzte Antwort
          0
          • ? Ein ehemaliger Benutzer

            @matze78 bei den definitionen ist der jetzige fehler:

            getState(IstNacht).val
            

            Das getState und das .val kannst dz weglassen also nur

            IstNacht === true 
            

            Genau so wie mit hintertueran das sind variabeln und brauchen daher nicht die funktion getState

            if (IstNacht == true) {
              if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == true) {
                if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                  setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, true);
                  if (HintertuerAn == false) {
                    setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                  }
                }
              }
            }
            if (IstNacht == true) {
              if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == false) {
                if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                  setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
                  if (HintertuerAn == false) {
                    setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                  }
                }
              }
            }
            
            M Offline
            M Offline
            Matze78
            schrieb am zuletzt editiert von
            #6

            Ok @ciddi89, da hatte ich bei Blockly ein falsches Element genommen, das passt jetzt.

            Das einzige Problem ist jetzt die nicht gesetzte Variable. Ich setze bei Sonnenuntergang-Anfang -10 die "istNacht" auf an. Wenn ich das Script jetzt neu starte kommt er an diesen Punkt natürlich nicht mehr. Wie kann ich diesen Wert danach füllen?

            ? 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @matze78 sagte: wo ich einen Namen definiere, damit ich im Blockly nicht zig mal "Switch" sehe

              Im Tab "Objekte" rechts auf dem Bleistift (Objekt bearbeiten) klicken und den Namen ändern.

              M Offline
              M Offline
              Matze78
              schrieb am zuletzt editiert von
              #7

              @paul53
              2af38d66-dfbf-44dc-b886-92e53daa2391-image.png
              Das habe ich eigentlich, in den Objekten steht ja auch der Name - nur in den Scripten nicht.

              paul53P 1 Antwort Letzte Antwort
              0
              • M Matze78

                Ok @ciddi89, da hatte ich bei Blockly ein falsches Element genommen, das passt jetzt.

                Das einzige Problem ist jetzt die nicht gesetzte Variable. Ich setze bei Sonnenuntergang-Anfang -10 die "istNacht" auf an. Wenn ich das Script jetzt neu starte kommt er an diesen Punkt natürlich nicht mehr. Wie kann ich diesen Wert danach füllen?

                ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                #8

                @matze78 einfach ein falls Block einbauen der den aktuellen Stand prüft. Dies erfordert kein trigger und wird beim script start ausgeführt. ich habe in einigen Skripts sowas wie im Screenshot laufen. Somit kann man variablen neu setzen falls das Script oder iobroker Neustartet. Der timeout muss nicht sein es geht auch ohne. D15EEBB3-C523-410C-BAE4-CA1F41D19CFF.jpeg

                1 Antwort Letzte Antwort
                0
                • M Matze78

                  @paul53
                  2af38d66-dfbf-44dc-b886-92e53daa2391-image.png
                  Das habe ich eigentlich, in den Objekten steht ja auch der Name - nur in den Scripten nicht.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #9

                  @matze78 sagte: in den Objekten steht ja auch der Name - nur in den Scripten nicht.

                  Ich sehe zum Datenpunkt nur den Namen "Switch", der geändert werden sollte. Den Kanalnamen sieht man im Blockly-Skript nicht.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • M Matze78

                    Hallo zusammen,
                    nachdem mir meine Sonoff´s nun 4 Jahre auf die Nerven gegangen sind habe ich sie alle aus den Wänden gerupft und durch Shelly´s ersetzt. Die fühlen sich direkt wertiger an - viel weniger "verbastelt".
                    Wie auch immer - ich habe mir direkt einen neuen 1PM an meinem Schuppenlicht angeschlossen. Also Bewegungsmelder an Eingang, Strahler ans Relais, Eingang als detached markiert und das aktuelle Außenbeleuchtungs-Script angepasst.
                    Leider läuft es nicht, und den Fehler kann ich nicht nachvollziehen. Das Script sagt mir:

                    javascript.0 (448) script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen: setForeignState(id=shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch, state={"val":false,"ack":false,"ts":1662316800011,"q":0,"from":"system.adapter.javascript.0","lc":1662314400074,"c":"script.js.Aussenbeleuchtung.Aussenbeleuchtung_Türen"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
                    

                    Ich bin alle Objekte nochmal durchgegangen, finde den Fehler aber nicht. Die Bezeichner sind alle richtig. So sieht mein Script in JS aus:

                    var Nacht, Nacht1, IstNacht, Nacht2, HintertuerAn;
                    
                    
                    schedule({astro: "sunriseEnd", shift: 10}, async function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
                      }
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                      }
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
                      }
                      IstNacht = false;
                      HintertuerAn = false;
                    });
                    schedule({astro: "sunsetStart", shift: -10}, async function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
                      }
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                      }
                      IstNacht = true;
                      HintertuerAn = true;
                    });
                    Nacht = schedule('*'.toString().trim() + ' ' + '2'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
                      }
                    });
                    Nacht1 = schedule('*'.toString().trim() + ' ' + '20'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                      }
                      HintertuerAn = false;
                    });
                    Nacht2 = schedule('30'.toString().trim() + ' ' + '6'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
                      }
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                        HintertuerAn = true;
                      }
                    });
                    if (getState(IstNacht).val == true) {
                      if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == true) {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                          setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, true);
                          if (getState(HintertuerAn).val == false) {
                            setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                          }
                        }
                      }
                    }
                    if (getState(IstNacht).val == true) {
                      if (getState('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input').val == false) {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val == true) {
                          setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
                          if (getState(HintertuerAn).val == false) {
                            setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                          }
                        }
                      }
                    }
                    

                    Im Grunde steuere ich damit 3 Lampen. Am 4-Pro hängt an 0 die Beleuchtung vorm Haus, am 1 die Hintertür. Der andere Shelly ist der, der am Schuppen angeschlossen ist. Der am Schuppen war früher nicht smart, über Nacht konnte also schon ab und an eine Katze mein Licht anschalten. Jetzt soll der Schuppen auch meine Hintertür "beleuchten", der Bewegungsmelder reicht bis zu der Tür.

                    Kann mir da jemand helfen?

                    Danke!
                    Matze

                    PS.: Wenn auch noch jemand sagen könnte wo ich einen Namen definiere, damit ich im Blockly nicht zig mal "Switch" sehe sondern den Namen von ebendiesem - wäre ein Traum ;)

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #10

                    @matze78 sagte: Bewegungsmelder an Eingang,

                    Für den BWM fehlt der Trigger.
                    Habe den Trigger ergänzt (hoffe, dass es der richtige Datenpunkt ist) und das Skript vereinfacht:

                    var IstNacht = compareTime(getAstroDate("sunriseEnd", undefined, 10), getAstroDate("sunsetStart", undefined, -10), "not between", null);
                    var HintertuerAn = getState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch").val;
                     
                    schedule({astro: "sunriseEnd", shift: 10}, function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                        setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
                        HintertuerAn = false;
                      }
                      IstNacht = false;
                    });
                    
                    schedule({astro: "sunsetStart", shift: -10}, function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                        HintertuerAn = true;
                      }  
                      IstNacht = true;
                    });
                    
                    schedule('0 2 * * *', function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
                      }
                    });
                    
                    schedule('0 20 * * *', function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                        HintertuerAn = false;
                      }
                    });
                    
                    schedule('30 6 * * *', function () {
                      if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
                        setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                        HintertuerAn = true;
                      }
                    });
                    
                    on('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input', function(dp) {
                        if (IstNacht && getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                            setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, dp.state.val);
                            if(!HintertuerAn) {
                                setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, dp.state.val);
                            }
                        }
                    });
                    

                    Den Sinn der Abfrage von HintertuerAn verstehe ich allerdings nicht.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    M 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @matze78 sagte: Bewegungsmelder an Eingang,

                      Für den BWM fehlt der Trigger.
                      Habe den Trigger ergänzt (hoffe, dass es der richtige Datenpunkt ist) und das Skript vereinfacht:

                      var IstNacht = compareTime(getAstroDate("sunriseEnd", undefined, 10), getAstroDate("sunsetStart", undefined, -10), "not between", null);
                      var HintertuerAn = getState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch").val;
                       
                      schedule({astro: "sunriseEnd", shift: 10}, function () {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                          setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, false);
                          HintertuerAn = false;
                        }
                        IstNacht = false;
                      });
                      
                      schedule({astro: "sunsetStart", shift: -10}, function () {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                          HintertuerAn = true;
                        }  
                        IstNacht = true;
                      });
                      
                      schedule('0 2 * * *', function () {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, false);
                        }
                      });
                      
                      schedule('0 20 * * *', function () {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, false);
                          HintertuerAn = false;
                        }
                      });
                      
                      schedule('30 6 * * *', function () {
                        if (getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay0.Switch"/*Switch*/, true);
                          setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, true);
                          HintertuerAn = true;
                        }
                      });
                      
                      on('shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Input', function(dp) {
                          if (IstNacht && getState('0_userdata.0.Automatiken.Außenbeleuchtung').val) {
                              setState("shelly.2.SHSW-PM#BCFF4DFCBAF5#1.Relay0.Switch"/*Switch*/, dp.state.val);
                              if(!HintertuerAn) {
                                  setState("shelly.1.shellypro4pm#083af27d18d4#1.Relay1.Switch"/*Switch*/, dp.state.val);
                              }
                          }
                      });
                      

                      Den Sinn der Abfrage von HintertuerAn verstehe ich allerdings nicht.

                      M Offline
                      M Offline
                      Matze78
                      schrieb am zuletzt editiert von Matze78
                      #11

                      HintertuerAn ist ein Relikt aus alten Zeiten @paul53
                      Das Licht an der Hintertür soll bis 20 Uhr an bleiben, dann spare ich mir das Licht untem im Flur. Damit der Bewegungsmelder das Licht nun aber nicht abschaltet soll er sich merken, ob er es abschalten soll oder eben nicht.

                      7449077b-c386-4c8c-88b7-843a4ba2d3b5-image.png

                      @ciddi89 Ich habe jetzt versucht die Variablen vorzubelegen. Die Nacht wird leider nicht erkannt, das zwischen 20 Uhr und 6:30 allerdings schon...

                      paul53P 3 Antworten Letzte Antwort
                      0
                      • M Matze78

                        HintertuerAn ist ein Relikt aus alten Zeiten @paul53
                        Das Licht an der Hintertür soll bis 20 Uhr an bleiben, dann spare ich mir das Licht untem im Flur. Damit der Bewegungsmelder das Licht nun aber nicht abschaltet soll er sich merken, ob er es abschalten soll oder eben nicht.

                        7449077b-c386-4c8c-88b7-843a4ba2d3b5-image.png

                        @ciddi89 Ich habe jetzt versucht die Variablen vorzubelegen. Die Nacht wird leider nicht erkannt, das zwischen 20 Uhr und 6:30 allerdings schon...

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #12

                        @matze78 sagte: Die Nacht wird leider nicht erkannt

                        Vergleich von Astrozeiten funktioniert nicht über Mitternacht, weshalb man "nicht zwischen SA und SU" verwendet.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        M 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @matze78 sagte: Die Nacht wird leider nicht erkannt

                          Vergleich von Astrozeiten funktioniert nicht über Mitternacht, weshalb man "nicht zwischen SA und SU" verwendet.

                          M Offline
                          M Offline
                          Matze78
                          schrieb am zuletzt editiert von
                          #13

                          Danke @paul53 , das macht natürlich Sinn...

                          ? 1 Antwort Letzte Antwort
                          0
                          • M Matze78

                            Danke @paul53 , das macht natürlich Sinn...

                            ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von
                            #14

                            @matze78 geht nur mit „ist nicht zwischen aufgang und untergang“ wie paul schon schrieb :)

                            1 Antwort Letzte Antwort
                            0
                            • M Matze78

                              HintertuerAn ist ein Relikt aus alten Zeiten @paul53
                              Das Licht an der Hintertür soll bis 20 Uhr an bleiben, dann spare ich mir das Licht untem im Flur. Damit der Bewegungsmelder das Licht nun aber nicht abschaltet soll er sich merken, ob er es abschalten soll oder eben nicht.

                              7449077b-c386-4c8c-88b7-843a4ba2d3b5-image.png

                              @ciddi89 Ich habe jetzt versucht die Variablen vorzubelegen. Die Nacht wird leider nicht erkannt, das zwischen 20 Uhr und 6:30 allerdings schon...

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von paul53
                              #15

                              @matze78 sagte: Das Licht an der Hintertür soll bis 20 Uhr an bleiben

                              Was soll um 2:00 Uhr passieren?

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              M 1 Antwort Letzte Antwort
                              0
                              • M Matze78

                                HintertuerAn ist ein Relikt aus alten Zeiten @paul53
                                Das Licht an der Hintertür soll bis 20 Uhr an bleiben, dann spare ich mir das Licht untem im Flur. Damit der Bewegungsmelder das Licht nun aber nicht abschaltet soll er sich merken, ob er es abschalten soll oder eben nicht.

                                7449077b-c386-4c8c-88b7-843a4ba2d3b5-image.png

                                @ciddi89 Ich habe jetzt versucht die Variablen vorzubelegen. Die Nacht wird leider nicht erkannt, das zwischen 20 Uhr und 6:30 allerdings schon...

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #16

                                @matze78 sagte: Ich habe jetzt versucht die Variablen vorzubelegen.

                                So ist es vollkommen ausreichend:

                                Bild_2022-09-04_234127607.png

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @matze78 sagte: Das Licht an der Hintertür soll bis 20 Uhr an bleiben

                                  Was soll um 2:00 Uhr passieren?

                                  M Offline
                                  M Offline
                                  Matze78
                                  schrieb am zuletzt editiert von
                                  #17

                                  @paul53 ab 2 Uhr soll das Licht an der Haustür ausbleiben. Da kommt die Zeitung bei den Nachbarn an und unser Hund schläft im Flur direkt im Lichtkegel ;)

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • M Matze78

                                    @paul53 ab 2 Uhr soll das Licht an der Haustür ausbleiben. Da kommt die Zeitung bei den Nachbarn an und unser Hund schläft im Flur direkt im Lichtkegel ;)

                                    M Offline
                                    M Offline
                                    Matze78
                                    schrieb am zuletzt editiert von
                                    #18

                                    Danke schön @ciddi89 und @paul53, jetzt tut´s

                                    1 Antwort Letzte Antwort
                                    0

                                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                    Registrieren Anmelden
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    480

                                    Online

                                    32.8k

                                    Benutzer

                                    82.9k

                                    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