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. Zeitgesteuerter Taster

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zeitgesteuerter Taster

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

      Moin

      Habe einen normalen physischen Impulsgeber (Taster).

      Diesen habe ich in NodeRed eingebunden.

      der Taster darf erst ein True senden, nachdem er mindestens 5 Sekunden gedrückt wurde. Lässt man den Taster unter 5 Sekunden los, so soll sich die gesamte Sache abbrechen. Ein erneutes betätigen von mindestens 5 Sekunden wäre dann fällig.

      Mittels Trigger Node komme ich auf halbgare Resultate.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @m.gans last edited by mickym

        @teemo Na die trigger Node ist schon richtig. Hast Du einen Datenpunkt der solange true sendet und dann false bist Du ihn loslässt oder sendet der Taster nur einmal true und dann nichts mehr?

        c29ff74d-255e-4e29-b1e0-d2a8c4288eb5-image.png

        Wenn der Taster während des Drückens permanent true sendet dann machst Du noch eine Filternode davor.

        [{"id":"3087acd44e8aeb81","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":190,"y":6880,"wires":[["1d4eee8ec53c8704"]]},{"id":"b76d669ecf559674","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":190,"y":6920,"wires":[["1d4eee8ec53c8704"]]},{"id":"1d4eee8ec53c8704","type":"trigger","z":"289f539dcc33814e","name":"","op1":"","op2":"true","op1type":"nul","op2type":"bool","duration":"5","extend":false,"overrideDelay":false,"units":"s","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":380,"y":6900,"wires":[["326fd68023bb9532"]]},{"id":"326fd68023bb9532","type":"debug","z":"289f539dcc33814e","name":"Ergebnis","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":560,"y":6900,"wires":[]}]
        

        Du kannst das mit den Inject Nodes simulieren und so musst Du halt das Eingangssignal ggf. anpassen.

        e59cc7ba-5aa5-494a-ad2c-58c9f60c351a-image.png

        Das false Signal setzt die trigger Node zurück und es wird nichts gesendet, wenn also false innerhalb der 5s in der trigger Node ankommt.

        M 1 Reply Last reply Reply Quote 0
        • M
          m.gans @mickym last edited by

          @mickym Der sendet so lange True wie gedrückt wird. Wird losgelassen, sendet der nichts mehr.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @m.gans last edited by

            @teemo

            Dann musst Du so ein Konstrukt aus 2 trigger Nodes basteln:

            72fea506-4d95-427b-97a1-d494ca6da10e-image.png

            Wenn die true Signale - langsamer als im 250ms Bereich kommen, dann den Wert der 1. Node erhöhen.

            [{"id":"3087acd44e8aeb81","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":170,"y":6900,"wires":[["a2322fe21e0add80"]]},{"id":"1d4eee8ec53c8704","type":"trigger","z":"289f539dcc33814e","name":"","op1":"","op2":"true","op1type":"nul","op2type":"bool","duration":"5","extend":true,"overrideDelay":false,"units":"s","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":540,"y":6900,"wires":[["326fd68023bb9532"]]},{"id":"326fd68023bb9532","type":"debug","z":"289f539dcc33814e","name":"Ergebnis","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":760,"y":6900,"wires":[]},{"id":"a2322fe21e0add80","type":"trigger","z":"289f539dcc33814e","name":"","op1":"true","op2":"false","op1type":"bool","op2type":"bool","duration":"250","extend":true,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":340,"y":6900,"wires":[["1d4eee8ec53c8704"]]}]
            

            M 1 Reply Last reply Reply Quote 0
            • M
              m.gans @mickym last edited by

              @mickym oke. Habe es jetzt auch hinbekommen. Danke trotzdem. Gibt es eine Möglichkeit die ablaufende Trigger Zeit auf dem Dashboard anzuzeigen?

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @m.gans last edited by

                @teemo Nein - Du kannst höchsten mit einem Zeitverzug parallel einen Timer anzeigen, wenn Du willst.

                M 1 Reply Last reply Reply Quote 0
                • M
                  m.gans @mickym last edited by

                  @mickym Gibt es irgendeine Möglichkeit eine ablaufende Zeit im Dashboard darzustellen?

                  mickym 2 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @m.gans last edited by

                    @teemo Wie gesagt klar Du kannst immer einen Timer ablaufen lassen und das ausgeben. Auch mit der trigger Node - ich mach gleich einen flow.

                    1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @m.gans last edited by

                      @teemo So ich habe jetzt auf die schnelle einen Timer mittels function Node gemacht - weil sich das in diesem Fall anbietet.


                      [{"id":"36b01892f29ff531","type":"trigger","z":"289f539dcc33814e","name":"","op1":"true","op2":"0","op1type":"bool","op2type":"str","duration":"-1","extend":false,"overrideDelay":false,"units":"s","reset":"0","bytopic":"all","topic":"topic","outputs":1,"x":580,"y":6980,"wires":[["7476062a19dd760e"]]},{"id":"7476062a19dd760e","type":"function","z":"289f539dcc33814e","name":"Timer","func":"var timer = context.get("timer");\nif (msg.payload) {\n if (timer === undefined){\n // Initialisiere Timer\n timer = 5;\n msg.payload = timer;\n } else {\n msg.payload = --timer;\n }\n if (timer === 0) timer= undefined;\n context.set("timer",timer);\n\n return msg;\n}","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":6980,"wires":[["2c714fafbb7e37b5","076989755937eb8c"]]},{"id":"ba29eae86772b68f","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":390,"y":6980,"wires":[["36b01892f29ff531"]]},{"id":"2c714fafbb7e37b5","type":"debug","z":"289f539dcc33814e","name":"Timer","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":950,"y":6980,"wires":[]},{"id":"076989755937eb8c","type":"switch","z":"289f539dcc33814e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":650,"y":7040,"wires":[["36b01892f29ff531"]]}]

                      Du kannst es aber mit intervall auch asynchron komplett programmieren oder auch über flow variablen ohne Code implementieren.

                      b8f742a8-3155-42f6-adae-5dca528471a6-image.png

                      Es gibt aber auch fertige Nodes: https://flows.nodered.org/node/node-red-contrib-countdown

                      Oder ich habe auch in meinem Datums/Zeit Thread mal einen Timer gebastelt: https://forum.iobroker.net/topic/61256/timer-count-down-node

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        m.gans @mickym last edited by

                        @mickym Kann das nicht importieren:
                        15fc5e25-0f47-49ea-b772-95d38fba2961-image.png

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @m.gans last edited by mickym

                          @teemo

                          Sorry - hier nochmal

                          [{"id":"36b01892f29ff531","type":"trigger","z":"289f539dcc33814e","name":"","op1":"true","op2":"0","op1type":"bool","op2type":"str","duration":"-1","extend":false,"overrideDelay":false,"units":"s","reset":"0","bytopic":"all","topic":"topic","outputs":1,"x":580,"y":6980,"wires":[["7476062a19dd760e"]]},{"id":"7476062a19dd760e","type":"function","z":"289f539dcc33814e","name":"Timer","func":"var timer = context.get(\"timer\");\nif (msg.payload) {\n    if (timer === undefined){\n        // Initialisiere Timer\n        timer = 5;\n        msg.payload = timer;\n    } else {\n        msg.payload = --timer;\n    }\n    if (timer === 0) timer= undefined;\n    context.set(\"timer\",timer);\n\n    return msg;\n}","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":6980,"wires":[["2c714fafbb7e37b5","076989755937eb8c"]]},{"id":"ba29eae86772b68f","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":390,"y":6980,"wires":[["36b01892f29ff531"]]},{"id":"2c714fafbb7e37b5","type":"debug","z":"289f539dcc33814e","name":"Timer","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":950,"y":6980,"wires":[]},{"id":"076989755937eb8c","type":"switch","z":"289f539dcc33814e","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":650,"y":7040,"wires":[["36b01892f29ff531"]]}]
                          

                          Achso und wie lange das runterzählt stellst Du hier ein:
                          84bd365c-dcde-4993-bf00-7d52d49004ec-image.png

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          944
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          2
                          11
                          282
                          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