Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Formatfeil/rusk frå pulse #9

Closed
TurboJens opened this issue Oct 7, 2022 · 48 comments
Closed

Formatfeil/rusk frå pulse #9

TurboJens opened this issue Oct 7, 2022 · 48 comments

Comments

@TurboJens
Copy link

feilterm
feil2
statusok
feil1

Får litt snedige verdiar frå min tibber, den ser ut til å sende list1 og status på vettug måte, men resten vert berre rot. Eg har Kaifa måler, men modell MA304H4 (3fas 400V + N) så det burde jo vere likt.

Det ser ut som om feilen startar allereie hos tibber, kva i alle dager kan vere gale her?

@hflatoey
Copy link

hflatoey commented Oct 7, 2022

Samme problem her i Node-Red...
pulse

@iotux
Copy link
Owner

iotux commented Oct 7, 2022

@TurboJens, @hflatoey
Det kan ikke utelukkes at det finnes programfeil. Når det er sagt, så er det viktig å skille mellom data som kommer fra måleren/Tibber Puse, og det som produseres av ElWiz.

Hvis ElWiz er installert i hht README.md, så abonnerer ElWiz på topic "tibber". Dette skal bare brukes av ElWiz. Det skal ikke abbonneres på av brukere av ElWiz. Data som kommer fra Tibber Pulse er kodet i binært format og må dekodes til lesbart format. ElWiz dekoder dette binær-formatet til lesbart JSON-format.

Topics som skal brukes er "pulse/#" hvis man ikke ønsker å bruke integrasjonen mot Homeassistant.
For bruk sammen med Homeassistant, er topic "elwis/sensor/#".
Det er selvfølgelig mulig å abonnere på begge deler.

Det som presenteres i skjermdumper ovenfor, er binære meldinger fra topic "tibber". Det er ikke beregnet for bruk utenfor ElWiz. Jeg håper det er avklarende. Jeg er åpen for spørsmål og kommentarer via PM hos <**https://hjemmeautomasjon.no/**>. Samme nick.

@hflatoey
Copy link

hflatoey commented Oct 7, 2022

Ah! Eg trudde Tibber Pulse ga ut lesbar data rett til MQTT broker :P

Mulig å installere ElWiz i docker? :)

@TurboJens
Copy link
Author

TurboJens commented Oct 7, 2022

@TurboJens, @hflatoey Det kan ikke utelukkes at det finnes programfeil. Når det er sagt, så er det viktig å skille mellom data som kommer fra måleren/Tibber Puse, og det som produseres av ElWiz.

Hvis ElWiz er installert i hht README.md, så abonnerer ElWiz på topic "tibber". Dette skal bare brukes av ElWiz. Det skal ikke abbonneres på av brukere av ElWiz. Data som kommer fra Tibber Pulse er kodet i binært format og må dekodes til lesbart format. ElWiz dekoder dette binær-formatet til lesbart JSON-format.

Topics som skal brukes er "pulse/#" hvis man ikke ønsker å bruke integrasjonen mot Homeassistant. For bruk sammen med Homeassistant, er topic "elwis/sensor/#". Det er selvfølgelig mulig å abonnere på begge deler.

Det som presenteres i skjermdumper ovenfor, er binære meldinger fra topic "tibber". Det er ikke beregnet for bruk utenfor ElWiz. Jeg håper det er avklarende. Jeg er åpen for spørsmål og kommentarer via PM hos <**https://hjemmeautomasjon.no/**>. Samme nick.

@iotux Det gir meining, eg har ikkje tenkt å bruke tibber sin info, men prøvde å forstå kvifor det virka berre delvis.

Sidan det då åpenbart handlar om dekoding av den binære verdien så kan vi kanskje ta det her? Eg veit at min målar har meir data enn din, blandt anna volt på L2, kan det ha noko å seie på dekodinga?

Ah! Eg trudde Tibber Pulse ga ut lesbar data rett til MQTT broker :P

Mulig å installere ElWiz i docker? :)

@hflatoey Eg har ElWiz køyrande i docker på ein NAS boks. Det fungerar fint.

@iotux
Copy link
Owner

iotux commented Oct 7, 2022

@TurboJens, @hflatoey, @leffen
Jeg har laget et program som dumper output fra Pulse til JSON og HEX. Det bør kunne virke på alle varianter av AMS-målere.

Filene som lagres heter "list1, list2, list3 og list0" med ending .json eller .hex
Fila "list0.*" bør fange opp resultatet hvis måleren er forskjellig fra den måleren som programmet er laget for.

Programmet finnes her:
https://gist.github.com/iotux/0fbe8f766610ce0b6c17a66359436c39

Last ned programmet til samme katalog som ElWiz og start det litt før full time og la det gå til alle filvarianter er lagret.
Resultatet kan lastes opp her for videre analyse.

@hflatoey
Copy link

hflatoey commented Oct 7, 2022

Fekk det til med denne Node-Red noden :)

https://flows.nodered.org/node/node-red-contrib-ams-decoder

Takk for bruksanvising for å sitte opp Pulse med local MQTT broker :)

@yusijs
Copy link

yusijs commented Oct 9, 2022

@iotux jeg forsøker å kjøre dette scriptet ditt, og får kun "Raw data packet exception".

list0.hex:
7ea02a410883130413e6e7000f40000000000101020309060100010700ff060000020002020f00161bc12c7e

list0.json:

{
  "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,1,255,2,2,15,0,22,27,180,40,126],
  "length":44
}

Opprettes ingen andre filer.

Raw-meldingen i mqtt ser slik ut:
image

Har riktignok annen AMS måler, men snodig at jeg ikke får noen data ut bortsett fra list0? 🤔

pulse status:

{
  "rssi": -42,
  "ch": 11,
  "usbV": "2.53",
  "Vin": "23.61",
  "Vcap": "4.40",
  "Vbck": "4.55",
  "Build": "1.1.12",
  "Hw": "F",
  "ID": "10521c581980",
  "Uptime": 120,
  "mqttcon": 0,
  "pubcnt": 33,
  "rxcnt": 33,
  "wificon": 0,
  "wififail": 0,
  "bits": 68,
  "cSet": 98,
  "Ic": 0,
  "crcerr": 0,
  "cAx": 1.110685,
  "cB": 14,
  "heap": 211628,
  "baud": 2400,
  "meter": "Aidon_V2",
  "ntc": 29.66,
  "s/w": 0,
  "ct": 0,
  "dtims": 402
}

@iotux
Copy link
Owner

iotux commented Oct 9, 2022

@yusijs
Jeg ser at du har en Aidon-måler. Når du får lagret bare "list0.*", så betyr det at måleren ikke er kompatibel med ElWiz. Du får nok også andre typer pakker, men hver ny pakke overskriver den gamle. Du kan enten være kjapp når timespakken er lagret og stoppe programmet, eller vente til jeg har modifisert programmet til å lage flere filer.
Det er nok ikke mye som trengs å endres i Elwiz for å gjøre det kompatibelt med Aidon

@yusijs
Copy link

yusijs commented Oct 9, 2022

@iotux jeg forsøker meg på å appende til filer en times tid nå. Fant noe dokumentasjon på Aidon måleren sin data her, så mulig det kan være noe der også som hjelper

@iotux
Copy link
Owner

iotux commented Oct 9, 2022

@yusijs
Jeg har gjort en mindre oppdatering på "elwiz.js" som forhåpentlig virker for Aidon. Jeg har ingen mulighet for å teste, men du kan prøve. Så får jeg en tilbakemelding fra deg

@yusijs
Copy link

yusijs commented Oct 9, 2022

List1 kom umiddelbart med noe mindre data (og noe morsomt på datoformatet )

{
  "date": "258-03-09T01:00:01",
  "powImpActive": 1.582
}

Ser utover kvelden om 2 / 3 kommer etterhvert.

@iotux
Copy link
Owner

iotux commented Oct 9, 2022

@yusijs
Fixen som jeg gjorde kommer fra denne forken: https://github.com/ways/ElWiz-Aidon
Det er nok en forskyvning hele vegen ettersom offset er forskjellig. Jeg får se på det i morgen

@yusijs
Copy link

yusijs commented Oct 10, 2022

@iotux jeg begynte på en egen pakken basert på elwiz (skriver om til typescript, deler koden litt mer opp etc og tilpasser mitt behov). Når jeg holdt på med det, så var jeg inne og kikket på node-red pakken som @hflatoey linked til. Koden som ligger der ser ut til å funke veldig bra, så kunne kanskje vært en ide å kikke der for elwiz også? De har handler for både aidon og kamstrup, samt betapakke til Kaifa måler.

Var helt smertefritt å basically kopiere ut den koden, og tilpasse til modellen din. :)

@TurboJens
Copy link
Author

@iotux eg prøvde å legge dette inn på ein raspberry sidan eg ikkje fekk til å køyre fetchprices eller tibdumper frå dockeren. I raspberry køyrer ikkje elwiz eller tibdumper, men fetchprices virkar... Truleg forbi min forståelse, eg er litt technerd men kan litt om mykje men ikkje ekspert på noko desverre. Får ei feilmelding som fortel meg absolutt ingen ting. Skal legge ut eit skjermbilde seinare.

Eg prøvde også den node-red pakken, og den dekodar Kaifa målaren min tilsynelatande perfekt.

@jh1982
Copy link

jh1982 commented Oct 11, 2022

Hei.
Jeg har en Kaifa MA105H2E å dette er alle dataene jeg får.
Noen tips til hva jeg kan prøve?

elwiz
sensor
status = online
power = 1.044
minPower = 0.394
maxPower = 8.978
pulse
meter
list1 = { "powImpActive": 1.044, "minPower": 0.394, "maxPower": 8.978 }
status = { "rssi": -60, "ch": 4, "ssid": "Thundercloud", "usbV": "1.92", "Vin": "25.99", "Vcap": "4.43", "Vbck": "4.55", "Build": "1.1.12", "Hw": "F", "bssid": "ac84c63967f2", "ID": "f008d179f368", "Uptime": 10800, "mqttcon": 0, "pubcnt": 60, "rxcnt": 60, "wificon": 0, "wififail": 0, "bits": 68, "cSet": 107, "Ic": 0, "crcerr": 0, "cAx": 1.179324, "cB": 14, "h…
tibber =

@jh1982
Copy link

jh1982 commented Oct 11, 2022

@iotux eg prøvde å legge dette inn på ein raspberry sidan eg ikkje fekk til å køyre fetchprices eller tibdumper frå dockeren. I raspberry køyrer ikkje elwiz eller tibdumper, men fetchprices virkar... Truleg forbi min forståelse, eg er litt technerd men kan litt om mykje men ikkje ekspert på noko desverre. Får ei feilmelding som fortel meg absolutt ingen ting. Skal legge ut eit skjermbilde seinare.

Eg prøvde også den node-red pakken, og den dekodar Kaifa målaren min tilsynelatande perfekt.

Prøvde node red på min Kaifa MA105H2E men får bare deler av dataene der også..

@TurboJens
Copy link
Author

TurboJens commented Oct 11, 2022

Når eg køyrer elwiz.js på Raspberry får eg denne kryptiske meldinga: (akkurat same på tibdumper.js, fetchprices køyrer fint)

`xx@raspberrypi:~/Desktop/ElWiz-master $ node elwiz.js
/home/xx/node_modules/util-deprecate/node.js:1
/
^

SyntaxError: Invalid regular expression: missing /
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1078:15)
at Module._compile (node:internal/modules/cjs/loader:1113:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1203:10)
at Module.load (node:internal/modules/cjs/loader:1027:32)
at Module._load (node:internal/modules/cjs/loader:868:12)
at Module.require (node:internal/modules/cjs/loader:1051:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (/home/xx/node_modules/readable-stream/lib/_stream_writable.js:60:14)
at Module._compile (node:internal/modules/cjs/loader:1149:14)

Node.js v18.10.0
`

@yusijs
Copy link

yusijs commented Oct 11, 2022

@TurboJens ville forsøkt å kjøre med Node16 - node18 er litt.. snodig av og til. :)

