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

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


Anbefalte innlegg

Eg opplevde at den kunne vere litt grinete å sette opp. Det er fleire fallgruver her. 

 

Update URL: dette feltet MÅ starte med http:// - å oppgje kun IP-adresse går ikkje.

 

Wifi: enheten støttar kun 2.4Ghz wifi, dersom du har dual-band SSID så kan du få problemer. Eg har eit eget SSID for tekniske duppedittar som berre er på 2.4G, det fungerar bra til slike tilfeller som dette.

 

Den lagre funksjonen kan vere litt diffus, eg har prøvd nokre gongar sidan eg ikkje var fornøgd med innstillingane og endra dei litt. Det som var var at når eg lagra og ba den ta i bruk nye innstilliingar så lyste den berre mørk/blank/rød når eg plugga den i strømmålaren og måtte prøve igjen. Siste gongen hadde eg den med meg ut til strømmålaren med en powerbank og sette den opp og kobla den til strømmålaren før eg kobla frå USB adapteret. Då var den rett på nett med en gang.

 

Wifi-passordet er med store bokstavar inkl. bindestrek. Eg har måtta prøve fleire gongar før det gjekk.

Lenke til kommentar
Del på andre sider

  • 3 uker senere...
Hårek skrev (På 29.1.2019 den 11.08):
boolean frameOk = false;
int ffb1 = list1.get(0);                                // Read the two Frame Format bytes
int ffb2 = list1.get(1);
if ((ffb1 & 0xf0) == HDLC_FRAME_FORMAT3) {              // Check that we have the Frame Format field, then this is start flag
    int frameLength = ((ffb1 & 0x03) << 8) + ffb2;
    int fcsb1 = list1.get(frameLength - 2);             // Get 2-byte checksum at tail
    int fcsb2 = list1.get(frameLength - 1);
    int fcs = (fcsb1 << 8) + fcsb2;
    frameOk = checkFcs(list1, frameLength - 2, 0, fcs); // Check FCS.
    if (!frameOk) {
        System.out.println("HDLC: CRC fail");
    }
}

private boolean checkFcs(List<Integer> messageData, int length, int offset, int fcsValue) {
    int chksum = GXFCS16.countFCS16(messageData, offset, length);
    return chksum == fcsValue;
}

Her er min kode for å sjekke FCS. 

GXFCS16 på Github: https://github.com/Gurux/gurux.dlms.java/blob/master/development/src/main/java/gurux/dlms/GXFCS16.java

 

 

Interessant bibliotek, men det var utrolig snålt arrangement på det så endte opp med å bruke kortere tid på å lage min egen parser. Skjønner at dette biblioteket gjør MYE mer da :)

Endret av emmz0r
Lenke til kommentar
Del på andre sider

  • 1 måned senere...
tronde skrev (På 30.11.2021 den 15.22):

 

 

Så dukker noen spørsmål opp fra en som ikke har så alt for mye peil på dette.

 

/data.json gir ut noe som jeg skjønner er et standard format som er kurant å lese med en annen enhet, f.eks en ESP som kan kople seg til adapteret via WiFi og drive et lite display som kan stå plassert der det måtte passe uten å blande inn masse ekstra?

 

Det går ikke så alt for fort, men nå har jeg i alle fall klart å få til noe for moro skyld.

 

Jeg fant bare et bitte lite grafikkdisplay (Wemos shield) satt på en Wemos D1 mini klon, men det funker i alle fall. Dette leser /data.json over http.

 

Det jeg ikke klarer, er å plukke ut de nestede verdiene for "energy accounting" i json.

https://github.com/gskjold/AmsToMqttBridge/wiki/Message-formats

 

Jeg bruker arduinojson-biblioteket og har prøvd å vri hjernen til å få til filtrering, men no go.

https://arduinojson.org/v6/example/filter/

 

 

Hvis det er noen vennlige sjeler som vet mer enn meg, er jeg takknemlig for litt input. Koden som funker ligger ved nederst.

 

Det er vel ikke gitt at det å lese data med json til displaye er den mest fornuftige måten å gjøre det på, men det kunne vært moro å få til litt mer.

 

 

 

 

image.jpeg.07d6bb7a067bd7b593447d419af0228f.jpeg

 

 

 

 

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>     // ver 6.20.0
#include <U8x8lib.h>

/* Constructor */
 U8X8_SSD1306_64X48_ER_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);   
/* u8x8.begin() is required and will sent the setup/init sequence to the display */


 
const char* ssid = "SSID";
const char* password = "PASSWORD";


 
void setup () {
 
  Serial.begin(115200);

  u8x8.begin();
  u8x8.setFlipMode(0);  // 1 or 0
  
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
 
    delay(1000);
    Serial.print("Connecting..");
 
  }
 
}
 
