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

Anbefalte innlegg

Skrevet

Jeg gjorde nylig en liten endring i et av javascriptene i en funksjonsblokk og plutselig en gang i døgnet eller så (ikke bundet til noe fast klokkeslett) går variabelen "kWh_acc += 0.01;" helt bananas. Endret fra "kWh_acc = kWh_acc + 0.01;" og gjorde endringen for å strømlinjeforme scriptet litt. Opprinnelig funksjon har virket helt supert i et år mens den nye versjonen feiler ca en gang i døgnet. Scriptet kjører ca hvert 2. sekund men selve inkrementeringen skjer bare på visse betingelser.

 

I noderedguide.com står følgende å lese:

Sitat

Basic Operators

The built-in numerical operators include the usual: + (addition), – (subtraction), / (division), * (multiplication) and % (modulo).

Listing 5.3 numerical operations in JavaScript

  1. var a = 6;
  2. a = a + 1; // a is 7
  3. b = b % 2; // b is 3
  4. a++; // a is 8
  5. a–; //a is 7
  6. a += 3; // a is 10

...så += operatøren er gyldig.

 

kWh_acc skrives til kun i 1 funksjonsblokk og verdier som skrives er enten "0" eller "+= 0.01" men likevel blir verdien plutselig f.eks 3870.24000003805. Normalt skal alltid verdien være typisk under 5.

 

Noen gode programerere her (ja, jeg vet der er noen...) som har en plausibel teori?

Skrevet

Merksnodige greier... Endret tilbake til "kWh_acc = kWh_acc + 0.01" og det feiler i ny og ne likevel. Høyeste verdien jeg har sett er omlag 207132.10569 og den økningen skjer i løpet av EN gjennomkjøring...

 

d=new Date();
var kWh_part = context.get("kWh_part");
var prev_hour =context.get("prev_hour");
var previous_time =context.get("prevtime");
var prev_h_ts =context.get("prev_h_ts");

var kWh_acc =flow.get("kWh_acc");
var kWh_accGet = kWh_acc;	// For DEBUG, lagre lest verdi i annen variabel i tillegg for evt bruk senere

var value=Number(msg.payload);
var d=new Date();
var hours=d.getHours(); //the hour (0-23)
var timeest = 0;
var kWh_est = 0;
var kWh_prev_h = 0;

// Finn antall mS siden forrige melding ble mottatt
var end_time=d.getTime();
var difference=end_time-previous_time;
previous_time=end_time;

//Akkumuler måleverdi hver gang den dukker opp
kWh_part += (value * difference);
//node.warn("W x diff: " + (value * difference));

while (kWh_part > 36000000){            // Midlertidig variabel inneholder mer enn 0.01 kWh
                                        //ms til H, W til kW, 2 desimaler 1000*60*60*1000/100 = 36000000
    kWh_acc = kWh_acc + 0.01;                    //inkrementer akkumulert verdi
    kWh_part = kWh_part - 36000000;     //...og trekk fra samme verdi i kWh_part
    node.warn("kWh_acc inc: " + kWh_acc);
}

// DEBUG
if (kWh_acc > 10 || prev_hour != hours){
    node.warn("kWh_accGet:" + kWh_accGet);
    node.warn("kWh_acc:" + kWh_acc);
    node.warn("kWh_part:" + kWh_part);
    node.warn("prev_hour:" + prev_hour);
    node.warn("previous_time:" + previous_time);
    node.warn("prev_h_ts:" + prev_h_ts);
    node.warn("value:" + value);
    node.warn("hours:" + hours);
    node.warn("difference:" + difference);
    
}

// Ta vare på siste akkumulerte timeverdi og nullstill
if (prev_hour != hours){
    kWh_prev_h = kWh_acc;
    kWh_acc = 0;
    prev_h_ts = d.getTime(); //Tidspunkt for start estimering
    prev_hour = hours;
    flow.set("kWh_prev_h", kWh_prev_h);
    }

