Køkken: Fujitsu 3.5kW IR Varmepumpe
Af: Kasper Gyldenlev Damholdt | Placeret i Køkkenet
Denne løsning gør en ældre Fujitsu 3.5kW varmepumpe uden Wi-Fi 100% intelligent via en ESP8266 med IR-transmitter flashet med ESPHome. Home Assistant automatiseringen håndterer dynamisk temperatur (17–20°C) baseret på gæster, nattid og børnenes pasningsstatus, og beskytter mod tabte IR-signaler via automatisk re-try og mobilnotifikationer.
Projektoverblik: Smart Styring af Enkelt IR-Varmepumpe
Den eksisterende Fujitsu 3.5kW varmepumpe i køkkenet er en ældre model uden indbygget Wi-Fi eller Bluetooth. For at integrere den fuldstændigt i Home Assistant er den blevet udstyret med et custom ESP8266 IR-board flashet med ESPHome.
Styringslogikken håndterer automatisk temperaturregulering baseret på tilstedeværelse (børnehave/vuggestue status, gæstemode, zone.home) og tidspunkter. Den er opbygget med re-try loops (gentagelser) for at sikre, at IR-signalerne fanges af enheden, samt sikkerhedsfunktioner som short-cycling beskyttelse og fejlnotifikationer til mobil.
Styringsdiagram & Beslutningstræ
Grafisk overblik over hvordan udløsere (triggers), variabler og tilstande beregner target-temperaturen og eksekverer IR-kommandoerne:
Styringslogik & Temperaturmål
Automatiseringen evaluerer kontinuerligt rumtemperaturen via sensor.kokken_temp_temperatur og tilpasser climate.espir_kitchen_ac_new ud fra følgende betingelser:
- Gæste Mode (
input_boolean.gaeste_mode= ON): 20°C (Komfortprioritet). - Nat (22:00 - 06:00) eller Ude (
zone.home < 1): 17°C (Energibesparelse). - Børn i institution eller Aften (19:00 - 22:00): 18°C (Moderat varme).
- Standard Drift (Dag/Tilstede): 20°C.
- IR Signal Redundans: Ved opvarmning eller blæser-tilstand sendes IR-kommandoen 2 gange med 10 sekunders mellemrum for at sikre mod tabte IR-signaler.
- Push-Notifikation ved Fejl: Hvis enheden ikke bekræfter
heat-tilstand efter opstart, sendes kritisk notifikation til Pixel 8 Pro. - Køling/Overophedning Beskyttelse: Hvis rumtemperaturen overstiger 23°C, skiftes der automatisk til
fan_onlyfor at cirkulere luften.
Home Assistant Automation (YAML)
Nedenstående er den komplette Home Assistant master-automatisering opbygget med Jinja2 templating og dynamiske variabler:
alias: 'Køkken: Varmepumpe Master Styring - Komplet'
description: Optimeret styring med short-cycling beskyttelse, fejlretning og notifikationer
triggers:
- trigger: time
at:
- '06:00:00'
- '19:00:00'
- '22:00:00'
id: update
- trigger: state
entity_id:
- zone.home
- input_boolean.gaeste_mode
- sensor.langhoj_dagtilbud_bornehave_marco
- sensor.langhoj_dagtilbud_vuggestue_luckas
id: update
- trigger: state
entity_id: sensor.kokken_temp_temperatur
id: temp_change
actions:
- variables:
is_guest: '{{ is_state(''input_boolean.gaeste_mode'', ''on'') }}'
is_night: '{{ now().hour >= 22 or now().hour < 6 }}'
is_away: '{{ states(''zone.home'') | float(0) < 1 }}'
kids_at_daycare: |
{{ 'Kommet' in states('sensor.langhoj_dagtilbud_bornehave_marco') or
'Kommet' in states('sensor.langhoj_dagtilbud_vuggestue_luckas') }}
is_evening: '{{ now().hour >= 19 and now().hour < 22 }}'
target_temp: >
{% if is_guest %} 20 {% elif is_night or is_away %} 17 {% elif
kids_at_daycare or is_evening %} 18 {% else %} 20 {% endif %}
current_temp: '{{ states(''sensor.kokken_temp_temperatur'') | float(0) }}'
current_setpoint: >-
{{ state_attr('climate.espir_kitchen_ac_new', 'temperature') | float(0)
}}
- choose:
- conditions:
- condition: template
value_template: '{{ current_temp <= (target_temp - 0.5) }}'
sequence:
- repeat:
count: 2
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.espir_kitchen_ac_new
data:
hvac_mode: heat
- action: climate.set_fan_mode
target:
entity_id: climate.espir_kitchen_ac_new
data:
fan_mode: high
- action: climate.set_temperature
target:
entity_id: climate.espir_kitchen_ac_new
data:
temperature: '{{ target_temp }}'
- delay: '00:00:10'
- if:
- condition: template
value_template: '{{ not is_state(''climate.espir_kitchen_ac_new'', ''heat'') }}'
then:
- action: notify.mobile_app_pixel_8_pro
data:
title: Varmepumpe Fejl
message: >-
Køkken VP kunne ikke starte opvarmning kl. {{
now().strftime('%H:%M') }}.
data:
priority: high
ttl: 0
- conditions:
- condition: template
value_template: |
{{ not is_night and not is_away and
is_state('climate.espir_kitchen_ac_new', 'off') }}
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.espir_kitchen_ac_new
data:
hvac_mode: heat
- conditions:
- condition: template
value_template: '{{ current_temp > 23 }}'
sequence:
- repeat:
count: 2
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.espir_kitchen_ac_new
data:
hvac_mode: fan_only
- action: climate.set_fan_mode
target:
entity_id: climate.espir_kitchen_ac_new
data:
fan_mode: auto
- delay: '00:00:10'
- conditions:
- condition: template
value_template: '{{ (is_away or is_night) and current_temp > (target_temp + 1) }}'
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.espir_kitchen_ac_new
data:
hvac_mode: 'off'
- conditions:
- condition: template
value_template: >-
{{ current_setpoint != target_temp and not
is_state('climate.espir_kitchen_ac_new', 'off') }}
sequence:
- action: climate.set_temperature
target:
entity_id: climate.espir_kitchen_ac_new
data:
temperature: '{{ target_temp }}'
mode: restart
ESPHome Hardware & Transmitter Setup
Firmware-konfigurationen der kører direkte på ESP8266 (ESP-12E) mikrokontrolleren. Den benytter remote_transmitter på GPIO4 til udsendelse af Fujitsu IR-koder og remote_receiver på GPIO14 med 55% tolerancetærskel:
esphome:
name: espir
friendly_name: EspIR
esp8266:
board: esp12e
logger:
api:
encryption:
key: "******************************"
ota:
- platform: esphome
password: "******************************"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Espir Fallback Hotspot"
password: "******************************"
captive_portal:
web_server:
port: 80
remote_transmitter:
pin: GPIO4
carrier_duty_percent: 50%
climate:
- platform: fujitsu_general
name: "Kitchen AC new"
remote_receiver:
id: rcvr
pin:
number: GPIO14
inverted: true
mode:
input: true
pullup: true
tolerance: 55%
sensor:
- platform: wifi_signal
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
- platform: copy
source_id: wifi_signal_db
name: "WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "Signal %"
entity_category: "diagnostic"
device_class: ""
Ofte Stillede Spørgsmål (FAQ)
Hvordan styres en ældre Fujitsu varmepumpe uden Wi-Fi i Home Assistant?
Det gøres ved at bygge en ESPHome IR-transmitter baseret på en ESP8266 (ESP-12E) med en IR-sender på GPIO4. ESPHome har en indbygget 'fujitsu_general' platform, der sender de korrekte IR-protokolkoder.
Hvad gør man, hvis et IR-signal til varmepumpen går tabt?
Da IR-kommunikation er envejs, benyttes en re-try løkke i Home Assistant, der sender IR-kommandoen 2 gange med 10 sekunders mellemrum. Hvis tilstanden 'heat' stadig ikke registreres, sendes en push-notifikation til mobilen.
Hvordan forhindres overophedning af køkkenet?
Hvis rumtemperaturen overstiger 23°C, skifter automatiseringen automatisk HVAC-mode til 'fan_only' for at cirkulere luften uden at tilføre yderligere varme.