NEWS
Stromzähler per Sonoff ESP8266 auslesen
-
@wal Sorry dass ich nochmal fragen muss... gibts da ggf. einen "Adapter" (damit meine ich nicht ioBroker Adapter sondern sowas wie ne Kupplung...)?
2. Frage - falls ich mich doch für den Hichi mit Esp entscheide- weiss jemand ob ich da noch 2 freie GPIO für SDA/ SCL habe damit das DIng noch mehr machen kann...!?!
Ich habe diesen hier:
https://shop.weidmann-elektronik.de/index.php?page=product&info=24 -
@oberfragger sagte in Stromzähler per Sonoff ESP8266 auslesen:
falls ich mich doch für den Hichi mit Esp entscheide- weiss jemand ob ich da noch 2 freie GPIO für SDA/ SCL habe damit das DIng noch mehr machen kann...!?!
Das ist der Hichi mit dem ESP-01 (zerlegt auf dem Gehäuse). Funktioniert perfekt, jedoch ist der komplett verbaut.
EDIT: Dafür ist der auch sehr klein, schlank und unauffällig. 5V benötigt der natürlich trotzdem.
-
@armilar Ja. Den meinte ich. Habe ich da noch 2 freie GPIOs?
-
Technisch gesehen schon, bin mir da aber nicht sicher, da bereits alle PINs mit dem unteren Board verbunden sind (evtl. oben auflöten).
EDIT:
Wahrscheinlich sind GPIO0 und GPIO1 noch frei.Andererseits ist das Tasmota in diesem Fall auch nicht sehr update-freundlich, da es immer individuell mit Script-Console kompiliert werden müsste.
Würde dann für zusätzliche Anforderungen eher auf einen zusätzlichen ESP setzen
-
@armilar said in Stromzähler per Sonoff ESP8266 auslesen:
Technisch gesehen schon, bin mir da aber nicht sicher, da bereits alle PINs mit dem unteren Board verbunden sind (evtl. oben auflöten).
EDIT:
Wahrscheinlich sind GPIO0 und GPIO1 noch frei.Andererseits ist das Tasmota in diesem Fall auch nicht sehr update-freundlich, da es immer individuell mit Script-Condole kompiliert werden müsste.
Würde dann eher auf einen zusätzlichen ESP setzen
Nice. Das Schaubild kannte ich noch garnicht. Da ist ja genau das drauf was ich brauchte SDA & SCL! Da löte ich dann einfach dran.
Auf einen zusätzlichen ESP möchte ich gern verzichten... den hab ich ja bereits. Möchte nur möglichst "viel" aus den ESPs rausholen.Oh. Da muss ich eine harte Entscheidung treffen ob ich die 35 Euro ausgeben möchte.
-
@oberfragger sagte in Stromzähler per Sonoff ESP8266 auslesen:
Oh. Da muss ich eine harte Entscheidung treffen ob ich die 35 Euro ausgeben möchte.
Ja, war nicht einfach... Hab's aber trotzdem gemacht und noch nicht bereut
Liefert sauber und kontinuierlich ohne Ausfälle Daten im 10 Sek. Takt an ioBroker...
-
@armilar said in Stromzähler per Sonoff ESP8266 auslesen:
@oberfragger sagte in Stromzähler per Sonoff ESP8266 auslesen:
Oh. Da muss ich eine harte Entscheidung treffen ob ich die 35 Euro ausgeben möchte.
Ja, war nicht einfach... Hab's aber trotzdem gemacht und noch nicht bereut
Liefert sauber und kontinuierlich ohne Ausfälle Daten im 10 Sek. Takt an ioBroker...
Muss mal überlegen, eigentlich tuts ja auch ein TTL-Lesekopf, dann habe ich ja genau das erreicht was ich möchte- mittels NodeMCU (da vorhanden und bereits im Schaltkasten befindlich) zusätzlich das Smartmeter auslesen. Der hier sollte es ja tun, oder?
Das sind dann nur 20 Euro und und mit ein wenig Glück werde ich den IR -> USB für nen 20er los.
Naja. Sind alles keine Reichtümer, möchte nur nicht so viel ungenutzes Zeugs rumliegen haben.
-
@oberfragger sagte in Stromzähler per Sonoff ESP8266 auslesen:
Der hier sollte es ja tun, oder?
Ja, den ESP kannst du auch selbst verlöten. Gibt ja genügend Anleitungen und bestenfalls wird auch dafür noch eine mitgesendet.
-
@oberfragger sagte in Stromzähler per Sonoff ESP8266 auslesen:
Das sind dann nur 20 Euro und und mit ein wenig Glück werde ich den IR -> USB für nen 20er los.
Naja. Sind alles keine Reichtümer, möchte nur nicht so viel ungenutzes Zeugs rumliegen haben.
Prüfe mal mit deiner Handy Kamera, ob dein Zähler in regelmäßigen Abständen Info-Daten per SML sendet. Die meisten Zähler machen das, meist nach Eingabe einer PIN.
Falls das der Fall ist, nimmst du einfach einen ESP8266 und einen IR-Phototransistor. Die Software dafür gibt es auf Github: https://github.com/mruettgers/SMLReaderDer ESP sendet dann jedes Mal, wenn der Zähler die Info-Daten ausgibt die Daten per MQTT an iobroker.
Gruß LarsP.S.: Falls du die Elektronik brauchst, ich habe hier noch 8 Magnetringe, ESP´s und Fotodioden rumliegen. Die 3D Druckteile könnte ich dir auch für Selbstkosten drucken. Falls Interesse PN!
-
@armilar Hat funktioniert. Der Hichi 1.1 wurde echt schnell verschickt. Da ich sowieso einen NodeMCU da im Einsatz habe, wollte ich das ja damit auslesen.
Jetzt das Script noch "schick" machen.
-
Das sieht doch sehr gut aus. L1-L3 müssten eigentlich auch möglich sein. Sind ja aktuell 0
-
@armilar Keine Ahnung.
Ich bekomme recht wenig Werte. Auch Netzfrequenz bekomme ich nicht rein.
Aber wenigstens TotalIn und actual und die ZählerID. -
Hallo Zusammen!
Ich versuche (erfolglos) meinen Iskra AM550 mit dem Tasmoat WiFi-ESP und dem IR-Lesekopf von bitShake auszulesen.
Zur Situation: das Lese-/WiFi-Modul funktioniert einwandfrei an einem EMH eBZD-W23E8 Stromzähler. Ich bekomme die Hex-Werte über "sensor53 d1" angezeigt und kann sie über das Tasmota-Scricpt parsen. So weit, so gut, Modul richtig verlötet und korrekte GPIO-Parameter bekannt.
Wenn ich jetzt den Sensor an meinem (leider von meinem Stromanbieter eingebauten Exoten) Iskra AM550 anbringe, kommt mal so gar nichts an Daten mit "sensor53 d1". Ich habe mit allen möglichen Einstellungen zu Sensor-auf den-Kopf-und andersherum, Baudrate, Parität, Stop-Bits, Init-Befehl/Ack-Befehl usw probiert - nichts.
Ich weiß zuverlässig, daß der Iskra AM550 Daten auf der IR-Schnittstelle unverschlüsselt sendet, denn mit einem anderen Sensor (Device GmbH WMBus IR-Lesekopf) bekomme ich alle 12 Sekunden einen gültigen Auslesedatensatz zugesendet. Allerdings ist mir nicht bekannt, ob diese Daten im SML- oder IEC-Format vom Zähler gesendet werden, denn laut Hersteller Device GmbH unterstützt ihr Sensor beides automatisch.
Auf Empfehlung in GitHub habe ich sogar die neueste Software-Version auf den ESP geflasht, weil es wohl ein Problem beim SML Dump gab, welches erst vor ein paar Tagen gefixt wurde. Keine Verbesserung.
Was ich bei der Tasmota-Lösung nicht verstehe: wenn ich das Datenformat im Tasmoat-Script auf raw setze
+1,5,r,0,9600,Strom
sollten doch zumindest irgendwelche Daten im Dump sichtbar sein?
Daher meine Fragen:
- Hat jemand bereits Erfolge mit dem Iskra AM550 und Tasmota?
- Was kann ich tun, um wenigstens irgendwelche Daten im Tasmota zu erhalten? Das weitere Parsing ist eher kein Problem für mich.
Ich bin etwas ratlos. Danke für Tips.
-
Ich bin zufällig auf eine kleine Webseite gestoßen die die SML Daten, also die Rohdaten aus dem Zähler vernünftig entschlüsselt damit man sich das Script selbst zusammenklempnern kann.
https://tasmota-sml-parser.dicp.net/
Hat der Entwickler dort richtig fein gemacht.
@higginsd
Hast du den Wemos mal auf Rohdaten umgestellt?sensor53 d1
Kommt da was was du dann in der gerade angegebenen Webseite umsetzen kannst?
-
Ja, habe ich. Auch nach "sensor53 d1" kommt nullkommagarnichts an Output.
-
@higginsd ist es auch d1 ? ich hab mehrere dran und da gibts auch d2 usw..
-
Moin,
ich bekomme leider die Scripte nicht hin bzw. dass die Zählerstände automatisch angezeigt werden.
Außerdem noch paar andere Sachen. Ich verwende einen ISKRA 681.Wie bekomme ich mindestens eine Leerzeile zwischen dem Sensor und dem Zählerstand hin?
Warum liest er die Zählernummer nicht aus?
Warum bekomme ich keine Netzfrequenz rein?
Warum wird weder Spannung L1...L3 noch Strim L1...L3 angezeigt? Oder ist das nur für die Einspeisung gedacht?
Dann muss das natürlich raus.
>D rssi=0 s1="Tagesverbrauch: {m}<b><span style=>" v2=0 hr=0 md=0 yr=0 ;Strom p:sm=0 sd=0 p:sma=0 smn=0 p:sya=0 syn=0 sspr=0.4779 yspr=0 ysgp=152.18 y€=0 >T v2=SML#Total_in rssi=Wifi#RSSI >B ->sensor53 r >S ;Tagesverbrauch hr=hours if chg[hr]>0 and hr==0 and v2>0 then sm=v2 svars endif if upsecs%tper==0 then sd=v2-sm ;Monatsverbrauch md=day if chg[md]>0 and hr==0 and md==1 and v2>0 then sma=v2 svars endif if upsecs%tper==0 then smn=v2-sma endif ;Jahresverbrauch yr=year if chg[yr]>0 and hr==0 and md==1 and v2>0 then sya=v2 svars endif if upsecs%tper==0 then syn=v2-sya ;Kosten yspr=syn*sspr+ysgp endif >J ,"Verbrauch Tag":"%sd%" ,"Verbrauch Monat":"%smn%" ,"Verbrauch Jahr":"%syn%" ,"Zählerstand 0:00Uhr":"%2sm%" ,"Zählerstand Monatsanfang":"%2sma%" ,"Zählerstand Jahrenanfang":"%2sya%" ,"Kosten dieses Jahr":"%2yspr%" >W WLAN Empfang: {m}%rssi% dBµV =============== Tagesverbrauch: {m} %2sd% kWh Monatsverbrauch: {m} %2smn% kWh Jahresverbrauch: {m} %2syn% kWh =============== Strom Preis/kWh: {m} %4sspr% € Strom Grundpreis: {m} %2ysgp% € --------------- Strom kosten lfd. Jahr:{m} %2yspr% € =============== Strom Zählerstände: aktuell: {m} %2v2% kWh 0:00 Uhr: {m} %2sm% kWh Monatsanfang: {m} %2sma% kWh Jahresanfang: {m} %2sya% kWh =============== >M 1 +1,3,s,0,9600,,1 1,77070100010800ff@1000,Zählerstand,kWh,Total_in,2 1,77070100100700ff@1,Stromverbrauch,W,Power_curr,0 1,77070100100700ff@1000,Aktuell,kW,Actual_pow,3 1,=h===============| 1,77070100200700ff@1,Spannung L1,V,Volt_p1,1 1,77070100340700ff@1,Spannung L2,V,Volt_p2,1 1,77070100480700ff@1,Spannung L3,V,Volt_p3,1 1,=h===============| 1,770701001f0700ff@1,Strom L1,A,Ampere_p1,1 1,77070100330700ff@1,Strom L2,A,Ampere_p2,1 1,77070100470700ff@1,Strom L3,A,Ampere_p3,1 1,=h===============| 1,770701000e0700ff@1,Netzfrequenz,Hz,Freq,1 1,=h===============| 1,77070100000009ff@#,Zählernummer,,Meter_id,0 1,=h===============| #
Und hier natürlich die Teile der USER_CONFIG_OVERRIDE:
#ifndef USE_SCRIPT #define USE_SCRIPT #endif #ifndef USE_SML_M #define USE_SML_M #endif #ifdef USE_RULES #undef USE_RULES #endif // -- Drivers --------------- #define USE_SCRIPT_WEB_DISPLAY #define USE_SCRIPT_JSON_EXPORT #undef USE_EXPRESSION #define USE_EXPRESSION #define SUPPORT_IF_STATEMENT #define USE_SML_SCRIPT_CMD #define SML_MAX_VARS 30 #define USE_I2C
Huch. Irgendwas hat er da gerade berechnet...!?!
-
Ich verstehe es nicht,
wenn ich zusätzlichen Code einfüge...bekomme ich plötzlich auch Werte angezeigt...aber nicht dort wo cih was eingefügt habe.
Hier wird plötzlich Strom L1..L3 angezeigt:
Das Script sieht nun so aus:
>D rssi=0 s1="Tagesverbrauch: {m}<b><span style=>" v2=0 hr=0 md=0 yr=0 ;Strom p:sm=0 sd=0 p:sma=0 smn=0 p:sya=0 syn=0 sspr=0.4779 yspr=0 ysgp=152.18 y€=0 >T v2=SML#Total_in rssi=Wifi#RSSI >B ->sensor53 r >S ;Tagesverbrauch hr=hours if chg[hr]>0 and hr==0 and v2>0 then sm=v2 svars endif if upsecs%tper==0 then sd=v2-sm ;Monatsverbrauch md=day if chg[md]>0 and hr==0 and md==1 and v2>0 then sma=v2 svars endif if upsecs%tper==0 then smn=v2-sma endif ;Jahresverbrauch yr=year if chg[yr]>0 and hr==0 and md==1 and v2>0 then sya=v2 svars endif if upsecs%tper==0 then syn=v2-sya ;Kosten yspr=syn*sspr+ysgp endif >J ,"Verbrauch Tag":"%sd%" ,"Verbrauch Monat":"%smn%" ,"Verbrauch Jahr":"%syn%" ,"Zählerstand 0:00Uhr":"%2sm%" ,"Zählerstand Monatsanfang":"%2sma%" ,"Zählerstand Jahrenanfang":"%2sya%" ,"Kosten dieses Jahr":"%2yspr%" >W WLAN Empfang: {m}%rssi% dBµV =============== Tagesverbrauch: {m} %2sd% kWh Monatsverbrauch: {m} %2smn% kWh Jahresverbrauch: {m} %2syn% kWh =============== Strom Preis/kWh: {m} %4sspr% € Strom Grundpreis: {m} %2ysgp% € --------------- Strom kosten lfd. Jahr:{m} %2yspr% € =============== Strom Zählerstände: aktuell: {m} %2v2% kWh 0:00 Uhr: {m} %2sm% kWh Monatsanfang: {m} %2sma% kWh Jahresanfang: {m} %2sya% kWh =============== >M 1 +1,3,s,0,9600,,1 1,77070100010800ff@1000,Zählerstand,kWh,Total_in,2 1,77070100100700ff@1,Stromverbrauch,W,Power_curr,0 1,77070100100700ff@1000,Aktuell,kW,Actual_pow,3 1,=h===============| 1,77070100200700ff@1,Spannung L1,V,Volt_p1,1 1,77070100340700ff@1,Spannung L2,V,Volt_p2,1 1,77070100480700ff@1,Spannung L3,V,Volt_p3,1 1,=h===============| 1,770701001f0700ff@1,Strom L1,A,Ampere_p1,1 1,77070100330700ff@1,Strom L2,A,Ampere_p2,1 1,77070100470700ff@1,Strom L3,A,Ampere_p3,1 1,=h===============| 1,77070100010800ff@1000,Gesamtverbrauch,kWh,Bezug_Gesamt,3 1,77070100010801ff@1000,Verbrauch 1.8.1 NT,kWh,Bezug_NT,3 1,77070100010802ff@1000,Verbrauch 1.8.2 HT,kWh,Bezug_HT,3 1,77070100100700ff@1,Leistung,W,Power_cur,0 1,77070100240700ff@1,Leistung P1,W,Power_p1,0 1,77070100380700ff@1,Leistung P2,W,Power_p2,0 1,770701004c0700ff@1,Leistung P3,W,Power_p3,0 1,=h===============| 1,770701000e0700ff@1,Netzfrequenz,Hz,Freq,1 1,=h===============| 1,77070100000009ff@#,Zählernummer,,Meter_id,0 1,=h===============| #
Ich habe nur diesen Code eingefgt:
1,77070100010800ff@1000,Gesamtverbrauch,kWh,Bezug_Gesamt,3 1,77070100010801ff@1000,Verbrauch 1.8.1 NT,kWh,Bezug_NT,3 1,77070100010802ff@1000,Verbrauch 1.8.2 HT,kWh,Bezug_HT,3 1,77070100100700ff@1,Leistung,W,Power_cur,0 1,77070100240700ff@1,Leistung P1,W,Power_p1,0 1,77070100380700ff@1,Leistung P2,W,Power_p2,0 1,770701004c0700ff@1,Leistung P3,W,Power_p3,0 1,=h===============|
-
@oberfragger Sieht so aus als würden deine SML Codes nicht stimmen.
Strom L1 ist offensichtlich der Zählerstand und L3 scheint der aktuelle Verbrauch zu sein. -
@chaot Ich habe da gestern so eine SML-Übersetzungsseite gefunden.
Und beim Zusammenstellen von neuem Code erstmal den NodeMCU geschrottetIst nicht mehr flashbar, erreichbar etc. So ein Mist.
Muss dann ein anderes Mal weitermachen.