NEWS
Stromverbrauch auswerten und Gerät identifizieren
-
@zarello übertrieben ist das vielleicht gar nicht, wenn man nicht eine zwischensteckdose benutzt, sondern evtl. einen hutschienen Shelly nutzt und damit alle steckdosen im wohnzimmer gleichzeitig auf der leitung hat.
-
@zarello sagte in Stromverbrauch auswerten und Gerät identifizieren:
@maxpd Das wäre mal eine interessante Idee für einen Adapter oder Script: Man hinterlegt verschiedene Profile von Verbrauchern und der Adapter sagt dann, welche der Verbraucher gerade aktiv sind. Mit Betrachtung der Historie sollte das für eine kleinere Menge von Geräten eigentlich ganz gut funktionieren. Vor allem wenn Geräte dabei sind, die einen relativ konstanten Verbrauch haben wenn sie eingeschaltet sind. Interessanter wird es bei Geräten, die unterschiedliche Profile fahren da sie verschiedene Programme kennen (z.B. Waschmaschine). Bei solchen Geräten müsste man dann verschiedene Profile aufnehmen und hinterlegen.
Für schwierig halte ich das auch, wenn verschiedene Gräte parallel laufen und dann ggfs. auch noch zu unterschiedlichen Zeiten gestartet werden.
Da überlagern sich die Profile.
Klar kann man dann versuchen, die Profile auseinander zu rechnen, ....Aber selbst bei einfachen Profilen ist das nicht so eindeutig. Beispiel:
Gerät 1 verbraucht dauerhaft 1 A.
Gerät 2 verbraucht dauerhaft 2 A.
Gerät 3 verbraucht dauerhaft 3 A.Welche/s Gerät/e läuft/laufen denn jetzt, wenn 3 A verbraucht werden?
Das kann man auch auf kurzeitige Verbräuche mit den Profilen herunterbrechen.Das seriös zu lösen ist, denke ich, über überwachen der einzelnen Geräte sicherer, einfacher und weniger Aufwand, auch wenn ich die Profillösung interessant finde.
-
@andreas-5 sagte in Stromverbrauch auswerten und Gerät identifizieren:
Für schwierig halte ich das auch, wenn verschiedene Gräte parallel laufen und dann ggfs. auch noch zu unterschiedlichen Zeiten gestartet werden.
Da überlagern sich die Profile.
Klar kann man dann versuchen, die Profile auseinander zu rechnen, ....Aber selbst bei einfachen Profilen ist das nicht so eindeutig. Beispiel:
Gerät 1 verbraucht dauerhaft 1 A.
Gerät 2 verbraucht dauerhaft 2 A.
Gerät 3 verbraucht dauerhaft 3 A.Welche/s Gerät/e läuft/laufen denn jetzt, wenn 3 A verbraucht werden?
Das kann man auch auf kurzeitige Verbräuche mit den Profilen herunterbrechen.Das seriös zu lösen ist, denke ich, über überwachen der einzelnen Geräte sicherer, einfacher und weniger Aufwand, auch wenn ich die Profillösung interessant finde.
Wie gesagt, wird nicht trivial, deshalb ja interessant zu programmieren. Allerdings sehe ich Dein Beispiel noch als sehr einfach an:
- kommt das in der Realität nicht vor, dass wir solche Geräte haben, schließlich ist die Stromstärke keine natürliche Zahl. Es wird also eher so sein, dass Gerät 1 0.93-1.02A, Gerät 2 2.13-2.26A und Gerät 3 2.81 - 2.95A ziehen.
- kann man die Historie mit verwenden. Wenn erst 1A, dann 3A gezogen werden, wurde erst Gerät 1, dann Gerät 2 angeschaltet.
- Wenn wir Strom und Leistung betrachten werden die Werte noch etwas eindeutiger, denn die meisten Geräte sind keine reinen ohmschen Verbraucher. Es ist sehr gut möglich, dass bei Gerät 1 + Gerät 2 bei 3A eine Leistung von 600W gezogen wird, bei Gerät 3 bei 3A aber eine Leistung von 540W gezogen wird.
Deutlich interessanter sind da Verbraucher, die keine konstante Last erzeugen. Hier muss man nicht nur die aktuellen Werte und evtl. einen vorher gefundenen Zustand berücksichtigen, vielmehr muss man die Lastkurven vergleichen. Ein einfacher Ansatz dafür wäre, den Anfang der gespeicherten Lastkurve mit der bisherigen Lastkurve, bereinigt um bereits identifizierte Verbraucher über Skalarmultiplikation zu verrechnen und zu gucken, ob dabei ein gewisser Grenzwert überschritten wird. Dabei werden die Kurven gegeneinander verschoben um das Maximum zu finden. Aber es wurden schon Szenarien genannt, bei denen das auch schief gehen wird.
übertrieben ist das vielleicht gar nicht, wenn man nicht eine zwischensteckdose benutzt, sondern evtl. einen hutschienen Shelly nutzt und damit alle steckdosen im wohnzimmer gleichzeitig auf der leitung hat.
Wenn es zu viele Verbraucher werden, wird das aufgrund der Anzahl der Kombinationsmöglichkeiten (exponentielles Wachstum) sehr schnell unmöglich das noch auseinander zu halten. Bei zwei oder drei kann ich mir das noch ganz gut vorstellen, bei fünf oder sechs ist es vermutlich schon eher ein Glücksspiel und deutlich davon abhängig, dass sich die Verbraucher deutlich in ihrem Lastverhalten unterscheiden.
Edit: Was ich oben noch vergaß: Da es hier um Wechselstrom geht, sind 1A + 2A auch nicht unbedingt 3A. Das trifft nur dann zu, wenn sie den gleichen Phasenwinkel aufweisen. Das macht es natürlich auch nicht unbedingt einfacher.
-
@zarello sagte in Stromverbrauch auswerten und Gerät identifizieren:
Deutlich interessanter sind da Verbraucher, die keine konstante Last erzeugen.
Das meinte ich mit "Das kann man auch auf kurzeitige Verbräuche mit den Profilen herunterbrechen."
Die 3 Geräte waren nur eine vereinfachte Darstellung.Wie schon gesagt, finde ich die Lösung interessant. Aber sie ist nicht trivial zu lösen!
-
@andreas-5 said in Stromverbrauch auswerten und Gerät identifizieren:
Wie schon gesagt, finde ich die Lösung interessant. Aber sie ist nicht trivial zu lösen!
Glaube auch nicht das dies ein einfaches unterfangen darstellt. Selbst Firmen die Millionen für solch eine "Technologie" ausgeben (wie wahrscheinlich sense) haben damit keinen wirklichen Erfolg beim Kunden wenn man sich ein bisschen (abseits der 4 und 5 Sterne "Bewertungen" auf deren Seite) umhört
bzw. liest
Da erfährt man dann z.B. so was hier
https://www.cnet.com/reviews/sense-home-energy-monitor-review/
The Bottom Line
Sense is a reasonable option if you want to view whole-home energy output in real-time, but its ability to detect individual appliances is hit or miss.Oder das Verdict aus diesem Video hier
https://yewtu.be/watch?v=5RyDxZLA8b8
auf Gut deutsch: Außer Spesen nix gewesen...
-
@maxpd said in Stromverbrauch auswerten und Gerät identifizieren:
@opensourcenomad wie bekommst du die esp home werte in iobroker?
Gar nicht, weil bei mir gar kein iobroker läuft
Aber andere benutzen dafür einfach die native api welche der esphome adapter von @Dutchman mitbringt.
Einzig gut zu wissen ist das, stand heute, nur
Sensor
,Binary Sensor
,Text Sensor
,Switch
undClimate
Komponenten von esphome (direkt mittels api) unterstützt werden. Für Power Metering und Relais (typischerweise nur Sensoren und Switche) sollte das aber ziemlich alles abdecken. Alternativ hat esphome auch eine vollwertige mqtt Unterstützung, falls das jemand noch am laufen hatBtw: Ich nutze für die aktuelle Strommessung einen Shelly 1PM.
Dafür gibt es hier übrigens ein fertiges yamelchen
https://www.esphome-devices.com/devices/Shelly-1PM
-
@maxpd sagte in Stromverbrauch auswerten und Gerät identifizieren:
@opensourcenomad wie bekommst du die esp home werte in iobroker?
Für ESPHome gibt es einen Adapter, für Shelly gibt es einen Adapter, Tasmota lief mal über Sonoff Adapter (weiß nicht, wie das heute ist), und für selbstprogrammierte ESPs gibt es simpleApi Adapter
KI klingt gut. Aber die heutzutage verwendeten CNN müssen trainiert werden. D.h. Man muß denen eine zeitlang genau sagen, was im Netz passiert und welcher Verbraucher was zieht. Je genauer und länger man das tut, umso besser kann das Ergebnis werden.
Nachdem man den Trainingsdatensatz und die zugehörige ground truth erstellt hat, Braucht man erst mal ordentlich Rechenleistung, um die Gewichtungen der CNN Knoten zu berechnen.
Dann kommt diese Konfiguration ins Laufzeitsystem und braucht dort auch nochmals ordentlich Rechenleistung.
Und wenn das Ergebnis nicht paßt, kann man nur akademisch die Achseln zucken und weiter trainieren.
Also ein komplett selbstlernendes System müßte schon sehr viele Annahmen treffen und damit zufällig auch richtig liegen. -
@opensourcenomad sagte in Stromverbrauch auswerten und Gerät identifizieren:
Glaube auch nicht das dies ein einfaches unterfangen darstellt. Selbst Firmen die Millionen für solch eine "Technologie" ausgeben (wie wahrscheinlich sense) haben damit keinen wirklichen Erfolg beim Kunden wenn man sich ein bisschen (abseits der 4 und 5 Sterne "Bewertungen" auf deren Seite) umhört
bzw. liest
Das ist natürlich auch eine andere Hausnummer. Drei Geräte, die ich dem Adapter einzeln beibringe indem ich sage: Jetzt läuft die Waschmaschine Programm 1, jetzt die Waschmaschine Programm 2, jetzt der Trokner, jetzt der 3D-Drucker halte ich für machbar.
Eine Box, die alle Geräte im Haus automatisch im laufenden Betrieb ohne zusätzliche Informationen selbständig lernen und richtig klassifizieren soll, halte ich für schlicht unmöglich.
Man sollte halt kleiner anfangen. Bei einem Open-Source-Projekt muss man keine Wunder versprechen, da man ja nichts verkaufen möchte. Man kann es sich leisten realistisch zu bleiben. Ein Adapter der zuverlässig zwei Geräte auseinander halten kann spart ja auch schon Kosten und im Zweifelsfall Wartezeit bei der Umsetzung einer neuen Idee. -
@klassisch said in Stromverbrauch auswerten und Gerät identifizieren:
Und wenn das Ergebnis nicht paßt, kann man nur akademisch die Achseln zucken
Ich glaube an diesem Punkt ist das "Sense data science team" schon vor Jahren angekommen.
Im Jahre 2016 wurde noch in diesem Blog post ihre device detection beschrieben (mittels "zentralem" power metering)
https://blog.sense.com/articles/how-does-sense-detect-my-devices/
Später haben sie dann "Network Device Identification (NDI)" vorgestellt was nichts anderes ist als via Netzwerk
feedback von unterstützen Gerätschaften (hue, alexa und sonst nichts?) zu bekommen
https://international.blog.sense.com/articles/network-device-identification/
-
@zarello said in Stromverbrauch auswerten und Gerät identifizieren:
Man sollte halt kleiner anfangen.
Ganz klein wäre natürlich nur 2 verschiedene Geräte, ein ohmscher Verbraucher und ein weiterer mit Schaltnetzteil. Wahrscheinlich reicht dann alleine der Powerfaktor um zu bestimmten ob Gerät 1 oder 2 oder beide gleichzeitig an sind
Ich würde das natürlich gleich wieder on-edge direkt auf dem esp Bewerkstelligen
-
trotzdem im iobroker forum unterwegs?
Ich denke die Yaml bietet dann nicht mehr als der Shelly Adapter. Trotzdem dankeJa, den ESP Adapter nutze ich tatsächlich auch für den Switch.
-
@maxpd said in Stromverbrauch auswerten und Gerät identifizieren:
trotzdem im iobroker forum unterwegs?
Hauptsächlich in der Hardwareecke
Konnte mich bis heute noch nicht durchringen das mal zumindest Testweise zu installieren, müsste mir wahrscheinlich auch erst einmal ein bisschen Programmierkenntnisse erlangen... diese Blockys sind wie Chinesisch für michIch denke die Yaml bietet dann nicht mehr als der Shelly Adapter.
Die yaml selber nicht (damit hast du dein Gerät aber wahrscheinlich in einer Minute befreit) aber es hindert dich ja niemand diese noch um deine gewünschten Funktion zu ergänzen. Wie man z.B. die einzelnen Phasen einer Waschmaschine (oder auch anderer Geräteschaft) erkennen kann (und der passende yaml code dafür) ist ja oben schon verlinkt
Ja, den ESP Adapter nutze ich tatsächlich auch für den Switch.
Dann hast du ja sogar schon alles was du brauchst
-
@opensourcenomad sagte in Stromverbrauch auswerten und Gerät identifizieren:
diese Blockys sind wie Chinesisch für mich
aber nicht von Ali
das schaffen wir! Ich hatte vor iob auch absolut keinen Dunst von so was
-
Die Yamls haben inhaltlich den Vorteil, daß man - zwar recht mühsam - Programmcode auf den ESPs laufen lassen kann. Die ESPs sind eh da, dann können die auch gleich noch absolute Feuchte, Taupunkt etc. berechnen, oder andere Vorverarbeitung übernehmen.
Etliches kann man in yaml abbilden, ist aber gewöhnungsbedürftig, meine ich.Statt Blockly verwende ich JScript. Das hat eine große Verbreitung und man findet viele Lösungen.
Komplex Probleme - bzw. komplexe Lösungen - bleiben halt komplex. Egal, ob in JScript, Blockly oder nodeRed -
@opensourcenomad said in Stromverbrauch auswerten und Gerät identifizieren:
diese Blockys sind wie Chinesisch für mich
fass ich mal als Ironie auf
Für mein eigenes yaml auf einem ESP hab ich 2 Wochen gebraucht und nur mit Hilfe hinbekommen. Mein chinesisch.
-
Sowas könnte man wohl noch automatisch auswerten. Man sieht den Kühlschrank und die Heizung. Aber sobald man aufsteht, wird es "verrauscht"
-
@maxpd
Ich habe jetzt dazu mal einen Device-Request angelegt: https://github.com/ioBroker/AdapterRequests/issues/742 -
@zarello Danke. Ich bin übrigens an einem Neubau meines Blocklys dran, was ich gerade verifiziere, sobald ich wieder genug Wäsche hab
-
So.
Hier definiere ich anhand vom Peak des Stromverbrauchs welches Gerät gerade läuft oder gar welche Kombination ( da muss ich aber noch tüfteln )
Und
hier prüfe ich anhand eines 5 Min Durchschnittes ob das jeweilige Gerät noch läuft, wobei ich eventuelle Dauerverbraucher vorher rausrechne: