Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst]Tuya mit Lupusecrelais koppeln -Blockly

    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

    [Gelöst]Tuya mit Lupusecrelais koppeln -Blockly

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

      Bitte ignorieren.

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

        @paul53
        deinen Kommentar oder was meinst du?

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

          @benziman sagte:

          @paul53
          deinen Kommentar oder was meinst du?

          Ich hatte mich dadurch täuschen lassen, dass eine Variable den gleichen Bezeichner (status) hat, wie der Name des Trigger-Datenpunktes lautet. Das sollte man vermeiden, zumal Variablen und Trigger die gleiche Farbe haben.

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

            @benziman
            Es wird der falsche Datenpunkt zum Triggern verwendet, denn die Quelle soll das Lupusecrelais sein. Ändere das Trigger-Objekt in Flur (Rollladen hoch/runter).

            Blockly_temp.JPG

            Export (IDs zuweisen !):

            <xml xmlns="http://www.w3.org/1999/xhtml">
             <variables>
               <variable type="" id="4Y#?XT8YMB$a2tVPupOu">cmd</variable>
             </variables>
             <block type="comment" id="G(c]vg:,U/c^D?;TM!7T" x="-588" y="162">
               <field name="COMMENT">Flur (Rollladen hoch/runter)</field>
               <next>
                 <block type="on" id="}og1U7*H/4fSVU,M2FTv">
                   <field name="OID">Object ID</field>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <statement name="STATEMENT">
                     <block type="controls_if" id="Uz@1cpu@[8,g5-;IKCLQ">
                       <mutation elseif="1" else="1"></mutation>
                       <value name="IF0">
                         <block type="logic_compare" id="A$)h!enyxg`wM7z:Vm6|">
                           <field name="OP">EQ</field>
                           <value name="A">
                             <block type="on_source" id="c,-[T?C.19yU8uE=};`s">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="text" id="6tF1O)HmnCAi?W2r`PWG">
                               <field name="TEXT">runter</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO0">
                         <block type="variables_set" id="8AgIq?fU[NTp)U_ZA(#!">
                           <field name="VAR" id="4Y#?XT8YMB$a2tVPupOu" variabletype="">cmd</field>
                           <value name="VALUE">
                             <block type="math_number" id="{`ThgFR5eJ)#s9;q!4yA">
                               <field name="NUM">1</field>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <value name="IF1">
                         <block type="logic_compare" id="=!V4UnQlFn3syN=1/iAt">
                           <field name="OP">EQ</field>
                           <value name="A">
                             <block type="on_source" id="M|o?QT%wnt*:gM;E/qFo">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="text" id="K)n.)/.Zikb6Y^=gnm4I">
                               <field name="TEXT">hoch</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO1">
                         <block type="variables_set" id="|@F~5E?{13f0tFYjepX`">
                           <field name="VAR" id="4Y#?XT8YMB$a2tVPupOu" variabletype="">cmd</field>
                           <value name="VALUE">
                             <block type="math_number" id="JE@=P./!6@KXl}HGxk=b">
                               <field name="NUM">2</field>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <statement name="ELSE">
                         <block type="variables_set" id="r}H*1OH6h/mmhpZce0=s">
                           <field name="VAR" id="4Y#?XT8YMB$a2tVPupOu" variabletype="">cmd</field>
                           <value name="VALUE">
                             <block type="math_number" id="P~`7[rC#cewB2?`af)`!">
                               <field name="NUM">3</field>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <next>
                         <block type="control" id="(4}$;pPQJO2=uN`AV6y#">
                           <mutation delay_input="false"></mutation>
                           <field name="OID">Object ID</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="variables_get" id="oV8%}5tblpO%kSe~N$ee">
                               <field name="VAR" id="4Y#?XT8YMB$a2tVPupOu" variabletype="">cmd</field>
                             </block>
                           </value>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
            </xml>
            

            1 Reply Last reply Reply Quote 0
            • B
              benziman last edited by benziman

              Hi, erstmal mal Danke für die schnelle Antwort und den Aufwand!

              Hat leider nicht funktioniert (Status vom Lupusecrelais wird auch nur sehr verzögert aktualisiert)
              Für die ObjectID habe ich das Lupusecrelais (Flur) und davon die ID "switch" genommen. unten bei ObjectID habe ich dann meinen Schalter im Arbeitszimmer genommen, leider tut sich nichts 😞

              Anbei mal ein Screenshot vom Lupusecrelais.

              b9499689-c7af-4148-8fac-3e6041d54313-grafik.png

              gglfs könnte ich das Script ja auch ändern, so dass sich alle Tuyarelais öffnen/schließen für 10 Sekunden (ca 50%) und sich das Lupusecrelais dem anschließt?
              Blicke bei Blockly leider noch nicht ganz durch, daher DANKE für jeden Tipp/Hinweis oder sogar jedes Script 🙂

              Hier noch der Output der Logs:
              bd4b34a1-54f9-48b2-a056-d2c03ba51b62-grafik.png

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

                @benziman sagte:

                Anbei mal ein Screenshot vom Lupusecrelais.

                Der Datenpunkt mit dem Namen Flur (Rollladen hoch/runter) liefert keinen String, sondern Zahlenwerte - ist also ein Multistate-Datenpunkt. Poste mal die RAW-Ansicht der Objekteigenschaften (in Code Tags).

                1 Reply Last reply Reply Quote 0
                • B
                  benziman last edited by

                  Du meinst das hier oder?

                  1b64f226-eac6-4875-8dfe-f4e59ce9bd43-grafik.png

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

                    @benziman sagte:

                    Du meinst das hier oder?

                    Ja, und daraus sieht man, dass Zahlen geprüft werden müssen.

                    Blockly_temp.JPG

                    1 Reply Last reply Reply Quote 0
                    • B
                      benziman last edited by benziman

                      Danke! Habe ich angepasst, leider bewegt sich da weiterhin nix.
                      RAW vom Tuyaschalter mal anbei (vllt liegt es ja daran)

                      753d6973-3de7-4952-ba2d-bd892da9ef9d-grafik.png

                      Auch eine Steuerung nach Zeitplan klappt nicht. Status ist wieder wie oben beschrieben der Tuyataster.

                      7d8778cb-723b-431e-ab1f-a0748b4c3279-grafik.png

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

                        @benziman sagte:

                        RAW vom Tuyaschalter mal anbei (vllt liegt es ja daran)

                        Ja, wer denkt sich so einen besch... Multistate aus ?

                        Blockly_temp.JPG

                        1 Reply Last reply Reply Quote 0
                        • B
                          benziman last edited by

                          ok, eine gute und eine schlechte Nachricht.
                          Die Gute, der Lupusecschalter wird jetzt geschaltet wenn das Lupusecrelais hochfährt 🙂 DANKE!
                          Die "schlechte" der Tuyaschalter fährt nicht den kompletten Weg hoch/runter auch wenn es das Lupusecrelais macht (da eine gewisse Verzögerung ca 5 Sekunden vorliegt). Die Rollos benötigen 19 Sekunden für eine komplette fahrt, leider hat der Tuyaschalter keine Öffnungsanzeige sondern schaltet nur nach Zeit 😕
                          Eine Idee?

                          1 Reply Last reply Reply Quote 0
                          • B
                            benziman last edited by benziman

                            Schön dumm wenn man die Parameter für hoch/runter/stop falsch liest^^
                            Dann denke ich mal, das eine Kopplung an das Lupusecrelais wegen der Verzögerung ungeeignet ist, daher wäre meine Idee folgende via Zeitplan (getestet und funktioniert)
                            5f324afe-5245-4181-bea2-d19bed3dc332-grafik.png

                            Drei Fragen dazu:

                            1. wie kann ich denn am einfachsten noch eine Hoch/Runterfahrzeit definieren (also z.B fahre um 6 Uhr für 10Sekunden hoch, entspricht ca 50%)

                            2. da ich 6 Tuyataster habe (bei denen der Status naturlich überall "Status" heist), wie kann ich das jetzt für alle Schalter umsetzen, einfach copy/paste unter die jeweiligen Einträge für alle sechs Schalter?

                            So vielleicht? (Test gerade hat nicht funktioniert!)
                            f6b0e78a-565a-4cc7-b413-7908ad79a727-grafik.png

                            1. letzte Frage: gerne würde ich noch eine zusätzliche Bedingung wie bei 1. mitgeben: Sprich 1. bleibt im Script und es kommt eine weitere Bedingung hinzu: Fahre um 7Uhr Rolladen für weitere 10 Sekunden (da ja zu dem Zeitpunkt auf 50%) hoch wenn Alarmanlage unscharf.

                            hier zumindest meine Idee wenn Alarmanlage unscharf ist (Zeitintervall 10Sekunden fahren fehlt noch)
                            e7f7bf6d-5975-47fe-9b9f-1adaa9c24467-grafik.png

                            So sieht die Zeile in der Objektansicht aus für den Status unscharf.
                            ce4effe6-9ae2-4638-977e-3c908c23cc30-grafik.png

                            RAW des Eitnrags
                            362e40db-a033-411f-a3c7-cd51ee7daed9-grafik.png

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

                              @benziman sagte:

                              fahre um 6 Uhr für 10Sekunden hoch, entspricht ca 50%

                              Nach 10 s stoppen.

                              Blockly_temp.JPG

                              @benziman sagte:

                              bei denen der Status naturlich überall "Status" heist

                              Das solltest Du ändern, denn in Blockly sieht man die Namen der Datenpunkte, die beliebig angepasst werden können.

                              @benziman sagte in Tuyaschalter mit Lupusecrelais koppeln -Blockly:

                              einfach copy/paste unter die jeweiligen Einträge für alle sechs Schalter?

                              Copy/paste funktioniert nicht, da alle 6 Datenpunkte ein andere ID haben. 6 mal steuere mit Zuweisung der jeweiligen ID funktioniert.

                              @benziman sagte in Tuyaschalter mit Lupusecrelais koppeln -Blockly:

                              hier zumindest meine Idee wenn Alarmanlage unscharf ist

                              Die Abfrage muss innerhalb des Zeit-Triggers erfolgen.

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

                                @paul53

                                Zeitintervall habe ich hinzugefügt

                                5c4878d5-7bce-45b5-9d70-deacaded636a-grafik.png

                                @benziman sagte:

                                bei denen der Status naturlich überall "Status" heist
                                

                                Das solltest Du ändern, denn in Blockly sieht man die Namen der Datenpunkte, die beliebig angepasst werden können.

                                --> kann ich dass dann einfach in der Ojektansicht ändern? (wird das nicht beim nächsten Sync mit der Tuyaapp wieder überschrieben?)

                                hier zumindest meine Idee wenn Alarmanlage unscharf ist
                                

                                Die Abfrage muss innerhalb des Zeit-Triggers erfolgen.
                                --> da kann ich dir nicht ganz folgen, da ich nicht weiß wie ich diesen Block innerhalb des Zeitplans einfügen kann 😕
                                a8c20553-160f-4910-9c2b-5c10aa4e7e00-grafik.png

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

                                  @benziman sagte:

                                  kann ich dass dann einfach in der Ojektansicht ändern?

                                  Ja.

                                  @benziman sagte in Tuyaschalter mit Lupusecrelais koppeln -Blockly:

                                  wird das nicht beim nächsten Sync mit der Tuyaapp wieder überschrieben?

                                  Keine Ahnung, sollte aber nicht sein.

                                  @benziman sagte in Tuyaschalter mit Lupusecrelais koppeln -Blockly:

                                  da ich nicht weiß wie ich diesen Block innerhalb des Zeitplans einfügen kann

                                  Blockly_temp2.JPG

                                  @benziman sagte in Tuyaschalter mit Lupusecrelais koppeln -Blockly:

                                  Zeitintervall habe ich hinzugefügt

                                  Wenn alle Rollos zur gleichen Zeit gestoppt werden sollen, genügt ein Timeout in dem alle Stop-Befehle ausgeführt werden.

                                  Hier noch eine Möglichkeit, mit Prozenten (z.B. aus einem Datenpunkt) anstelle von festen Zeiten bis zum Stop zu arbeiten:

                                  Blockly_temp.JPG

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    benziman last edited by benziman

                                    Das mit dem Status schaue ich mir mal an.

                                    Mein Zeitplan sieht jetzt wie folgt aus:

                                    5b9a71c2-e66c-4379-8dd4-1d47fc4fca24-grafik.png

                                    so wie du meintest?

                                    Danke für deine Idee mit den Prozenten, versuche ich heute Abend!

                                    Sähe eine Verkettung dann in etwa so aus oder klappt das dann nicht?

                                    e9bb17ce-675f-45e1-baa4-a7ea842ac690-grafik.png

                                    der oberste Zeitplan soll immer um 6 Uhr ausgeführt werden. der in der mitte nur wenn unscharf und der letzte auch immer egal ob unscharf oder nicht.

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

                                      @benziman sagte :

                                      Sähe eine Verkettung dann in etwa so aus oder klappt das dann nicht?

                                      Das sollte so funktionieren. Da der Stop für 2 Rollos jeweils gleichzeitig erfolgt, genügen anstelle von 6 Timeouts auch 3 Timeouts.

                                      Blockly_temp2.JPG

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

                                        @paul53

                                        Das müsste ja dann auch für alle sechs Schalter auf einmal klappen oder? (hatte erstmal nur zwei als Beispiel genommen)

                                        Kann es sein, dass das Script die diversen Schalter momentan nicht richtig ansteuern kann, weil alle "Status" heisen?
                                        Hatte das vorhin mal zu Hause versucht, allerdings hat sich nur ein Rollo bewegt.

                                        Habe jetzt mal deine Prozentvariante nachgebaut: (Variable Prozent hatte ich definieren müssen da nicht vorhanden)
                                        62d07861-054d-476a-ac6f-4123e33e2cb2-grafik.png

                                        Bei "stop zyklische Ausführung" habe ich leider keine Auswahl, das Fenster im Dropdown sieht auch ziemlich komisch aus.
                                        Eine Idee?

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

                                          @benziman sagte:

                                          Das müsste ja dann auch für alle sechs Schalter auf einmal klappen oder?

                                          Ja.

                                          @benziman sagte:

                                          Bei "stop zyklische Ausführung" habe ich leider keine Auswahl, das Fenster im Dropdown sieht auch ziemlich komisch aus.
                                          Eine Idee?

                                          Das Intervall muss erst erzeugt werden, bevor es gestoppt werden kann. Du verwendest aber nicht Intervall, sondern Timeout !

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

                                            @paul53

                                            ahhh jetzt hab ich, ich hatte das falsche Element verwendet! Klappt jetzt 🙂

                                            Kann es sein, dass das Script die diversen Schalter momentan nicht richtig ansteuern kann, weil alle "Status" heisen?
                                            Hatte das vorhin mal zu Hause versucht, allerdings hat sich nur ein Rollo bewegt.

                                            Hier nochmal meine verschachtelte Variante mit aktuell zwei Rollos je Intervall (spielt es eine Rolle ob ich da timeout oder Intervall verwende solange ich nicht die Prozentvariante nutze?)

                                            9175d358-6a44-4e30-927e-b85290958e5e-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            764
                                            Online

                                            31.9k
                                            Users

                                            80.3k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            36
                                            1482
                                            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