Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Lesing av AMS data (AMS/HAN -> IoT)


Anbefalte innlegg

51 minutes ago, xibriz said:

Nå fikk jeg noe data ut... aner ikke hvorfor.. har koblet dette opp 100 ganger nå :P Men det ser ikke bra ut... pakkene er ikke alltid like lange (noen få bytes forskjell), å starter alltid på 3F og slutter på 7E.

HAN 20171019 xibriz.txt

Mye positivt her!

FTDI er ikke ødelagt. Dataene kommer i jevne tidsintervaller på 10s, det stemmer godt med det som kamstrup selv sier i sin dokumentasjon (Aidon og Kaifa har 2s pakker i tillegg)

 

Men, her er fremdeles noe som ikke stemmer. Jeg klarer ikke helt å lese noe ut av dataene. På en slik side som dette skulle du kunne fått ut noe deler av en tekst: http://www.rapidtables.com/convert/number/hex-to-ascii.htm

 

Jeg tror du er veldig nærme, men kikk litt på de siste sidene i PDF fra Kamstrup for en "fasit": https://github.com/roarfred/AmsToMqttBridge/blob/master/Documentation/Kamstrup HAN-NVE interface description_rev_3_0.pdf

 

Tipper det er to muligheter for feil her:

1) Nivåene er feil, dvs. de blir ikke rett tolket som høy (3.3V) og lav (0V)

2) Kamstrup opererer med noe annet enn 2400baud 8E1 (De skriver tydelig 2400 baud, men det kan være noe annet enn 8E1 som er fasit) - jeg ville eksperimentert litt med settingene her

Lenke til kommentar
Del på andre sider

Merk at C# koden ikke gjør noen bedre inndeling enn at den venter på en 7E kode. Får den det så skriver den ut alt den har fått så langt. Det kan gi noen tilfeller av at pakker blir delt opp feil, dersom selve pakken inneholder en 7E kode. Litt merkelig at det hver gang her ser ut til å treffe med en 7E etter hvert 10. sekund...

Lenke til kommentar
Del på andre sider

Just now, xibriz said:

På multimeteret ligger spenningen på 3.26 når den er høy, men det er vel ikke så nøyaktig?

Det er godt innenfor. alt fra 3 til 4V vil funke. Prøv å endre 

SerialPort vPort = new SerialPort("COM3", 2400, Parity.Even, 8, StopBits.One);

til

SerialPort vPort = new SerialPort("COM3", 2400, Parity.None, 8, StopBits.One);

Lenke til kommentar
Del på andre sider

11 minutter siden, roarfred skrev:

Det er godt innenfor. alt fra 3 til 4V vil funke. Prøv å endre 

SerialPort vPort = new SerialPort("COM3", 2400, Parity.Even, 8, StopBits.One);

til

SerialPort vPort = new SerialPort("COM3", 2400, Parity.None, 8, StopBits.One);

 

Jeg tror det spøker i garasjen her.

 

Jeg hadde egentlig koblet ned alt å gått inn. Nå gikk jeg ut igjen å koblet opp alt (satt i ethernet-kabelen og slo på 3.3v) så får jeg kun konstant 3.3v... den dropper ikke.

 

Måler jeg direkte på ethernet-kabelen så dropper den som normalt.

Lenke til kommentar
Del på andre sider

12 minutes ago, xibriz said:

 

Jeg tror det spøker i garasjen her.

 

Jeg hadde egentlig koblet ned alt å gått inn. Nå gikk jeg ut igjen å koblet opp alt (satt i ethernet-kabelen og slo på 3.3v) så får jeg kun konstant 3.3v... den dropper ikke.

 

Måler jeg direkte på ethernet-kabelen så dropper den som normalt.

Høres ut som en sak for åndenes makt :P

Lenke til kommentar
Del på andre sider

Akkurat nå, roarfred skrev:

Høres ut som en sak for åndenes makt :P

 

Hehe ja

 

Det er noe rart med kondensatoren min. Den holdt bare rundt 3v og klarte ikke å ladde seg noe mere.