@iotux
Copy link
Owner

iotux commented Oct 12, 2022

@TurboJens, @hflatoey, @leffen, @yusijs
Jeg har laget et program som dumper output fra Pulse til JSON og HEX. Det bør kunne virke på alle varianter av AMS-målere.

Jeg har gjort endringer på tibdumper.js som (forhåpentligvis) fanger opp data fra alle listetyper uansett målertype. Programmet lagrer 1 fil per listetype og heter "list1, list2 og list3 med ending .json

Data som ikke fanges opp av ElWiz blir lagret som "list0-xx:xx:xx.json" hvor "xx:xx:xx" er tidspunkt.
Ettersom jeg bare har 1 måler å teste med, så setter jeg stor pris for bidrag her. Det gjør det mulig for meg å implementere dekoding for alle aktuelle målertyper.

Last opp resultatet her og gjerne oppgi målertype/modell.

Programmet finnes her:
https://gist.github.com/iotux/70da06a2881830eb6f806075fa42018b

Last ned programmet til samme katalog som ElWiz og start det litt før full time og la det gå til alle filvarianter er lagret. Det er gjerne 2 til 3 sekunder mellom hver "list1" og 10 secunder mellom hver "list2". "list3" kommer hver hele time.

@jh1982
Copy link

jh1982 commented Oct 12, 2022

Hei.
Jeg har en Kaifa MA105H2E å kjørt tibdumper.js en times tid nå.
Men den eneste lista som blir opprettet er list1.json
Og en del andre filer med dette innholdet:
{"dec":[126,160,101,1,2,1,16,240,80,230,231,0,15,64,0,0,0,9,12,7,230,10,12,3,17,45,10,255,128,0,0,2,9,9,7,75,70,77,95,48,48,49,9,16,54,57,55,48,54,51,49,52,48,51,49,53,49,56,55,49,9,8,77,65,49,48,53,72,50,69,6,0,0,5,67,6,0,0,0,0,6,0,0,0,0,6,0,0,1,74,6,0,0,23,117,6,0,0,9,46,87,38,126],"hex":"7ea06501020110f050e6e7000f40000000090c07e60a0c03112d0aff800000020909074b464d5f30303109103639373036333134303331353138373109084d41313035483245060000054306000000000600000000060000014a0600001775060000092e57267e","length":103}

Og dette er fra terminalen:
8�� KFM_001 6970631403151871 MA105H2E��L �=~
Raw data packet exception : {"type":"Buffer","data":[126,160,101,1,2,1,16,240,80,230,231,0,15,64,0,0,0,9,12,7,230,10,12,3,17,56,0,255,128,0,0,2,9,9,7,75,70,77,95,48,48,49,9,16,54,57,55,48,54,51,49,52,48,51,49,53,49,56,55,49,9,8,77,65,49,48,53,72,50,69,6,0,0,6,205,6,0,0,0,0,6,0,0,0,0,6,0,0,1,128,6,0,0,30,76,6,0,0,9,29,144,61,126]}

@yusijs
Copy link

yusijs commented Oct 12, 2022

@iotux jeg venter på ny pulse (er noe busted med den jeg har, den rebooter vilkårlig 1-3 ganger i timen, så mangler mye data (spesielt list3)). Jeg skrev dog litt om på elwiz så jeg lagrer all dataen (hex verdiene) i en sqlite database som kanskje kan hjelpe:

List3, i dag kl 14.00: 7EA18A41088313EBFDE6E7000F40000000000112020209060101000281FF0A0B4149444F4E5F5630303031020209060000600100FF0A1037333539393932383931323337303238020209060000600107FF0A0436353334020309060100010700FF0600000D1C02020F00161B020309060100020700FF060000000002020F00161B020309060100030700FF060000000002020F00161D020309060100040700FF06000001AF02020F00161D0203090601001F0700FF10001102020FFF1621020309060100330700FF10008002020FFF1621020309060100470700FF10000202020FFF1621020309060100200700FF12091202020FFF1623020309060100340700FF12090102020FFF1623020309060100480700FF12093502020FFF1623020209060000010000FF090C07E60A0C03100000FF000000020309060100010800FF0600F9A7AB02020F01161E020309060100020800FF060000000002020F01161E020309060100030800FF06000154E102020F011620020309060100040800FF0600098DAB02020F01162099067E

List3, i dag kl 11.00:
7EA18A41088313EBFDE6E7000F40000000000112020209060101000281FF0A0B4149444F4E5F5630303031020209060000600100FF0A1037333539393932383931323337303238020209060000600107FF0A0436353334020309060100010700FF0600000E5602020F00161B020309060100020700FF060000000002020F00161B020309060100030700FF060000000002020F00161D020309060100040700FF06000001C702020F00161D0203090601001F0700FF10001802020FFF1621020309060100330700FF10003502020FFF1621020309060100470700FF10005202020FFF1621020309060100200700FF12091102020FFF1623020309060100340700FF12090D02020FFF1623020309060100480700FF12091E02020FFF1623020209060000010000FF090C07E60A0C030D0000FF000000020309060100010800FF0600F9A54202020F01161E020309060100020800FF060000000002020F01161E020309060100030800FF06000154E102020F011620020309060100040800FF0600098D4802020F01162090D87E

