NEWS
Auslesen Daten Stromzähler
-
@marco121990 Kannst Du mir mal Deinen ganzen Flow posten? Ja ist bisschen komisch, dass das Objekt keiner Nachrichteneigenschaft zugeordnet ist.
Ich gehe mal davon aus, dass es so ein Objekt ist?
-
@mickym
Habe nach einigen Fehlversuchen die Übergabe an die Influxdb zunächst wieder gelöscht und nur per debug ausgelesen.[ { "id": "f6f2187d.f17ca8", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "56f626e4b62c825a", "type": "mqtt in", "z": "f6f2187d.f17ca8", "name": "Strom", "topic": "tele/tasmota_Stromzaehler/SENSOR", "qos": "0", "datatype": "json", "broker": "6b0c5137b3a546c3", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 100, "wires": [ [ "b26daa48e8b63891" ] ] }, { "id": "b26daa48e8b63891", "type": "debug", "z": "f6f2187d.f17ca8", "name": "debug 1", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "jsonata", "statusVal": "", "statusType": "auto", "x": 370, "y": 100, "wires": [] }, { "id": "6b0c5137b3a546c3", "type": "mqtt-broker", "name": "Stromzaehler", "broker": "192.168.178.100", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "4", "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closeQos": "0", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" } ]
Da ich bei Youtube einige Videos zur Visualsierung über den Weg MQTT -> Note Red -> Influxdb -> Grafana gefunden habe, habe ich mich bisher nicht mit anderen Methoden auseinander gesetzt. Bin recht neu auf diesem Gebiet und habe nur wenig bis keine Ahnung davon.
Möchte iegentlich nur meinen Stromverbrauch aufzeichnen und grafisch auswerten.
-
@marco121990 Das wird von Tasmota übergeben:
22:40:54.825 MQT: tele/tasmota_Stromzaehler/STATE = {"Time":"2023-04-24T22:40:54","Uptime":"1T00:11:50","UptimeSec":87110,"Heap":19,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":29,"MqttCount":1,"Wifi":{"AP":1,"SSId":"TP-Link","BSSId":"54:AF:97:D9:63:50","Channel":11,"Mode":"11n","RSSI":50,"Signal":-75,"LinkCount":1,"Downtime":"0T00:00:03"}}
22:40:54.834 MQT: tele/tasmota_Stromzaehler/SENSOR = {"Time":"2023-04-24T22:40:54","":{"Total_in":21816.99,"Total_out":7.12,"Power_curr":506}}
-
Wenn Du den Flow exportierst musst Du ihn unbedingt in Code-Tags einschliessen.
Sonst ist der nicht importierbar.
-
@marco121990 sagte in Auslesen Daten Stromzähler:
{"Time":"2023-04-24T22:40:54","Uptime":"1T00:11:50","UptimeSec":87110,"Heap":19,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":29,"MqttCount":1,"Wifi":{"AP":1,"SSId":"TP-Link","BSSId":"54:AF:97:D9:63:50","Channel":11,"Mode":"11n","RSSI":50,"Signal":-75,"LinkCount":1,"Downtime":"0T00:00:03"}}
Ja das ist normalerweise eine payload.
Wenn Du das über eine iobroker-IN Node einfügst musst Du das erst in in ein Objekt wandeln - oder kommt es aus einer Mqtt- IN Node?
Wenn ich Dein Objekt nehme und in eine Inject Node nehme - ordne ich es einer payload zu - deswegen wollte ich den ganzen Flow haben, aber in code-Tags bitte.
-
@mickym Habe ich oben im ersten Post angepasst.
-
@mickym
Kommt aus einer Mqtt-in node -
@marco121990 Ja verstehe ich - Du kannst es auf Autoerkennung (1. Option lassen), dass ist die vielseitigste - das wird der payload zugewiesen.
Mach mal die Debug Node so, dass Du die Ausgabe nicht in das Systemlog schreibst, sondern ins debug Fenster.
und kein JSONATA als Ausgabe:
Sondern das msg. Objekt.
Das war bei Dir verkehrt. Dann sollte es mit dem Pfad kopieren funktionieren aus dem Debug Tab.
Wenn Du das richtig gestellt hast bekommst Du das in Deinem Debug Fenster:
Dann ist das Objekt auch Teil der payload Eigenschaft des Nachrichtenobjektes.
-
Wie gesagt der JSON stimmt nicht.
-
Das war schon einmal der erste Fehler.
Nun kann ich die Pfade als payload kopieren.Allerdings gibt er mir trotz Change alle 3 Werte aus.
So war die vorgehendweise in einem der Youtube Videos.
[ { "id": "56f626e4b62c825a", "type": "mqtt in", "z": "f6f2187d.f17ca8", "name": "Strom", "topic": "tele/tasmota_Stromzaehler/SENSOR", "qos": "0", "datatype": "auto-detect", "broker": "6b0c5137b3a546c3", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 90, "y": 100, "wires": [ [ "707e6a5fd1adb822", "1de823b8ddeb6c63", "9ebb34cc2a3228e8" ] ] }, { "id": "b26daa48e8b63891", "type": "debug", "z": "f6f2187d.f17ca8", "name": "debug 1", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 670, "y": 140, "wires": [] }, { "id": "707e6a5fd1adb822", "type": "change", "z": "f6f2187d.f17ca8", "name": "", "rules": [ { "t": "move", "p": "payload[\"\"].Total_in", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 350, "y": 200, "wires": [ [ "b26daa48e8b63891" ] ] }, { "id": "1de823b8ddeb6c63", "type": "change", "z": "f6f2187d.f17ca8", "name": "", "rules": [ { "t": "move", "p": "payload[\"\"].Total_out", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 360, "y": 240, "wires": [ [ "58e492acb7933ee1" ] ] }, { "id": "9ebb34cc2a3228e8", "type": "change", "z": "f6f2187d.f17ca8", "name": "", "rules": [ { "t": "move", "p": "payload[\"\"].Power_curr", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 370, "y": 280, "wires": [ [ "0be43a1afe4539c9" ] ] }, { "id": "58e492acb7933ee1", "type": "debug", "z": "f6f2187d.f17ca8", "name": "debug 2", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 680, "y": 200, "wires": [] }, { "id": "0be43a1afe4539c9", "type": "debug", "z": "f6f2187d.f17ca8", "name": "debug 3", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 680, "y": 260, "wires": [] }, { "id": "6b0c5137b3a546c3", "type": "mqtt-broker", "name": "Stromzaehler", "broker": "192.168.178.100", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "4", "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closeQos": "0", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" } ]
-
Ja das Problem ist, dass da kein richtiger JSON rauskommt. Mach bitte nochmal direkt eine debug Node an die mqtt-In NOde dran.
Und kopieren den kompletten Wert hier in CodeTags - der Eigenschaftsname fehlt nämlich komplett.
-
{"Time":"2023-04-24T23:10:24","":{"Total_in":21817.28,"Total_out":7.12,"Power_curr":554}}
-
@marco121990 sagte in Auslesen Daten Stromzähler:
Ja genau, dass ist das Problem - dass der Eigenschaftsname leer ist
-
@mickym sagte in Auslesen Daten Stromzähler:
@marco121990 sagte in Auslesen Daten Stromzähler:
Ja genau, dass ist das Problem - dass der Eigenschaftsname leer ist
Ok - ich glaube ich habe eine Umgehungslösung.
-
Das wird von tasmota anscheinend schon nicht übergeben oder?
23:15:54.844 MQT: tele/tasmota_Stromzaehler/STATE = {"Time":"2023-04-24T23:15:54","Uptime":"1T00:46:50","UptimeSec":89210,"Heap":18,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"TP-Link","BSSId":"54:AF:97:D9:63:50","Channel":11,"Mode":"11n","RSSI":54,"Signal":-73,"LinkCount":1,"Downtime":"0T00:00:03"}} 23:15:54.852 MQT: tele/tasmota_Stromzaehler/SENSOR = {"Time":"2023-04-24T23:15:54","":{"Total_in":21817.33,"Total_out":7.12,"Power_curr":514}}
-
@marco121990 Genau, das ist das Problem.
Du siehst beim State schaut es OK aus, aber ich habe eine Umgehungslösung.
Ich glaube dass Du im Tasmota noch irgendwas einstellen musst, aber zumindest kann man das Objekt teilen
Nimm den oberen Flow - der ist einfacher.
-
Vielen Dank für deine Hilfe. Werde ich morgen nach der Arbeit mal testen.
-
@marco121990 Wie gesagt bei steht bei den Sensor States als Eigenschaft ANALOG - das ist jedenfalls nicht normal.
Mit JSONATA gehts auch. - Aber normal ist das halt nicht:
Vielleicht musst Du dem Stromzähler ein topic oder Namen geben - keine Ahnung - jedenfalls ist das in Tasmota schon schief.