Mitsubishi HMA100V och Home Assistant
Postat: 12 juli 2026, 14:46:36
Jag har nyligen flyttat in till ett hus med en Mitsubishi HMA100V luft/vattenvärmepump. Jag vill ansluta värmepumpen till Home Assistant.
Trots att det står Mitsubishi på innedelen, det är faktiskt en Nibe ACVM 270 innedel. Jag har testat att hitta reservdelar med serienummer på NIBEs hemsida och det funkade bra. Det också verkar finnas reservdelar, inklusive kretskort, som är en bra grej om jag råkar förstöra något.
Värmepumpen verkar vara en äldre design och det inte finns något inbyggd stöd för modbus/lokalt API/moln konto eller liknande.
Det finns en del äldre Nibe värmepumpar som har stöd för RCU-10 modulen, men min har det inte heller.
Jag har redan läst den här tråden, och det hjälpt mig enormt: viewtopic.php?t=13714&start=75
Jag har kollat i service menyn samt i rumsgivare menyn och jag har hittat två intressanta grejer:
1. Stöd för RE-10 rumenhet, som är i princip ett skärm med samma knappar som värmepumpen har, som man kopplar in med en ethernet sladd direkt till display kortet.
2. Alternativ för något loggare, som orsakar en kommunikationsfel efter jag slår på den.
Jag har även hittat RJ485 bus:en som används mellan alla kort, och har verifierat att jag får ut en differential signal för RJ485.
Jag har dekodat lite med min oscilloskop, men den inte har en bra serial decoder och jag har fått massa fel. Jag saknar en RS485 chip, så jag har probe:at direkt mellan A och GND, som har säkert hjälpt inte.
Men, att jag får ett felmeddelande när jag slår på loggern i service menu måste betyda att värmepumpen skickar data på RS485 bussen och får inget svar (troligen inget ACK). Min teori just nu är att loggern är en enhet liksom RCU-10.
Jag kommer skaffa lite mer utrustning nästa vecka för att kunna omvandla RS485 till RS232 och börja kolla datan som skickas. Jag hoppas att det går att konfigurera serial terminalen på Linux så att man får datan trots att man har fått parity error.
Jag vill använda en ESP32 som ett gateway mellan värmepumpen och Home Assistant.
Jag har även kollat lite på mark/space parity hacken som värmepumpen använder för att skicka address/data. Det finns ingen direkt stöd för det i ESP32.
Det finns några alternativ:
1. Använd SoftwareSerial som har explicit stöd för 9 bit UART med mark/space parity
2. Använd en ATMEGA328P som ett interface, som också har stöd för 9 bit UART
3. Emulera mark/space parity
Man kan emulera mark/space parity med en ESP32 på följande sätt:
För varje byte, räkna hur många ettor finns, kolla på nuvarande parity mode och kolla om det fanns en parity error.
Exempel: 0x00 mottagit med mark parity
Då får man 8st noll för data och 1 för parity bit.
I even parity läge vet man att 0x00 ska ha 0 för parity bit. I odd parity läge ska man istället ha 1.
Vi kan använda det tillsammans med parity mode för mottagaren, och om vi har en parity fel för att lista ut om avsändaren har skickat datan med mark eller space parity, alltså, som adress eller data.
Even parity
Mottagit byte: 0x00
Utan parity error: parity bit 0, skickat som data
Med parity error: parity bit 1, skickat som adress
Odd parity
Mottagit byte: 0x00
Utan parity error: parity bit 1, skickat som adress
Med parity error: parity bit 0, skickat som data
Vi kan tillämpa samma logik när vi skickar data, som vi ska göra med space parity (alltid 0 parity bit)
Vi skickar data ett i taget. För varje byte måste vi räkna ut antal bits som är satta.
Vi sätter parity bit generatorn till even/odd baserat på data:
En byte med jämna antal ettor ska skickas med even parity.
En byte med udda antal ettor ska skickas med odd parity.
Då får vi 0 för parity bit oavsett vad vi skickar.
Jag hade velat kunna läsa av några temperaturer, om kompressorn är igång, och kanske kunna ändra värmekurvan (alltså, simulate vad +- ratten gör).
Jag startar den här tråden delvis för dokumentation och delvis för att hitta andra som är intresserad av att koppla sin HMA100V till Home Assistant.
Trots att det står Mitsubishi på innedelen, det är faktiskt en Nibe ACVM 270 innedel. Jag har testat att hitta reservdelar med serienummer på NIBEs hemsida och det funkade bra. Det också verkar finnas reservdelar, inklusive kretskort, som är en bra grej om jag råkar förstöra något.
Värmepumpen verkar vara en äldre design och det inte finns något inbyggd stöd för modbus/lokalt API/moln konto eller liknande.
Det finns en del äldre Nibe värmepumpar som har stöd för RCU-10 modulen, men min har det inte heller.
Jag har redan läst den här tråden, och det hjälpt mig enormt: viewtopic.php?t=13714&start=75
Jag har kollat i service menyn samt i rumsgivare menyn och jag har hittat två intressanta grejer:
1. Stöd för RE-10 rumenhet, som är i princip ett skärm med samma knappar som värmepumpen har, som man kopplar in med en ethernet sladd direkt till display kortet.
2. Alternativ för något loggare, som orsakar en kommunikationsfel efter jag slår på den.
Jag har även hittat RJ485 bus:en som används mellan alla kort, och har verifierat att jag får ut en differential signal för RJ485.
Jag har dekodat lite med min oscilloskop, men den inte har en bra serial decoder och jag har fått massa fel. Jag saknar en RS485 chip, så jag har probe:at direkt mellan A och GND, som har säkert hjälpt inte.
Men, att jag får ett felmeddelande när jag slår på loggern i service menu måste betyda att värmepumpen skickar data på RS485 bussen och får inget svar (troligen inget ACK). Min teori just nu är att loggern är en enhet liksom RCU-10.
Jag kommer skaffa lite mer utrustning nästa vecka för att kunna omvandla RS485 till RS232 och börja kolla datan som skickas. Jag hoppas att det går att konfigurera serial terminalen på Linux så att man får datan trots att man har fått parity error.
Jag vill använda en ESP32 som ett gateway mellan värmepumpen och Home Assistant.
Jag har även kollat lite på mark/space parity hacken som värmepumpen använder för att skicka address/data. Det finns ingen direkt stöd för det i ESP32.
Det finns några alternativ:
1. Använd SoftwareSerial som har explicit stöd för 9 bit UART med mark/space parity
2. Använd en ATMEGA328P som ett interface, som också har stöd för 9 bit UART
3. Emulera mark/space parity
Man kan emulera mark/space parity med en ESP32 på följande sätt:
För varje byte, räkna hur många ettor finns, kolla på nuvarande parity mode och kolla om det fanns en parity error.
Exempel: 0x00 mottagit med mark parity
Då får man 8st noll för data och 1 för parity bit.
I even parity läge vet man att 0x00 ska ha 0 för parity bit. I odd parity läge ska man istället ha 1.
Vi kan använda det tillsammans med parity mode för mottagaren, och om vi har en parity fel för att lista ut om avsändaren har skickat datan med mark eller space parity, alltså, som adress eller data.
Even parity
Mottagit byte: 0x00
Utan parity error: parity bit 0, skickat som data
Med parity error: parity bit 1, skickat som adress
Odd parity
Mottagit byte: 0x00
Utan parity error: parity bit 1, skickat som adress
Med parity error: parity bit 0, skickat som data
Vi kan tillämpa samma logik när vi skickar data, som vi ska göra med space parity (alltid 0 parity bit)
Vi skickar data ett i taget. För varje byte måste vi räkna ut antal bits som är satta.
Vi sätter parity bit generatorn till even/odd baserat på data:
En byte med jämna antal ettor ska skickas med even parity.
En byte med udda antal ettor ska skickas med odd parity.
Då får vi 0 för parity bit oavsett vad vi skickar.
Jag hade velat kunna läsa av några temperaturer, om kompressorn är igång, och kanske kunna ändra värmekurvan (alltså, simulate vad +- ratten gör).
Jag startar den här tråden delvis för dokumentation och delvis för att hitta andra som är intresserad av att koppla sin HMA100V till Home Assistant.