Afgelopen zomer ben ik verhuisd naar een andere woning waarin al airco’s geplaatst zijn. Het zijn airco’s van Mitsubishi Heavy Industries en hebben besturing door middel van een infrarood afstandsbediening. Natuurlijk wil ik deze airco’s kunnen bedienen met Home Assistant via WiFi. Ik stuitte in mijn zoektocht op het MHI-AC-Ctrl project. Nodo-Shop bleek complete kitjes te verkopen en er is een ESPhome versie van het MHI-AC-Ctrl project. Top, ik heb voor beide airco’s een kitje besteld en ben aan de slag gegaan.
Stappenplan voor het toevoegen van je airco aan Home Assistant
Benodigde tijd: 1 uur
Om je Mitsubishi airco te voorzien van WiFi besturing met Home Assistant doorloop je de volgende stappen. Onder het stappenplan lees je een uitgebreide toelichting.
- Controleer compatibiliteit van het MHI-AC-CTRL project met jouw Airco.
Bekijk de lijst van ondersteunde apparaten van MHI-AC-CTRL en zoek het typenummer van je airco op. Het typenummer van je airco staat op de binnenkant van de klep. In mijn geval een SRK50ZS-W.
- Soldeer de componenten op de printplaat
Bestel de ESPAC Wifi interface MHI-AC-Ctrl via Nodo-Shop. Vergeet niet een Wemos D1 mini mee te bestellen als je er geen meer hebt liggen.
- Demonteer de behuizing van de airco
Klik de behuizing van de airco af en zoek de printplaat.
- Plug de MHI-AC-CTRL in de airco
Via het meegeleverde stekkertje kun je de MHI-AC-CTRL verbinden met de Mitsubishi airco.
- Sluit de behuizing van de airco en test
Monteer de behuizing terug op het apparaat en test de werking.
Controleer compatibiliteit van het MHI-AC-CTRL project met jouw Airco
Bekijk de lijst van ondersteunde apparaten van MHI-AC-CTRL en zoek het typenummer van je airco op. De meeste airco’s met een aparte binnen- en buitenunit van Mitsubishi Heavy Industries zijn ondersteund. Het typenummer van je airco staat op de binnenkant van de klep. In mijn geval een SRK50ZS-W. De airco’s bevatten een CNS aansluitheader waarop je met een kabel de officiële WiFi module kunt aansluiten. Wij maken daar mooi gebruik van om op een nette manier onze MHI-AC-CTRL aan te sluiten.

Soldeer de componenten op de printplaat
Bestel de ESPAC Wifi interface MHI-AC-Ctrl via Nodo-Shop. Vergeet niet een Wemos D1 mini mee te bestellen als je er geen meer hebt liggen. Op de Wemos flashen we de ESPHome versie van de MHI-AC-CTRL firmware.
Het kitje bevat 2 componenten, een kabeltje en een printplaat. De twee componenten dienen te worden gesoldeerd op het printje. Het is even goed opletten op de polariteit, maar er staan duidelijke vormen op het printje afgedrukt. De vormen komen overeen met hoe de componenten geplaatst dienen te worden. De headers welke meegeleverd worden met de Wemos dien je ook te solderen op het bordje. Let goed op aan welke kant van de print je het allemaal soldeert.

De Wemos kun je dan voorzien van headers. Als dat gereed is, kunnen we gaan flashen. Steek hiervoor de USB kabel in de Wemos (zonder dat hij aangesloten is op de MHI-AC-CTRL print).



