Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. MQTT Datenpunkte ohne Anzeigewert (IR-Lesekopf, Stromzähler)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT Datenpunkte ohne Anzeigewert (IR-Lesekopf, Stromzähler)

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

      @mickym
      Hm, Fehler gefunden! Sorry nicht Wert kopieren sondern Pfad 😕

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

        @bastel2021 sagte in MQTT Datenpunkte ohne Anzeigewert (IR-Lesekopf, Stromzähler):

        @mickym
        Hm, Fehler gefunden! Sorry nicht Wert kopieren sondern Pfad 😕

        👍 👍 👍

        Kopiere Pfad.gif

        B 2 Replies Last reply Reply Quote 0
        • B
          Bastel2021 @mickym last edited by Bastel2021

          @mickym
          Hm habe das nochmals nachgebaut und bei mir bekomme ich den Wert nicht raus!
          Irgendwas ist noch falsch!
          Wenn ich in der Inject Node den Pfad kopiere steht da nur; payload
          Kopiere ich den Wert dann: {"Time":"2023-01-28T15:46:52","ED300L ":{"Total_in":3164.5,"Total_out":0,"Power_curr":202.2}}
          D.h. in der Inject muss ich den Wert kopieren, richtig?
          Und trotzdem Wird bei dem was ich nachgebaut habe kein Wert in der letzten Debug angezeigt

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

            @mickym
            42e81273-14ee-4e6f-b6cc-25b2a1fc2be2-grafik.png

            Merkwürdigerweise kommt aus der debug9 nichts raus. Aber warum?

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

              @bastel2021 Klar in die Inject Node kopierst Du den Wert. Wenn Du den so kopierst wie in den Code-Tags dann brauchst Du die JSON Node nicht, wenn Du es als Objekt definierst.
              79c5b528-a1f7-4a87-ae3b-d5a35588f39c-image.png
              c03141d3-4881-4a54-8ab6-dcbfd1189d70-image.png
              Wenn du es als String in die Inject Node kopierst, dann musst mit einer JSON Node noch umwandeln
              29e5c2a8-e211-4b2c-b56f-206d16be283f-image.png

              903ce406-ba05-4a53-8a5a-1d76b64525c4-image.png

              [
                 {
                     "id": "d222e644e68660a6",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "{\"Time\":\"2023-01-28T14:51:52\",\"ED300L \":{\"Total_in\":3164.3,\"Total_out\":0,\"Power_curr\":190.8}}",
                     "payloadType": "json",
                     "x": 1550,
                     "y": 3120,
                     "wires": [
                         [
                             "8c5ada7055d87d92"
                         ]
                     ]
                 },
                 {
                     "id": "8c5ada7055d87d92",
                     "type": "debug",
                     "z": "289f539dcc33814e",
                     "name": "Objekt",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1710,
                     "y": 3120,
                     "wires": []
                 },
                 {
                     "id": "9bcc74a4cd4c34e9",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "{\"Time\":\"2023-01-28T14:51:52\",\"ED300L \":{\"Total_in\":3164.3,\"Total_out\":0,\"Power_curr\":190.8}}",
                     "payloadType": "str",
                     "x": 1550,
                     "y": 3180,
                     "wires": [
                         [
                             "e9d07d6d7548352d"
                         ]
                     ]
                 },
                 {
                     "id": "e9d07d6d7548352d",
                     "type": "debug",
                     "z": "289f539dcc33814e",
                     "name": "String",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1710,
                     "y": 3180,
                     "wires": []
                 }
              ]
              

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

                @bastel2021 Du hast das wie eben geschrieben in Deiner Inject entweder als String oder Objekt definiert. Wenn Du eine json Node dahinter klemmst und es war schon ein Objekt wird es in einen String verwandelt umgekehrt, war es ein String dann in ein Objekt.

                In Debug 8 sieht es nun so aus, als ob du in die Inject Node einen String eingegeben hast. Deswegen enthält die debug 9 das Objekt. Wenn du es gleich als Objekt in der Inject node definierst dann brauchst Du die Umwandlung nicht.

                Ich hab Dir das ja im vorherigen Post dargestellt.

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

                  @mickym
                  okay soweit ist das klar, und ich kann das auch Simulieren!
                  Nach der Change Node ist dann aber bei beiden Versionen schluss. Hast du eine Idee warum

                  1.Variante

                  25553f08-dece-4c74-9914-78766a3e2a50-grafik.png

                  1. Variante

                  14283be2-32f7-496c-b67b-c8b5a4e64322-grafik.png

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

                    @bastel2021 Du setzt die payload auf einen String und nicht auf ein Nachrichtenobjekt:

                    Falsch:
                    5d80a29c-7338-43df-a7c3-1df038f20754-image.png

                    Richtig:

                    e8f08a0d-dd72-45dc-8627-8b7e5a76b073-image.png

                    Ich erkenne auch keinen Unterschied zwischen Deinen beiden Varianten.

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

                      @mickym
                      Mit Brille wäre das nicht passiert! Also in der Change lag der Fehler.
                      Die Varianten waren nur Inject - String und Injekt - Objekt

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

                        @bastel2021 Also mal ganz generell:

                        Hier mal die Begrifflichkeiten erklärt und die Datentypen : https://forum.iobroker.net/post/852974
                        und hier: https://forum.iobroker.net/post/905403

                        Das zu verstehen, welche Datentypen es gibt in Javascript ist essentiell für NodeRed, Blockly, JS Programmierung generell und somit auch für den iobroker.

                        Im Prinzip kannst Du Dir einfach merken, dass Du mit einem JSON String einfach Javascript-Objekte als String (Zeichenkette) zwischen verschiedenen Systemen (z. Bsp. Browser) austauschen kannst und dabei die Datentypen erhalten bleiben.

                        Wenn Du in einer Inject Node ein Objekt selbst erstellst:

                        2ed0d40b-c922-4661-8e01-184ea9d1ca1d-image.png

                        nutzt Du die geschweifte Klammer - dort kannst Du dann über den JSON Editor das manuell eintragen:

                        797f1116-2a23-4a63-8a6f-a158e44fb9ea-image.png

                        oder Du nutzt den visuellen Editor um Werte in deinem Objekt zu definieren (nächster Tab):

                        NodeRed- Array Visueller Editor.mp4

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

                          @bastel2021 Wenn Du nur einen reinen String hast, dann musst Du mittels JSON in ein Objekt umwandeln:

                          23cad540-ef85-4374-bf45-e768a437ed2b-image.png

                          [
                             {
                                 "id": "d222e644e68660a6",
                                 "type": "inject",
                                 "z": "289f539dcc33814e",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "{\"Time\":\"2023-01-28T14:51:52\",\"ED300L \":{\"Total_in\":3164.3,\"Total_out\":0,\"Power_curr\":190.8}}",
                                 "payloadType": "json",
                                 "x": 1450,
                                 "y": 3120,
                                 "wires": [
                                     [
                                         "8c5ada7055d87d92",
                                         "0dd804093323bcf0"
                                     ]
                                 ]
                             },
                             {
                                 "id": "8c5ada7055d87d92",
                                 "type": "debug",
                                 "z": "289f539dcc33814e",
                                 "name": "Objekt",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1710,
                                 "y": 3120,
                                 "wires": []
                             },
                             {
                                 "id": "9bcc74a4cd4c34e9",
                                 "type": "inject",
                                 "z": "289f539dcc33814e",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "{\"Time\":\"2023-01-28T14:51:52\",\"ED300L \":{\"Total_in\":3164.3,\"Total_out\":0,\"Power_curr\":190.8}}",
                                 "payloadType": "str",
                                 "x": 1450,
                                 "y": 3220,
                                 "wires": [
                                     [
                                         "e9d07d6d7548352d",
                                         "13632c6c2a4e7b78"
                                     ]
                                 ]
                             },
                             {
                                 "id": "e9d07d6d7548352d",
                                 "type": "debug",
                                 "z": "289f539dcc33814e",
                                 "name": "String",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1710,
                                 "y": 3220,
                                 "wires": []
                             },
                             {
                                 "id": "0dd804093323bcf0",
                                 "type": "change",
                                 "z": "289f539dcc33814e",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload[\"ED300L \"].Power_curr",
                                         "tot": "msg"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 1750,
                                 "y": 3160,
                                 "wires": [
                                     [
                                         "10180a8bd8f0b836"
                                     ]
                                 ]
                             },
                             {
                                 "id": "10180a8bd8f0b836",
                                 "type": "debug",
                                 "z": "289f539dcc33814e",
                                 "name": "Wert",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1930,
                                 "y": 3160,
                                 "wires": []
                             },
                             {
                                 "id": "2a56ec2865b7173d",
                                 "type": "change",
                                 "z": "289f539dcc33814e",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload[\"ED300L \"].Power_curr",
                                         "tot": "msg"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 1750,
                                 "y": 3280,
                                 "wires": [
                                     [
                                         "e6c08337d7f19555"
                                     ]
                                 ]
                             },
                             {
                                 "id": "e6c08337d7f19555",
                                 "type": "debug",
                                 "z": "289f539dcc33814e",
                                 "name": "Wert",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1930,
                                 "y": 3280,
                                 "wires": []
                             },
                             {
                                 "id": "13632c6c2a4e7b78",
                                 "type": "json",
                                 "z": "289f539dcc33814e",
                                 "name": "",
                                 "property": "payload",
                                 "action": "",
                                 "pretty": false,
                                 "x": 1590,
                                 "y": 3280,
                                 "wires": [
                                     [
                                         "2a56ec2865b7173d"
                                     ]
                                 ]
                             }
                          ]
                          

                          Die obere Inject Node definiert direkt das Objekt:
                          94ee0e10-3c8d-474c-a99e-1f70574b8a45-image.png

                          die untere nur den String:
                          8fc5abb5-8e90-40bd-b615-b094efb2a0ac-image.png

                          und muss deshalb via JSON node noch in ein Objekt umgewandelt werden.

                          Deshalb:
                          Aus der iobroker-IN Node erhälst Du nur den String, deshalb musst Du da dann noch eine JSON Node dranhängen!

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

                            @mickym

                            7b281e89-b9b8-42de-b6b5-c5d36b539395-grafik.png

                            Ja das passt jetzt und aktualisiert sich auch!
                            Mal eine ganz andere Frage: Tasmota schickt jetzt so alle 3 min eine Aktualisierung.
                            Ist mir zu lang, allerdings will ich das System auch nicht überlastet. Was ist da sinnvoll?

                            Oh die Change Nodes sind noch falsch beschriftet!

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

                              @bastel2021 Also wenn das unter tele ist .- dann kannst Du das über die Kommandozeile im Tasmota einstellen

                              https://tasmota.github.io/docs/Peripherals/#template

                              b15e12aa-1024-499d-ac27-85d4f5a296df-image.png

                              Ich würds halt mal auf 1 Minute einstellen - damit überlastest Du noch nichts - kommt ja immer darauf an, wie ausgelastet dein System generell ist.

                              Ist denn unter stat kein Wert?

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

                                @mickym
                                Habe das jetzt mal auf 60 geändert. Unter stat steht kein Wert.
                                Danke schon mal für deine Unterstützung und deine Geduld! Werde mich da noch weiter einlesen.

                                So sieht jetzt das Ergebnis aus!
                                1b71ee55-57b9-463b-9fdc-b10f2c781be0-grafik.png

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

                                  @bastel2021 sagte in MQTT Datenpunkte ohne Anzeigewert (IR-Lesekopf, Stromzähler):

                                  @mickym
                                  Habe das jetzt mal auf 60 geändert. Unter stat steht kein Wert.
                                  Danke schon mal für deine Unterstützung und deine Geduld! Werde mich da noch weiter einlesen.

                                  So sieht jetzt das Ergebnis aus!
                                  1b71ee55-57b9-463b-9fdc-b10f2c781be0-grafik.png

                                  Na Glückwunsch!!! Schaut doch gut aus! 👍 👍 👍

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

                                    @mickym
                                    Hallo!
                                    ich habe da noch ein paar Nachfragen zu der Verarbeitung der Daten meines Stromzählers.
                                    Ich würde gerne einen täglichen / monatlichen Verbrauch erfassen wollen.
                                    Was ist deiner Meinung nach die richtige Vorgehensweise? Objekte im Ordner 0_userdata neu erstellen mit einer selbst erstellten Struktur hört sich interessant an. Aber erstens nicht ganz einfach und wie geht es dann weiter mit den Datenpunkten?
                                    Außerdem interessiert mich auch noch wie ich z.B. ab einer bestimmten Leistung Geräte ein bzw, ausschalten kann.
                                    Und da ist auch noch VIS und Grafana. Auch interessant. Da wollte ich noch Fragen ob alles überhaupt mit einem RPi3B machbar ist. oder sollte ich hier über kurz oder lang das System anders aufbauen.

                                    Vielleicht kannst du mir mit deinem Wissen und Überblick ein paar Tips geben?

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

                                      @bastel2021 Du kannst ja einfach die Werte, die Dich interessieren in eigene Datenpunkte unter userdata erstellen. Diese Datenpunkte werden dann mit einem Adapter Deiner Wahl gespeichert.

                                      Merke Dir immer, dass der iobroker NUR dazu da ist, Momentanzustände zu erfassen. Historien erstellst Du dann entweder über eine Datenbank (SQL - Adapter, Influx Adapter, Historien Adapter etc).

                                      Diese Werte können dann entweder direkt in den Chart Tools wie Grafana abgefragt und dargestellt werden oder Du berechnest daraus die gewünschten Werte. Für die meisten Zeitbasierten Werte nehmen die meisten Influx DB. Für eine DB ist der RPi3B zu schwach. Da würde ich den Historie Adapter nehmen und lieber eCharts oder Flot zur Darstellung verwenden.

                                      Für die Aufsummierung kannst Du es mal mit dem sourcesanalytics Adapter versuchen. Aber für später mit einer Datenbank brauchst Du leistungsfähigere Hardware.

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

                                        @mickym
                                        danke mal wieder für deine Antwort!
                                        Also um erstmal ein paar Erfahrungen zu sammeln den Historie Adapter nehmen und lieber eCharts oder Flot zur Darstellung und sourcesanalytics Adapter; das geht alles noch mit dem Pi?

                                        Und ab einer bestimmten Leistung Geräte ein bzw, ausschalten, geht das über NodeRed oder besser Blockly?

                                        Und zum Schluss, was heißt denn leistungsfähigere Hardware. Gibt es da Empfehlungen?

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

                                          @bastel2021 Na ich habe ein RPi4B und da geht das alles.

                                          Nur der Raspberry 3 hat glaub nur 1GB - ich hab keine Ahnung wieviel eine Datenbank da braucht. Du kannst ja damit mal anfagen. Vielleicht gehts auch.

                                          Probiers aus. 😉

                                          NodeRed und Blockly ist egal - das gibt sich nichts. Ich persönlich mache alles mit NodeRed - weil ich es wesentlich übersichtlicher, leistungsfähiger und auch wesentlich besser bei der Fehlersuche finde. Du programmierst nicht sondern kümmerst Dich um Abläufe. Mit Blockly bist Du wesentlich mehr an Programmierlogik gebunden.

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

                                            @mickym
                                            Okay, dann ist die Anschaffung RPi4B das nächste was kommt.
                                            Und zwischendurch werde ich versuchen die Datenpunkte aus NodeRed in die 0_userdata zu bekommen. da hast du ja auf einen Thread von dir verwiesen.
                                            NodeRed gefällt mir auch sehr gut. Kannst vielleicht eventuell mal bei Gelegenheit erklären wie man einen Flow aufbauen könnte um bei einem bestimmten Wert etwas zu schalten?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.2k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            73
                                            4085
                                            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