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. Shelly Dimmer via MQTT in NodeRed

    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

    Shelly Dimmer via MQTT in NodeRed

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

      Hallo zusammen.

      Ich habe wiedermal eine Frage.

      Und zwar möchte ich via NodeRed einen Shelly Dimmer 2 ansteuern und natürlich auch dimmen.

      Das Einschalten klappt wunderbar..
      a9a0237d-380d-4840-9be2-e9f7fbcad216-image.png
      Das Change node sieht so aus:
      6666057e-de84-4556-8423-e5f4bc157616-image.png 438ed4c2-2eaa-44d6-b2d5-b73cd644762a-image.png

      Wenn man bei "brightness" einen Wert von 1-100 dahinter schreibt, schaltet der Shelly mit dem entsprechenden Dimmwert ein. 100 wäre also demnach Dimmwert 100.
      Momentan steht da X weil ich nicht weiss wie ich das angehen soll, damit ich via Slider auf dem Dashboard dimmen kann.
      Der Slider sieht so aus:
      76e63441-8ee5-4bfd-8351-25919dbf41f7-image.png

      Danke für eure Hilfe. 😊

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

        @faithlux Du schreibst nicht x dahinter, sondern payload (ohne Gänsefüsschen) und nutzt JSONATA und nicht JSON in Deiner Change Node.

        d3aa41f8-f29c-48d3-a312-ae5be32dfa75-image.png

        9226b4e2-97c6-4978-9d8b-ffff834f4417-image.png

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

          @mickym

          ich habe dasselbe gemacht, einfach in json. ich habe nachgelesen was jsonata ist und das macht durchaus sinn, ergo es funktioniert 😂 danke @mickym

          Dimmen hört auf den Befehl shellies/shellydimmer-<deviceid>/light/0/set
          Schalten hört auf den Befehl shellies/shellydimmer-<deviceid>/light/0/command

          Ich möchte nun, dass wenn ich zB auf 50% gedimmt habe (natürlich sollte das mit jedem anderen Dimmwert zwischen 0-100 auch genauso gehen) und ausschalte, beim nächsten Mal genau auf der selben Dimmstufe eingeschaltet wird.

          Ich dimme auf 50% runter, schalte aus.
          Schalte ein, Licht ist auf 50% gedimmt.

          Ich kann das gewünschte mit zwei MQTT Ausgängen bereitstellen. dass das gewollte so funktioniert:
          aa698d24-c563-4743-b3c3-79ba747e1b2d-image.png

          Aber das ist eher so eine semi gute Lösung.

          Am Besten wäre es, wenn man in NodeRed, das Dimmen so gestalten könnte, wie wenn man einen Push-Taster hat.

          Kurzes Tippen = on oder off
          Langes Tippe = hochdimmen oder mit Pause dazwischen runterdimmen (und umgekehrt)

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

            @faithlux ich hab den shelly Dimmer gen1 und da funktioniert es so, wie du es beschreibst. Das macht aber die Hardware du muss ich gar nichts mit Node-red machen. Um einen Taster softwareseitig zu simulieren, arbeitest du im Dashboard nicht mit einem slider, sondern musst dir selbst was basteln. Das ist alles andere als trivial- ich habesowas ähnliches mal gemacht- muss aber nochmal schauen.

            Die Frage ist in dem Fall wirklich, wieviel Aufwand möchtest Du in dein Dashboard stecken. Wie gesagt hardwareseitig habe ich ein Taster am Shelly und funktioniert genau so.

            Hier habe ich mal sowas mit einem Node-Red Flow für ein vis Widget gebastelt- das kann ich nochmal raussuchen, da müsstest du dann einen eigenen Button-Typ im Dashboard definieren.
            Hier: https://forum.iobroker.net/post/939067 gibts ein kleines mp4, wenn es das ist was du meinst - ist aber viel Aufwand.

            Du musst halt aufpassen ob du soviel Aufwand in ein Dashboard stecken willst, oder ob dir das mit slider und switch langt. Ansonsten musst du dir einen eigenen Button erstellen.

            Du müsstest im übrigen auch ohne brightness mit dem Objekt schalten können, also ohne brightness, also mit

            {"turn":"off"}
            
            M 1 Reply Last reply Reply Quote 0
            • M
              m.gans @mickym last edited by

              @mickym Danke für diesen Input.
              Das wäre genau das was ich suche. Jedoch absolut keinen Plan wie ich das angehen soll.

              Hast du nicht per Zufall irgendwo diesen Code, den ich dann mit meinen Werten etc befüllen kann?

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

                @faithlux Ja ich habe diesen Flow gefunden - aber nichts mit einfach Werte befüllen. Da musst Du schon tiefer einsteigen und zwar viel tiefer.

                Wie gesagt im Normalfall nutzt man im Dashboard einfach den Slider und einen Switch getrennt - habe ich auch bei meinen Lampen so:

                7ef77278-c38b-4a0b-9255-e0fb345d0031-image.png

                Das was Du in meinem Beitrag über das mp4 und dem vis widget gesehen hast, funktioniert für einen Softwaretaster nicht, da dieser einfach nur ein true oder eine beliebige payload schickt beim betätigen. Aber das nur einmal.
                Als erste Vorraussetzung brauchst Du also einen Button, der meldet wenn er gedrückt wird (also Maus down) und meldet wenn er wieder losgelassen wird (also Maus up). Das ist im Standard nie der Fall, deswegen kannst Du da auch kein Long und Short unterscheiden.

                Um so einen Taster im NodeRed Dashboard zu erzeigen, musst Du den also selbst programmieren und halt auch das Aussehen anpassen. Ich nutze sogenannte momentary Buttons zum Beispiel im NodeRed Dashboard, dass ich als Fernbedienung nutze für die Lautstärketasten.

                ff1709e9-1330-49f9-8e43-151fb4545b7d-image.png

                Wie gesagt anpassen musst Du die dann vom Aussehen her selbst. Ich hab Dir diese Taste mal herausgelöst und in ein eigene Dashboardgruppe übernommen. Ich habe mal das Lautstärkesymbol ausgetauscht mit den Awesome-Icons

                4ad0febb-523d-42bc-b5f7-02377a999c72-image.png

                Dieser Button hat nun die Eigenschaft, dass er true beim Drücken und false bei Loslassen sendet und deshalb sich von allen Standardbuttons unterscheidet.

                8cef1d57-14e2-4fa2-ae46-87f80d59f837-image.png

                Hier die Node als Einzelstück:

                [{"id":"b9b257e.70ef5a8","type":"ui_template","z":"9485df68.fd8ba","group":"57f13d6f733e5c9d","name":"momentary","order":17,"width":3,"height":1,"format":"<style>\n.nr-dashboard-template {\n    padding: 0px;\n}\n</style>\n<div class=\"momentary_1\">\n   <md-button style=\"width:100%; height:48px; margin: 0px; background-color: var(--nr-dashboard-widgetBackgroundColor); padding-top: 10px;\" ><i class=\"fa fa-lightbulb-o fa-2x\"> </i></md-button>\n</div>\n\n<script>\n\n(function($scope) {\n\n$('.momentary_1').on('touchstart mousedown', function(e) {\n   // e.preventDefault(); //prevent default behavior\n   $scope.send({\"payload\": true});\n});\n\n$('.momentary_1').on('touchend mouseup', function(e) {\n    // e.preventDefault(); //prevent default behavior\n    $scope.send({\"payload\": false});\n});\n    \n})(scope);\n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":150,"y":780,"wires":[["111e399f13e068c4"]]},{"id":"57f13d6f733e5c9d","type":"ui_group","name":"Test","tab":"20b3095113f94d70","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"20b3095113f94d70","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
                

                Die Node besteht aus einer template Node mit folgendem Code:

                <style>
                .nr-dashboard-template {
                    padding: 0px;
                }
                </style>
                <div class="momentary_1">
                   <md-button style="width:100%; height:48px; margin: 0px; background-color: var(--nr-dashboard-widgetBackgroundColor); padding-top: 10px;" ><i class="fa fa-lightbulb-o fa-2x"> </i></md-button>
                </div>
                
                <script>
                
                (function($scope) {
                
                $('.momentary_1').on('touchstart mousedown', function(e) {
                   // e.preventDefault(); //prevent default behavior
                   $scope.send({"payload": true});
                });
                
                $('.momentary_1').on('touchend mouseup', function(e) {
                    // e.preventDefault(); //prevent default behavior
                    $scope.send({"payload": false});
                });
                    
                })(scope);
                </script>
                

                Man sieht es wird eine eigene CSS Klasse definiert, die auf Mauseregnisse reagiert. Wenn Du mehrere solcher Nodes auf einer Dashboard-Seite verwendest musst Du darauf achten, dass Du jeder Node eine eigene ID gibst.
                ggf kannst Du das auch über die ID der Node machen:

                <div id="{{'my_'+$id}}" - aber ich habe den Code nicht ausprobiert.

                So hier mal der gesamte Tasterflow:

                [{"id":"9485df68.fd8ba","type":"tab","label":"Tutorial vis Taster","disabled":false,"info":""},{"id":"b0c81813.4154f8","type":"ioBroker in","z":"9485df68.fd8ba","d":true,"name":"taster","topic":"0_userdata.0.dimmer.taster","payloadType":"value","onlyack":"","func":"rbe","gap":"","fireOnStart":"false","x":130,"y":100,"wires":[["16e2170a.87ef89"]]},{"id":"dc014311.a8d3f","type":"debug","z":"9485df68.fd8ba","name":"Taste gedrückt","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":600,"y":60,"wires":[]},{"id":"16e2170a.87ef89","type":"trigger","z":"9485df68.fd8ba","name":"","op1":"true","op2":"","op1type":"bool","op2type":"payl","duration":"-250","extend":true,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":370,"y":100,"wires":[["dc014311.a8d3f","a123b62d.af5fa8"]]},{"id":"9982d6c4.29e058","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":310,"y":220,"wires":[["d38eb95d.854638","a123b62d.af5fa8"]]},{"id":"d38eb95d.854638","type":"debug","z":"9485df68.fd8ba","name":"Taste losgelassen","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":490,"y":280,"wires":[]},{"id":"a123b62d.af5fa8","type":"function","z":"9485df68.fd8ba","name":"","func":"var count = context.get('count') || 0;\nvar longpress = context.get('longpress') || false;\nif (msg.payload){\n    count += 1;\n    context.set('count',count);\n    if (count > 5) { // Wert erhöhen wenn Longpress zu früh erkannt wird\n        longpress = true;\n        context.set('longpress',longpress);\n        return [null,msg];\n    }\n} else {\n    msg.payload=true;\n    count = 0;\n    context.set('count',count);    \n    if (!longpress) return [msg,null];\n    longpress = false;\n    context.set('longpress',longpress);\n}\n","outputs":2,"noerr":0,"initialize":"","finalize":"","x":590,"y":180,"wires":[["65393650.6cfcd8","1dbf19e0.f8af96"],["faaddc42.671cf","c5e2ef2d.6e447"]],"outputLabels":["shortpress","longpress"]},{"id":"65393650.6cfcd8","type":"debug","z":"9485df68.fd8ba","name":"shortpress","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":100,"wires":[]},{"id":"faaddc42.671cf","type":"debug","z":"9485df68.fd8ba","name":"longpress","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":800,"y":340,"wires":[]},{"id":"a9311da5.e0c66","type":"ioBroker in","z":"9485df68.fd8ba","d":true,"name":"status","attrname":"","topic":"mqtt.1.shellies.shellydimmer.light.0.status","payloadType":"value","onlyack":"","func":"rbe","gap":"","fireOnStart":"false","x":150,"y":400,"wires":[["15d1fa89.761575"]]},{"id":"35413631.c8570a","type":"debug","z":"9485df68.fd8ba","name":"status","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":450,"y":340,"wires":[]},{"id":"15d1fa89.761575","type":"json","z":"9485df68.fd8ba","name":"","property":"payload","action":"","pretty":false,"x":290,"y":400,"wires":[["35413631.c8570a","eeebcf13.9b2fd","af96a9a1.7e48c8"]]},{"id":"eeebcf13.9b2fd","type":"change","z":"9485df68.fd8ba","name":"setze flow Variablen","rules":[{"t":"set","p":"ison","pt":"flow","to":"payload.ison","tot":"msg"},{"t":"set","p":"brightness","pt":"flow","to":"payload.brightness","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":400,"wires":[[]]},{"id":"1dbf19e0.f8af96","type":"change","z":"9485df68.fd8ba","name":"switch (toggle)","rules":[{"t":"set","p":"payload","pt":"msg","to":"ison","tot":"flow"},{"t":"set","p":"payload","pt":"msg","to":"$not(payload)\t","tot":"jsonata"},{"t":"set","p":"ison","pt":"flow","to":"payload","tot":"msg"},{"t":"set","p":"down","pt":"flow","to":"payload","tot":"msg"},{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"on","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":140,"wires":[["f48be0e6.d432f","c4574d9a.44f53","f2909e1e.20a93"]]},{"id":"f48be0e6.d432f","type":"debug","z":"9485df68.fd8ba","name":"command","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1040,"y":200,"wires":[]},{"id":"c4574d9a.44f53","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"command","topic":"mqtt.1.shellies.shellydimmer.light.0.command","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":1040,"y":140,"wires":[]},{"id":"f2909e1e.20a93","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"0","tot":"num"},{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"brightness","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":1050,"y":80,"wires":[["6d903925.3ff818"]]},{"id":"6d903925.3ff818","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"brightness","topic":"0_userdata.0.dimmer.brightness","ack":"true","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":1240,"y":80,"wires":[]},{"id":"88d6e66a.ddb258","type":"inject","z":"9485df68.fd8ba","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":130,"y":600,"wires":[["e9fb15f5.98b588"]]},{"id":"e9fb15f5.98b588","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"down","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":600,"wires":[[]]},{"id":"c5e2ef2d.6e447","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"istype","v":"boolean","vt":"boolean"},{"t":"istype","v":"number","vt":"number"}],"checkall":"true","repair":false,"outputs":2,"x":810,"y":300,"wires":[["ca4f99bd.cfa6f8"],["ff1bde73.7c88"]]},{"id":"ca4f99bd.cfa6f8","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"brightness","tot":"flow"},{"t":"change","p":"payload","pt":"msg","from":"100","fromt":"num","to":"98","tot":"num"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"num","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1020,"y":240,"wires":[["c5e2ef2d.6e447"]]},{"id":"ff1bde73.7c88","type":"switch","z":"9485df68.fd8ba","name":"brightness zwischen 2 und 98","property":"payload","propertyType":"msg","rules":[{"t":"btwn","v":"2","vt":"num","v2":"98","v2t":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1050,"y":320,"wires":[["4f962993.612978"]]},{"id":"4f962993.612978","type":"switch","z":"9485df68.fd8ba","name":"","property":"down","propertyType":"flow","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":1270,"y":320,"wires":[["ece0bc1e.1d06c"],["a0118b8f.a7ca18"]]},{"id":"ece0bc1e.1d06c","type":"change","z":"9485df68.fd8ba","name":"Verringere Brightness um 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload - 2","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1510,"y":280,"wires":[["71a8a0f2.c1756"]]},{"id":"a0118b8f.a7ca18","type":"change","z":"9485df68.fd8ba","name":"Erhöhe Brightness um 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload + 2","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1500,"y":340,"wires":[["71a8a0f2.c1756"]]},{"id":"71a8a0f2.c1756","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"98","vt":"num"},{"t":"lt","v":"2","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":3,"x":1740,"y":300,"wires":[["879502b2.7de07"],["f57bd65b.705688"],["58308d21.de8e84"]]},{"id":"879502b2.7de07","type":"change","z":"9485df68.fd8ba","name":"= 100","rules":[{"t":"set","p":"payload","pt":"msg","to":"100","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1900,"y":260,"wires":[["58308d21.de8e84"]]},{"id":"f57bd65b.705688","type":"change","z":"9485df68.fd8ba","name":"= 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1900,"y":300,"wires":[["58308d21.de8e84"]]},{"id":"58308d21.de8e84","type":"change","z":"9485df68.fd8ba","name":"Update flow.brightness","rules":[{"t":"set","p":"brightness","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":2120,"y":340,"wires":[["33d29b3d.a84344","fb67d520.bc8208"]]},{"id":"33d29b3d.a84344","type":"rbe","z":"9485df68.fd8ba","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":2330,"y":340,"wires":[["8ef3400d.e495","d66fdb59.ee3d88"]]},{"id":"fb67d520.bc8208","type":"trigger","z":"9485df68.fd8ba","name":"","op1":"","op2":"true","op1type":"nul","op2type":"bool","duration":"1","extend":true,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":2350,"y":420,"wires":[["1110ff6a.6c0661"]]},{"id":"1110ff6a.6c0661","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"down","pt":"flow","to":"$not($flowContext('down'))\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":2550,"y":420,"wires":[[]]},{"id":"8ef3400d.e495","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"brightness","topic":"0_userdata.0.dimmer.brightness","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":2510,"y":340,"wires":[]},{"id":"b2d86076.b0a04","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"brightness","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"{\"brightness\":70,\"turn\":\"on\"}","tot":"json"},{"t":"move","p":"brightness","pt":"msg","to":"payload.brightness","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":2680,"y":280,"wires":[["3fe9eb1.ff60414"]]},{"id":"d66fdb59.ee3d88","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"gt","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":2490,"y":260,"wires":[["b3cabeb1.02f96"],["b2d86076.b0a04"]]},{"id":"b3cabeb1.02f96","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"brightness\":0,\"turn\":\"off\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":2690,"y":240,"wires":[["3fe9eb1.ff60414"]]},{"id":"3fe9eb1.ff60414","type":"json","z":"9485df68.fd8ba","name":"","property":"payload","action":"","pretty":false,"x":2890,"y":260,"wires":[["583ee091.d82b2"]]},{"id":"583ee091.d82b2","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"","topic":"mqtt.1.shellies.light.0.set","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":3110,"y":260,"wires":[]},{"id":"98936af7.b84158","type":"ioBroker in","z":"9485df68.fd8ba","d":true,"name":"taster","topic":"0_userdata.0.dimmer.taster","payloadType":"value","onlyack":"","func":"rbe","gap":"","fireOnStart":"false","x":130,"y":220,"wires":[["9982d6c4.29e058"]]},{"id":"af96a9a1.7e48c8","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"status","tot":"msg"},{"t":"change","p":"status.ison","pt":"msg","from":"false","fromt":"bool","to":"0","tot":"num"},{"t":"change","p":"status.ison","pt":"msg","from":"true","fromt":"bool","to":"status.brightness","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"status.ison","tot":"msg"},{"t":"delete","p":"status","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":460,"wires":[["c281079b.e9e728"]]},{"id":"c281079b.e9e728","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"brightness","topic":"0_userdata.0.dimmer.brightness","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":690,"y":460,"wires":[]},{"id":"b9b257e.70ef5a8","type":"ui_template","z":"9485df68.fd8ba","group":"57f13d6f733e5c9d","name":"momentary","order":17,"width":3,"height":1,"format":"<style>\n.nr-dashboard-template {\n    padding: 0px;\n}\n</style>\n<div class=\"momentary_1\">\n   <md-button style=\"width:100%; height:48px; margin: 0px; background-color: var(--nr-dashboard-widgetBackgroundColor); padding-top: 10px;\" ><i class=\"fa fa-lightbulb-o fa-2x\"> </i></md-button>\n</div>\n\n<script>\n\n(function($scope) {\n\n$('.momentary_1').on('touchstart mousedown', function(e) {\n   // e.preventDefault(); //prevent default behavior\n   $scope.send({\"payload\": true});\n});\n\n$('.momentary_1').on('touchend mouseup', function(e) {\n    // e.preventDefault(); //prevent default behavior\n    $scope.send({\"payload\": false});\n});\n    \n})(scope);\n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":150,"y":780,"wires":[["111e399f13e068c4"]]},{"id":"111e399f13e068c4","type":"debug","z":"9485df68.fd8ba","name":"Ausgabe momentary Button","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":420,"y":780,"wires":[]},{"id":"57f13d6f733e5c9d","type":"ui_group","name":"Test","tab":"20b3095113f94d70","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"20b3095113f94d70","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
                

                Der ist schon etwas älter deswegen wurde hier noch ohne JSONATA gearbeitet - um zum Beispiel zu dimmen:

                a9e45db8-e0fb-436f-a018-5a18cf5c606d-image.png

                Das ist wie gesagt noch umständlicher gemacht - aber das kannst Du ggf. ja anpassen, aber es kommen die gleichen Objekte raus.

                Wichtig ist dass Du das Herzstück des Flows begreifst. Bevor ich den richtigen momentary Switch einbinde hier noch mit 2 getrennten Triggern:

                005e3ec4-272e-4ec9-b34c-d054f65e2bd5-image.png

                Der obere Trigger entspricht dem Taster gedrückt, dem unteren Trigger entspricht Taster losgelassen. Solange der Taster gedrückt ist wird also alle 250 Millisekunden eine Nachricht erzeugt und zwar true. Falls false kommt wird der Trigger zurückgesetzt und es werden kein Nachrichten mehr erzeugt. Ich binde Dir später den momentary button noch ein.

                47131266-2ce5-4d89-a645-81d9aa7661d7-image.png

                Also die trigger Node sendet solange true alle 250 ms bis false kommt.

                Nun kommen wir (eine der seltenen Fälle) sinnvoll ohne Programmieren nicht aus - deswegen folgende function Node:

                ce35f6f1-7b1f-4ce1-a06d-5630aacf69a4-image.png

                Hier als Code:

                var count = context.get('count') || 0;
                var longpress = context.get('longpress') || false;
                if (msg.payload){
                    count += 1;
                    context.set('count',count);
                    if (count > 5) { // Wert erhöhen wenn Longpress zu früh erkannt wird
                        longpress = true;
                        context.set('longpress',longpress);
                        return [null,msg];
                    }
                } else {
                    msg.payload=true;
                    count = 0;
                    context.set('count',count);    
                    if (!longpress) return [msg,null];
                    longpress = false;
                    context.set('longpress',longpress);
                }
                

                Wie Du an den ersten beiden Zeilen siehst, wird der Node Kontext für 2 Variablen verwendet. Zum einen ob die Node im Status Longpress ist und wieviele Nachrichten eingegangen sind, bevor eine false Nachricht kommt.

                Wenn die false Nachricht kommt, dann wird der else-Ast ausgeführt und falls die Node nicht im Status Longpress ist, wird eine true Nachricht an den oberen Ausgang geschickt. Ausserdem wird der Zähler zurückgesetzt und der Longpress Zustand auf false.

                Solange True Nachrichten kommen werden diese gezählt und ab 5 Nachrichten an den unteren Ausgang weitergeleitet.
                Diese Zahl kannst Du natürlich anpassen, so wie Du es willst. Da alle 250 ms eine Nachricht von der Trigger Node erzeugt wird und erst ab mehr als 5 Nachrichten ein Longpress erkannt wird, wird am 1,5 Sekunden ein Longpress erkannt.

                Wenn Du was nicht verstehst musst halt nachfragen.

                So ich habe mal den momentary button eingebunden:

                682e24c2-89d1-451e-93d3-fe1cbe45a1bb-image.png

                Wird der button nur kurz gedrückt siehst Du dass die Nachricht am oberen Ausgang rauskommt - habe den shortpress debug aktiviert (hellblau) , drückst Du länger werden alle Nachrichten nach 1,5 Sekunden nach unten geleitet (lila).

                So damit Du weiter den Flow verstehst, habe ich hier mal als Trockenübung über eine Inject Node mal die Flowvariablen initialisiert. (Test Inject Node)

                de6cbe40-c355-4070-8853-0584d8d98e7e-image.png

                Im Flowkontext wird also folgendes gespeichert:

                fbb1ab86-95ca-4d84-bbb8-f17fbbea3ea6-image.png

                Das aktuelle Dimmlevel, in welche Richtung gedimmt wird und ob die Lampe an ist.

                Bei kurzem Drücken, schaltet also das commando (toggelt) zwischen "on" und "off".
                de86e8ff-9663-4775-8220-f44afb813d4e-image.png

                Das Dimmen siehst Du nicht als Trockenübung - da hier der tatsächliche Status der Lampe triggert. Das ist auch wichtig, da Du ja weiterhin über den physischen Taster schalten kannst.

                Zum Schluss noch eine Erklärung dieses Flow teils beim Dimmen:

                ed7cba3f-9b9d-4438-be9c-7bf83694aa8a-image.png

                Wenn keine neuen Dimmkommandos mehr kommen, dann wird die flow.down variable umgeschaltet.

                40e6d6a0-ae49-4de6-9ad8-69209c01fcc6-image.png

                Das ist im Prinzip die Dimmrichtung. Über die Flowvariable wird also entschieden ob bei erneutem Longpress auf- oder abgedimmt wird.

                ff43600b-14ff-46dd-9f92-13752f9fc1ea-image.png

                So hier nochmal der Flow in letzter Form:

                [{"id":"9485df68.fd8ba","type":"tab","label":"Tutorial vis Taster","disabled":false,"info":""},{"id":"b0c81813.4154f8","type":"ioBroker in","z":"9485df68.fd8ba","d":true,"name":"taster","attrname":"","topic":"0_userdata.0.dimmer.taster","payloadType":"value","onlyack":"","func":"rbe","gap":"","fireOnStart":"false","x":130,"y":100,"wires":[["16e2170a.87ef89"]]},{"id":"dc014311.a8d3f","type":"debug","z":"9485df68.fd8ba","name":"Taste gedrückt","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":600,"y":60,"wires":[]},{"id":"16e2170a.87ef89","type":"trigger","z":"9485df68.fd8ba","name":"","op1":"true","op2":"","op1type":"bool","op2type":"payl","duration":"-250","extend":true,"overrideDelay":false,"units":"ms","reset":"false","bytopic":"all","topic":"topic","outputs":1,"x":370,"y":100,"wires":[["dc014311.a8d3f","a123b62d.af5fa8"]]},{"id":"9982d6c4.29e058","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":310,"y":220,"wires":[["d38eb95d.854638","a123b62d.af5fa8"]]},{"id":"d38eb95d.854638","type":"debug","z":"9485df68.fd8ba","name":"Taste losgelassen","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":490,"y":280,"wires":[]},{"id":"a123b62d.af5fa8","type":"function","z":"9485df68.fd8ba","name":"","func":"var count = context.get('count') || 0;\nvar longpress = context.get('longpress') || false;\nif (msg.payload){\n    count += 1;\n    context.set('count',count);\n    if (count > 5) { // Wert erhöhen wenn Longpress zu früh erkannt wird\n        longpress = true;\n        context.set('longpress',longpress);\n        return [null,msg];\n    }\n} else {\n    msg.payload=true;\n    count = 0;\n    context.set('count',count);    \n    if (!longpress) return [msg,null];\n    longpress = false;\n    context.set('longpress',longpress);\n}\n","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":180,"wires":[["65393650.6cfcd8","1dbf19e0.f8af96"],["faaddc42.671cf","c5e2ef2d.6e447"]],"outputLabels":["shortpress","longpress"]},{"id":"65393650.6cfcd8","type":"debug","z":"9485df68.fd8ba","name":"shortpress","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":100,"wires":[]},{"id":"faaddc42.671cf","type":"debug","z":"9485df68.fd8ba","name":"longpress","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":800,"y":340,"wires":[]},{"id":"a9311da5.e0c66","type":"ioBroker in","z":"9485df68.fd8ba","d":true,"name":"status","attrname":"","topic":"mqtt.1.shellies.shellydimmer.light.0.status","payloadType":"value","onlyack":"","func":"rbe","gap":"","fireOnStart":"false","x":130,"y":520,"wires":[["15d1fa89.761575"]]},{"id":"35413631.c8570a","type":"debug","z":"9485df68.fd8ba","name":"status","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":430,"y":460,"wires":[]},{"id":"15d1fa89.761575","type":"json","z":"9485df68.fd8ba","name":"","property":"payload","action":"","pretty":false,"x":270,"y":520,"wires":[["35413631.c8570a","eeebcf13.9b2fd","af96a9a1.7e48c8"]]},{"id":"eeebcf13.9b2fd","type":"change","z":"9485df68.fd8ba","name":"setze flow Variablen","rules":[{"t":"set","p":"ison","pt":"flow","to":"payload.ison","tot":"msg"},{"t":"set","p":"brightness","pt":"flow","to":"payload.brightness","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":520,"wires":[[]]},{"id":"1dbf19e0.f8af96","type":"change","z":"9485df68.fd8ba","name":"switch (toggle)","rules":[{"t":"set","p":"payload","pt":"msg","to":"ison","tot":"flow"},{"t":"set","p":"payload","pt":"msg","to":"$not(payload)\t","tot":"jsonata"},{"t":"set","p":"ison","pt":"flow","to":"payload","tot":"msg"},{"t":"set","p":"down","pt":"flow","to":"payload","tot":"msg"},{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"on","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":140,"wires":[["f48be0e6.d432f","c4574d9a.44f53","f2909e1e.20a93"]]},{"id":"f48be0e6.d432f","type":"debug","z":"9485df68.fd8ba","name":"command","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1040,"y":200,"wires":[]},{"id":"c4574d9a.44f53","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"command","topic":"mqtt.1.shellies.shellydimmer.light.0.command","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":1040,"y":140,"wires":[]},{"id":"f2909e1e.20a93","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"0","tot":"num"},{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"brightness","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":1050,"y":80,"wires":[["6d903925.3ff818"]]},{"id":"6d903925.3ff818","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"brightness","topic":"0_userdata.0.dimmer.brightness","ack":"true","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":1240,"y":80,"wires":[]},{"id":"88d6e66a.ddb258","type":"inject","z":"9485df68.fd8ba","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":110,"y":720,"wires":[["e9fb15f5.98b588"]]},{"id":"e9fb15f5.98b588","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"down","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":290,"y":720,"wires":[[]]},{"id":"c5e2ef2d.6e447","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"istype","v":"boolean","vt":"boolean"},{"t":"istype","v":"number","vt":"number"}],"checkall":"true","repair":false,"outputs":2,"x":810,"y":300,"wires":[["ca4f99bd.cfa6f8"],["ff1bde73.7c88"]]},{"id":"ca4f99bd.cfa6f8","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"brightness","tot":"flow"},{"t":"change","p":"payload","pt":"msg","from":"100","fromt":"num","to":"98","tot":"num"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"num","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1020,"y":240,"wires":[["c5e2ef2d.6e447"]]},{"id":"ff1bde73.7c88","type":"switch","z":"9485df68.fd8ba","name":"brightness zwischen 2 und 98","property":"payload","propertyType":"msg","rules":[{"t":"btwn","v":"2","vt":"num","v2":"98","v2t":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1050,"y":320,"wires":[["4f962993.612978"]]},{"id":"4f962993.612978","type":"switch","z":"9485df68.fd8ba","name":"","property":"down","propertyType":"flow","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":1270,"y":320,"wires":[["ece0bc1e.1d06c"],["a0118b8f.a7ca18"]]},{"id":"ece0bc1e.1d06c","type":"change","z":"9485df68.fd8ba","name":"Verringere Brightness um 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload - 2","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1510,"y":280,"wires":[["71a8a0f2.c1756"]]},{"id":"a0118b8f.a7ca18","type":"change","z":"9485df68.fd8ba","name":"Erhöhe Brightness um 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload + 2","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1500,"y":340,"wires":[["71a8a0f2.c1756"]]},{"id":"71a8a0f2.c1756","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"98","vt":"num"},{"t":"lt","v":"2","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":3,"x":1740,"y":300,"wires":[["879502b2.7de07"],["f57bd65b.705688"],["58308d21.de8e84"]]},{"id":"879502b2.7de07","type":"change","z":"9485df68.fd8ba","name":"= 100","rules":[{"t":"set","p":"payload","pt":"msg","to":"100","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1900,"y":260,"wires":[["58308d21.de8e84"]]},{"id":"f57bd65b.705688","type":"change","z":"9485df68.fd8ba","name":"= 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1900,"y":300,"wires":[["58308d21.de8e84"]]},{"id":"58308d21.de8e84","type":"change","z":"9485df68.fd8ba","name":"Update flow.brightness","rules":[{"t":"set","p":"brightness","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":2120,"y":340,"wires":[["33d29b3d.a84344","fb67d520.bc8208"]]},{"id":"33d29b3d.a84344","type":"rbe","z":"9485df68.fd8ba","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":2330,"y":340,"wires":[["8ef3400d.e495","d66fdb59.ee3d88"]]},{"id":"fb67d520.bc8208","type":"trigger","z":"9485df68.fd8ba","name":"","op1":"","op2":"true","op1type":"nul","op2type":"bool","duration":"1","extend":true,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":2350,"y":420,"wires":[["1110ff6a.6c0661"]]},{"id":"1110ff6a.6c0661","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"down","pt":"flow","to":"$not($flowContext('down'))\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":2550,"y":420,"wires":[[]]},{"id":"8ef3400d.e495","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"brightness","topic":"0_userdata.0.dimmer.brightness","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":2510,"y":340,"wires":[]},{"id":"b2d86076.b0a04","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"brightness","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"{\"brightness\":70,\"turn\":\"on\"}","tot":"json"},{"t":"move","p":"brightness","pt":"msg","to":"payload.brightness","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":2680,"y":280,"wires":[["3fe9eb1.ff60414"]]},{"id":"d66fdb59.ee3d88","type":"switch","z":"9485df68.fd8ba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"gt","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":2490,"y":260,"wires":[["b3cabeb1.02f96"],["b2d86076.b0a04"]]},{"id":"b3cabeb1.02f96","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"brightness\":0,\"turn\":\"off\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":2690,"y":240,"wires":[["3fe9eb1.ff60414"]]},{"id":"3fe9eb1.ff60414","type":"json","z":"9485df68.fd8ba","name":"","property":"payload","action":"","pretty":false,"x":2890,"y":260,"wires":[["583ee091.d82b2"]]},{"id":"583ee091.d82b2","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"","topic":"mqtt.1.shellies.light.0.set","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":3110,"y":260,"wires":[]},{"id":"98936af7.b84158","type":"ioBroker in","z":"9485df68.fd8ba","d":true,"name":"taster","attrname":"","topic":"0_userdata.0.dimmer.taster","payloadType":"value","onlyack":"","func":"rbe","gap":"","fireOnStart":"false","x":130,"y":220,"wires":[["9982d6c4.29e058"]]},{"id":"af96a9a1.7e48c8","type":"change","z":"9485df68.fd8ba","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"status","tot":"msg"},{"t":"change","p":"status.ison","pt":"msg","from":"false","fromt":"bool","to":"0","tot":"num"},{"t":"change","p":"status.ison","pt":"msg","from":"true","fromt":"bool","to":"status.brightness","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"status.ison","tot":"msg"},{"t":"delete","p":"status","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":460,"y":580,"wires":[["c281079b.e9e728"]]},{"id":"c281079b.e9e728","type":"ioBroker out","z":"9485df68.fd8ba","d":true,"name":"brightness","topic":"0_userdata.0.dimmer.brightness","ack":"false","autoCreate":"false","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":670,"y":580,"wires":[]},{"id":"b9b257e.70ef5a8","type":"ui_template","z":"9485df68.fd8ba","group":"57f13d6f733e5c9d","name":"momentary","order":17,"width":3,"height":1,"format":"<style>\n.nr-dashboard-template {\n    padding: 0px;\n}\n</style>\n<div class=\"momentary_1\">\n   <md-button style=\"width:100%; height:48px; margin: 0px; background-color: var(--nr-dashboard-widgetBackgroundColor); padding-top: 10px;\" ><i class=\"fa fa-lightbulb-o fa-2x\"> </i></md-button>\n</div>\n\n<script>\n\n(function($scope) {\n\n$('.momentary_1').on('touchstart mousedown', function(e) {\n   // e.preventDefault(); //prevent default behavior\n   $scope.send({\"payload\": true});\n});\n\n$('.momentary_1').on('touchend mouseup', function(e) {\n    // e.preventDefault(); //prevent default behavior\n    $scope.send({\"payload\": false});\n});\n    \n})(scope);\n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":130,"y":160,"wires":[["16e2170a.87ef89","9982d6c4.29e058"]]},{"id":"bd9be677d25dbd6b","type":"inject","z":"9485df68.fd8ba","name":"Test","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"ison\":false,\"brightness\":0}","payloadType":"json","x":230,"y":460,"wires":[["eeebcf13.9b2fd"]]},{"id":"57f13d6f733e5c9d","type":"ui_group","name":"Test","tab":"20b3095113f94d70","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"20b3095113f94d70","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
                

                Die iobroker Nodes musst halt ggf. gegen entsprechenden mqtt Nodes ersetzen.

                Du siehst also - entweder Standard - der Rest ist machbar und auch eine gute Übung, aber halt alles andere als trivial.

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

                  @mickym Ach du heilige.. Danke für deine Arbeit.
                  Ich studiere das heute Abend mal und probiere meine Sache zum laufen zu bringen 😂

                  Sieht in der Tat sehr komplex aus - aber ja ist sicher eine gute Übung.

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

                    @faithlux Ja manches würde ich heute mit JSONATA machen - aber das ist halt noch ein Flow aus meinen früheren Tagen und ich wollte ihn jetzt nicht ewig überarbeiten.

                    1 Reply Last reply Reply Quote 1
                    • I
                      icanic last edited by Negalein

                      @m-gans you can try to use this. It is not working over mqtt so you can leave shell cloud turned on.

                      [
                          {
                              "id": "c4e589e09355c27d",
                              "type": "shelly-cloud",
                              "z": "d724ef4f9c579ce1",
                              "server": "33eca59cc5addf74",
                              "description": "",
                              "outputs": 1,
                              "x": 690,
                              "y": 700,
                              "wires": [
                                  [
                                      "42afdd0863c670c9",
                                      "28bd90bf0488a3bc"
                                  ]
                              ]
                          },
                          {
                              "id": "28bd90bf0488a3bc",
                              "type": "shelly-gen1",
                              "z": "d724ef4f9c579ce1",
                              "hostname": "10.0.1.34",
                              "description": "",
                              "mode": "polling",
                              "server": "033a6e9acf499057",
                              "outputmode": "event",
                              "uploadretryinterval": 5000,
                              "pollinginterval": 5000,
                              "pollstatus": false,
                              "getstatusoncommand": true,
                              "devicetype": "Dimmer",
                              "devicetypemustmatchexactly": true,
                              "outputs": 1,
                              "x": 900,
                              "y": 640,
                              "wires": [
                                  []
                              ]
                          },
                          {
                              "id": "42afdd0863c670c9",
                              "type": "debug",
                              "z": "d724ef4f9c579ce1",
                              "name": "debug 1",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "false",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 900,
                              "y": 760,
                              "wires": []
                          },
                          {
                              "id": "aeb4c2cae80da838",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "on",
                              "func": "msg.payload = {\n    on:true\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 270,
                              "y": 500,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "cb63debaf7f8cc7a",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "off",
                              "func": "msg.payload = {\n    on:false\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 270,
                              "y": 540,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "a2c586bfef493ba4",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Turn On",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 500,
                              "wires": [
                                  [
                                      "aeb4c2cae80da838"
                                  ]
                              ]
                          },
                          {
                              "id": "aa0ecc89becb52b6",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Turn Off",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 540,
                              "wires": [
                                  [
                                      "cb63debaf7f8cc7a"
                                  ]
                              ]
                          },
                          {
                              "id": "2cf86b714691d6aa",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Poll Status",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "str",
                              "x": 120,
                              "y": 440,
                              "wires": [
                                  []
                              ]
                          },
                          {
                              "id": "3340ffcb8fc86c54",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "toggle",
                              "func": "msg.payload = {\n    turn:\"toggle\"\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 270,
                              "y": 580,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "0ea0fceb5bc1b8f8",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Toggle",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 110,
                              "y": 580,
                              "wires": [
                                  [
                                      "3340ffcb8fc86c54"
                                  ]
                              ]
                          },
                          {
                              "id": "e2e90ad3b39f30fb",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "brightness 100%",
                              "func": "msg.payload = {\nbrightness: 100\n}\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 310,
                              "y": 620,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "5cd3246ee54df257",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Brightness",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 620,
                              "wires": [
                                  [
                                      "e2e90ad3b39f30fb"
                                  ]
                              ]
                          },
                          {
                              "id": "bbfe7de807db8d9d",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "brightness 25%",
                              "func": "msg.payload = {\nbrightness: 25\n}\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 300,
                              "y": 660,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "c3dabccd82633861",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Brightness",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 660,
                              "wires": [
                                  [
                                      "bbfe7de807db8d9d"
                                  ]
                              ]
                          },
                          {
                              "id": "784a23f5f04fe49d",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "turn on & set brightness 60%",
                              "func": "msg.payload = {\n    on : true,\n    brightness: 60\n}\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 340,
                              "y": 700,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "84b0058013cd5e99",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Combined",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 700,
                              "wires": [
                                  [
                                      "784a23f5f04fe49d"
                                  ]
                              ]
                          },
                          {
                              "id": "cde543a45872eba4",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "on 2s",
                              "func": "msg.payload = {\n    on:true,\n    brightness: 100,\n    transition: 1000, // optional 0..5000ms\n    timer: 2\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 270,
                              "y": 740,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "21765d5065807b6a",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "up 10%",
                              "func": "msg.payload = {\n    dim : 'up',\n    step : 10, // %\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 280,
                              "y": 780,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "f23c3049caf67f07",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Turn On",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 740,
                              "wires": [
                                  [
                                      "cde543a45872eba4"
                                  ]
                              ]
                          },
                          {
                              "id": "70d0d15752323197",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Dim Up",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 110,
                              "y": 780,
                              "wires": [
                                  [
                                      "21765d5065807b6a"
                                  ]
                              ]
                          },
                          {
                              "id": "dcd652864f8a15d5",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "down 10%",
                              "func": "msg.payload = {\n    dim : 'down',\n    step : 10, // %\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 290,
                              "y": 820,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "828232e21c455142",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Dim Down",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 820,
                              "wires": [
                                  [
                                      "dcd652864f8a15d5"
                                  ]
                              ]
                          },
                          {
                              "id": "4d828a1702a46719",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "stop",
                              "func": "msg.payload = {\n    dim : 'stop',\n};\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 270,
                              "y": 860,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "a8a4fae7ed7cb40c",
                              "type": "inject",
                              "z": "d724ef4f9c579ce1",
                              "name": "Dim Stop",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "",
                              "payloadType": "date",
                              "x": 120,
                              "y": 860,
                              "wires": [
                                  [
                                      "4d828a1702a46719"
                                  ]
                              ]
                          },
                          {
                              "id": "775474fc432399fe",
                              "type": "ui_slider",
                              "z": "d724ef4f9c579ce1",
                              "name": "",
                              "label": "Svijetlo boravak",
                              "tooltip": "",
                              "group": "d5e8a876913ae91e",
                              "order": 0,
                              "width": 0,
                              "height": 0,
                              "passthru": false,
                              "outs": "end",
                              "topic": "payload",
                              "topicType": "msg",
                              "min": "1",
                              "max": "100",
                              "step": "1",
                              "className": "",
                              "x": 120,
                              "y": 360,
                              "wires": [
                                  [
                                      "be8c892c4ecbe444"
                                  ]
                              ]
                          },
                          {
                              "id": "be8c892c4ecbe444",
                              "type": "function",
                              "z": "d724ef4f9c579ce1",
                              "name": "set brightness and turn on",
                              "func": "msg.payload = {\n    on : true,\n    brightness: msg.payload\n}\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "initialize": "",
                              "finalize": "",
                              "libs": [],
                              "x": 370,
                              "y": 360,
                              "wires": [
                                  [
                                      "c4e589e09355c27d"
                                  ]
                              ]
                          },
                          {
                              "id": "611ce15e1152fcb8",
                              "type": "ui_button",
                              "z": "d724ef4f9c579ce1",
                              "name": "",
                              "group": "d5e8a876913ae91e",
                              "order": 2,
                              "width": "3",
                              "height": "1",
                              "passthru": false,
                              "label": "Upali",
                              "tooltip": "",
                              "color": "",
                              "bgcolor": "",
                              "className": "",
                              "icon": "",
                              "payload": "",
                              "payloadType": "date",
                              "topic": "topic",
                              "topicType": "msg",
                              "x": 90,
                              "y": 220,
                              "wires": [
                                  [
                                      "aeb4c2cae80da838"
                                  ]
                              ]
                          },
                          {
                              "id": "dda55d360731af0b",
                              "type": "ui_button",
                              "z": "d724ef4f9c579ce1",
                              "name": "",
                              "group": "d5e8a876913ae91e",
                              "order": 2,
                              "width": "3",
                              "height": "1",
                              "passthru": false,
                              "label": "Ugasi",
                              "tooltip": "",
                              "color": "",
                              "bgcolor": "",
                              "className": "",
                              "icon": "",
                              "payload": "",
                              "payloadType": "date",
                              "topic": "topic",
                              "topicType": "msg",
                              "x": 90,
                              "y": 260,
                              "wires": [
                                  [
                                      "cb63debaf7f8cc7a"
                                  ]
                              ]
                          },
                          {
                              "id": "33eca59cc5addf74",
                              "type": "shelly-cloud-server",
                              "description": ""
                          },
                          {
                              "id": "033a6e9acf499057",
                              "type": "shelly-gen1-server",
                              "port": "20001",
                              "hostname": "aaa",
                              "hostip": ""
                          },
                          {
                              "id": "d5e8a876913ae91e",
                              "type": "ui_group",
                              "name": "Svjetlo boravak",
                              "tab": "35399c96328c3aa8",
                              "order": 1,
                              "disp": true,
                              "width": "6",
                              "collapse": false,
                              "className": ""
                          },
                          {
                              "id": "35399c96328c3aa8",
                              "type": "ui_tab",
                              "name": "Home",
                              "icon": "dashboard",
                              "disabled": false,
                              "hidden": false
                          }
                      ]
                      
                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      517
                      Online

                      31.9k
                      Users

                      80.1k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      1001
                      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