Landys + Gyr E570

Hallo,

ich versuche seit gestern unseren E570 über die IR-Schnittselle zum Auslesen der Daten zu bewegen.

Es funktioniert teilweise, aber ich glaube beim Entschlüsseln/Dekodieren stimmt noch was nicht.

Der Anbieter ist Wiener Netze und ich habe auch den Decryption-Key bekommen.

Folgendes script habe ich momentan:

>D
res=0
scnt=0
>F
scnt+=1
switch scnt
case 6
res=sml(1 0 300)
res=sml(1 1 "2F3F210D0A")
case 18
res=sml(1 1 "063034300D0A")
res=sml(1 0 4800)
case 200
scnt=0
ends
>M 1
+1,3,r,0,4800,E650,1
1,=so5,<hier der Key von Wiener Netze>
1,1-1:1.8.0(@1,Verbrauch,kWh,1-8-0,3
1,1-1:1.8.1(@1,Verbrauch NT,kWh,1-8-1,3
1,1-1:1.8.2(@1,Verbrauch HT,kWh,1-8-2,3
1,1-1:2.8.0@1,Einspeisung,kWh,2-8-0,3
1,1-1:2.8.1(@1,Einspeisung HT,kWh,2-8-1,3
1,1-1:2.8.2(@1,Einspeisung NT,kWh,2-8-2,3
1,1-1:1.5.0(@1,power_IN,kW,1-5-0,3
1,1-1:2.5.0(@1,power_OUT,kW,1-5-0,3
1,1-1:21.5.0(@1,power_L1,kW,21-5-0,3
1,1-1:41.5.0(@1,power_L2,kW,41-5-0,3
1,1-1:61.5.0(@1,power_L3,kW,61-5-0,3
1,1-1:32.7.0(@1,voltage_L1,V,32-7-0,2
1,1-1:52.7.0(@1,voltage_L2,V,52-7-0,2
1,1-1:72.7.0(@1,voltage_L3,V,72-7-0,2
1,1-1:31.7.0(@1,current_L1,A,31-7-0,3
1,1-1:51.7.0(@1,current_L2,A,51-7-0,3
1,1-1:71.7.0(@1,current_L3,A,71-7-0,3
1,1-1:91.7.0(@1,current_N,A,91-7-0,3
#

Die Umschaltung der Baudrate funktioniert und im Dump bekomme ich folgende Daten:

12:44:56.262 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 23 c3 c8 c7 05 09 4d 48 02 82 8a c0 09 28 00 40 44 68 28 
12:44:56.363 : 01 20 08 24 0a 08 82 0b a6 28 08 2a 4c 08 e6 8a 62 25 04 00 48 21 24 80 00 a3 28 60 f7 
12:44:57.051 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 43 00 a2 49 e9 8d 26 00 01 a9 09 60 44 2d 06 44 2e c8 29 
12:44:57.151 : 88 0a 28 00 05 c0 43 65 28 88 29 ef 28 c8 40 20 06 aa ea 40 83 0a ac 0a 89 06 28 06 f7 
12:44:58.082 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 43 00 0d 04 21 08 01 e8 80 02 0f 68 0f 05 01 08 4c 00 8a 
12:44:58.182 : 8c 02 0c c8 00 22 09 07 08 0c 80 a2 01 4e 80 00 24 0e 08 02 02 2e 05 44 22 04 08 04 f7 
12:44:59.091 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 43 00 81 20 00 2b 08 02 08 0a 80 42 00 87 8f 24 20 a8 84 
12:44:59.192 : 24 01 20 25 08 20 04 03 40 84 c9 04 08 0d 00 0d 0d 08 00 0a 00 09 0c 08 61 21 0e 26 f7 
12:45:00.113 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 43 69 04 ac 4a 00 24 29 4a 20 0a 0a 61 29 02 04 46 00 20 
12:45:00.213 : 08 01 25 0d 4c 25 2c 08 08 03 a8 83 a9 04 04 28 0a 48 01 00 2a 63 08 44 22 41 64 09 f7 
12:45:01.138 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 43 80 00 00 0a 0a 08 24 a8 80 08 04 01 8a 0a 09 0a 02 23 
12:45:01.238 : c0 20 08 4d 88 2f 06 49 41 4c 80 4a 20 0d cf 80 08 e8 0e 0a 62 2c 88 02 04 08 a8 00 f7 
12:45:02.149 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 43 08 08 08 00 45 4a 09 0e 40 80 05 20 88 80 2a 01 a0 a3 
12:45:02.249 : 00 80 08 8a 41 08 04 02 a8 ae 04 29 6a 60 2c 0b 29 08 06 20 04 06 26 00 40 01 88 20 f7 
12:45:03.168 : 07 25 02 20 a8 0d 0a 20 a2 84 2c 03 20 63 80 40 88 02 09 08 0c 28 48 81 a0 29 6c 08 42 01 4b 29 
12:45:03.268 : 02 cc 6a 08 00 28 80 00 81 22 49 2a 08 21 c4 00 88 4a 09 88 2c 00 88 43 00 00 08 8e f7 

Da es schön regelmäßig immer mit 07 25 02 20 u.s.w. anfängt schätze ich, dass der Lesevorgang korrekt ist. Nun stimmt wohl entweder die Interpretation oder des entschlüsseln nicht.
Mir fehlt auch leider das wissen, den „Auslesepart“ mit den ganzen möglichen Protokollen zu interpretieren.

Hier noch einige Notizen, die ich im Zuge der Recherche gesammelt habe:

Wenn mir wer helfen kann & will, dem kann ich gerne per PN einen direkten Zugang zum Tasmota zur Verfügung stellen.

Der Tarif scheint einer mit „Hochtarif“ und „Niedertarif“ zu sein (is von meinem Arbeitgeber - momentan weiß ich leider nicht mehr, habe aber Zugriff auf die Wiener-Netze Kundenseite)

Außerdem ist noch eine Photovoltaikanlage vorhanden die einspeißt (theoretisch, fast immer wird der komplette Strom lokal verbracht)

Hallo,
mit dem Tasmota SML Decoder bekomme ich mit den empfangenen Daten keine vernünftige Decodierung:
https://tasmota-sml-parser.dicp.net

Ich weiß nicht, ob hier noch der Boot-Befehl für den Sensor im Script fehlt?

>D
>B
smlj=0
=>sensor53 r

Probier doch auch mal die Decodierung so zu erfassen

1,=so4,<hier der Key von Wiener Netze>

So, ich habs geschafft.
Folgender code:

>D
res=0
scnt=0
>F
>M 1
+1,3,r,0,9600,Strom,1
1,=so3,512,512,128
1,=so4,codeVomNetzanbieter

; --- Date and Time ---
1,0209090cUUuu@1,Jahr,,dt_year,0
1,0209090cx2uu@1,Monat,,dt_month,0
1,0209090cx3uu@1,Tag,,dt_day,0
1,0209090cx5uu@1,Stunde,,dt_hour,0
1,0209090cx6uu@1,Minute,,dt_min,0
1,0209090cx7uu@1,Sekunde,,dt_sec,0
1,=m 1*#10000+2*#100+3@1,Datum (YYYYMMDD),,dt_ymd,0
1,=m 4*#10000+5*#100+6@1,Uhrzeit (HHMMSS),,dt_hms,0

; --- Energy Counters ---
1,0209090cx13U64@1000,Zählerstand Bezug,kWh,Total_In,3
1,0209090cx22U64@1000,Zählerstand Einsp,kWh,Total_Out,3
1,0209090cx31U64@1000,Zählerstand BlindBez,kvarh,React_In,3
1,0209090cx40U64@1000,Zählerstand BlindEin,kvarh,React_Out,3

1,0209090cx49U32@1,Leistung Bezug,W,Power_In,0
1,0209090cx54U32@1,Leistung Einsp,W,Power_Out,0
1,0209090cx59U32@1,Reactive Power In,var,React_Pwr_In,0
1,0209090cx64U32@1,Reactive Power Out,var,React_Pwr_Out,0
#

Entschlüsselungscode muss natürlich noch der eigene eingegeben werden.
Zählerstand Blind Einspeisung sowie reactive Power Out konnte ich nicht kontrollieren, da bei mir beide auf 0 sind.

Ich habe eine E450 mit Wiener Netze, aber dieser funktioniert leider nicht mit diesem Skript. Es werden überhaupt keine Daten empfangen - weder mit 2400 noch 9600 Bit/s.
Hat schon jemand den E450 mit Wiener Netze erfolgreich in Betrieb genommen?

Ich bin ganz knapp dran, habe aber offensichtlich irgend einen blöden Fehler, den ich einfach nicht finde. Ich kann momentan die Daten empfangen, decrypten und ich kann sie manuell interpretieren, aber im Main Menu der Web-Gui sind alle Werte immer 0.

Mein Script:

>D
>B
smlj=0
=>sensor53 r
>M 1
+1,3,r,0,9600,Heizung,1
1,=so3,128
1,=so4,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; --- Date and Time ---
1,0209090cUUuu@1,Jahr,,dt_year,0
1,0209090cx2uu@1,Monat,,dt_month,0
1,0209090cx3uu@1,Tag,,dt_day,0
1,0209090cx5uu@1,Stunde,,dt_hour,0
1,0209090cx6uu@1,Minute,,dt_min,0
1,0209090cx7uu@1,Sekunde,,dt_sec,0
1,=m 1*#10000+2*#100+3@1,Datum (YYYYMMDD),,dt_ymd,0
1,=m 4*#10000+5*#100+6@1,Uhrzeit (HHMMSS),,dt_hms,0

; --- Energy Counters ---
1,0209090cx13U32@1000,Zählerstand Bezug,kWh,Total_In,3
1,0209090cx18U32@1000,Zählerstand Einsp,kWh,Total_Out,3
1,0209090cx23U32@1000,Zählerstand BlindBez,kvarh,React_In,3
1,0209090cx28U32@1000,Zählerstand BlindEin,kvarh,React_Out,3

1,0209090cx33U32@1,Leistung Bezug,W,Power_In,16
1,0209090cx38U32@1,Leistung Einsp,W,Power_Out,0
1,0209090cx43U32@1,Reactive Power In,var,React_Pwr_In,0
1,0209090cx48U32@1,Reactive Power Out,var,React_Pwr_Out,0
#

Ein Konsolen-Dump der decrypteten Daten (‚sensor53 d1‘):slight_smile:

21:05:40.495 SML: decrypted block: 56 bytes
21:05:40.496 :>02 09 09 0c 07 ea 0a 07 03 16 05 26 ff 80 00 80 
21:05:40.496 :>06 02 ab a9 38 06 00 00 00 00 06 00 00 2d b6 06 
21:05:40.496 :>00 d9 af e8 06 00 00 02 05 06 00 00 00 00 06 00 
21:05:40.497 :>00 00 06 06 00 00 00 ea 
21:05:40.544 :>00 00 06 06 00 00 00 ea 
21:05:41.345 SML: decrypted block: 56 bytes
21:05:41.346 :>02 09 09 0c 07 ea 0a 07 03 16 05 27 ff 80 00 80 
21:05:41.346 :>06 02 ab a9 38 06 00 00 00 00 06 00 00 2d b6 06 
21:05:41.346 :>00 d9 af e8 06 00 00 02 04 06 00 00 00 00 06 00 
21:05:41.347 :>00 00 06 06 00 00 00 e9 
21:05:41.394 :>00 00 06 06 00 00 00 e9 

Die Web-GUI:

Firmware ist selbst-compiliert (wegen USE_SML_AUTHKEY) mit folgenden defines:

#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
#ifndef USE_SML_M
#define USE_SML_M
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif

#define USE_WEBSERVER
#define USE_MQTT_TLS
#define MAX_METERS 1
#define USE_SML_AUTHKEY

Hat wer eine Idee, was ich da falsch mache?

Kann ich das irgendwie debuggen?

Hmm … wie gesagt, Anfängerfehler: nach einem Reset hat es funktioniert!

Damit gilt das oben angeführte als Anleitung, wie man den E450 mit Wiener Netzen in Betrieb nehmen kann.