List2, i dag kl 15:55:51: 7EA11E41088313EEEEE6E7000F4000000000010D020209060101000281FF0A0B4149444F4E5F5630303031020209060000600100FF0A1037333539393932383931323337303238020209060000600107FF0A0436353334020309060100010700FF06000011B402020F00161B020309060100020700FF060000000002020F00161B020309060100030700FF060000000002020F00161D020309060100040700FF06000001B702020F00161D0203090601001F0700FF10001302020FFF1621020309060100330700FF10006202020FFF1621020309060100470700FF10005302020FFF1621020309060100200700FF12091502020FFF1623020309060100340700FF12090002020FFF1623020309060100480700FF12092B02020FFF162309497E

List2, i dag kl 15:55:41:
7EA11E41088313EEEEE6E7000F4000000000010D020209060101000281FF0A0B4149444F4E5F5630303031020209060000600100FF0A1037333539393932383931323337303238020209060000600107FF0A0436353334020309060100010700FF06000011D102020F00161B020309060100020700FF060000000002020F00161B020309060100030700FF060000000002020F00161D020309060100040700FF06000001C002020F00161D0203090601001F0700FF10001302020FFF1621020309060100330700FF10006202020FFF1621020309060100470700FF10005302020FFF1621020309060100200700FF12091602020FFF1623020309060100340700FF1208FF02020FFF1623020309060100480700FF12092902020FFF162304357E

List1 - ikke timestamp fra payload:
7EA02A410883130413E6E7000F40000000000101020309060100010700FF060000149702020F00161BC49E7E
7EA02A410883130413E6E7000F40000000000101020309060100010700FF06000014B302020F00161B31927E

@iotux
Copy link
Owner

iotux commented Oct 12, 2022

@yusijs
Rimer det (bortsett fra kommafeil og timejustering til localtime)?

{
  meterVersion: 'AIDON_V0001',
  meterID: '7359992891237028',
  meterModel: '6534',
  power: 3670,
  powerReactive: 0,
  powerProduction: 0,
  powerProductionReactive: 455,
  currentL1: 24,
  currentL2: 53,
  currentL3: 82,
  voltagePhase1: 2321,
  voltagePhase2: 2317,
  voltagePhase3: 2334,
  meterDate: '2022-10-12T13:00:00',
  lastMeterConsumption: 16360770,
  lastMeterConsumptionReactive: 87265,
  lastMeterProduction: 0,
  lastMeterProductionReactive: 625992
}

{
  meterVersion: 'AIDON_V0001',
  meterID: '7359992891237028',
  meterModel: '6534',
  power: 3356,
  powerReactive: 0,
  powerProduction: 0,
  powerProductionReactive: 431,
  currentL1: 17,
  currentL2: 128,
  currentL3: 2,
  voltagePhase1: 2322,
  voltagePhase2: 2305,
  voltagePhase3: 2357,
  meterDate: '2022-10-12T16:00:00',
  lastMeterConsumption: 16361387,
  lastMeterConsumptionReactive: 87265,
  lastMeterProduction: 0,
  lastMeterProductionReactive: 626091
}

Det vil ta litt tid å implementere

@yusijs
Copy link

yusijs commented Oct 12, 2022

Yes, det ser riktig ut det! :)

@iotux
Copy link
Owner

iotux commented Oct 14, 2022

@jh1982
Det er en Kaifa 1-fase måler som du har. Pakken som du har dumpet over er en list2-pakke. Jeg har dekodet den slik:

{
  meterVersion: 'KFM_001',
  meterID: '6970631403xxxxxx',
  meterModel: 'MA105H2E',
  power: 1347,
  powerProduction: 0,
  powerReactive: 0,
  powerProductionReactive: 330,
  currentL1: 6005,
  voltagePhase1: 2350
}

Jeg har dessverre ikke tilgang til en slik måler, men det vil være en stor hjelp hvis du vil ta deg bryet med å kjøre "tibdumper.js" for meg og kopiere resultatet hit. Det er først og fremst den største pakken (hver hele time) som jeg er intressert i. Jeg trenger bare en.

Denne versjonen av "tibdumper.js" er det du skal bruke: https://gist.github.com/iotux/70da06a2881830eb6f806075fa42018b

Se også denne for sikkerhets skyld:
#9 (comment)

@yusijs
Copy link

yusijs commented Oct 14, 2022

@iotux litt offtopic - har du anledning til å sjekke hvilken firmware versjon du har på din tibber pulse? Min er ekstremt ustabil (har forsøkt med en ny + den gamle), og lurer på om det kan være noe med firmware utgaven. Ser at status som rapporteres status-noticen fra Elwiz sier "Build = 1.1.12", men tibber pulse sier 1.1.15 når den kaller update-endepunktet jeg har satt opp.

Vil egentlig bare se om det rett og slett kan være noe som er ødelagt i den siste utgaven av tibber pulse firmware og at jeg bare bør "gi opp" å bruke mer tid på å stabilisere den..

