iotux / ElWiz

ElWiz - a program to read data from Tibber Pulse and similar devices
MIT License
107 stars 16 forks source link

Tibber Pulse Stormtrooper #1

Closed kristianrd closed 1 year ago

kristianrd commented 3 years ago

Hei,

HAN Solo fungerte ikke på min måler (Aidon), så jeg anskaffet en ny "Stormtropper". Men jeg får kun raw data exception som limt inn nedenfor. Er det noen åpenbare feilkonfigureringer på min kant her?

Event message: ~�������@  ��

AIDON_V0001 � 7359992901312448 � 6515 �� � � �j � �!  � �#JC~ Raw data packet exception : {"type":"Buffer","data":[126,160,210,65,8,131,19,130,214,230,231,0,15,64,0,0,0,0,1,9,2,2,9,6,1,1,0,2,129,255,10,11,65,73,68,79,78,95,86,48,48,48,49,2,2,9,6,0,0,96,1,0,255,10,16,55,51,53,57,57,57,50,57,48,49,51,49,50,52,52,56,2,2,9,6,0,0,96,1,7,255,10,4,54,53,49,53,2,3,9,6,1,0,1,7,0,255,6,0,0,0,166,2,2,15,0,22,27,2,3,9,6,1,0,2,7,0,255,6,0,0,0,0,2,2,15,0,22,27,2,3,9,6,1,0,3,7,0,255,6,0,0,0,0,2,2,15,0,22,29,2,3,9,6,1,0,4,7,0,255,6,0,0,0,106,2,2,15,0,22,29,2,3,9,6,1,0,31,7,0,255,16,0,9,2,2,15,255,22,33,2,3,9,6,1,0,32,7,0,255,18,9,8,2,2,15,255,22,35,74,67,126]} Event message: ~����@ ���~ Raw data packet exception : {"type":"Buffer","data":[126,160,42,65,8,131,19,4,19,230,231,0,15,64,0,0,0,0,1,1,2,3,9,6,1,0,1,7,0,255,6,0,0,0,164,2,2,15,0,22,27,70,173,126]} Event message: ~����@ ����~ Raw data packet exception : {"type":"Buffer","data":[126,160,42,65,8,131,19,4,19,230,231,0,15,64,0,0,0,0,1,1,2,3,9,6,1,0,1,7,0,255,6,0,0,0,162,2,2,15,0,22,27,139,245,126]} Event message: ~�*���@ ���~ Raw data packet exception : {"type":"Buffer","data":[126,160,42,65,8,131,19,4,19,230,231,0,15,64,0,0,0,0,1,1,2,3,9,6,1,0,1,7,0,255,6,0,0,0,164,2,2,15,0,22,27,70,173,126]}

kristianrd commented 3 years ago

her er forøvrig pulse/status:

pulse/status { "status": { "rssi": -73, "ch": 9, "ssid": "[redigert_vekk]", "usbV": "1.31", "Vin": "23.58", "Vcap": "4.42", "Vbck": "4.55", "Build": "1.1.12", "Hw": "F", "bssid": "[redigert_vekk]", "ID": "[redigert_vekk]", "Uptime": 3000, "mqttcon": 0, "pubcnt": 48, "rxcnt": 48, "wificon": 0, "wififail": 0, "bits": 68, "cSet": 96, "Ic": 0, "crcerr": 0, "cAx": 1.158393, "cB": 16, "heap": 212228, "baud": 2400, "meter": "Aidon_V2", "ntc": 18.58, "s/w": 0, "ct": 0, "dtims": 1154 } }

iotux commented 3 years ago

ElWiz er laget spesifikt for Kaifa AMS-måler og testet med Stromtrooper. Det du ser er rådata som må dekodes. Jeg kan ikke umiddelbart se noe galt med det som du har dumpet. Poenget er å sile bort data som du ikke trenger, slik at du sitter igjen med den nytteinformasjonen som skal være i henhold til spesifikasjonene fra NVE. Det betyr at du må telle byte for byte og dekode slik at du sitter igjen med det du skal ha. Det skal være tilstrekkelig med kommentarer i koden til at du kan finne ut av det.

fiwohjemmeautomasjon.no har angivelig modifisert koden for å virke med Aidon. Du kan sikkert ta kontakt der for å få vite mer.

Ettersom dette ikke er en Elwiz-problem, så lukker jeg denne saken.

ways commented 2 years ago

Gjorde du noe mer med dette, @kristianrd ?

kristianrd commented 2 years ago

@ways joda, jeg gjorde det. satt meg ned og talte bytes. så jeg har en (litt grisete) versjon kjørende lokalt. for Aidon trengs noe mer endringer også, mener å huske det var rundt timestamps. men det er noen måneder siden sist jeg tittet på dette, så det ligger ikke fremst i hukommelsen.

ways commented 2 years ago

Utifra https://www.hjemmeautomasjon.no/forums/topic/4255-tibber-pulse-mqtt/?page=2 endret jeg

        if (buf[2] === 0x27) { // 0x27,39

til

        if (buf[2] === 0x27 || buf[2] === 0x2a) { // 0x27,39

Da kommer det data, men målingen virker helt feil. Får grave litt mer.

kristianrd commented 2 years ago

Utifra https://www.hjemmeautomasjon.no/forums/topic/4255-tibber-pulse-mqtt/?page=2 endret jeg

        if (buf[2] === 0x27) { // 0x27,39

til

        if (buf[2] === 0x27 || buf[2] === 0x2a) { // 0x27,39

Da kommer det data, men målingen virker helt feil. Får grave litt mer.

på Aidon er 0x2a liste 1 du må også rydde i list1Func fra hva jeg husker publiserer ikke Aidon ukedag i liste 1 og 2 (eller så anså ikke jeg det som interessant for meg)

dette fungerer her:

if (buf[2] === 0x2a) {
              // List 1 data
              pulse.pulseData1 = pulse.list1Func(buf);
              // Hook for postprocessing List #1 data
              onList1(pulse.pulseData1);
              if (pulse.republish && pulse.pulseData1 !== undefined)
                pulse.client.publish(C.pubTopic + "/list1", JSON.stringify(pulse.pulseData1, !pulse.debug, 2));
            }
  list1Func: function (buf) {
    // Process List #1 raw data
    return {
      powImpActive: buf.readUIntBE(31, 4) / 1000
    }
  }

som du ser er data plassert annerledes på Aidon enn på Kaifa

jeg fant mye hjelp i en node red contrib for AMS, da jeg holdt på med dette: https://github.com/Csstenersen/node-red-contrib-ams-decoder

jeg kan få sett gjennom det jeg har når det blir litt mindre på henda for meg hvis du har tid til å vente - men nå er det litt hektisk

ways commented 2 years ago

Takk. Lagde https://github.com/ways/ElWiz-Aidon med endringene, og det ser ut til å fungere flott.