//Estimer total for denne time
if (kWh_acc >= 0.00){    //*****Vent litt hver time for å finne nyttige data å jobbe med
    timeest = d.getTime() - prev_h_ts;
    kWh_est = (kWh_acc/timeest) * (60*60*1000)
    }
else
    {
        kWh_est = kWh_prev_h;
    }

if (kWh_acc > 20){
    kWh_acc = kWh_accGet;
    node.warn("kWh_acc > 20, automatisk satt til kWh_accGet (sikkerhetsfunksjon)"+kWh_accGet);
} 

context.set("kWh_part",kWh_part);
context.set("prevtime", previous_time);
context.set("prev_hour", prev_hour);
context.set("timeest", timeest);
context.set("prev_h_ts", prev_h_ts);

flow.set("kWh_acc",kWh_acc);
flow.set("kWh_est", kWh_est);

return;

 

Har laget et par debug funksjoner, en som dumper alle aktuelle variabler til logg ved feil og en gang i timen "if (kWh_acc > 10 || prev_hour != hours){" og en annen som "sletter" katastrofen og gjør at ting og tang fortsetter "if (kWh_acc > 20){"

Skrevet

Feilrettingsrutinen gjør jobben men jeg merker meg at der er et tidspunkt som går igjen, 1m10s over heltimen:

image.thumb.png.cbce5bfa00dd28479194d90ccf2c0118.png

 

Skjønner likevel ikke hva som skjer...

Skrevet

Vet du hvor mange ganger den går gjennom sløyfen? Hva om kwh_part er "unsigned int" og når du trekker fra 36000000 så kan kwh_part ende opp med å få en veldig stor verdi. Kanskje.

Men hvorfor har du en sløyfe der i det hele tatt? Kan du ikke bare regne ut kwh_acc og kwh_part?

Skrevet
stigvi skrev (1 minutt siden):

Men hvorfor har du en sløyfe der i det hele tatt? Kan du ikke bare regne ut kwh_acc og kwh_part?

Jeg hadde ikke sløyfe der i utgangspunktet men mistenkte at kWh_part noen ganger var større enn 36000000, normalt skal den ikke kunne bli det. Det er nok bare de gangene scriptet feiler...

 

Vet egentlig ikke hvilken type variabel det er men har sjekket at den i alle fall kan inneholde 100 ganger 36000000.

Skrevet
SveinHa skrev (Akkurat nå):

Jeg hadde ikke sløyfe der i utgangspunktet men mistenkte at kWh_part noen ganger var større enn 36000000, normalt skal den ikke kunne bli det. Det er nok bare de gangene scriptet feiler...

 

Vet egentlig ikke hvilken type variabel det er men har sjekket at den i alle fall kan inneholde 100 ganger 36000000.

Det vesentlig er om den er unsigned. Da feiler det hvis du gjør 23000000 - 36000000

Skrevet (endret)
stigvi skrev (11 minutter siden):

Det vesentlig er om den er unsigned

Sjekker, takker og bukker for tips.

 

Edit:

Et slikt script:

var a = 23000000;
var b = 36000000;
node.warn(a);
node.warn(b);
node.warn(a-b);

resulterer i:

image.png.323d9e1add3f38955fa455c1e112175d.png

Endret av SveinHa
Skrevet

Men her er det context.get("kWh_part") sin returverdi som bestemmer datatypen. 

Javascript har noen merkelig funksjonalitet ang datatyper og jeg er på gyngende grunn her. Kjenner ikke javascript godt nok. Men her må du se på sannsynlige årsaker. Javascript roter ikke med noe så enkelt som kWh_acc = kWh_acc + 0.01; Det nekter jeg å tro på.

  • Like 1
Skrevet

La inn:

node.warn(kWh_part)
node.warn(kWh_part - 45000000)

helt i slutten av scriptet og resultatet er:

image.png.fc012ebe9c1a1e3027bfc28bfc6d0c7e.png

 

Blir ikke stort klokere...

 

Men den automatiske feilrettingen gjør jobben, har ikke fått noen katastrofer siden jeg la inn den og eneste ulempen, bortsett at det er å rette feil feil, er at jeg mister 2 sekund energidata en gang og 2 i døgnet og det er uvesentlig.