void loop() {
 
  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
 
    HTTPClient http;  //Declare an object of class HTTPClient
    WiFiClient client;  // or WiFiClientSecure for HTTPS



// Send request
http.useHTTP10(true);
http.begin(client, "http://192.168.1.40/data.json");
http.GET();

// Parse response

DynamicJsonDocument doc(2048);
deserializeJson(doc, http.getStream());



// Read values
Serial.print(doc["i"].as<float>() / 1000 ,3);
Serial.println (" kW  ");

  u8x8.setFont(u8x8_font_8x13_1x2_r );
  u8x8.setCursor(0, 0);
  u8x8.print(doc["i"].as<float>() / 1000 ,3);
  u8x8.setCursor(6, 0);
  u8x8.print("kW");



Serial.print(doc["u1"].as<float>());
Serial.println (" V (L1-L2)  ");
  
  u8x8.setFont(u8x8_font_5x7_r);
  u8x8.setCursor(0, 2);
  u8x8.print(doc["u1"].as<float>() ,1);
  u8x8.setCursor(6, 2);
  u8x8.print("V");


Serial.print(doc["i1"].as<float>());
Serial.println (" A (L1)  ");
  u8x8.setCursor(0, 3);
  u8x8.print(doc["i1"].as<float>() ,1);
  u8x8.setCursor(6, 3);
  u8x8.print("A");



Serial.print(doc["p"].as<float>());
Serial.println (" kr");

  u8x8.setCursor(0, 4);
  u8x8.print(doc["p"].as<float>() ,2);
  u8x8.setCursor(6, 4);
  u8x8.print("Kr");


Serial.println ();
Serial.println ();



// Disconnect
http.end();
 
  }
 
  delay(3000);    //Send a request every 3 seconds
}

 

  • Like 2
Lenke til kommentar
Del på andre sider

tronde skrev (9 timer siden):

Jeg bruker arduinojson-biblioteket og har prøvd å vri hjernen til å få til filtrering

Trenger du det da?  Filtrering vil jo ikke endre strukturen på noen måte.  Får du ikke ut det du vil med noe ala

 

u8x8.print(doc["ea"]["h"]["u"].as<float>() ,1);

eller misforstår jeg hvor du vil?  Evt med litt mer feilsjekk hvis vi du kræsje på forutsigbare måter selvsagt...

  • Like 1
  • Thanks 1
Lenke til kommentar
Del på andre sider

Bjørn Mork skrev (11 timer siden):

Trenger du det da?  Filtrering vil jo ikke endre strukturen på noen måte.  Får du ikke ut det du vil med noe ala

 

u8x8.print(doc["ea"]["h"]["u"].as<float>() ,1);

eller misforstår jeg hvor du vil?  Evt med litt mer feilsjekk hvis vi du kræsje på forutsigbare måter selvsagt...

Takk!

Det fungerte jo helt fint det :-)

 

Det er vel slik at man gjør det mer komplisert enn nødvendig når man roter med noe man egentlig ikke skjønner så mye av... Da har jeg blitt litt klokere i alle fall.

Endret av tronde
  • Like 1
Lenke til kommentar
Del på andre sider

  • 7 måneder senere...
On 02/12/2019 at 20:19, Marius-H said:

Faktisk husket jeg litt feil. 

Legger ved screenshot av eposten. 

Screenshot_20191202-201835.png

Hei @Marius-H!
Klarer du å finne epost-adressa denne kom fra?
Jeg er i dialog med "feil person" på Kamstrup for å få mer informasjon om hva denne strømforsyningen tolererer av transiente strømpulser, og han jeg eposter med hevder at den kun tåler 6 mA - som jo er opplagt feil. Han har bekreftet at kollega Steen Pultz Holm nok har mer informasjon, men svarer ikke når jeg spør om å bli henvist eller få kontaktinformasjon.
Send gjerne på DM om du finner den!

Endret av ArnieO
Lenke til kommentar
Del på andre sider

  • 3 uker senere...

Usikker på om dette blir riktig sted å spørre først, men er vel mer interessert i felles praktiske erfaringer enn "kundesupport".

 

Tok nettopp i bruk en "Pow-U+" (i følge "Device information") som jeg kjøpte tidligere i sommer.  Oppgraderte den til v2.2.21 først.  Har ennå ikke koblet på MQTT ettersom alle nettverksløsninger ikke er på plass ennå i nytt hus.

 

