Slimme meter uitlezen -> vreemde tekens

hallo,
ik probeer mijn slimme meter uit te lezen via de P1 poort.
Het betreft een Landys Gyr E350 meter.

Ik gebruik een zelfgemaakte P1 kabel (RJ11 -> Arduino), gemaakt volgens schema's zoals op diverse plekken op internet te vinden. Ook een kant-en-klare kabel geeft hetzelfde resultaat. Baudrate 115200, 8N1. Gebruikte libraries: SoftwareSerial (RX 0, TX 1, inverter flag op true), Altsoftserial etc. Allemaal zelfde resultaat.

Ik krijg wel input, deels leesbaar zoals het verwacht mag worden, maar hier zitten een heleboel rare tekens (blokjes) tussen.
Wat kan hiervan de oorzaak zijn?

Ik heb 'alle' mogelijke oplossingen (zowel hardware als software) die ik kon vinden al geprobeerd. Hardwarematige inverter oplossingen krijg ik helemaal geen response van de slimme meter.

Hierbij een voorbeeld van wat ik ontvang:

20:33:02.883 -> 1-3:0.2.<(42(
20:33:02.918 -> 0-0:1.0.0(1N⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮H⸮0-0:96.1/1$4530030363830313531m303636333136)C⸮1KҊr⸮r⸮B⸮⸮⸮⸮⸮r⸮⸮⸮RZ]⸮⸮j1.0:2.<.1(000000.080*kWh

1-0:0.8.2(08552.344kWd)
20:33:03.054 -> 1-0=2.8/2(000008.000kWh)
20:33:03.088 -> 0K⸮ʲr⸮⸮r⸮B⸮⸮⸮⸮j
20:33:03.122 -> 1-0;1'7.0(00.41-0:2.7.0k0-0;96.7.21(8000)
20:33:03.156 -> 0-0:N⸮⸮)B⸮⸮⸮⸮⸮Je⸮1-0:99.97/:(180003LLMN&⸮⸮J ⸮⸮⸮⸮(1807L⸮⸮⸮⸮⸮⸮⸮⸮ ⸮⸮⸮(170723211909S((80(1512230606:9W)(0004(1611242L⸮L&⸮U ⸮⸮⸮⸮
20:33:03.295 -> 1-0:39/32.0(00001-0;32'36.0(00000)C0-8;96.13.1()
0-0:96.13/0$)
20:33:03.362 -> 1-0=31.7.0(003
PJC1-0:2L⸮ B⸮⸮r⸮⸮⸮RZ]j⸮⸮1-0:32.⸮ B⸮⸮r⸮⸮⸮RZ]⸮j⸮0.1:24.1.8(003)
20:33:03.432 -> 0-1:96.0.0(47303c1&ӦM&ӦL⸮⸮L'⸮&⸮&⸮L⸮L⸮L'S⸮H⸮0-1=24.2.1(09029520000W)(04786.673m3)
20:33:03.571 -> !7500
20:33:12.884 -> /XMX5LGBCFFB200053826
20:33:12.919 ->
1.3:0.278(42)
20:33:12.919 -> 0-0;1.0.0(1N&⸮M&⸮⸮⸮⸮⸮⸮⸮H⸮0-0:96.1.1(45303c0343030313531353036363c134(
20:33:12.987 -> 1KҊr⸮r⸮B⸮⸮⸮⸮⸮⸮r⸮⸮RZ]⸮⸮j
20:33:13.021 -> 1-0;2.<.1(000000.080
k⸮)
1-0:1.8.2(08552.366*kWd)
20:33:13.089 -> 1-0=2.8.3(000008.000⸮]⸮⸮j
20:33:13.123 -> 0K⸮ʲr⸮⸮r⸮B⸮⸮⸮⸮j
20:33:13.123 -> 1-0:1/7.0(00.*1-0:2.7/0k0-0:97.7.21(8000)
20:33:13.159 -> 0-0:9;.⸮)B⸮⸮⸮⸮⸮Jj⸮1-0:99.97.:⸮(1810031LMN&⸮⸮J ⸮⸮⸮(1807L⸮⸮⸮⸮⸮⸮⸮⸮ ⸮⸮⸮(1;0723211909SJ⸮⸮⸮⸮(1512230507:9W)(004(151024219134W)(004
1-0:39.33.0(000001-0:33.&⸮ B⸮⸮⸮⸮⸮Jj⸮0-0=97.13.1()
20:33:13.364 -> 0-0:96.13.0()
20:33:13.364 -> 1.0:⸮L⸮ B⸮⸮⸮R
20:33:13.399 -> ⸮j⸮1-0:2L⸮ B⸮⸮r⸮⸮⸮R]⸮j
20:33:13.399 -> 1-0:22/⸮ B⸮⸮r⸮⸮⸮R[])
20:33:13.433 -> 0-1;24.1.8(003)
20:33:13.433 -> 0-1:96.1'0(473030316⸮M&ӦL&⸮L&⸮&⸮&⸮⸮⸮⸮⸮⸮⸮Jj
20:33:13.501 -> 0.1:24.2.1(19029520000]⸮B⸮⸮⸮²r⸮⸮Rj⸮Jj
20:33:13.603 -> !7F81
/XMX5LGBBFGB20053825

dit al gelezen ?

yep. been there, done that!
Zelfde resultaat bij alle opties.

Hoi Joop, welkom !

Je kunt er niet van uitgaan dat iedereen meteen weet waar jij mee bezig bent, en ook weet wat je eigenlijk voor resultaat zou moeten krijgen.
Nou gaf ArdLab_Gent al een link waarin een voorbeeld te vinden is, maar het is beter als je bij het stellen van je vraag niet alleen laat zien wat je krijgt, maar ook wat je verwacht had te krijgen.

Dit is een stukje zoals dat verzonden zou worden door je Landis+Gyr meter:

domoticx.com:

1-3:0.2.8(42)

0-0:1.0.0(170108161107W)
0-0:96.1.1(4530303331303033303031363939353135)
1-0:1.8.1(002074.842kWh)
1-0:1.8.2(000881.383
kWh)
1-0:2.8.1(000010.981kWh)
1-0:2.8.2(000028.031
kWh)
0-0:96.14.0(0001)
1-0:1.7.0(00.494kW)
1-0:2.7.0(00.000
kW)
0-0:96.7.21(00004)
0-0:96.7.9(00003)
1-0:99.97.0(3)(0-0:96.7.19)(160315184219W)(0000000310s)(160207164837W)(0000000981s)(151118085623W)(0000502496*s)

Wanneer je dat naast de door jou ontvangen data legt, dan zul je zien dat er niet 1 regel tussen zit die geen fouten heeft.
Dus zijn er heel veel fouten in jouw data.
Maar toch zijn bepaalde zaken zeker goed, want er komt ook data binnen die je wel degelijk mag verwachten.
Dus baudrate en andere instellingen voor de seriële verbinding kloppen.

Dit soort fouten kan door veel dingen veroorzaakt worden, en dan kan het ook nog gaan om een combinatie van die verschillende zaken.
Als eerste heb je natuurlijk allang gekeken of de verbindingen wel goed contact maken.
Maar ook een lange kabel kan je dergelijke problemen geven, omdat je meer lengte hebt om stoorsignalen op te pikken, je kabel kan ook als antenne gaan functioneren.

Een te lange kabel kun je testen door eens met een kort stukje te proberen.
Wanner dat helpt, kun je voor een langere kabel eens gaan proberen met een netwerkkabel.
Want daarin zijn de aderpaartjes getwist, en dat kan helpen bij het onderdrukken van dergelijke stoorsignalen.
Wanneer de kabel ook nog afgeschermd is, dan zullen de stoorsignalen sowieso al moeite hebben om daar doorheen te komen en blijven ze in die afscherming hangen.

Pin 1 en 0 van een Uno zijn hardware serial en die kun je dus niet probleemloos met software serial gaan gebruiken.
En natuurlijk moet je die pinnen niet voor iets anders gebruiken.
De request pin moet vermoedelijk ook niet de TX pin(1) van je Arduino zijn, want je weet niet wat dat ding gaat doen.
Als die van nivo verandert terwijl de data vanuit je meter nog onderweg is, dan stopt die data dus op dat moment en ben je gegarandeerd van verminkte data.
Ik zou dus een andere pin daarvoor gebruiken.
Maar ik heb natuurlijk geen idee wat er mogelijk is met de software die je nu gebruikt.

Baudrate in je seriele monitor zelfde als in je sketch?

MAS3 , goede uitleg, zo jammer / slecht dat er geen reactie komt.