Skrevet

node.warn(kWh_part - 45000000)

Dette setter jo ikke kWh_part til en ny verdi og du vil derfor ikke se hva som skjer. Her setter du en parameter til funksjonen warn og den har nok en annen datatype enn det kWh_part har. Ta heller å skriv ut kWh_part i koden din og se hva det er der.

Eller sett kWh_part til en int32 og se om feilen forsvinner

Skrevet
stigvi skrev (7 minutter siden):

Eller sett kWh_part til en int32 og se om feilen forsvinner

Vet ikke om jeg kan gjøre det. Har lett litt etter variabeltyper uten å finne noe...

 

Ny variant:

node.warn(kWh_part);
kWh_part = kWh_part - 45000000;
node.warn(kWh_part);

Samme resultat:

image.png.51cd0605b1e169d6939ab9623b9bca87.png

 

  • 10 måneder senere...
Skrevet

Denne her har gått litt i glemmeboken for jeg har laget en quick-and-dirty fix som ignorerer operasjonen når den feiler. I dag oppdaget jeg plutselig at data fra AMS-måleren ga noen hinsides feil verdier, det som skulle være aktuelt forbruk (som da skulle være mellom 0.0 og 0.1kW) var et tall på noen titalls siffer. Gikk inn i loggen og fant at fixen min hadde slått til akkurat da... Jeg har sett de merkelige tallene noen ganger tidligere men ikke koblet de til denne funksjonen... Da har jeg noe helt konkret å lete etter, fortsettelse følger...

Skrevet

Eg og kan huske at eg fekk av og til noen feile verdier fra AMS måleren så eg la inn denne på forbruket 🙂
Satt aldri opp noe log på output2 så kan ikkje svare på hvor ofte det skjer da...

image.png.c4426d2700eb21c539789aacdc67f5df.png

  • Like 1
Skrevet

Bra det 🙂

Har satt opp logging på min og men har byttet fra Pulse til POW-U ams leser, den har eg ikkje hatt noe problemer med, den gamle Pulsen (v1) fra Tibber måtte eg restarte flere ganger i veka...

  • 2 uker senere...
Skrevet
hflatoey skrev (På 8.11.2023 den 20.27):

har byttet fra Pulse til POW-U ams leser

Oppdaget i natt at Tibber Pulse ikke bare gir jevnlige feilmeldinger men også har lengre perioder der den ikke sender data i det hele tatt og det forklarer hvorfor jeg enkelte ganger overskrider 5 kWh grensen, PID-regulatoren får ikke data å jobbe med og klarer da ikke å gjøre jobben sin... Forrige mnd havnet jeg på snitt topp 3 på 5.01 kWh og denne mnd fikk jeg 1 time på 5.29 som pr i dag gir et topp 3 snitt på 4.97 kWh... Pow-U bestilt...

Skrevet

Eg har enda ikkje logget nokon feilmeldinger på min Pow-U 🙂

Her er det forskjellige variablene fra pow-u mqtt, du finne det selvfølgelig på siden deres men kan spare deg for nokon minutter 🙂

 