Jeg kjørte gjennom natten, og her er oppe / nedetiden:

  'Up from 2022-10-13 23:43:50 to 2022-10-13 23:22:58 for 21 minutes, Down for 9 minutes',
  'Up from 2022-10-14 00:10:10 to 2022-10-13 23:53:12 for 17 minutes, Down for 3 minutes',
  'Up from 2022-10-14 00:30:05 to 2022-10-14 00:13:29 for 17 minutes, Down for 10 minutes',
  'Up from 2022-10-14 01:01:51 to 2022-10-14 00:39:49 for 22 minutes, Down for 15 minutes',
  'Up from 2022-10-14 01:28:23 to 2022-10-14 01:16:23 for 12 minutes, Down for 8 minutes',
  'Up from 2022-10-14 01:54:45 to 2022-10-14 01:36:40 for 18 minutes, Down for 8 minutes',
  'Up from 2022-10-14 02:24:53 to 2022-10-14 02:02:53 for 22 minutes, Down for 8 minutes',
  'Up from 2022-10-14 02:40:16 to 2022-10-14 02:33:07 for 7 minutes, Down for 9 minutes',
  'Up from 2022-10-14 03:06:13 to 2022-10-14 02:49:21 for 17 minutes, Down for 9 minutes',
  'Up from 2022-10-14 03:31:39 to 2022-10-14 03:15:33 for 16 minutes, Down for 8 minutes',
  'Up from 2022-10-14 03:50:41 to 2022-10-14 03:39:57 for 11 minutes, Down for 10 minutes',
  'Up from 2022-10-14 04:09:31 to 2022-10-14 04:00:17 for 9 minutes, Down for 9 minutes',
  'Up from 2022-10-14 04:40:06 to 2022-10-14 04:18:37 for 21 minutes, Down for 9 minutes',
  'Up from 2022-10-14 05:10:19 to 2022-10-14 04:48:57 for 21 minutes, Down for 9 minutes',
  'Up from 2022-10-14 05:39:45 to 2022-10-14 05:19:11 for 21 minutes, Down for 10 minutes',

Det virker som den forsøker å gjøre en call-home til tibber på relativt jevne intervaller (svært mange ganger er den oppe i ca. 20 minutter, før den går offline i mellom 8-10 minutter). Pulsen blinker rødt som er signalet for "Ikke kontakt med tibber servere"
. Jeg antok dette kunne være enten update-endepunktet, men det kalles kun ved pairing & boot. Ergo må det enten være mqtt serveren (som jeg vet er oppe, jeg sitter og ser på den i mqtt explorer, samt pulse er den eneste tjenesten som kneler), wifi (ingenting annet dropper ut, jeg har flere esp32 enheter påkoblet som er helt stabile) eller noe gæli med tibber pulse.

Min tinfoil-hat teori er at den forsøker å lese ett eller annet fra en url som er hardkodet i pulse-firmwaren, og at dette gjør at pulse av en eller annen grunn kneler.

@iotux
Copy link
Owner

iotux commented Oct 14, 2022

@yusijs
Versjonen jeg har er rett gammel. Bortsett fra noen sporadiske bortfall, så er den ganske stabil. Den til og med overlevde ved utkobling av hovedsikringen da jeg fikk installert elbillader for noen dager siden. Jeg bør kanskje avstå fra noen som helst oppgradering. Du har hele pakken her.

{
  "status":{
    "rssi":-60, 
    "ssid":"xxxxxxxxx", 
    "usbV":"2.11", 
    "Vin":"26.58", 
    "Vcap":"4.36", 
    "Vbck":"4.53", 
    "Build":"0.11.4-beta", 
    "Hw":"F",  
    "bssid":"7824afxxxxxx",  
    "ID":"7CF057xxxxxx",  
    "Uptime":251041, 
    "mqttcon":0, 
    "pubcnt":60, 
    "rxcnt":60, 
    "wificon":0, 
    "wififail":0, 
    "bits":68, 
    "cSet":88, 
    "Ic":16.81, 
    "crcerr":0, 
    "cAx":1.145295, 
    "cB":16, 
    "heap":176516, 
    "baud":2400, 
    "meter":
    "Kaifa", 
    "ntc":27.76
  }
}

Hva slags endepunkt er det du nevner? Jeg har prøvd å finne URL til oppdatering uten å lykkes, men jeg har funnet et par kommandoer som den reagerer på. "reboot" og "update" om jeg ikke husker feil. Jeg tror det er nevnt i README.md for ElWiz.

@yusijs
Copy link

yusijs commented Oct 14, 2022

Riktig. Jeg har kjørt min opprinnelige mot tibber sin app tidligere (før jeg sa opp Tibber), og den nye koblet jeg rett mot mqtt, men den var allerede på siste versjon (1.1.5).

jeg vet ikke hva det originale endepunktet er eller hva det returnerer, men etter jeg satte opp en egen /update side til å fylle ut i update url feltet i oppsett-siden, så kalles dette:
[13/Oct/2022:20:01:22 +0200] "GET /update?version=1.1.15&context=boot&power=USB&rev=revF&meter=Aidon_V2 HTTP/1.0" 200 0 "-" "ESP32-http-Update"

Jeg venter på svar fra Tibber på om de vet hva som er problemet med pulse for tiden. Det samme skjer når den er koblet til Tibber appen, og det virket fint frem til for ca. en måneds tid siden. Hvis de ikke har noe godt svar til meg, tenker jeg å prøve å sette opp ett MITM AP jeg (forhåpentligvis) kan bruke til å spoofe trafikken og finne ut hva som skjer.

@jh1982
Copy link

jh1982 commented Oct 14, 2022

@jh1982 Det er en Kaifa 1-fase måler som du har. Pakken som du har dumpet over er en list2-pakke. Jeg har dekodet den slik:

{
  meterVersion: 'KFM_001',
  meterID: '6970631403xxxxxx',
  meterModel: 'MA105H2E',
  power: 1347,
  powerProduction: 0,
  powerReactive: 0,
  powerProductionReactive: 330,
  currentL1: 6005,
  voltagePhase1: 2350
}

