statistik

jerry retro camper der Retro Camper

 

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.

1

switch:

– platform: mystrom

host: 192.168.178.xx

name: beamer

– platform: mystrom

host: 192.168.178.xx

name: ecoflow

 

formatiertes Coding Teil 1

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.

mystrom wifi switch
MyStrom Wifi Switch in HA

 

Als nächstes wollen wir die Stromverbräuche auslesen und anzeigen lassen. Dazu tragt Ihr in der configuation.yaml folgendes ein. 

2

2a

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

 

Coding Teil 2

Damit habt Ihr einen Sensor „power“ und einen „power2“ angelegt, die Euch die entsprechenden Verbrauchswerte in Watt (W) anzeigen.

mystrom home assistant
MyStrom Home Assistant Integration

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.

3

– 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) }}“

 

Coding Teil 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.

tagesverbrauch

momentan

 

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.

4

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

 

Coding Teil 4

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.

5

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

 

Coding Teil 5

verbräuche

 

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.

statistik

 

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.

Von Stephan J.

Hallo, mein Name ist J. Stephan. Ich bin Informatiker, Ausbilder, Prüfer und freiberuflicher Buchautor. Meine Interessengebiete zusätzlich sind Camping, Psychologie und Sport jeglicher Art. Die Leidenschaft gilt dem Schreiben und der Herausgabe von Büchern und vielen Dingen mehr.

4 Gedanken zu „MyStrom Wifi Switch Home Assistant“
  1. 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.

    1. 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

  2. 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.

Kommentare sind geschlossen.