[
    {
        "id": "6ccae45488a512f5",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "obis_list_version",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.lv",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 640,
        "y": 5830,
        "wires": [
            []
        ]
    },
    {
        "id": "a7a5a1e9bbb5f9ee",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "meter_ID",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.id",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 5870,
        "wires": [
            []
        ]
    },
    {
        "id": "644e5c9b35933f7a",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "meter_model",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.type",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 620,
        "y": 5910,
        "wires": [
            []
        ]
    },
    {
        "id": "a5e9e9299133ba6f",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "active_import",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.P",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 620,
        "y": 5950,
        "wires": [
            []
        ]
    },
    {
        "id": "7bc00ccd14c3a1b4",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "active-export",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.PO",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "power_negative",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 620,
        "y": 5990,
        "wires": [
            []
        ]
    },
    {
        "id": "d12ed57ee18ea3f6",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "react_pow_pos",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.Q",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 630,
        "y": 6030,
        "wires": [
            []
        ]
    },
    {
        "id": "a00bb2e453d570e6",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "react_pow_neg",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.QO",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 630,
        "y": 6070,
        "wires": [
            []
        ]
    },
    {
        "id": "508002709318ff6b",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "curr_I1",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.I1",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6110,
        "wires": [
            []
        ]
    },
    {
        "id": "7af48b1247ada151",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "curr_I2",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.I2",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6150,
        "wires": [
            []
        ]
    },
    {
        "id": "7aa5e29086298785",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "curr_I3",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.I3",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6190,
        "wires": [
            []
        ]
    },
    {
        "id": "71ddc234246f06f0",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "volt_U1",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.U1",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6230,
        "wires": [
            []
        ]
    },
    {
        "id": "5c9b85344e1879c6",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "volt_U2",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.U2",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6270,
        "wires": [
            []
        ]
    },
    {
        "id": "e5fd43b38afcea82",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "volt_U3",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.U3",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6310,
        "wires": [
            []
        ]
    },
    {
        "id": "5b30d545dfffc308",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "date_time",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.t",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 6350,
        "wires": [
            []
        ]
    },
    {
        "id": "bf0ac4623924b3a1",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "act_energy_pos",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.tPI",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 630,
        "y": 6390,
        "wires": [
            []
        ]
    },
    {
        "id": "e5b4eea0966368ae",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "act_energy_neg",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.tPO",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 630,
        "y": 6430,
        "wires": [
            []
        ]
    },
    {
        "id": "a593d868c2942819",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "react_energy_pos",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.tQI",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 640,
        "y": 6470,
        "wires": [
            []
        ]
    },
    {
        "id": "3b779dbe7c0bbec8",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "react_energy_neg",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.data.tQO",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 640,
        "y": 6510,
        "wires": [
            []
        ]
    },
    {
        "id": "f98b54ec89d424c6",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "power_export_today",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.realtime.de",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "power_export_today_kWh",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 650,
        "y": 6550,
        "wires": [
            []
        ]
    },
    {
        "id": "ab727fe1b6875496",
        "type": "change",
        "z": "8772153e519ddf77",
        "name": "power_import_today",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.realtime.d",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "power_import_today_kWh",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 650,
        "y": 6590,
        "wires": [
            []
        ]
    },
    {
        "id": "17fce8e6fa731798",
        "type": "junction",
        "z": "8772153e519ddf77",
        "x": 470,
        "y": 5830,
        "wires": [
            [
                "508002709318ff6b",
                "7af48b1247ada151",
                "7aa5e29086298785",
                "71ddc234246f06f0",
                "5c9b85344e1879c6",
                "e5fd43b38afcea82",
                "5b30d545dfffc308",
                "a5e9e9299133ba6f",
                "7bc00ccd14c3a1b4",
                "d12ed57ee18ea3f6",
                "a00bb2e453d570e6",
                "644e5c9b35933f7a",
                "a7a5a1e9bbb5f9ee",
                "6ccae45488a512f5",
                "bf0ac4623924b3a1",
                "e5b4eea0966368ae",
                "a593d868c2942819",
                "3b779dbe7c0bbec8",
                "f98b54ec89d424c6",
                "ab727fe1b6875496"
            ]
        ]
    }
]

 

  • Like 1
  • 2 uker senere...
Skrevet

Da har Tibber Pulse blitt erstattet av en Pow-U. Fikk ikke kontakt med måleren med en gang men mail til leverandøren løste det kjapt med en mod av flatkabelen (klipp av 6 av de 8 lederene i kabelen).

 

Måtte lage en dekoder for å plukke ut det jeg hadde bruk for (og litt til...). Alle variabler lagres i context så en lett ser hva som mottas og meldingene som sendes ut fra parser har variabelnavn som topic og verdi som payload.

image.png.fbb4f75959037666600bc30c87de8f1f.png