Jeg har dessverre ikke tilgang til en slik måler, men det vil være en stor hjelp hvis du vil ta deg bryet med å kjøre "tibdumper.js" for meg og kopiere resultatet hit. Det er først og fremst den største pakken (hver hele time) som jeg er intressert i. Jeg trenger bare en.

Denne versjonen av "tibdumper.js" er det du skal bruke: https://gist.github.com/iotux/70da06a2881830eb6f806075fa42018b

Se også denne for sikkerhets skyld: #9 (comment)

Dette ser ut til å være den lengste pakken jeg mottar:
{"dec":[126,160,135,1,2,1,16,158,109,230,231,0,15,64,0,0,0,9,12,7,230,10,14,5,21,0,10,255,128,0,0,2,14,9,7,75,70,77,95,48,48,49,9,16,54,57,55,48,54,51,49,52,48,51,49,53,49,56,55,49,9,8,77,65,49,48,53,72,50,69,6,0,0,7,10,6,0,0,0,0,6,0,0,0,0,6,0,0,1,77,6,0,0,30,251,6,0,0,9,36,9,12,7,230,10,14,5,21,0,10,255,128,0,0,6,5,192,175,164,6,0,0,0,0,6,0,3,123,13,6,0,147,207,2,230,22,126],"hex":"7ea087010201109e6de6e7000f40000000090c07e60a0e0515000aff800000020e09074b464d5f30303109103639373036333134303331353138373109084d41313035483245060000070a06000000000600000000060000014d0600001efb0600000924090c07e60a0e0515000aff8000000605c0afa406000000000600037b0d060093cf02e6167e","length":137}

Den kom 21:00 ,håper det er den rette.

@iotux
Copy link
Owner

iotux commented Oct 14, 2022

"7ea087010201109e6de6e7000f40000000090c07e60a0e0515000aff800000020e09074b464d5f30303109103639373036333134303331353138373109084d41313035483245060000070a06000000000600000000060000014d0600001efb0600000924090c07e60a0e0515000aff8000000605c0afa406000000000600037b0d060093cf02e6167e"

Det er utmerket. Dette er List3-pakken. Her er resultatet:

{
  meterVersion: 'KFM_001',
  meterID: '6970631403xxxxxx',
  meterModel: 'MA105H2E',
  power: 1802,
  powerProduction: 0,
  powerReactive: 0,
  powerProductionReactive: 333,
  currentL1: 7931,
  voltagePhase1: 2340,
  meterDate: '2022 10 14 5:21:0',
  act_energy_pos: 101040303,
  act_energy_neg: 100663296,
  react_energy_pos: 100664187,
  react_energy_neg: 100701135
}

Jeg jobber med saken!

@TurboJens
Copy link
Author

@iotux etter å ha nedgradert til Node16 som anbefalt av @yusijs så køyrer elwiz og fetchprices men tibdumper virkar tilsynelatande til å køyre, men får ikkje noko output verken til fil eller console. Heller ingen feilmelding.

@yusijs
Copy link

yusijs commented Oct 22, 2022

@TurboJens husk at hvis du kjører tibdumper samtidig med elwiz er det kun en av de som plukker meldingen. Prøv å stanse elwiz og kjør tibdumper, og se om det funker kanskje?

@TurboJens
Copy link
Author

TurboJens commented Oct 22, 2022

@yusijs brukar ikkje elwiz for tida, sidan eg berre får list1, men eg tok berre klipp og lim frå konsollen, reknar med dette er list2 og list3: Kaifa MA304H4 (3-fas TN nett)

@iotux
`List2? 22.10.22 ca 2255
Raw data packet exception : {"type":"Buffer","data":[126,160,120,1,2,1,16,196,152,230,231,0,15,64,0,0,0,9,12,7,230,10,22,6,22,55,40,255,128,0,0,2,13,9,7,75,70,77,95,48,48,49,9,16,54,57,55,48,54,51,49,52,48,57,48,51,56,52,56,48,9,7,77,65,51,48,52,72,52,6,0,0,1,114,6,0,0,0,0,6,0,0,0,0,6,0,0,1,145,6,0,0,4,0,6,0,0,2,186,6,0,0,3,136,6,0,0,9,87,6,0,0,9,78,6,0,0,9,81,231,2,126]}

List3? 22.10.22 kl 2300
Raw data packet exception : {"type":"Buffer","data":[126,160,154,1,2,1,16,170,165,230,231,0,15,64,0,0,0,9,12,7,230,10,22,6,23,0,10,255,128,0,0,2,18,9,7,75,70,77,95,48,48,49,9,16,54,57,55,48,54,51,49,52,48,57,48,51,56,52,56,48,9,7,77,65,51,48,52,72,52,6,0,0,1,108,6,0,0,0,0,6,0,0,0,0,6,0,0,1,145,6,0,0,3,244,6,0,0,2,169,6,0,0,3,141,6,0,0,9,86,6,0,0,9,80,6,0,0,9,80,9,12,7,230,10,22,6,23,0,10,255,128,0,0,6,0,32,22,101,6,0,0,0,0,6,0,0,1,36,6,0,20,212,49,104,77,126]}`

@yusijs
Copy link

yusijs commented Oct 23, 2022

