Blockly Script von iobroker übernehmen

Ich steige gerade von iobroker zu HA um. Bisher habe ich ein Script für die Heizkörpertermostatsteuerung bei offenem Fenster genutzt. Kann man das BlocklyScript übernehmen oder geht das in HA nicht?

Moin,

Ja, geht nicht :slight_smile:
In HA gibt es kein Blockly, hier kannst Du schauen, ob es ein funktional passendes Blueprint dafür gibt oder halt mit den Automationen Dir etwas Eigenes erstellen.

im Forum

aus anderen Foren

Allgemeine Information Blueprints

Allgemeine Information Automationen

VG
Bernd

P.S.:

Nein, ist ein probates Mittel, ist halt nur ein Add-on mehr in HA und ein Weg muss man halt lernen, da macht es keinen Unterschied ob nun HA interna, oder Node Red.

HI,
ich stand damals vor dem selben Problem, ich wollte unbedingt eine grafische Oberfläche zum Programmieren haben, leider konnte ich Blockly Programme nicht übernehmen, nur den Programmablauf. Mir wurde bei Node Red geholfen, ist sogar einfacher als Blockly wenn man sich reingefuchst hat. Wenn du aus der IT Welt - “Programmierung” kommst, dann sagt dir auch Programmablaufplan etwas, und Node Red ist ein Programmablaufplan.
Werde hier wahrscheinlich gleich gesteinigt, dass mit den Boardmitteln es noch einfacher geht, ist aber nicht so grafisch :wink:

Habe es gerade versucht in HA als Automation zu erstellen. Leider schaffe ich es nur das Thermostat an und auszuschalten, je nach dem ob Fenster offen oder geschlossen ist. Dazu soll nach 10 und 15min eine Meldung auf allen Echogeräten ausgegeben werden, dass das Fenster xy noch geöffnet ist und geschlossen werden soll. Schön wäre es, wenn es sich in einer Automation umsetzen lässt.
Das ist das Beispiel aus iobroker:

Moin,

Das ist ein beliebtes Thema und zu dieser Jahreszeit ein Topthema :slight_smile:
Schau mal, z. B. hier,

https://community.simon42.com/search?q=advanced%20heating%20control

Einfach mal die Suchfunktion malträtieren, dann wirst Du schon Ansatzpunkte finden, ansonsten, geht auch eine KI anfrage, bei ChatGPT, oder Gemini

Absolut! Home Assistant bietet dafür hervorragende Möglichkeiten. Hier ist ein Beispiel für eine Automation, die deine Anforderungen erfüllt:

Ich habe nur mal das bei Gemini eingegeben

Ich möchte in Home Assistant ein Thermostat an und abschalten, je nach
dem ob Fenster offen oder geschlossen ist. Dazu soll nach 10 und 15min
eine Meldung auf allen Echogeräten ausgegeben werden, dass das Fenster
xy noch geöffnet ist und geschlossen werden soll. Schön wäre es, wenn es
sich in einer Automation umsetzen lässt.

automation:
  - alias: "Fenster geöffnet: Heizung aus, Erinnerung"
    trigger:
      - platform: state
        entity_id: binary_sensor.fenster
        to: 'on'
    condition:
      - condition: state
        entity_id: climate.thermostat
        state: 'heat'  # Ersetze 'heat' durch den entsprechenden Zustand für deine Heizung
    action:
      - service: climate.set_hvac_mode
        data:
          entity_id: climate.thermostat
          hvac_mode: 'off'
      - service: notify.all
        data:
          message: "Das Fenster xy ist noch geöffnet. Bitte schließen."
      - service: notify.all
        data:
          message: "Das Fenster xy ist immer noch geöffnet. Bitte schließen."
        delay: 00:10:00
      - service: notify.all
        data:
          message: "Das Fenster xy ist schon seit 15 Minuten geöffnet. Bitte schließen!"
        delay: 00:15:00

  - alias: "Fenster geschlossen: Heizung an"
    trigger:
      - platform: state
        entity_id: binary_sensor.fenster
        to: 'off'
    action:
      - service: climate.set_hvac_mode
        data:
          entity_id: climate.thermostat
          hvac_mode: 'heat'

Erklärung:

  • Zwei Automationen: Eine für das Öffnen und eine für das Schließen des Fensters.
  • Trigger: Wird ausgelöst, wenn der Zustand des Fenstersensors (binary_sensor.fenster) sich ändert.
  • Bedingung: Nur wenn die Heizung aktiv ist (hvac_mode: ‘heat’), wird die Heizung ausgeschaltet. Passe dies an deine Bedürfnisse an.
  • Aktionen:
    • Heizung aus/an: Setzt den Heizungsmodus auf aus bzw. an.
    • Benachrichtigungen: Schickt nach 0, 10 und 15 Minuten eine Nachricht an alle verfügbaren Echo-Geräte.
  • Entity-IDs:
    • Ersetze binary_sensor.fenster durch die korrekte Entity-ID deines Fenstersensors.
    • Ersetze climate.thermostat durch die Entity-ID deines Thermostats.
    • Passe den hvac_mode an deine Heizung an (z.B. ‘cool’ für Kühlung).

Zusätzliche Anpassungen:

  • Mehrere Fenster: Für jedes Fenster erstellst du eine eigene Automation mit der entsprechenden Entity-ID.
  • Andere Bedingungen: Füge weitere Bedingungen hinzu, z.B. basierend auf der Uhrzeit oder der Außentemperatur.
  • Zusätzliche Aktionen: Schalte Lichter ein/aus, starte bestimmte Szenen oder sende Benachrichtigungen an bestimmte Personen.

Einbindung in Home Assistant:

  1. YAML-Datei erstellen: Erstelle eine neue YAML-Datei in deinem Home Assistant-Konfigurationsverzeichnis (normalerweise configuration.yaml).
  2. Code einfügen: Kopiere den obigen Code in die Datei und passe die Entity-IDs an.
  3. Neustart: Starte Home Assistant neu, damit die Änderungen wirksam werden.

Wichtige Hinweise:

  • Entity-IDs: Stelle sicher, dass die Entity-IDs deiner Geräte korrekt sind. Du findest sie in der Entwickler-Tools-Sektion von Home Assistant.
  • Benachrichtigungen: Die Benachrichtigungen werden an alle in Home Assistant konfigurierten Echo-Geräte gesendet.
  • Zeitverzögerungen: Die Zeitverzögerungen für die Benachrichtigungen können nach Bedarf angepasst werden.

Zusätzliche Tipps:

  • Visualisierung: Erstelle in Home Assistant eine Visualisierung, um den Status von Fenstern und Heizung übersichtlich darzustellen.
  • Gruppen: Erstelle Gruppen von Fenstern, um mehrere Fenster gleichzeitig zu steuern.
  • Tests: Teste die Automation gründlich, um sicherzustellen, dass alles wie erwartet funktioniert.

Mit dieser Automation kannst du deine Heizung effizient steuern und gleichzeitig daran erinnert werden, geschlossene Fenster.

Möchtest du noch weitere Anpassungen oder Ergänzungen?

Das ist jetzt noch kein fertiger Code, der Out of the Box funktioniert, aber so in etwas nährt man sich dem Thema an.

VG
Bernd

1 „Gefällt mir“

Ich habe alle Blockly Scripte nach Node-RED konvertiert.
Oder ich nutze das HACS Addon pyScript.
Die Automationen in HA sind mir ein graus. Damit komme ich überhaupt nicht klar.

Ein Beispiel aus Node Red. Die ErsteAutomation ist nur Thermostat deaktivieren und die beiden danach mit Sprachausgabe.

Da ich noch neu im Umgang mit HA bin, verstehe ich nicht, was mit den Codezeilen gemacht werden muss. Müssen die in die configuration.yaml eingetragen werden? Ist es dann in HA auf der Weboberfläche sichtbar und anpassbar oder muss alles in der yaml.-Datei gemacht werden?

configuration.yaml ist wie der Name schon sagt für die Einstellungen. Wenn du Automationen ertellen möchtest kannst du das über die Automationen von Home Assistant dir zusammenklicken, bei besonderheiten müsstest du da auch in Yaml programmieren - Code eingeben, oder du kannst in Node Red deine Automationen zusammen klicken, hier ist in manchen fällen auch etwas Code zu schreiben.
Aber fang doch schonmal an und dann wenn du auf Probleme stößt gibt es Google oder hier das Forum.

Da du Blockly benutzt hattest, bist vermutlich auch eher der visuelle Typ. Ich würde dir dann, wie von @Romka1983 empfohlen, auch NodeRed ans Herz legen. Mit den installierten node-red-contrib-home-assistant-websocket und der NR Companion Integration, steht NR den Automationen/Skripten in HA um nichts nach und es gibt dann durch die vielen NR Erweiterungen viele zusätzliche Möglichkeiten.

Folgenden Code habe ich in der configarations.yaml:

automation:
  - alias: 'Thermostat bei geöffnetem Fenster ausschalten'
    trigger:
      - platform: state
        entity_id: binary_sensor.0x00158d75f725a_contact
        to: 'on'
    condition:
      - condition: time
        after: '10:00:00'
        before: '22:00:00'
    action:
      - service: climate.set_hvac_mode
        data:
          hvac_mode: off
        target:
          entity_id: climate.buro
    mode: single

  - alias: 'Nach 10 Minuten erinnern'
    trigger:
      - platform: state
        entity_id: binary_sensor.0x00158d75f725a_contact
        to: 'on'
        for:
          seconds: 10 #zum testen auf Sekunden gesetzt
    condition:
      - condition: time
        after: '10:00:00'
        before: '22:00:00'
    action:
      - service: notify.mobile_app_iPhone
        data:
          message: 'Fenster Büro steht seit 10 Minuten offen! Bitte schließen.'
    mode: single

  - alias: 'Nach 15 Minuten erinnern'
    trigger:
      - platform: state
        entity_id: binary_sensor.0x001585f725a_contact
        to: 'on'
        for:
          minutes: 15
    condition:
      - condition: time
        after: '10:00:00'
        before: '22:00:00'
    action:
      - service: notify.mobile_app_iPhone
        data:
          message: 'Fenster Büro steht seit 15 Minuten offen! Bitte schließen.'
    mode: single

  - alias: 'Thermostat bei geschlossenem Fenster einschalten'
    trigger:
      - platform: state
        entity_id: binary_sensor.0x00158d025a_contact
        to: 'off'
    condition:
      - condition: time
        after: '10:00:00'
        before: '22:00:00'
    action:
      - service: climate.set_hvac_mode
        data:
          hvac_mode: auto
        target:
          entity_id: climate.buro
    mode: single

Die Änderung des Zustands vom Thermostat und die Meldung auf das iPhone klappen nicht. Ich verzweifele bei der Fehlersuche. Wer erkennt wo der Fehler liegt?