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
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
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
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).
- Ersetze
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:
- YAML-Datei erstellen: Erstelle eine neue YAML-Datei in deinem Home Assistant-Konfigurationsverzeichnis (normalerweise
configuration.yaml
). - Code einfügen: Kopiere den obigen Code in die Datei und passe die Entity-IDs an.
- 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
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?