@TurboJens ser dette riktig ut?

  {
    type: 'list2',
    power: 370,
    powerProduction: 0,
    powerReactive: 0,
    powerProductionReactive: 401,
    currentL1: 1024,
    currentL2: 698,
    currentL3: 904,
    voltagePhase1: 2391,
    voltagePhase2: 2382,
    voltagePhase3: 2385,
    lastMeterConsumption: null,
    lastMeterProduction: null,
    lastMeterConsumptionReactive: null,
    lastMeterProductionReactive: null,
    meterVersion: 'KFM_00',
    meterId: '697063140903848',
    meterType: 'MA304H',
  }
{
    type: 'list3',
    power: 364,
    powerProduction: 0,
    powerReactive: 0,
    powerProductionReactive: 401,
    currentL1: 1012,
    currentL2: 681,
    currentL3: 909,
    voltagePhase1: 2390,
    voltagePhase2: 2384,
    voltagePhase3: 2384,
    lastMeterConsumption: 2102885,
    lastMeterProduction: 0,
    lastMeterConsumptionReactive: 292,
    lastMeterProductionReactive: 1365041,
    meterVersion: 'KFM_00',
    meterId: '697063140903848',
    meterType: 'MA304H',
    meterDate: '2022-11-22 23:00:10'
  }

@TurboJens
Copy link
Author

TurboJens commented Oct 23, 2022

@yusijs strøkent :-)
Har dog litt lite kjennskap til desse reaktive verdiane. Sikkert riktig.

@iotux
Copy link
Owner

iotux commented Oct 23, 2022

@TurboJens , @yusijs
Sikker på at det ikke mangler et tegn på slutten av meterVersion, meterID og meterModel?
Her er mine:

{
  "timestamp": "2022-11-23T13:17:20",
  "meterVersion": "KFM_001",
  "meterID": "6970631403757615",
  "meterModel": "MA304H3E",
  "power": 3.714,
  "minPower": 0.814,
  "maxPower": 5.961,
  "powerProduction": 0,
  "powerReactive": 4.161,
  "powerProductionReactive": 0,
  "currentL1": 14.656,
  "currentL2": 14.329,
  "currentL3": 12.559,
  "voltagePhase1": 234.5,
  "voltagePhase2": 234,
  "voltagePhase3": 234
}

Lengden og mønsteret på "meterID" tyder på det.
6970631403757615
697063140903848

Det er forøvrig en oppdatering på gang

@TurboJens
Copy link
Author

@iotux du har nok rett, her er verdi frå MQTT der eg bruka den node-red pluginen:

{
"obis_list_version": "KFM_001",
"meter_ID": "6970631409038480",
"meter_model": "MA304H4",
"act_pow_pos": 374,
"act_pow_neg": 0,
"react_pow_pos": 0,
"react_pow_neg": 408,
"curr_L1": 1115,
"curr_L2": 705,
"curr_L3": 835,
"volt_L1": 2372,
"volt_L2": 2363,
"volt_L3": 2365
}

Legg til list3 når den dukkar opp

@yusijs
Copy link

yusijs commented Oct 23, 2022

Helt riktig @iotux - jeg hadde bomma litt med offseten min (ikke tatt høyde for forskjell på 1-fase kontra 3-fase måler)

@TurboJens
Copy link
Author

@yusijs kan legge til at heilt ut av det blå så begynte min Pulse å tulle og. Den klagar på lav spenning og restartar omtrent like raskt som den er oppe å gå. Litt usikker på kor lenge den evt. har helde på med detta sidan eg ikkje sitte å ser på den heile tida, men veit at den viste uptime 7x xxx i går.

312646123_1077581819608127_8383409171353203439_n

@yusijs
Copy link

yusijs commented Oct 23, 2022

Oida, den virker jo lei. Jeg har begynt å gi opp å få min helt stabil egentlig. Har ett siste forsøk jeg vil gjøre (teste ssl på mosquitto brokeren), men jeg har egentlig testet alt jeg kan komme på nå (eget wifi punkt, med/uten auth, oppdatert, ekstern strømforsyning, montere utenpå sikringsskap osv). Kjører nå kontrollerte reboots *:45 og *:55, da krasjer den iallefall bare 1 gang i timen 🙈 og jeg får stort sett med meg list3 som er den viktigste.

@TurboJens
Copy link
Author

Min Pulse er no heilt ubrukeleg, den er stort sett oppe ein eller fleire gongar i døgnet slik at døgnstatistikken i HomeAssistant blir sånn nogenlunde men ikkje noko meir enn det.

Litt vanskeleg å klage på den kanskje når eg ikkje er Tibberkunde så håpar nokon her forstår seg på den. Ut i frå feilmeldingane så kan det virke som om det er noko problem med spenningsforsyninga frå AMS målaren, har tenkt på koble til en powerbank for å sjå om den blir meir stabil.

@yusijs
Copy link

yusijs commented Nov 4, 2022

Forsøkt å kjøre den med en ekstern strømforsyning?

@iotux
Copy link
Owner

iotux commented Nov 12, 2022

@yusijs @TurboJens
Jeg har laget en ny branch. Det er tildels radikale endringer i struktur. Forhåpentligvis virker det for Kaifa også
https://github.com/iotux/ElWiz/tree/ElWiz-2022

@marcelcastrobr
Copy link

Hi @iotux, I går tested jeg din branch ElWiz-2022 og den virker i min Aidon måler.
Jeg for folgende data:
data: { power: 3.165, minPower: 0.333, maxPower: 10.306 }
Og notice status ser det ut san:

Notice: Pulse status: meter/status  {
  status: {
    rssi: -47,
    ch: 11,
    ssid: 'XXX,
    usbV: '2.05',
    Vin: '23.79',
    Vcap: '4.45',
    Vbck: '4.55',
    Build: '1.1.14',
    Hw: 'F',
    bssid: 'XXX',
    ID: 'XXX',
    Uptime: 37080,
    mqttcon: 0,
    pubcnt: 48,
    rxcnt: 48,
    wificon: 0,
    wififail: 0,
    bits: 70,
    cSet: 93,
    Ic: 0,
    crcerr: 0,
    cAx: 1.167324,
    cB: 13,
    heap: 211320,
    baud: 2400,
    meter: 'Aidon_V2',
    ntc: 21.26,
    's/w': 0,
    ct: 0,
    dtims: 1177
  }
}

