der Retro Camper
Inhaltsverzeichnis
MyStrom Home Assistant
Wifi Switch Integration
Die MyStrom Wifi Switch Integration in Home Assistant funktioniert und ich werde hier den Weg beschreiben. Die automatische Funktion über Integration hinzufügen in Home Assistant ist nicht oder noch nicht vorgesehen. Aber manuell klappt es auch einigermaßen einfach. Ich gehe davon aus, dass die Switche bereits im Router (Fritzbox o.ä.) bekannt gemacht wurden und immer die gleiche IP-Adresse bekommen. Also fixe IP und nicht DHCP verwenden, da ansonsten die Adressierung in Home Assistant später nicht mehr möglich sein wird, wenn sich die IP-Adresse ändern würde.
MyStrom Home Assistant Integration
Zuerst müsst Ihr den Switch als solches anlegen. Dies geschieht in HA über die configuration.yaml. Hier tragt Ihr den Switch mit Name und IP-Adresse, wie folgt ein. Bitte genau auf die Formatierung achten, ansonsten kommt es zum Syntax Fehler. Also der Bindestrich unters „i“ und host und name genau unter das „p“ von platform. Im Beispiel nehme ich 2 Switche. Dies könnt Ihr aber beliebig fortführen. Unter dem Link erhaltet Ihr das bereits korrekte Coding zum Download und Kopieren.
switch:
– platform: mystrom
host: 192.168.178.xx
name: beamer
– platform: mystrom
host: 192.168.178.xx
name: ecoflow
Im Anschluss findet Ihr bereits den Switch „beamer“ sowie „ecoflow“ in Home Assistant (HA) und könnt diese bereits ein- und ausschalten. Gelb bedeutet in diesem Fall eingeschaltet und blau demensprechend ausgeschaltet. Per Klick auf das Icon könnt Ihr zwischen den Zuständen wechseln.
Als nächstes wollen wir die Stromverbräuche auslesen und anzeigen lassen. Dazu tragt Ihr in der configuation.yaml folgendes ein.
sensor:
– platform: template
sensors:
power2:
friendly_name: „Current Power Beamer“
unit_of_measurement: „W“
value_template: „{{ state_attr(’switch.mystrom_beamer‘, ‚current_power_w‘) }}“
power2:
friendly_name: „Current Power Ecoflow“
unit_of_measurement: „W“
value_template: „{{ state_attr(’switch.mystrom_ecoflow‘, ‚current_power_w‘) }}“
– platform: integration
source: sensor.power1
name: „Energy Total Beamer“
unit_prefix: k
round: 3
– platform: integration
source: sensor.power2
name: „Energy Total Ecoflow“
unit_prefix: k
round: 3
Damit habt Ihr einen Sensor „power“ und einen „power2“ angelegt, die Euch die entsprechenden Verbrauchswerte in Watt (W) anzeigen.
Nehmen wir nun an, „beamer“ und „ecoflow“ mit den Sensoren „power1“ und „power2“ wären Verbräuche. Dann ist es sicherlich hilfreich, wenn wir nun einen Gesamt Verbrauch ermitteln würden. Dazu tragt Ihr dann folgendes ein.
– platform: template
sensors:
verbrauch_momentan:
friendly_name: „Momentaner Verbrauch“
unit_of_measurement: „w“
value_template: „{{ (states(’sensor.power1′) | float
+ states(’sensor.power2′) | float) | round(3) }}“
verbrauch_gesamt:
friendly_name: „Verbrauch Gesamt“
unit_of_measurement: „kWh“
value_template: „{{ (states(’sensor.energy_total_beamer‘) | float
+ states(’sensor.energy_total_tv‘) | float) | round(3) }}“
Dadurch erhaltet Ihr wiederum 2 Sensoren „verbrauch_momentan“ und „verbrauch_gesamt“. Der momentane Verbrauch wird in Watt (w) und der gesamte Verbrauch in Kilowattstunden (kWh) ausgegeben.
Nun wäre es doch schön, wenn wir uns die Verbräuche für einen Tag, Monat und ein Jahr anzeigen lassen könnten. Dies funktioniert über ein sogenanntes Utility Meter. Eine Funktion also, die über bestimmte Zeiträume (zB Tag) Werte (Verbrauch) auf addiert und ausgibt.
utility_meter:
beamer_total_daily_energy:
source: sensor.energy_total_beamer
cycle: daily
name: Beamer Tag
ecoflow_total_daily_energy:
source: sensor.energy_total_ecoflow
cycle: daily
name: Ecoflow Tag
Jetzt habt Ihr einen Tages Wert für den „Beamer“ und den „Ecoflow“ Verbrauch. Den Monatsverbrauch erhaltet Ihr über monthly bzw. yearly für den Jahresverbrauch. Einzutragen bei cycle: Das sieht dann zum Beispiel, wie folgt aus.
utility_meter:
beamer_total_monthly_energy:
source: sensor.energy_total_beamer
cycle: monthly
name: Beamer Monat
beamer_total_yearly_energy:
source: sensor.energy_total_beamer
cycle: yearly
name: Beamer Jahr
So, das soll es an dieser Stelle gewesen sein. Ich hoffe, Ihr könnt damit etwas anfangen und all Eure MyStrom Switche in Home Assistant einbinden. Es sind so einige Spielereien und Statistiken möglich.
Eure Meinung
Jetzt seid Ihr dran. Wie sind Eure Erfahrungen mit Smart Home und Home Assistant? Schreibt es doch in die Kommentare für einen gemeinsamen Austausch…
weitere Informationen
Auf meinem Youtube Kanal findest Du ebenfalls Informationen zu Produkten und Camping Themen. Schau doch mal vorbei.
Aktuelle Projekte 2022
Möchtest Du vielleicht auch ein Smart Home oder ein Balkonkraftwerk schaffen oder Energie sparen? Dann sind vorgenannte Informationen sicherlich hilfreich.
Vielen Dank für diesen Blog. Damit habe ich meinen mystrom switch in Home Assistant integrieren können, zumindest die aktuelle Leistung und die aufsummierte Energieaufnahme. Mit den Energien pro Tag und den Utility Metern bin ich bisher gescheitert. Wäre toll, die Gesamt Codierung für das o.a. Beispiel in der configuration.yaml zu sehen.
Hi Jörg, vielen Dank für Dein Feedback! Ich interpretiere daraus, dass die Definition der MyStrom Switche bereits funktioniert hat. Ab da sieht es bei mir dann so aus:
Hier werden alle Verbräuche (MyStrom und Shellys) aufsummiert.
verbrauch_gesamt:
friendly_name: „Verbrauch Gesamt“
unit_of_measurement: „kWh“
value_template: „{{ (states(’sensor.energy_total_beamer‘) | float
+ states(’sensor.energy_total_ecoflow‘) | float
+ states(’sensor.energy_total_kuehl‘) | float
+ states(’sensor.energy_total_internet‘) | float
+ states(’sensor.shelly_ecoflow_energy‘) | float
+ states(’sensor.shelly_yeti_energy‘) | float
+ states(’sensor.shelly_flur_energy‘) | float
+ states(’sensor.repeater_energy‘) | float
+ states(’sensor.boiler_energy‘) | float
+ states(’sensor.kaffee_energy‘) | float
+ states(’sensor.luefter_energy‘) | float
+ states(’sensor.shelly_mikro_energy‘) | float
+ states(’sensor.energy_total_tv‘) | float) | round(3) }}“
Anschließend der oben definierte Wert (verbrauch_gesamt) reformatiert.
template:
– sensor:
– name: „Verbrauch Gesamt Reformat“
unit_of_measurement: „kWh“
state: >
{{ (states(„sensor.verbrauch_gesamt“)) }}
device_class: energy
state_class: measurement
attributes:
last_reset: „1970-01-01T00:00:00+00:00“
dann Utility Meter
utility_meter:
verbrauch_total_daily_energy:
source: sensor.verbrauch_gesamt_reformat
cycle: daily
name: Verbrauch Total Daily Energy
die 3 daily wahlweise durch monthly oder yearly ersetzen. Das ist das gesamte Coding. Wenn Du einen Syntaxfehler bekommst, liegt es wahrscheinlich an einer Einrückung (Tab) der jeweilig ausgewiesenen Zeile. Bekommst Du keinen Wert (kann etwas dauern!) evt. an Groß- Kleinschreibung. Der Sensor muss immer gleich heißen, das bedeutet auch, verbrauch_gesamt darf nicht Verbrauch Gesamt oder so heißen. Den Fehler hatte ich bereits gemacht 😉
Viel Erfolg
J. Stephan
Ich hoffe das klappt, denn hier siehst Du die Formatierungen aus meiner yaml.
Herzlichen Dank, ja jetzt läuft es und Dein Beispiel hat sehr dabei geholfen.
Im Ausgangsbeispiel Deines Threads hatten mich ein paar Dinge irritiert: z.B gibt es den Sensor power2 gleich zweimal. Im Begleittext heisst es dann jedoch power und power2 bzw power1 und power2.