Flashen van ESPHome versie van MHI-AC-CTRL
Maak in ESPHome Device Compiler een nieuw device aan van het type d1_mini. Plak onderstaande code in het scherm waarbij je wel je eigen secrets en encryption keys gebruikt natuurlijk. Het originele voorbeeld bestand staat hier, en komt overeen met de onderstaande code. Voor het gemak hoef je alleen maar twee keer de waarden van <<< AIRCO NAAM >>> aan te passen.
esphome: name: <<< AIRCO NAAM >>> friendly_name: ${devicename} min_version: 2024.6.0 platformio_options: # Run CPU at 160Mhz to fix mhi_ac_ctrl_core.loop error: -2 board_build.f_cpu: 160000000L esp8266: board: d1_mini # Enable logging logger: level: INFO baud_rate: 0 # logs: # component: ERROR ota: password: !secret ota_password platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: ${devicename} captive_portal: # Version 3.0 substitutions: # Unique device ID in HA deviceid: "<<< AIRCO NAAM >>>" # Unique MHI device ID used for climate class mhi_device_id: "mhi_${deviceid}" # Unique device name in HA (sensor names will be prefixed by this name) devicename: ${deviceid} # If you encounter mhi_ac_ctrl_core.loop error: -2 errors, change the frame_size to 20 frame_size: "33" # Optionally enables the ESP web server web_server: port: 80 external_components: - source: github://ginkage/MHI-AC-Ctrl-ESPHome@master components: [ MhiAcCtrl ] MhiAcCtrl: id: ${mhi_device_id} frame_size: ${frame_size} button: - platform: restart name: Restart entity_category: diagnostic api: encryption: key: "<<< ENCRYPTION KEY >>>" reboot_timeout: 0s services: # Call the set_api_room_temperature service from HA to override the room temperature # If a new value has not been received after room_temp_api_timeout seconds, it will fall back to internal sensor - service: set_api_room_temperature variables: value: float then: - lambda: |- return ((MhiAcCtrl*)id(${deviceid}))->set_room_temperature(value); # Call the set_vanes service from HA to set the vane position # Needed because the ESPHome Climate class does not support this natively # Possible values: 1-4: static positions, 5: swing, 0: unknown - service: set_vanes variables: value: int then: - lambda: |- return ((MhiAcCtrl*)id(${deviceid}))->set_vanes(value); globals: - id: room_temp_api_timeout type: int restore_value: no initial_value: "120" - id: frame_size type: byte restore_value: no initial_value: ${frame_size} climate: - platform: MhiAcCtrl mhi_ac_ctrl_id: ${mhi_device_id} id: ${deviceid} name: "${devicename}" binary_sensor: - platform: custom lambda: |- return ((MhiAcCtrl*)id(${deviceid}))->get_binary_sensors(); binary_sensors: - name: Defrost sensor: - platform: template name: "Frame Size" id: frame_size_sensor lambda: |- return ${frame_size}; - platform: uptime name: Uptime - platform: wifi_signal name: WiFi Signal update_interval: 60s - platform: custom lambda: |- return ((MhiAcCtrl*)id(${deviceid}))->get_sensors(); # Sensor names in HA, you can change these if you want # Don't delete them or change their position in the list sensors: - name: Error code - name: Outdoor temperature - name: Return air temperature - name: Outdoor unit fan speed - name: Indoor unit fan speed - name: Current power - name: Compressor frequency - name: Indoor unit total run time - name: Compressor total run time - name: Vanes id: vanes_UD_received on_value: then: - lambda: |- float received_value = id(vanes_UD_received).state; if (received_value == 1.0) { id(fan_control_ud).publish_state("Up"); } else if (received_value == 2.0) { id(fan_control_ud).publish_state("Up/Center"); } else if (received_value == 3.0) { id(fan_control_ud).publish_state("Center/Down"); } else if (received_value == 4.0) { id(fan_control_ud).publish_state("Down"); } else if (received_value == 5.0) { id(fan_control_ud).publish_state("Swing"); } - name: Energy used - name: Indoor (U-bend) HE temp 1 - name: Indoor (capillary) HE temp 2 - name: Indoor (suction header) HE temp 3 - name: Outdoor HE temp - name: Outdoor unit exp. valve - name: Outdoor unit discharge pipe - name: Outdoor unit discharge pipe super heat - name: Compressor protection code - name: Vanes Left Right id: vanes_LR_received on_value: then: - lambda: |- if (id(frame_size_sensor).state != 33) { return; } float received_value = id(vanes_LR_received).state; if (received_value == 1.0) { id(fan_control_lr).publish_state("Left"); } else if (received_value == 2.0) { id(fan_control_lr).publish_state("Left/Center"); } else if (received_value == 3.0) { id(fan_control_lr).publish_state("Center"); } else if (received_value == 4.0) { id(fan_control_lr).publish_state("Center/Right"); } else if (received_value == 5.0) { id(fan_control_lr).publish_state("Right"); } else if (received_value == 6.0) { id(fan_control_lr).publish_state("Wide"); } else if (received_value == 7.0) { id(fan_control_lr).publish_state("Spot"); } else if (received_value == 8.0) { id(fan_control_lr).publish_state("Swing"); } - name: 3D Auto id: Dauto_received on_value: then: - lambda: |- if (id(frame_size_sensor).state != 33) { return; } bool received_value = id(Dauto_received).state; if (received_value) { ESP_LOGD("main", "received 3DAuto from AC"); id(fan_control_3Dauto).publish_state(true); } else { ESP_LOGD("main", "received 3DAuto off from AC"); id(fan_control_3Dauto).publish_state(false); } text_sensor: - platform: version name: ESPHome Version - platform: wifi_info ip_address: name: IP ssid: name: SSID bssid: name: BSSID - platform: custom lambda: |- return ((MhiAcCtrl*)id(${deviceid}))->get_text_sensors(); text_sensors: - name: Compressor protection status select: - platform: template name: Fan Control Left Right id: fan_control_lr icon: mdi:arrow-left-right optimistic: true options: # - "3D Auto" - "Left" - "Left/Center" - "Center" - "Center/Right" - "Right" - "Wide" - "Spot" - "Swing" on_value: - lambda: |- if (id(frame_size_sensor).state == 33) { auto state = id(fan_control_lr).state.c_str(); ESP_LOGD("main", "Option of my select: %s", state); uint8_t vanesLR = 0; // Initialize the vanesLR variable if (id(fan_control_lr).state == "3D Auto") { id(fan_control_3Dauto).publish_state(true); } else if (id(fan_control_lr).state == "Left") { vanesLR = 1; } else if (id(fan_control_lr).state == "Left/Center") { vanesLR = 2; } else if (id(fan_control_lr).state == "Center") { vanesLR = 3; } else if (id(fan_control_lr).state == "Center/Right") { vanesLR = 4; } else if (id(fan_control_lr).state == "Right") { vanesLR = 5; } else if (id(fan_control_lr).state == "Wide") { vanesLR = 6; } else if (id(fan_control_lr).state == "Spot") { vanesLR = 7; } else if (id(fan_control_lr).state == "Swing") { vanesLR = 8; } if ((vanesLR > 0) & (vanesLR < 9) & (vanesLR != id(vanes_LR_received).state)){ ESP_LOGD("main", "setting vanesLR to: %i", vanesLR); return ((MhiAcCtrl*)id(${deviceid}))->set_vanesLR(vanesLR); } else { ESP_LOGD("main", "Not setting vanesLR: %i", vanesLR); } } - platform: template name: Fan Control Up Down id: fan_control_ud icon: mdi:arrow-up-down optimistic: true options: # - "3D Auto" - "Up" - "Up/Center" - "Center/Down" - "Down" - "Swing" on_value: - lambda: |- auto state = id(fan_control_ud).state.c_str(); ESP_LOGD("main", "Option of my select: %s", state); uint8_t vanesUD = 0; // Initialize the vanesUD variable if (id(fan_control_ud).state == "3D Auto") { id(fan_control_3Dauto).publish_state(true); } else if (id(fan_control_ud).state == "Up") { vanesUD = 1; } else if (id(fan_control_ud).state == "Up/Center") { vanesUD = 2; } else if (id(fan_control_ud).state == "Center/Down") { vanesUD = 3; } else if (id(fan_control_ud).state == "Down") { vanesUD = 4; } else if (id(fan_control_ud).state == "Swing") { vanesUD = 5; } if ((vanesUD > 0) & (vanesUD < 6) & (vanesUD != id(vanes_UD_received).state)){ ESP_LOGD("main", "setting vanesUD to: %i", vanesUD); return ((MhiAcCtrl*)id(${deviceid}))->set_vanes(vanesUD); } else { ESP_LOGD("main", "Not setting vanesUD: %i", vanesUD); } switch: - platform: template name: 3D Auto id: fan_control_3Dauto icon: mdi:video-3d optimistic: true turn_on_action: - lambda: |- if (id(frame_size_sensor).state == 33) { if (id(Dauto_received).state != 1) { ESP_LOGD("main", "Turn on 3DAuto"); return ((MhiAcCtrl*)id(${deviceid}))->set_3Dauto(1); } } else { ESP_LOGD("main", "Frame size is not 33, cannot turn on 3DAuto"); } turn_off_action: - lambda: |- if (id(frame_size_sensor).state == 33) { if (id(Dauto_received).state != 0) { ESP_LOGD("main", "Turn off 3DAuto"); return ((MhiAcCtrl*)id(${deviceid}))->set_3Dauto(0); } } else { ESP_LOGD("main", "Frame size is not 33, cannot turn off 3DAuto"); }
Flash nu de code naar de aangesloten Wemos D1 mini via de knop install in ESPHome Device Compiler.
Demonteer de behuizing van de airco
Voordat je begint sluit je natuurlijk de stroom af. Klik de behuizing van de airco af. Dit gaat door een aantal schroeven los te maken aan de voorkant. Deze zitten verstopt onder de klep, welke je er ook uit moet klikken, en tussen de onderste kleppen. Aan de achterzijde aan de bovenkant kun je een aantal lippen indrukken om zo de kap los te halen. Je houdt dan de volgende situatie over:


Let op dat er water kan lekken door het gerommel aan de behuizing. Bij de onderste kleppen zat in een opvangbakje bij mijn airco nog wat water.
Aan de zijkant bevind zich een zwarte afdekkap die je er makkelijk af kunt schroeven. Je komt dan bij de besturingsprint terecht die we zoeken.

Plug de MHI-AC-CTRL in de airco
Lokaliseer de CNS header op het moederbord en steek met het meegeleverde stekkertje je MHI-AC-CTRL op de printplaat van de airco. De stekker past maar op 1 manier. Isoleer de Wemos D1 mini door middel van de behuizing die Nodoshop kan leveren of zoals ik met een goed stuk tape (alles op eigen risico!). Verstop de Wemos in de zwarte behuizing van de printplaat en schroef de kap terug op de airco. Plaats de andere behuizingen terug op de airco en schroef alles weer vast. Schakel de stroom in en check of de airco werkt zoals normaal met de afstandsbediening.
Mitsubishi Heavy Industries airco toevoegen aan Home Assistant
Home Assistant zal het nieuwe ESPHome apparaat nu zelf ontdekken en de entiteiten toevoegen.


Besparen op je energierekening
Onderstaand twee screenshots van het verschil tussen verwarmen met de CV vs verwarmen met de airco. Het eerste screenshot laat goed zien dat er hoge kosten voor gas betaald moeten worden om het huis te verwarmen (tussen 04:00-08:00), het tweede laat zien dat dat met een airco veel goedkoper kan (tussen 05:00-08:00). Het scheelt in dit voorbeeld gauw een euro, maar er zijn ook ochtenden geweest dat het verwarmen met gas al €3,50 kostte terwijl de elektriciteitsprijs toen laag was en verwarmen met een airco me dan € 0,60 zou kosten.
Via een dynamisch energiecontract kun je veel kosten besparen op je energie rekening door dit slimme en makkelijke maatregelen. Benieuwd hoe je dit allemaal binnen Home Assistant werkend krijgt? Lees dan mijn artikel over een dynamisch energiecontract in Home Assistant.


