So, ich versuche mich nochmal an einer vollständigen Anleitung.
Man könnte sicher einen Blueprint erstellen, aber dafür bin ich jetzt auch noch zu blöd und ein bisschen Denkarbeit muss ich dem geneigten Leser auch noch lassen.
Zunächst muss man wählen, ob das Ganze per Cloud oder mit ESPs realisiert werden soll.
-
Per Cloud:
Es muss HACS installiert sein. Via HACS kann dann die Integration Panasonic Comfort Cloud installiert werden. -
Per ESP:
Grundsätzlich reicht irgendein ESP32 und ein passendes Kabel. Dazu braucht man auf jeden Fall Platz im Gehäuse. Dieser ist hinter dem Original-WLAN-Modul vorhanden - dazu muss allerdings das Gehäuse einmal abgenommen werden (ist auch nicht sonderlich kompliziert).
Schicker ist die Lösung von espthings.io. Damals musste man die noch selbst zusammenlöten, nach meinen letzten Informationen kann das bei PCBWay mittlerweile auch schon zusammengelötet geordert werden.
Anmerkung: [Gerät] muss natürlich immer durch den Namen des Geräts ersetzt werden. Ansonsten muss alles in eckigen Klammern durch den entsprechenden erstellten oder vorhandenen Sensor ersetzt werden.
-
(1) Entscheidet man sich für die (bessere) Lösung per ESP, dann muss man sich einen Helfer einrichten, der die Temperatur des Innentemperatursensors ausgibt:
Einstellungen > Geräte & Dienste > Helfer > Helfer erstellen > Template > Template für einen Sensor erstellen >
Name: [Gerät] Sensortemperatur
Zustandstemplate:{{ state_attr('climate.[Gerät]', 'current_temperature') }}
Maßeinheit: °C
Geräteklasse: Temperatur
Zustandsklasse: Messung
Bei der Cloud-Lösung gibt es schon eine solche Entität (sensor.[Gerät]_inside_temperature) -
Optional: Auch die eingestellte Temperatur wird sowohl beim ESP als auch per Cloud nicht per Entität ausgegeben. Das ist aber für potentielle Automatisierungstrigger interessant, weshalb ich das analog auch empfehlen würde:
Einstellungen > Geräte & Dienste > Helfer > Helfer erstellen > Template > Template für einen Sensor erstellen >
Name: [Gerät] Eingestellte Solltemperatur
Zustandstemplate:{{ state_attr('climate.[Gerät]', 'temperature') }}
Maßeinheit: °C
Geräteklasse: Temperatur
Zustandsklasse: Messung -
(2) Erstellen des Solltemperaturreglers:
Jetzt erstellen wir uns den Regler für die Solltemperatur. Wird der Wert dieser Entität beim Heizen überschritten, wird die spätere Automatisierung die Temperatur nach oben anpassen. Beim Kühlen genau umgekehrt.
Einstellungen > Geräte & Dienste > Helfer > Helfer erstellen > Zahlenwert-Eingabe
Name: Solltemperatur [Gerät]
Minimalwert: 16
Maximalwert: 30
Schrittweite: 0,5
Maßeinheit: °C
Anzeigemodus: hier kann man zwischen Eingabefeld und Schieberegler wählen -
(3) Jetzt sind wir bereit zum Erstellen der Automatisierung.
Einstellungen > Automatisierungen & Szenen > Automatisierung erstellen > Neue Automatisierung erstellen > drei Punkte oben rechts > In YAML bearbeiten
Und nun fügt man folgenden Code ein und passt ihn da an, wo die Hashtags hinter den Zeilen stehen:
alias: Temperaturautomatik [Gerät]
description: ""
triggers:
- entity_id: # löst bei jeder Änderung der Temperatur am Sensor aus
- sensor.[Innentemperatursensor] # siehe (1)
trigger: state
- entity_id:
- input_number.[Solltemperaturregler] # löst bei Änderung der Solltemperatur aus (siehe (3))
trigger: state
- trigger: state
entity_id:
- sensor.[Eingestellte Solltemperatur, siehe oben] # löst bei Änderung der am Gerät eingestellten Solltemperatur aus; dieser Trigger ist dann nützlich, wenn man vermeiden möchte, dass externe Änderungen zugelassen werden - eine Verstellung der Solltemperatur an der Fernbedienung ist somit sofort wirkungslos
- trigger: state
entity_id:
- climate.[Gerät] # löst bei Änderung des Zustands des Innengeräts aus (bspw. beim Einschalten oder wechseln von Trocknen auf Kühlen)
conditions: []
actions:
- if:
- condition: state
entity_id: climate.[Gerät]
state: heat
for:
hours: 0
minutes: 0
seconds: 0
then:
- if:
- condition: template
value_template: >-
{{ states('sensor.[siehe (1)]') | float <=
states('input_number.[Solltemperaturregler]') | float }}
then:
- data:
temperature: "{{ states('input_number.[Solltemperaturregler]') | float(0) }}"
target:
entity_id: climate.[Gerät]
action: climate.set_temperature
else:
- data:
temperature: "{{ states('sensor.[siehe (1)]') | float(0) }}"
target:
entity_id: climate.[Gerät]
action: climate.set_temperature
alias: Heizen
- alias: Trocknen/Kühlen
if:
- condition: or
conditions:
- condition: state
entity_id: climate.[Gerät]
state: dry
for:
hours: 0
minutes: 0
seconds: 0
- condition: state
entity_id: climate.[Gerät]
state: cool
for:
hours: 0
minutes: 0
seconds: 0
then:
- if:
- condition: template
value_template: >-
{{ states('sensor.[siehe (1)') | float >=
states('input_number.[siehe (3)') | float }}
then:
- data:
temperature: "{{ states('input_number.[siehe (3)]') | float(0) }}"
target:
entity_id: climate.[Gerät]
action: climate.set_temperature
else:
- data:
temperature: "{{ states('sensor.[siehe (1)]') | float(0) }}"
target:
entity_id: climate.[Gerät]
action: climate.set_temperature
mode: single
That's it.