[{"id":"65ea1e7bb98daffa","type":"mqtt in","z":"d49bfe3335c3f7c9","g":"dbfdc3187c26119e","name":"","topic":"AMS2444","qos":"2","datatype":"json","broker":"6db118ed1b0c56de","nl":false,"rap":true,"rh":0,"inputs":0,"x":510,"y":230,"wires":[["f397b4d289507a40"]]},{"id":"e1079fb657039456","type":"switch","z":"d49bfe3335c3f7c9","g":"dbfdc3187c26119e","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"lv","vt":"str"},{"t":"eq","v":"id","vt":"str"},{"t":"eq","v":"type","vt":"str"},{"t":"eq","v":"P","vt":"str"},{"t":"eq","v":"PO","vt":"str"},{"t":"eq","v":"Q","vt":"str"},{"t":"eq","v":"QO","vt":"str"},{"t":"eq","v":"I1","vt":"str"},{"t":"eq","v":"I2","vt":"str"},{"t":"eq","v":"I3","vt":"str"},{"t":"eq","v":"U1","vt":"str"},{"t":"eq","v":"U2","vt":"str"},{"t":"eq","v":"U3","vt":"str"},{"t":"eq","v":"t","vt":"str"},{"t":"eq","v":"tPI","vt":"str"},{"t":"eq","v":"tPO","vt":"str"},{"t":"eq","v":"tQI","vt":"str"},{"t":"eq","v":"tQO","vt":"str"},{"t":"eq","v":"de","vt":"str"},{"t":"eq","v":"d","vt":"str"}],"checkall":"true","repair":false,"outputs":20,"x":710,"y":290,"wires":[["28da6720644d498d"],["77bb37dba05492c8"],["02e52739b1778564"],["601ad97359338ee8","0d448e2eda93e3f5"],["cb5c07e95696c22f"],["f478071c8e5cb5f8"],["6415c3d212573f40"],["e17a590eaf38c069"],["ab769ab7a73d2f1b"],["b92108f128318400"],["c7bd2bc1e2d979ec"],["a068057361d32681"],["9fa94094cca4661e"],["e00a5ecf722b1935"],["306b9dbcfdc44198","d73316cd8666bfbe"],["88bb36685a27ac4e","53099fc91fe8e897"],["bc3892361a9d5c08"],["cfd7fc377135778d"],["d45b7fff6ee76fa5"],["dc19fb1fcb2b42d0"]]},{"id":"f397b4d289507a40","type":"function","z":"d49bfe3335c3f7c9","g":"dbfdc3187c26119e","name":"Pow-U AMS parser","func":"var tmp = msg.payload.data;\nvar msg2 = {}\nvar index = 0;\nfor (const key in tmp) {\n  if (tmp.hasOwnProperty(key)) {\n        //node.warn(`Index: ${index}, ${key}: ${tmp[key]}`);\n        msg2.topic = key;\n        msg2.payload = tmp[key];\n        context.set(msg2.topic,msg2.payload);\n        node.send(msg2);\n        index++;\n    }\n}\ntmp = msg.payload;\nindex = 0;\nfor (const key in tmp) {\n  if (tmp.hasOwnProperty(key)) {\n        //node.warn(`Index: ${index}, ${key}: ${tmp[key]}`);\n        msg2.topic = key;\n        msg2.payload = tmp[key];\n        context.set(msg2.topic,msg2.payload);\n        node.send(msg2);\n        index++;\n    }\n}\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":290,"wires":[["e1079fb657039456"]]},{"id":"6db118ed1b0c56de","type":"mqtt-broker","name":"DaleMQTT","broker":"172.16.0.94","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

 

En mer kompakt liste over variabler enn den som @hflatoey postet:

Sitat

obis_list_version: lv
meter_ID: id
meter_model: type
active_import: P
active-export: PO
react_pow_pos: Q
react_pow_neg: QO
curr_I1: I1
curr_I2: I2
curr_I3: I3
volt_U1: U1
volt_U2: U2
volt_U3: U3
date_time: t
act_energy_pos: tPI
act_energy_neg: tPO
react_energy_pos: tQI
react_energy_neg: tQO
power_export_today: de
power_import_today: d

Ser ut til å funke supert så langt.

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.