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

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


Anbefalte innlegg

1 hour ago, xibriz said:

@roarfred glemte å si at du må oppdatere koblingskjemaet eller beskrive det på GitHub at man må jorde pinne 5 og 6 på LM358, selv om det ikke hadde noen effekt hos meg.

Takk! Fikset det på en kommentar her:

https://github.com/roarfred/AmsToMqttBridge/blob/master/Electrical/README.md

 

  • Like 1
Lenke til kommentar
Del på andre sider

I går kveld skulle jeg finpusse eksempel-koden før jeg pusher den opp til GitHub, men hele kvelden gikk bort til å plages.

 

 

Med en gang jeg prøver å legge mer informasjon inn i JSON-objektet enn det jeg har tatt ut tidligere, så nekter den å publisere til MQTT. Koden kobler opp og alt ser fint ut, men den pusher aldri noe ut på MQTT.

 

Når jeg printer til Serial1 ser alt bra ut, jeg får ut gyldig JSON og hele JSON-strengen er rundt 180 karakterer. Er det noen triks i ludo her?

 

EDIT: Jeg skjønner at koden mener meldingen er for stor, men jeg mener at den ikke er det....? Og ikke i nærheten så stor som eksempelkoden til @roarfred

 

Endret av xibriz
Lenke til kommentar
Del på andre sider

22 minutter siden, xibriz skrev:

I går kveld skulle jeg finpusse eksempel-koden før jeg pusher den opp til GitHub, men hele kvelden gikk bort til å plages.

 

 

Med en gang jeg prøver å legge mer informasjon inn i JSON-objektet enn det jeg har tatt ut tidligere, så nekter den å publisere til MQTT. Koden kobler opp og alt ser fint ut, men den pusher aldri noe ut på MQTT.

 

Når jeg printer til Serial1 ser alt bra ut, jeg får ut gyldig JSON og hele JSON-strengen er rundt 180 karakterer. Er det noen triks i ludo her?

 

EDIT: Jeg skjønner at koden mener meldingen er for stor, men jeg mener at den ikke er det....? Og ikke i nærheten så stor som eksempelkoden til @roarfred

 

 

The answer is in the source code.... 

 

if (MQTT_MAX_PACKET_SIZE < 5 + 2+strlen(topic) + plength) {
    // Too long
    return false;
}

Altså (128 - 5 - 2 - lengden på topic) = JSON størrelse.

 

Jeg må skaffe meg større skjerm hjemme istedet for å sitte på en 14" laptop så jeg ser slike ting :P

Endret av xibriz
Lenke til kommentar
Del på andre sider

57 minutes ago, xibriz said:

 

The answer is in the source code.... 

 


if (MQTT_MAX_PACKET_SIZE < 5 + 2+strlen(topic) + plength) {
    // Too long
    return false;
}

Altså (128 - 5 - 2 - lengden på topic) = JSON størrelse.

 

Jeg må skaffe meg større skjerm hjemme istedet for å sitte på en 14" laptop så jeg ser slike ting :P

Du kan finne og øke størrelsen på denne packet size konatanten. Det er et vanlig triks ☺

Lenke til kommentar
Del på andre sider

15 minutter siden, roarfred skrev:

Du kan finne og øke størrelsen på denne packet size konatanten. Det er et vanlig triks 263a.png

 

Er det det du har gjort?

 

En ESP8266-12F som jeg bruker har jo massevis av minne i forhold til de første ESPene.

Endret av xibriz
Lenke til kommentar
Del på andre sider

18 minutes ago, xibriz said:

 

Er det det du har gjort?

 

En ESP8266-12F som jeg bruker har jo massevis av minne i forhold til de første ESPene.

Ja, rett i pubsubclient.h tror jeg... har gått så langt som til 512 eller 1024

Mange som vil ha en bedre måte å gjøre dette på:

https://github.com/knolleary/pubsubclient/issues/110

 

Lenke til kommentar
Del på andre sider

2 minutter siden, roarfred skrev:

Ja, rett i pubsubclient.h tror jeg... har gått så langt som til 512 eller 1024

Mange som vil ha en bedre måte å gjøre dette på:

