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. JavaScript
  5. Wechselschaltung in software realisieren -> Endlosscshleife

NEWS

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

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

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

Wechselschaltung in software realisieren -> Endlosscshleife

Geplant Angeheftet Gesperrt Verschoben JavaScript
15 Beiträge 3 Kommentatoren 788 Aufrufe 2 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.
  • jmeister79J Offline
    jmeister79J Offline
    jmeister79
    schrieb am zuletzt editiert von jmeister79
    #1

    Moin,

    ich hab hier ein doofes Problem:
    Ich hab hier einen Shelly, der steuert eine Lampe im Flur.
    In einem weiteren teil des Flures ist eine weitere Lampe mit eigenem Schalter, diese lichter sind nicht verbunden oder ähnliches.
    Auch möchte ich mir Stemmarbeiten diesbezüglich sparen.

    Meine Idee war es nun, diese beiden Lampen via Trigger zu syncen:

    1. Versuch:
    on({ id: [].concat(['shelly.0.xxx.Relay0.Switch']).concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
      setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
       setState("zigbee.0.yyy.state", obj.state.val);
      log(obj.state.val);
    });
    
    1. Versuch
    on({ id: [].concat(['shelly.0.xxx.Relay0.Switch']), change: "ne" }, async function (obj) {
       setState("zigbee.0.yyy.state", obj.state.val);
    });
    on({ id: [].concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
      setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
    });
    

    Beide Versuche führen in eine Endlosschleife wenn der Zigbee mal etwas träger ist und man vorher wieder ausschaltet.

    Wie kann ich das verhindern? Einen Entpreller?

    on({ id: [].concat(['shelly.0xxx.Relay0.Switch']).concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
        if (!Entpreller) {
            setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
            setState("zigbee.0.yyy.state", obj.state.val);
        }
        Entpreller = setTimeout(function () {
        Entpreller = false;
        }, 500);   
    });
    

    führt dazu, dass dann das licht wieder an ist, wenn dem zigbee n paar sekunden später einfällt sich dann kurz an und sofort wieder auszuschalten, der entpreller lässt dann den zweiten Impuls nicht durch, und verhindert somit die Endlosschleife, aber das licht geht wieder an.

    LG
    Nils

    paul53P MartinPM 2 Antworten Letzte Antwort
    0
    • jmeister79J jmeister79

      Moin,

      ich hab hier ein doofes Problem:
      Ich hab hier einen Shelly, der steuert eine Lampe im Flur.
      In einem weiteren teil des Flures ist eine weitere Lampe mit eigenem Schalter, diese lichter sind nicht verbunden oder ähnliches.
      Auch möchte ich mir Stemmarbeiten diesbezüglich sparen.

      Meine Idee war es nun, diese beiden Lampen via Trigger zu syncen:

      1. Versuch:
      on({ id: [].concat(['shelly.0.xxx.Relay0.Switch']).concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
        setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
         setState("zigbee.0.yyy.state", obj.state.val);
        log(obj.state.val);
      });
      
      1. Versuch
      on({ id: [].concat(['shelly.0.xxx.Relay0.Switch']), change: "ne" }, async function (obj) {
         setState("zigbee.0.yyy.state", obj.state.val);
      });
      on({ id: [].concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
        setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
      });
      

      Beide Versuche führen in eine Endlosschleife wenn der Zigbee mal etwas träger ist und man vorher wieder ausschaltet.

      Wie kann ich das verhindern? Einen Entpreller?

      on({ id: [].concat(['shelly.0xxx.Relay0.Switch']).concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
          if (!Entpreller) {
              setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
              setState("zigbee.0.yyy.state", obj.state.val);
          }
          Entpreller = setTimeout(function () {
          Entpreller = false;
          }, 500);   
      });
      

      führt dazu, dass dann das licht wieder an ist, wenn dem zigbee n paar sekunden später einfällt sich dann kurz an und sofort wieder auszuschalten, der entpreller lässt dann den zweiten Impuls nicht durch, und verhindert somit die Endlosschleife, aber das licht geht wieder an.

      LG
      Nils

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

      @jmeister79 sagte: beiden Lampen via Trigger zu syncen:

      Versuche es mal so:

      Blockly_temp.JPG

      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
      • jmeister79J jmeister79

        Moin,

        ich hab hier ein doofes Problem:
        Ich hab hier einen Shelly, der steuert eine Lampe im Flur.
        In einem weiteren teil des Flures ist eine weitere Lampe mit eigenem Schalter, diese lichter sind nicht verbunden oder ähnliches.
        Auch möchte ich mir Stemmarbeiten diesbezüglich sparen.

        Meine Idee war es nun, diese beiden Lampen via Trigger zu syncen:

        1. Versuch:
        on({ id: [].concat(['shelly.0.xxx.Relay0.Switch']).concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
          setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
           setState("zigbee.0.yyy.state", obj.state.val);
          log(obj.state.val);
        });
        
        1. Versuch
        on({ id: [].concat(['shelly.0.xxx.Relay0.Switch']), change: "ne" }, async function (obj) {
           setState("zigbee.0.yyy.state", obj.state.val);
        });
        on({ id: [].concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
          setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
        });
        

        Beide Versuche führen in eine Endlosschleife wenn der Zigbee mal etwas träger ist und man vorher wieder ausschaltet.

        Wie kann ich das verhindern? Einen Entpreller?

        on({ id: [].concat(['shelly.0xxx.Relay0.Switch']).concat(['zigbee.0.yyy.state']), change: "ne" }, async function (obj) {
            if (!Entpreller) {
                setState('shelly.0.xxx.Relay0.Switch', obj.state.val);//Flur EG
                setState("zigbee.0.yyy.state", obj.state.val);
            }
            Entpreller = setTimeout(function () {
            Entpreller = false;
            }, 500);   
        });
        

        führt dazu, dass dann das licht wieder an ist, wenn dem zigbee n paar sekunden später einfällt sich dann kurz an und sofort wieder auszuschalten, der entpreller lässt dann den zweiten Impuls nicht durch, und verhindert somit die Endlosschleife, aber das licht geht wieder an.

        LG
        Nils

        MartinPM Online
        MartinPM Online
        MartinP
        schrieb am zuletzt editiert von
        #3

        @jmeister79 Das ist ein SCHALTER, hinter dem der Shelly montiert ist?

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        jmeister79J 1 Antwort Letzte Antwort
        0
        • MartinPM MartinP

          @jmeister79 Das ist ein SCHALTER, hinter dem der Shelly montiert ist?

          jmeister79J Offline
          jmeister79J Offline
          jmeister79
          schrieb am zuletzt editiert von
          #4

          @martinp ja sowohl vor dem shelly als auch vor dem zigbee ist ein schalter

          MartinPM 1 Antwort Letzte Antwort
          0
          • jmeister79J jmeister79

            @martinp ja sowohl vor dem shelly als auch vor dem zigbee ist ein schalter

            MartinPM Online
            MartinPM Online
            MartinP
            schrieb am zuletzt editiert von MartinP
            #5

            @jmeister79 Und die beiden Relais sollen parallel sowohl die Lampe am Shelly, als auch die Lampe am zigbee schalten?

            Ausgangszustand Lampen aus.

            Shelly Schalter wechselt seinen Zustand -> Beide Lampen ein

            Shelly Schalter wechselt seinen Zustand -> Beide Lampen aus

            Shelly Schalter wechselt seinen Zustand -> Beide Lampen ein

            Zigbee Schalter wechselt seinen Zustand -> Beide Lampen aus

            Shelly Schalter wechselt seinen Zustand -> Beide Lampen ein

            Mit dem Risiko, dass nichts mehr funktioniert, wenn der iobroker ausfällt, könnte man die Schalter-Funktion von der Relais Funktion trennen (Beim Shelly über den Haken bei "Detached Switch"), und die Ansteuerung der Relais alleine Iobroker überlassen...

            Dann hat das Skript die Funktion: "Wenn einer der beiden Schalter den Zustand ändert, toggle den Zustand der Relais"...

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            1 Antwort Letzte Antwort
            0
            • jmeister79J Offline
              jmeister79J Offline
              jmeister79
              schrieb am zuletzt editiert von jmeister79
              #6

              @martinp ja verstehe was du meisnt, geht aber auch nciht wirklich, es ist der doofe zigbee schalter.

              evtl lasse ich nur schalten wenn das ack flag true ist, dann weiß ich sicher dass die hardware geschaltet hat.

              edit:
              klappt auch nicht, da er dann mit ne nicht reagiert wenn die geschichte aus dem visu geschaltet wird

              paul53P 1 Antwort Letzte Antwort
              0
              • jmeister79J jmeister79

                @martinp ja verstehe was du meisnt, geht aber auch nciht wirklich, es ist der doofe zigbee schalter.

                evtl lasse ich nur schalten wenn das ack flag true ist, dann weiß ich sicher dass die hardware geschaltet hat.

                edit:
                klappt auch nicht, da er dann mit ne nicht reagiert wenn die geschichte aus dem visu geschaltet wird

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

                @jmeister79 sagte: mit ne nicht reagiert wenn die geschichte aus dem visu geschaltet wird

                Hast du mal meinen Vorschlag versucht?

                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

                MartinPM jmeister79J 2 Antworten Letzte Antwort
                0
                • paul53P paul53

                  @jmeister79 sagte: mit ne nicht reagiert wenn die geschichte aus dem visu geschaltet wird

                  Hast du mal meinen Vorschlag versucht?

                  MartinPM Online
                  MartinPM Online
                  MartinP
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 Ich kenne mich mit den Shelly Unterbau-Modulen nicht aus. Wenn man den Shelly per Schalter einschaltet, und per Remote ausschaltet - schaltet die nächste Wippenbetätigung den Shelly wieder ein, oder bleibt die Schalterstellung für EIN und AUS erhalten, und man muss von EIN nach AUS und dann wieder von AUS nach EIN schalten, um das Licht wieder anzumachen...?

                  Ich würde aus dem Bauch heraus vermuten, dass es Ersteres ist...

                  Beim Zigbee Schalter weiß man natürlich nicht, wie der sich verhält...

                  Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                  Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                  Linux pve 6.8.12-16-pve
                  6 GByte RAM für den Container
                  Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                  Remote-Access über Wireguard der Fritzbox

                  jmeister79J 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @jmeister79 sagte: mit ne nicht reagiert wenn die geschichte aus dem visu geschaltet wird

                    Hast du mal meinen Vorschlag versucht?

                    jmeister79J Offline
                    jmeister79J Offline
                    jmeister79
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 ja, hat leider auch nicht geklappt

                    1 Antwort Letzte Antwort
                    0
                    • MartinPM MartinP

                      @paul53 Ich kenne mich mit den Shelly Unterbau-Modulen nicht aus. Wenn man den Shelly per Schalter einschaltet, und per Remote ausschaltet - schaltet die nächste Wippenbetätigung den Shelly wieder ein, oder bleibt die Schalterstellung für EIN und AUS erhalten, und man muss von EIN nach AUS und dann wieder von AUS nach EIN schalten, um das Licht wieder anzumachen...?

                      Ich würde aus dem Bauch heraus vermuten, dass es Ersteres ist...

                      Beim Zigbee Schalter weiß man natürlich nicht, wie der sich verhält...

                      jmeister79J Offline
                      jmeister79J Offline
                      jmeister79
                      schrieb am zuletzt editiert von
                      #10

                      @martinp die haben alle taster davor.

                      Das priblem ust ja wie gesagt, dass wenn der zigbee Schalter zu langsam ist und man bevor er sein signal bekommt an und wieder aus bzw aus und wieder an schaltet. Kommt es vor dass er innerhalb von ms beide signale bekommt, da die im zigbeen adapter aufgelaufen sind.

                      Er setzt die dann sofort nacheinander um und löst damit eine endlosschleife aus. Dieses problem muss es ja in allen asynchronen Systemen geben. Ich stehe jetzt leuder total auf dem achlauch wie man das lösen könnte

                      MartinPM paul53P 2 Antworten Letzte Antwort
                      0
                      • jmeister79J jmeister79

                        @martinp die haben alle taster davor.

                        Das priblem ust ja wie gesagt, dass wenn der zigbee Schalter zu langsam ist und man bevor er sein signal bekommt an und wieder aus bzw aus und wieder an schaltet. Kommt es vor dass er innerhalb von ms beide signale bekommt, da die im zigbeen adapter aufgelaufen sind.

                        Er setzt die dann sofort nacheinander um und löst damit eine endlosschleife aus. Dieses problem muss es ja in allen asynchronen Systemen geben. Ich stehe jetzt leuder total auf dem achlauch wie man das lösen könnte

                        MartinPM Online
                        MartinPM Online
                        MartinP
                        schrieb am zuletzt editiert von
                        #11

                        @jmeister79 Mit Tastern ist das ja noch einfacher ... Gibt es extra Datenpunkte für den Taster im Zigbee Device und im Shelly?

                        Dann könnte man sich eine Variable definieren, die setzt man initial auf 0, Wenn der Shelly Taster betätigt wird, wird die Variable auf 1 gesetzt, und wenn der Zigbee Taster betätigt wird auf 2.

                        Wechselt dann beim Shelly Switch der Zustand, wird der Zigbee Switch abgeglichen, aber nur wenn die Variable auf 1 steht (manuelle Betätigung durch Shelly), Variable danach wieder auf 0 setzen

                        Wechselt dann beim Zigbee Switch der Zustand, wird der Shelly Switch abgeglichen, aber nur wenn die Variable auf 2 steht (manuelle Betätigung durch Zigbee), Variable danach wieder auf 0 setzen

                        Die Intention des Scripts von @paul53 ist wahrscheinlich ähnlich, aber ich weiß nicht warum das nicht funktioniert...

                        Ob das funktioniert, hängt aber davon ab, ob immer ZUERST der Taster gemeldet wird, und DANN der Zustand des Switches...

                        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                        Linux pve 6.8.12-16-pve
                        6 GByte RAM für den Container
                        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                        Remote-Access über Wireguard der Fritzbox

                        1 Antwort Letzte Antwort
                        0
                        • jmeister79J jmeister79

                          @martinp die haben alle taster davor.

                          Das priblem ust ja wie gesagt, dass wenn der zigbee Schalter zu langsam ist und man bevor er sein signal bekommt an und wieder aus bzw aus und wieder an schaltet. Kommt es vor dass er innerhalb von ms beide signale bekommt, da die im zigbeen adapter aufgelaufen sind.

                          Er setzt die dann sofort nacheinander um und löst damit eine endlosschleife aus. Dieses problem muss es ja in allen asynchronen Systemen geben. Ich stehe jetzt leuder total auf dem achlauch wie man das lösen könnte

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

                          @jmeister79 sagte: aus und wieder an schaltet. Kommt es vor dass er innerhalb von ms beide signale bekommt, da die im zigbeen adapter aufgelaufen sind.

                          Wenn Zigbee langsamer ist als man hin- und herschaltet, sollte man die Zigbee-Taste vom Zigbee-Aktor entkoppeln und die Taste im ioBroker auswerten (toggle). Etwa so:

                          Blockly_temp.JPG

                          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

                          jmeister79J 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @jmeister79 sagte: aus und wieder an schaltet. Kommt es vor dass er innerhalb von ms beide signale bekommt, da die im zigbeen adapter aufgelaufen sind.

                            Wenn Zigbee langsamer ist als man hin- und herschaltet, sollte man die Zigbee-Taste vom Zigbee-Aktor entkoppeln und die Taste im ioBroker auswerten (toggle). Etwa so:

                            Blockly_temp.JPG

                            jmeister79J Offline
                            jmeister79J Offline
                            jmeister79
                            schrieb am zuletzt editiert von
                            #13

                            @paul53
                            Ja das hatte ich auch gedacht. Ist sicherlich auch der richtige weg. Leider ist der iob mir. Icht stabil genug um alle switches zu detatchen. Dann steh ich im fehlerfall ohne licht da, deswegen bin ich überall auf shellys gegangen.

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • jmeister79J jmeister79

                              @paul53
                              Ja das hatte ich auch gedacht. Ist sicherlich auch der richtige weg. Leider ist der iob mir. Icht stabil genug um alle switches zu detatchen. Dann steh ich im fehlerfall ohne licht da, deswegen bin ich überall auf shellys gegangen.

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

                              @jmeister79 sagte: Leider ist der iob mir. Icht stabil genug um alle switches zu detatchen.

                              Es betrifft ja nur den Zigbee-Taster, wenn ioBroker ausfällt.
                              Bei mir läuft ioBroker seit Jahren absolut stabil.

                              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

                              jmeister79J 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @jmeister79 sagte: Leider ist der iob mir. Icht stabil genug um alle switches zu detatchen.

                                Es betrifft ja nur den Zigbee-Taster, wenn ioBroker ausfällt.
                                Bei mir läuft ioBroker seit Jahren absolut stabil.

                                jmeister79J Offline
                                jmeister79J Offline
                                jmeister79
                                schrieb am zuletzt editiert von
                                #15

                                @paul53 ja natürlich läuft er seit jahren supersrabil etc. Bis er es dann nicht tut und dann steht man ohne Licht da. Seines ein schiefes Update oder ne kaputte ssd oder n defekter CPU ider ne kaputte Fritzbox oder k kaputter shelly, das system ist einfach zu komplex um sichb100% darauf zu verlassen. Darum ist es bei mir ein nice to have und das haus sollte auch funktionieren wenn der iobroker map husten hat und ich grad im Hansapark sitze. ;-).

                                Ich werf den ZigBee raus und ersetze ihn gegen nen Shelly, nichtsdestoweniger ist auch bei den Shellys sowas möglich. Also sollte ich diesbezüglich entweder diese Möglichkeit ausschließen oder auf diese Schaltung verzichten.

                                Ich hatte nur gedacht, dass ich einfach grad aufm Schlauch stehe, ist ja bei mir öfters der fall ne.

                                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

                                912

                                Online

                                32.4k

                                Benutzer

                                81.5k

                                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