Tagesverbrauch an Strom in Red Matic ausrechnen
Moderator: Co-Administratoren
Tagesverbrauch an Strom in Red Matic ausrechnen
Hallo zusammen
Leider komme ich nicht weiter und hoffe hier kann mir jemand weiter helfen. Ich habe ein Shelly 3EM verbaut welches mir laufend den aktuellen wert raus gibt. Diesen aktuellen wert habe ich auch in node red und kann ihn auf dem Dashboard ausgeben.
Nun suche ich aber eine Möglichkeit den aktuellen Tagesverbrauch anzuzeigen. Dies ist nicht ganz einfach oder ich stehe komplett auf dem Schlauch. Da das Shelly den wert unregelmässig ausgibt also nicht zuverlässig jede Sekunde müsste da ein script her welches die Daten umrechnet.
Also shelly gibt den aktuellen wert in Wh raus zu "unregelmässigen" Zeiten z.B. jede Sekunde. Nun möchte ich daraus den Tagesbedarf errechnen.
Hat dies schon mejmandg emahct oder eine Idee wo ich weiter suchen kann ?
Danke für eure Hilfe
Thomas
Leider komme ich nicht weiter und hoffe hier kann mir jemand weiter helfen. Ich habe ein Shelly 3EM verbaut welches mir laufend den aktuellen wert raus gibt. Diesen aktuellen wert habe ich auch in node red und kann ihn auf dem Dashboard ausgeben.
Nun suche ich aber eine Möglichkeit den aktuellen Tagesverbrauch anzuzeigen. Dies ist nicht ganz einfach oder ich stehe komplett auf dem Schlauch. Da das Shelly den wert unregelmässig ausgibt also nicht zuverlässig jede Sekunde müsste da ein script her welches die Daten umrechnet.
Also shelly gibt den aktuellen wert in Wh raus zu "unregelmässigen" Zeiten z.B. jede Sekunde. Nun möchte ich daraus den Tagesbedarf errechnen.
Hat dies schon mejmandg emahct oder eine Idee wo ich weiter suchen kann ?
Danke für eure Hilfe
Thomas
- Henke
- Beiträge: 1536
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 144 Mal
- Danksagung erhalten: 309 Mal
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
Der 3EM ist zusätzlich auch noch kritisch was die Datenmengen angeht und die Summe muss auch noch berechnet werden.
Hat etwas gedauert, bis ich den im Griff hatte.
Ergebnis: So etwas suchst du?
Hat etwas gedauert, bis ich den im Griff hatte.
Ergebnis: So etwas suchst du?
- Baxxy
- Beiträge: 11009
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 631 Mal
- Danksagung erhalten: 2280 Mal
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
Sag bloß die Shelly's haben keinen Tagesenergiezähler?
Bei Tasmota gibt's:
ENERGY Today
ENERGY Yesterday
ENERGY Total
Ansonsten ist das doch recht einfache Mathematik.
Um 00:00 den Zählerstand in den Kontext speichern und bei jeder Aktualisierung den "Kontext-Wert" vom aktuellen Wert abziehen.
Bei Tasmota gibt's:
ENERGY Today
ENERGY Yesterday
ENERGY Total
Ansonsten ist das doch recht einfache Mathematik.
Um 00:00 den Zählerstand in den Kontext speichern und bei jeder Aktualisierung den "Kontext-Wert" vom aktuellen Wert abziehen.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
ohhh ja genau so was suche ich aber mal ganz einfach nur für den tagesverbrauch zu errechnen. mal zum anfangen. hast du da ein einfaches script ?
- Henke
- Beiträge: 1536
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 144 Mal
- Danksagung erhalten: 309 Mal
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
LOL
Theorie und Praxis
Basis MQTT und die ist gut von der Performance her.
Der 3EM liefert kein Total und hat auch keine Möglichkeit Scripte zu hinterlegen. Der Nachfolger kann es.
Wenn es nur um die Energie geht, ist es noch recht harmlos, wobei die Tasmota bestimmt auch zwischen In und Out sowie Summe unterscheiden...
Aber um Live den aktuellen Verbrauch anzuzeigen, muss der Strom her und da fängt es an zu einem Problem der Datenverarbeitung zu werden.
Immer im Hinterkopf, es läuft auf einer CCU3 und darf nicht mehr als 0,5 Prozent der Rechenleistung nutzen. Mein Limit
Der Dreh ist, die Werte erst auf 5 Minuten zu berechnen und dann auf einer Stunde anzuzeigen. Der Rest läuft über Energy mit Aufteilung in Stunde, Tag, Monat, Jahr und entsprechender Hochrechnung. Dabei werden die Überläufe, egal ob sie von Shelly oder Homatik kommen natürlich abgefangen und jedes neue Gerät braucht nur den Eintrag Gewerk "Strom" und schon ist es mit dabei.
Das ganze sieht so aus...
Theorie und Praxis
Basis MQTT und die ist gut von der Performance her.
Der 3EM liefert kein Total und hat auch keine Möglichkeit Scripte zu hinterlegen. Der Nachfolger kann es.
Wenn es nur um die Energie geht, ist es noch recht harmlos, wobei die Tasmota bestimmt auch zwischen In und Out sowie Summe unterscheiden...
Aber um Live den aktuellen Verbrauch anzuzeigen, muss der Strom her und da fängt es an zu einem Problem der Datenverarbeitung zu werden.
Immer im Hinterkopf, es läuft auf einer CCU3 und darf nicht mehr als 0,5 Prozent der Rechenleistung nutzen. Mein Limit
Der Dreh ist, die Werte erst auf 5 Minuten zu berechnen und dann auf einer Stunde anzuzeigen. Der Rest läuft über Energy mit Aufteilung in Stunde, Tag, Monat, Jahr und entsprechender Hochrechnung. Dabei werden die Überläufe, egal ob sie von Shelly oder Homatik kommen natürlich abgefangen und jedes neue Gerät braucht nur den Eintrag Gewerk "Strom" und schon ist es mit dabei.
Das ganze sieht so aus...
- Henke
- Beiträge: 1536
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 144 Mal
- Danksagung erhalten: 309 Mal
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
Eine simple Lösung wäre der folgende flow.
Input ist ein topic und payload und daraus wird die Differenz berechnet.
Wenn du also einmal am Tag ihn mit dem Energiewert fütterst, hast du am zweiten Tag den Tagesverbrauch.
Läuft mit Stunden oder wie im Test auch mit Zufallswerten und 15 Sekunden.
Input ist ein topic und payload und daraus wird die Differenz berechnet.
Wenn du also einmal am Tag ihn mit dem Energiewert fütterst, hast du am zweiten Tag den Tagesverbrauch.
Läuft mit Stunden oder wie im Test auch mit Zufallswerten und 15 Sekunden.
Code: Alles auswählen
[
{
"id": "2cfc328d8c330698",
"type": "function",
"z": "aa39c2c575eb6d3f",
"name": "diff",
"func": "if (!msg.topic) {\n node.warn(\"msg.topic fehlt.\");\n return;\n}\n\nif (typeof msg.payload !== \"number\") {\n node.warn(\"msg.payload keine Zahl.\");\n return;\n}\n\nlet last = context.get(\"last\") || {};\nif (!last[msg.topic]) {\n last[msg.topic] = msg.payload;\n node.status({ fill: \"yellow\", shape: \"dot\", text: \"init\" });\n}\nelse {\n msg.akt = msg.payload;\n msg.last = last[msg.topic];\n msg.payload = msg.akt - msg.last;\n last[msg.topic] = msg.akt;\n node.status({ fill: \"green\", shape: \"dot\", text: \"diff: \" + msg.payload });\n return msg;\n}\ncontext.set(\"last\", last);\n",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1610,
"y": 1280,
"wires": [
[
"7abcf9f881d50d6a"
]
]
},
{
"id": "7abcf9f881d50d6a",
"type": "debug",
"z": "aa39c2c575eb6d3f",
"name": "debug 367",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 1770,
"y": 1280,
"wires": []
},
{
"id": "97fec03e331e15e3",
"type": "inject",
"z": "aa39c2c575eb6d3f",
"name": "Random Temp",
"props": [
{
"p": "topic",
"vt": "str"
},
{
"p": "payload"
}
],
"repeat": "15",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "Temperatur",
"payload": "$round(20+20*$random(), 1)\t",
"payloadType": "jsonata",
"x": 1400,
"y": 1280,
"wires": [
[
"2cfc328d8c330698"
]
],
"icon": "font-awesome/fa-play-circle"
}
]
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
irgebdwie will diser coe auch nicht genau was ich will. habe ih mal umgebaut da ich diw wattstunden in unregelmössigen abständen als msg.payload number bekome. der code würde dann so aussehen. leider errechnet er mir aber nicht den aktuellen tagesverbrauch anhand der aktuell verbrauchten wh. hmm oder überseh ich da was ?
Mein Sehlly wirf alle paar sekunden den katuellen verbrauch raus als z.b. 320Wh und dann ein paar Sekunden später z.B. 410Wh. MIt disen Zahlen müsste der Tagesverbrauch thoretisch errechnet werden können.
Hier noch der angepasst code:
Mein Sehlly wirf alle paar sekunden den katuellen verbrauch raus als z.b. 320Wh und dann ein paar Sekunden später z.B. 410Wh. MIt disen Zahlen müsste der Tagesverbrauch thoretisch errechnet werden können.
Hier noch der angepasst code:
Code: Alles auswählen
if (typeof msg.payload !== "number") {
node.warn("msg.payload keine Zahl.");
return null; // Beende die Verarbeitung, da keine gültige Zahl vorhanden ist.
}
let last = context.get("last") || {};
if (!last[msg.topic]) {
last[msg.topic] = msg.payload;
node.status({ fill: "yellow", shape: "dot", text: "init" });
} else {
msg.akt = msg.payload;
msg.last = last[msg.topic];
msg.payload = msg.akt - msg.last;
last[msg.topic] = msg.akt;
node.status({ fill: "green", shape: "dot", text: "diff: " + msg.payload });
}
context.set("last", last);
return msg;
- Henke
- Beiträge: 1536
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 144 Mal
- Danksagung erhalten: 309 Mal
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
Du verwendest den falschen Datenpunkt. Statt "energy" ist für den Tagesverbrauch "total" besser geeignet.
LINK: https://shelly-api-docs.shelly.cloud/ge ... m-overview
Als nächstes sollte der Wert in einem festen Intervall (Minute,Stunde,Tag) verarbeitet werden. Entweder liefern die Shelly nodes dafür eine Möglichkeit oder der Wert wird zwischengespeichert und dann im Intervall abgerufen.
Angepasster code...
Interessant. Die Fehlerkontrolle auf msg.topic entfernt und trotzdem wird msg.topic weiterverwendet.
Sry, da habe ich keinerlei Verständnis für.
Einen Kommentar hinzugefügt. Gut
return; gegen return null; ersetzt
Da hätte ich gerne gewusst, was das bringen soll.
LINK: https://shelly-api-docs.shelly.cloud/ge ... m-overview
Als nächstes sollte der Wert in einem festen Intervall (Minute,Stunde,Tag) verarbeitet werden. Entweder liefern die Shelly nodes dafür eine Möglichkeit oder der Wert wird zwischengespeichert und dann im Intervall abgerufen.
Angepasster code...
Interessant. Die Fehlerkontrolle auf msg.topic entfernt und trotzdem wird msg.topic weiterverwendet.
Sry, da habe ich keinerlei Verständnis für.
Einen Kommentar hinzugefügt. Gut
return; gegen return null; ersetzt
Da hätte ich gerne gewusst, was das bringen soll.
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
Da dies schon lange mein Wissen übersteigt habe ich den code mal mit ChatGPT angepasst. jetzt weisst du auch warum unlogisch.
Kannst du mir helfen die nodes so zusammen zu bauen?
Das Sehlly gibt folgendes raus : total_power
Kannst du mir helfen die nodes so zusammen zu bauen?
Das Sehlly gibt folgendes raus : total_power
- Henke
- Beiträge: 1536
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 144 Mal
- Danksagung erhalten: 309 Mal
Re: Tagesverbrauch an Strom in Red Matic ausrechnen
total_power ist die Summe über alle 3 Phasen.
Da ist die Frage, reicht dir das?
Einfacher wäre es, wenn du mal die gesamte Ausgabe der Node zeigen würdest.
Wenn ich es richtig gesehen habe, kann der Status des Shellys abgefragt werden. Wenn bei der inject node ein msg.topic angegeben wird, kommt das auch beim Ergebnis mit raus?
ChatGPT ...
Nicht dein Ernst.
Da ist die Frage, reicht dir das?
Einfacher wäre es, wenn du mal die gesamte Ausgabe der Node zeigen würdest.
Wenn ich es richtig gesehen habe, kann der Status des Shellys abgefragt werden. Wenn bei der inject node ein msg.topic angegeben wird, kommt das auch beim Ergebnis mit raus?
ChatGPT ...
Nicht dein Ernst.