https://github.com/knolleary/pubsubclient/issues/110

 

 

Ja jeg så det.. kanskje en av de 627-forkene har løst problemet :P 

 

Jeg antar du har brukt 1024 siden du gjør slik i koden din:

 

// Publish the json to the MQTT server
		char msg[1024];
		root.printTo(msg, 1024);
		client.publish("sensors/out/espdebugger", msg);

Jeg blir iallefall å gjøre det slik, da jeg synes det blir mer ryddig å lettere å oppdage feil:

// Publish the json to the MQTT server
		char msg[MQTT_MAX_PACKET_SIZE];
		root.printTo(msg, MQTT_MAX_PACKET_SIZE);
		client.publish("sensors/out/espdebugger", msg);

 

Lenke til kommentar
Del på andre sider

1 hour ago, xibriz said:

 

Ja jeg så det.. kanskje en av de 627-forkene har løst problemet :P 

 

Jeg antar du har brukt 1024 siden du gjør slik i koden din:

 


// Publish the json to the MQTT server
		char msg[1024];
		root.printTo(msg, 1024);
		client.publish("sensors/out/espdebugger", msg);

Jeg blir iallefall å gjøre det slik, da jeg synes det blir mer ryddig å lettere å oppdage feil:


// Publish the json to the MQTT server
		char msg[MQTT_MAX_PACKET_SIZE];
		root.printTo(msg, MQTT_MAX_PACKET_SIZE);
		client.publish("sensors/out/espdebugger", msg);

 

Lurt! Om du vil sikre deg litt bedre kan du også

1) initialisere msg med MQTT_MAX_PACKET_SIZE+1 // se her: https://github.com/bblanchon/ArduinoJson/issues/268

2) sjekk root.measureLength() for å finne ut om json vil overstige størrelse på buffer

(ser at printTo returnerer antall bytes som ble skrevet, men det ser ut som om denne ikke gjør noen sjekk på buffer størrelse før den setter i gang)

  • Like 1
Lenke til kommentar
Del på andre sider

Jeg har hørt rykter om at ingen spørsmål er for dumme, så jeg slenger meg ut på:

 

Er det mulig å kjøpe produktene på nett som brukes i denne bridgen? Finnes det en handleliste et sted?

 

Hvis man først klarer å oppfriske loddeegenskapene fra grunnkurs elektro på VGS, trenger man noe software for å få bridgen til å fungere?

 

Hilsen en som fikk måleren installert i dag og begynner å bli rastløs for å få ut informasjon fra den.

Lenke til kommentar
Del på andre sider

28 minutes ago, Bronson said:

Jeg har hørt rykter om at ingen spørsmål er for dumme, så jeg slenger meg ut på:

 

Er det mulig å kjøpe produktene på nett som brukes i denne bridgen? Finnes det en handleliste et sted?

 

Hvis man først klarer å oppfriske loddeegenskapene fra grunnkurs elektro på VGS, trenger man noe software for å få bridgen til å fungere?

 

Hilsen en som fikk måleren installert i dag og begynner å bli rastløs for å få ut informasjon fra den.

Hei! Ikke noe dumt spørsmål...

 

Du kan finne komplett liste, med unntak av ESP og kretskort nederst på denne siden: https://github.com/roarfred/AmsToMqttBridge/blob/master/Electrical/README.md

 

Eksempelkoden sender data formatert som json til en mqtt server, men er du litt kjent med arduino kan du sende dem hvor du vil. (All kildekode ligger i samme prosjekt på github)

 

Hvis du aldri har leflet med ESP8266 før, så er det en liten terskel å komme over. Da ville jeg evt anbefale å sjekke ut noen enklere eksempler, men de finnes i massevis på nett.

 

Jeg er gjerne behjelpelig hvis du trenger noe assistanse underveis!

  • Like 1
Lenke til kommentar
Del på andre sider

Pass på å ikke gå for ett typisk "dev kit" men en ren ESP8266. Dev-kittene har ikke RX-pinne tilgjengelig (som jeg brukte en hel kveld på å erfare).

 

