Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. iobroker, MQTT und Shelly - Was geht wie?

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    iobroker, MQTT und Shelly - Was geht wie?

    This topic has been deleted. Only users with topic management privileges can see it.
    • TH G
      TH G @mickym last edited by

      @mickym

      In der App wird nichts angezeigt wenn es über den iobroker ausgeführt wird.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @TH G last edited by

        @th-g Das ist komisch. Geht es denn wenn Du manuell EIN - und AUS schaltest?

        TH G 1 Reply Last reply Reply Quote 0
        • TH G
          TH G @mickym last edited by TH G

          @mickym

          Das Problem ist, wie schon vermutet, dass die Schaltuhr mit diesem JSON nicht angesprochen wird.

          Sende ich ein true geht das Tor hoch aber das Relais bleibt angezogen und blockiert jede weitere Eingabe.
          Sende ich dann ein false und danach wieder ein true fährt das Tor wieder runter.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @TH G last edited by mickym

            @th-g Na OK - dann funktioniert bei den Generation 2 der Timer halt wahrscheinlich per user - aber immerhin kannst Du mit manuellem EIN und Ausschalten das Tor erst mal schalten.

            So nun lesen wir die Config aus.

            {
             "id": 1,
               "src":"user_1",
               "method":"Switch.GetConfig",
               "params": {
                  "id":0
               }
            }
            

            und dann poste mal - ob den Response der dann zurück kommt.

            Die Antwort hast Du dann unter user_1 im rpc Datenpunkt.

            TH G 1 Reply Last reply Reply Quote 0
            • TH G
              TH G @mickym last edited by

              @mickym sagte in iobroker, MQTT und Shelly - Was geht wie?:

              Die Antwort hast Du dann unter user_1 im rpc Datenpunkt.

              {
                "id": 1,
                "src": "shellyplus1-441793cda980",
                "dst": "user_1",
                "result": {
                  "id": 0,
                  "name": null,
                  "in_mode": "detached",
                  "initial_state": "off",
                  "auto_on": false,
                  "auto_on_delay": 60,
                  "auto_off": true,
                  "auto_off_delay": 1
                }
              
              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @TH G last edited by

                @th-g Hmm das schaut aber gut aus:

                auto_off ist true und auto_off_delay:1 -

                Ich dachte Du hast 5 s gerade eingestellt?

                TH G 1 Reply Last reply Reply Quote 0
                • TH G
                  TH G @mickym last edited by TH G

                  @mickym

                  Nein das war nur meine Wartezeit geschätzt hätten auch drei sein können. 1 Sekunde ist eingestellt im Shelly

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @TH G last edited by

                    @th-g sagte in iobroker, MQTT und Shelly - Was geht wie?:

                    @mickym

                    Nein das war nur meine Wartezeit geschätzt hätten auch drei sein können. 1 Sekunde ist eingestellt im Shelly

                    Ja aber selbst die Konfig meldet es richtig zurück. Schalte halt mal auf 2 oder 3 Sekunden, ob das was ändert.

                    25ede6ae-4166-4598-92c1-d7b997b4f81b-image.png

                    TH G 1 Reply Last reply Reply Quote 0
                    • TH G
                      TH G @mickym last edited by

                      @mickym

                      Jetzt mit drei Sekunden.

                      {
                        "id": 1,
                        "src": "shellyplus1-441793cda980",
                        "dst": "user_1",
                        "result": {
                          "id": 0,
                          "name": null,
                          "in_mode": "detached",
                          "initial_state": "off",
                          "auto_on": false,
                          "auto_on_delay": 60,
                          "auto_off": true,
                          "auto_off_delay": 3
                        }
                      
                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @TH G last edited by mickym

                        @th-g

                        Nach dem Schalten - (evtl. Sekunden nochmal erhöhen) - schicke einen Status Request hinterher:

                        {
                         "id": 1,
                           "src":"user_1",
                           "method":"Switch.GetStatus",
                           "params": {
                              "id":0
                           }
                        }
                        

                        In dem Status - sollte es 2 Werte geben, ob der timer getriggert wurde:

                        14ff513a-9b88-4e6b-8e14-189efb14af6d-image.png

                        TH G 1 Reply Last reply Reply Quote 0
                        • TH G
                          TH G @mickym last edited by

                          @mickym

                          Das mache ich morgen, sonst nerve ich die Nachbarn mit dem ständigen ruf und runter 🙂

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

                            @mickym Gut - aber im Moment bin ich auch etwas ratlos - in meinen Augen hängt es eigentlich nicht an der Konfiguration oder MQTT - aber keine Ahnung warum der interne Timer nicht losläuft.

                            1 Reply Last reply Reply Quote 0
                            • A
                              andrew @haus-automatisierung last edited by

                              @haus-automatisierung said in iobroker, MQTT und Shelly - Was geht wie?:

                              Finde solche Aussagen immer Interessant. Klar läuft das. Aber: Den Shelly Adapter installiert man, liest kurz die Doku und konfiguriert alles so. Selbst als Einsteiger ist man (ohne etwas mit Topics oder JSON zu tun zu haben) in 5min fertig.

                              Ich bin noch relativ neu im Bereich IOBroker. Für meinen Shelly Plus Plug S benötige ich die Version 6.4.0.
                              Laut github ist die Version 6.4.0 als latest auch schon released.
                              npm weist diese Version jedoch als Beta aus und im IOBroker wird auch nur die 6.3.1 als verfügbare Version ausgewiesen.
                              Ist da in den kommenden Tagen mit einer Änderung zu rechnen oder muss ich tatsächlich die Repo von IOBroker auf Beta umstellen um die Version 6.4.0 verwenden zu können?

                              Ach ja, der Shelly Plus Plug S wirft bei mir unter der Version 6.3.1 den Fehler "device unknown, configuration for client with id "shellyplusplugs-3ce90e2fbd70" does not exist!", was vermutlich daran liegt, dass der Plus Plug S in 6.3.1 noch nicht bekannt ist 😉

                              Um einigen Anmerkungen entgegen zu treten "shellyplusplugs-3ce90e2fbd70" ist natürlich die originäre Client-ID 🙂

                              haus-automatisierung 1 Reply Last reply Reply Quote 0
                              • haus-automatisierung
                                haus-automatisierung Developer Most Active @andrew last edited by

                                @andrew Ich muss mal gucken, wieviele die Beta aktuell installiert haben. Das läuft immer ein paar Wochen, bis diese in stable freigegeben wird.

                                TH G 1 Reply Last reply Reply Quote 1
                                • TH G
                                  TH G @haus-automatisierung last edited by TH G

                                  @mickym

                                  Habe heute einen weiteren Shelly Plus 1 mit Add-On in Betrieb genommen. In der Shelly App funktioniert alles und das Gerät sendet auch fleißig seine Werte an den MQTT Broker.

                                  Hier möchte ich nur die drei Temperaturwerte im VIS anzeigen lassen.

                                  Drei DP habe ich fürs VIS schon angelegt.

                                  Über MQTT kommt folgendes:

                                  {
                                    "src": "shellyplus1-441793d07ba4",
                                    "dst": "shellyplus1-441793d07ba4/events",
                                    "method": "NotifyStatus",
                                    "params": {
                                      "ts": 1677158862.21,
                                      "temperature:101": {
                                        "id": 101,
                                        "tC": 10.31,
                                        "tF": 50.56
                                      }
                                    }
                                  }
                                  

                                  Je nach dem wie sich die Werte ändern, steht dort für die Temperatur die ID 100, 101 oder 102 mit den entsprechendem tC Wert.

                                  Nun möchte ich, dass bei jeder Änderung der Wert in dem entsprechenden Datenpunkt geändert wird.

                                  Also

                                  id100 zum DP Ansaugluft
                                  id101 zum DP Zuluft
                                  id102 zum DB Abluft

                                  Wie mache ich das im Blockly (ich brauche ein Erfolgserlebnis :-)?

                                  mickym 2 Replies Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @TH G last edited by mickym

                                    @th-g Ja kommt gleich - ich hasse nur puzzle - in Zukunft - steigst Du auf ein anderes Tool um. wenn ich es fertig habe - muss ich auch erst mal weg. 😉 Ich verstehe nicht, warum man auf diese Google Teile steht - ist mir gerade auch 3 mal abgeschmiert. ,)

                                    TH G 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @TH G last edited by mickym

                                      @th-g So nun zu dem Puzzlen - ich mach das aber nicht nochmal - es kostet einfach viel Zeit und ist so umständlich. Du solltest dir doch mal NodeRed anschauen. 😉 Nur eine Empfehlung. Ich weiß ich bin hier in der Minderheit. 😉

                                      c1d68f64-d3fc-4910-8045-35bd5f844f1a-image.png

                                      So es hängt nun davon ab - ob in dem JSON das Objekt unter params immer "temperature:101" heißt oder nicht. Je nachdem habe ich Dir eine JSONATA Variante mit einem Wildcard unter ID 101 gezeigt, ansonsten wenn das konstant ist, dann halt direkt mit Attribut von Objekt.

                                      Das Falls attribute funktioniert nicht - dann stürzt diese blöde Teil einfach ab. Also musst Du eine Variable id auf jedenfall verwenden, wenn Du den Switch verwenden willst.

                                      Wenn temperature:101 - immer als Eigenschaftsname bleibt dann kannst auch oben die id direkt als

                                      b1a0bdd8-d44b-44cf-9bb6-a2775f8058db-image.png

                                      Attribut des Objektes auslesen.

                                      Hier zum Import:

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                       <variables>
                                         <variable id="[a]yK.@;lwe0hytxaDXA">id</variable>
                                       </variables>
                                       <block type="on" id="I#AN;X#!LbosD^UgyrUP" x="63" y="-12">
                                         <field name="OID">0_userdata.0.test0.test.string</field>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <statement name="STATEMENT">
                                           <block type="variables_set" id="pW37MZI?+I4ri?OB$[rH">
                                             <field name="VAR" id="[a]yK.@;lwe0hytxaDXA">id</field>
                                             <value name="VALUE">
                                               <block type="convert_jsonata" id="{0;3c~:mA@O7((M{87]R">
                                                 <value name="EXPRESSION">
                                                   <shadow type="text" id="JtT{Vmu?F`dDz:rZ0(mU">
                                                     <field name="TEXT">$.params.*.id</field>
                                                   </shadow>
                                                 </value>
                                                 <value name="TARGET">
                                                   <block type="convert_json2object" id="dpi5p(O9T~Pp-XiWI}d7">
                                                     <value name="VALUE">
                                                       <block type="on_source" id="eHBBR/P07v$],9nDH*]r">
                                                         <field name="ATTR">state.val</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="h=(1|fnX7IO~e,(-kYry">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="^0;n}1}em$2-Zejz]*U7">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="variables_get" id="N1]?0|],@)3g%qO3yM:#">
                                                     <field name="VAR" id="[a]yK.@;lwe0hytxaDXA">id</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="logic_switch_case" id="o^4jl(330$j{NbSRsr7{">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" case="2"></mutation>
                                                     <value name="CONDITION">
                                                       <block type="variables_get" id="||X*9k_pV$s#GlHv!K9X">
                                                         <field name="VAR" id="[a]yK.@;lwe0hytxaDXA">id</field>
                                                       </block>
                                                     </value>
                                                     <value name="CASECONDITION0">
                                                       <block type="math_number" id="k?OULZ|M:hCKCS*d_hVg">
                                                         <field name="NUM">101</field>
                                                       </block>
                                                     </value>
                                                     <statement name="CASE0">
                                                       <block type="debug" id="kTTm]Fz@=D@RQ:^}Ah:I">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="cWU4Hj5v+x*sBl8MuUDm">
                                                             <field name="TEXT">id 101</field>
                                                           </shadow>
                                                           <block type="convert_jsonata" id="9n/Ozt-A6~E=%`vY!XOf">
                                                             <value name="EXPRESSION">
                                                               <shadow type="text" id="-=r=l}OaKh[fr[I4Ywo#">
                                                                 <field name="TEXT">$.params.*.tC</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="TARGET">
                                                               <block type="convert_json2object" id="Y6(O{kPhP*bH*9%C=.PM">
                                                                 <value name="VALUE">
                                                                   <block type="on_source" id="S:cP;c*f6j:b=P)V+i:2">
                                                                     <field name="ATTR">state.val</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="update" id="^iy,~%wVLh1bxe+^,=i8" disabled="true">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">Object ID</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="convert_jsonata" id="D;zw{zpb.b?uVIYP@]D{">
                                                                 <value name="EXPRESSION">
                                                                   <shadow type="text" id="qJ8Uq/v,KAQSy{Lm9=fE">
                                                                     <field name="TEXT">$.params.*.tC</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="TARGET">
                                                                   <block type="convert_json2object" id="7ZT;;i2dz:LzQw2bXl#K">
                                                                     <value name="VALUE">
                                                                       <block type="on_source" id="zlz-Q8]{p4$8:(P0*V{|">
                                                                         <field name="ATTR">state.val</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                     <value name="CASECONDITION1">
                                                       <block type="math_number" id="zH*rxz}.8O#:J(.pf/SQ">
                                                         <field name="NUM">102</field>
                                                       </block>
                                                     </value>
                                                     <statement name="CASE1">
                                                       <block type="debug" id="!^hYhpf4XvBN;kCQDE-9">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="4Vm}G!}ZMjt[-R5=!t_]">
                                                             <field name="TEXT">id102</field>
                                                           </shadow>
                                                           <block type="get_attr" id=",e:GwcEvTg4!,0IN+=7v">
                                                             <value name="PATH">
                                                               <shadow type="text" id="[T/l=5I8)2NQ#2d}PJ0e">
                                                                 <field name="TEXT">params.temperature:101.tC</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="OBJECT">
                                                               <block type="on_source" id="OK0n{G`P_D0mDGHC=o*G">
                                                                 <field name="ATTR">state.val</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="update" id="R=.58x%jtiL$hE2$VZCJ" disabled="true">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">Object ID</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="get_attr" id="V{|oE`%C;K16g*@;UC/:">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="sBBws^iR_I:7eSyk-SN?">
                                                                     <field name="TEXT">params.temperatur:101.tC</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="on_source" id="jIqE7zE)gvuTaR_Dd@Nv">
                                                                     <field name="ATTR">state.val</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                     <value name="CASECONDITION2">
                                                       <block type="math_number" id="(b$M=qlY11Bo4oGG8-1C">
                                                         <field name="NUM">103</field>
                                                       </block>
                                                     </value>
                                                     <statement name="CASE2">
                                                       <block type="debug" id="atqz_e:q/95.$CT/~pb{">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="Q?h}V,]vbw6{joQalb=.">
                                                             <field name="TEXT">id103</field>
                                                           </shadow>
                                                           <block type="get_attr" id=",+Ibn.:.rz[?;fv7|qX6">
                                                             <value name="PATH">
                                                               <shadow type="text" id="DL3*0$uq0[-3vsf8XKV|">
                                                                 <field name="TEXT">params.temperature:101.tC</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="OBJECT">
                                                               <block type="on_source" id="FcqdwY%a8kb%Ui./K*;=">
                                                                 <field name="ATTR">state.val</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="update" id=".Lf^d}Ob9pX]:ZH:cZWy" disabled="true">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">Object ID</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="get_attr" id="$8GKiNoofme:dUOYQD?a">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="~Hch_u6oO:D+Uze36~(~">
                                                                     <field name="TEXT">params.temperatur:101.tC</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="on_source" id="Bg7$(BB5=Jan5-xfg~Kx">
                                                                     <field name="ATTR">state.val</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                      </xml>
                                      

                                      aber wie gesagt - viel weiter werde ich nicht puzzeln. Aber nun muss ich erst mal weg. Wenn Du Fragen hast, melde ich mich sporadisch von unterwegs. Aber nicht mit Code. 😉

                                      Als Trigger nimmst natürlich Deinen mqtt- Datenpunkt.

                                      Alias funktioniert nicht, da Du ja je ID andere Datenpunkte beschreiben willst.

                                      1 Reply Last reply Reply Quote 0
                                      • TH G
                                        TH G @mickym last edited by TH G

                                        @mickym sagte in iobroker, MQTT und Shelly - Was geht wie?:

                                        Ich verstehe nicht, warum man auf diese Google Teile steht

                                        Was meinst du damit? Welche Google Teile?

                                        Danke für dein Blockly. Irgendwie hatte ich mir das anders vorgestellt und ich glaube ich werde doch mal über den Shelly Adapter nachdenken. Das ist mit MQTT für mich dann doch nicht so anwenderfreundlich.

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @TH G last edited by mickym

                                          @th-g Na diese Blockly Puzzles stammen von Google. 😉 - ich mag halt lieber die IBM Nodes von NodeRed. 😉

                                          Falls Du gedacht hast, das Blockly was eigenes für iobroker ist, dann muss ich Dich leider enttäuschen. 😉

                                          https://de.wikipedia.org/wiki/Blockly

                                          Es ist eine "Umgebung zum spielerischen Erlernen von Programmierprinzipien" 😁

                                          TH G 2 Replies Last reply Reply Quote 0
                                          • TH G
                                            TH G @mickym last edited by

                                            @mickym sagte in iobroker, MQTT und Shelly - Was geht wie?:

                                            Falls Du gedacht hast, das Blockly was eigenes für iobroker ist, dann muss ich Dich leider enttäuschen.

                                            Oh das wusste ich nicht, danke für die Info.

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

                                            Support us

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

                                            547
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            167
                                            28811
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo