Alleen 3 regels uit p1 poort

Arduino specifieke Software
Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 13 Dec 2019, 15:10

Nou, Vandaag getest op de DSMR2.2 met de 9600 baudrate.
Dit ging goed!
Maar bij navraag en zelf even gekeken te hebben blijkt deze helemaal geen gekoppelde gasmeter te hebben, dus dit stukje kunnen we nog niet testen.
Maar met die switch op pin 2 werkt goed.

Meter ISKRA MT382 (DSMR2.2):
Code: Alles selecteren
Gestart
P1 poort op 9600 baudrate voor DSMR2.2
---> Telegram iedere : 7.73 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283877
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 9033
Elektra - actueel teruglevering (W): 0
---> Telegram iedere : 10.00 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283903
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 9033
Elektra - actueel teruglevering (W): 0
---> Telegram iedere : 9.99 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283929
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 9035
Elektra - actueel teruglevering (W): 0
---> Telegram iedere : 10.00 seconden



Meter Landis+Gyr E350 (DSMR4.0):
Code: Alles selecteren
Gestart
P1 poort op 115200 baudrate voor DSMR4.0 of hoger
---> Telegram iedere : 6.32 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 37827956
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand verbruik HOOG tarief (Wh): 73178924
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 3049
Elektra - actueel teruglevering (W): 0
Gas     - meterstand (m3): 41296.523
---> CRC checksum gedetecteerd: EAED
---> Telegram iedere : 10.01 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 37827956
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand verbruik HOOG tarief (Wh): 73178932
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 3038
Elektra - actueel teruglevering (W): 0
Gas     - meterstand (m3): 41296.523
---> CRC checksum gedetecteerd: FEE3
---> Telegram iedere : 10.01 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 37827956
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand verbruik HOOG tarief (Wh): 73178941
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 3043
Elektra - actueel teruglevering (W): 0
Gas     - meterstand (m3): 41296.523
---> CRC checksum gedetecteerd: F95A
---> Telegram iedere : 10.01 seconden



Meter ISKRA AM550 (DSMR5.0):
Code: Alles selecteren
Gestart
P1 poort op 115200 baudrate voor DSMR4.0 of hoger
---> Telegram iedere : 0.02 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 19710948
Elektra - meterstand verbruik HOOG tarief (Wh): 18468491
Elektra - meterstand teruglevering LAAG tarief (Wh): 2
Elektra - meterstand teruglevering HOOG tarief (Wh): 4
Elektra - actueel verbruik (W): 3508
Elektra - actueel teruglevering (W): 0
Gas     - meterstand (m3): 9988.049
---> CRC checksum gedetecteerd: 9596
---> Telegram iedere : 1.00 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 19710948
Elektra - meterstand verbruik HOOG tarief (Wh): 18468492
Elektra - meterstand teruglevering LAAG tarief (Wh): 2
Elektra - meterstand teruglevering HOOG tarief (Wh): 4
Elektra - actueel verbruik (W): 3478
Elektra - actueel teruglevering (W): 0
Gas     - meterstand (m3): 9988.049
---> CRC checksum gedetecteerd: A367
---> Telegram iedere : 1.00 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 19710948
Elektra - meterstand verbruik HOOG tarief (Wh): 18468493
Elektra - meterstand teruglevering LAAG tarief (Wh): 2
Elektra - meterstand teruglevering HOOG tarief (Wh): 4
Elektra - actueel verbruik (W): 3453
Elektra - actueel teruglevering (W): 0
Gas     - meterstand (m3): 9988.049
---> CRC checksum gedetecteerd: 3A10
---> Telegram iedere : 1.00 seconden

Advertisement

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 13 Dec 2019, 15:26

Zojuist zag ik toch een afwijking bij de 9600 baud versie..
De meterstanden kloppen niet, bijgevoegd de echte meterstand en in het register staat:

Code: Alles selecteren
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283877


laag.jpg
laag.jpg (76.74 KiB) 6710 keer bekeken


hoog.jpg
hoog.jpg (79.9 KiB) 6710 keer bekeken

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Alleen 3 regels uit p1 poort

Berichtdoor Koepel » 13 Dec 2019, 15:47

Ik schreef al: "Als je een waarde niet ziet, of een getal klopt niet, kun je dan die regel uit het telegram laten zien ? Dan kan ik mijn sketch daar op aanpassen". Dus het is echt nodig dat je die regel of het hele telegram laat zien.

Om het te controleren is het nodig dat ieder cijfer klopt.

Stel dat in een telegram staat: "1-0:1.8.1(037779.54*kWh)" terwijl verwacht wordt "1-0:1.8.1(037779.548*kWh)" dan gaat het al verkeerd (het verschil is de ene keer drie cijfers achter de punt en de andere keer twee cijfers).

Je mag ook de sketch zelf gebruiken en het commentaar weghalen.
Dus deze sketch: http://arduinoforum.nl/viewtopic.php?f=8&t=4034&start=30#p27252, daar staat dit:
Code: Alles selecteren
// Voor debuggen:
// Serial.write( inChar);

Als je die Serial.write( inChar); wel doet, dan wordt alles doorgegeven naar de seriële monitor, zowel het telegram als wat de sketch er uit haalt.

In de sketch worden de waarden ingelezen in de variabelen 'tl' en 'tld', waarbij 'tl' het cijfer vóór de punt is en 'tld' het cijfer na de punt. Het is dus eenvoudig om in de seriële monitor die punt er tussen te zetten. Maar ik weet niet wat jij wilt.

Ik zie overeenkomsten in de getallen, maar ik begrijp er niets van :shock:
357284 -> 57283877 (eerste cijfer verschuift naar vijfde positie, er komen drie cijfers bij)
171801 -> 71801117 (eerste cijfer verschuift naar vijfde positie, er komen drie cijfers bij)

Gelukkig komen de telegrammen netjes iedere seconde of iedere 10 seconden binnen. Het signaal lijkt betrouwbaar.

Als je in de sketch iets hebt gewijzigd, dan graag de hele sketch weer laten zien. Misschien heeft die sketch een versie-nummer en een naam nodig.

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 13 Dec 2019, 16:08

Koepel schreef:Ik schreef al: "Als je een waarde niet ziet, of een getal klopt niet, kun je dan die regel uit het telegram laten zien ? Dan kan ik mijn sketch daar op aanpassen". Dus het is echt nodig dat je die regel of het hele telegram laat zien.

Om het te controleren is het nodig dat ieder cijfer klopt.

Stel dat in een telegram staat: "1-0:1.8.1(037779.54*kWh)" terwijl verwacht wordt "1-0:1.8.1(037779.548*kWh)" dan gaat het al verkeerd (het verschil is de ene keer drie cijfers achter de punt en de andere keer twee cijfers).

Je mag ook de sketch zelf gebruiken en het commentaar weghalen.
Dus deze sketch: http://arduinoforum.nl/viewtopic.php?f=8&t=4034&start=30#p27252, daar staat dit:
Code: Alles selecteren
// Voor debuggen:
// Serial.write( inChar);

Als je die Serial.write( inChar); wel doet, dan wordt alles doorgegeven naar de seriële monitor, zowel het telegram als wat de sketch er uit haalt.

In de sketch worden de waarden ingelezen in de variabelen 'tl' en 'tld', waarbij 'tl' het cijfer vóór de punt is en 'tld' het cijfer na de punt. Het is dus eenvoudig om in de seriële monitor die punt er tussen te zetten. Maar ik weet niet wat jij wilt.

Ik zie overeenkomsten in de getallen, maar ik begrijp er niets van :shock:
357284 -> 57283877 (eerste cijfer verschuift naar vijfde positie, er komen drie cijfers bij)
171801 -> 71801117 (eerste cijfer verschuift naar vijfde positie, er komen drie cijfers bij)

Gelukkig komen de telegrammen netjes iedere seconde of iedere 10 seconden binnen. Het signaal lijkt betrouwbaar.

Als je in de sketch iets hebt gewijzigd, dan graag de hele sketch weer laten zien. Misschien heeft die sketch een versie-nummer en een naam nodig.



Ik heb die sketch gebruikt en het telegram ook geplaats, het is deze telegram:
Ik heb niks aan de sketch veranderd! Het gaat dus alleen mis bij de 9600 baudrate gedeelte..

Code: Alles selecteren
Gestart
P1 poort op 9600 baudrate voor DSMR2.2
---> Telegram iedere : 7.73 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283877
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 9033
Elektra - actueel teruglevering (W): 0
---> Telegram iedere : 10.00 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283903
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 9033
Elektra - actueel teruglevering (W): 0
---> Telegram iedere : 9.99 seconden
Elektra - meterstand verbruik LAAG tarief (Wh): 71801117
Elektra - meterstand verbruik HOOG tarief (Wh): 57283929
Elektra - meterstand teruglevering LAAG tarief (Wh): 0
Elektra - meterstand teruglevering HOOG tarief (Wh): 0
Elektra - actueel verbruik (W): 9035
Elektra - actueel teruglevering (W): 0
---> Telegram iedere : 10.00 seconden


Ik weet niet of hij dat cijfer naar de 5e rij verplaatst omdat als je het afrond ook daarop uitkomt toch?
Het lijkt wel alsof hij alleen het eerste getal niet plaatst

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Alleen 3 regels uit p1 poort

Berichtdoor Koepel » 14 Dec 2019, 00:55

Sorry, maar ik denk dat dit niet gaat werken.
Je kunt beter een sketch zoeken van iemand die het al geschikt heeft gemaakt voor meerdere soorten meters.

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: Alleen 3 regels uit p1 poort

Berichtdoor zuid » 14 Dec 2019, 08:49

Het gaat niet fout in de posities na de komma maar het eerste cijfer wordt juist weggelaten.
Op het display staat de waarde in kW. Alles na de komma wordt op het display weggelaten.
Bij het omrekenen naar W gaat het waarschijnlijk fout.
Er staat bijvoorbeeld 71801117 W dit moet zijn 171801117(W) of 171801,117 kW
Ik denk dat de hoge meterstand ergens niet in een variabele past.
Code: Alles selecteren
long mEVLT;   // Meterstand Elektra - verbruik laag tarief
long mEVHT;   // Meterstand Elektra - verbruik hoog tarief
long mETLT;   // Meterstand Elektra - teruglevering laag tarief
long mETHT;   // Meterstand Elektra - teruglevering hoog tarief
long mEAV;    // Meterstand Elektra - actueel verbruik
long mEAT;    // Meterstand Elektra - actueel teruglevering


Probleem is denk ik op te lossen door van bovenstaande velden unsigned long te maken.

Andere oplossing zou kunnen zijn
Code: Alles selecteren
 mEVLT = tl * 1000 + tld;

Wijzigen in
Code: Alles selecteren
 mEVLT = tl ;

Hiermee worden de cijfers na de komma dus weggelaten.
Wijzigen natuurlijk voor elke meterstand (hoog laag en gas)



m.v.g. Nico


Drie fase meter vast niet voor een "woonhuis". :)

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 14 Dec 2019, 09:49

Bedankt Nico voor het meedenken, het is geen woonhuis nee maar een bedrijfspand waar ik deze kan testen.
Ik zal dit maandag weer even proberen.
Wat koepel ook schreef zal ik even die Serial.write( inChar); even proberen en het verschil laten zien.

Ben ook erg benieuwd hoe ik deze sketch op een ESP32 draaiend kan krijgen trouwens. Daar krijg ik voor mij onbekende foutmeldingen te zien tijdens het verifiëren.

Code: Alles selecteren
                                                                           
exit status 1
'sscanf_P' was not declared in this scope

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: Alleen 3 regels uit p1 poort

Berichtdoor zuid » 14 Dec 2019, 11:19

Ik zie in een voorgaand post nu dat je alleen in kW geïnteresseerd bent en dus bij de andere meters door 1000 moet delen.
Mij tweede voorstel lost dat voor de andere meters ook gelijk op delen is dan niet meer nodig.
Geeft wel een afrondingsfoutje.

Weet je zeker dat de ESP foutmelding bedoelt wat er staat. :)
Is het geen fout in de { en } Daarbij krijg je ook wel eens vreemde meldingen.
m.v.g. Nico

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: Alleen 3 regels uit p1 poort

Berichtdoor zuid » 14 Dec 2019, 11:46

Het kan ook zijn dat scanf_P niet geïmplementeerd is op een ESP32
De code moet dan worden gewijzigd naar de variant zonder _P
Dus naar sscanf
In mijn schets staat: if (sscanf(buffer, "1-0:%d.8.%d(%ld.%ld" , &i, &j, &tl, &tld)
Het verschil zit in waar de constante waarnaar gezocht wordt, wordt geladen in het geheugen van de ESP

Zie https://www.microchip.com/webdoc/AVRLibcReferenceManual/assembler.html
(zoek hierin naar scanf)

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 14 Dec 2019, 13:06

Het was inderdaad de scanf_P, deze aangepast naar scanf en nu lukt het verifiëren wel. Heb nu alleen geen ESP thuis liggen om hem te testen, komt maandag wel die test.

Ik vind Wh ook prima maar uiteindelijk wil ik een output hoog brengen als er een KW bij gekomen is, dit om een externe teller aan te sturen.
Zit alleen even te zoeken naar voorbeelden hoe ik een serial input waarde kan gebruiken om dus verschillen te gaan zien en acties uit te gaan voeren.



Code: Alles selecteren
{
 {
        // 1-0:1.8.1 = Elektra verbruik laag tarief (DSMR v4.0)
        mEVLT = tl * 1000 + tld;
        Serial.print( F( "Elektra - meterstand verbruik LAAG tarief (Wh): "));
        Serial.println( mEVLT);
        if (mEVLT + 1KW bijvoorbeeld...dan:) {       
        Serial.println("+1KW bijvoorbeeld");
      }
      }
     

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 17 gasten