NEWS
IR Lesekopf/NodeMCU per MQTT einbinden [gelöst ...]
-
du hast immer noch die alten Scripte am laufen, bitte stoppen.
zeige mal bitte den unteren Teil vom Blockly (aktualisiere Bausteine)
-
Danke, dass war es. Im unteren Teil des Script stand noch ein alter Eintrag. Jetzt klappt es. Ich hätte nicht gedacht, dass das so komlpiziert ist, um den Stromzähler im IoBroker zu integrieren.
Danke nochmal an alle die geholfen haben und viele Grüße
-
Perfekt wenn es jetzt läuft.
Setzt das Thema auf gelöst und weiter viel Spaß -
@tt-tom
Hallo Tom,
meine Name ist Wilfried und ich lese seit einigen Tage Deinen Beitrag zum Thema
IR-Lesekopf etc. in dem Du dem Kurt so nett geholfen hast. Da ich fast das identische Problem mit der Auswertung der MQTT-Daten habe war ich froh einen so hilfreichen Beitrag gefunden zu haben. Ich habe mir auch gleich „frecherweise“ die tollen Blockly-Scripte gekapert. Ich habe mir diese auf meine Bedürfnisse angepasst, aber irgend etwas will noch nicht klappen. Es ist sicherlich kein großer Fehler aber ich sehe ihn einfach nicht.
Solltest du also Lust und Laune habe auch mir auf die Sprünge zu helfen, dann wäre ich Dir sehr dankbar.Gruß Wilfried
-
@wilfried_2 sagte in IR Lesekopf/NodeMCU per MQTT einbinden [gelöst ...]:
aber irgend etwas will noch nicht klappen.
und was?
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
-
@homoran
Hallo, ich erhalte in den erzeugten Datenpunkten keine Werte sondern soetwas {"asc":true}. -
@wilfried_2 schneid mal nur das Blockly aus.
dann kann ich es auch erkennen und man sieht nicht das ganze drumherumAußerdem wäre ein Output des debugs in code-tags hilfreich
wenn ich das richtig entziffern kann, hast dub3 Blöcke außerhalb des Triggerbausteins. Die müssen da rein.
-
@homoran ```
Das bekomme ich via Tasmota von meinem Zähler "ISKRA MT175"20:32:50.123 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:32:50","MT175":{"P":392.00}} 20:32:51.958 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:32:51","MT175":{"P":393.00}} 20:32:53.783 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:32:53","MT175":{"P":393.00}} 20:32:55.610 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:32:55","MT175":{"P":393.00}} 20:32:57.443 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:32:57","MT175":{"P":393.00}} 20:32:59.256 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:32:59","MT175":{"P":393.00}} 20:33:01.033 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:01","MT175":{"P":397.00}} 20:33:01.967 MQT: %Topic%/%Stromzaehler%/STATE = {"Time":"2023-02-04T20:33:01","Uptime":"0T04:00:21","UptimeSec":14421,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":25,"MqttCount":2,"Wifi":{"AP":1,"SSId":"01Speed22","BSSId":"C8:99:B2:5D:1C:5E","Channel":1,"Mode":"11n","RSSI":76,"Signal":-62,"LinkCount":1,"Downtime":"0T00:00:05"}} 20:33:01.975 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:01","MT175":{"E_in":7636.9,"P":397.00,"Server_ID":"090149534b000484fb20"}} 20:33:02.820 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:02","MT175":{"P":399.00}} 20:33:04.620 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:04","MT175":{"P":399.00}} 20:33:06.426 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:06","MT175":{"P":403.00}} 20:33:08.201 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:08","MT175":{"P":403.00}} 20:33:10.007 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:10","MT175":{"P":403.00}} 20:33:11.751 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:11","MT175":{"P":404.00}} 20:33:13.560 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:13","MT175":{"P":404.00}} 20:33:15.356 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:15","MT175":{"P":401.00}} 20:33:17.148 MQT: %Topic%/%Stromzaehler%/SENSOR = {"Time":"2023-02-04T20:33:17","MT175":{"P":399.00}}
In mqtt.0 sieht das so aus
{ "Time": "2023-02-04T19:11:06", "MT175": { "P": 477 } }
Da fehlt meines erachtens schon mal der ges. Zählerstand. Ich habe herausgefunden, dass Zählerstand nur einmal pro Min. gesendet wird (Telemetry Period: 60).
Das Blockly habe ich geändert und jetzt wird schonmal der "Aktuell"-Wert angezeigt. Der Gesamtverbrauch aber nicht.
Das Script -Log gibt das aus :
19:48:05.022 info javascript.0 (1032) script.js.meine_scripte.Zaehler2: Verbrauch: aktuell:383 19:48:05.023 info javascript.0 (1032) script.js.meine_scripte.Zaehler2: setForeignState(id=0_userdata.0.Stromzähler.Verbrauch, state={"val":{"ack":true},"ack":true,"ts":1675536485023,"q":0,"from":"system.adapter.javascript.0","lc":1675536485023,"c":"script.js.meine_scripte.Zaehler2"}) 19:48:05.024 info javascript.0 (1032) script.js.meine_scripte.Zaehler2: setForeignState(id=0_userdata.0.Stromzähler.Aktuell, state={"val":383,"ack":true,"ts":1675536485024,"q":0,"from":"system.adapter.javascript.0","lc":1675536483160,"c":"script.js.meine_scripte.Zaehler2"})
Wieso aber der Verbrauch aber in mqtt.o nicht erscheint kann ich mir nicht erklären
-
@wilfried_2 sagte in IR Lesekopf/NodeMCU per MQTT einbinden [gelöst ...]:
Da fehlt meines erachtens schon mal der ges. Zählerstand. Ich habe herausgefunden, dass Zählerstand nur einmal pro Min. gesendet wird (Telemetry Period: 60).
dann kann das Blockly auch nur
E_in
ausbdem JSON auslesen, wenn es auch drin ist.im Protokoll siehst du dassxes nur um 20:33:01 dabei ist
-
Werte bekommst du ja schon.
Was mir aufgefallen ist, dass dein MQTT in Tasmota komische Einstellungen hat für den Full Topic.
Hast du dein Zähler per Pin freigeschaltet? Sind mir zu wenig Daten.Zeige bitte mal die MQTT Einstellung von Tasmota und das Script in Tasmota zum auslesen des Zähler. Des Weiteren die Ordner vom MQTT.0, sind vermutlich wegen dem komischen Full Topic ach verteilt.
-
@tt-tom
Hallo Tom,
Ja der Zähler ist per PIN freigeschaltet. Aber die Werte für L1,L2,L3 werden nicht freigegeben. Ich habe die entsprechenden Zeilen im Script gelöcht. -
-
@wilfried_2 sagte in IR Lesekopf/NodeMCU per MQTT einbinden [gelöst ...]:
@tt-tom
Hallo Tom,
Ja der Zähler ist per PIN freigeschaltet. Aber die Werte für L1,L2,L3 werden nicht freigegeben. Ich habe die entsprechenden Zeilen im Script gelöcht.Um mehr Daten zu bekommen, musst du eventuell noch die Info auf „on“ setzen. Hast du eine Beschreibung zur Hand vom Zähler, dann suche mal nach erweiterter Datensatz oder so.
Damit das sauber aussieht schreibe bei Topic: Stromzähler und bei Full Topic: %topic%/%prefix%/ rein.
Danach musst du im Script den Datenpunkt nochmal anpassen.
Kannst du mal in Tasmota in der Konsole „Sensor53 d1“ starten und die Ausgabe posten, ich möchte mal die Daten sehen die der Zähler ausspuckt.
-
@tt-tom
Moin Tom,
Das ist was der Zähler ausgibt.09:55:36.670 : 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 da 3d 3d 6b c3 b5 f5 a2 b9 de 94 5a c4 8e b6 de c4 b0 ea 7c 73 74 ff a1 2a 52 09:55:36.673 : 77 01 0b 09 01 49 53 4b 00 04 84 fb 20 07 01 00 62 0a ff ff 72 62 01 65 04 c0 ce a6 7a 09:55:36.719 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 49 53 4b 01 09:55:36.722 : 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 49 53 4b 00 04 84 fb 20 01 09:55:36.769 : 77 07 01 00 01 08 00 ff 65 00 01 01 82 01 62 1e 52 ff 59 00 00 00 00 04 8d ba a6 01 09:55:36.771 : 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 04 8d ba a6 01 09:55:36.819 : 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 09:55:36.821 : 77 07 01 00 02 08 00 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 09:55:36.869 : 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 09:55:36.872 : 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 09:55:36.919 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 55 00 00 00 a7 01
-
Hallo hier mal ein Link, damit kannst du sehen was die Ausgabe bedeutet in Klartext. gleichzeitig bekommst du auch ein Vorschlag für das Script in Tasmota.
hast du dein Topic angepasst?
-
@tt-tom
Was ich auch nicht so richtig verstehe ist, dass die Gesamtleistung nur einmal entsprechend des eingestellten Zeitintervalls ausgegeben wird die momentale Leistung alle paar Sekunden.
Mein Zähler speichert auch Werte für 1Tag, 7Tage, u.s.w. die ich auch am Zähler über ein blaue mechn. Taste abrufen kann aber übertragen werden diese Daten offensichtlicht nicht.
In der Bedienungsanleitung finde ich auch keinen Hinweis dafür ob oder wie man diese Funktion einschalten kann.
Gruß Wilfried
-
-
1,77070100100700FF@1,aktuelle Wirkleistung,W,aktuelle_wirkleistung,0
die Letzte Zahl gibt den Intervall an, der über MQTT gesendet wird. Damit kannst du es steuern.
TelePeriod: See current value and force publish STATE and SENSOR message
0 = disable telemetry messages
1 = reset telemetry period to firmware default (TELE_PERIOD)
10..3600 = set telemetry period in seconds (default = 300)Hier kannst du nochmal nachlesen.
Script Parameter
Tasmota Doku -
@tt-tom
Hallo Tom, dein Hinweis auf den SML Dekoder war glaube ich der "Bringer". Ich war mutig und habe das empfehlende Script so wie es war in die Tasmota Konfiguration eingefügt und siehe da, es hat auf Anhieb funktioniert. Es funktioniert jetzt auch das eingestellte Zeitintervall.Nachdem ich auch das Blockly angepaßt habe bekomme ich jetzt auch korrekte Werte in den Datenpunkten.
Was leider immer noch nicht übertragen wird sind die erweiterten Daten vom Zähler.
aber damit kann ich leben wenn es dafür keine Lösung gibt.
ich werden jetzt alles noch ein bischen schön machen und kann mich dann um die Visualisierung kümmern.Gruß Wilfried
-
Wenn du auf die Blaue Taste drückst um durch das Menü zu laufen, Kommt da irgendwann der Text Info OFF.? Wenn Ja dann noch mal Kurz Drücken bis da ON steht. dann sollten auch die anderen Daten zur Verfügung stehen. Ist aber Sache des Messstellenbetreiber, was er an Daten freischaltet.