Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Shelly EM3 MQTT Drehstromleistung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Shelly EM3 MQTT Drehstromleistung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Berges01
      Berges01 @da_Woody last edited by

      @da_woody

      Ja das hatte ich auch schau einmal bei MQTT

      b51f1410-ae90-4197-91da-03d92284061a-image.png

      Das sind die Datenpunkte beim Shelly-Adapter
      5be85fb1-ff64-4cc9-bafa-96f4ced0758d-image.png
      Ist nur ein Auszug, ab beim Shelly gibt den Topic Total und beim MQTT fehlt er.

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

        @mickym

        Den finde ich beim MQTT nicht, schau bei dem Anderen Post da kannst du das sehen.

        Wenn der da währe könnte man das mit Blockly ja erzeugen (Wenn auch mühsam).

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

          @berges01 Ok dann haben wir uns glaube ich missverstanden, Du arbeitest mit dem Shelly Adapter und nicht mit MQTT. Du stellst also nur das Protokoll um. DAnn hast Du wie bei allen Adaptern das Problem, was sie nicht kennen, können sie auch nicht anzeigen. Deshalb bin ich ein Verfechter mqtt Geräte über den MQTT Adapter zu managen und nicht x Adapter die einen MQTT-Broker emulieren. Das Auslesen von JSON Werten ist keine Hexerei und sehr effizient.

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

            @mickym

            Ich möchte ja alles auf MQTT umstellen nur fehlt mir dieser Wert.
            Auch einen Datenpunkt in dem der JSON zu finden ist habe ich nicht gefunden.
            Das mit dem JSOn ist kein Problem und habe ich schon mit C++ öfter gemacht nur noch nicht mit dem Blockly, damit muss ich mich noch beschäftigen.

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

              @berges01 OK ich sehe gerade es ist noch die alte MQTT Version - das ist eigentlich gut.

              Die Punkte sollten vorhanden sein:

              a8d30632-d2e3-4c44-80eb-e47366fdb5fc-image.png

              Falls der nicht auftaucht, kannst Du in dem command Datenpunkt noch das Kommando "announce" eingeben. Vielleicht ist der Datenpunkt im Shelly Adapter aber auch aus den anderen Parametern errechnet,

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

                @mickym

                An den JSON komme ich mit
                192.168.xxx.yyy/Status
                Ja im Brouser ran, nur wie hole ich den String im Blockly und bearbeite den ?
                Dann den Wert aus dem JSON rausfiltern und einen Datenpunkt erzeugen.

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

                  @berges01

                  EDIT: Sorry letzter Post war Schwachsinn, weil es die HTTP Schnittstelle war.

                  Mit Blockly musst halt dann den Wert via Attribut vom Objekt rausselektieren und dann abspeichern. Da kann Dir paul sicher helfen

                  Ja entweder nutzt Du den herausgefilterten Wert direkt oder erzeugst einen Datenpunkt. Wenn Du NodeRed nutzt habe ich einen fertigen Flow für Dich, der den JSON automatisch analysiert und in Datenpunkte anlegt. Unter Beispiel 6 siehst Du, wie so etwas dann aussieht.

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

                    @mickym

                    Ja der Wert kommt.

                    {"wifi_sta":{"connected":true,"ssid":"Strommix","ip":"192.168.2.128","rssi":-50},"cloud":{"enabled":false,"connected":false},"mqtt":{"connected":true},"time":"21:37","unixtime":1649705842,"serial":731,"has_update":false,"mac":"C45BBE6B4EC9","cfg_changed_cnt":0,"actions_stats":{"skipped":0},"relays":[{"ison":false,"has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"overpower":false,"is_valid":true,"source":"input"}],"emeters":[{"power":143.25,"pf":0.68,"current":0.90,"voltage":234.53,"is_valid":true,"total":743399.3,"total_returned":0.0},{"power":321.23,"pf":0.83,"current":1.64,"voltage":234.66,"is_valid":true,"total":875913.2,"total_returned":0.0},{"power":398.90,"pf":0.57,"current":3.01,"voltage":234.78,"is_valid":true,"total":1080125.1,"total_returned":1151.4}],"total_power":863.38,"fs_mounted":true,"update":{"status":"idle","has_update":false,"new_version":"20220324-123835/v1.11.8-3EM-fix-g0014dcb","old_version":"20220324-123835/v1.11.8-3EM-fix-g0014dcb"},"ram_total":49440,"ram_free":28356,"fs_size":233681,"fs_free":155620,"uptime":12192}
                    

                    Das ist er
                    "total_power":863.38

                    Nur wie in den Blockly bekommen und dann rausfinden wie ich den Filtere.
                    Ich brauche nur den Start den Rest finde ich schon raus.
                    Beispiel würde reichen da ich mit den Blocklys noch nicht so sicher bin.
                    NodeRed währe für mich Neuland.

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

                      @berges01 OK . ich versuche es mal ist ned schwer. Ein Moment.

                      Ich empfehle Dir mal diese Webseite in Deine Favoriten zu speichern: https://jsonformatter.org/

                      3442b4c7-99bf-458f-8b9c-fd7290c9c96c-image.png

                      So ich habs - obwohl ich Blockly hasse. 😉

                      35413432-f148-41ac-87a9-011a1465798c-image.png

                      Also einfach den Wert des Datenpunktes (also den JSON String) in Objekt einfügen und dann über Attribut den Wert auslesen.

                      Im Endeffekt mit dem Datenpunkt triggern müsste Dein Blockly so ähnlich aussehen:

                      7453d658-d524-4e2e-8ef1-a3e443a95150-image.png

                      Ob Du den Wert dann direkt verarbeitest oder in einen Datenpunkt schreibst, um das zu visualisieren, das bleibt dann Dir überlassen.

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

                        @mickym

                        Guten Morgen

                        Ja die Webseite hatte ich schon und das ist auch nicht das Problem.
                        Den Befehl in Blockly "setze JSONString auf" habe ich noch nicht verinnerlicht wie lautet den genau der Befehl ?
                        Das in den Gänsefüsschen ist abgeschnitten.
                        Gebe ich damit den Befehl an den Selly mir den JSON zu senden und lese den in die Variabel "JSONString" ?
                        Wenn ich das mal habe und mich damit auseinandergesetzt habe ist die Birne geschält.
                        So einiges bei Blockly ist noch unklar für mich da ich von der Zeilenorientierung komme und das mit den Klötzchen noch ungewohnt ist.
                        Der Syntax ist noch etwas Krüptisch.
                        Ich komme von Fortrann77, Assembler, Cobol, Pascal und C++ da ist das alles etwas Einfacher/Komplizierter und teilweise verwirrender 😏
                        Du hast dir ja viel Mühe mit mir gemacht !!! Danke dafür !!!

                        Grüße aus dem Sauerland !

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

                          @berges01 Deswegen empfehle ich ja NodeRed, da muss man nicht soviel puzzeln egal.

                          Den Befehl in Blockly "setze JSONString auf" habe ich noch nicht verinnerlicht wie lautet den genau der Befehl ?

                          Das in den Gänsefüsschen ist abgeschnitten.

                          Nein damit habe ich nur Deinen kompletten JSON String, den Du mir hier in den Thread kopiert hast einer Variablen JSON String zugewiesen.
                          Um Dir dann bei der Debug Ausgabe zu zeigen, wie einfach man auf Teile des JSON Strings zugreifen kann, indem ich das als Objekt (implizit) umwandel und dann via Attribut auf den Wert zugreife. Ich wollte Dir ja mit der Debug Ausgabe nur zeigen, dass man so einfach den Wert raus bekommt.

                          Der zweite Teil kommt der Lösung schon näher, weil Du da den Datenpunkt richtig einliest. Damit gibst Du den Datenpunkt im mqtt Adapter an - sprich wenn sich dort der Datenpunkt geändert hat wird das Blockly getriggert und dann weist Du diesem Debug Baustein den Wert zu und daraus das Attribut "total_power".

                          So einiges bei Blockly ist noch unklar für mich da ich von der Zeilenorientierung komme und das mit den Klötzchen noch ungewohnt ist.
                          Der Syntax ist noch etwas Krüptisch.
                          Ich komme von Fortrann77, Assembler, Cobol, Pascal und C++ da ist das alles etwas Einfacher/Komplizierter und teilweise verwirrender 😏#

                          Wenn Du so am Anfang bist - dann solltest Du vielleicht entweder doch lieber mit Javascript programmieren oder probiere es doch mit Node Red, in dem Du Dir den Adapter installierst. Ich kann es nur immer wieder empfehlen, ich bin ein richtiger Fan davon. Du kannst dich mehr auf die Logik konzentrieren. Und keine Angst bin auch schon etwas älteres Semesteer - musste zwar kein Assembler und Fortran lernen, aber Cobol und C++ habe ich auch noch gemacht und viel in VBA. Wenn Du Node Red nicht nutzen willst, warum nutzt Du dann nicht einfach Javascript, wenn Du herkömmlich programmieren willst.

                          Ich nutze gerne diese Seite zum Nachschlagen: https://www.w3schools.com/js/default.asp

                          Aber wie gesagt meine Empfehlung bleibt Node Red (wurde ursprünglich von der IBM entwickelt, für grafische Programmierung), damit hast Du 99% der Möglichkeiten, die Dir Blockly bietet und noch ein paar Prozente mehr, da hier eine sehr breite Community dahinter steckt. In Zusammenhang mit dem iobroker unschlagbar. Instalier Dir mal den Adapter und ziehe Dir ein Videos rein.

                          4ff712ce-03a9-4963-ae40-1b32ae244256-image.png

                          👍 👍 👍

                          Und auch wenn die NodeRed Fans hier im iobroker Forum in der Unterzahl sind - die sind auch alle sehr hilfsbereit .

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

                            @mickym
                            Oh man ging eigentlich einfach.

                            0b30bebd-182d-46ca-9eb8-d263660b8a79-image.png

                            Deine Ausführungen haben mich indirekt auf den Weg gebracht.
                            Die Ausgabe funktioniert und der Rest ist Formsache.

                            Zur Erklärung für Andere die danach suchen,

                            Variabel "result" genau so anlegen.
                            mit dem Häkchen bei "mit Ergebnissen" wird die durch den request angeforderte Antwort in "result" abgespeichert.
                            Bei der Zeile Attribut "total_power" von Objekt "result" wird im JSON nach diesem Attribut gesucht und dieser Wert des Attributes über debug output ausgegeben.

                            Damit lässt sich natürlich noch so einiges aufbauen aber das ist der Endscheidende Anfang (zumindest für mich).

                            DANKE für die Hilfe beim Nachdenken !!! 👍

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

                              @berges01 ich dachte Du hast unter MQTT bereits einen Datenpunkt mit dem JSON String? Es würde Dir das Pollen ersparen. Ansonsten Glückwunsch..

                              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

                              778
                              Online

                              32.0k
                              Users

                              80.5k
                              Topics

                              1.3m
                              Posts

                              3
                              16
                              2815
                              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