NEWS
Smartmeter mit Espeasy auslesen über Rj12
-
@ralla66 Der Zähler ist von der Semax AG, ein AS3000 mit einem AM103 für die Datenübertragung.
Wenn man den Eingangspin direkt mit 5V verbindet, werden laufend die Daten herausgesendet. So geht es auch ohne Request.
Ich habe einige mögliche Lösungen auf Git gefunden, aber bei allen muss man sich mit Arduino IDE oder Platform.io herumschlagen. Genau wie bei der Tasmota lösung von dir. Diese Programme finde ich zum kotzen, irgend eine Bibliothek oder sonstwas fehlt immer. Mit dem Schrott habe ich schon Wochen meines Lebens verschwendet.Aber das mit dem Invertieren habe ich schon häufiger gelesen, geht das auch Softwaremässig auf dem ESP? Zur Not hätte ich das Zeugs aber auch hier, das wird somit mein nächster Ansatz, danke für den Hinweis.
-
-
@ralla66
ich hatte heute mal wieder zeit um weiter zu machen. leider hatte ich etwas probleme mit dem optokoppler. ziemlich sicher habe ich ihn falsch angeschlossen, ich werde das in den nächsten Tagen nochmals angehen.
Sehe ich das nun richtig? Die Datenleitung wird durch den Geräteinternen optokoppler nach GND gezogen, somit muss ich diese Ader am GND meines Optokopplers anschliessen und 5 V bei PWM? So auf die Schnelle funktioniert das leider auch nicht. -
Geräte intern wird das wohl wie auf Seite 7 zu sehen ist nach GND gezogen.
Wie das anzuschließen ist entscheiden ja deine Bauteile. Je nachdem ob
du einen invertierenden oder nicht invertierenden Optokoppler hast.
Was aber erst einmal nichts mit PWM zu tun hat.
Beschaltungsbeispiele findest du ja im Netz zb bei Arduino Projekten. -
Ich habe nun die Schaltung von hier nachgebaut,
zuerst ohne Erfolg. Aber nachdem ich den BC847 richtig herum eingebaut hatte, spukte putty das aus
mithilfe dieser Tabelle kann ich nun weiterarbeiten
Danke soweit für eure Hilfe, ich melde mich dann wieder bei weiteren Problemen, oder wenn alles gelöst ist
-
nun muss ich noch schauen wie die Daten zu Iobroker kommen. Per MQTT wird seltsamerweise nichts gesendet.
Elegant wäre natürlich wenn ich mit einem Rules Dummy Datenpunkte vollschreiben könnte, und die dann per MQTT versenden.
Mit Tasmota bin ich übrigens so auf die schnelle nicht klar gekommen. Damit können sicher gut Steckdosen geschalten werden, aber bei anderem wird es unübersichtlich. -
@hafo
Läuft dochjetzt Mqtt in Betrieb bringen, den Mqtt Adapter als Broker nehmen.
Im ESP und im Mqtt Broker Daten der Verbindung einpflegen.
Später dann per NodeRed oder Blockly die Daten zerlegen. -
@ralla66 ich nutze mqtt bereits bei 3 anderen esp erfolgreich, aber hier wird nur der leere Datenpunkt übertragen
-
@hafo
EspEasy hab ich nicht, dann steht ja die Verbindung, das kann dann nur an den Einstellungen im ESP liegen.
Putty sollte dann aus sein. -
@ralla66 heute war es etwas frustrierend. Ich habe einfach keine Daten mehr erhalten. Nach langem suchen habe ich den Transistor getauscht, nun läuft es wieder. Ich hoffe einmal dass er schon beim einbau und herumspielen einen Schaden davongetragen hat, und der Neue nun länger läuft.
Im EspEasy habe ich schon sehr viele Einstellungen versucht, ich werde im dazugehörigen Forum einmal eine Frage posten.Edit: der Transistor ist nach 20 minuten wieder gestorben. Seltsame Sache, die Wiederstände stimmen, da sollten keine 3mA fliessen.
Nochmals Edit: Der Transistor ist ok, keine Ahnung weshalb auf einmal keine Daten mehr gesendet wurden.
-
das kann wieder alles sein vom Wackelkontakt bis ............
Sollte EspEasy Mqtt gar nicht gehen kann ich dir Bilder von den Einstellungen
in Tasmota hochladen. -
Endlich bin ich etwas weiter. Ich kann NodeRed mit dem TCP In Node verbinden. Seltsamerweise kommen aber erst Daten nachdem ich einmal mit dem TCP Out Node eine Anfrage gesendet habe.
Das aufteilen der Nachricht werde ich dann in den nächsten Tagen angehen.
-
läuft doch Top
-
irgend etwas stimmt nicht. Nach kurzer Zeit werden auf einmal keine Daten mehr gesendet, auch ein Neustart hilft dann nicht weiter aber auf einmal geht es wieder.
In meiner Wühlkiste habe ich noch einen OS1838 IR Empfänger gefunden. Ich teste in den nächsten Tagen einmal diese Variante. -
Problem gelöst. Ich hatte ein Haar oder etwas ähnliches zwischen GND und der Basis des Transistors. Manchmal hat alles funktioniert, aber nach einer gewissen Zeit muss darüber der Strom geflossen sein. Jedenfalls läuft es nun perfekt, kurz mit dem Cutter durchfahren hat gereicht.
Die Daten werden auch vom Smartmeteradapter erkannt und verarbeitet.
Danke für eure Hilfe, wenn ich etwas besser gelötet hätte, würde es schon lange laufen. -
Prima, geht doch
Ein Bild von deinen Einstellungen im Smartmeteradapter wäre cool. -
@ralla66
gerne, das Ganze lläuft nun fehlerfrei.
Allerdings nützt es nicht viel, die Statistik kann ich auch bei meinem Netzbetreiber anschauen
ich hätte gerne den aktuellen Verbrauch gewusst, aber der Strom wird nur auf 1 A genau angezeigt. Mit diesem Node Red flow kann ich aber in etwa herausfinden wie viel Strom gerade fliesst
Meine Frau ist gerade am einkochen, ich hoffe dass die Werte deshalb stark schwanken. hier wäre noch der Flow[ { "id": "0e1f77b4e4c3ccf6", "type": "tab", "label": "Smartmeter", "disabled": false, "info": "", "env": [] }, { "id": "f993f511e261df3d", "type": "ioBroker in", "z": "0e1f77b4e4c3ccf6", "name": "Summe T1", "topic": "smartmeter.0.1-0:1_8_1.value", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "true", "outFormat": "MQTT", "x": 420, "y": 280, "wires": [ [ "30b29910ef393e95" ] ] }, { "id": "d98f73a2e2bd3c51", "type": "ioBroker in", "z": "0e1f77b4e4c3ccf6", "name": "Summe T2", "topic": "smartmeter.0.1-0:1_8_2.value", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "true", "outFormat": "MQTT", "x": 420, "y": 340, "wires": [ [ "f33ae6b9a8ededba" ] ] }, { "id": "30b29910ef393e95", "type": "change", "z": "0e1f77b4e4c3ccf6", "name": "Flow t1", "rules": [ { "t": "set", "p": "t1", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 620, "y": 280, "wires": [ [] ] }, { "id": "f33ae6b9a8ededba", "type": "change", "z": "0e1f77b4e4c3ccf6", "name": "Flow t2", "rules": [ { "t": "set", "p": "t2", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 620, "y": 340, "wires": [ [] ] }, { "id": "daee843d2e81a90e", "type": "function", "z": "0e1f77b4e4c3ccf6", "name": "", "func": "var t1 = flow.get('t1'); \nvar t2 = flow.get('t2');\nvar summe = flow.get('summe') ||0;\nvar zeit = flow.get('zeit');\nvar old_zeit = flow.get('old_zeit') ||0;\n\nsekunden = zeit - old_zeit;\nnew_summe = t1 + t2;\nverbrauch = new_summe - summe\nwatt = verbrauch / sekunden * 3600 * 1000\n\n\nflow.set('old_zeit', zeit)\nflow.set('summe', new_summe);\nmsg.payload = watt;\n\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1060, "y": 220, "wires": [ [ "65292ae4f94670f2" ] ] }, { "id": "e4ac7d470b6606a5", "type": "ioBroker in", "z": "0e1f77b4e4c3ccf6", "name": "Zeit", "topic": "smartmeter.0.0-0:1_0_0.value", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "true", "outFormat": "MQTT", "x": 410, "y": 220, "wires": [ [ "9d5f1526cdbfd357" ] ] }, { "id": "cd4d0aa5bb15fdc0", "type": "change", "z": "0e1f77b4e4c3ccf6", "name": "zeit", "rules": [ { "t": "set", "p": "zeit", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 220, "wires": [ [ "daee843d2e81a90e" ] ] }, { "id": "65292ae4f94670f2", "type": "debug", "z": "0e1f77b4e4c3ccf6", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1330, "y": 220, "wires": [] }, { "id": "9d5f1526cdbfd357", "type": "change", "z": "0e1f77b4e4c3ccf6", "name": "S entfernen", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "S", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 630, "y": 220, "wires": [ [ "cd4d0aa5bb15fdc0" ] ] } ]
-
cooles Projekt von dir.
Der Weg ist dann RJ12 Serial zum ESP mit EspEasy dann per TCP zum Smartmeteradapter.
Richtig so ?
Ich würde wenn ja dann mal testen ob das per IRrecv am ESP mit Tasmota per TCP nach
Smartmeter auch geht.Danke
-
@ralla66
Genau, ich habe nur ein RJ12 Kabel, 3 Wiederstände, 1 Transistor und ein Wemos D1 mini verbaut. Auf dem D1 mini läuft EspEasy mit dem "ESPEasy P2P Networking" Controller und "Serial Server" als Device. Das schöne ist dass die Stromversorgung auch über das Rj12 kommt, und der D1 mini die 3.3V hergibt.
Den zweiten Teil von deinem Beitrag verstehe ich nicht ganz, aber die IR Schnittstelle sollte dasselbe Signal ausgeben. Von daher sollte das auch gehen.