Home Assistant: Steckdosen steuert Rasemähroboter

 

Wie in einem früheren Beitrag erwähnt, steuere ich meinen Rasenmähroboter, einen Husqvarna Automower, liebevoll Oswald genannt, über eine steuerbare Steckdose. Das Prinzip dahinter ist, dass der Mäher erst startet, wenn die Ladestation einen Strom von der Steckdose bekommt. Meine Beweggründe waren das Fehlen eines Regensensors und der Mangel an verfügbaren Steuermöglichkeiten, siehe: Steuern des Automowers mittels Steckdose - Regensensor? Einige Jahre lang habe ich für die Steuerung eine simple PHP-Seite verwendet, siehe: www.script-example.com/smartplug-steuerung und diese später mit dem PHP-Framework Laravel ersetzt. Nachdem in der Zwischenzeit mehr und mehr Automatisierungsaufgaben an Home-Assistant übertragen habe, war der Mähroboter ein weiterer logischer Schritt. Im Vergleich zu den früheren Lösungen ließ sich die Steuerung mit Home Assistant wesentlich schneller und einfacher umsetzen, zumal ich mich nicht um das Sammeln der Daten, die Auswertung und Anzeige kümmern muss. Die Logik für das Steuern konnte ich dabei von der Grundidee von den bestehenden Projekten übernehmen. Ich habe die Mähphase direkt in den Einstellungen des Geräts auf den Vormittag beschränkt, damit Oswald möglichst wenig stört. Home Assistant soll die Steckdose erst einschalten, wenn es nicht geregnet hat, die Wettervorhersage passt und die Sonne scheint, damit das Gerät nicht in Konflikt mit bestimmten nacht- oder dämmerungsaktiven Tieren kommt. 

Die Automatisierung im Detail

Als Auslöser dient, neben bestimmten Zeiten, die Stromerzeugung meines Balkonkraftwerks. Der Mäher startet vormittags, wenn die Sonne scheint und wird abends wieder deaktiviert, wenn sich der Mäher in der Ladestation befindet. Ob der Mäher wieder zurück in die Ladestation gefunden hat, kann ich am Stromverbrauch feststellen: Unter 3 Watt ist der Mäher vollgeladen und in der Station. Sollte der Mäher einmal nicht nach Hause finden, bekomme ich eine Benachrichtigung auf das Handy. Als Bedingung für den Start habe ich in der Automatisierung das Wetter abgefragt: Herangezogen werden die vergangenen Niederschlagswerte und eine Wettervorhersage:

Auslöser Beschreibung
When BalkonKW Total AC Output Power (Active) is above 110 Über 110 Watt vom Balkonkraftwerk: die Sonne scheint:
In den Aktionen: Prüfen ob der Mäher starten soll und gegebenenfalls die Steckdose einschalten
Wenn die Zeit gleich 18:00 ist Abends
In den Aktionen: Prüfen ob der Mäher in der Ladestation ist und gegebenenfalls die Steckdose ausschalten, oder eine Benachrichtigung schicken.

Aktionen

[+]

 'Einschalten?' ausführen wenn 'Vormittag' sonst 'Abends: Ausschalten'

Wenn*:
Vormittag (vor 13Uhr)
Dann*:
Einschalten?

Wenn*: 
Confirm BalkonKW Total AC Output Power (Active) is above 110 (Sonne scheint)
Oswald Switch ist ausgeschaltet 
 Confirm rain_zamg is below 1 (kein Regen)
 Wettervorhersage (kein Regen in Sicht)

Confirm OpenWeatherMap Forecast Precipitation is below 50
Confirm OpenWeatherMap Forecast Precipitation is below 2

Dann*:
Oswald Switch einschalten
Aufruf eines Dienstes 'notify.mobile_app_sm_??' auf

Sonst:
 Abends: Ausschalten

Wenn*:
Oswald Switch ist eingeschaltet
Dann*:
'Oswald Switch ausschalten' ausführen wenn 'Confirm Oswald Active power is below 3' sonst 'Aufruf eines Dienstes 'notify.mobile_app_sm_??' auf '

Wenn*:
 Confirm Oswald Active power is below 3
Dann*:
Oswald Switch ausschalten
Sonst:
Aufruf eines Dienstes 'notify.mobile_app_sm_??' auf

 

 

Hier der fertige Ablauf als YAML-Text

[+]
alias: Oswald
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.balkonkw_total_ac_output_power_active
    above: 110
  - platform: time
    at: "18:00:00"
condition: []
action:
  - if:
      - condition: time
        before: "13:00:00"
        alias: Vormittag
    then:
      - if:
          - condition: numeric_state
            entity_id: sensor.balkonkw_total_ac_output_power_active
            above: 110
          - condition: device
            type: is_off
            device_id: ???
            entity_id: switch.oswald_switch
            domain: switch
          - condition: numeric_state
            entity_id: sensor.rain_zamg
            below: 1
          - condition: and
            conditions:
              - condition: numeric_state
                entity_id: sensor.openweathermap_forecast_precipitation
                below: 50
              - condition: numeric_state
                entity_id: sensor.openweathermap_forecast_precipitation
                below: 2
            alias: Wettervorhersage
        then:
          - type: turn_on
            device_id: ???
            entity_id: switch.oswald_switch
            domain: switch
          - service: notify.mobile_app_sm_??
            data:
              title: Es ist trocken und PV liefert -> Oswald ein
              message: "{{states('sensor.balkonkw_total_ac_output_power_active')}}Watt"
              alias: PV liefert? Einschalten?
        alias: Einschalten?
    else:
      - if:
          - condition: device
            type: is_on
            device_id: ???
            entity_id: switch.oswald_switch
            domain: switch
        then:
          - if:
              - condition: numeric_state
                entity_id: sensor.oswald_active_power
                below: 3
            then:
              - type: turn_off
                device_id: ???
                entity_id: switch.oswald_switch
                domain: switch
            else:
              - service: notify.mobile_app_sm_??
                data:
                  title: Oswald nicht ausgeschaltet
                  message: "Power: {{states('sensor.oswald_active_power')}}Watt"
        alias: "Abends: Ausschalten"
mode: single

Der Yaml-Text kann in eine leere Automatisierung kopiert und angepasst werden. Die historischen Niederschlagswerte, im Ablauf "sensor.rain_zamg" hohle ich dabei mittels curl von einer öffentlich zugänglichen Webseite, ähnlich dem Auslesen der PV-Werte meines Balkonkraftwerks: PV Balkonkraftwerk Inbetriebnahme und HA Integration. Siehe auch: HA: Werte einer beliebigen WebGUI als Entitäten verwenden.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details