Het werkt!
Het werkt! Je kunt nu je Mitsubishi Heavy Industries airco bedienen via wifi met Home Assistant terwijl je ook nog de normale afstandsbediening kan blijven gebruiken. Is het jou ook gelukt of heb je een vraag? Laat een reactie achter!
Je kunt je airco nu ook gebruiken in combinatie met automatische verwarming automations. Verwarm je ruimte met de airco op basis van je aanwezigheid, de ruimte temperatuur, een schema… Het is allemaal mogelijk met de Advanced Heating Control blueprint.
Heb hem ook weer even gedeeld op mijn Discord groep over home assistant en veel meer.
“De Wemos kun je dan voorzien van headers. Als dat gereed is, kunnen we gaan flashen. Steek hiervoor de USB kabel in de Wemos (zonder dat hij aangesloten is op de MHI-AC-CTRL print).”
Wat gebeurd er als de Wemos al wel is aangesloten op de MHI-AC-CTRL? (ik zag het niet zitten om te solderen, aangezien ik dit nog nooit gedaan had, en heb dit dus voorgesoldeert besteld).
Hoi Jaco,
In dit geval zal er waarschijnlijk niets gebeuren dat problemen oplevert. Over het algemeen is het vaak het best om de flash acties uit te voeren zonder dat er andere componenten aan hangen. Waarom? Omdat er soms gpio pinnen hoog of laag moeten zijn bij het starten van het flashen. Dit gebeurt allemaal automatisch maar als er iets hangt aan zo’n speciale pin kan dat gekke dingen opleveren. D4 op de wemos bijvoorbeeld omdat op D4 ook de onboard led zit.
Laatst had ik een smart stekkerblok wat op een van de flash pinnen een relais had zitten. Die reageerde dus steeds op de schrijf acties. Maar ten alle tijde geldt dat als je gaat flashen dat het apparaat altijd losgekoppeld moet zijn van 230v of een andere spanningsbron dan die van je laptop.
Succes
Groet Wouter
Hallo Wouter,
Bedankt voor de snelle reactie!
Ik was benieuwd of mijn problemen daar door kwamen. Ik krijg de Wemos + de MHI ctrl online (ook aan de airco vast), maar ik krijg een hele rits aan foutmeldingen, en kan eigenlijk niets meer dan alleen op afstand benaderen (geen van de sensoren wordt uitgelezen, en ook besturen lukt niet).
Component MhiAcCtrl took a long time for an operation
mhi_ac_ctrl_core.loop error: -2 (en -4 heb ik ook al langs zien komen, hoewel ik die nu niet meer zie) (ondanks dat ik de fix heb toegevoegd aan de yaml)
esphome:
name: mitsubishiairco
friendly_name: mitsubishiairco
min_version: 2024.6.0
platformio_options:
# Run CPU at 160Mhz to fix mhi_ac_ctrl_core.loop error: -2
board_build.f_cpu: 160000000L
Gevonden! De problemen zaten in de ‘frame_size’ die ik moest aanpassen van 33 naar 20. Nu werkt het! ????
Bedankt voor de feedback!
Hoi,
vraagje, wat is het verschil tussen jou script en het orgineel?
Bij mij werkt het niet altijd hij gaat met regelmaat offline en kan hem dan niet meer bedienen vanaf home assistant
Hoi jos,
Er is geen verschil buiten dat ik op de plekken dat je iets kunt personaliseren dat heb aangegeven.
Het niet beschikbaar zijn lijkt mij met een netwerk issue. Heeft de wemos genoeg bereik op 2.4 Ghz op de locatie van de airco? Misschien een ip adres issue? Probeer eens use_adress met een ip adres wat niet binnen je dhcp range valt.
Groet Wouter
Hoi Wouter,
Ik heb ze opnieuw geflashed, nu worden ze ook gevonden door de home assistant zelf dit was eerst ook niet.
Ik wacht rustig even af.
De orginele wifi van Mitsubishi kost 100 euro per stuk, dus dit is een prachtige oplossing.
Bedankt
Ik heb diverse esp 8266 draaien op tasmota dit werkt prima en ook geen problemen met wifi, nu draai ik er 2 met esphome en deze verliezen de verbinding met de wifi, ik zie ze ook niet meer in de router.
Kan het script ook draaien op tasmota?
Het even voor de test, kijk waar dit probleem weg komt.
Hoi jos, het is een custom component voor esphome dus dat werkt niet op tasmota.
Hier geen last van verbindingsproblemen.
Succes met de test!
Groet Wouter
Hoi.
Mocht iemand de code in het nederlands willen hebben, ik heb de huidige versie (3.0) wat aangepast:
https://github.com/fonske/MHI-AC-Ctrl-ESPHome/tree/master
Te gek man, thnx!!!
Kun je met dit project ook foutcodes beter uitlezen? Nu krijg ik een foutcode op mijn airco waar dit nog niet op zit via de lampjes waar ik niets mee kan.
Hoi johnatan,
Ik zie een entiteit met de naam error code. De waarde is 0 bij mij. Ik weet niet hoe of wat als er werkelijk een error zich voordoet.
Groet Wouter
zou het ook mogelijk zijn om maximale temperatuur aan te passen?
Deze staat nu op 30 graden.
Die zou ik graag op 22 graden willen hebben.
Iemand een idee?
mvg jos
Dag jos,
Dat kan denk ik wel. max_temperature moet je dan in de climate toevoegen in de esphome code.
https://esphome.io/components/climate/
Groet Wouter
daar kan ik wel wat mee bedankt.
toch blijf ik problemen houden met de modules, als ik een browser open dan kan ik via de opgegeven naar de webpagina openen(het is wel traag maar dat werkt).
in esphome builder zijn ze dan weer online en weer offline.
zoals eerder met tasmota heb ik geen problemen met wifi en daar gerbuik ik ook de esp 8266.
Kan het zijn dat er iets in de basis instellingen zit?
Ik heb geen idee wat er mis loopt.
Iemand een idee?
hmm, ik zie dat mijn esp modules krijgen: airco_job.local maar in mijn router staat alles met: .home
dus mijn modules zouden eigenlijk airco_job.home moeten krijgen.
Dan zou dus in mijn HAS het domain niet goed staan, maar kan ik dat zo aanpassen en waar?
ik zou verwachten bij netwerk(waar ik ook altijd mijn ip adres dns en gateway in stel wat ik nu ok niet meer zie).
Ja zo als ik al dacht een ip issue. I’m HA hoef Je Dat denk ik niet te wijzigen, anders wellicht in yaml.
In de esphome code van de airco het domein wijzigen.
https://community.home-assistant.io/t/change-local-domain/281135
Hoi, het is gelukt
Dit was de truc:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: .home
Nu werkt het prima.
gr jos
Hallo,
Ik krijg het niet voor elkaar om de bestanden op de Wemos te krijgen.. heeft iemand een actuele handleiding of stappenplan voor mij? ik heb inmiddels wel ESPHome erop gekregen, ESPeasy kan ik nergens vinden online?
Alvast bedankt
Groeten Niek
Goedemorgen Niek,
Heb je de stappen gevolgd in het artikel? Dit artikel is een paar maanden oud, dus actueel.
Als ESPHome erop staat, wat is er dan dat niet werkt?
ESPeasy is totaal andere firmware en werkt niet met dit esphome custom component.
Groet Wouter
[…] mijn eerdere artikel Mitsubishi Airco’s toevoegen aan Home Assistant was ik ook al bezig geweest met het verminderen van het gebruik van de losse afstandsbedieningen in […]
[…] serieus gas te besparen heb ik mijn airco’s uitgerust met WiFi en esphome zodat ik met (goedkope) electriciteit kan […]
Ik heb het hier zonder problemen werken met een MHI SRK35-ZS-W, alles werkt prima vanuit Home Assistant.
Nu heb ik ook een DS18x20 externe temperatuursensor aangesloten op het printje van NODO shop.
Maar ik krijg dit niet aan de praat. mijn kennis van YAML is niet voldoende en blijft foutmeldingen krijgen.
Heeft iemand dit wel aan de praat met de ESPHome versie van MHI-AC-CTRL ?
Ik heb het al gevonden, aan de YAML onderstaande toevoegen:
one_wire:
– platform: gpio
pin: GPIO4
# en onder de sensor sectie toevoegen
sensor:
– platform: dallas_temp
name: “${devicename} Room Temperature”
id: troom_dallas
state_class: measurement
on_value:
then:
– lambda: |-
float value = id(troom_dallas).state;
ESP_LOGD(“mhi_ac_ctrl”, “Room temperature sensor value: %f °C”, value);
return ((MhiAcCtrl*)id(${deviceid}))->set_room_temperature(value);
Ja goed gevonden! Begrijp ik de code goed dat je de interne sensorwaarde overschrijft met die van de externe sensor? Dus dat je die externe sensor waarde dan ziet in je climate in Home Assistant?
Groet Wouter
Dat klopt inderdaad, de unit wordt nu gestuurd op basis van de temperatuur van de externe sensor. Het nadeel van de interne sensor vond ik dat deze heel snel opliep als de unit verwarmt (de sensor zit immers in de behuizing van de unit) met als gevolg dat deze ging pendelen. Nu is de sensor een eindje verderop geplaatst en de hoop is dat het pendelen hiermee verdwijnt / minder wordt. We gaan het zien.
Aha ik loop daar dus ook tegenaan. Ik los dat nu op door niet naar de gemeten temperatuur te kijken van de airco voor mijn automatiseringen maar naar een losse Aqara Temperatuur sensor. Maar die waarde zie je dan natuurlijk niet in de climate entity. Maar misschien is daar wel wat voor…
Groet Wouter
Ik ben al even aan het kijken naar dit project, maar er nog niet toe gekomen …
Zelf heb ik 4 binnenunits die helaas niet exact vermeld in het ondersteunde lijstje voorkomen.
Ik pols graag eens of deze ondersteund worden:
1 unit tpe SRK50ZS-WT
3 units SKM20ZSP-W
Vooral over de kleinere units twijfel ik zelf, maar indien mogelijk, gaat het zeker gebeuren !
Bedankt voor reactie alvast !
Robin
Hoi Robin,
Het makkelijkste is denk ik om de units open te schroeven en te kijken of de header op de print aanwezig is. Dan zal het vermoedelijk werken met de Srk50zs-wt. Types met SKM komen helemaal niet in de lijst voor dus ik ben er bang voor. Als jouw types wel blijken te werken kun je dat doorgeven op github dan kan de originele ontwikkelaar ze toevoegen aan de lijst.
Succes, laat maar weten hoe het af loopt.
Groet Wouter
Ik ben er intussen achter dat de T achteraan enkel staat voor de kleur van de behuizing … titanium ipv wit.
Zal dus vermoedelijk geen verschil maken met de standaard witte.
De andere zal ik idd eens moeten openschroeven … online ook nergens info over te vinden helaas.
Bedankt voor je reactie toch !
Hoi,
Vraagje, ik heb alles werkend, nu heb ik de esphome geupdate en krijg de volgende melding:
INFO ESPHome 2025.2.0
INFO Reading configuration /config/esphome/airco-job.yaml…
INFO Updating https://github.com/fonske/MHI-AC-Ctrl-ESPHome/@master
Failed config
sensor.custom: [source /config/esphome/airco-job.yaml:168]
The “custom” component has been removed. Consider conversion to an external component.
https://esphome.io/guides…e-about-custom-components.
platform: custom
lambda: return ((MhiAcCtrl*)id(airco_job))->get_sensors();
sensors:
– name: Error code
web_server:
sorting_group_id: Status
sorting_weight: 8
– name: Outdoor temperature
web_server:
sorting_group_id: Operation
sorting_weight: 5
En ik heb eigenlijk geen idee
Hoi Jos,
Sinds versie 2025.2 van esphome is het gebruik van custom components niet meer mogelijk. Je zult moeten overstappen op een external component. Gelukkig hebben de makers van de code dit al gedaan afgelopen zomer.
Mijn blogpost hierboven heeft de juiste code met het external component. Ik zie dat je een fork van de code van fonske gebruikt. Dus overstappen naar de originele code zal het probleem oplossen.
Groet Wouter
Hoi Wouter.
Je code bovenin de blogpost bevat ook gewoon nog steeds de custom components.
Dus dat lost weinig op denk ik.
Een andere tijdelijke oplossing is 2024.12 versie van esphome terug te installeren (naast de huidige)
Zie:
https://github.com/ginkage/MHI-AC-Ctrl-ESPHome/issues/123#issuecomment-2669511186
Hier nog een beknoptere omschrijving om 2024.12 er bij te installeren via addons.
Ga naar instellingen – add-ons.
Ga naar de add-on winkel.
klik op drie puntjes – repositories
voeg deze link toe: https://github.com/khenderick/esphome-legacy-addons
en druk op toevoegen.
Daarna sluiten.
Even HA opnieuw starten via ontwikkelhulpmiddelen (herladen is genoeg).
Dan weer naar de add-on store en winkel.
Daar zie je alle oudere versies van esphome staan en kan je de laatst werkende met custom components installeren (2024.12) naast je huidige esphome.
Wat ik ervan begrijp is dat het opzich wel een external component is maar dat er alsnog gebruik gemaakt wordt van custom components. Jammer dat we niet kunnen updaten maar het werkt nu gewoon dus er is niet direct reden om nu direct te moeten updaten.
Kun je iets meer vertellen hoe ik bovenstaand issue mbt het custom component? Ik krijg de yaml van deze pagina niet werken.
Er is nu een (tijdelijke) fix dmv extra code toe te voegen aan de yaml(onderste 2 regels):
external_components:
– source: github://ginkage/MHI-AC-Ctrl-ESPHome@master
components: [ MhiAcCtrl ]
– source: github://robertklep/esphome-custom-component
components: [ custom, custom_component ]
Top dank je wel voor het melden!
Bedankt!
Door dit toe te voegen werkt het inderdaad:
– source: github://robertklep/esphome-custom-component
components: [ custom, custom_component ]
heb je de module achter die metalen plaat gelaten? of ergens nog tussendoor ofzo aan meer aan de voorkant gekregen?
Ik ben een beetje bang dat achter de plaat het wifi bereik wat minder zal zijn.
Hoi puckstar,
Ja mijn wemos zit achter de metalen plaat. Ik zelf merk geen probleem met het wifi bereik.
Groet Wouter
Ik heb het kabeltje langer gemaakt, omdat ik er dan makkelijker bij kan.
Maar nu het een maal werkt hoef ik er eigenlijk niet meer bij.
Hallo Wouter,
Bedankt voor dit geweldige artikel.
Ik heb het bordje werkende en zichtbaar in HA. Als ik hem aansluit op m’n unit zie ik kort een blauw ledje oplichten net als bij het connecten aan m’n laptop voor de eerste flash…
Nu komt het gekke… wat ik al zeg, het bordje wordt correct gevoed door de airco, maar aansturen van de airco werkt niet.
Dat de unit uitstaat wordt juist herkend, maar als ik bijv. aangeef dat hij moet gaan koelen in HA dan gebeurt er niks… HA is dan wel in de veronderstelling dat de airco aan is maar in werkelijkheid is dat dus niet zo.
Ik heb een MHI SKR20zm-s. Op de print staat type RLA505A101.
Heb jij of iemand anders hier toevallig een idee ?
Alvast bedankt.
Mvg,
Ruud
Beste Ruud,
Ja dat is vreemd, je zou zeggen dat dan alles moet werken. Misschien dat één van de andere lezers een idee heeft!
Groet Wouter
Dit had ik in het begin ook, bij mij lag het aan het domain waarin mij esp module gezet word via de esphome config.
Nadat is dit stukje had toegevoegd: (domain: .home) werkte het wel.
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: .home
Beste Wouter en Jos,
Ik heb het inmiddels gevonden. Door het aanpassen van de frame_size naar 20, en flashen via USB werkt het nu wel. Echter heb ik even later nog de loging moeten aanpassen m.b.t. heel veer mhi_ac_ctrl_core.loop error: -2 meldingen.
Deze komen nog wel, maar niet iedere zoveel ms…
Heeft een van jullie toevallig een idee wat er gebeurt als er gestoeid wordt met de frame_size… door deze te verhogen bijv. naar 22 of 24 o.i.d.
Mvg,
Ruud
Heb je dit nog uitgevonden? Ik heb hetzelfde probleem namelijk :(.
Aanpassen naar 20 heeft niet geholpen.
oh wacht. die loop melding is weg, maar ik krijg nu hele tijd deze melding “Component MhiAcCtrl took a long time for an operation”
en geen enkele sensor komt tevoorschijn in Home Assistant.
Ok, die “Component MhiAcCtrl took a long time for an operation” is blijkbaar gebruikelijk en kun je negeren.
Waarom ik de sensors niet in Hass kreeg te zien is omdat blijkbaar ergens niet Auto Discover/Auto Add in Esphome staat ingesteld bij mij.
Nadat ik handmatig via de Esphome integration Add device koos en het device toevoegde kreeg ik het device en alle sensors te zien in Hass!
Dus alles is in orde gekomen (na enkel het wijzigen van de frame size naar 20).