Jeg planlegger å bruke denne i produksjon: https://www.ebay.com/itm/ESP8266-Serial-Port-Wireless-WIFI-Module-IO-Adapter-Plate-Expansion-ESP8266-12E/331545963375?epid=1057376451&hash=item4d31adeb6f:g:vj8AAOSwARZXmbLv

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

50 minutter siden, xibriz skrev:

Pass på å ikke gå for ett typisk "dev kit" men en ren ESP8266. Dev-kittene har ikke RX-pinne tilgjengelig (som jeg brukte en hel kveld på å erfare).

 

23 minutter siden, roarfred skrev:

Jeg har bruk dette kortet: https://www.xnsense.no/product-page/xnsense-proto-mx-2-7-6-esp8266

Og denne boksen: https://www.xnsense.no/product-page/medium-boks

(Egentlig fordi jeg var med xnsense og lage disse og hadde noen liggende. Mange gode alternativer)

 

Nå nærmer jeg meg en fullkommen liste! Eneste da er at jeg ikke klarer å skille hva et typisk "dev kit" er, så link til ESP8266 som kan brukes settes veldig pris på. ?

Lenke til kommentar
Del på andre sider

29 minutes ago, Bronson said:

 

 

Nå nærmer jeg meg en fullkommen liste! Eneste da er at jeg ikke klarer å skille hva et typisk "dev kit" er, så link til ESP8266 som kan brukes settes veldig pris på. 1f607.png

De du vil ha er en versjon av ESP8266 som heter ESP-12E eller ESP-12F, eks:

Litt avhengig av hvordan du vil jobbe, så kan det være lurt med et breakout kort. Disse er i utgangspunktet kun for å få kortet til å passe i et s.k. breadboard, men noen av dem har også to-tre nyttige komponenter som hjelper deg under programmering:

Uten reset/prog: https://www.ebay.com/itm/2017-ESP8266-breakout-board-adapter-plate-for-ESP-07-ESP-08-ESP-12E-WIFI-modules/182826533161?hash=item2a914f8129:g:ImoAAOSw~y9ZDS~K

Med reset/prog: https://tronixlabs.com.au/news/new-product-esp8266-esp12e-wifi-breakout-board-australia/

 

Jeg kjøpte et lite lass av de siste, men ikke fra tronixlabs. De er veldig praktiske, da de har knapper for prog/reset pluss de nødvendige motstander for oppstart montert.

 

 

Styr unna disse: (ikke noe vondt om dem, men for dette prosjektet er det blindspor)

NodeMCU: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/utviklingskort/nodemcu-utviklingskort-p87949?gclid=Cj0KCQiA84rQBRDCARIsAPO8RFxnh2v_cX_ASSAvQGu80MVcHyVLR1lFSJoJtEzZWMH3m_7cuwfTY2saAivFEALw_wcB

ESP01: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/moduler/wifi-modul-for-arduino-esp8266-p87947?gclid=Cj0KCQiA84rQBRDCARIsAPO8RFzKEB8vin2Alt6FAJ11Au5sCGwxeHQ7LK_CyT3Q2imz-BxVdjnZ_akaAlGrEALw_wcB

Blynk: https://www.sparkfun.com/products/13794

 

 

EDIT:

Du vil også trenge en FTDI for programmering, dette er en s.k. serie-port emulator for USB til PC. Viktig at denne kan kjøres med 3.3V inn/ut, eks en slik:

https://www.ebay.com/itm/FT232RL-3-3V-5-5V-FTDI-USB-to-TTL-Serial-Adapter-Module-for-Arduino-Mini-Port/381374421597?epid=502148532&hash=item58cbafda5d:g:jk8AAOSwrklVMjIp

Endret av roarfred
  • Like 2
Lenke til kommentar
Del på andre sider

Hei.

Jeg kom tilfeldigvis over denne tråden. Interessant lesning, så jeg tenkte jeg skulle sjekke hva som kommer ut av min nye effekt-måler. Jeg målte 24.2 V over pin 1 og 2 på RJ-45 pluggen. Jeg sjekket med oscilloskop, men det var ikke tegn til signaler der. Men jeg lurer på et par ting med dette prosjektet:

  1. Jeg ser det er lagt ut kretskort spesielt for dette formålet. Er det noen som har fått laget noen stykker, eller bestiller hver mann produksjon av ett kort?
  2. Jeg har et par ESP8266 liggende. Hvordan får dere dem til å "snakke" MQTT protokollen? Finnes det noen ferdig SW for dette?
  3. Det nevnes Arduino også her, men det er vel overfødig når man bruker en EPS8266? EPS8266 sender jo på Wi-Fi og da kan man kommunisere med en RPi eller PC.
  4. Det finnes M-bus til TTL converter kort å få kjøpt til en 100-lapp (basert på TSS721). Er det noen som har prøvd å bruke denne i stedet for å lage et eget kort?

Håper dette ikke er teite spørsmål eller at de allerede er besvart. Jeg har skummet gjennom tråden, og det var jamen mye å lese.

Lenke til kommentar
Del på andre sider

20 minutes ago, cpu22 said:

Hei.

Jeg kom tilfeldigvis over denne tråden. Interessant lesning, så jeg tenkte jeg skulle sjekke hva som kommer ut av min nye effekt-måler. Jeg målte 24.2 V over pin 1 og 2 på RJ-45 pluggen. Jeg sjekket med oscilloskop, men det var ikke tegn til signaler der. Men jeg lurer på et par ting med dette prosjektet:

  1. Jeg ser det er lagt ut kretskort spesielt for dette formålet. Er det noen som har fått laget noen stykker, eller bestiller hver mann produksjon av ett kort?
  2. Jeg har et par ESP8266 liggende. Hvordan får dere dem til å "snakke" MQTT protokollen? Finnes det noen ferdig SW for dette?
  3. Det nevnes Arduino også her, men det er vel overfødig når man bruker en EPS8266? EPS8266 sender jo på Wi-Fi og da kan man kommunisere med en RPi eller PC.
  4. Det finnes M-bus til TTL converter kort å få kjøpt til en 100-lapp (basert på TSS721). Er det noen som har prøvd å bruke denne i stedet for å lage et eget kort?

Håper dette ikke er teite spørsmål eller at de allerede er besvart. Jeg har skummet gjennom tråden, og det var jamen mye å lese.

hehe, tråden kan kanskje bli litt langstrakt etterhvert, men hyggelig å høre at flere finner veien hit!

 

Andre har også målt ca. 25V stabilt over HAN porten, når denne ikke er aktivert. Aktivering er etter klar spec fra NVE sagt å skulle skje etter forespørsel fra kunde. Dette er også et krav, slik at du har rett til disse dataene. En liten hake er at e-lagene har frist fram til 1. jan 2019 med å imøtekomme dette kravet. Likevel, de som har fått Kamstrup og Kaifa målere har fått dette aktivert, mens Aidon (Hafslund i hvertfall, usikker på om det er flere) har vært tilbakeholdne.

 

Ang. spørsmålene dine:

 

1) Kretskortet som ligger ute har nok ingen bestillt. Det viser seg at dette har etpar små svakheter, det er en motstand for mye her, og ubrukte innganger på opamp er ikke jordet. Jeg engasjerte en kar via freelancer.com som laget dette for meg, mest for å prøve ut det konseptet... I realiteten kjører vi på breadboard eller prototyping-kretskort.

 

2) For kommunikasjon med mqtt, så er det enkleste å bruke pubsubclient fra knolleary: https://github.com/knolleary/pubsubclient Dette har jeg brukt mye, også til helt andre ting, og det fungerer bra. Eneste obs er at det har en default buffer size som er litt liten, men som fint kan økes, se to-tre-fire meldinger tilbake i denne tråden. I mitt github prosjekt finner du komplett kode for MQTT/JSON/AMS

 

3) Arduino begrepet brukes her fordi en programmerer ESP8266 som en arduino (nettopp slik du antyder). Noen bruker ESP'en bare som en  WiFi modul til en vanlig arduino, men det har jeg aldri skjønt meg på :) Jeg tror begrepet Arduino er like mye software-utvikling som den opprinnelige Arduino hardware.

 

4) Jeg skrev litt tidlig i denne tråden om M-Bus chippen. Har etpar slike liggende som du kan få... Første utfordring her er at disse ser mer ut til å være beregnet for om du selv skal lage en sensor med M-bus interface, og ikke en server (mottaker) for data. Andre utfordring er at den M-bus som nyttes på AMS målerne bruker en form for push teknologi. Det betyr at mens vanlig M-bus utstyr sitter stille og venter på at noen skal spørre etter data, så bare pøser disse ut på gitte tidsintervaller. (Mitt MBusMqttLogger prosjekt er forøvrig basert på kommunikasjon mer en mer tradisjonell M-bus device, også ved bruk av ESP8266: https://github.com/roarfred/MBusMqttLogger) I tilfellet med AMS målerne, så er det ikke så nøye at det er M-bus interface, så snart du klarer å konvertere det elektriske signalet fra å være 25V/15V til å være 3.3V/0V. Derfra handler det om plain serie-kommunikasjon (2400 baud, 8N1 hos Kamstrup og 2400 8E1 hos Kaifa, gud-vet-hva hos Aidon), og dekoding av DLMS protokollen.

 

Håper dette var til hjelp! Hold oss oppdatert om du kommer noen vei!

 

  • Thanks 1
Lenke til kommentar
Del på andre sider

2 hours ago, Salvesen said:

jeg har ikke fått åpnet porten min enda :( Havnet på en mailingliste hvor jeg enda ikke har fått en eneste mail med info, skuffet! 

Sikker 100de gang jeg spør, men hvilken måler har du? Kamstrup og Kaifa ser ut å la seg åpne, men med Aidon sitter det litt lenger inne...

Lenke til kommentar
Del på andre sider

Hei roarfred, og takk for utfyllende svar. Det ser ut som det er lagt ned en del arbeid her.

 

Jeg får høre om jeg kan få aktivert HAN-modulen slik at det kommer noen signaler ut på RJ-45 pluggen. Jeg ligger i startgropa med hjemmeautomasjon, så det blir en del å sette seg inn i. Jeg skal sjekke om jeg finner ut av EPS8266 og MQTT i din github. Jeg har programmert EPS8266 en del tidligere, med C og et SDK som jeg lastet ned.

 

Ut fra det du sier, så høres det ut som det er greiest å bruke ditt design for nivå-konvertering av M-bus. Det er både kompakt, og har alt som trengs. Disse EPS-modulene er jo genial å bruke.

 

 

Lenke til kommentar
Del på andre sider

9 timer siden, roarfred skrev:

1) Kretskortet som ligger ute har nok ingen bestillt. Det viser seg at dette har etpar små svakheter, det er en motstand for mye her, og ubrukte innganger på opamp er ikke jordet. Jeg engasjerte en kar via freelancer.com som laget dette for meg, mest for å prøve ut det konseptet... I realiteten kjører vi på breadboard eller prototyping-kretskort.

Jeg bestilte meg faktisk noen kretskort etter tegningene, dog uten komponenter. Har ikke gjort noe mer med de. Kosta ikke noe å få de lagd. Ble dyrere dersom de skulle lodde komponentene på. Siden det har vært litt utfordringer med å benytte kretsen mot Kamstrup sitter jeg litt på gjerdet og venter for å se utfallet før jeg gjør noe mer med de. Burde kanskje ventet med å bestille kretskort til alt virket men 20 dollar for 5 stykk var jo en ok pris selv om de har feil på seg :P

Lenke til kommentar
Del på andre sider

I går kveld var jeg hos @Andreas som er en wizzard når det gjelder elektronikk og faktisk en mann jeg har møtt tidligere :) 

 

Det ser ut som at vi fikk kretsen til å fungere mot Kamstrup-måleren med følgende endringer:

 

R9 byttes til 3.3K

I tillegg kjører vi to kondensatorer i serie (470uF 50v).

 

Det ble litt sent i går kveld så vi fikk ikke testet med ESPen, men oscilloscopet viste korrekte verdier.

 

@Andreas får eventuelt komme tilbake med det tekinske på hvorfor det må være slik.

 

  • Thanks 2
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.