Er det andre parameter from måler bortsett fra power, minPower, maxPower som man kan leser?

@iotux
Copy link
Owner

iotux commented Jan 16, 2023

@marcelcastrobr
Her er hva du skal få ut hvert 10. sekund:

List2: plugselector {
  timestamp: '2023-01-16T08:00:00+01:00',
  power: 0.637,
  powerProduction: 0,
  powerReactive: 0,
  powerProductionReactive: 0.182,
  currentL1: 2.298,
  currentL2: 2.106,
  currentL3: 1.383,
  voltagePhase1: 234.3,
  voltagePhase2: 233,
  voltagePhase3: 232.3,
  minPower: 0.59,
  maxPower: 3.716,
  averagePower: 0,
  publisher: 'hassPublish'
}

Her er hva du skal få ut hver time:

List3: plugselector {
  timestamp: '2023-01-16T08:00:10+01:00',
  power: 0.641,
  powerProduction: 0,
  powerReactive: 0,
  powerProductionReactive: 0.182,
  currentL1: 2.317,
  currentL2: 2.13,
  currentL3: 1.384,
  voltagePhase1: 234.3,
  voltagePhase2: 233,
  voltagePhase3: 232.4,
  meterDate: '2023-01-16T08:00:10+01:00',
  lastMeterConsumption: 86617.484,
  lastMeterProduction: 0,
  lastMeterConsumptionReactive: 38284.119,
  lastMeterProductionReactive: 2335.872,
  minPower: 0.59,
  maxPower: 3.716,
  averagePower: 0,
  accumulatedConsumptionLastHour: 1.425,
  accumulatedProductionLastHour: 0,
  accumulatedConsumption: 12.071,
  accumulatedProduction: 0,
  curHour: '08:00',
  spotPrice: 0.9599,
  startTime: '2023-01-16T08:00:00',
  endTime: '2023-01-16T09:00:00',
  minPrice: 0.7299,
  maxPrice: 1.0678,
  avgPrice: 0.884,
  peakPrice: 0.9711,
  offPeakPrice1: 0.7974,
  offPeakPrice2: 0.7961,
  spotPriceDay2: 0.9599,
  startTimeDay2: '2023-01-16T08:00:00',
  endTimeDay2: '2023-01-16T09:00:00',
  minPriceDay2: 0.7299,
  maxPriceDay2: 1.0678,
  avgPriceDay2: 0.884,
  peakPriceDay2: 0.9711,
  offPeakPrice1Day2: 0.7974,
  offPeakPrice2Day2: 0.7961,
  customerPrice: 2.1433,
  costLastHour: 3.0542,
  accumulatedCost: NaN,
  rewardLastHour: 0,
  accumulatedReward: NaN,
  publisher: 'hassPublish'
}

Jeg er i Asia med litt kummerlige arbeidsforhold, men det vil komme en oppdatering om kort tid

@marcelcastrobr
Copy link

Hei @iotux,
Thanks for the quick answer.
Jeg har en Aidon 6525 (Aidon 6483SE RF500).
Jeg har subscribed til min mqtt broker med "elwiz/#" men får bara list1. list2 og list3 kommer ikke.
Er det noen i config.yaml filen min?

Min config.yaml filer er her: https://github.com/marcelcastrobr/ElWiz/blob/ElWiz-2022/config.yaml .

@iotux
Copy link
Owner

iotux commented Jan 16, 2023 via email

@marcelcastrobr
Copy link

Hei, takk for hjelp.
Her kommer to eksempler på hex pakke med tibdumper.js .
Jeg har kjørte flere minuter men det ser ut at bara list0-xxx.json kommer ut.
Jeg ser ikke list2-xxx.json som skulle være etter 10 sekunder.

pi@raspberrypi:~/ElWiz $ more list0-12:13:18.json
{"dec":[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,7,0,2,2,15,0,22,27,
160,187,126],"hex":"7ea02a410883130413e6e7000f40000000000101020309060100010700ff060000070002020f00161ba0bb7e","
length":44}
pi@raspberrypi:~/ElWiz $ more list0-12:19:33.json
{"dec":[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,7,20,2,2,15,0,22,27
,31,97,126],"hex":"7ea02a410883130413e6e7000f40000000000101020309060100010700ff060000071402020f00161b1f617e","l
ength":44}

Er dette ok, eller trenger du flere logs?

@iotux
Copy link
Owner

iotux commented Jan 16, 2023

Du kan laste ned denne og la den kjøre i samme directory som ElWiz. Den lager en ny datert HEX-fil hvert 10. minutt. Du kan la den kjøre så lenge du orker. Etterpå må aidon.js fores med disse filene. Det kan du muligens prøve selv hvis du leser aidon.js.

Du kan prøve å legge en slik HEX-streng som en constant over linje 58 og deretter sette inn navnet på constanten i funksjonen på linje 58 slik:

const hex = "7EA079010201108093E6E7000F40000000090C07E60B0E01091E00FF800--------";
const listDecode = async function (hex) {

Så blir det spennende å se om du får meningsfylt output.
Dessverre så er jeg ikke oppsatt med software lab her. Jeg har en skarve laptop og SIM-basert WiFi her jeg bor. Båndbredden er elendig.

Her finner du programmet:
https://gist.github.com/iotux/9210e914e838f0188709b2ef07ebb7c7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants