ich hab die Ursache für die seltsamen Werte gefunden: wenn der Shelly aktiviert ist, die Waschmaschine aber nicht läuft hat sie laut Shelly GUI 0,3W Leistungsaufnahme - und das dürfte den Shelly verwirren und er spuckt irgendwelche Zahlen aus. Warum genau versteh ich nicht - aber was soll´s.
Ich habe nun eine Split Node nach der watt2kWh Node eingebaut und filtere mir alle Werte raus die ein "e" enthalten, also suspekt sind. Funktioniert soweit gut...
Beiträge von stachelbeere80
-
-
kann ich so nicht sagen. Generell sollte das bei allen Shelly-Modellen identisch funktionieren. Ich bin aktuell auch auf Dienstreise und kann das beim Plus 1 PM nicht überprüfen.
Ich hätte das auch so verstanden dass alle Shellies mehr oder weniger gleich funktionieren - vor allem erstehe ich nicht was an der vom Shelly ausgelesenen Leistung bzw. deren Darstellung nicht passt dass die Transformation in der watt2kWh Node nicht hinhaut.
Wärst du so nett und schaust dir das mal im Detail bei dir daheim an wenn du mal Zeit hast? Ich habe zwar eh schon ein Issue auf github für watt2kWh geschrieben, aber keine Ahnung ob da jemand reagiert…
LG,
Walter
-
Ich hab das mit der Berechnung mittlerweile über einen eigenen Node-Typ honbekommen (node-red-contrib-watt2kwh) und es funktioniert für alle Shelly 2.5 perfekt.
Die Daten werden an den Shellies ausgelesen und die folgenden
- aktuelle Leistung in db schreiben- aktuelle Leistung in kWh umrechnen (mit der watt2kWh node) um den Verbrauch zu ermitteln und diesen in die db zu schreiben
- ermittelter Verbrauch mit dem Preis einer kWh multipliziert und in die db geschrieben
wie gesagt bei den Shelly 2.5 funktioniert das perfekt.
ABERbei den Shelly plus 1PM bekomme ich zwar die aktuelle Leistung ausgelesen, aber wenn die payload durch die Node "watt2kWh" durch ist, kommen irgendwelche Phantasiewerte raus.
Die Umrechnung watt2kWh kann nicht konfiguriert werden (außer eben in welche Einhait Watt mit dem TZeitstempel umgerechnet werden soll) und funktioniert ja mit allen Shellies ausser den 1PM - hast du eine Idee wo hier das Problem liegen könnte?
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. -
dass der Shelly die Daten verliert wenn er vom Netz getrennt wird war mir bewusst - aber bei Überlast?
Ich hatte mir schon überlegt den Verbrauch aus den Leistungsdaten zu errechnen - wie machst du das genau? Die Berechnung ist mir klar, aber in welchem Teil des Systems machst du die Berechnungen? Ich verwende node-red / influxdb / Grafana und bin mir nicht sicher ob ich die Daten in node-red aufbereten soll (bzw. hätte ich keine Ahnung wie) und in influx speichern soll, oder ob es besser wäre die Daten in Grafana zu manipulieren. Allerdings könnte ich dann die Panels ja nur für "letzte Stunde", "letzter Tag" usw. verwenden, da ich für die Berechnug ja den Mittelwert der Leistung mit der Stundenanzahl multiplizieren muss um den Verbrauch zu berechnen...
Hast du da eine bessere Idee bzw. kannst mir helfen das in node-red zu machen um zB. den stündlichenVerbrauch zu berechnen und in die influx zu schreiben?
LG, Walter -
Hi,
Ich verwende einen Shelly plus 1PM mit FW V11.0 um den Verbrauch meines Geschirrspülers zu überwachen.
Das hat die letzten Tage immer toll funktioniert, aber heute ist es gleich zwei Mal passiert dass der Shelly sich wegen angeblicher Überlast automatisch ausgeschalten hat. Und als ob das nicht schon blöd genug wäre, hat er jedes Mal nachdem die angebliche Überlast aufgetreten ist den energy-Zähler auf 0 gesetzt.
Die MaxPower Portection ist auf 4480W - reguläre Leistungsaufnahme des Geschirrspülers liegt bei 2400W. Mir ist klar dass alle Elektrogeräte beim Einschalten einen vielfach höheren Spitzenstrom ziehen als im normalen Betrieb, aber das müsste der Shelly doch aushalten - oder? Nachdem der LS mit 16A ausgelegt ist, würde ich mal davon ausgehen dass er träge genug ist den Spitzenstrom abzufangen - wie sieht das mit dem Shelly aus?
Habe jetzt mal auf FW V11.1 ugedated und schau mir morgen mal an was sich tut, aber dass mit dem Rücksetzen des Verbrauchsazählers find ich echt besch****
Ich schreibe die Werte über http / node-red in eine influxdb; Da ist dann natürlich alles nicht mehr konsistent wenn das dumme Ding den Zähler zurücksetzt.
Hat jemand von euch einen. Idee wie man das wieder geradebiegen kann? Einziger Weg der mir einfllt wäre in node-red zum Ausgelesenen Wert immer den Letztstand vor Rücksetzung zu addieren und dann in die db zu schreiben, aber das ist auch nicht wirklich sexy...
LG, Walter
-
Hallo zusammen,
Nachdem ich hier im Forum. immer die besten (und schnellsten) Antworten zu meinen Homekit Themen bekommen habe, könnt ihr mir ja vielleicht auch bei einem Problem mit influx / Grafana weiterhelfen:
Ich habe in meiner Wohnung einige Shellies (2.5 und plus1PM) verbaut um zB. bei meinen Arbeitsplatz den Verbrauch zu messen und wenn er nicht benutzt wird potentialfrei zu schalten. Die Daten der Shellies ghole oich über node-red per http ab und schreibe sie (mit einigen Zwischenbschritten zur Syncronisation der Zeitstempel) in diverse influx Datenbanken und visualisiere die Daten in Grafana.
Ich sammle die Daten von 10 Geräten in jeweils eigenständigen Datenbanken und nehme dann das Delta des "energy" Werts zwischen zwei Zeitpunkten um den Verbrauch zu visualisieren.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Da mich natürlich auch der Gesamtverbrauch aller Geräte in dem Zeitraum interessiert, möchte ich über eine Transformation eine Summe aller 10 Datenquellen erstellen - nur haut das nicht hin. Mir werden immer Werte in GWh oder sogar PWh angezeigt und ich bin am verzweifeln...
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Hat jemand von euch eine Idee was da schief geht bzw. wie ich das lösen kann?
LG, Walter
-
Quality Shock
Nochmals danke! Ich habe mittlerweile den gesamten Flow neu aufgebaut und verwende nun http requests zum abrufen der Daten welche danach in influx gespeichert bzw. über Variablen summiert (und mittels join Node syncronisiert) in die "Gesamt"DB geschrieben werden - nun funktioniert es auch mit den Zeitstempeln
LG, Walter -
-
Hi,
das mit den Zeitstempeln hab ich mir auch schon gedacht - hier schickt jedes Gerät zu unterschiedlichen Zeitpunkten die Messages.
Wie hast du das mit dem zwischenspeichern gelöst? Ich hab für ein paar Berechnungen mit functions die Werte vom mqtt als variable abgespeichert - aber hier ist mir nicht klar wie ich es machen soll dass die Werte zB. 5 Minuten summiert zwischengespeichert werden und nur alle 5 Minuten in die db geschrieben werden.
Hast du vielleicht einen Beispiel-Flow für das zwischenspeichern bzw. die Join Node? Stehe erst am Anfang mit node red und bin da noch nicht so bewandert 😎
LG,
Walter
-
Hallo zusammen,
Kurz zu meinem Setup:
Ich habe 5 Shellies (plus1PM sowie 2.5) im Einsatz, welche per MQTT mit meinem Mosquitto Server kommunizieren; Die Daten lasse ich von node red abholen und in eine influxdb pro Gerät schreiben. In Grafana kann ich dann die Daten der einzelnen Shellies auswerten und visualisieren - das funktioniert ohne Probleme.
ABER
Ich spiele mich jetzt schon seit einer gefühlten Ewigkeit damit die Verbrauchsdaten meiner Shellies über alle Datenbanken hinweg zu summieren um eben den Gesamtverbrauch / die aktuelle Gesamtleistung visualisieren zu können. Ich habe mnittlerweile sogar eine eigene Datenbank "Gesamt" wo ich mir mit node red die "(a)power" und "(a)energy" Werte über node red hinschreiben lasse - aber ich bekomm das einfach nicht gebacken. Die Werte aus der db "Gesamt" sind immer komplett unterschiedlich zu der manuell errechneten Summe der Einzelwerte -irgendwie hab ich da einen Denkfehler drinnen und fall über die Berechnung bzw. die inflxQL Abfrage zur Summierung.
Also habe ich versucht die aktuelle Gesamtleistung zu visualisieren indem ich in einem Graphen die "(a)power" Werte der einzelnen db´s abfrage - scheitere aber daran die Werte in Grafana summieren zu lassen. Auch mit Ransformationen hab ich da nix hinbekommen, weil da dann irgendwelche Fantasie-Werte angezeigt werden.
Mir ist klar dass es sich hier um ein Layer-8 Problem handelt - aber vielleicht hat ja wer von euch einen Tipp wie ich das umsetzen könnte...
LG, Walter -
Lass mal probehalber die Section "getTotalConsumption" weg. So habe ich es und der Verbrauch stimmt bei mir.
So, nachdem daheim alle Geräte den Geist aufgegeben haben und ich quasi das Netzwerk von 0 aufbauen musste habe ich es nun gesschafft nochmals den 1PM zu testen - und du hast komplett recht! Wenn ich die "total.consumption" weglasse passt alles perfekt!
Mittlerweile habe ich sowieso nodered / influxdb / grafana aufgesetzt um die Daten zu speichern und auszuwerten, da mir das sicherer erscheint als mit Eve und vor allem mehr Flexibilität bringt...
Danke für deinen Support!!!
liebe Grüße,Walter
-
Ich habe mal genau deine config aus Post #22 übernommen und die Abfrage des Gesamtverbrauchs hinzugefügt. Das sieht nun wie folgt aus:
{
"type": "outlet",
"name": "PowerMeter2",
"url": "http://10.0.40.100:1883",
"logMqtt": true,
"topics": {
"getOn": {
"topic": "PowerMeter2/status/switch:0",
"apply": "return JSON.parse(message).output;"
},
"setOn": {
"topic": "PowerMeter2/rpc",
"apply": "return JSON.stringify({id: 123, src: 'user_1', method: 'Switch.Set', params: {id: 0, on: message}});"
},
"getWatts": {
"topic": "PowerMeter2/status/switch:0",
"apply": "return JSON.parse(message).apower;"
},
"getTotalConsumption": {
"topic": "PowerMeter2/status/switch:0",
"apply": "return JSON.parse(message).aenergy.total;"
},
"getVolts": {
"topic": "PowerMeter2/status/switch:0",
"apply": "return JSON.parse(message).voltage;"
},
"getAmperes": {
"topic": "PowerMeter2/status/switch:0",
"apply": "return JSON.parse(message).current;"
}
},
"history": true,
"accessory": "mqttthing"
}--> Ich sehe den Shelly in der Eve App und es werden mir der aktuelle Verbrauch sowie die Gesamtkosten angezeigt - aber die Gesamtkosten eben falsch
Darauf hin habe ich den Shelly komplett zurückgesetzt und neu konfiguriert, um die internen gespeicherten Werte zu löschen.
Ich habe mal einen Test über exakt 60 Minuten mit einer 9W Birne gemacht und das sieht mir danach aus als ob die Eve ASpp den Verkrauch um den Faktor 1000 zu hoch anzeigt - also die vom Shelly gelieferten Wh als kWh anzeigt.
Ich habe mir mal den Verbrauch von 9 Watt berechnetpro Mintue: 0,15 Wh. (also 9/60)
pro Messintervall (10 Minuten): 1,5 Wh
pro Stunde: 9 Wh bzw. 0,009 kWh
tatsächlicher Verbrauch während des 1-stündigen Tests
pro Minute: 0,194 Wh
pro Messintervall (10 Minuten): 1,94
pro Stunde: 11,64 Wh bzw. 0,01164 kWh
wenn ich im homebridge log mitschaue sehe ich einen Unterschied von exakt 0,194 für "total" - warum auch immer der Wert 1,94 anstatt 1,5 ist (sagen wir mal wegen der Ungenauigkeit der Messung)
(Auszug aus dem Log während des Tests[11/08/2022, 11:03:00] [PowerMeter2] Received MQTT: PowerMeter2/status/switch:0 = {"id":0, "source":"loopback", "output":true, "apower":9.0, "voltage":227.9, "current":0.046, "aenergy":{"total":6.453,"by_minute":[196.292,195.620,196.291],"minute_ts":1660208579},"temperature":{"tC":57.3, "tF":135.1}}
[11/08/2022, 11:03:00] [PowerMeter2] apply() function decoded message to [true]
[11/08/2022, 11:03:00] [PowerMeter2] apply() function decoded message to [9]
[11/08/2022, 11:03:00] [PowerMeter2] apply() function decoded message to [227.9]
[11/08/2022, 11:03:00] [PowerMeter2] apply() function decoded message to [0.046]
[11/08/2022, 11:03:00] [PowerMeter2] apply() function decoded message to [6.453]
[11/08/2022, 11:03:00] [PowerMeter2] apply() function decoded message to [9]
[11/08/2022, 11:04:00] [PowerMeter2] Received MQTT: PowerMeter2/status/switch:0 = {"id":0, "source":"loopback", "output":true, "apower":9.1, "voltage":228.6, "current":0.045, "aenergy":{"total":6.649,"by_minute":[196.292,196.292,195.620],"minute_ts":1660208639},"temperature":{"tC":57.4, "tF":135.3}}
[11/08/2022, 11:04:00] [PowerMeter2] apply() function decoded message to [true]
[11/08/2022, 11:04:00] [PowerMeter2] apply() function decoded message to [9.1]
[11/08/2022, 11:04:00] [PowerMeter2] apply() function decoded message to [228.6]
[11/08/2022, 11:04:00] [PowerMeter2] apply() function decoded message to [0.045]
[11/08/2022, 11:04:00] [PowerMeter2] apply() function decoded message to [6.649]
[11/08/2022, 11:04:00] [PowerMeter2] apply() function decoded message to [9.1]
Wenn ich mir am Ende des Tests die Messpunkte in der Eve App ansehe, stimmen die übertragenen Werte so ziemlich mit den errechneten überein - also ca. 1,5 Wh alle 10 Minuten. Warum hier dann wieder 1,5 anstatt der aus dem log ersichtlichen 0,194*10 = 1,94 Wh angezeigt werden ist mir ein Rätsel....
Warum zeigt mir die App die korrekten Werte an den Messpunkten, aber beim Errechnen des Gesamtverbrauchs kommt dann was falsches raus?
Das könnte vielleicht an einer Fehlinterpretation Punkte versus Komma in den Werten liegen - also dass Eve den Punkt nicht als Trennzeichen akzeptiert
Hat jemand eine Idee wie man den Wert in der Homebridge durch 1000 dividieren kann ODER das Trennzeichen ändern kann?
Sonstige Ideen was da falsch läuft (ausser layer8)?
-
Ich habe es mal genau so wie du in #22 angegeben hast eingetragen - und es funktioniert.
Da war irgendwo (wo auch immer) ein Fehler drin...
Hast du es eigentlich geschafft auch den Gesamtverbrauch anzuzeigen? Ich habe mal in der config versucht die korrekte Expression für "GetTotalConsumption" einzutragen - bin aber gescheitert.
Da ist der Wert im Topic mit der Variable "total" unterhalb von "aenergy" drinnen, aber ich bekomme ihn nicht ausgegeben. Hast du eine Idee wie es funktionieren könnte?
(meine java / json Kenntnisse sind etwas limitiert ){"id":0, "source":"MQTT", "output":true, "apower":9.1, "voltage":230.9, "current":0.045, "aenergy":{"total":4.457,"by_minute":[196.292,195.620,196.292],"minute_ts":1660145398},"temperature":{"tC":57.4, "tF":135.3}}
Update:
Ich habe es geschafft den Wert auszulesen - müsste ihn aber durch 1000 und dann durch 60 dividieren, da der Shelly ja Wattminuten ausgibt und Eve kW/h
},
"getTotalConsumption": {
"topic": "shellyplus1pm-3c610579c60c/status/switch:0",
"apply": "return JSON.parse(message).aenergy.total;"
},
-
Danke, werde ich Montag gleich mal probieren - gebe dann Bescheid ob die Operation geglückt ist…
LG,
Walter
-
Hallo Sebastian,
das Plugin "Homebridge Shelly NG" benutze ich nicht, sondern mache alles über MQTT. Meine Shelly Plus 1 PM benutze ich eigentlich nur zur Verbrauchsmessung in der Unterverteilung. Ich denke, du brauchst noch das Plugin "Homebridge Mqttthing". In den Shellies natürlich noch die MQTT Settings entsprechend Deiner Umgebung vornehmen. Zur Verbrauchsmessung reicht die Konfiguration aus meinem Post #11 weiter oben. Wenn man auch schalten möchte dann so:
{
"type": "outlet",
"name": "ShellyWWK",
"url": "http://192.168.0.95:1883",
"logMqtt": true,
"topics": {
"getOn": {
"topic": "ShellyWWK/status/switch:0",
"apply": "return JSON.parse(message).output;"
},
"setOn": {
"topic": "ShellyWWK/rpc",
"apply": "return JSON.stringify({id: 123, src: 'user_1', method: 'Switch.Set', params: {id: 0, on: message}});"
},
"getWatts": {
"topic": "ShellyWWK/status/switch:0",
"apply": "return JSON.parse(message).apower;"
},
"getVolts": {
"topic": "ShellyWWK/status/switch:0",
"apply": "return JSON.parse(message).voltage;"
},
"getAmperes": {
"topic": "ShellyWWK/status/switch:0",
"apply": "return JSON.parse(message).current;"
}
},
"history": true,
"accessory": "mqttthing"
},Gruß
Volker
Hallo Volker,
Ich bin neu im Forum und hätte da gleich eine Frage an dich:Ich habe einen Shelly 1pm plus und bekomme ihn nicht zum Laufen.
Der Shelly läuft aktuell mit MQTT, also hab ich mal deine config verwendet (und natürlich angepasst) - ich sehe das Device zwar in der Eve App, aber weder switch Status noch power / voltage / current liefern mir Werte.
Hast du vielleicht eine Idee woran das liegen könnte? Ich stehe irgendwie auf der Leitung und bekomm das seit Stunden nicht hin...
liebe Grüße,Walter