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

Johove

Medlemmer
  • Innlegg

    7
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Johove

  1. 12 timer siden, tronde skrev:

    @Johove

     

    Jeg har prøvd å bli litt klok på koden din.

     

    Jeg har debugmodus slik du beskriver, og får ut MeterID, Meter type, OBISVersion, Akiv og reaktiv effekt inn, begge strømmene (jeg har type 6525 trefas IT) og alle tre spenningene med korrekte verdier. Date kommer kun ut som 0-0-0-0-0-0-0-0-0-0-0-0- selv ved timeskiftet som vel skal inneholde dato og klokkeslett pluss akkumulert energi for siste time. Disse kommer ikke ut. Jeg ser at det kommer vesentlig mer data (i bufferstrengen) fra måleren ved timeskiftet, så jeg antar at den gir dem ut.

    Det er jo Serial.print for de akkumulerte verdiene, så de burde vel skrives ut?

     

    Har du noe forslag?

    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.

    • Like 1
  2. 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();
      }
    }
     
    • Like 1
  3. 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

     

    • Like 1
  4. 31 minutter siden, tronde skrev:

    @Johove

    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.

  5. 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.

  6. 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

     

     

    AMS1.jpg

    AMS2.jpg

    AMS3.jpg

     

    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.

×
×
  • 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.