Forum: Haus & Smart Home Tasmota und Zähler auslesen


von Micha (Gast)


Lesenswert?

Hallo Zusammen

Ich bin gerade bim einrichten des Tasmota-Wifi Lesekopfes in Verbindung 
mit einem Stromzähler mit der Bezeichnung "Elster AS1440".
Gefunden habe ich das Script für den Zähler im Tasmota Wiki:

https://tasmota.github.io/docs/Smart-Meter-Interface/#elster-honeywell-as1440-obis

Nach Aktivierung des Scripts bekomme ich in der Tasmota-Konsole folgende 
Ausgaben:
1
19:41:05.018 var not found: sml(1 0 300)
2
19:41:05.020 var not found: sml(1 1 "2F3F210D0A")
3
19:41:06.720 var not found: sml(1 1 "063035300D0A")
4
19:41:07.064 var not found: sml(1 0 9600)
5
19:41:11.058 var not found: sml(1 0 300)
6
19:41:11.060 var not found: sml(1 1 "2F3F210D0A")
7
19:41:12.747 var not found: sml(1 1 "063035300D0A")
8
19:41:13.047 var not found: sml(1 0 9600)

Hierfür habe ich keine Lösung gefunden und deshalb habe ich einen 
anderen Weg eingeschlagen und versucht über die Standard-Kommandos ein 
Script zusammen zu bauen. Das sieht dann so aus:
1
>D
2
3
>B
4
=>sensor53 r
5
6
>M 1
7
+1,3,o,0,300,AS1440,1,10,2F3F210D0A,01423003710D0A
8
1,1.7.0(@0.001,Power In,W,power_in,16
9
1,1.8.0(@1,Total In,KWh,Total_in,1
10
1,2.7.0(@0.001,Power Out,W,power_out,16
11
1,2.8.0(@1,Total Out,KWh,Total_out,1
12
#

Mit diesem Code kann ich Ausgaben in der Console sehen.
Leider ist die Menge der Ausgaben so groß, das es ca. 4 Minuten dauert, 
bis die Übertragung beendet wird, oder am Ende dann immer nur das 
ausgegeben wird:
1
/ELS4\@V9.30

Nun habe ich versucht über ein zusätzlichen Befehl 
(01523502312E372E3028290351) nur einzelne OBIS-Kennung auszulesen
mit folgendem Script:
1
>D
2
3
>B
4
=>sensor53 r
5
6
>M 1
7
+1,3,o,0,300,AS1440,1,10,2F3F210D0A,01523502312E372E3028290351,01423003710D0A
8
1,1.7.0(@0.001,Power In,W,power_in,16
9
1,1.8.0(@1,Total In,KWh,Total_in,1
10
1,2.7.0(@0.001,Power Out,W,power_out,16
11
1,2.8.0(@1,Total Out,KWh,Total_out,1
12
#
Den Hinweis habe ich hier entnommen: 
https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/elster_as1440

Nun zu meiner Fragen:
1. Was ist bei meiner Tasmota Konfiguration falsch, das die erste 
Variante mit der Fehlerausgabe "var not found: sml(1 0 300)" nicht 
funktioniert
2. Kann jemand Hinweise geben, die Skripte erfolgreich in Betrieb zu 
nehmen?

Danke allen Lesern im Voraus.

von Dustin (Gast)


Lesenswert?

Hallo Micha,

hast Du das Problem lösen können?
Ich habe so ziemlich das gleiche Fehlerbild mit meinem AS1440.
Das Skript von der Tasmota-Seite bringt andauernd "var not found: sml".
Jeder Versuch mit 300 Baud zu lesen endet mit "/ELS5\@V9.35".

Hast Du einen Tipp?

Danke im Voraus

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

Dustin schrieb:
> Tasmota

Im Moment gibt es mit der aktellen Tasmotaversion wohl üble Probleme!
Die Lösung wird kaum angestrebt sondern Tehos Kettenhund Jason bügelt 
alle Abfragen wegen Crashes weg mit Spannungen.
So kann man nicht auf einen grünen Zweig kommen! Ging doch jahrelang! 
Nun zieht man sich auf als Fürsprecher des "Original" Bauteils.

Nimm keinesfalls eine Version vom Programm der neueren Zeit wenn du 
nicht nötig hast das zu verwenden. Nimm eine gute. So wie 11 oder 10.

Oder kauf Originalprofi-Hardware deren Herkunft man noch schuldig zu 
sein scheint.

Geh zum ToiSchwitch vom Tobi! Da ist der Mensch noch Mensch und nicht 
der letzte A*rsch der abgedroschen werden muss!
Beitrag "TOISWITCH - IoT I/O-Server für ESP8266"

von Marcus (m4rcus)


Lesenswert?

Hallo zusammen,

die Lösung ist einfach wie simpel.
Ihr benötigt eine neuere Tasmota Firmware auf euren Leseköpfen.
Ich kann sagen, dass Version 12.1.1 für mich funktioniert. Diese 
unterstützt die Verwendung von Variablen im Skript.
Finden könnt ihr die benötigte Firmware in der Beschreibung des 
YouTube-Videos "tasmota auf Lesekopf flashen" des Kanals "krach b". In 
Minute 7 des genannten Videos wird dargestellt, wie ihr ein Upgrade 
durchführt.
https://youtu.be/RbyXqJiBC8Q

Anschließend könnt ihr das Skript passend für euren Zähler von 
https://tasmota.github.io/docs/Smart-Meter-Interface/ kopieren.

Ich selber habe den Elster AS1440.

Wenn die Variablen funktionieren, wird die Baudrate auf 9600 erhöht. Die 
Aktualisierung der Werte dauert anschließend ca. 20 Sekunden

: Bearbeitet durch User
von M. Z. (m_z742)


Lesenswert?

Marcus schrieb:
> Hallo zusammen,
>
> die Lösung ist einfach wie simpel.
> Ihr benötigt eine neuere Tasmota Firmware auf euren Leseköpfen.
> Ich kann sagen, dass Version 12.1.1 für mich funktioniert. Diese
> unterstützt die Verwendung von Variablen im Skript.
> Finden könnt ihr die benötigte Firmware in der Beschreibung des
> YouTube-Videos "tasmota auf Lesekopf flashen" des Kanals "krach b". In
> Minute 7 des genannten Videos wird dargestellt, wie ihr ein Upgrade
> durchführt.
> https://youtu.be/RbyXqJiBC8Q
>
> Anschließend könnt ihr das Skript passend für euren Zähler von
> https://tasmota.github.io/docs/Smart-Meter-Interface/ kopieren.
>
> Ich selber habe den Elster AS1440.
>
> Wenn die Variablen funktionieren, wird die Baudrate auf 9600 erhöht. Die
> Aktualisierung der Werte dauert anschließend ca. 20 Sekunden

Hi Marcus,
kannst du mal deine Konfig für den AS1440 posten? Ich bekomme das Teil 
leider nicht zum Laufen. Die Werte sind immer nur 0.0 bei mir.
Danke im Voraus!
--M.

von Ben H. (ben_h224)


Lesenswert?

Hi Marcus,

so ganz passen die Werte, die der Zähler anzeigt, mit dem ausgelesenen 
Wert nicht überein. Passt das bei Dir? Werte kommen konstant und ohne 
Fehler. Musste aber doch ein paar Anpassungen machen, da die 
Netzbetreiber gerne ihre eigene "Version" da rein programmieren 
lassen....
Habe mal mit den einzelnen Werten rumgespielt, aber so ganz deckt sich 
das nicht mit den Werten die von der PV Anlage kommen. Da spielen aber 
Latenz und die Berechnung der 3 Phasen mit rein. Deshalb weiß ich nicht 
100% welchen Werten man da wirklich trauen kann.


mein Skript sieht so aus:
>D
scnt=0
res=0
>B
=>sensor53 r

>F
; count 100ms
scnt+=1
switch scnt

;300ms after start: set sml driver to 300 baud and send /?! as HEX to 
trigger the Meter
case 3
res=sml(1 0 300)
res=sml(1 1 "2F3F210D0A")

;1700ms later: Ack and ask for switching to 9600 baud
case 20
res=sml(1 1 "063035300D0A")

;300ms later: switch sml driver to 9600 baud
case 23
res=sml(1 0 9600)

;6000ms after start: Restart sequence
case 60
scnt=0

ends


>M 1

+1,3,o,0,9600,AS1440,1

1,0.0.1(@1,Zählernummer,,Meter_number,0
1,1-1:1.7.0(@0.001,Leistung Bezug,W,power_in,16
1,1.8.0(@1,Total Bezug,KWh,Total_in,1
1,1-1:2.7.0(@0.001,Leistung Erzeugung,W,power_out,16
1,2.8.0(@1,Total Erzeugung,KWh,Total_out,1
#

von Horst V. (horst_v)


Lesenswert?

Moin,

Ben H. schrieb:
> Hi Marcus,
>
> so ganz passen die Werte, die der Zähler anzeigt, mit dem ausgelesenen
> Wert nicht überein. Passt das bei Dir? Werte kommen konstant und ohne
> Fehler. Musste aber doch ein paar Anpassungen machen, da die
> Netzbetreiber gerne ihre eigene "Version" da rein programmieren
> lassen....
> Habe mal mit den einzelnen Werten rumgespielt, aber so ganz deckt sich
> das nicht mit den Werten die von der PV Anlage kommen. Da spielen aber
> Latenz und die Berechnung der 3 Phasen mit rein. Deshalb weiß ich nicht
> 100% welchen Werten man da wirklich trauen kann.
>
> mein Skript sieht so aus:
to 9600 baud
> case 23
> res=sml(1 0 9600)
>
> ;6000ms after start: Restart sequence
> case 60
> scnt=0
>
> ends
>
>>M 1
>
> +1,3,o,0,9600,AS1440,1
>
> 1,0.0.1(@1,Zählernummer,,Meter_number,0
> 1,1-1:1.7.0(@0.001,Leistung Bezug,W,power_in,16
> 1,1.8.0(@1,Total Bezug,KWh,Total_in,1
> 1,1-1:2.7.0(@0.001,Leistung Erzeugung,W,power_out,16
> 1,2.8.0(@1,Total Erzeugung,KWh,Total_out,1
> #

Moin, die oben aufgeführte Code ist ja sehr nah an dem Code von der 
Tasmoata Seite. Bei mir funktioniert das grundlegend auch mit einem A 
1500, der gibt allerdings im default leider nicht die Leistung mit raus, 
sondern nur unter den EVU Einstellungen. EVU Passwort und die Alphaset 
Software steht mir zur Verfügung, da es sich um keinen öffentlichen 
Zähler handelt.
Nun zur Frage:
Damit man alle Daten vermutlich erhält, muss man dann ich nenne Ihn mal 
den EVU Modus ja aufrufen.
Dann mir da vielleicht jemand von Euch helfen?

Vielen Dank!

von Horst V. (horst_v)


Lesenswert?

Moin, ich habe noch etwas probiert.
Auf der unten aufgeführten Seite sind

indem man den code /?!\r\n sendet (hex 2F 3F 21 0D 0A)
--> Zählerstände werden ausgegeben


Alternativ kann die Kommunikation statt mit /?!\r\n manchmal auch mit 
/2!\r\n (hex 2F 32 21 0D 0A) angestoßen werden.
--> dann werden bei mir die Spannung und Ströme...ausgeben.

Eigentlich würde ich gerne beides haben. Gibt es hierzu eine 
Möglichkeit?
Danke!


[[https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/elster_as1440]]

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.