Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Shelly-Geräte mit MQTT-Adapter steuern

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Shelly-Geräte mit MQTT-Adapter steuern

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
52 Beiträge 8 Kommentatoren 6.3k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • KlausStoertebekerK KlausStoertebeker

    @mickym
    Super 🙂 Das hat funktioniert. Und was mache ich, wenn ich unter "schedules" das Attribut auf "enable" auf false setzen möchte? Ich habe es mit

    {"id":123, "src":"user_1", "method": "Thermostat.SetConfig","params": {"id": 0, "config": {"schedules":{"enable": false}}}} 
    

    aber es passiert nichts.

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #7

    @klausstoertebeker sagte in Shelly-Geräte mit MQTT-Adapter steuern:

    @mickym
    Super 🙂 Das hat funktioniert. Und was mache ich, wenn ich unter "schedules" das Attribut auf "enable" auf false setzen möchte? Ich habe es mit

    {"id":123, "src":"user_1", "method": "Thermostat.SetConfig","params": {"id": 0, "config": {"schedules":{"enable": false}}}} 
    

    aber es passiert nichts.

    Meines Erachtens kannst Du entweder alle Scheduler löschen oder Du disablest einen vorhandenen Scheduler. Deswegen würde ich mir die erst mal ausgeben lassen.

    {"id":123, "src":"user_1", "method": "Schedule.List"}
    

    Wenn Du dann einen disablen willst, dann musst Du den Updaten:
    https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Schedule#scheduleupdate

    {"id":123, "src":"user_1", "method": "Schedule.Update","params": {"id": 0, "enable":  false}} 
    

    id Nummer ist halt des Schedulers, den Du disablen willst.

    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 Antwort Letzte Antwort
    0
    • KlausStoertebekerK KlausStoertebeker

      @mickym
      Super 🙂 Das hat funktioniert. Und was mache ich, wenn ich unter "schedules" das Attribut auf "enable" auf false setzen möchte? Ich habe es mit

      {"id":123, "src":"user_1", "method": "Thermostat.SetConfig","params": {"id": 0, "config": {"schedules":{"enable": false}}}} 
      

      aber es passiert nichts.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #8

      Diese curl Request mit dem POST kommen der Mqtt Syntax über rpc am nächsten:
      f092e355-95a1-41c7-8f1c-ccaaebe60a86-image.png

      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.

      KlausStoertebekerK 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        Diese curl Request mit dem POST kommen der Mqtt Syntax über rpc am nächsten:
        f092e355-95a1-41c7-8f1c-ccaaebe60a86-image.png

        KlausStoertebekerK Offline
        KlausStoertebekerK Offline
        KlausStoertebeker
        schrieb am zuletzt editiert von KlausStoertebeker
        #9

        @mickym Vielen Dank für die Hilfe, und die MQTT-Dokumentationsseite von Shelly, die Du verinkt hast, ist eine echte Fundgrube 🙂
        Ich habe aber noch eine Herausforderung, denn ich möchte aus einem Shelly-Zwischenstecker die Werte für den Schalter, Spannung, Strom, Leistung und Verbrauch bei Änderung speichern. Die MQTT-Struktur eines solchen Shelly-Zwischensteckers sieht wie folgt aus:

        MQTT-Zwischenstecker-Objektbaum.png

        Die Werte für den Schalter, Spannung, Strom, Leistung und Verbrauch sind unter dem Status "switch:0" enthalten und werden auch bei Änderung im Dtenpunkt "events/rpc" gemeldet.
        Zum Speichern der Werte habe ich mir unter "0_userdata" folgende Struktur erstellt

        Shelly-MQTT-Represäntationen-Objektbaum.png

        und möchte diese Datenpunkte bei Änderung des Datenpunks "events/rpc" mit den entsprechenden Werten beschreiben.
        Dazu habe ich mir folgendes Blockly-Skript erstellt:

        <block xmlns="https://developers.google.com/blockly/xml" type="control" id="~nPPqM52qlNN,b8w`Py$" x="182" y="371">
          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
          <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Schalter</field>
          <field name="WITH_DELAY">FALSE</field>
          <value name="VALUE">
            <block type="convert_toboolean" id="[)%Fpk*mzC)z2[2xrvAP">
              <value name="VALUE">
                <block type="get_attr" id="D0A$J@{KUPXM;;,H$*Dh">
                  <value name="PATH">
                    <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                      <field name="TEXT">attribute1</field>
                    </shadow>
                    <block type="text" id="9E(0zPQ_P|As?2$|!b`d">
                      <field name="TEXT">output</field>
                    </block>
                  </value>
                  <value name="OBJECT">
                    <shadow type="get_object" id="s[-s/s2@$zicEn)y0o;W">
                      <field name="OID">Object ID</field>
                    </shadow>
                    <block type="convert_json2object" id=".*Gm~inVhrSR^B#=RkbS">
                      <value name="VALUE">
                        <block type="get_attr" id="OAqi-`=S$~~P(`,=v^l.">
                          <value name="PATH">
                            <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                              <field name="TEXT">attribute1</field>
                            </shadow>
                            <block type="text" id="%xk[uKcSl*D{N3gK|^-B">
                              <field name="TEXT">switch:0</field>
                            </block>
                          </value>
                          <value name="OBJECT">
                            <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                              <field name="OID">Object ID</field>
                            </shadow>
                            <block type="convert_json2object" id="Z|#V%}HQUb[CqH!B1#q]">
                              <value name="VALUE">
                                <block type="get_value" id="qKTK_7Pf~2d=x`|[~6l|">
                                  <field name="ATTR">val</field>
                                  <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </value>
          <next>
            <block type="control" id="-cURGj_t(5BlpxX[3au}">
              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
              <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Spannung</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE">
                <block type="convert_tonumber" id=".R^,gRT+yf/Humul5CT$">
                  <value name="VALUE">
                    <block type="get_attr" id="I*YDM?.2@A)FIx(^9;Ic">
                      <value name="PATH">
                        <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                          <field name="TEXT">attribute1</field>
                        </shadow>
                        <block type="text" id="e@vzHE-)6gqac*i5%3W2">
                          <field name="TEXT">voltage</field>
                        </block>
                      </value>
                      <value name="OBJECT">
                        <shadow type="get_object" id="?5,}9#{tJ~$mMc7TE`t]">
                          <field name="OID">Object ID</field>
                        </shadow>
                        <block type="convert_json2object" id="fA;Z.=;Gy3o3X$xYmGk~">
                          <value name="VALUE">
                            <block type="get_attr" id="XgX|;(`jU{Rd#CQ%4M4O">
                              <value name="PATH">
                                <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                  <field name="TEXT">attribute1</field>
                                </shadow>
                                <block type="text" id="v9LR(T@8/rPUh)hXU=aY">
                                  <field name="TEXT">switch:0</field>
                                </block>
                              </value>
                              <value name="OBJECT">
                                <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                  <field name="OID">Object ID</field>
                                </shadow>
                                <block type="convert_json2object" id="PfMmATcM3|c}(=dVtKsA">
                                  <value name="VALUE">
                                    <block type="get_value" id="!N.?I]v!{oY,@beb|PTU">
                                      <field name="ATTR">val</field>
                                      <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="control" id="7zUngxD~v:w|ws[]*YWi">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Strom</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="convert_tonumber" id="ZA|5xCF{E2Dv*54p/QS4">
                      <value name="VALUE">
                        <block type="get_attr" id="FV2N=ZC]^bn755?E,Zvg">
                          <value name="PATH">
                            <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                              <field name="TEXT">attribute1</field>
                            </shadow>
                            <block type="text" id="6LFn$UlAyb%cP(?3G!:7">
                              <field name="TEXT">current</field>
                            </block>
                          </value>
                          <value name="OBJECT">
                            <shadow type="get_object" id="#]50IJaAuR=koImfK0W1">
                              <field name="OID">Object ID</field>
                            </shadow>
                            <block type="convert_json2object" id="MAt1H!/tk`1du%bY`rX5">
                              <value name="VALUE">
                                <block type="get_attr" id="YqS%3B?dW}8]H*tosu:F">
                                  <value name="PATH">
                                    <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                      <field name="TEXT">attribute1</field>
                                    </shadow>
                                    <block type="text" id="g]-e*!`KV83asQ6XUMT7">
                                      <field name="TEXT">switch:0</field>
                                    </block>
                                  </value>
                                  <value name="OBJECT">
                                    <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                      <field name="OID">Object ID</field>
                                    </shadow>
                                    <block type="convert_json2object" id="YCT/cdS}5mGn_%:^Wlmm">
                                      <value name="VALUE">
                                        <block type="get_value" id="b/tw|p0k#^lZyh9smB|W">
                                          <field name="ATTR">val</field>
                                          <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="control" id="50B{g3~{YfMO4b=nwS]r">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Leistung</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="convert_tonumber" id="t`DmK(qZGpflJZB*Uipz">
                          <value name="VALUE">
                            <block type="get_attr" id="p*KHRPLdz;I)@T=h=Ii4">
                              <value name="PATH">
                                <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                                  <field name="TEXT">attribute1</field>
                                </shadow>
                                <block type="text" id="==H,:qpqEAS:mf63gNLO">
                                  <field name="TEXT">apower</field>
                                </block>
                              </value>
                              <value name="OBJECT">
                                <shadow type="get_object" id="p@3gjpam]@p!5@+*edja">
                                  <field name="OID">Object ID</field>
                                </shadow>
                                <block type="convert_json2object" id="k]/:,$_AAncIvN;Ekc}R">
                                  <value name="VALUE">
                                    <block type="get_attr" id="LKwq4m2XD#fU}U,d=WIK">
                                      <value name="PATH">
                                        <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                          <field name="TEXT">attribute1</field>
                                        </shadow>
                                        <block type="text" id="b#?TlCiDn*Z-gxW%(aYu">
                                          <field name="TEXT">switch:0</field>
                                        </block>
                                      </value>
                                      <value name="OBJECT">
                                        <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                          <field name="OID">Object ID</field>
                                        </shadow>
                                        <block type="convert_json2object" id="n?sFCAFg)Qz*l$U/*6{Q">
                                          <value name="VALUE">
                                            <block type="get_value" id="j3@WV`1u*kX:Z6Pb9mk.">
                                              <field name="ATTR">val</field>
                                              <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="c$0*97GH0*u1,2k0*:y(">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Verbrauch</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="convert_tonumber" id="!8D7Tor2%}?m2bP$cSz{">
                              <value name="VALUE">
                                <block type="get_attr" id="Q@_`EikN$Y,IiWPU@r2Q">
                                  <value name="PATH">
                                    <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                                      <field name="TEXT">attribute1</field>
                                    </shadow>
                                    <block type="text" id="rsV`%.mC{wTU0AQXL6L@">
                                      <field name="TEXT">total</field>
                                    </block>
                                  </value>
                                  <value name="OBJECT">
                                    <shadow type="get_object" id="NuYQo{=;^2PC6pVLvzFQ">
                                      <field name="OID">Object ID</field>
                                    </shadow>
                                    <block type="convert_json2object" id="D^}2Po+k9QcKUf}B_/zN">
                                      <value name="VALUE">
                                        <block type="get_attr" id="%=w.(wnoQXwJP:%X4,?4">
                                          <value name="PATH">
                                            <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                              <field name="TEXT">attribute1</field>
                                            </shadow>
                                            <block type="text" id="IqcDST6lnUu7!+2N?.4u">
                                              <field name="TEXT">aenergy</field>
                                            </block>
                                          </value>
                                          <value name="OBJECT">
                                            <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                              <field name="OID">Object ID</field>
                                            </shadow>
                                            <block type="convert_json2object" id="5RO09NsoI%oQLtrXI^Lg">
                                              <value name="VALUE">
                                                <block type="get_attr" id="(P#ouVAPFa8$ugz7X1o0">
                                                  <value name="PATH">
                                                    <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                                      <field name="TEXT">attribute1</field>
                                                    </shadow>
                                                    <block type="text" id="=rnLXgReyHUNr?t%UDwb">
                                                      <field name="TEXT">switch:0</field>
                                                    </block>
                                                  </value>
                                                  <value name="OBJECT">
                                                    <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                                      <field name="OID">Object ID</field>
                                                    </shadow>
                                                    <block type="convert_json2object" id="1O/+%HINm.w5DDqx*}%]">
                                                      <value name="VALUE">
                                                        <block type="get_value" id="6UgG!b*GVlT.Sk6G`*Gk">
                                                          <field name="ATTR">val</field>
                                                          <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
        

        Leider werden die Datenpunkte nicht beschrieben.
        Hast Du vielleicht eine Ahnung, warum? Ich weiß, dass die Daten des Datenpunktes "events/rpc" die entspreechenden Daten enthält, wenn sich beispielsweise die Spannung ändert. Aber das Debugging sagt mir nicht, warum die Daten nicht geschrieben werden...

        ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

        mickymM 1 Antwort Letzte Antwort
        0
        • KlausStoertebekerK KlausStoertebeker

          @mickym Vielen Dank für die Hilfe, und die MQTT-Dokumentationsseite von Shelly, die Du verinkt hast, ist eine echte Fundgrube 🙂
          Ich habe aber noch eine Herausforderung, denn ich möchte aus einem Shelly-Zwischenstecker die Werte für den Schalter, Spannung, Strom, Leistung und Verbrauch bei Änderung speichern. Die MQTT-Struktur eines solchen Shelly-Zwischensteckers sieht wie folgt aus:

          MQTT-Zwischenstecker-Objektbaum.png

          Die Werte für den Schalter, Spannung, Strom, Leistung und Verbrauch sind unter dem Status "switch:0" enthalten und werden auch bei Änderung im Dtenpunkt "events/rpc" gemeldet.
          Zum Speichern der Werte habe ich mir unter "0_userdata" folgende Struktur erstellt

          Shelly-MQTT-Represäntationen-Objektbaum.png

          und möchte diese Datenpunkte bei Änderung des Datenpunks "events/rpc" mit den entsprechenden Werten beschreiben.
          Dazu habe ich mir folgendes Blockly-Skript erstellt:

          <block xmlns="https://developers.google.com/blockly/xml" type="control" id="~nPPqM52qlNN,b8w`Py$" x="182" y="371">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Schalter</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="convert_toboolean" id="[)%Fpk*mzC)z2[2xrvAP">
                <value name="VALUE">
                  <block type="get_attr" id="D0A$J@{KUPXM;;,H$*Dh">
                    <value name="PATH">
                      <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                        <field name="TEXT">attribute1</field>
                      </shadow>
                      <block type="text" id="9E(0zPQ_P|As?2$|!b`d">
                        <field name="TEXT">output</field>
                      </block>
                    </value>
                    <value name="OBJECT">
                      <shadow type="get_object" id="s[-s/s2@$zicEn)y0o;W">
                        <field name="OID">Object ID</field>
                      </shadow>
                      <block type="convert_json2object" id=".*Gm~inVhrSR^B#=RkbS">
                        <value name="VALUE">
                          <block type="get_attr" id="OAqi-`=S$~~P(`,=v^l.">
                            <value name="PATH">
                              <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                <field name="TEXT">attribute1</field>
                              </shadow>
                              <block type="text" id="%xk[uKcSl*D{N3gK|^-B">
                                <field name="TEXT">switch:0</field>
                              </block>
                            </value>
                            <value name="OBJECT">
                              <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                <field name="OID">Object ID</field>
                              </shadow>
                              <block type="convert_json2object" id="Z|#V%}HQUb[CqH!B1#q]">
                                <value name="VALUE">
                                  <block type="get_value" id="qKTK_7Pf~2d=x`|[~6l|">
                                    <field name="ATTR">val</field>
                                    <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="control" id="-cURGj_t(5BlpxX[3au}">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Spannung</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="convert_tonumber" id=".R^,gRT+yf/Humul5CT$">
                    <value name="VALUE">
                      <block type="get_attr" id="I*YDM?.2@A)FIx(^9;Ic">
                        <value name="PATH">
                          <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                            <field name="TEXT">attribute1</field>
                          </shadow>
                          <block type="text" id="e@vzHE-)6gqac*i5%3W2">
                            <field name="TEXT">voltage</field>
                          </block>
                        </value>
                        <value name="OBJECT">
                          <shadow type="get_object" id="?5,}9#{tJ~$mMc7TE`t]">
                            <field name="OID">Object ID</field>
                          </shadow>
                          <block type="convert_json2object" id="fA;Z.=;Gy3o3X$xYmGk~">
                            <value name="VALUE">
                              <block type="get_attr" id="XgX|;(`jU{Rd#CQ%4M4O">
                                <value name="PATH">
                                  <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                    <field name="TEXT">attribute1</field>
                                  </shadow>
                                  <block type="text" id="v9LR(T@8/rPUh)hXU=aY">
                                    <field name="TEXT">switch:0</field>
                                  </block>
                                </value>
                                <value name="OBJECT">
                                  <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                    <field name="OID">Object ID</field>
                                  </shadow>
                                  <block type="convert_json2object" id="PfMmATcM3|c}(=dVtKsA">
                                    <value name="VALUE">
                                      <block type="get_value" id="!N.?I]v!{oY,@beb|PTU">
                                        <field name="ATTR">val</field>
                                        <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <next>
                  <block type="control" id="7zUngxD~v:w|ws[]*YWi">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Strom</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="convert_tonumber" id="ZA|5xCF{E2Dv*54p/QS4">
                        <value name="VALUE">
                          <block type="get_attr" id="FV2N=ZC]^bn755?E,Zvg">
                            <value name="PATH">
                              <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                                <field name="TEXT">attribute1</field>
                              </shadow>
                              <block type="text" id="6LFn$UlAyb%cP(?3G!:7">
                                <field name="TEXT">current</field>
                              </block>
                            </value>
                            <value name="OBJECT">
                              <shadow type="get_object" id="#]50IJaAuR=koImfK0W1">
                                <field name="OID">Object ID</field>
                              </shadow>
                              <block type="convert_json2object" id="MAt1H!/tk`1du%bY`rX5">
                                <value name="VALUE">
                                  <block type="get_attr" id="YqS%3B?dW}8]H*tosu:F">
                                    <value name="PATH">
                                      <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                        <field name="TEXT">attribute1</field>
                                      </shadow>
                                      <block type="text" id="g]-e*!`KV83asQ6XUMT7">
                                        <field name="TEXT">switch:0</field>
                                      </block>
                                    </value>
                                    <value name="OBJECT">
                                      <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                        <field name="OID">Object ID</field>
                                      </shadow>
                                      <block type="convert_json2object" id="YCT/cdS}5mGn_%:^Wlmm">
                                        <value name="VALUE">
                                          <block type="get_value" id="b/tw|p0k#^lZyh9smB|W">
                                            <field name="ATTR">val</field>
                                            <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="50B{g3~{YfMO4b=nwS]r">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Leistung</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="convert_tonumber" id="t`DmK(qZGpflJZB*Uipz">
                            <value name="VALUE">
                              <block type="get_attr" id="p*KHRPLdz;I)@T=h=Ii4">
                                <value name="PATH">
                                  <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                                    <field name="TEXT">attribute1</field>
                                  </shadow>
                                  <block type="text" id="==H,:qpqEAS:mf63gNLO">
                                    <field name="TEXT">apower</field>
                                  </block>
                                </value>
                                <value name="OBJECT">
                                  <shadow type="get_object" id="p@3gjpam]@p!5@+*edja">
                                    <field name="OID">Object ID</field>
                                  </shadow>
                                  <block type="convert_json2object" id="k]/:,$_AAncIvN;Ekc}R">
                                    <value name="VALUE">
                                      <block type="get_attr" id="LKwq4m2XD#fU}U,d=WIK">
                                        <value name="PATH">
                                          <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                            <field name="TEXT">attribute1</field>
                                          </shadow>
                                          <block type="text" id="b#?TlCiDn*Z-gxW%(aYu">
                                            <field name="TEXT">switch:0</field>
                                          </block>
                                        </value>
                                        <value name="OBJECT">
                                          <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                            <field name="OID">Object ID</field>
                                          </shadow>
                                          <block type="convert_json2object" id="n?sFCAFg)Qz*l$U/*6{Q">
                                            <value name="VALUE">
                                              <block type="get_value" id="j3@WV`1u*kX:Z6Pb9mk.">
                                                <field name="ATTR">val</field>
                                                <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="control" id="c$0*97GH0*u1,2k0*:y(">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Shelly-MQTT-Representationen.Zwischenstecker-16.Verbrauch</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="convert_tonumber" id="!8D7Tor2%}?m2bP$cSz{">
                                <value name="VALUE">
                                  <block type="get_attr" id="Q@_`EikN$Y,IiWPU@r2Q">
                                    <value name="PATH">
                                      <shadow type="text" id="qN8e)3V`@j_bu$/B`,Fe">
                                        <field name="TEXT">attribute1</field>
                                      </shadow>
                                      <block type="text" id="rsV`%.mC{wTU0AQXL6L@">
                                        <field name="TEXT">total</field>
                                      </block>
                                    </value>
                                    <value name="OBJECT">
                                      <shadow type="get_object" id="NuYQo{=;^2PC6pVLvzFQ">
                                        <field name="OID">Object ID</field>
                                      </shadow>
                                      <block type="convert_json2object" id="D^}2Po+k9QcKUf}B_/zN">
                                        <value name="VALUE">
                                          <block type="get_attr" id="%=w.(wnoQXwJP:%X4,?4">
                                            <value name="PATH">
                                              <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                                <field name="TEXT">attribute1</field>
                                              </shadow>
                                              <block type="text" id="IqcDST6lnUu7!+2N?.4u">
                                                <field name="TEXT">aenergy</field>
                                              </block>
                                            </value>
                                            <value name="OBJECT">
                                              <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                                <field name="OID">Object ID</field>
                                              </shadow>
                                              <block type="convert_json2object" id="5RO09NsoI%oQLtrXI^Lg">
                                                <value name="VALUE">
                                                  <block type="get_attr" id="(P#ouVAPFa8$ugz7X1o0">
                                                    <value name="PATH">
                                                      <shadow type="text" id="lE2vxjIAe|GJ7zJnmfKO">
                                                        <field name="TEXT">attribute1</field>
                                                      </shadow>
                                                      <block type="text" id="=rnLXgReyHUNr?t%UDwb">
                                                        <field name="TEXT">switch:0</field>
                                                      </block>
                                                    </value>
                                                    <value name="OBJECT">
                                                      <shadow type="get_object" id="g*{@m/_d$+s#;vr|idRn">
                                                        <field name="OID">Object ID</field>
                                                      </shadow>
                                                      <block type="convert_json2object" id="1O/+%HINm.w5DDqx*}%]">
                                                        <value name="VALUE">
                                                          <block type="get_value" id="6UgG!b*GVlT.Sk6G`*Gk">
                                                            <field name="ATTR">val</field>
                                                            <field name="OID">mqtt.0.shellyplusplugs-fcb4670dd890.events.rpc</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
          

          Leider werden die Datenpunkte nicht beschrieben.
          Hast Du vielleicht eine Ahnung, warum? Ich weiß, dass die Daten des Datenpunktes "events/rpc" die entspreechenden Daten enthält, wenn sich beispielsweise die Spannung ändert. Aber das Debugging sagt mir nicht, warum die Daten nicht geschrieben werden...

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #10

          @klausstoertebeker Also Du musst, wenn Du Blockly schon exportierst, den Code in CodeTags packen.

          Code-Tags.gif

          Ansonsten kann ich Dir meinen NodeRed Flow empfehlen oder Du erstellst Dir Aliase zum extrahieren der Werte, dann brauchst Du auch kein Blockly.

          Die Werte sollten eigentlich unter status switch:0 sein - deshalb brauchst die events gar nicht.

          Poste einfach mal den Inhalt von switch:0 hier in codeTags und welches Attribut Du lesen möchtest, dann zeige ich Dir wie einfach das mit einem Alias, Blockly oder NodeRed geht.

          Aber ich kann mir auch dein Blockly anschauen - auch wenn ich eher NodeRed Fan bin.

          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 Antwort Letzte Antwort
          0
          • mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #11
            • Ich kenne Deine Daten in den events nicht.
            • Ausserdem werden in events ja nicht alle Daten geliefert, sondern nur die sich verändert haben. Ich würde deshalb lieber den Status abfragen.
            • Die Konvertierung braucht es nicht - weil automatisch in ein Objekt konvertiert wird
            • Außerdem nimmt man aktualisiere für Datenpunkte unter 0_userdata.0 - da Du nichts steuerst.
            • Wie gesagt nimm den JSON unter status und keine events. Du überschreibst jedesmal mit null, wenn die entsprechenden Attribute nicht vorhanden sind.

            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 Antwort Letzte Antwort
            0
            • KlausStoertebekerK Offline
              KlausStoertebekerK Offline
              KlausStoertebeker
              schrieb am zuletzt editiert von
              #12

              @mickym Hallo mickym 🙂
              Ich möchte gerne den Status von "switch:0" in einen alias einlesen und auch von dort wieder in den Status schreiben (um zum Beispiel "output" ein- und ausschalten zu können). Das habe ich schonmal versucht, bin aber wohl aus Unkenntnis und Wissensdefiziten gescheitert. Aber wenn Du mir zeigen könntest, wie das mit den Aliasen funktioniert, würde ich das gerne nutzen.

              Im Status "switch:0" stehen folgende Daten:

              {
                "id": 0,
                "source": "button",
                "output": true,
                "apower": 0,
                "voltage": 240.9,
                "current": 0,
                "aenergy": {
                  "total": 9016,
                  "by_minute": [
                    0,
                    0,
                    0
                  ],
                  "minute_ts": 1740235140
                },
                "temperature": {
                  "tC": 42,
                  "tF": 107.7
                }
              }
              

              Lesen möchte ich "voltage", "current", "apower" und "aenegy.total". Lesen und schreiben möchte ich "output".
              Ich hatte den Plan bei der Nutzung von "events/rpc", Änderungen der Werte in eine History-Datenbank zu schreiben und auf Änderungen eines dieser Werte zu triggern.

              ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

              mickymM 1 Antwort Letzte Antwort
              0
              • KlausStoertebekerK KlausStoertebeker

                @mickym Hallo mickym 🙂
                Ich möchte gerne den Status von "switch:0" in einen alias einlesen und auch von dort wieder in den Status schreiben (um zum Beispiel "output" ein- und ausschalten zu können). Das habe ich schonmal versucht, bin aber wohl aus Unkenntnis und Wissensdefiziten gescheitert. Aber wenn Du mir zeigen könntest, wie das mit den Aliasen funktioniert, würde ich das gerne nutzen.

                Im Status "switch:0" stehen folgende Daten:

                {
                  "id": 0,
                  "source": "button",
                  "output": true,
                  "apower": 0,
                  "voltage": 240.9,
                  "current": 0,
                  "aenergy": {
                    "total": 9016,
                    "by_minute": [
                      0,
                      0,
                      0
                    ],
                    "minute_ts": 1740235140
                  },
                  "temperature": {
                    "tC": 42,
                    "tF": 107.7
                  }
                }
                

                Lesen möchte ich "voltage", "current", "apower" und "aenegy.total". Lesen und schreiben möchte ich "output".
                Ich hatte den Plan bei der Nutzung von "events/rpc", Änderungen der Werte in eine History-Datenbank zu schreiben und auf Änderungen eines dieser Werte zu triggern.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #13

                @klausstoertebeker Also erst musst Du Dir mal grundsätzliches einnprägen.

                Du hast mehrer RPC Channels - NUR einen (direkt unter Deinem Device) für Kommandos. Der RPC Channel unter Events meldet Ereignisse.
                Alles nachzulesen unter: https://shelly-api-docs.shelly.cloud/gen2/General/RPCChannels#mqtt

                Du wirst also Deinen Output nicht beschreiben können, sondern Du schreibst dein Kommando ganz normal unter den RPC Channel und Dein Status mit der Output Eigenschaft ändert sich automatisch.

                Das heißt den Ein/Aus Zustand liest Du über den switch:0 topic und der output Eigenschaft, Du steuerst es aber den RPC Channel .

                Aliase erstellst Du einfach unter alias.0 - Du kannst auch eine hierarschische Struktur mit Ordner aufbauen.

                f160e0ed-6d10-4115-82b6-49e669682758-image.png

                Die Quelldatenpunkte sind für dich nicht geeignet, da es hier um Shellies der 1. Generation handelt.

                Aber hier habe ich das Ganze schon mal für einen Shelly der 2. Generation gemacht.
                Das war halt ein Dimmer, Du machst es halt mit dem switch:
                https://forum.iobroker.net/post/1245801

                Zu Schalten des Switchs nimmst Du also unterschiedliche Datenpunkte im den Du in den rpc direkt unter Deinem Shelly Plug S schreibst und den switch:0 liest.

                Zum Ein- und Ausschalten nimmst Du also folgende Konvertierungen:

                Lesen:

                JSON.parse(val).output
                

                Schreiben:

                JSON.stringify({method: "Switch.Set", params: { id: 0, on: val}})
                

                siehst Du ja hier:
                https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Switch#switchset

                Den Aliasdatenpunkt musst Du vom Typ her als Logikwert definieren. Generell musst du den Datentyp anhand der zu erwartenden Werte definieren.

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

                Also bei den weiteren Aliasdatenpunkten dann als Zahl.

                Für die Aliase die Du nur zum Lesen brauchst - brauchst Du ja dann immer nur als Quelle den switch:0 Datenpunkt.

                Lesen möchte ich "voltage", "current", "apower" und "aenegy.total".

                Als Quelle nimmst Du den switch:0 Datenpunkt und dann halt für jeden Alias eine andere Konvertierungsfunktion zum Lesen:

                Für voltage:

                JSON.parse(val).voltage
                

                Für current:

                JSON.parse(val).current
                

                Für apower:

                JSON.parse(val).output
                

                Für aenergy.total

                JSON.parse(val).aenergy.total
                

                History kannst Du dann einfach über das Zahnrad im Alias einrichten.

                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.

                KlausStoertebekerK 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @klausstoertebeker Also erst musst Du Dir mal grundsätzliches einnprägen.

                  Du hast mehrer RPC Channels - NUR einen (direkt unter Deinem Device) für Kommandos. Der RPC Channel unter Events meldet Ereignisse.
                  Alles nachzulesen unter: https://shelly-api-docs.shelly.cloud/gen2/General/RPCChannels#mqtt

                  Du wirst also Deinen Output nicht beschreiben können, sondern Du schreibst dein Kommando ganz normal unter den RPC Channel und Dein Status mit der Output Eigenschaft ändert sich automatisch.

                  Das heißt den Ein/Aus Zustand liest Du über den switch:0 topic und der output Eigenschaft, Du steuerst es aber den RPC Channel .

                  Aliase erstellst Du einfach unter alias.0 - Du kannst auch eine hierarschische Struktur mit Ordner aufbauen.

                  f160e0ed-6d10-4115-82b6-49e669682758-image.png

                  Die Quelldatenpunkte sind für dich nicht geeignet, da es hier um Shellies der 1. Generation handelt.

                  Aber hier habe ich das Ganze schon mal für einen Shelly der 2. Generation gemacht.
                  Das war halt ein Dimmer, Du machst es halt mit dem switch:
                  https://forum.iobroker.net/post/1245801

                  Zu Schalten des Switchs nimmst Du also unterschiedliche Datenpunkte im den Du in den rpc direkt unter Deinem Shelly Plug S schreibst und den switch:0 liest.

                  Zum Ein- und Ausschalten nimmst Du also folgende Konvertierungen:

                  Lesen:

                  JSON.parse(val).output
                  

                  Schreiben:

                  JSON.stringify({method: "Switch.Set", params: { id: 0, on: val}})
                  

                  siehst Du ja hier:
                  https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Switch#switchset

                  Den Aliasdatenpunkt musst Du vom Typ her als Logikwert definieren. Generell musst du den Datentyp anhand der zu erwartenden Werte definieren.

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

                  Also bei den weiteren Aliasdatenpunkten dann als Zahl.

                  Für die Aliase die Du nur zum Lesen brauchst - brauchst Du ja dann immer nur als Quelle den switch:0 Datenpunkt.

                  Lesen möchte ich "voltage", "current", "apower" und "aenegy.total".

                  Als Quelle nimmst Du den switch:0 Datenpunkt und dann halt für jeden Alias eine andere Konvertierungsfunktion zum Lesen:

                  Für voltage:

                  JSON.parse(val).voltage
                  

                  Für current:

                  JSON.parse(val).current
                  

                  Für apower:

                  JSON.parse(val).output
                  

                  Für aenergy.total

                  JSON.parse(val).aenergy.total
                  

                  History kannst Du dann einfach über das Zahnrad im Alias einrichten.

                  KlausStoertebekerK Offline
                  KlausStoertebekerK Offline
                  KlausStoertebeker
                  schrieb am zuletzt editiert von
                  #14

                  @mickym
                  Mann, was für eine tolle Hilfe!!! - Deine Vorschläge funktionieren super. Und ich gehe davon aus, dass das auch ähnlich mit meinem Wanddisplay funktioniert 🙂

                  ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                  KlausStoertebekerK 1 Antwort Letzte Antwort
                  0
                  • KlausStoertebekerK KlausStoertebeker

                    @mickym
                    Mann, was für eine tolle Hilfe!!! - Deine Vorschläge funktionieren super. Und ich gehe davon aus, dass das auch ähnlich mit meinem Wanddisplay funktioniert 🙂

                    KlausStoertebekerK Offline
                    KlausStoertebekerK Offline
                    KlausStoertebeker
                    schrieb am zuletzt editiert von
                    #15

                    @mickym
                    Ich brauche wieder Deine Hilfe, denn ich habe das Vorgehen auch mit meinem Wanddisplay versuch, bin aber noch nicht weitergekommen.
                    Im Datenpunkt "status/thermostat:0" werden folgende Daten im JSON-Format abgelegt:

                    {
                      "id": 0,
                      "enable": true,
                      "target_C": 14.5,
                      "current_C": 25.3,
                      "output": false,
                      "schedules": {
                        "enable": true,
                        "profile_id": 0,
                        "profile_name": "Test"
                      }
                    }
                    

                    Ich möchte gerne den Wert "target_C" lesen und schreiben und habe dafür im Alias einen Datenpunkt mit unterschiedlichen Datenpunkten angelegt:
                    Lesen: mqtt.0.ShellyWallDisplay-0008224A613B.status.thermostat:0
                    Schreiben: mqtt.0.ShellyWallDisplay-0008224A613B.rpc
                    Das Lesen mit der Funktion JSON.parse(val).target_C funktioniert auch, aber das Schreiben nicht. Ich habe mich an Deinem Vorschlag vom 20.02.2025 19:03 orientiert und versucht, einen Wert mit der Funktion JSON.stringify({method: "Thermostat.SetConfig", params: {id: 0, config: {target_C: val }}}) in "target_C" zu schreiben.
                    In den "rpc"-Datenpunkt wird der JSON-String

                    {
                      "method": "Thermostat.SetConfig",
                      "params": {
                        "id": 0,
                        "config": {
                          "target_C": 12
                        }
                      }
                    }
                    

                    geschrieben, aber es passiert leider nicht und der Wert wird nicht geändert...

                    ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • KlausStoertebekerK KlausStoertebeker

                      @mickym
                      Ich brauche wieder Deine Hilfe, denn ich habe das Vorgehen auch mit meinem Wanddisplay versuch, bin aber noch nicht weitergekommen.
                      Im Datenpunkt "status/thermostat:0" werden folgende Daten im JSON-Format abgelegt:

                      {
                        "id": 0,
                        "enable": true,
                        "target_C": 14.5,
                        "current_C": 25.3,
                        "output": false,
                        "schedules": {
                          "enable": true,
                          "profile_id": 0,
                          "profile_name": "Test"
                        }
                      }
                      

                      Ich möchte gerne den Wert "target_C" lesen und schreiben und habe dafür im Alias einen Datenpunkt mit unterschiedlichen Datenpunkten angelegt:
                      Lesen: mqtt.0.ShellyWallDisplay-0008224A613B.status.thermostat:0
                      Schreiben: mqtt.0.ShellyWallDisplay-0008224A613B.rpc
                      Das Lesen mit der Funktion JSON.parse(val).target_C funktioniert auch, aber das Schreiben nicht. Ich habe mich an Deinem Vorschlag vom 20.02.2025 19:03 orientiert und versucht, einen Wert mit der Funktion JSON.stringify({method: "Thermostat.SetConfig", params: {id: 0, config: {target_C: val }}}) in "target_C" zu schreiben.
                      In den "rpc"-Datenpunkt wird der JSON-String

                      {
                        "method": "Thermostat.SetConfig",
                        "params": {
                          "id": 0,
                          "config": {
                            "target_C": 12
                          }
                        }
                      }
                      

                      geschrieben, aber es passiert leider nicht und der Wert wird nicht geändert...

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #16

                      @klausstoertebeker Da unten haben wir aber mehr eingetragen. Machs doch mal so wie da unten:

                      https://forum.iobroker.net/post/1251735

                      {"id":123, "src":"user_1", "method": "Thermostat.SetConfig","params": {"id": 0, "config": {"enable":true, "target_C": 23.0}}}
                      

                      Probiers erst mal nur mit "enable":true und wenn das nicht langt, dann nimm halt noch zu Beginn die id oder src mit. Wie gesagt da unten hat es ja schon mal funktioniert.

                      Das mit dem stringify war alles richtig. Einfach in dem Datenpunkt ausprobieren, wie es funktioniert und dann die Konvertierungsfunktion identisch basteln mit stringify und val für den Wert.

                      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.

                      KlausStoertebekerK 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @klausstoertebeker Da unten haben wir aber mehr eingetragen. Machs doch mal so wie da unten:

                        https://forum.iobroker.net/post/1251735

                        {"id":123, "src":"user_1", "method": "Thermostat.SetConfig","params": {"id": 0, "config": {"enable":true, "target_C": 23.0}}}
                        

                        Probiers erst mal nur mit "enable":true und wenn das nicht langt, dann nimm halt noch zu Beginn die id oder src mit. Wie gesagt da unten hat es ja schon mal funktioniert.

                        Das mit dem stringify war alles richtig. Einfach in dem Datenpunkt ausprobieren, wie es funktioniert und dann die Konvertierungsfunktion identisch basteln mit stringify und val für den Wert.

                        KlausStoertebekerK Offline
                        KlausStoertebekerK Offline
                        KlausStoertebeker
                        schrieb am zuletzt editiert von
                        #17

                        @mickym
                        Ich versuche mich noch am Thermostaten, aber bisher ohne Erfolg. Aber ich bleibe dran...
                        Mittlerweile habe ich aber ein weiteres Problem bei der Steuerung eines Shelly RGBW-Controllers. Ich möchte den Farbwert über ein Triple r,g,b steuern und muss dieses Triple in folgenden JSON-String packen:

                        {
                          "id": 0,
                          "rgb": [
                            255,
                            0,
                            0
                          ]
                        }
                        

                        Dazu nutze ich in der Schreibfunktion folgende Funktion:

                        JSON.stringify({method: "RGBW.Set", params: { id: 0, rgb: [val]}}) (val = r,g,b)

                        Allerdings wird daraus folgender JSON-String:

                        {
                          "method": "RGBW.Set",
                          "params": {
                            "id": 0,
                            "rgb": [
                              "r,g,b"
                            ]
                          }
                        }
                        

                        Da das Triple r,g,b in Anführungszeichen "stringifiziert" wird, wird das kommando aber nicht ausgeführt. Wie kann ich das Triple ohne Anführungszeichen und in der Form [r,g,b] in den JSON-String einfügen, so dass er so aussieht:

                        {
                          "method": "RGBW.Set",
                          "params": {
                            "id": 0,
                            "rgb": [r,g,b]
                          }
                        }
                        

                        ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • KlausStoertebekerK KlausStoertebeker

                          @mickym
                          Ich versuche mich noch am Thermostaten, aber bisher ohne Erfolg. Aber ich bleibe dran...
                          Mittlerweile habe ich aber ein weiteres Problem bei der Steuerung eines Shelly RGBW-Controllers. Ich möchte den Farbwert über ein Triple r,g,b steuern und muss dieses Triple in folgenden JSON-String packen:

                          {
                            "id": 0,
                            "rgb": [
                              255,
                              0,
                              0
                            ]
                          }
                          

                          Dazu nutze ich in der Schreibfunktion folgende Funktion:

                          JSON.stringify({method: "RGBW.Set", params: { id: 0, rgb: [val]}}) (val = r,g,b)

                          Allerdings wird daraus folgender JSON-String:

                          {
                            "method": "RGBW.Set",
                            "params": {
                              "id": 0,
                              "rgb": [
                                "r,g,b"
                              ]
                            }
                          }
                          

                          Da das Triple r,g,b in Anführungszeichen "stringifiziert" wird, wird das kommando aber nicht ausgeführt. Wie kann ich das Triple ohne Anführungszeichen und in der Form [r,g,b] in den JSON-String einfügen, so dass er so aussieht:

                          {
                            "method": "RGBW.Set",
                            "params": {
                              "id": 0,
                              "rgb": [r,g,b]
                            }
                          }
                          
                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #18

                          @klausstoertebeker In dem Fall darfst Du nicht r,g,b verwenden, sondern schreibst ein Array, das heißt Du parsed den String.

                          Als Wert musst Du aber Zahlenwerte eingeben und da es ein String ist diesen in ein Array wandeln.

                          Also also Wert gibst Du ein [255,0,0]. Als Datentyp musst Du JSON oder String nehmen

                          JSON.stringify({method: "RGBW.Set", params: { id: 0, rgb: JSON.parse(val) }})
                          

                          Jedenfalls sieht das bei mir gut aus:

                          a4cb7509-eeaf-466e-904d-7ec8374b8472-image.png
                          880986ff-cb52-4d6e-8dbd-dd5b65ceafc1-image.png

                          rgb - repäsentieren Zahlenwerte zwischen 0 und 255.

                          Wie gesagt im alias steht als Wert ein JSON-String als Array:
                          23dde1c6-3044-4387-ac2e-0de4b1d8761e-image.png

                          Und bei dem Thermostat - da hast Du doch gesagt, dass das funktioniert hat, als Du direkt den rpc Datenpunkt beschrieben hast?

                          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.

                          KlausStoertebekerK 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @klausstoertebeker In dem Fall darfst Du nicht r,g,b verwenden, sondern schreibst ein Array, das heißt Du parsed den String.

                            Als Wert musst Du aber Zahlenwerte eingeben und da es ein String ist diesen in ein Array wandeln.

                            Also also Wert gibst Du ein [255,0,0]. Als Datentyp musst Du JSON oder String nehmen

                            JSON.stringify({method: "RGBW.Set", params: { id: 0, rgb: JSON.parse(val) }})
                            

                            Jedenfalls sieht das bei mir gut aus:

                            a4cb7509-eeaf-466e-904d-7ec8374b8472-image.png
                            880986ff-cb52-4d6e-8dbd-dd5b65ceafc1-image.png

                            rgb - repäsentieren Zahlenwerte zwischen 0 und 255.

                            Wie gesagt im alias steht als Wert ein JSON-String als Array:
                            23dde1c6-3044-4387-ac2e-0de4b1d8761e-image.png

                            Und bei dem Thermostat - da hast Du doch gesagt, dass das funktioniert hat, als Du direkt den rpc Datenpunkt beschrieben hast?

                            KlausStoertebekerK Offline
                            KlausStoertebekerK Offline
                            KlausStoertebeker
                            schrieb am zuletzt editiert von
                            #19

                            @mickym
                            Hallo mickym,
                            ich habe den Ausdruck r,g,b nur als Platzhalter gewählt. Dass ich für das Setzen der Wert Zahlen verwenden muss, war mir klar - ich wusste nurnicht, wie ich die eckigen Klammern ohne Anführungszeichen hinbekomme...
                            Und Dein Tipp war wieder klasse - hat auf Anhieb funktioniert 🙂
                            Ja, und was den Themostaten angeht, weiß ich auch noch nicht so richtig, wass ich falsch mache. Aber ich habe heute Abend Zeit 😉 wenn ich eine andere kleine Herausforderung mit einem "Shelly Plus i4" überwunden habe...

                            ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                            KlausStoertebekerK 1 Antwort Letzte Antwort
                            0
                            • KlausStoertebekerK KlausStoertebeker

                              @mickym
                              Hallo mickym,
                              ich habe den Ausdruck r,g,b nur als Platzhalter gewählt. Dass ich für das Setzen der Wert Zahlen verwenden muss, war mir klar - ich wusste nurnicht, wie ich die eckigen Klammern ohne Anführungszeichen hinbekomme...
                              Und Dein Tipp war wieder klasse - hat auf Anhieb funktioniert 🙂
                              Ja, und was den Themostaten angeht, weiß ich auch noch nicht so richtig, wass ich falsch mache. Aber ich habe heute Abend Zeit 😉 wenn ich eine andere kleine Herausforderung mit einem "Shelly Plus i4" überwunden habe...

                              KlausStoertebekerK Offline
                              KlausStoertebekerK Offline
                              KlausStoertebeker
                              schrieb am zuletzt editiert von KlausStoertebeker
                              #20

                              @mickym

                              Das mit dem Thermomastaten habe ich hinbekommen. Mein Fehler war, dass ich kein Attribut "src" angegeben hatte. Die "id" war ohne Belang, aber "src" war zwingend notwendig...
                              Allerdings kann ich den Thermostaten nich aktivieren/deaktivieren, denn dazu muss ich unter dem Datenpunkt "status/sys", der den Inhalt

                              {
                                "id": "ShellyWallDisplay-0008224A613B",
                                "mac": "0008224A613B",
                                "model": "SAWD-0A1XX10EU1",
                                "gen": 2,
                                "fw_id": "20250110-152848/2.3.0-1f63b311",
                                "ver": "2.3.0",
                                "app": "WallDisplay",
                                "auth_en": true,
                                "uptime": 171028,
                                "app_uptime": 2381,
                                "ram_size": 134217728,
                                "ram_free": 25041040,
                                "fs_size": 5009186816,
                                "fs_free": 4895637504,
                                "discoverable": true,
                                "cfg_rev": 75,
                                "schedule_rev": 0,
                                "webhook_rev": 8,
                                "platform": "vXD10000M2",
                                "serial": "SAWD89D007B2V",
                                "batch_id": "3872b",
                                "batch_date": 231211,
                                "available_updates": {
                                  "stable": {
                                    "version": "2.3.0",
                                    "build_id": "20250110-152848/2.3.0-1f63b311"
                                  }
                                },
                                "restart_required": false,
                                "unixtime": 1740517805,
                                "relay_in_thermostat": true,
                                "sensor_in_thermostat": true,
                                "awaiting_auth_code": true
                              }
                              

                              hat, die Attribute
                              relay_in_thermostat und sensor_in_thermostat auf false setzen. Diese Werte ändern sich, wenn ich in den Einstellungen -> Input/Output -> Thermostat aktivieren am Display selbst manuell den Thermostaten aktiviere oder deaktiviere. Und ich habe kein anderes Attribut hierfür gefunden...

                              In der Doku habe ich gelesen, dass man mit Sys.SetConfig die Konfiguration setzen kann, und ich habe es mit

                              {
                                "src": "iobroker",
                                "method": "Sys.GetConfig",
                                "params": {
                                  "config": {
                                     "id": 0,
                                     "relay_in_thermostat": false,
                                     "sensor_in_thermostat": false
                                  }
                                }
                              }
                              

                              versucht, aber das hat nicht funktioniert. Hast Du da eine Idee?

                              ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                              1 Antwort Letzte Antwort
                              0
                              • mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von mickym
                                #21

                                @klausstoertebeker Nein - da bin ich leider überfragt.

                                Ich bin zwar im Shelly Forum registriert und habe diesen Thread gefunden: https://shelly-forum.com/thread/23609-shelly-wall-display-firmware-1-2-5-mit-thermostatfunktion-released/

                                Aber schlau werde ich daraus nicht. Das ist mir im Moment zu speziell - da ist es besser, wenn Du direkt dort weiter fragst.

                                Du kannst ja die Kommandos direkt in den Datenpunkten ausprobieren und wenn das funktioniert, dann kann ich ggf. bei der Konvertierungsfunktion helfen, aber zu diesen speziellen Parametern kann ich nichts sagen.

                                Es ist ja auch nicht gesagt, dass Du alle Einstellungen über mqtt einstellen kannst, sondern vielleicht gehen bestimmte Einstellungen nur über die Weboberfläche.

                                In dem Thread habe ich zu den Parametern nur folgendes gefunden:

                                1aa9ad53-ded9-4b5a-9edb-319232fff4b5-image.png

                                Sorry - aber ich denke, da musst Du Shelly Support bemühen und wie gesagt Du weißt ja nun dass Du Kommandos immer direkt in das rpc topic unter dem Gerät schreiben musst.

                                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.

                                KlausStoertebekerK Master67M 2 Antworten Letzte Antwort
                                0
                                • mickymM mickym

                                  @klausstoertebeker Nein - da bin ich leider überfragt.

                                  Ich bin zwar im Shelly Forum registriert und habe diesen Thread gefunden: https://shelly-forum.com/thread/23609-shelly-wall-display-firmware-1-2-5-mit-thermostatfunktion-released/

                                  Aber schlau werde ich daraus nicht. Das ist mir im Moment zu speziell - da ist es besser, wenn Du direkt dort weiter fragst.

                                  Du kannst ja die Kommandos direkt in den Datenpunkten ausprobieren und wenn das funktioniert, dann kann ich ggf. bei der Konvertierungsfunktion helfen, aber zu diesen speziellen Parametern kann ich nichts sagen.

                                  Es ist ja auch nicht gesagt, dass Du alle Einstellungen über mqtt einstellen kannst, sondern vielleicht gehen bestimmte Einstellungen nur über die Weboberfläche.

                                  In dem Thread habe ich zu den Parametern nur folgendes gefunden:

                                  1aa9ad53-ded9-4b5a-9edb-319232fff4b5-image.png

                                  Sorry - aber ich denke, da musst Du Shelly Support bemühen und wie gesagt Du weißt ja nun dass Du Kommandos immer direkt in das rpc topic unter dem Gerät schreiben musst.

                                  KlausStoertebekerK Offline
                                  KlausStoertebekerK Offline
                                  KlausStoertebeker
                                  schrieb am zuletzt editiert von
                                  #22

                                  @mickym
                                  Moin moin mickym,
                                  Du hast erwähnt, dass Du auch Gen 1-Geräte im Einsatz hast. Ich habe fünf Shelly TRV-Thermostatventile und drei Shelly Motion 2-Bewegungsmelder im Einsatz und möchte die auch über MQTT steuern, werde aber aus der Dokumentation nicht richtig schlau.
                                  Wenn ich das richtig verstanden habe, muss ich die Befehle in den Datenpunkt "command" schreiben. Aber über das Format lässt sich die Dokumentation von Shelly nicht aus.
                                  Kannst Du mir da weiterhelfen?
                                  Und noch eine Frage zu "Node-Red":
                                  Hat "Node-Red" eine eigene Ereignis- und Zeitsteuerung? Hintergrund der Frage ist, dass ich aktuell keine zeit- und ereignisgesteuerten Funktionen aufgerufen bekomme, weil keine Trigger mehr ausgelöst werden
                                  warum das so ist, weiß ich nicht. Ich habe schon alle Adapter auf die Versionen aus dem stable-Repository umgestellt und nicht benötigte Adapter gelöscht, aber das hat nichts geholfen.
                                  Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

                                  ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                                  mickymM 1 Antwort Letzte Antwort
                                  0
                                  • KlausStoertebekerK KlausStoertebeker

                                    @mickym
                                    Moin moin mickym,
                                    Du hast erwähnt, dass Du auch Gen 1-Geräte im Einsatz hast. Ich habe fünf Shelly TRV-Thermostatventile und drei Shelly Motion 2-Bewegungsmelder im Einsatz und möchte die auch über MQTT steuern, werde aber aus der Dokumentation nicht richtig schlau.
                                    Wenn ich das richtig verstanden habe, muss ich die Befehle in den Datenpunkt "command" schreiben. Aber über das Format lässt sich die Dokumentation von Shelly nicht aus.
                                    Kannst Du mir da weiterhelfen?
                                    Und noch eine Frage zu "Node-Red":
                                    Hat "Node-Red" eine eigene Ereignis- und Zeitsteuerung? Hintergrund der Frage ist, dass ich aktuell keine zeit- und ereignisgesteuerten Funktionen aufgerufen bekomme, weil keine Trigger mehr ausgelöst werden
                                    warum das so ist, weiß ich nicht. Ich habe schon alle Adapter auf die Versionen aus dem stable-Repository umgestellt und nicht benötigte Adapter gelöscht, aber das hat nichts geholfen.
                                    Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

                                    mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von mickym
                                    #23

                                    @klausstoertebeker Also die Shelly-Gen1 Geräte sind noch viel einfacher zu bedienen. Ja Du musst das in den command topic schreiben - wobei Du bei den Bewegungsmeldern ja nichts zum steuern hast. Einstellungen kannst Du ggf. über das HTTP Interface bzw. die HTTP API machen (s. settings).

                                    Hier erst mal die gesamte Doku: https://shelly-api-docs.shelly.cloud/gen1/#common-mqtt-commands

                                    Bei den Shelly TRV hast Du mehrere Möglichkeiten: https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv-mqtt

                                    Du kannst entweder alle Thermostate auf einmal ansprechen (shellies/thermostat/0/command/ to address all TRVs) oder diese einzeln ansprechen ( or shellies/shellytrv-<id>/thermostat/0/command/ to address an individual device) .
                                    Die command-topics sind auf der Seite eigentlich im Einzelnen alle aufgelistet, was Du machen kannst.

                                    a3865a57-c799-4612-82fd-64f1d9bd021c-image.png

                                    Also einfach
                                    auch als topic unter dem command topic
                                    shellies/shellytrv-<id>/thermostat/0/command/target_t und dort dann 22.

                                    Also kein JSON - wie ich vorher geschrieben hatte!!!

                                    Die command topic sind als generell immer direkt unter der zu steuernden Einheit:
                                    7a610410-c8cf-464e-9dcc-307caa78eedb-image.png

                                    Node-Red hat zwar eine eigene Steuerung, aber die basiert natürlich auch darauf, dass das Betriebssystem entsprechend meldet. Insofern ja und nein. Außerdem (s. unten) wird der NodeRed Adapter als Tochterprozess gestartet. Wenn der Iob mit allen Adaptern ein Problem macht, dann auch mit dem NodeRed Adapter.
                                    Ansonsten wenn Du Hardware ansprichst, werden oft die gleichen NodeJS Bibliotheken verwendet, aber man kann beim Ansprechen der Hardware das als Ersatz zu einem Adapter sehen. Auch wenn ein Adapter nicht funktioniert, kann man es mit einer Node versuchen.
                                    Quasi onBoard ist ja die Inject Node - die zeitereignisse verarbeiten kann, ansonsten kann ich Dir die cronplus Node empfehlen oder die chronos Nodes (sehr vielfältig) oder auch wenn man grafisch arbeiten möchte die light scheduler NOdes.

                                    Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

                                    Wenn Dein iobroker alle Adapter irgendwie tot gestellt hat, dann hättest Du auch mit dem NodeRed Adapter das gleiche Problem, da Du ja NodeRed nicht als Standalone Version betreibst. Was auch nicht sinnvoll ist, da Du dann nicht auf die iobroker Datenpunkte aus NodeRed zugreifen kannst. Sprich jeder Adapter im iobroker ist ja ein Tochterprozess des iobrokers.

                                    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.

                                    KlausStoertebekerK 1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      @klausstoertebeker Also die Shelly-Gen1 Geräte sind noch viel einfacher zu bedienen. Ja Du musst das in den command topic schreiben - wobei Du bei den Bewegungsmeldern ja nichts zum steuern hast. Einstellungen kannst Du ggf. über das HTTP Interface bzw. die HTTP API machen (s. settings).

                                      Hier erst mal die gesamte Doku: https://shelly-api-docs.shelly.cloud/gen1/#common-mqtt-commands

                                      Bei den Shelly TRV hast Du mehrere Möglichkeiten: https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv-mqtt

                                      Du kannst entweder alle Thermostate auf einmal ansprechen (shellies/thermostat/0/command/ to address all TRVs) oder diese einzeln ansprechen ( or shellies/shellytrv-<id>/thermostat/0/command/ to address an individual device) .
                                      Die command-topics sind auf der Seite eigentlich im Einzelnen alle aufgelistet, was Du machen kannst.

                                      a3865a57-c799-4612-82fd-64f1d9bd021c-image.png

                                      Also einfach
                                      auch als topic unter dem command topic
                                      shellies/shellytrv-<id>/thermostat/0/command/target_t und dort dann 22.

                                      Also kein JSON - wie ich vorher geschrieben hatte!!!

                                      Die command topic sind als generell immer direkt unter der zu steuernden Einheit:
                                      7a610410-c8cf-464e-9dcc-307caa78eedb-image.png

                                      Node-Red hat zwar eine eigene Steuerung, aber die basiert natürlich auch darauf, dass das Betriebssystem entsprechend meldet. Insofern ja und nein. Außerdem (s. unten) wird der NodeRed Adapter als Tochterprozess gestartet. Wenn der Iob mit allen Adaptern ein Problem macht, dann auch mit dem NodeRed Adapter.
                                      Ansonsten wenn Du Hardware ansprichst, werden oft die gleichen NodeJS Bibliotheken verwendet, aber man kann beim Ansprechen der Hardware das als Ersatz zu einem Adapter sehen. Auch wenn ein Adapter nicht funktioniert, kann man es mit einer Node versuchen.
                                      Quasi onBoard ist ja die Inject Node - die zeitereignisse verarbeiten kann, ansonsten kann ich Dir die cronplus Node empfehlen oder die chronos Nodes (sehr vielfältig) oder auch wenn man grafisch arbeiten möchte die light scheduler NOdes.

                                      Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

                                      Wenn Dein iobroker alle Adapter irgendwie tot gestellt hat, dann hättest Du auch mit dem NodeRed Adapter das gleiche Problem, da Du ja NodeRed nicht als Standalone Version betreibst. Was auch nicht sinnvoll ist, da Du dann nicht auf die iobroker Datenpunkte aus NodeRed zugreifen kannst. Sprich jeder Adapter im iobroker ist ja ein Tochterprozess des iobrokers.

                                      KlausStoertebekerK Offline
                                      KlausStoertebekerK Offline
                                      KlausStoertebeker
                                      schrieb am zuletzt editiert von
                                      #24

                                      @mickym
                                      danke für die Info 🙂

                                      Ich habe nur noch eine Frage zur command-Syntax. Wenn ich beispielsweise den target_C auf 22 Grad stellen will, was schreibe ich dann in den command-Datenpunkt:

                                      target_C: 22
                                      target_C = 22
                                      target_C?value=22
                                      

                                      ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • KlausStoertebekerK KlausStoertebeker

                                        @mickym
                                        danke für die Info 🙂

                                        Ich habe nur noch eine Frage zur command-Syntax. Wenn ich beispielsweise den target_C auf 22 Grad stellen will, was schreibe ich dann in den command-Datenpunkt:

                                        target_C: 22
                                        target_C = 22
                                        target_C?value=22
                                        
                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von mickym
                                        #25

                                        @klausstoertebeker Nein es heißt

                                        1. target_t und nicht target_c und
                                        2. zweitens ist das ein eigenter topic unter command - in dem Du nur die Zahl publishst.

                                        Also unter

                                        shellies/shellytrv-<id>/thermostat/0/command/target_t, also unter thermostat/0 machst Du ein Folder command und darunter ein Datenpunkt target_t und in den schreibst Du eine Zahl als Zieltemperatur.

                                        In diesem Thread siehst Du dass target_t ein eigenes topic unter command ist:

                                        eeda97b7-5104-4ec3-80c3-f6ba5f0d3a39-image.png

                                        Das gilt aber wie gesagt nur für Gen1 Geräte, nicht für Gen3 Geräte

                                        19ea2fdc-8e84-485f-a8bc-834183a221b1-image.png

                                        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.

                                        KlausStoertebekerK 1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @klausstoertebeker Nein es heißt

                                          1. target_t und nicht target_c und
                                          2. zweitens ist das ein eigenter topic unter command - in dem Du nur die Zahl publishst.

                                          Also unter

                                          shellies/shellytrv-<id>/thermostat/0/command/target_t, also unter thermostat/0 machst Du ein Folder command und darunter ein Datenpunkt target_t und in den schreibst Du eine Zahl als Zieltemperatur.

                                          In diesem Thread siehst Du dass target_t ein eigenes topic unter command ist:

                                          eeda97b7-5104-4ec3-80c3-f6ba5f0d3a39-image.png

                                          Das gilt aber wie gesagt nur für Gen1 Geräte, nicht für Gen3 Geräte

                                          19ea2fdc-8e84-485f-a8bc-834183a221b1-image.png

                                          KlausStoertebekerK Offline
                                          KlausStoertebekerK Offline
                                          KlausStoertebeker
                                          schrieb am zuletzt editiert von KlausStoertebeker
                                          #26

                                          @mickym
                                          Moin moin mickym,
                                          ich brauche nochmal Deine Hilfe. Ich möchte aus folgender JSON-formatierter Zeichenkette folgende Information extrahieren

                                          {
                                            "src": "shellyplusi4-c4d8d554856c",
                                            "dst": "shellyplusi4-c4d8d554856c/events",
                                            "method": "NotifyEvent",
                                            "params": {
                                              "ts": 1742530641.42,
                                              "events": [
                                                {
                                                  "component": "input:2",
                                                  "id": 2,
                                                  "event": "single_push",
                                                  "ts": 1742530641.42
                                                }
                                              ]
                                            }
                                          }
                                          

                                          folgende Information extrahieren:
                                          wenn "events" vorhanden dann wenn "component" = "input:2" enthalten gib den Wert von "event" zurück.
                                          Wie kann ich das mit dem JSON.parse() und/oder anderen JSON.xxxx machen? Ich möchte das in einen Datenpunkt von einem Alias packen, um den RPC-Event-Datenpunkt eines Shelly auszuwerten.

                                          Hintergrund ist, dass ich nicht nur feststellen will, ob eine Taste gedrückt wurde (hier Taste an "input:2"), sondern auch, um was für einen Tastendruck es sich gehandelt hat (zum Beispiel "einfach", "zweifach", "dreifach", "lang"...)

                                          Wäre das dann vielleicht sowas wie

                                          if(JSON.parse(JSON.parse(val).params.events).component == "input:2") JSON.parse(JSON.parse(val).params.events).event; "";
                                          

                                          ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                                          mickymM 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          370

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe