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 » 09 Dec 2019, 19:32

Ik denk dat er inderdaad wat verwarring is.

In eerste instantie heb ik met de code gewerkt die ik in de openingspost had staan. maar omdat jij aangaf dat die altserial niet betrouwbaar is en erg traag werkt heb ik die gelijk even los gelaten.

Ik heb toen een mega gepakt en die " P1 poort tester" getest.
Op 2 van de 3 meters krijg ik registers te zien waarvan 1 met een foutcode zoals reeds toegevoegd.
Het zijn 3 verschillende meters en sowieso een DSMR4.0, DSMR5.0 en volgens mij is die andere een DSMR2.2.

Die 5.0 haalt iedere seconde een register binnen en die 4.0 elke 10 seconde maar krijg bij die laatste wel een foutmelding met de "p1 poort tester"!!

Die DSMR2.2 heb ik alleen werkend gekregen met een Uno op 9600 met die eerste sketch die ik in de openingspost had gezet. Hierbij kwam hij ook elke 10 seconde binnen.

Advertisement

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 09 Dec 2019, 19:36

Koepel schreef:Hoe ga je nu verder ?
Als er een 7E1 binnenkomt en Arduino staat als 8N1, dan is het inderdaad mogelijk om de 8-ste bit er af te halen. Dus dat deed de sketch waar je mee kwam.


Hoe haal ik van jou sketch die 8ste bit eraf?


Koepel schreef:Stel dat je de oorspronkelijke sketch neemt, en 8N1 gebruikt en het 8-ste bit weghaalt zodat ook 7E1 goed gaat. Dan nog de twee mogelijkheden voor de gaswaarde er in zetten. En dat alles met de hardware seriële poort van een Arduino Mega 2560.
Als je zeker weet dat je dan alle telegrammen goed binnenkrijgt, dan hoef je alleen nog te kiezen tussen 115200 en 9600 baud.


Ik zou het liefste middels een schakelaar die keus willen maken. Dus dat ik kan switchen tussen die mogelijkheden.

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor Koepel » 09 Dec 2019, 20:04

Lijkt me een prima plan.

Mijn "P1 poort tester" haalt niet de waarden er uit. Het is alleen om te kijken of het signaal goed binnenkomt.
De sketch waar je mee begon gebruikt dit soort dingen: if (sscanf(buffer,"1-0:1.8.1(%ld%.%ld%*s" , &tl, &tld) >0 )
Dat leest de waarden uit het telegram.

Kun je die sketch ombouwen voor de Serial1 van de Arduino Mega 2560 ?

Voor een schakelaar heb je de State Change Detection nodig: https://www.arduino.cc/en/Tutorial/StateChangeDetection.
Dan kun je bijvoorbeeld in setup() kijken naar de schakelaar en dan de Serial1.begin() met de juiste baudrate aanroepen.
In de loop(), als de schakelaar verandert dan een Serial.end() en een Serial.begin() met de baudrate volgens de schakelaar.
Kun je daar een beginnetje mee maken ?

Dan moet ik nog nakijken hoe die andere gaswaarde er in zit en daar een nieuwe sscanf(buffer, .......... voor verzinnen om toe te voegen. Dat heb ik al ergens in een sketch...

Eventueel kan dan later nog automatisch gekeken worden of het signaal 8N1 of 7E1 was en om de hoeveel tijd er een telegram komt. Nog een stap verder is het automatisch detecteren van de CRC checksum en kijken of die aanwezig is en juist is. Dan zou ik echter het hele telegram willen inlezen, en dan moet de hele sketch omgebouwd worden.

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 09 Dec 2019, 20:26

Jouw P1 poort tester vraagt alleen om het register?!
En die andere sketch roept specifiek het adres in een register op?
Als dat zo is dan kan ik dus kiezen welke waardes ik wil zien?

Nou ga ik het gelijk moeilijker maken voor mezelf maar ik wil het draaiend krijgen op een esp32.
Ik wil alleen mijn totale KW verbruik zien, dus laag en hoog dus.
En De gas stand moet erbij komen, dus in totaal 3 waardes.

Dit laatste zou eigenlijk moeten kunnen dus?

Daarnaast moet ik nog iets verzinnen dat ik 3 uitgangen even hoog wil hebben die bij elke KW of m3 even hoog worden, dus een soort puls. maar deze komt later wel..

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor Koepel » 09 Dec 2019, 21:05

Voor de ESP32 had ik veel hier aan: https://randomnerdtutorials.com/.

Bij dit: if (sscanf(buffer,"1-0:1.8.1(%ld%.%ld%*s" , &tl, &tld) >0 )
gaat het om dit: 1-0:1.8.1(%ld%.%ld
Daar staat eigenlijk: zoek totdat je "1-0:1.8.1(" vind, pak het getal wat daarna komt, kijk of je een "." ziet en pak ook het getal dat daarna komt.
Met de sscanf() worden die twee getallen in de variabelen 'tl' en 'tld' gezet.
Die "1-0:1.8.1" met de getallen vind je terug in je telegram.

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 10 Dec 2019, 14:56

Ik heb nog even een dsmr5.0 getest met een Arduino Mega en mijn eerste sketch die ik gepost heb. De Recieve pin heb ik dan op 48 en de Baudrate van Serial1 op 115200
Zoals je ziet komen de registers niet compleet en ook niet regelmatig binnen..

Meter: Iskra AM550 smr5.0

11:36:02.067 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:04.051 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:04.051 -> Elektra - meterstand verbruik HOOG tarief (Wh): 4000
11:36:05.030 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:05.068 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:06.060 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:06.060 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:07.037 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:07.037 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:09.049 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:09.049 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:11.039 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13727000
11:36:11.077 -> Elektra - meterstand verbruik HOOG tarief (Wh): 4000
11:36:13.071 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:13.071 -> Elektra - actueel verbruik (W): 8390
11:36:15.058 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:15.058 -> Elektra - meterstand verbruik HOOG tarief (Wh): 4000
11:36:15.058 -> Elektra - actueel verbruik (W): 8420
11:36:17.045 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:17.080 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:19.078 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:21.049 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:21.086 -> Elektra - actueel verbruik (W): 4000
11:36:23.055 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:23.055 -> Elektra - meterstand verbruik HOOG tarief (Wh): 4000
11:36:25.068 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:25.068 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:27.085 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:27.085 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:29.066 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:29.066 -> Elektra - meterstand verbruik HOOG tarief (Wh): 440000
11:36:29.102 -> Elektra - actueel verbruik (W): 8450
11:36:31.062 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:31.095 -> Elektra - meterstand verbruik HOOG tarief (Wh): 4000
11:36:31.095 -> Elektra - actueel verbruik (W): 8460
11:36:33.084 -> Elektra - meterstand verbruik LAAG tarief (Wh): 13527000
11:36:33.084 -> Elektra - actueel verbruik (W): 8390


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

Re: Alleen 3 regels uit p1 poort

Berichtdoor zuid » 10 Dec 2019, 18:02

Zou het kunnen zijn dat de MEGA in de beschikbare tijd de sscanf() niet goed kan uitvoeren.
Wellicht gaan er daardoor regels verloren.
Bij de test versie werd alles in een keer gelezen zonder de scan functie.
Goede nieuws is dat een ESP32 sneller is :)
m.v.g Nico

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 11 Dec 2019, 11:10

zuid schreef:Zou het kunnen zijn dat de MEGA in de beschikbare tijd de sscanf() niet goed kan uitvoeren.
Wellicht gaan er daardoor regels verloren.
Bij de test versie werd alles in een keer gelezen zonder de scan functie.
Goede nieuws is dat een ESP32 sneller is :)
m.v.g Nico


Ik had dit register even toegevoegd in het onderwerp omdat ik dit in een van eerste posts aangegeven had dit te krijgen, dat was toen op een Uno en nu dus ook hetzelfde op een mega.

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor Koepel » 11 Dec 2019, 15:06

DeDraak schreef:De Recieve pin heb ik dan op 48

Wat heb je met pin 48 ? Komt die zomaar uit de lucht vallen ?

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

Re: Alleen 3 regels uit p1 poort

Berichtdoor DeDraak » 11 Dec 2019, 15:09

Koepel schreef:
DeDraak schreef:De Recieve pin heb ik dan op 48

Wat heb je met pin 48 ? Komt die zomaar uit de lucht vallen ?


Nee die staat in die sketch aangegeven..

Code: Alles selecteren
#include <AltSoftSerial.h>
// AltSoftSerial always uses these pins:
//
// Board          Transmit  Receive   PWM Unusable
// -----          --------  -------   ------------
// Teensy 2.0         9        10       (none)
// Teensy++ 2.0      25         4       26, 27
// Arduino Uno        9         8         10
// Arduino Mega      46        48       44, 45
// Wiring-S           5         6          4
// Sanguino          13        14         12

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: awotubi en 29 gasten