Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Wechselschaltung in software realisieren -> Endlosscshleife

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wechselschaltung in software realisieren -> Endlosscshleife

    This topic has been deleted. Only users with topic management privileges can see it.
    • jmeister79
      jmeister79 last edited by 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

      paul53 MartinP 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @jmeister79 last edited by

        @jmeister79 sagte: beiden Lampen via Trigger zu syncen:

        Versuche es mal so:

        Blockly_temp.JPG

        1 Reply Last reply Reply Quote 0
        • MartinP
          MartinP @jmeister79 last edited by

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

          jmeister79 1 Reply Last reply Reply Quote 0
          • jmeister79
            jmeister79 @MartinP last edited by

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

            MartinP 1 Reply Last reply Reply Quote 0
            • MartinP
              MartinP @jmeister79 last edited by MartinP

              @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"...

              1 Reply Last reply Reply Quote 0
              • jmeister79
                jmeister79 last edited by 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

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @jmeister79 last edited by

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

                  Hast du mal meinen Vorschlag versucht?

                  MartinP jmeister79 2 Replies Last reply Reply Quote 0
                  • MartinP
                    MartinP @paul53 last edited by

                    @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...

                    jmeister79 1 Reply Last reply Reply Quote 0
                    • jmeister79
                      jmeister79 @paul53 last edited by

                      @paul53 ja, hat leider auch nicht geklappt

                      1 Reply Last reply Reply Quote 0
                      • jmeister79
                        jmeister79 @MartinP last edited by

                        @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

                        MartinP paul53 2 Replies Last reply Reply Quote 0
                        • MartinP
                          MartinP @jmeister79 last edited by

                          @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...

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @jmeister79 last edited by 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

                            jmeister79 1 Reply Last reply Reply Quote 0
                            • jmeister79
                              jmeister79 @paul53 last edited by

                              @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.

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @jmeister79 last edited by

                                @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.

                                jmeister79 1 Reply Last reply Reply Quote 0
                                • jmeister79
                                  jmeister79 @paul53 last edited by

                                  @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 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  962
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  3
                                  15
                                  419
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo