Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Hilfe] Wechselschalter Skript mit Blockly für zwei Sonoffs

    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

    [Hilfe] Wechselschalter Skript mit Blockly für zwei Sonoffs

    This topic has been deleted. Only users with topic management privileges can see it.
    • SmarthomeMF
      SmarthomeMF last edited by

      Ja genau

      Eine einfache Wechselschaltung!

      Und ich schaffe es nicht!

      1 Reply Last reply Reply Quote 0
      • rantanplan
        rantanplan last edited by

        @SmarthomeMF:

        Und was heißt das? `

        Trigger reagieren auf Ereignisse.

        Du änderst in Trigger EINS einen Status auf den Trigger ZWEI reagiert.

        Und in Trigger ZWEI änderst Du einen Status auf den Trigger EINS reagiert.

        Ping Pong Ping Pong….............

        1 Reply Last reply Reply Quote 0
        • BBTown
          BBTown last edited by

          versuche es mal so:

          Nachtrag: sorry, da war ein Fehler enthalten, so ist es besser 8-) 8-)
          1917_2schalter2lampen.jpg

          1 Reply Last reply Reply Quote 0
          • lobomau
            lobomau last edited by

            so geht es vielleicht:

            die beiden "default" sind natürlich die beiden sonoff.power
            1146_blockly.png

            1 Reply Last reply Reply Quote 0
            • BBTown
              BBTown last edited by

              @lobomau:

              so geht es vielleicht:

              die beiden "default" sind natürlich die beiden sonoff.power ` Hast du auch mit fliegenden Fingern das Beispiel getippt? 8-)

              "Wenn beide aus sind, dann sollen beide ausgeschaltet werden?" 😉

              1 Reply Last reply Reply Quote 0
              • lobomau
                lobomau last edited by

                @BBTown:

                @lobomau:

                so geht es vielleicht:

                die beiden "default" sind natürlich die beiden sonoff.power ` Hast du auch mit fliegenden Fingern das Beispiel getippt? 8-)

                "Wenn beide aus sind, dann sollen beide ausgeschaltet werden?" 😉 `
                Ehrlich gesagt, dachte ich zuerst es wäre richtig. ABer hast Recht es muss natürlich reichen, wenn einer AUS ist, das beide aus gehen.

                1 Reply Last reply Reply Quote 0
                • D
                  danielis last edited by

                  Mit dem letzten Vorschlag gehen die Lampen aus, egal von welchem Schalter ausgeschaltet wurde.

                  Aber gehen sie auch wieder an??

                  Scheint mir nicht so.

                  Habe den selben Fall und auch das Problem, dass es zum Prellen kommen kann. Komischer Weise nur im Zusammenhang mit vis.

                  Ich verwende nicht blockly. Dafür JS und die on Anweisung.

                  Mit zwei einfachen on Anweisungen wird es aber immer so sein, dass der Schalter welcher bedient wird zwei Befehle bekommen wird.

                  Bsp: Beide Schalter sind aus. Einer wird betätigt. Die On Anweiseung bemerkt das und aktiviert den anderen Schalter. Der wiederum - er weiß ja nicht wo der Befehl herkommt - wird seinerseit wiederum den ersten Schalter auch einschalten.

                  Ich habe das so robuster hinbekommen:

                  Immer erst den Status abfragen und ihn nur dann schalten wenn er sich unterscheidet.

                  Außerdem habe ich für jeden Schalter einen Datenpunkt angelegt. Die erste Betätigung setzt diesen Datenpunkt und ich kann dann einfach prüfen ob der Datenpunkt true ist. Wenn er true ist, dann bedeutet das, dass es einen Schaltbefehl gab der von Hand ausgelöst wurde und jetzt der zweite ansteht der ignoriert werden kann.

                  javascript.0.productive.Esszimmer1 unten im Code ist einer der Datenpunkte die ich von Hand angelegt habe und im Skript verwende.

                  Hier mein Code: (es sind zwei Schalter mit 3 Relais, habe den Code gekürzt zum besseren Verständnis)

                  ! ````
                  function Essz(schalter, schalterWert){
                  var varString = '';
                  switch(schalter){
                  case 1:
                  varString = 'javascript.0.productive.Esszimmer1';
                  if (getState(varString).val){
                  setState(varString,false); // hier wurde erkannt, dass ein erster Durchgang durchgelaufen ist und ein zweiter nicht nötig ist
                  } else {
                  setState(varString,true); // hier wurde erkannt, dass der Datenpunkt false ist, also ist es der erste Durchlauf, und für den zweiten wird der Datenpunkt auf true gesetzt
                  if(schalterWert){ // was soll geschaltet werden, true oder false?
                  if (!getState('sonoff.0.DVES_5969DC.POWER1').val) setState('sonoff.0.DVES_5969DC.POWER1', true); // nur schalten wenn der Schalter nicht so steht wie er soll
                  if (!getState('sonoff.0.DVES_538400.POWER1').val) setState('sonoff.0.DVES_538400.POWER1', true);
                  } else {
                  if (getState('sonoff.0.DVES_5969DC.POWER1').val) setState('sonoff.0.DVES_5969DC.POWER1', false);
                  if (getState('sonoff.0.DVES_538400.POWER1').val) setState('sonoff.0.DVES_538400.POWER1', false);
                  }
                  log("Esszimmer1 "+schalterWert);
                  }
                  break;
                  case 2:
                  ...
                  case 3:
                  ...
                  }
                  }
                  ! on({id: 'sonoff.0.DVES_5969DC.POWER1', change: "ne"}, function (obj) {
                  Essz(1,obj.state.val);
                  });
                  ! on({id: 'sonoff.0.DVES_538400.POWER1', change: "ne"}, function (obj) {
                  Essz(1,obj.state.val);
                  });

                  1 Reply Last reply Reply Quote 0
                  • rantanplan
                    rantanplan last edited by

                    Bitte einen Export. Nicht den Sourcecode.

                    Den Export in die Tags "spoiler" und "code" einfügen.

                    Zudem ist dies hier die einfachste Möglichkeit zwischen true/false zu toggeln 😉

                    http://forum.iobroker.net/viewtopic.php … 18#p116476

                    Grüße

                    1 Reply Last reply Reply Quote 0
                    • D
                      danielis last edited by

                      Mag sein, dass das die einfachste Art ist zu toggeln.

                      Aber damit passt der Zustand sicher nicht mehr zu der Anzeige an den Tastern, zur Relaisstellung und, dass die beiden synchron sind ist auch nicht mehr sicher.

                      Wie ich schon geschrieben haben verwende ich blockly nicht, kann also nur Code anbieten.

                      1 Reply Last reply Reply Quote 0
                      • rantanplan
                        rantanplan last edited by

                        @danielis:

                        Wie ich schon geschrieben haben verwende ich blockly nicht, kann also nur Code anbieten. `

                        Sorry, aber im Titel dieses Threads steht "Blockly".

                        Da bist Du mit dem JS-Code an der falscher Stelle um Hilfe zu bekommen.

                        Grüße

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

                          Vorschlag:
                          493_blockly_wechsel.jpg
                          bzw. als JS:

                          ! ````
                          const idA = '...';
                          const idB = '...';
                          ! var a = getState(idA).val;
                          var b = getState(idB).val;
                          ! on(idA, function(dp) {
                          a = dp.state.val;
                          if(a != b) setState(idB, a);
                          });
                          ! on(idB, function(dp) {
                          b = dp.state.val;
                          if(a != b) setState(idA, b);
                          });

                          1 Reply Last reply Reply Quote 0
                          • D
                            danielis last edited by

                            Ich will keine Hilfe.

                            Im Gegenteil, habe Hilfe angeboten.

                            Es ging mir lediglich um das Vorgehen und dafür das Beispiel als JS-Code.

                            Das kann von jedem einfach auch in Blockly umgesetzt werden.

                            Sorry falls ich Verwirrung gestiftet habe. Verabschiede mich somit von hier.

                            1 Reply Last reply Reply Quote 0
                            • M
                              MA72 last edited by

                              Hallo,

                              bei dem blockly von paul geht bei mir ein Blinken udn permanenten Schalten los, außerdem kommt der Hinweis: Wrong type of sonoff.0.Flurlicht.POWER: "string". Please fix, while deprecated and will not work in next versions.

                              1 Reply Last reply Reply Quote 0
                              • J
                                Jan1 last edited by

                                Entweder ich hab's überlesen, oder die Frage wurde noch nicht beantwortet. Also was ich nicht verstehe, sollen beide Lampen auch noch einzeln zu schalten sein, oder beide immer an und aus und das eben von einem der beiden Schalter?

                                1 Reply Last reply Reply Quote 0
                                • SmarthomeMF
                                  SmarthomeMF last edited by

                                  Hallo zusammen..

                                  wahr leider etwas beschäftigt und konnte hier nicht weiter machen….

                                  aber nun möchte ich die Wechselschaltung machen...

                                  Gibt es nun ein Blockly das funktioniert?

                                  Ich möchte zwei einzelne Lampen mit je einem Sonoff und einem Schalter gemeinsam schalten.

                                  Das heißt wenn ich Schalter eins drücke sollen bei angehen und wenn ich Schalter zwei drücke sollen auch wieder beide aus gehen...

                                  also eine Wechselachltung.

                                  Danke für die Tipps.

                                  1 Reply Last reply Reply Quote 0
                                  • rantanplan
                                    rantanplan last edited by

                                    Hatte ich schon mal weiter oben beschrieben.
                                    147_beispiel.png

                                    Beim Script-Start sollten beide Lampen natürlich den gleichen Zustand haben.

                                    Grüße

                                    1 Reply Last reply Reply Quote 0
                                    • Wal
                                      Wal Developer last edited by

                                      Hier noch eine Lösung die getestet ist:
                                      2551_schalter.jpg

                                      1 Reply Last reply Reply Quote 0
                                      • SmarthomeMF
                                        SmarthomeMF last edited by

                                        @Wal:

                                        ier noch eine Lösung die getestet ist: `
                                        Danke für die Antwort

                                        Das habe ich auch schon so versucht…

                                        ich erzeuge damit einen ping pong Effekt!!

                                        die blinken nur noch und das ganze lässt sich nicht mehr stoppen!

                                        Mach ich da was falsch?
                                        4668_unbenannt_3.png
                                        4668_unbenannt_4.png

                                        1 Reply Last reply Reply Quote 0
                                        • rantanplan
                                          rantanplan last edited by

                                          @SmarthomeMF:

                                          ich erzeuge damit einen ping pong Effekt!!

                                          die blinken nur noch und das ganze lässt sich nicht mehr stoppen!

                                          Mach ich da was falsch? `

                                          Schau Die doch mal Dein Blockly an.

                                          Du schaltest innerhalb des Triggers die Datenpunkte die Du triggerst. :roll:

                                          Ist "POWER" der richtige Datenpunkt?

                                          Bei anderen ist das die Watt-Angabe vom Energieverbrauch.

                                          Mach doch mal von den Datenpunktten einen Screenshot.

                                          Grüße

                                          1 Reply Last reply Reply Quote 0
                                          • BBTown
                                            BBTown last edited by

                                            was stimmt mit diesem Lösungsvorschlag nicht?

                                            http://forum.iobroker.net/viewtopic.php … 47#p116482

                                            und was stimmt mit dem Lösungsvorschlag von rantanplan nicht?

                                            http://forum.iobroker.net/viewtopic.php … 12#p130685

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            457
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            43
                                            6723
                                            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