Modern styrning av värmepump

Pump

Värmepumpar styrs normalt med en väggdisplay och ev. en fjärrkontroll till denna. Displayen är normalt kopplad direkt till värmepumpen - via en lite längre kabel.

Det fungerar - upp till en viss nivå. Kanske allra tydligast vad gäller integration i ett modernt flexibelt styrsystem. Värmepumpen "pratar" inte med något - displayen pratar med pumpen - det är allt. Och än mindre kan den fjärrstyras. (Undantag - värmepumpar med inbyggt GSM/3G modem. Men de har ju numera inte något nät att kommunicera med).

Önskemål

Vi önskar att kunna koppla värmepumpen mot ett modernt, IP baserat styrsystem. I vårt fall blir det "Home Assistant" - men tekniken är generisk (man kan koppla mot annat fastighetssystem - eller Alexa, Gooogle Home, ...).

Önskemål i detalj
  • Kunna se i reatid om värmepumpen körs - och dess temperaturdata då.
  • Kunna starta / stoppa värmepump via nätet.
  • Kunna få ut eventuella felkoder - och larmas om de uppstår.
  • Stöd vid felsökning - vid behov

Arbetssätt

Den värmepump jag arbetade på är en luft/vatten med 11 kW max effekt (märke: Sfinx Solar, modell VP11). Tekniken nedanför är dock generell.

Det finns två nycklar i detta:

  • Att läsa in och korrekt tolka den kommunikation som sker mellan värmepump och display (d.v.s. att lyssna och förstå vad som sägs på den seriella kabeln mellan de två.
  • Att kunna styra displayen på avstånd (d.v.s. generera knapptryckningar).

Oscilloskop

Probe on circuit

Att tolka kommunikation och protokoll

Det första jag såg på oscilloskopet var att signalen inte alls hoppade mellan 0 och 5V (eller 12 V) - som förväntat på en seriell signal.

Den hoppade mellan runt 2.7V och 4.3V - ett mycket mindre spann. Normala seriella adaptrar reagerar ej på detta.

Så första åtgärd var att göra en krets som gick mitt i detta intervall ( (2.7 + 4.3)/2 = 3.5V ) . och forcera utsignal till 0V om lägre än 3.5V och till 5V - om högre. Det var inte så svårt (ett par transistorer och några fixa spänningsreferenser).

Efter att detta var utfört återstod att tolka signalen. Hur jag än ändrade seriella parametrar (hastighet, stopp-bitar, ...) - så kom inget förnuftigt fram.

PulseView-Sample.png

I en seriell signal är varje bit lika lång. I bilden ovan syns ett distinkt mönster - men det är av en annan typ. Den "låga" delen av signalen är alltid kort - medan den "höga delen" är ibland kort, men ibland mycket lång.

Där låg nyckeln - en 0:a och en 1:a kodas med olika tidslängd i protokollet. D.v.s. inte ett seriellt protokoll. (Ett pulslängdsmodulerat protokoll i gruppen "Manchester encodings". Det används i brusiga miljöer.).

Till slut kunde jag koda av kommunikationen - och förstå vad värmepump och displayen "sade till varandra":

as

Display_med_knapp

Att styra pumpen på avstånd

Jag valde det enklaste sättet att styra pumpen på avstånd - genom att löda på en kabel på kretskortet under på/av knappen.

Då kan jag elektroniskt generera knapptryckningar utan att vara där och trycka på knappen - d.v.s. via mjukvara.

Plattform (hårdvara, mjukvara)

  • Hårdvara:
    • ESP32S - microcontroller
    • Egen enkel PCB med tre funktioner:
      • Anpassning av seriell nivå - med filtrering av brus
      • Styrning av hela värmepump med externt skapad "knapp tryckning".
      • Styrning av värmecylel - med externt styrt "NTC motstånd"
  • Mjukvara:
    • EspHome på microkontrollern
      • Det ger flexibilitet och en gott om färdig funktionalitet att koppla ihop.
    • Home Assistant för visualisering via webinterface
      • Man kan välja annat system här - som plockar upp vad EspHome säger (via API).

Resultat

Via Home Assistant kan man i realtid följa och styra värmepumpen:

Display_med_knapp

Diskussion

På det här sättet kan en värmepump "moderniseras" och flexibelt integreras i en modern styr&regler miljö. Den väl fungerande maskinen - men tidigare oflexibla - har fått en nytt liv - och kan tjäna ut sin normala livslängd, på det sätt vi önskar.

Detta kan naturligtvis utföras för andra värmepumpar - eller helt andra maskiner enligt uppställning "Kontrollpanel via kabel".

Det kan finnas andra sätt att samla data / styra utrustningen från - som t.ex ett Modbus interface. Den enskilda tekniska utrustningen avgör på vilket sätt det bäst moderniseras.

Om ni har en ide om en maskin ni vill modernisera / styra på detta (eller liknande sätt) - finns jag här för dialog.