Har lagt merke til at den rebooter ganske "ofte" (kanskje en gang eller to i døgnet)  med reason "Vbat power on reset (1/0)".  Jeg antar dette er et symptom på at den tidvis slipper opp for elektroner.  Det er kanskje forventet tatt i betraktning det relativt stramme budsjettet?

 

Måler er Aidon 6525. Jeg har slått av "Auto reboot on connection problem", og har også midleridig disablet "Enable price fetch from remote server" for å se om noe av dette påvirker reboot-frekvensen.  Men ser ingen åpenbar endring.

 

Er jo ikke noe stort problem, men jeg sammenligner med stabiliteten på den eldre (esp8266-baserte) Pow-K jeg har på hytta med samme software-versjon.  Den har nå oppetid på 47 dager og booter egentlig aldri uten at det er forventet.  Derfor lurer jeg på om jeg bør justere forventningene med Pow-U.

 

For ordens skyld: Jeg er strålende fornøyd med begge disse hardware-duppedittene og softwaren.  Det er en genial løsning som passer meg og mitt behov mitt i blinken.

Lenke til kommentar
Del på andre sider

Hei @Bjørn Mork,

 

(Jeg står bak Pow-U, sammen med @gskjold som tar hånd om firmwaren.)

 

Først: Takk for gode ord! 🙂

 

Og takk også for tilbakemeldingen, det er viktig at vi får rapporter om problemer slik at vi kan få løst de.

Vi har fått noen rapporter over siste uker om akkurat dette, så du er ikke den første. Utfordringen er at vi ikke ser dette over alt, @gskjold ser ingen ustabilitet på sin Aidon-installasjon.

 

I og med at det ikke har vært noen endring på hardware siden i vinter, og meldinger om dette er ganske ferske, retter mistanken seg mot "ett eller annet" i firmware v2.2.21 som kom 9. juli. Utfordringen er å finne ut hva dette kan være, når vi ikke klarer å reprodusere det.

 

Kunne du (og eventuelle andre som opplever det samme) rullet tilbake til en tidligere firmware versjon, for å se om det hjelper? I så fall vil vi komme et lite skritt nærmere å finne årsaken.

 

(Og så vil vi aller helst ha tilbakemeldinger på prosjektets Github-side, der er direktelink i Github-logoen helt oppe til høyre.)

Lenke til kommentar
Del på andre sider

2 hours ago, ArnieO said:

Kunne du (og eventuelle andre som opplever det samme) rullet tilbake til en tidligere firmware versjon, for å se om det hjelper? I så fall vil vi komme et lite skritt nærmere å finne årsaken.

Absolutt.  Noe forslag til eldre versjon som bør prøves?  Vil det være nødvendig med en factory reset før tilbakerulling? Det er i så fall ikke noe problem for min del.  Er fremdeles i innkjøringsfase, ref manglende MQTT.

Lenke til kommentar
Del på andre sider

I det siste har min Pow-U koblet seg av og på MQTT-serveren en god del, og i dag tenkte jeg at jeg skulle sjekke web-interfacet på den, men det får jeg ikke lastet. Det laster noen ganger delvis, men ikke slik det skal. Jeg testet både reset og å plugge den ut, men den vil ikke. Den rapporterer data over MQTT, men den kobler seg av og på forholdsvis hyppig. Den rebooter ikke, for jeg loggfører oppetiden. Merkelige greier, den har vært stabil i månedsvis før den nå har begynt å kødde (dette er den eldre versjonen, koblet til en Kaifa-måler). Firmware er 2.2.16, mener jeg å huske.

Lenke til kommentar
Del på andre sider

3 hours ago, Bjørn Mork said:

Absolutt.  Noe forslag til eldre versjon som bør prøves?  Vil det være nødvendig med en factory reset før tilbakerulling? Det er i så fall ikke noe problem for min del.  Er fremdeles i innkjøringsfase, ref manglende MQTT.

Vi har ikke hørt om disse rebootene før aller siste uker, men gå gjerne tilbake til for eksempel 2.2.17 - så er det større sjanse for å "fange" det dersom det har med firmwaren å gjøre.

2 hours ago, mroek said:

I det siste har min Pow-U koblet seg av og på MQTT-serveren en god del, og i dag tenkte jeg at jeg skulle sjekke web-interfacet på den, men det får jeg ikke lastet. Det laster noen ganger delvis, men ikke slik det skal. Jeg testet både reset og å plugge den ut, men den vil ikke. Den rapporterer data over MQTT, men den kobler seg av og på forholdsvis hyppig. Den rebooter ikke, for jeg loggfører oppetiden. Merkelige greier, den har vært stabil i månedsvis før den nå har begynt å kødde (dette er den eldre versjonen, koblet til en Kaifa-måler). Firmware er 2.2.16, mener jeg å huske.

