Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] flow-Sperre selbst bauen. Aber wie?

    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] flow-Sperre selbst bauen. Aber wie?

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

      Ich möchte gerne meine Flows so modifizieren, dass an einer bestimmten Stelle des Flows ein Datenpunkt mit "IObroker in" abgefragt wird.

      Ich nenne diesen Datenpunkt "Kindersicherung"

      Wenn er aktiviert ist (true), dass soll der Flow stoppen bzw einen anderen Weg durchlaufen.

      Ist er False, soll der Flow weiter gehen.

      Hintergrund ist, dass kleine Kinder gerne mit Alexa spielen und gerne mal mitten in der Nacht Lichter ein und ausschalten.

      Ich möchte dann also mit der Kindersischerung verhindern, dass der Status einer Lampe verändert werden kann. (über Alexa)

      Wunsch:

      Wemo-Adapter empfängt "an" oder "aus". dann geht es weiter zur Abfrage der Kindersicherung. Ist sie inaktiv, wird das Wemo-Kommando weiter geleitet. Ist sie aktiv, passiert nix oder der aktuelle Lampenstatus wird weiter geleitet.

      Ich könnte es ja auch mit einer Funktion machen. Aber da gibt es ja imer nur einen Eingang.

      Oder ein OR- bzw- AND-node (node-red-contrib-bool-gate). Aber da verstehe ich nicht wirklich, wie man den benutzt.

      Die How-Tos sind sehr "bescheiden"

      Boolesche Logik verstehe ist. Aber nicht, wie man den Node verwendet. 😞

      Alternative: Wie kann ich in einem functions-node auf Elemente von Abjekten zugreifen? Das habe ich irgendwie auch nicht hin bekommen

      Hat jemand eine Idee?

      Mittlerweile habe ich das Problem gelöst (s.u.)

      1 Reply Last reply Reply Quote 0
      • R
        rewenode last edited by

        Da kannst du dir ein msg-gate zimmern.

        3999_msg_gate_filter.pdf

        Gruß

        1 Reply Last reply Reply Quote 0
        • A
          Arnulf last edited by

          Sorry. Ich bin zu doof dafür.

          Danke für den Link. Ich verstehe aber schon garnicht, warum hier immer ein Trigger verwendet wird.

          Und ich verstehe nicht, wie man 2 unterschiedliche Eingänge bekommen und verarbeiten kann.

          Ein Eingang wäre ja, das Flag der Sicherung zu bekommen und ein anderer Eingang das Signal, das eigentlich vom Alexa oder Wemo-Node käme.

          Gibt es eine Möglichkeit, in der Funktion irgendwie auf ein State eines Objektszuzugreifen? Dann wäre es für mich viel einfacher zu verstehn.

          😢

          1 Reply Last reply Reply Quote 0
          • A
            Arnulf last edited by

            Ich habe nun weider viel gelernt.

            Viel über die Funktionsweise von node-red.

            Ergebnis: ich konnte mein Problem lösen und ist eigentlich ganz einfach.

            man muss nur verstehen, wie die Informationen in node-red weiter geleitet werden und einen Knoten haben, der Zustände in iobroker auslesen kann. Und das innerhalb eines Flows.

            Schlüssel ist ein Knoten, der auf ioBroker zugreifen kann und sowohl einen Eingang als auch einen Ausgang hat.

            Ich glaube nicht, dass dieser Knoten schon im Grundset dabei ist. Leider weiß ich nicht mehr, wie er da im Laufe meiner Versuche reingekommen ist.

            Wenn mir also jemand sagen kann, wie ich erkennen kann, über welches Paket ein Knoten rein gekommen ist, trage ich das gerne nach.

            Auch kann ich leider im Moment keinen Screenshot senden, weil ich im Büro bin 😄 . Aber ich versuche es zu beschreiben….

            Am Anfang des Flows habe ich einen WeMo-node, der den Flow über einen Trigger (Alexa Sprachkommando) startet.

            Das Kommando soll einen Zustand im IObroker setzen. Hier ist es eine Lampe schalten.

            im nächsten Schritt wandle ich den String im Payload in einen booleschen Wert um. Das kann theoretisch auch später erst gemacht werden weil es für mein Problem nicht relevant ist, aber ich hatte es halt so entschieden.

            Nach der Umwandlung kommt der eigentliche Trick: Ich nehme das Umwandlungsergebnis und führe es in einen Node "iobroker.get" (oder so ähnlich)

            Dieser Knoten macht nicht viel, ist aber für mich das Schweizer Taschenmesser.

            Man kann nämlich hier Variablen von iobroker-Objekten auslesen und sie zusätzlich in das msg-Objekt hinzuzufügen ohne den ursprünglichen payload zu verändern.

            Der nachgeschaltete Switch entscheidet dann, ob das Ergebnis weiter verarbeitet wird oder nicht.

            Und schon habe ich eine Kindersicherung.

            Sehr beim Verständnis über das msg-Objekt hat mir dieser Beitrag geholfen:

            viewtopic.php?t=14632

            1 Reply Last reply Reply Quote 0
            • G
              Garf last edited by

              @Arnulf:

              Sehr beim Verständnis über das msg-Objekt hat mir dieser Beitrag geholfen:

              viewtopic.php?t=14632 `
              Und wer hat es geschrieben? :lol:

              Es gibt eine Vielzahl von Lösungsansätzen.

              Über einen Timer der eine Flow-Variablen setzt und die Kindersicherung ein- und ausschaltet. In einem Function-Node dann die Logik programmiert und den Ausgang für das Licht setzt.

              Über die Logic-Nodes AND, OR, etc. Wobei die dort hinterlegte Logik nicht gerade ganz so verständlich ist. Man könnte es auch über die Variablen msg.payload und msg.topic lösen.

              Vielleich möchtest du dich in Node-Red noch weiter einarbeiten. Als deutsche Literatur ist mir kürzlich diese Buch ins Auge gefallen:

              https://www.elektor.de/iot-programmierung-mit-node-red

              Ansonsten könnte ich diese Tutorials empfehlen:

              http://www.notenoughtech.com/home-autom … ed-server/

              http://www.notenoughtech.com/home-autom ... ginners-2/

              http://www.notenoughtech.com/home-autom ... ginners-3/

              http://www.notenoughtech.com/featured/n ... ginners-4/

              http://www.notenoughtech.com/home-autom ... ginners-5/

              http://www.notenoughtech.com/home-autom ... ginners-6/

              https://notenoughtech.com/home-automati ... ginners-7/

              https://www.youtube.com/watch?v=GJS_qgVEjQ0

              https://www.youtube.com/watch?v=oRTb6bgGN_I

              https://www.youtube.com/watch?v=jWjyIz4Jz58

              https://www.youtube.com/watch?v=PbEoHxFOdmE

              https://www.youtube.com/watch?v=LIEKDOzeEdI

              1 Reply Last reply Reply Quote 0
              • R
                rewenode last edited by

                @Arnulf:

                .. Ich verstehe aber schon garnicht, warum hier immer ein Trigger verwendet wird… `

                Der Trigger simuliert beim Original-Autor lediglich einen Impuls, der halt durchlassen werden soll oder eben nicht.

                In deinem Fall kannst du den Trigger samt Inject-node einfach durch einen beliebigen ioBroker-State ersetzen.

                Und die Schalter Erlaubt/Verboten kannst du natürlich ebenfalls durch einen einzigen ioBroker-state ersetzen, der muss halt (true=erlaubt/false=verboten) liefern.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                631
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                3
                6
                1794
                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