Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Shelly addon über Node Red auf einer NAS mit iobroker

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    211

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Shelly addon über Node Red auf einer NAS mit iobroker

Shelly addon über Node Red auf einer NAS mit iobroker

Scheduled Pinned Locked Moved Node-Red
74 Posts 6 Posters 13.7k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M merbes

    @mickym KLassseeee:
    Danke sehr.
    Ncoh eine Frage:
    Ich verweise dann auf eine weitere Zahl unter userdata oder bleibt das direkt im alias?
    Ich freu mich, dass das so einfach ist.
    Dann schmiess ich mal schnell den notered wieder raus.
    Wird dann momentan nicht benötigt.

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    wrote on last edited by mickym
    #4

    @merbes sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

    @mickym KLassseeee:
    Danke sehr.
    Ncoh eine Frage:
    Ich verweise dann auf eine weitere Zahl unter userdata oder bleibt das direkt im alias?
    Ich freu mich, dass das so einfach ist.
    Dann schmiess ich mal schnell den notered wieder raus.
    Wird dann momentan nicht benötigt.

    Ich kann Dir zwar auch noch eine Menge mit NodeRed zeigen, aber wenn Du das Tool nicht lernen willst (was aus meiner Sicht ein großer Fehler ist, dann ist das ja Eure Entscheidung.)
    Ich finde es 10 mal besser als Blockly, aber wenn ihr das nicht wollt, dann ist es halt so. 😉

    Nein die Zahl bleibt direkt im Alias - der Verweis geht aber auf den Punkt im mqtt-Adapter. Ich hab den JSON nur zu Demozwecken in userdata angelegt. Du hast nur den Alias und das Original im mqtt

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    M 1 Reply Last reply
    0
    • mickymM mickym

      @merbes sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

      @mickym KLassseeee:
      Danke sehr.
      Ncoh eine Frage:
      Ich verweise dann auf eine weitere Zahl unter userdata oder bleibt das direkt im alias?
      Ich freu mich, dass das so einfach ist.
      Dann schmiess ich mal schnell den notered wieder raus.
      Wird dann momentan nicht benötigt.

      Ich kann Dir zwar auch noch eine Menge mit NodeRed zeigen, aber wenn Du das Tool nicht lernen willst (was aus meiner Sicht ein großer Fehler ist, dann ist das ja Eure Entscheidung.)
      Ich finde es 10 mal besser als Blockly, aber wenn ihr das nicht wollt, dann ist es halt so. 😉

      Nein die Zahl bleibt direkt im Alias - der Verweis geht aber auf den Punkt im mqtt-Adapter. Ich hab den JSON nur zu Demozwecken in userdata angelegt. Du hast nur den Alias und das Original im mqtt

      M Offline
      M Offline
      merbes
      wrote on last edited by
      #5

      @mickym Das war gar nicht so gemeint.
      Ich bin gerade auch noch mit dem iobroker überfordert.
      Also der Funktionsumfang und die Einstellmöglichkeiten sind enorm.
      Desswegen nur.

      mickymM 1 Reply Last reply
      0
      • M merbes

        @mickym Das war gar nicht so gemeint.
        Ich bin gerade auch noch mit dem iobroker überfordert.
        Also der Funktionsumfang und die Einstellmöglichkeiten sind enorm.
        Desswegen nur.

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        wrote on last edited by mickym
        #6

        @merbes sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

        @mickym Das war gar nicht so gemeint.
        Ich bin gerade auch noch mit dem iobroker überfordert.
        Also der Funktionsumfang und die Einstellmöglichkeiten sind enorm.
        Desswegen nur.

        Also wie gesagt Du verweist im Alias auf den Datenpunkt im mqtt.

        EDIT: Nee keinen Flow - wenn Du den Adapter eh wieder runter schmiesst. 😉

        @Dirk-4 hat nur schon Flows in NodeRed laufen, deswegen hat er wahrscheinlich NodeRed gewählt und wir haben das zusammen gemacht und @hotspot_2 ist glaub auch von NodeRed angetan.

        Deswegen alles ein KANN aber kein MUSS.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        M 1 Reply Last reply
        0
        • mickymM mickym

          @merbes sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

          @mickym Das war gar nicht so gemeint.
          Ich bin gerade auch noch mit dem iobroker überfordert.
          Also der Funktionsumfang und die Einstellmöglichkeiten sind enorm.
          Desswegen nur.

          Also wie gesagt Du verweist im Alias auf den Datenpunkt im mqtt.

          EDIT: Nee keinen Flow - wenn Du den Adapter eh wieder runter schmiesst. 😉

          @Dirk-4 hat nur schon Flows in NodeRed laufen, deswegen hat er wahrscheinlich NodeRed gewählt und wir haben das zusammen gemacht und @hotspot_2 ist glaub auch von NodeRed angetan.

          Deswegen alles ein KANN aber kein MUSS.

          M Offline
          M Offline
          merbes
          wrote on last edited by
          #7

          @mickym Verstanden.
          Ich nehme dann bei den drei Punkten den mqtt und hangel mich runter zu dem entsprechenden (gewünschten) Sensor.
          Klasse.
          ich kann mich nur 1000fach bedanken.

          mickymM 1 Reply Last reply
          0
          • M merbes

            @mickym Verstanden.
            Ich nehme dann bei den drei Punkten den mqtt und hangel mich runter zu dem entsprechenden (gewünschten) Sensor.
            Klasse.
            ich kann mich nur 1000fach bedanken.

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            wrote on last edited by
            #8

            @merbes sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

            @mickym Verstanden.
            Ich nehme dann bei den drei Punkten den mqtt und hangel mich runter zu dem entsprechenden (gewünschten) Sensor.
            Klasse.
            ich kann mich nur 1000fach bedanken.

            Genau. 🙂

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            R 1 Reply Last reply
            0
            • mickymM mickym

              @merbes sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

              @mickym Verstanden.
              Ich nehme dann bei den drei Punkten den mqtt und hangel mich runter zu dem entsprechenden (gewünschten) Sensor.
              Klasse.
              ich kann mich nur 1000fach bedanken.

              Genau. 🙂

              R Offline
              R Offline
              Ronnyempire
              wrote on last edited by Ronnyempire
              #9

              @mickym Wenn ich hier noch einmal aufschlagen darf. Der Alias Datenpunkt hat einwandfrei funktioniert, vielen Dank. Jetzt benötige ich zur Steuerung in Blockly aber auch einen Datenpunkt für den Relais-Switch, also true oder false. Zudem ja dann auch schreibbar. Kann ich das auch über Alias machen und wenn je was muss ich da einstellen? Ich bekomme zwar einen Wert, wenn ich den Wert "true" aber in "false"ändere passiert nichts bzw. iobroker stürzt ab. Ich komme da gerade nicht weiter.

              mickymM 1 Reply Last reply
              0
              • R Ronnyempire

                @mickym Wenn ich hier noch einmal aufschlagen darf. Der Alias Datenpunkt hat einwandfrei funktioniert, vielen Dank. Jetzt benötige ich zur Steuerung in Blockly aber auch einen Datenpunkt für den Relais-Switch, also true oder false. Zudem ja dann auch schreibbar. Kann ich das auch über Alias machen und wenn je was muss ich da einstellen? Ich bekomme zwar einen Wert, wenn ich den Wert "true" aber in "false"ändere passiert nichts bzw. iobroker stürzt ab. Ich komme da gerade nicht weiter.

                mickymM Offline
                mickymM Offline
                mickym
                Most Active
                wrote on last edited by mickym
                #10

                @ronnyempire Du brauchst zur Steuerung im Blockly kein true oder false Wenn Du es im Blockly machst, kannst Du sowohl im Blockly die Werte extrahieren und schreiben, tust Du in einem anderen Datenpunkt. Du kannst es deshalb nicht über einen Alias machen, weil das commando und der Zustand des Relais aus verschiedenen Datenpunkten kommt. Funktioniert über EINEN Alias - habe ich in den Nachfolge-Posts gezeigt.

                Wenn Du ein plus Gerät hast, musst Du über das topic command schicken. - Aber wie gesagt, wenn Du das eh über Blockly machst dann kannst Du es auch so schicken. Mit NodeRed wäre es noch einfacher - aber egal.

                f3de2143-3aea-42f9-b6f4-2efaeb791fbb-image.png

                Du kannst zwar einen Alias nehmen, um true oder false zu übersetzen - aber das Problem ist wie gesagt, dass Du zum Steuern andere Datenpunkte hast, als zum Lesen. MQTT kennt keine ACK Flags. Man könnte höchsten 2 Alias erstellen - aber wie gesagt, wenn Du eh mit Blockly hantierst, dann brauchst Du das ja nicht.

                Bei den Shellies schaltest Du die Relais via MQTT ja nicht mit true/false sondern on/off

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                R 1 Reply Last reply
                0
                • mickymM mickym

                  @ronnyempire Du brauchst zur Steuerung im Blockly kein true oder false Wenn Du es im Blockly machst, kannst Du sowohl im Blockly die Werte extrahieren und schreiben, tust Du in einem anderen Datenpunkt. Du kannst es deshalb nicht über einen Alias machen, weil das commando und der Zustand des Relais aus verschiedenen Datenpunkten kommt. Funktioniert über EINEN Alias - habe ich in den Nachfolge-Posts gezeigt.

                  Wenn Du ein plus Gerät hast, musst Du über das topic command schicken. - Aber wie gesagt, wenn Du das eh über Blockly machst dann kannst Du es auch so schicken. Mit NodeRed wäre es noch einfacher - aber egal.

                  f3de2143-3aea-42f9-b6f4-2efaeb791fbb-image.png

                  Du kannst zwar einen Alias nehmen, um true oder false zu übersetzen - aber das Problem ist wie gesagt, dass Du zum Steuern andere Datenpunkte hast, als zum Lesen. MQTT kennt keine ACK Flags. Man könnte höchsten 2 Alias erstellen - aber wie gesagt, wenn Du eh mit Blockly hantierst, dann brauchst Du das ja nicht.

                  Bei den Shellies schaltest Du die Relais via MQTT ja nicht mit true/false sondern on/off

                  R Offline
                  R Offline
                  Ronnyempire
                  wrote on last edited by
                  #11

                  @mickym Gibt es dafür eine Anleitung? Weil der jetzige Datenpunkt (switch0) ja mehrere Parameter enthält.sss.png

                  mickymM 1 Reply Last reply
                  0
                  • R Ronnyempire

                    @mickym Gibt es dafür eine Anleitung? Weil der jetzige Datenpunkt (switch0) ja mehrere Parameter enthält.sss.png

                    mickymM Offline
                    mickymM Offline
                    mickym
                    Most Active
                    wrote on last edited by mickym
                    #12

                    @ronnyempire Schau mal grundsätzlich hier: https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt

                    So nun zu Deinen jetzigen Datenpunkten.

                    Zum Auslesen ist das ja ziemlich simple - Du liest einfach den output Parameter aus.

                    444e8d72-d69c-4dce-9185-734da0d0621a-image.png

                    Du lässt den Datenpunkt einfach triggern und liest dann den Datenpunkt aus und selektierst das Attribut. Schreiben tust Du im Prinzip über das command topic.

                    Wenn Du es über einen Datenpunkt machen willst, den Du auch in der VIS bedienen kannst, dann musst Du selbst einen Datenpunkt erstellten. - Ich kann Dich schon durch den Prozess führen - auch wenn ich das Puzzeln nicht besonders mag.

                    Also wenn Du es über einen Datenpunkt machen willst, dann kopiere mir mal den Wert von switch:0 hier in codetags rein und ich simuliere das dann bei mir über einen Datenpunkt und führe Dich durch den Prozess.

                    Code-Tags.gif

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    R 1 Reply Last reply
                    0
                    • mickymM mickym

                      @ronnyempire Schau mal grundsätzlich hier: https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt

                      So nun zu Deinen jetzigen Datenpunkten.

                      Zum Auslesen ist das ja ziemlich simple - Du liest einfach den output Parameter aus.

                      444e8d72-d69c-4dce-9185-734da0d0621a-image.png

                      Du lässt den Datenpunkt einfach triggern und liest dann den Datenpunkt aus und selektierst das Attribut. Schreiben tust Du im Prinzip über das command topic.

                      Wenn Du es über einen Datenpunkt machen willst, den Du auch in der VIS bedienen kannst, dann musst Du selbst einen Datenpunkt erstellten. - Ich kann Dich schon durch den Prozess führen - auch wenn ich das Puzzeln nicht besonders mag.

                      Also wenn Du es über einen Datenpunkt machen willst, dann kopiere mir mal den Wert von switch:0 hier in codetags rein und ich simuliere das dann bei mir über einen Datenpunkt und führe Dich durch den Prozess.

                      Code-Tags.gif

                      R Offline
                      R Offline
                      Ronnyempire
                      wrote on last edited by
                      #13

                      @mickym Alles klar, also VIS muss nicht unbedingt sein. Mir ist nur wichtig, dass meine Blockly Skripte weiter funktionieren. Ich musste ja vom Shelly Adapter auf den Mqtt Adapter umstellen, damit ich die Temperatur richtig auslesen kann.

                      {"id":0, "source":"HTTP", "output":true, "apower":1189.5, "voltage":226.2, "current":5.269, "aenergy":{"total":16468.090,"by_minute":[19845.818,19817.516,19857.311],"minute_ts":1692544679},"temperature":{"tC":67.5, "tF":153.4}}
                      
                      mickymM 2 Replies Last reply
                      0
                      • R Ronnyempire

                        @mickym Alles klar, also VIS muss nicht unbedingt sein. Mir ist nur wichtig, dass meine Blockly Skripte weiter funktionieren. Ich musste ja vom Shelly Adapter auf den Mqtt Adapter umstellen, damit ich die Temperatur richtig auslesen kann.

                        {"id":0, "source":"HTTP", "output":true, "apower":1189.5, "voltage":226.2, "current":5.269, "aenergy":{"total":16468.090,"by_minute":[19845.818,19817.516,19857.311],"minute_ts":1692544679},"temperature":{"tC":67.5, "tF":153.4}}
                        
                        mickymM Offline
                        mickymM Offline
                        mickym
                        Most Active
                        wrote on last edited by mickym
                        #14

                        @ronnyempire sagte in Shelly addon über Node Red auf einer NAS mit iobroker:

                        {"id":0, "source":"HTTP", "output":true, "apower":1189.5, "voltage":226.2, "current":5.269, "aenergy":{"total":16468.090,"by_minute":[19845.818,19817.516,19857.311],"minute_ts":1692544679},"temperature":{"tC":67.5, "tF":153.4}}

                        So nur für Dich zur Info - ich habe jetzt mal 2 Datenpunkte unter 0_userdata.0 angelegt - Du brauchst aber für Dein Relais Schalter nur einen Datenpunkt vom Typ Boolean - ich hab den schalter genannt. der shelly1pm repräsentiert Deinen Datenpunkt des Shelly1PMs im Mqtt.

                        f3811419-1972-4674-a099-ef0694b76bad-image.png

                        Mit diesem Blockly setzt Du den Wert Deines Datenpunktes - Schalter, sobald vom mqtt ein neuer Status kommt.

                        b53ddebc-faa3-4164-9cda-a33533a5fb89-image.png

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <block type="on" id="*7X?[f+XtD0vAcAVMqFY" x="-362" y="-487">
                           <field name="OID">0_userdata.0.Test.shelly1pm</field>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION">true</field>
                           <statement name="STATEMENT">
                             <block type="update" id="zd@Eas).84:(^VE{[m6a">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">0_userdata.0.Test.schalter</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="get_attr" id="J@ZUCDah{NrYy`??WN4m">
                                   <value name="PATH">
                                     <shadow type="text" id="b72GuGuAr)l8T8KB*dXu">
                                       <field name="TEXT">output</field>
                                     </shadow>
                                   </value>
                                   <value name="OBJECT">
                                     <block type="on_source" id="t=b1rMSd+C%zd(y%1WA*">
                                       <field name="ATTR">state.val</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </statement>
                         </block>
                        </xml>
                        

                        Du musst halt die Pfade zu Deinen Datenpunkten anpassen.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        1 Reply Last reply
                        0
                        • mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          wrote on last edited by mickym
                          #15

                          So hier ist dann auch der umgekehrte Weg. Wenn Du also in Deinen selbst erstellten DP mit steuer also ACK=False schreibst, dann wird der untere Ast selektiert:

                          04b8728c-efa4-409c-b6cf-69b453ae80a6-image.png

                          <xml xmlns="https://developers.google.com/blockly/xml">
                            <variables>
                              <variable id="IWCFnZr0b.`3kTR;i}9f">Schalter1</variable>
                            </variables>
                            <block type="on" id="*7X?[f+XtD0vAcAVMqFY" x="-387" y="-537">
                              <field name="OID">0_userdata.0.Test.shelly1pm</field>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION">true</field>
                              <statement name="STATEMENT">
                                <block type="update" id="zd@Eas).84:(^VE{[m6a">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.Test.schalter</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="get_attr" id="J@ZUCDah{NrYy`??WN4m">
                                      <value name="PATH">
                                        <shadow type="text" id="b72GuGuAr)l8T8KB*dXu">
                                          <field name="TEXT">output</field>
                                        </shadow>
                                      </value>
                                      <value name="OBJECT">
                                        <block type="on_source" id="t=b1rMSd+C%zd(y%1WA*">
                                          <field name="ATTR">state.val</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <next>
                                <block type="on" id="-_0G]27pLb=[)%L(@5@k">
                                  <field name="OID">0_userdata.0.Test.schalter</field>
                                  <field name="CONDITION">ne</field>
                                  <field name="ACK_CONDITION">false</field>
                                  <statement name="STATEMENT">
                                    <block type="controls_if" id="!o=;)%+mI6a6QPg):2(:">
                                      <mutation else="1"></mutation>
                                      <value name="IF0">
                                        <block type="on_source" id="P{B9%6M?Av5.^+!.fJsT">
                                          <field name="ATTR">state.val</field>
                                        </block>
                                      </value>
                                      <statement name="DO0">
                                        <block type="variables_set" id="b$zi{jmUA:O:=~-DP(7A">
                                          <field name="VAR" id="IWCFnZr0b.`3kTR;i}9f">Schalter1</field>
                                          <value name="VALUE">
                                            <block type="text" id="fJO_.5wQ}*3;H:0(MyD{">
                                              <field name="TEXT">on</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                      <statement name="ELSE">
                                        <block type="variables_set" id="}UCd#8ZqgBgO(X$p3Qvf">
                                          <field name="VAR" id="IWCFnZr0b.`3kTR;i}9f">Schalter1</field>
                                          <value name="VALUE">
                                            <block type="text" id="c^h^9kn,x1~YJ;cfSub^">
                                              <field name="TEXT">off</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                      <next>
                                        <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                                          <field name="INSTANCE">mqtt.1</field>
                                          <field name="COMMAND">sendMessage2Client</field>
                                          <field name="LOG"></field>
                                          <field name="WITH_STATEMENT">FALSE</field>
                                          <value name="ARG0">
                                            <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                              <field name="TEXT">shellyplus1pm-80646fe3f840/command/switch:0</field>
                                            </shadow>
                                          </value>
                                          <value name="ARG1">
                                            <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                              <field name="TEXT">Meine Nachricht</field>
                                            </shadow>
                                            <block type="variables_get" id="FQbgf[f./6MlUVZ},6Lg">
                                              <field name="VAR" id="IWCFnZr0b.`3kTR;i}9f">Schalter1</field>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </xml>
                          
                          

                          Unter Deinen mqtt- Datenpunkten sollte dann auch der command Ast auftauchen:

                          c2093855-44ee-4c82-a926-6e6904546433-image.png

                          Sobald der Datenpunkt unten erstellt ist, kannst Du diesen anstelle von SendTo auch mit steuere direkt in den Datenpunkt schreiben.

                          So nun habe ich aber genug gepuzzelt - ich hasse puzzeln. 😉

                          ===============================================================

                          Eine Alternative ist DOCH ein Alias zu nutzen (s. nächster Post)

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          mickymM 1 Reply Last reply
                          0
                          • mickymM mickym

                            So hier ist dann auch der umgekehrte Weg. Wenn Du also in Deinen selbst erstellten DP mit steuer also ACK=False schreibst, dann wird der untere Ast selektiert:

                            04b8728c-efa4-409c-b6cf-69b453ae80a6-image.png

                            <xml xmlns="https://developers.google.com/blockly/xml">
                              <variables>
                                <variable id="IWCFnZr0b.`3kTR;i}9f">Schalter1</variable>
                              </variables>
                              <block type="on" id="*7X?[f+XtD0vAcAVMqFY" x="-387" y="-537">
                                <field name="OID">0_userdata.0.Test.shelly1pm</field>
                                <field name="CONDITION">ne</field>
                                <field name="ACK_CONDITION">true</field>
                                <statement name="STATEMENT">
                                  <block type="update" id="zd@Eas).84:(^VE{[m6a">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Test.schalter</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="get_attr" id="J@ZUCDah{NrYy`??WN4m">
                                        <value name="PATH">
                                          <shadow type="text" id="b72GuGuAr)l8T8KB*dXu">
                                            <field name="TEXT">output</field>
                                          </shadow>
                                        </value>
                                        <value name="OBJECT">
                                          <block type="on_source" id="t=b1rMSd+C%zd(y%1WA*">
                                            <field name="ATTR">state.val</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                                <next>
                                  <block type="on" id="-_0G]27pLb=[)%L(@5@k">
                                    <field name="OID">0_userdata.0.Test.schalter</field>
                                    <field name="CONDITION">ne</field>
                                    <field name="ACK_CONDITION">false</field>
                                    <statement name="STATEMENT">
                                      <block type="controls_if" id="!o=;)%+mI6a6QPg):2(:">
                                        <mutation else="1"></mutation>
                                        <value name="IF0">
                                          <block type="on_source" id="P{B9%6M?Av5.^+!.fJsT">
                                            <field name="ATTR">state.val</field>
                                          </block>
                                        </value>
                                        <statement name="DO0">
                                          <block type="variables_set" id="b$zi{jmUA:O:=~-DP(7A">
                                            <field name="VAR" id="IWCFnZr0b.`3kTR;i}9f">Schalter1</field>
                                            <value name="VALUE">
                                              <block type="text" id="fJO_.5wQ}*3;H:0(MyD{">
                                                <field name="TEXT">on</field>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                        <statement name="ELSE">
                                          <block type="variables_set" id="}UCd#8ZqgBgO(X$p3Qvf">
                                            <field name="VAR" id="IWCFnZr0b.`3kTR;i}9f">Schalter1</field>
                                            <value name="VALUE">
                                              <block type="text" id="c^h^9kn,x1~YJ;cfSub^">
                                                <field name="TEXT">off</field>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                        <next>
                                          <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                                            <field name="INSTANCE">mqtt.1</field>
                                            <field name="COMMAND">sendMessage2Client</field>
                                            <field name="LOG"></field>
                                            <field name="WITH_STATEMENT">FALSE</field>
                                            <value name="ARG0">
                                              <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                                <field name="TEXT">shellyplus1pm-80646fe3f840/command/switch:0</field>
                                              </shadow>
                                            </value>
                                            <value name="ARG1">
                                              <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                                <field name="TEXT">Meine Nachricht</field>
                                              </shadow>
                                              <block type="variables_get" id="FQbgf[f./6MlUVZ},6Lg">
                                                <field name="VAR" id="IWCFnZr0b.`3kTR;i}9f">Schalter1</field>
                                              </block>
                                            </value>
                                          </block>
                                        </next>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </xml>
                            
                            

                            Unter Deinen mqtt- Datenpunkten sollte dann auch der command Ast auftauchen:

                            c2093855-44ee-4c82-a926-6e6904546433-image.png

                            Sobald der Datenpunkt unten erstellt ist, kannst Du diesen anstelle von SendTo auch mit steuere direkt in den Datenpunkt schreiben.

                            So nun habe ich aber genug gepuzzelt - ich hasse puzzeln. 😉

                            ===============================================================

                            Eine Alternative ist DOCH ein Alias zu nutzen (s. nächster Post)

                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            wrote on last edited by mickym
                            #16

                            Ah ich sehe man kann doch unterschiedliche IDs zum Lesen und Schreiben in EINEM ALIAS verwenden, dann probieren wir das ohne Blockly. So also alles zurück - es funktioniert mit einem ALIAS.

                            a757b0f8-c1c1-466c-a46d-fe35a129e83d-image.png

                            Zum Lesen musst Du Deinen status Datenpunkt eingeben.

                            mqtt.0.shellyplus1pm-80646fe3f840.status.switch:0
                            

                            Zum Schreiben den manuell erstellten Datenpunkt unter command.

                            mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0
                            

                            Die Lesen Konvertierungsfunktion ist dann wie gehabt:

                            JSON.parse(val).output
                            

                            Die Schreiben Konvertierungsfunktion:

                            val ? "on" : "off"
                            

                            Damit kannst Du dann ganz normal mit dem ALIAS über steuere und Blockly/VIS EIN und AUS-Schalten und liest den Status gleichzeitig über die Lesefunktion ein.

                            Ich wusste selbst nicht, dass das inzwischen aufgebohrt wurde. Aber damit geht alles über EINEN Alias

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            R 1 Reply Last reply
                            0
                            • R Ronnyempire

                              @mickym Alles klar, also VIS muss nicht unbedingt sein. Mir ist nur wichtig, dass meine Blockly Skripte weiter funktionieren. Ich musste ja vom Shelly Adapter auf den Mqtt Adapter umstellen, damit ich die Temperatur richtig auslesen kann.

                              {"id":0, "source":"HTTP", "output":true, "apower":1189.5, "voltage":226.2, "current":5.269, "aenergy":{"total":16468.090,"by_minute":[19845.818,19817.516,19857.311],"minute_ts":1692544679},"temperature":{"tC":67.5, "tF":153.4}}
                              
                              mickymM Offline
                              mickymM Offline
                              mickym
                              Most Active
                              wrote on last edited by mickym
                              #17

                              @ronnyempire

                              So ich hab es auch noch mal mit einem Blockly getestet zum EIN- und AUSSCHALTEN und EINEM Alias

                              52ef01f4-5c49-4221-93a7-732f459a79ae-image.png

                              also mit steuere und das funktioniert!

                              Den unteren Teil kannst vergessen, den habe ich nur genommen, um Deinen Shelly1PM zu simulieren.

                              Um manuell übrigens den Datenpunkt im mqtt zu erstellen, musst Du den Expertenmodus einschalten.

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              1 Reply Last reply
                              0
                              • mickymM mickym

                                Ah ich sehe man kann doch unterschiedliche IDs zum Lesen und Schreiben in EINEM ALIAS verwenden, dann probieren wir das ohne Blockly. So also alles zurück - es funktioniert mit einem ALIAS.

                                a757b0f8-c1c1-466c-a46d-fe35a129e83d-image.png

                                Zum Lesen musst Du Deinen status Datenpunkt eingeben.

                                mqtt.0.shellyplus1pm-80646fe3f840.status.switch:0
                                

                                Zum Schreiben den manuell erstellten Datenpunkt unter command.

                                mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0
                                

                                Die Lesen Konvertierungsfunktion ist dann wie gehabt:

                                JSON.parse(val).output
                                

                                Die Schreiben Konvertierungsfunktion:

                                val ? "on" : "off"
                                

                                Damit kannst Du dann ganz normal mit dem ALIAS über steuere und Blockly/VIS EIN und AUS-Schalten und liest den Status gleichzeitig über die Lesefunktion ein.

                                Ich wusste selbst nicht, dass das inzwischen aufgebohrt wurde. Aber damit geht alles über EINEN Alias

                                R Offline
                                R Offline
                                Ronnyempire
                                wrote on last edited by Ronnyempire
                                #18

                                @mickym said in Shelly addon über Node Red auf einer NAS mit iobroker:

                                val ? "on" : "off"

                                Ich danke dir herzlich für deine Mühen, jedoch bekomme ich es bei mir nicht zum laufen. Es erscheint beim Wert immer nur "null" und ein ändern bringt gar keinen effekt.

                                state.png

                                {
                                  "common": {
                                    "name": "SwitchPool",
                                    "desc": "Manuell erzeugt",
                                    "role": "state",
                                    "type": "boolean",
                                    "read": true,
                                    "write": true,
                                    "def": "",
                                    "alias": {
                                      "id": {
                                        "read": "mqtt.1.shellyplus1pm-80646fe3f840.status.switch:0",
                                        "write": "mqtt.1.shellyplus1pm-80646fe3f840.command.switch:0"
                                      },
                                      "read": "JSON.parse(val).output",
                                      "write": "val ? \"on\" : \"off\""
                                    }
                                  },
                                  "type": "state",
                                  "native": {},
                                  "_id": "alias.0.SwitchPool",
                                  "from": "system.adapter.admin.0",
                                  "user": "system.user.admin",
                                  "ts": 1692625966200
                                
                                mickymM 1 Reply Last reply
                                0
                                • R Ronnyempire

                                  @mickym said in Shelly addon über Node Red auf einer NAS mit iobroker:

                                  val ? "on" : "off"

                                  Ich danke dir herzlich für deine Mühen, jedoch bekomme ich es bei mir nicht zum laufen. Es erscheint beim Wert immer nur "null" und ein ändern bringt gar keinen effekt.

                                  state.png

                                  {
                                    "common": {
                                      "name": "SwitchPool",
                                      "desc": "Manuell erzeugt",
                                      "role": "state",
                                      "type": "boolean",
                                      "read": true,
                                      "write": true,
                                      "def": "",
                                      "alias": {
                                        "id": {
                                          "read": "mqtt.1.shellyplus1pm-80646fe3f840.status.switch:0",
                                          "write": "mqtt.1.shellyplus1pm-80646fe3f840.command.switch:0"
                                        },
                                        "read": "JSON.parse(val).output",
                                        "write": "val ? \"on\" : \"off\""
                                      }
                                    },
                                    "type": "state",
                                    "native": {},
                                    "_id": "alias.0.SwitchPool",
                                    "from": "system.adapter.admin.0",
                                    "user": "system.user.admin",
                                    "ts": 1692625966200
                                  
                                  mickymM Offline
                                  mickymM Offline
                                  mickym
                                  Most Active
                                  wrote on last edited by mickym
                                  #19

                                  @ronnyempire Ist das bei Dir nicht mqtt.0 ? - anstelle von mqtt.1 ? Ich habs unten mal ausgebessert - da nur bei mir die 1. Instanz und nicht die 0. ist.

                                  Du müsstest im Log auch Warnungen haben, wenn die Quelldatenpunkte nicht gefunden werden. Hast Du den Datenpunkt:

                                  mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0
                                  

                                  auch erstellt?

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  R 1 Reply Last reply
                                  0
                                  • mickymM mickym

                                    @ronnyempire Ist das bei Dir nicht mqtt.0 ? - anstelle von mqtt.1 ? Ich habs unten mal ausgebessert - da nur bei mir die 1. Instanz und nicht die 0. ist.

                                    Du müsstest im Log auch Warnungen haben, wenn die Quelldatenpunkte nicht gefunden werden. Hast Du den Datenpunkt:

                                    mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0
                                    

                                    auch erstellt?

                                    R Offline
                                    R Offline
                                    Ronnyempire
                                    wrote on last edited by
                                    #20

                                    @mickym said in Shelly addon über Node Red auf einer NAS mit iobroker:

                                    mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0

                                    Ok ich habe es angepasst, aber immer noch kein effekt. Der Datenpunt war schon da unter command

                                    {
                                      "_id": "mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0",
                                      "common": {
                                        "name": "shellyplus1pm-80646fe3f840/command/switch:0",
                                        "write": true,
                                        "read": true,
                                        "role": "variable",
                                        "desc": "mqtt server variable",
                                        "type": "boolean"
                                      },
                                      "native": {
                                        "topic": "shellyplus1pm-80646fe3f840/command/switch:0"
                                      },
                                      "type": "state",
                                      "from": "system.adapter.admin.0",
                                      "user": "system.user.admin",
                                      "ts": 1692626757693
                                    }
                                    
                                    mickymM 1 Reply Last reply
                                    0
                                    • R Ronnyempire

                                      @mickym said in Shelly addon über Node Red auf einer NAS mit iobroker:

                                      mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0

                                      Ok ich habe es angepasst, aber immer noch kein effekt. Der Datenpunt war schon da unter command

                                      {
                                        "_id": "mqtt.0.shellyplus1pm-80646fe3f840.command.switch:0",
                                        "common": {
                                          "name": "shellyplus1pm-80646fe3f840/command/switch:0",
                                          "write": true,
                                          "read": true,
                                          "role": "variable",
                                          "desc": "mqtt server variable",
                                          "type": "boolean"
                                        },
                                        "native": {
                                          "topic": "shellyplus1pm-80646fe3f840/command/switch:0"
                                        },
                                        "type": "state",
                                        "from": "system.adapter.admin.0",
                                        "user": "system.user.admin",
                                        "ts": 1692626757693
                                      }
                                      
                                      mickymM Offline
                                      mickymM Offline
                                      mickym
                                      Most Active
                                      wrote on last edited by
                                      #21

                                      @ronnyempire na ok. Dann halt erstmal schauen ob es grundsätzlich funktioniert ohne Alias.

                                      Schreibe doch mal „on“ oder „off“ ohne Bestätigung in den command Datenpunkt und schau ob das Relais schaltet.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      R 1 Reply Last reply
                                      0
                                      • mickymM mickym

                                        @ronnyempire na ok. Dann halt erstmal schauen ob es grundsätzlich funktioniert ohne Alias.

                                        Schreibe doch mal „on“ oder „off“ ohne Bestätigung in den command Datenpunkt und schau ob das Relais schaltet.

                                        R Offline
                                        R Offline
                                        Ronnyempire
                                        wrote on last edited by
                                        #22

                                        @mickym Danke dir, dass war der entscheidende Hinweis. Der Datenpunkt war als Logikwert hinterlegt. Ich habe es auf Zeichenkette geändert und jetzt geht es. 🙂

                                        mickymM 1 Reply Last reply
                                        0
                                        • R Ronnyempire

                                          @mickym Danke dir, dass war der entscheidende Hinweis. Der Datenpunkt war als Logikwert hinterlegt. Ich habe es auf Zeichenkette geändert und jetzt geht es. 🙂

                                          mickymM Offline
                                          mickymM Offline
                                          mickym
                                          Most Active
                                          wrote on last edited by
                                          #23

                                          @ronnyempire ok das heißt jetzt geht auch der ganze Zyklus mit Lesen und Schreiben? Und du kannst mit Blockly steuere über den Alias schalten?

                                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                          R 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          79

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe