Johove
-
Innlegg
7 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Innlegg skrevet av Johove
-
-
5 timer siden, Johove skrev:
Dersom du bruker koden slik den er i repository og
Kommenter ut:
//#define useMySensors
Kommenter inn:
#define useSoftSerial // to debug the code
#define MY_DEBUG1
Og du har mbus serial koblet til rx(ardiono) -> 8 og Tx -> 7 // kanskje du har byttet disse, det er rx (Arduino) til tx(mbus)
Du skal i det minste få: "start:" på streamen
Du kan også teste oppsette ditt med den litt enklerer koden: Vil lista datene som kommer --
/*
Software serial multple serial test
Receives from the hardware serial, sends to software serial.
Receives from software serial, sends to hardware serial.
The circuit:
* RX is digital pin 10 (connect to TX of other device)
* TX is digital pin 11 (connect to RX of other device)
Note:
Not all pins on the Mega and Mega 2560 support change interrupts,
so only the following can be used for RX:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
Not all pins on the Leonardo and Micro support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
created back in the mists of time
modified 25 May 2012
by Tom Igoe
based on Mikal Hart's example
This example code is in the public domain.
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
mySerial.begin(2400);
}
void loop() { // run over and over
if (mySerial.available()) {
int c = mySerial.read();
if(c<16) Serial.print('0');
Serial.print(c, HEX);
if (c==0x7e) Serial.println();
}
}- 1
-
8 timer siden, tronde skrev:
Takk for svar. Da får jeg grave litt mer i koden i morgen kveld nå som det ikke skal være hardware som stopper. Jeg mener å ha funnet de rette switchene, men jeg er ingen racer i programmering...
Interfacet gir ut data, og jeg har også tidligere fått det inn som rådata på PC-en, så den delen er nok iorden.
Dersom du bruker koden slik den er i repository og
Kommenter ut:
//#define useMySensors
Kommenter inn:
#define useSoftSerial // to debug the code
#define MY_DEBUG1
Og du har mbus serial koblet til rx(ardiono) -> 8 og Tx -> 7 // kanskje du har byttet disse, det er rx (Arduino) til tx(mbus)
Du skal i det minste få: "start:" på streamen
- 1
-
Det er best å bruke f,eks. En Uno til debugging, debug trace bruker en del cpu.
jeg har brukt 8mhz med 3,3v med minimalistisk kort for å få ned størelsen, men har ennå ikke hentet strøm fra måleren, men det burde være mulig.
-
31 minutter siden, tronde skrev:
Er koden din avhengig av en 8 MHz arduino for å funke i debug modus? Jeg er klar over mulig trøbbel med serieportsetting. Han-adapteret skal vel ha 2400 og koples mot pinne 8 i debug?
Får kun opp logoen for MySensors som livstegn.
Nei. Du kan bruke både 8 og 16 mhz Arduino.
Det er riktig at Han adapteret leverer 2400, for å kunne bruke debug så må mbusen koples til digitale pinner, husker ikke pinnenummet, men det står i koden, og softserial på 2400 må skrus på, det er switcher for det.
I debug kan du skru mysensors av for å gjøre koden enklere.Debug trace fra Arduno bruker da hardware serial på høyere hastighet mot serial trace i Arduinos utv miljø.
I debug er det en timing konflikt mellom å skrive trace og lese dataene, derfor vil ikke all trace kunne være på, hardare serial må ha høy hastighet mot trace.
Dersom du har koplet riktig og du ikke får noe inn data så sjekk mbus pinnene med ett voltmeter, du den vil skifte spenning hvert 2,5sekund. Du kan også ha feil i mbus til seriel adapteret, mitt har dioder som viser at den får data.
-
Hei,
Denne koden for å lese av måler via mbus og HAN er singel thread, og Arduino er EN Singel prosess CPU, men kan ha interupt. HAN koden er skrevet for å lese dataene fra mbus og pushe de ut mellom pakkene. Om du prøver å lese fra denne Arduinoen ved å sende request til den mens den leser Han porten får du timing utfordringer, den er for treg, eller du har en loop eller holder på kontrollen slik at det hindrer den fra å lese.
Det er uklart hva oppsettet ditt er og hvordan du har integrert HAN lesing med Modbuss,
Du kan enten pushe dataene til en separat Arduino og hente fra den, eller debugge timing, eller synkronisere slik at disse kallene ikke besvares mens pakkene leses.
-
På 21.5.2019 den 19.05, deve87 skrev:
Fikk åpnet HAN porten på Aidon måler i går. Har benyttet koden til @Johove
https://github.com/johove/HAN-powermeter
Benyttet MySensors plugins (gateway LAN/WiFi) mot Domoticz og en ESP8266. Koden trenkte en liten endring, men ellers lik.
Ting dukker opp i Domoticz, men av og til får jeg kommafeil på spenning og ampere dataen. Usikker på om det er noe med koden, Domoticz, eller måler. Noen som kan vite hva det eventuelt kommer av?
Slik en ser på loggen i bildene. Går plutselig spenningen fra 240,1V til 24010V og tilbake til 240,3V
Samme gjelder ampere, men kWh daglig og watt holder seg stabilt
På amper og volt sendes det med eksponent i OBIS meldinga fra målern, det er sannsynlig at feilen er i seriellgrensesnittet, og at eksponenten ikke leses korrekt, du får da kommafeil. Disse dataene kommer i en relativt lang melding hvert 10s i siste del av pakka. Dersom du har utfordringer med mbus til ttl kortet, strømforsyning til dette, eller timing i prosessoren kan det skje, avhengig av om du bruker software eller hardware seriell.
Det enkleste er å liste verdiene som lese i debuggmodus for å sjekke, eller sette kommasetting fast som en quick fix.
Jeg har 2 slike måler stående med Arduino og 2.4Mhz mesh nettverk, jeg får ikke disse feilene. Måelre jeg leser fra er Aidon på Hafslund og en i Ringsaker på Eidsiva.
Lesing av AMS data (AMS/HAN -> IoT)
i Strømsparing og strøm-overvåkning
Skrevet
Det kan oppstå timingproblemer når mye debugtekst skrives til seriel konsoll mens pakka leses, utskrifen av trace bruker for mye tid, det fører til at det mistes data på slutten av pakka. pass på å ha høy hastighet.
Hele pakka leses uten debug.
Prøv å skru på switch for debug3 og skru av den andre, da printer data etter at meldingene er lest, ikke mens de leses.
Dato leses, men jeg har ikke dekodet dataformatet til lesbar dato.
Det ligger en eksempelpakke i readme.
Og for å forstå pakkene, og koden, les siste tabell i Aidospesifikasjone.
Ref https://www.nek.no/wp-content/uploads/2018/11/Aidon-HAN-Interface-Description-v10A-ID-34331.pdf
og EXCERPT DLMS UA Blue Book: COSEM interface classes and OBIS identification system, EXCERPT DLMS UA 1000-1 Ed. 12.0. Du finner den på Internett, dette er spesifikasjonen av struktur, datafelter og OBIS kodesystemet.
Denne implantasjonen følger den spesifikasjonen som ligger til grunn for målerens grensesnitt.