Cronjob Ablösen oder neu bauen?

Ich bin gerade am Umstieg von Fibaro HC2 auf HomeAssistant.
Auf meinem bestehenden System läuft ein Cronjob Skript welches jede Minute getriggert wird und danach im Skript zu gewissen Uhrzeiten oder Zuständen (Tag, Nacht, Sonnenaufgang, Sonnenuntergang) gewisse Dinge ausführt.

Macht soetwas im HomeAssistant auch Sinn, oder wie sollte man das hier sinvoll umsetzen zu bestimmten Zeiten bestimmte Dinge durchzuführen?

Hat jemand Tipps oder Impulse zu Videos für mich, die ich mir zu diesem Thema reinziehen sollte?

Bin immer noch dabei alle zeitgesteuerten Dinge ausd meiner Fibaro HC2 in Homeassistant zu übertragen.
Dort lief ein EINZIGES CronJob Skript, wo jeder benötigte Zeitslot eine if then Schleife durchlaufen hat.

Da ich hier noch keine Antworten bekam, hab ich das fürs Erste mal im HomeAssistant nachgebaut und es funktioniert auch grundsätzlich!
Ist aber nicht sehr übersichtlich, wenn so viele Zeitabläufe in EINER Automatisierung sind!

Ich denke gerade nach, welchen besseren Weg es im HA gibt der zuverlässig aber auch übersichlich administrierbar abzubilden wäre.

Nach jetztigem Wissensstand würde ich für jede zeitgesteuerte Aufgabe eine eigene Automatisierung zu dieser entsprechenden Zeit machen.
Oder gibt es andere Lösungen, die eher in Bezug auf das zu steuernde Element mehrere Zeitabläufe abbilden?

Wie habt ihr das gelöst?
Freue mich über Tipps!

Meines Wissen kannst du auch in HA Cronjob ausführen sonst ist das mit den Automatisierungen schon der richtige Weg. Kannst du mal genauer Sagen für was du die Automatisierungen haben möchtest. Dann wird es auch einfacher werden dir zu Antworten.

Ja gerne.

  • ich fahre Rollos rauf oder runter
  • schliesse oder öffne elektrische Fenster
  • prüfe zu bestimmten Zeit ob Geräte eingeschaltet sind und aktiviere sie
  • u.s.w

Was mir aufgefallen ist, dass mein CronJob Skript schön langsam etwas unübersichtlich geworden ist und ich überlege eben die Zeitsteuerungen in Automatisierungen für die Geräte zu übertragen.

Ich weiß schon, dass beide Varianten funktionieren werden, mich hat einfach nur interessiert wie das andere machen, deshalb meine Frage!

Hier mein derzeitiges Testscript, falls Interesse besteht. Noch nicht besonders hübsch, aber funktioniert…
SInd derzeit auch noch Kontrollmails drinnen, damit ich die Funktion prüfen kann, die kommen natürlich dann raus, wenn alles „PROD“ Status hat :wink:

alias: "CronJob "
description: Macht alle möglichen Dinge zu bestimmten Urhzeiten!
triggers:
  - trigger: time
    at: "09:00:00"
    id: um 9:00 Uhr
  - trigger: time
    at: "10:00:00"
    id: um 10:00 Uhr
  - trigger: time
    at: "14:30:00"
    id: um 14:30 Uhr
  - trigger: time
    at: "15:30:00"
    id: um 15:30 Uhr
  - trigger: time
    at: "18:00:00"
    id: um 18:00 Uhr
  - trigger: sun
    event: sunset
    offset: 0
    id: Sonnenuntergang
  - trigger: sun
    event: sunrise
    offset: 0
    id: Sonnenaufgang
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - um 9:00 Uhr
        sequence:
          - if:
              - condition: state
                entity_id: switch.loggia_terasse_kuhlschrank_761_761
                state: "on"
            then:
              - action: notify.mobile_app_iphone_Paul
                metadata: {}
                data:
                  message: >-
                    Kühlschrank auf der Loggia ist eingeschaltet, brauchen wir
                    den noch?
                  title: Kühlschrank Loggia
              - action: notify.send_gmail_paul
                metadata: {}
                data:
                  message: >-
                    Kühlschrank auf der Loggia ist eingeschaltet, brauchen wir
                    den noch?
                  title: Kühlschrank Loggia
            alias: Wenn kühlschrank Loggia ein -> Email
          - if:
              - condition: numeric_state
                entity_id: sensor.loggia_terasse_aussen_temp_115
                above: 25
                below: 10
            then:
              - action: cover.close_cover
                metadata: {}
                data: {}
                target:
                  entity_id: cover.schlafz_rs_auf_zu_926_926
            alias: Wenn >25 und <10 Grad SZ Fenster schliessen
        alias: Wenn es 9:00 Uhr ist - Kühlschrank Prüfung & Fenster SZ schliessen
      - conditions:
          - condition: trigger
            id:
              - um 10:00 Uhr
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.vorz_eg_turklingel_189_189
          - if:
              - condition: state
                entity_id: switch.arbeitszimmer_monitore_ein_aus_933
                state: "on"
            then:
              - action: cover.open_cover
                metadata: {}
                data: {}
                target:
                  entity_id:
                    - cover.schlafz_rolladen_links_647_647
                    - cover.schlafz_rolladen_rechts_652_652
            alias: Rollos SZ hoch wenn im AZ Betrieb
      - conditions:
          - condition: trigger
            id:
              - um 14:30 Uhr
        sequence:
          - if:
              - condition: numeric_state
                entity_id: sensor.loggia_terasse_aussen_temp_115
                above: 25
            then:
              - action: cover.close_cover
                metadata: {}
                data: {}
                target:
                  entity_id: cover.schlafz_rs_auf_zu_926
              - action: cover.set_cover_position
                metadata: {}
                data:
                  position: 37
                target:
                  entity_id:
                    - cover.schlafz_rolladen_links_647_647
                    - cover.schlafz_rolladen_rechts_652_652
            alias: Wenn Temperatur über 25 Grad ist
      - conditions:
          - condition: trigger
            id:
              - um 15:30 Uhr
            alias: Wenn 15:30 Uhr ist, Markise einfahren
        sequence:
          - action: script.markise_einfahren
            metadata: {}
            data: {}
          - alias: Wenn nicht auf Urlaub sind, dann Rollos hoch
            if:
              - condition: state
                entity_id: input_boolean.status_urlaub
                state: "off"
            then:
              - action: cover.open_cover
                metadata: {}
                data: {}
                target:
                  entity_id:
                    - cover.wohnz_rol_terassentur_354
                    - cover.wohnz_rolladen_fenster_357
          - action: notify.send_gmail_paul
            metadata: {}
            data:
              title: "Status: Cronjob Homeassistant"
              message: Markise wurde eingefahren
      - conditions:
          - condition: trigger
            id:
              - um 18:00 Uhr
          - alias: Wenn Temp <18 und >28 ist dann Fenster im SZ zu
            condition: numeric_state
            entity_id: sensor.loggia_terasse_aussen_temp_115
            above: 28
            below: 18
        sequence:
          - action: cover.close_cover
            metadata: {}
            data: {}
            target:
              entity_id: cover.schlafz_rs_auf_zu_926_926
          - action: notify.send_gmail_paul
            metadata: {}
            data:
              title: Cronjob Homeassistant
              message: Es hat über 28 Grad, Fenster im Schlafzimmer geschlossen
      - conditions:
          - condition: trigger
            id:
              - Sonnenuntergang
        sequence:
          - action: script.außenbeleuchtung_ein
            metadata: {}
            data: {}
      - conditions:
          - condition: trigger
            id:
              - Sonnenaufgang
        sequence:
          - action: script.außenbeleuchtung_aus
            metadata: {}
            data: {}
mode: single

Was die Script angeht und Automatisierungen da können dir sicher @jayjojayson und @Dreckfresse weitere Tipps geben die können so was im Schlaf! :wink:

Klar kann man das alles in eine Automation / ein Script quetschen aber wie du merkst, wird es schnell unübersichtlich.

Ich mache meine Automationen meist nach Gerät bzw. Anliegen:

  • „Alarmanlage“ scharf stellen
  • Rollos im Wohnzimmer zur Beschattung schließen und wieder öffnen
  • Abends das Licht im Flur schalten
  • Automation beim Verlassen oder Betreten der Home Zone
  • Camera-Aufzeichnungen in Situation X und Y
  • Tür aufschließen bzw. abschließen
  • Lichter beim zu Bett gehen aus
  • Staubsauger bei Bedarf fahren lassen
  • etc.

Also wirklich je nach Anwendungsfall.

1 „Gefällt mir“

Hallo,
ich halte es wie maxe. Aber es spricht nichts dagegen so wie du es machst. Dann möchte ich dir auch empfehlen den Modus auf Warteschlange oder parallel zu stellen denn der Sonnenaufgang könnte auch um 9:00 Uhr oder der Sonnenuntergang um 18: Uhr sein.

1 „Gefällt mir“

Vielen Dank für eure Infos!
Dann werde mich auch danach richten, das eher „Projektbezogen“ zu machen, denn wie „unübersichtlich“ geht, hab ich schon rausgefunden :wink:

Danke @rstuck auch für den Tipp mit Paralell oder Warteschlange, super Idee das zu berücksichtigen!
Dazu hab ich auch ein Video von Thomas gefunden, falls das wer genauer nachlesen möchte…