Høres kanskje ut som om det er noe i nettet ditt som er utfordringen?

  • Forsøk å reboote wifien din, og se om det hjelper.
  • Har du forsøkt fra flere enheter (PC, mobil, brett...) ?
  • Hva får du om du pinger den?
Lenke til kommentar
Del på andre sider

26 minutes ago, ArnieO said:

Vi har ikke hørt om disse rebootene før aller siste uker, men gå gjerne tilbake til for eksempel 2.2.17 - så er det større sjanse for å "fange" det dersom det har med firmwaren å gjøre.

Høres kanskje ut som om det er noe i nettet ditt som er utfordringen?

  • Forsøk å reboote wifien din, og se om det hjelper.
  • Har du forsøkt fra flere enheter (PC, mobil, brett...) ?
  • Hva får du om du pinger den?

Jeg testet akkurat en tvangsdisconnect på den fra routeren (den er på sin egen SSID/wlan), samt en reset av Pow-U, og nå kom den tilsynelatende i gang på normalt vis, og webinterfacet er tilgjengelig igjen.

 

Routeren min blir i praksis aldri rebootet (strømbrudd er i grunnen unntaket), og problemer i nettet er som oftest andre steder. Merkelige greier. MQTT-serveren kjører på en Homey, og er normalt sett også stabil.

Lenke til kommentar
Del på andre sider

1 hour ago, Bjørn Mork said:

Ser ikke ut som firmware har noe å si. Rebootet i natt også med v2.2.17:
 

 

OK - men takk for forsøket!

Kunne du sendt oss en kjapp epost med link hit slik at jeg får samlet på ett sted de som opplever dette med Pow-U? [email protected]

Du er vel nummer tre nå som melder inn dette problemet i løpet av et par uker. Så noe rart er det her et sted...

 

@gskjold kjører nå spenningslogging av Vcc på sin enhet (på en Aidon); foreløpig ser alt helt fint ut (men den rebooter ikke).

 

15 hours ago, mroek said:

Jeg testet akkurat en tvangsdisconnect på den fra routeren (den er på sin egen SSID/wlan), samt en reset av Pow-U, og nå kom den tilsynelatende i gang på normalt vis, og webinterfacet er tilgjengelig igjen.

 

Routeren min blir i praksis aldri rebootet (strømbrudd er i grunnen unntaket), og problemer i nettet er som oftest andre steder. Merkelige greier. MQTT-serveren kjører på en Homey, og er normalt sett også stabil.

OK, da antar vi inntil videre at dette er en tilfeldig "snag" et sted, kanskje i Wifien din

Ta kontakt på epost ([email protected]) dersom det dukker opp nye problemer.

Endret av ArnieO
Lenke til kommentar
Del på andre sider

7 minutes ago, ArnieO said:

OK - men takk for forsøket!

Kunne du sendt oss en kjapp epost med link hit slik at jeg får samlet på ett sted de som opplever dette med Pow-U? [email protected]

Du er vel nummer tre nå som melder inn dette problemet i løpet av et par uker. Så noe rart er det her et sted...

 

 

Sånn rent teknisk sett kan kanskje problemene trigges av endringer i måleren også? Men det er muligens litt tynt med data enda? Kjører selskapene i praksis OTA oppgradering av målerne? Har alle med problemer Aidon? Samme netteier?

 

Lykke til med debugging. Verste sorten bug: Lavfrekvent, andre- eller tredjeperson, ikke reproduserbar på kommando.

 

 

Lenke til kommentar
Del på andre sider

1 hour ago, dagb said:

Sånn rent teknisk sett kan kanskje problemene trigges av endringer i måleren også? Men det er muligens litt tynt med data enda? Kjører selskapene i praksis OTA oppgradering av målerne? Har alle med problemer Aidon? Samme netteier?

Det er en tanke vi også har vært inne på, ja - men alt for tidlig til å se noe mønster. Ulike netteiere. Alle de smarte strømmålerene har OTA via det krypterte trådløse nettet de bruker for avlesing.
Det kan i prinsippet være noe der som skjer, men vanskelig å se for seg at det slår inn på denne måten, da må i så fall M-bus spenningen falle veldig langt mens "noe skjer" på måleren.

Kun Aidon ja - men tynt datagrunnlag så langt. Og for Kamstrup har vi en helt annen løsning som ikke benytter M-bus signalet.

 

Quote

Lykke til med debugging. Verste sorten bug: Lavfrekvent, andre- eller tredjeperson, ikke reproduserbar på kommando.

Exactly!  (og takk...)

Lenke til kommentar
Del på andre sider

3 hours ago, emmz0r said:

Har dere forresten gjennomført EMC-testing, LVD etc for å få CE-merking da dette produktet selges på markedet?

Pga wifi-modulen er det nok mest sannsynlig "Forskrift om EØS-krav til radioutstyr" som gjelder her.

 

Nå vil vel testing uansett være en smule overkill, og åpenbart altfor dyrt for et slikt nisjeprodukt.

 

Men det er sikkert lurt å produsere en samsvarserklæring og ta den inn i dokumentasjonen.  Ellers er jo dette et produkt som er vesentlig bedre dokumentert enn det aller meste ellers på markedet. Fyll på med samsvarserklæring, ta med en liste over de relevante standardene (både IEC og ETSI vil jeg tro), og samle sammen litt av designarbeidet som er gjort med beregninger osv, så har du en dokumentasjonspakke som gir rimelig tillit.

 

3 hours ago, emmz0r said:

Tenker bare på hvis noe går galt hvis man har dette tilkoblet elverkets utstyr.

Nå er jo HAN-porten laget for dette.  Omtrent som at stikkontaktene er laget for å koble mobilladeren din til "elverkets utstyr".  Man kan aldri utelukke at noe går galt. Men risikoen er nok vesentlig større med mobilladeren enn med noe som helst som du klarer å plugge inn i en HAN-port.

 

Se gjerne https://www.nek.no/info-ams-han-utviklere/

Lenke til kommentar
Del på andre sider

8 minutes ago, Bjørn Mork said:

Pga wifi-modulen er det nok mest sannsynlig "Forskrift om EØS-krav til radioutstyr" som gjelder her.

 

RED også ja.

 

8 minutes ago, Bjørn Mork said:

Nå vil vel testing uansett være en smule overkill, og åpenbart altfor dyrt for et slikt nisjeprodukt.

 

Men det er sikkert lurt å produsere en samsvarserklæring og ta den inn i dokumentasjonen.  Ellers er jo dette et produkt som er vesentlig bedre dokumentert enn det aller meste ellers på markedet. Fyll på med samsvarserklæring, ta med en liste over de relevante standardene (både IEC og ETSI vil jeg tro), og samle sammen litt av designarbeidet som er gjort med beregninger osv, så har du en dokumentasjonspakke som gir rimelig tillit.

 

 

Jeg tror ikke det bare er lurt, men påkrevd. Alt utstyr må være CE-godkjent. Vet ikke om det hjelper å si at det er nisje. Det eneste er at det er få folk som vil gidde å ta bryet og spørre om en testrapport som bekrefter at det samsvarer med disse direktivene

 

8 minutes ago, Bjørn Mork said:

Nå er jo HAN-porten laget for dette.  Omtrent som at stikkontaktene er laget for å koble mobilladeren din til "elverkets utstyr".  Man kan aldri utelukke at noe går galt. Men risikoen er nok vesentlig større med mobilladeren enn med noe som helst som du klarer å plugge inn i en HAN-port.

 

Se gjerne https://www.nek.no/info-ams-han-utviklere/

 

Det kan du si, men hvis utstyret skulle trekke for mye strøm, eller på en måte lage støy som skader måleren så blir man svar skyldig. Det er derfor det er conducted emissions-testing osv for å verifisere dette. Man må kunne dokumentere at dette er i samsvar med direktivene. Jeg har bare studert dette i lys av Easee-bråket og det er lurt å være føre var.

 

Endret av emmz0r
Lenke til kommentar
Del på andre sider

@emmz0r har helt rett, dette må CE-merkes - og den prosessen er i gang.

 

De neste produksjonsbatchene, som kommer i salg i løpet av høsten, forventer vi vil være CE-merket (under forutsetning av at vi passerer EMC-testen). Vi har klar sampler av de neste versjonene med noen forbedringer på EMC - til bruk i testingen.

 

Det er RED (Radio Equipment Directive 2014/53/EU) som er styrende her, som så refererer tester i et par andre direktiver (LVD, EMCD).

 

Vi er allerede compliant til RoHS via valg av komponenter og materialer (blyfri lodding).

 

 

Lenke til kommentar
Del på andre sider

9 minutes ago, emmz0r said:

Ønsker dere lykke til med testingen og håper dette går glatt igjennom!

😊Takk!
Vi gjorde en designgjennomgang med ekstern EMC-kompetanse før vi gjorde siste oppdatering, og noen potensielle EMC-svakheter ble derved funnet og fikset. Så vi har stor tro på at det skal gå greit!

Endret av ArnieO
  • 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.