Für leidgeplagte der bescheidenen Panasonic "Comfort" Cloud gibt es eine Alternative - die Steuerung der Klimageräte aus dem lokalen Netz ohne nervige Cloud. Hier mal meine Einbindung mit den entsprechenden Komponenten auf Basis von ESPHome - das Ganze ist echt trivial umzusetzen:
benötigte Komponenten:
- Waveshare ESP32-C3-Zero
- Kabel mit PAP-05V-S Stecker (z.b. https://www.amazon.de/dp/B0DRVP7FQF)
- 3D Drucker (optional)
Man kann natürlich auch andere ESP32 Boards nehmen, aber dann muss man ggf. die Pins anpassen. Diese Lösung funktioniert so wie sie ist mit den angegebenen Teilen:
- Zuerst wird das gelbe Kabel vom Stecker entfernt. Das wird nicht benötigt und stört nur. Im Anschluss wird das Kabel auf den ESP32 gelötet, wie auf den Bildern zu sehen. (schwarz=5V, orange=GND, weiß=GPIO21, rot=GPIO20). Im Internet gibt es Beiträge, die sich mit dem Thema 5V Toleranz ja/nein beim ESP32 beschäftigen. Ich weiß nicht woher das kommt, aber die CN-CNT Pins (Farbe weiß+rot) senden maximal 2,6V in der high flank, so dass hier aus meiner Sicht nichts weiter nötig ist. Die GPIO Pins sind für 3,3V ausgelegt. Wer auf Nummer sicher gehen will kann hier noch einen passenden Widerstand zwischen setzen und beim weißen Kabel einen Levelshifter integrieren um die 3,3V auf 2,6V zu reduzieren. Das dürfte aber wohl überflüssig sein, zumal ein ESP32 nicht viel kostet.
- Wer einen 3D Drucker hat, kann hierfür noch ein passendes Gehäuse drucken. Die STL Datei habe ich hier auch angefügt. diese passt perfekt ins Gehäuse der Klimageräte. Wer keinen 3D Drucker hat, der kann das Gehäuse des integrierten WLAN Adapters nutzen. Wenn gar nichts geht, dann sollte der ESP32 zumindest mit Isolierband umwickelt werden, damit an die Kontakte nichts kommt. Davon rate ich aber ab. Dann doch besser bei einem Anbieter im Internet den 3D Druck bestellen.
- ESPHome (www.esphome.io) installieren, falls das noch nicht vorhanden sein sollte.
- Die Datei secrets.yaml erstellen und dort die eigenen Settings für Wlan, Broker etc setzen:
wifiSsid:
wifiPassword:
wifiPasswordAP:
otaPassword:
mqttBroker:
wifiDomain:
- Im Anschluss wird die Datei ac.yaml erstellt:
substitutions:
deviceName: pac
wifiDomain: !secret wifiDomain
mqttBroker: !secret mqttBroker
txPin: GPIO21
rxPin: GPIO20
esphome:
name: ${deviceName}
name_add_mac_suffix: true
esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
framework:
type: esp-idf
wifi:
ssid: !secret wifiSsid
password: !secret wifiPassword
domain: ${wifiDomain}
fast_connect: on
ap:
ssid: ${deviceName}
password: !secret wifiPasswordAP
mqtt:
broker: ${mqttBroker}
discovery: false
discover_ip: true
will_message:
birth_message:
log_topic: null
on_message:
- topic: ${deviceName}/wlan
payload: 'info'
then:
- mqtt.publish:
topic: '{$deviceName}/ip'
payload: !lambda "return id(ip_address).state;"
- mqtt.publish:
topic: '{$deviceName}/mac'
payload: !lambda "return id(mac_address).state;"
logger:
level: ERROR
ota:
- platform: esphome
password: !secret otaPassword
text_sensor:
- platform: wifi_info
ip_address:
name: "IP Adress"
id: ip_address
mac_address:
name: "Mac Adress"
id: mac_address
# Minimum ESPHome 1.15.0+
uart:
tx_pin: ${txPin}
rx_pin: ${rxPin}
id: ac_uart
baud_rate: 9600
parity: EVEN
external_components:
source: github://DomiStyle/esphome-panasonic-ac
components: [panasonic_ac]
climate:
- platform: panasonic_ac
type: cnt
name: "${deviceName}"
vertical_swing_select:
name: "${deviceName} vertical swing mode"
outside_temperature:
name: "${deviceName} outside temperature"
mild_dry_switch:
name: "${deviceName} mild dry switch"
current_power_consumption:
name: "${deviceName} power consumption"
- Danach kann die Firmware kompiliert und auf den ESP32 übertragen werden:
esphome run ac.yaml
- Nun wird das Gerät über MQTT in Fhem eingebunden:
defmod Essen.Klima MQTT2_DEVICE pac_xxxxxx_xxxxxxxxxxxx
attr Essen.Klima DbLogExclude .*
attr Essen.Klima autocreate 0
attr Essen.Klima devStateIcon cool:frost@green heat:sani_heating@green fan_only:ventilator_fett@green dry:humidity@green heat_cool:time_automatic@green Aus:control_standby@grey
attr Essen.Klima event-on-change-reading state,mode,temperature,temperatureTarget,preset,fanMode,swingMode,verticalSwingMode,temperatureOutside,mildDrySwitch,powerConsumption,status
attr Essen.Klima event-on-update-reading mode
attr Essen.Klima eventMap on:Ein off:Aus
attr Essen.Klima group Heizung
attr Essen.Klima icon temp_frost
attr Essen.Klima readingList pac_xxxxxx_xxxxxxxxxxxx:esphome/discover/pac-xxxxxx:.* { json2nameValue($EVENT) }\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/climate/pac/mode/state:.* mode\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/climate/pac/current_temperature/state:.* temperature\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/climate/pac/target_temperature/state:.* temperatureTarget\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/climate/pac/preset/state:.* preset\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/climate/pac/fan_mode/state:.* fanMode\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/climate/pac/swing_mode/state:.* swingMode\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/select/pac_vertical_swing_mode/state:.* verticalSwingMode\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/sensor/pac_outside_temperature/state:.* temperatureOutside\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/switch/pac_mild_dry_switch/state:.* mildDrySwitch\
pac_xxxxxx_xxxxxxxxxxxx:pac-xxxxxx/sensor/pac_power_consumption/state:.* powerConsumption\
pac_xxxxxx_xxxxxxxxxxxx:pac/status:.* status
attr Essen.Klima room Erdgeschoss->Essen,Interfaces->MQTT
attr Essen.Klima setList mode:off,cool,heat,fan_only,dry,heat_cool pac-xxxxxx/climate/pac/mode/command\
fanMode:1,2,3,4,5,Automatic pac-xxxxxx/climate/pac/fan_mode/command\
status:noArg pac-xxxxxx/climate/pac/mode/state\
temperatureTarget:slider,16,0.5,30 pac-xxxxxx/climate/pac/target_temperature/command\
swingMode:off,both,vertical,horizontal pac-xxxxxx/climate/pac/swing_mode/command\
preset:Normal,Powerful,Quiet pac-xxxxxx/climate/pac/preset/command\
on:noArg pac-xxxxxx/climate/pac/mode/command cool\
off:noArg pac-xxxxxx/climate/pac/mode/command off\
clear_all:noArg {fhem("deletereading -q $NAME (?!associatedWith|IODev).*");;;;return undef}
attr Essen.Klima stateFormat {ReadingsVal($name,'mode','')."\n"."<br/>".ReadingsVal($name,'temperature','')." °C"}
attr Essen.Klima webCmd Ein:Aus
statt pac_xxxxxx_xxxxxxxxxxxx muss die vom esp32 gegebene mac Adresse verwendet werden. die Syntax ist dabei pac_<letzten 3 byte / 6 Zeichen der mac Adresse)_<Mac Adresse>. bei pac_xxxxxx ist es nur pac_<letzten 3 byte / 6 zeichen der mac Adresse)
Die Mac Adresse sieht man in der Konsole beim Start des Uploadvorgangs der Firmware. Wenn alles richtig gemacht wurde solle das device im Anschluss mit Readings befüllt werden. Wenn das alles funktioniert, erfolgt der Einbau.
- Von jedem nachfolgenden Schritt sollte man ggf. ein Foto machen, wenn man das noch nicht so oft gemacht hat. Damit bekommt man das sicher wieder richtig zusammengesetzt.
Klimaanlage stromlos machen und die Abdeckung entfernen. Danach den Systemkasten öffnen, wie auf den Bildern zu sehen. Vermutlich müssen hier auch die Zuleitungskabel etc entfernt werden. Als erstes wird dann der bestehden WLAN Adapter entfernt (falls vorhanden). Ältere Modelle haben nur eine CN-CNT Schnittstelle, an der bei mir zuvor ein CZ-TACG1 angeschlossen war. Neue Modelle haben zusätzlich eine DNSK-P11 Schnittstelle, an der die WLAN Schnittstelle hängt. Diese hat zwar ein paar Vorteile, die wir hier aber nicht unbedingt brauchen. Danach wird das Kabel des ESP32 direkt an den CN-CNT Port gesteckt. Das wars dann auch schon. Vor dem Zusammenbau sollte das Ganze nochmal getestet werden. Also Sicherung wieder rein und gucken, ob die Steuerung über FHEM funktioniert. Wenn alles geht, Sicherung wieder raus, und Gehäuse wieder zusammenbauen / schließen.
- Wenn zuvor ein Wlan Adapter an der DNSK-P11 Schnittstelle hing, muss noch die WLAN Schnittstelle am Klimagerät über die Fernbedienung ausgemacht werden. Ansonsten wird die entsprechende LED ständig blinken.
Das wars dann auch schon und kostet keine 10 € je Gerät. Wenn man Zeit hat und sich die Sachen über Aliexpress bestellt kommt man sogar mit 2-3 € aus. Jedenfalls reagieren die Geräte nun instant. Das ist richtiger Luxus wenn man zuvor die Comfort Cloud App nutzten "durfte" ;D
Viel Spaß beim Nachbauen. Umsetzung erfolgt natürlich auf eigene Gefahr ;D
Hallo guybrush,
vielen Dank für die echt tolle Beschreibung. Eine Verständnisfrage: Wenn ich neuere Geräte habe, kann ich dann das ESP parallel mit dem internen Adapter betreiben? Wegen WAF ;-)
Gruß
Marco
Was ist WAF? Ich würde das nicht tun, grundsätzlich ist das aber eine dumme Schnittstelle die nur auf Spannungsveränderungen reagiert. Dürfte also gehen, aber der Sinn erschließt sich mir nicht
WomanAcceptanceFactor ;D
Ein Strauß Blumen tuts auch :P die Fernbedienungen gehen weiterhin. Das einzige was nicht ginge ist die geile App von Panasonic :o
Vielen Dank für die ausführliche Beschreibung inkl. der Kaufhinweise und der Bilder. Bei mir werden ab sofort nun auch 3 Panasonic-Klimaanlagen wieder stabil mit FHEM bedient.
Ich musste ein bisschen schauen, wie ich ESPHOME auf meinem Windows-Rechner installiert bekomme und zusätzlich musste ich noch GIT for windows installieren, damit ESPhome sich auch die Sourcen laden kann.
Vielleicht noch einen kleinen Hinweis zu der obigen Beschreibung:
Hatte in der secrets.yaml nur die Werte gefüllt, die ich benötige. So wurde aber die Installation nicht durchgeführt mit Fehlerhinweisen. Die nicht genutzten Variablen müssen mit 2 " gefüllt werden. Alle anderen Werte ebenfalls in "Gänsefüßchen". Danach klappte die Installation.
Da ich keine Lust hatte, meine Anlage stromlos zu machen, um das Gehäuse zu öffnen und meine Anlage den CN-CNT-Anschluss unter dem Anschlussdeckel frei hat, habe ich es wie auf dem Foto gelöst.
ESP32-Panasonic.jpg
Gruß
Marco
schön, dass es geklappt hat ;D sehr kreatives gehäuse :D
Sieht man ja nicht und per Klettverschluss entfernbar... 8)
Zitat von: marboj am 06 Juli 2025, 18:19:30Vielen Dank für die ausführliche Beschreibung inkl. der Kaufhinweise und der Bilder. Bei mir werden ab sofort nun auch 3 Panasonic-Klimaanlagen wieder stabil mit FHEM bedient.
Ich musste ein bisschen schauen, wie ich ESPHOME auf meinem Windows-Rechner installiert bekomme und zusätzlich musste ich noch GIT for windows installieren, damit ESPhome sich auch die Sourcen laden kann.
Vielleicht noch einen kleinen Hinweis zu der obigen Beschreibung:
Hatte in der secrets.yaml nur die Werte gefüllt, die ich benötige. So wurde aber die Installation nicht durchgeführt mit Fehlerhinweisen. Die nicht genutzten Variablen müssen mit 2 " gefüllt werden. Alle anderen Werte ebenfalls in "Gänsefüßchen". Danach klappte die Installation.
Da ich keine Lust hatte, meine Anlage stromlos zu machen, um das Gehäuse zu öffnen und meine Anlage den CN-CNT-Anschluss unter dem Anschlussdeckel frei hat, habe ich es wie auf dem Foto gelöst.
ESP32-Panasonic.jpg
Gruß
Marco
Hallo Marco
Ich möchte diese Lösung ebenfalls umsetzen und die Anlage per fhem und per Pnasonic App steuern können. In deiner Klima war ja offenbar der entsprechende Stecker für den Verbau noch unbenutzt. Welchen genauen Typ Kima hast du genau?
Bei mir wird nächstens eine MULTI, CS-Z25ZKEW verbaut.
Ich hoffe dort ebenfalls auf einen freien Stecker zu treffen :-)
du brauchst den cn-cnt port. der ist bei allen nicht all zu alten geräten vorhanden. bei mir war der auf der platine. bei dir scheinbar auch.
siehe s. 56 der manual (https://www.netrauta.fi/attachments/products/panasonic/PANKIT-Z25ZKE_Huolto.pdf)
Zitat von: Guybrush am 21 Juli 2025, 21:53:01du brauchst den cn-cnt port. der ist bei allen nicht all zu alten geräten vorhanden. bei mir war der auf der platine. bei dir scheinbar auch.
siehe s. 56 der manual (https://www.netrauta.fi/attachments/products/panasonic/PANKIT-Z25ZKE_Huolto.pdf)
Perfekt, danke. Dann mach ich mich mal an die Bestellung beim freundlichen chinesen :-)
Ich habe nochmals eine Frage:
Ich habe den ESP32 erfolgreich geflasht "paceltern" und das Device wird per Autocreate in fhem angelegt:
defmod paceltern MQTT2_DEVICE paceltern
attr paceltern DbLogExclude .*
attr paceltern readingList paceltern:esphome/discover/paceltern-382a74:.* { json2nameValue($EVENT) }\
paceltern:paceltern-382a74/sensor/mac_adress/state:.* state\
paceltern:paceltern-382a74/climate/paceltern/mode/state:.* state\
paceltern:paceltern-382a74/climate/paceltern/target_temperature/state:.* state\
paceltern:paceltern-382a74/climate/paceltern/preset/state:.* state\
paceltern:paceltern-382a74/climate/paceltern/fan_mode/state:.* state\
paceltern:paceltern-382a74/climate/paceltern/swing_mode/state:.* state\
paceltern:paceltern-382a74/switch/paceltern_mild_dry_switch/state:.* state\
paceltern:paceltern-382a74/sensor/ip_adress/state:.* state
attr paceltern room MQTT2_DEVICE
Im Unterschied zu Dir werden jedoch ausschliesslich der devicename-xxxxxx (sprich die letzten 6 Zeichen der Mac Adresse) verwendet. Die Einträge mit der ganzen Mac Adresse werden nicht erstellt. Muss ich diese selber erstellen im Attr Readingslist und in der Definition?
Die Klimaanlage ist noch nicht installiert, kann es also noch nicht anschliessen :-)
das sieht auf dem ersten blick alles ok aus. dass im device keine mac steht dürfte daran liegen, dass du name_add_mac_suffix vermutlich nicht auf true stehen hast. dürfte aber trotzdem funktionieren
Zitat von: Guybrush am 06 August 2025, 21:55:20dass im device keine mac steht dürfte daran liegen, dass du name_add_mac_suffix vermutlich nicht auf true stehen hast. dürfte aber trotzdem funktionieren
Ich habe den Inhalt der yaml 1:1 von dir übernommen. Müsste deshalb auf true stehen!
das sollte dann so sein. ich weiss aber auch nicht welche esphome version du nutzt und ob es da änderungen gibt. wie dem auch sei - es dürfte so auch funktionieren
Ich habe die Lösung so bei mir auch in Betrieb (damals war eine Ähnliche Anleitung bei espthings.io drin, mit der ich das Teil in FHEM anbinden konnte.
Ich habe nun allerdings das Problem, dass ich mein WLAN Passwort ändern muss. Ich komme über die IP des ESP ja auf ein Webportal von dem Gerät, auf der es auch die Option "OTA Update" gibt. Kann ich dort direkt eine YAML mit geändertem Passwort hochladen und muss das Teil dann nicht erneut im FHEM anmelden?
Ein Webportal kenn ich nicht bei der Lösung. Ich hab das mit ESPHome gemacht. Ein OTA Update funktioniert über ESPHome, indem du im YAML File die IP des Geräts definierst. Setzt natürlich voraus, dass OTA Updates in der Liveconfig damals auch aktiviert wurden.
Hallo TomS85,
man kann per ESPHome bequem Updates auf dem ESP machen, ohne ihn physisch an einen Rechner anstöpseln zu müssen. Und natürlich hat auch Guybrush recht, dass man etwas vorher in der .yaml definiert haben muss.
Bei mir sieht es so aus:
ota:
- platform: esphome
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "ESPHome Fallback"
# Optional manual IP - damit gelingt ein wireless update in ESPHome
manual_ip:
static_ip: 192.168.xxx.yyy
gateway: 192.168.xxx.1
subnet: 255.255.255.0
Viele Grüße Gisbert
Danke euch! Bei mir sieht das ganze so aus:
Screenshot 2026-03-16 184711.png
Ich habe in der YAML damals folgendes eingestellt:
wifi:
ssid: #MeineSSID
password: #MeinPasswort
# manual_ip:
# static_ip: 192.168.XXX.XXX
# gateway: 192.168.XXX.XXX
# subnet: 255.255.255.0
ap: {}
captive_portal:
web_server:
port: 80
Das POrtal scheint dann wohl das "captive Portal" zu sein - das erreiche ich über die IP des ESP. Bei esphome habe ich dazu folgendes gefunden: https://esphome.io/components/captive_portal/ - dort steht auch, dass man dort ein "neues Firmware file" hochladen kann. Aber ist die YAML Datei die Firmware, oder ist damit was anderes gemeint? Nicht, dass ich mir damit alles zerschieße.
Danke und beste Grüße,
Tom
die YAML Datei ist nur die config. Die Firmware selbst baust du dann mit ESPHome und der config. Nachdem die erstellt ist, kommt normal eine Abfrage, ob du die per OTA oder USB flashen willst. Man kann das aber auch später machen, indem man die .bin Datei dann händisch hochlädt. In jedem Fall musst du die erstmal mit esphome kompilieren
Hallo TomS85,
ich befürchte, dass du noch nicht weißt, wie man eine .yaml-Datei zu einer .bin-Datei kompiliert. Wie bereits gesagt, kannst du dir die .yaml nicht zerschießen.
Wenn du willst, schreib mir eine PM - vielleicht klärt sich dann einiges in einem Telefonat. Prinzipiell könnte ich basierend auf deiner .yaml-Datei eine .bin-Datei erzeugen, aber dann bräuchte ich deine Wlan-Credentials, die mit kompiliert werden müssen - ein gewisses Dilemma. Vielleicht gelingt es aber auch, dich bei der Kompilierung zu unterstützen.
Viele Grüße Gisbert
Mir fällt noch auf, dass der Wert bei Panasonic AC Garage bei 8.0 steht, aber die Werte nur zwischen 16 und 30 geändert werden können. Das ist irgendwie widersprüchlich. Persönlich finde ich Slider etwas ungünstig; ich nutze gerne eine Zahleneingabe, die man einfach eintippt.