Laddet den opp manuelt på en 18v strømforsyning jeg har.. da var alt tilbake til normalt.

Lenke til kommentar
Del på andre sider

Just now, xibriz said:

 

Hehe ja

 

Det er noe rart med kondensatoren min. Den holdt bare rundt 3v og klarte ikke å ladde seg noe mere.

Laddet den opp manuelt på en 18v strømforsyning jeg har.. da var alt tilbake til normalt.

hm, hvor stor er den?

Lenke til kommentar
Del på andre sider

29 minutter siden, roarfred skrev:

Det er godt innenfor. alt fra 3 til 4V vil funke. Prøv å endre 

SerialPort vPort = new SerialPort("COM3", 2400, Parity.Even, 8, StopBits.One);

til

SerialPort vPort = new SerialPort("COM3", 2400, Parity.None, 8, StopBits.One);

 

Nå starer pakkene med 7E :) Gi det noen minutter så får du filen.

Lenke til kommentar
Del på andre sider

Der traff du nok blink ja, en veldig kjapp gjennomgang gir meg dette (noe ufullstendige resultatet):

(Men: Hva endret du som gjorde at det plutselig virket?)


[2017-10-19 22.18.22.587 - Received 229 (0xE5) bytes]
7E - Start
A0 E3 - 227 bytes kommer i pakken
2B 21 13 98 86 E6 E7 00 0F 00 00 00 00 
09 0C 07 E1 0A 13 04 15 12 14 FF 80 00 00 - Tidspunkt, 2017-10-19 04 (ukedag, torsdag) kl. 21:18:20
02 19 
  0A 0E - 14 bytes tekst kommer
  4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 - Tekst: Kamstrup_V0001    
  09 06 01 01 00 00 05 FF - OBIS: 1.1.0.0.5.255
    0A - tekst kommer
    10 - 16 bytes
    35 37 30 36 35 36 37 32 37 34 33 38 39 37 30 32 - 5706567274389702 (serienummer på måleren din?)
  09 06 01 01 60 01 01 FF - OBIS: 1.1.96.1.1.255
    0A - tekst kommer
    12 - 18 bytes
    36 38 34 31 31 32 31 42 4E 32 34 33 31 30 31 30 34 30 - 6841121BN243101040 (serienummer på måleren din?)
  09 06 01 01 01 07 00 FF 
    06 00 00 0C 3E - Tallverdi: 3134
  09 06 01 01 02 07 00 FF 
    06 00 00 00 00 - Tallverdi: 0
  09 06 01 01 03 07 00 FF 
    06 00 00 00 00 - Tallverdi: 0
  09 06 01 01 04 07 00 FF 
    06 00 00 02 07 - Tallverdi: 519
  09 06 01 01 1F 07 00 FF 
    06 00 00 04 81 - Tallverdi: 1153
  09 06 01 01 33 07 00 FF 
    06 00 00 01 3B - osv.....
  09 06 01 01 47 07 00 FF 
    06 00 00 04 7A 
  09 06 01 01 20 07 00 FF 
    12 00 E8 
  09 06 01 01 34 07 00 FF 
    12 00 E3 
  09 06 01 01 48 07 00 FF 
    12 00 E9 
46 5F - checksum (se mitt arduino prosjekt)
7E - slutt
 

 

06 i starten betyr nok noe om at det er 4 bytes for å representere verdien

12 ser ut til å si at det er 2 bytes 

 

Lenke til kommentar
Del på andre sider

1 hour ago, xibriz said:

 

Endret bare til Parity.None

 

 

Her er fra i natt.. burde være noen timesavledninger der.

HAN 20171019 xibriz4.txt

Damn, det var jo litt sykt at ikke de kjører med samme settinger på serieporten...

Det kommer jevnlig time-pakker ca. 7 sekunder over hel time. Disse er 303 bytes istedet for 229

 

Får jeg lov til å bruke denne filen på github prosjektet mitt? Så kan jeg dokumentere litt bedre der 

Lenke til kommentar
Del på andre sider

Akkurat nå, roarfred skrev:

Damn, det var jo litt sykt at ikke de kjører med samme settinger på serieporten...

Det kommer jevnlig time-pakker ca. 7 sekunder over hel time. Disse er 303 bytes istedet for 229

 

Får jeg lov til å bruke denne filen på github prosjektet mitt? Så kan jeg dokumentere litt bedre der 

 

Versågod :) Jeg skal basere meg på din kildekode når jeg går over fra FTDI til ESP ;) 

Lenke til kommentar
Del på andre sider

1 minute ago, xibriz said:

 

Versågod :) Jeg skal basere meg på din kildekode når jeg går over fra FTDI til ESP ;) 

Flott!

 

Stemmer det at du også måtte fjerne R8 for at det skulle virke? Kan du evt. prøve med denne igjen, for å bekrefte?

 

(Jeg prøvde å regne på det, og klarte ikke se at det ikke skulle fungere, men samtidig er det ikke kritisk med denne hysteresen)

Lenke til kommentar
Del på andre sider

9 timer siden, roarfred skrev:

Der traff du nok blink ja, en veldig kjapp gjennomgang gir meg dette (noe ufullstendige resultatet):

(Men: Hva endret du som gjorde at det plutselig virket?)


[2017-10-19 22.18.22.587 - Received 229 (0xE5) bytes]
7E - Start
A0 E3 - 227 bytes kommer i pakken
2B 21 13 98 86 E6 E7 00 0F 00 00 00 00 
09 0C 07 E1 0A 13 04 15 12 14 FF 80 00 00 - Tidspunkt, 2017-10-19 04 (ukedag, torsdag) kl. 21:18:20
02 19 
  0A 0E - 14 bytes tekst kommer
  4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 - Tekst: Kamstrup_V0001    
  09 06 01 01 00 00 05 FF - OBIS: 1.1.0.0.5.255
    0A - tekst kommer
    10 - 16 bytes
    35 37 30 36 35 36 37 32 37 34 33 38 39 37 30 32 - 5706567274389702 Serienummer
  09 06 01 01 60 01 01 FF - OBIS: 1.1.96.1.1.255
    0A - tekst kommer
    12 - 18 bytes
    36 38 34 31 31 32 31 42 4E 32 34 33 31 30 31 30 34 30 - 6841121BN243101040 Merket som "Three-phase meter"
  09 06 01 01 01 07 00 FF 
    06 00 00 0C 3E - Tallverdi: 3134
  09 06 01 01 02 07 00 FF 
    06 00 00 00 00 - Tallverdi: 0
  09 06 01 01 03 07 00 FF 
    06 00 00 00 00 - Tallverdi: 0
  09 06 01 01 04 07 00 FF 
    06 00 00 02 07 - Tallverdi: 519
  09 06 01 01 1F 07 00 FF 
    06 00 00 04 81 - Tallverdi: 1153
  09 06 01 01 33 07 00 FF 
    06 00 00 01 3B - osv.....
  09 06 01 01 47 07 00 FF 
    06 00 00 04 7A 
  09 06 01 01 20 07 00 FF 
    12 00 E8 
  09 06 01 01 34 07 00 FF 
    12 00 E3 
  09 06 01 01 48 07 00 FF 
    12 00 E9 
46 5F - checksum (se mitt arduino prosjekt)
7E - slutt
 

 

06 i starten betyr nok noe om at det er 4 bytes for å representere verdien

12 ser ut til å si at det er 2 bytes 

 

 

Lenke til kommentar
Del på andre sider

1 minutt siden, roarfred skrev:

Flott!

 

Stemmer det at du også måtte fjerne R8 for at det skulle virke? Kan du evt. prøve med denne igjen, for å bekrefte?

 

(Jeg prøvde å regne på det, og klarte ikke se at det ikke skulle fungere, men samtidig er det ikke kritisk med denne hysteresen)

 

Ja, jeg har prøvd med og uten R8. 

 

Når jeg setter den på så får jeg ut 0v, tar jeg den av får jeg 3.26v som dropper til 0v

  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.