Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Blockly in Node-red umwandeln

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Blockly in Node-red umwandeln

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

      Ich hatte mit @mickym mehrere Projekte gebaut. Besser: Er hat sie gebaut oder mich begleitet....wie man das auch immer nennen möchte 🙂
      Vereinzelt habe ich noch Dinge die sowohl in Blockly als auch in node-red laufen....vor allem die Steuerung von Lampen oder Bewegungssensoren.

      Heute Zeigt mir @mickym an einem einfachen Beispiel, wie dies in einem kompletten Flow umgesetzt werden kann, ohne blockly zu verwenden.

      BTW: Bei meinen Eltern läuft der Alexa Node nicht mehr. Wie schon häufiger beschrieben funktionieren alte Geräte aber neue fügt er nicht hinzu.
      Obwohl Port 80 bei denen nicht belegt ist, geht es trotzdem nicht.
      Ich habe jetzt mal lokal eine iobroker instanz bei mir zuhause aufgesetzt.
      Hier scheint es zu funktionieren und ich kann die Geräte über die App hinzufügen.

      Was ich nun noch in node-red benötige wäre das Blockly: Wenn der Datenpunkt durch alexa in ausgelöst wird, schalte Lampe auf wahr.
      Vermutlich brauche ich gar keinen Datenpunkt, oder? Kann auch das Gerät direkt ansteuern?

      echo1.png
      Lampe Balkon ersetzen durch Schlazimmerlampe
      echo2.png

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Marko1974 last edited by mickym

        @marko1974 Du willst das
        b0fd3f0d-1e74-4491-9dd1-dce6f82055d8-image.png

        in NodeRed umsetzen?

        Nein nicht hinter das Alexa Ding, sondern in das Alexa Ding. Aber das Blockly kapiert ich nicht - was soll denn diese Abfrage?

        Aus LampeBalkon kommt doch true oder false und Du schreibst den gleichen Wert in Lampe Balkon on. Dann kannst Dir doch die Abfrage sparen.

        Marko1974 1 Reply Last reply Reply Quote 0
        • Marko1974
          Marko1974 @mickym last edited by

          @mickym ja genau…dass soll quasi hinter das Alexa Ding, was es schon in node-red gibt

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Marko1974 last edited by mickym

            @marko1974 sagte in Blockly in Node-red umwandeln:

            @mickym ja genau…dass soll quasi hinter das Alexa Ding, was es schon in node-red gibt

            Ich verstehe das Blockly nicht - was soll diese Abfrage.

            Aus Lampe Balkon kommt true/false und das willst Du nach Lampe Balkon on schreiben. Was soll dann die Abfrage?

            Du könntest Du in den steuere Block für Lampe on einfach den Wert aus Lampe schreiben?

            Warum hast Du das Blockly nicht einfach so gemacht?

            53a01455-8ad1-464b-a637-788896e54cde-image.png

            Der Wert ist doch der gleiche den Du dann in den anderen Datenpunkt schickst.

            Marko1974 1 Reply Last reply Reply Quote 1
            • Marko1974
              Marko1974 @mickym last edited by

              @mickym ja das meine ich ja…ich habe damals glaube ich für alles Datenpunkte angelegt. Alexa steuert also den datenpunkt….wenn der datenpunkt geändert wird greift das Blockly. Eigentlich totaler Quatsch. Kann ja einfach das Gerät als iobroker out nehmen oder?

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Marko1974 last edited by mickym

                @marko1974 Also wenn Du nur das was aus der Alexa Node kommt in die Schlafzimmerlampe schalten willst, dann mach das mal zwischendrin alles weg und poste lieber mal das Nachrichtenobjekt was aus der Alexa Node kommt mit der du die Schlafzimmerlampe steuern willst.

                Am Besten machst Du eine Debug Node mit dem ganzen Nachrichtenobjekt dran und kopierst aus dem Debug Fenster den Wert hier in CodeTags ein.

                bbc23f8e-102f-4f53-beb0-d557fb515edd-image.png

                und den Wert kopierst Du den value am Besten oben vom gesamten Objekt (copy value)

                copy path.gif

                Am Besten wenn die Lampe ausschaltest und ein Objekt wenn Du sie einschaltest.

                Marko1974 1 Reply Last reply Reply Quote 0
                • Marko1974
                  Marko1974 @mickym last edited by

                  @mickym

                  21.12.2024, 21:06:31node: debug 1msg.payload : string[2]
                  "on"
                  21.12.2024, 21:06:35node: debug 1msg.payload : string[3]
                  "off"
                  
                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Marko1974 last edited by mickym

                    @marko1974 Na ist zwar nicht das was ich genau wollte. Aber sieht so aus, als ob Du nur die payload "on" und "off" in true und false ändern musst.

                    Um eine payload zu ÄNDERN nimmst Du eine Change = Änderungs Node und das wars schon. Die anderen Nodes kannst Du Dir sparen.

                    In dieser CHANGE (ÄNDERUNGSNODE) änderst Du die payload als STRING (ZEICHENKETTE) (a-z) "on" in einen Logikwert true und für "off" in false.

                    be4ba25c-b0e3-40ab-aacd-2c27e35c38c2-image.png

                    Diese Change Node klemmst Du zwischen die Alexa und iobroker Out Node und das wars - die switch und function NOdes sparst Du Dir.

                    Generell empfehle ich Dir zu ANFANG keine function Nodes zu verwenden. Du willst doch nicht Javascript programmieren oder?

                    Du kannst es natürlich auch so machen wie Du es im Blockly gemacht hast und mit switch Arbeiten - aber auch dann setzt Du mit einer Change Node die payload.

                    Das wäre dann halt auch so umständlich - du machst eine Wenn Abfrage:

                    4f90f2f7-7af4-4a79-8332-3e40d7ea12a9-image.png

                    4e091d1a-cb3f-4cbf-a62f-af09c4a8c7d2-image.png

                    payload = on an den oberen Ausgang 1
                    payload= off an den unteren Ausgang 2

                    Zu setzen und somit auch ÄNDERN einer Payload auch eine CHANGE Node zum Setzen einer payload auf einen bestimmten Wert:

                    f4851de4-bd8d-4bd2-9327-1becbde7cf65-image.png

                    hier auf true.

                    Dazu braucht man keine function NOdes um eine payload zu setzen.

                    Marko1974 1 Reply Last reply Reply Quote 0
                    • Marko1974
                      Marko1974 @mickym last edited by

                      @mickym ja das habe ich verstanden. Momentan ist es so, dass ich mit nem neuen Zigbee Adapter arbeite. Meine Eltern haben ja deconz, also conbee.
                      Die Lampe habe ich hinzugefügt und versuche gerade direkt den Datenpunkt zu triggern. Das nimmt er aber nicht, obwohl er den Wert ändert.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Marko1974 last edited by

                        @marko1974 Du musst als command schicken nicht als value. command = steuere, value = aktualisiere. Das hängt wieder mit dem ack Flag zusammen,

                        Marko1974 1 Reply Last reply Reply Quote 0
                        • Marko1974
                          Marko1974 @mickym last edited by

                          @mickym hatte ich diesmal richtig gemacht. Durch das Umsetzen des Steckers in ein anderes Zimmer hat er mir das in der Alexa app deleted. Altes problem: kann es nicht neu hinzufügen. Der flow läuft!

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Marko1974 last edited by

                            @marko1974 Gut mit Alexa kenn ich mich nicht aus - da muss ich passen und ich nutze zwar auch den conbee aber mit zigbee2mqtt und mqtt und nicht mit einem zigbee adapter. Deswegen bin ich da nicht mehr ganz up to date.

                            Marko1974 1 Reply Last reply Reply Quote 0
                            • Marko1974
                              Marko1974 @mickym last edited by

                              @mickym ich hab jetzt den zigbee adapter genommen.....oder brauche ich den zigbee2mqtt?

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Marko1974 last edited by

                                @marko1974 Nein Du kannst auch nur mit zigbee adapter arbeiten. Ich hatte nur einige Probleme und habe alle Adapter rausgeschmissen, die mqtt sprechen.

                                Marko1974 1 Reply Last reply Reply Quote 0
                                • Marko1974
                                  Marko1974 @mickym last edited by Marko1974

                                  @mickym also der datenpunkt wird in node red auf false oder true gesetzt. Das gerät selbst schaltet jedoch nicht.

                                  State value to set for "zigbee.0.70b3d52b60123a6b.state" has to be type "boolean" but received type "string" 
                                  
                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @Marko1974 last edited by mickym

                                    Ja dann hast Du true/false als String geschickt und nicht als boolean - zeig man Deine Change Node bzw. schau Dir meine nochmal genau an!

                                    Ausserdem schau - dass Du in Deinem NodeRed Adapter NICHT DIESE unseelige Zeichenkonvertierung eingeschaltet hast. Die MUSS AUS sein!!!

                                    Marko1974 mickym 2 Replies Last reply Reply Quote 0
                                    • Marko1974
                                      Marko1974 @mickym last edited by Marko1974

                                      @mickym ich habs gefunden. 🙂 Brille hilft 😉 Funktioniert! Natürlich hatte ich es in der Change node noch auf string

                                      1 Reply Last reply Reply Quote 1
                                      • mickym
                                        mickym Most Active @mickym last edited by

                                        @mickym

                                        @marko1974 sagte in Blockly in Node-red umwandeln:

                                        @mickym ich habs gefunden. 🙂 Brille hilft 😉 Funktioniert! Natürlich hatte ich es in der Change node noch auf string

                                        ja hier hast Du eine Menge Optionen - WELCHEN Datentyp Deine payload haben soill:

                                        c35c9ac1-6ba3-498c-91e9-61237e416d60-image.png

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

                                          @mickym und genau die habe ich mir mal weggedacht 🙂

                                          Wenn ich jetzt sagen möchte:

                                          ein kontakt löst aus, und wenn er true ist, schalte irgendwas ein ....
                                          Dann nehme ich auch ein iobroker in...nämlich den kontakt, dann ne switch node und als iobroker out die lampe?
                                          Oder nicmmt man da inject?

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Marko1974 last edited by mickym

                                            @marko1974 Jein - hängt davon ab ist das ein Taster oder ein Schalter. Wenn ein Schalter - dann kannst ja direkt in die iobroker Out weiterleiten. Wenn es ein Taster ist, dann musst Du ja erst ermitteln, wie der aktuelle Zustand der Lampe ist. Die switch Node brauchst Du nur, wenn Du unterschiedlich agieren willst, also wenn dann, wenn dann usw.

                                            Mit der Inject Node kannst du den Schalter simulieren bzw, den Flow initiieren. Du willst aber mit einem Schalter schalten, also brauchst Du den Zustand des Schalters aus dem iobroker und insofern eine iobrokerIN Node.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            708
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            23
                                            847
                                            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