NEWS
IR Lesekopf/NodeMCU per MQTT einbinden [gelöst ...]
-
@tt-tom
Hallo,
meinst Du mit den normalen MQTT Adapter, den Broker/Client? Die Datenpunkte habe ich nicht, zur Zeit benutze ich den Sonoff Adapter zum Einbinden des IR Lesekopfes über WLAN und MQTT. Meinst Du das Script zum Auslesen der Stromzähler Daten? Wenn ja, anbei das Script, Das habe ich aber auch nur im Netz gefunden und mit meiner Einspeisung ergänztD
B
=>sensor53 r
M 2
+1,3,o,0,9600,LK13BE
+2,1,o,0,9600,STROM
1,1-0:1.8.0255(@1,Gesamtverbrauch,KWh,total,4
1,1-0:2.8.0255(@1,Gesamteingespeist,KWh,total,4
1,1-0:1.8.096(@1,Verbrauch 1 Tag,KWh,total_1d,4
1,1-0:1.8.097(@1,Verbrauch 7 Tage,KWh,total_7d,4
1,1-0:1.8.098(@1,Verbrauch 30 Tage,KWh,total_30d,4
1,1-0:1.8.099(@1,Verbrauch 1 Jahr,KWh,total_365d,4
1,1-0:16.7.0*255(@1,Verbrauch aktuell,W,current,1 -
Danke erstmal für die Script Daten werde ich mal testen.
hast du Tasmota selber kompiliert oder ein fertiges Image genutzt.
ja den normalen MQTT, den nutze ich. da bekomme ich unter tele die Daten.
Edit: der Inhalt sieht so aus. leider Null da die abfrage noch nicht klappt
{ "Time": "2023-01-26T14:05:44", "LK13BE": { "total": 0 } }
das habe ich in der Tasmota Konsole gefunden. da wird dein MQT Pfad angezeigt und die Daten
14:10:44.414 MQT: smartmeter/tele/SENSOR = {"Time":"2023-01-26T14:10:44","LK13BE":{"total":0.0000,"total":0.0000,"total_1d":0.0000,"total_7d":0.0000,"total_30d":0.0000,"total_365d":0.0000,"current":0.0}}
-
tausch mal dein Full Topic in %topic%/%prefix%/ damit alle Daten unter einem Ordner liegen. jetzt wurden sie im Adapter verteilt. zeige mal dein Sonoff Ordner
-
@kurt_88 sagte in IR Lesekopf/NodeMCU per MQTT einbinden:
1,1-0:1.8.0255(@1,Gesamtverbrauch,KWh,total,4
1,1-0:2.8.0255(@1,Gesamteingespeist,KWh,total,4Zwei mal Total, dadurch wird der Wert überschrieben. Vorschlag Total_bezug und total_verbrauch
-
@tt-tom
Wie kommst Du auf den Absatz select all?Bei mir steht nur das drin.
14:12:12.387 MQT: tele/tasmota_C6C98D/SENSOR = {"Time":"2023-01-26T14:12:12","LK13BE":{"total":8795.8588,"total":76.7869,"total_1d":3.1000,"total_7d":31.1000,"total_30d":142.1000,"total_365d":1789.8000,"current":141.0}} 14:17:12.422 MQT: tele/tasmota_C6C98D/STATE = {"Time":"2023-01-26T14:17:12","Uptime":"0T01:45:08","UptimeSec":6308,"Heap":18,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"7270","BSSId":"34:81:C4:24:05:21","Channel":1,"Mode":"11n","RSSI":100,"Signal":-26,"LinkCount":1,"Downtime":"0T00:00:03"}}
Das Image habe ich selber kompiliert, nach folgender Anleitung
-
@kurt_88 sagte in IR Lesekopf/NodeMCU per MQTT einbinden:
okay selbe Tasmota wie ich nutze.
Wie kommst Du auf den Absatz select all?
ich schreibe die Sachen in die Codetags </>
fangen wir nochmal ganz langsam von vorne an.
zeige bitte erst mal die Ordnerstruktur vom Sonoff Adapter
-
@tt-tom
Anbei die Ordnerstruktur. -
das sieht schon mal komisch aus. ich nutze leider SonOff nicht, nur den MQTT und da kann ich dir sagen es sind alle Daten da.
nutzt du noch andere SonOff Geräte, wenn nein würde ich dir den MQTT empfehlen. Du kannst ihn auch parallel zum sonoff betreiben, musst nur einen anderen Port wählen z.b. 1886.
-
@tt-tom
Danke, ich versuche das mal mit dem MQTT Adapter. Den Sonoff Adapter benutze ich für geflashte Gosund Steckdosen.Viele Grüße
-
okay, denke an den Port. Passe in Tasmota den Full Topic und Port dann auch an.
bin jetzt erstmal weg, schaue nachher nochmal rein. Wenn du meine Infos hier beachtest sollte es funktionieren, das die Daten erstmal im iobroker sind.
-
Hi wollte mal hören wie es läuft
-
@tt-tom
Hi,Es läuft immer noch nicht. Ich habe eigentlich die richtigen Einstellungen vorgenommen, anbei mal einige Screenshots dazu
Und die entsprechenden Codes
{ "_id": "mqtt.0.tele.tasmota_C6C98D.SENSOR", "common": { "name": "tele/tasmota_C6C98D/SENSOR", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "string" }, "native": { "topic": "tele/tasmota_C6C98D/SENSOR" }, "type": "state", "from": "system.adapter.mqtt.0", "user": "system.user.admin", "ts": 1674744413861 }
19:29:41.375 MQT: tasmota_C6C98D/tele/STATE = {"Time":"2023-01-26T19:29:41","Uptime":"0T03:05:09","UptimeSec":11109,"Heap":18,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"7270","BSSId":"34:81:C4:24:05:21","Channel":1,"Mode":"11n","RSSI":100,"Signal":-26,"LinkCount":1,"Downtime":"0T00:00:03"}} 19:29:41.383 MQT: tasmota_C6C98D/tele/SENSOR = {"Time":"2023-01-26T19:29:41","LK13BE":{"total_bezug":8796.8784,"total_eingespeist":76.7869,"total_1d":3.4000,"total_7d":31.2000,"total_30d":141.7000,"total_365d":1789.0000,"current":244.0}}
Viele Grüße
-
@kurt_88 sagte in IR Lesekopf/NodeMCU per MQTT einbinden:
@tt-tom
Hi,Es läuft immer noch nicht. Ich habe eigentlich die richtigen Einstellungen vorgenommen, anbei mal einige Screenshots dazu
Sieht doch schon gut aus. nicht verzweifeln. bitte in Tasmota bei Topic Stromzaehler eintragen. danach solltest du einen Ordner bekommen der Stromzaehler heisst. die anderen kannst du dann alle löschen.
der Rest passt von den Einstellungen wie es aussieht.
-
Danke, ich habe das mal umgesetzt, aber es klappt nach wie vor nicht ...
Ich habe jetzt zwar einen neuen Ordner Zaehler1, aber nach wie vor keine relevanten Daten vom Zähler.
Viele Grüße
-
passt schon so. Jetzt kommt Teil2, unter tele / sensor hast du die Daten. Klicke mal auf den Text {"Time"..... dann macht sich ein Fenster auf und zeigt dir den Inhalt.
diese werden per Blockly ausgelesen. das sieht dann so aus.
im Spolier ist der code zum Importieren
EDIT: du musst natürlich die ObjektId am Trigger oben auf deinen Pfad anpassen!!
-
@kurt_88
Du kannst di anderen Ordner alle löschen bis auf stromzeahler1. -
@tt-tom
Danke, aber jetzt komme ich nicht mehr mit, meine Block ID wäre dann?mqtt.0.stromzaehler1.tele.SENSOR
Und das steht bei mir unter Sensor drinn.
{ "_id": "mqtt.0.stromzaehler1.tele.SENSOR", "common": { "name": "stromzaehler1/tele/SENSOR", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "string" }, "native": { "topic": "stromzaehler1/tele/SENSOR" }, "type": "state", "from": "system.adapter.mqtt.0", "user": "system.user.admin", "ts": xxxxxxxxxxxxx }
Ich habe auch mal ein Test Script erstellt, aber da ist schon ein Fehler drinn
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="?d~dU6aLc0]]|rXGp~h_">Verbrauch</variable> <variable id="rvPzZf!%yy5-1}!W.1q_">wert</variable> </variables> <block type="on_ext" id="=)-pDa`St[WQqoo/HMYc" x="-875" y="-642"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="zq)F~W|rc{,awaLFfA/S"> <field name="oid">mqtt.0.stromzaehler1.tele.SENSOR</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="`d@27F8,p#YG9Suw{|Vl"> <field name="VAR" id="?d~dU6aLc0]]|rXGp~h_">Verbrauch</field> <value name="VALUE"> <block type="get_attr" id="iguEIZgoR.Q*2J!#?K{!"> <value name="PATH"> <shadow type="text" id="uE]6-?luPtrafN5fE0^S"> <field name="TEXT">LK13BE.total_bezug</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="=E.Z2IbJ7xlRU:09k8]_"> <field name="VAR" id="rvPzZf!%yy5-1}!W.1q_">wert</field> </block> </value> </block> </value> <next> <block type="debug" id="C,JumF.?kbDdWldMAe$("> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="1O!mtw9x7$i853Po2[Q4"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="[2VG!es:8RHWUx)lJ0F-"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="qL:NU9uD0Ru!%Wq8M70C"> <field name="TEXT">Verbrauch</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="B8o;@q,znJtczvdK|P*E"> <field name="VAR" id="?d~dU6aLc0]]|rXGp~h_">Verbrauch</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </xml>
Viele Grüße
-
@kurt_88 sagte in IR Lesekopf/NodeMCU per MQTT einbinden:
nicht aufgeben wir bekommen das hin. es läuft bei mir ja, dann auch bei dir.
Danke, aber jetzt komme ich nicht mehr mit, meine Block ID wäre dann?
mqtt.0.stromzaehler1.tele.SENSOR
ja ist richtig.
Und das steht bei mir unter Sensor drinn.
du darfst nicht auf den Bleistift klicken sondern auf den Text.
der Fehler im Script kann sein das ein Schreibfehler vorliegt. dazu benötige ich diesen Inhalt von sensor
-
@tt-tom
Den Inhalt?{ "Time": "2023-01-26T21:57:42", "LK13BE": { "total_bezug": 8797.2885, "total_eingespeist": 76.7869, "total_1d": 3.3, "total_7d": 31.2, "total_30d": 141.7, "total_365d": 1788.3, "current": 186 } }
Viele Grüße
-
passt perfekt. habe dein Fehler gefunden. du hast eine Variable Wert angelegt. das ist falsch. Der Wert kommt vom Trigger. da musst du unter Trigger Objekt ID auswählen und dann umstellen auf wert. okay verstanden?
Edit: du kannst auch mein Blockly importieren muss nur auf den Spoiler klicken