Om

Nedanstående hjälptexter finns i MyHeatPump's webgränssnitt.

Om

MyHeatPump - Version x.x.x

Denna enhet består av en liten men kraftfull Linux-server med linux-distributionen OpenWRT samt annan programvara. Enheten är ursprungligen designad som en 3G/4G-router (travel router). Den har WiFi och försörjs med ström från värmepumpen via den medföljande kommunikationskabeln.

Ambitionerna har varit att skapa en produkt som är rena motsatsen till Nibes RCU. D.v.s. istället för att vara dyr, komplicerad, tung och proprietär har designkriterierna varit en produkt som är billig, enkel att installera och att använda, lätt (under 50 gram) och baserad på öppen källkod. Dessutom utan externt spänningsaggregat.

Upphovsrätt

Copyright (C) 2017 Per Abrahamsson per.e.abrahamsson@telia.com

Denna fil är en del av MyHeatPump.

MyHeatPump får inte kopieras och/eller distribueras utan Per Abrahamssons skriftliga tillstånd.

Open Source intentioner

Jag (upphovsmannen till MyHeatPump) är intresserad av att göra delar av MyHeatPump Open Source. Särskilt detta web-interface. Om du vill hjälpa till att göra delar av MyHeatPump Open Source, kontakta mig på per.e.abrahamsson@telia.com.

Funktion

Efter det att du aktiverat RCU-funktionen i din värmepump tar enheten kontinuerligt emot information om värmepumpens register via värmepumpens RS485-gränssnitt. Informationen lagras i en minnesarea vilken kan avläsas av din webbläsare med hjälp av två s.k. CGI-skript. Det finns också ett CGI-skript som ger dig möjlighet att skriva till värmepumpens register. Dessa CGI-script nyttjas av ett antal webbsidor som ligger på enhetens integrerade webserver. Vidare lagras kontinuerligt information om utvalda register i en statistikfil för att möjliggöra visning av grafer.

Enheten innehåller alltså en webbserver samt tre CGI-skript som kan liknas vid API:er till värmepumpen. Dessa kan du nyttja om du själv vill anpassa enhetens websidor eller integrera din värmepump med annan utrustning. Mer information finns under rubriken "API".

Vidare innehåller enheten en Modbus TCP server, vilket betyder att du kan läsa och skriva värmepumpens parametrar via en klient för Modbus TCP.

Det finns även programvara som gör det möjligt att ladda upp grafer och loggfiler till din Dropbox samt möjligheter att skicka larm via mail eller SMS (via mail-SMS-gateway).

Installation

OBS! Anslut ALDRIG enheten till en externa strömkälla samtidigt som kommunikationskabeln är ansluten till värmepumpen. Det kan p.g.a. isolationsproblem förstöra delar av elektroniken i din värmepump.

OBS! Placera aldrig utrustningen utanför din brandvägg (din router). Enheten uppdateras inte kontinuerligt med säkerhetsuppdateringar.

Enheten är designad för en så enkel installation som möjligt.

  1. Aktivera RCU på din värmepump via värmepumpens menysystem (se din manual).
  2. Stäng av din värmepump.
  3. Dra in kommunikationskabeln och dess RJ85-kontakt till RCU-kontakten i din värmepump (se din manual).
  4. Anslut sedan kommunikationskabelns kontakter till enhetens micro-USB (5V) och USB (RS485).
  5. Slå på din värmepump.
  6. Trådbundet Ethernet: Anslut dig nu via din webbläsare till http://10.10.10.1 (din anslutna utrustning tilldelas IP-adress m.m. via DHCP). Wifi: Anslut dig till SSID "MyHeatPump" med lösenordet "nibeowns", anslut dig nu via din webbläsare till http://10.10.11.1 (din anslutna utrustning tilldelas IP-adress m.m. via DHCP).

För att du skall kunna använda funktionerna för att ladda upp diagram och loggfiler till Dropbox samt att skicka mail och SMS behöver du ansluta din enhet till ditt befintliga hemnätverk.

Ansluta till WiFi (hemnätverk)

  1. Koppla loss enheten genom att lossa de två kontakterna och anslut den sedan till din klient med den levererade (vita) spänningskabeln till ett USB-uttag på din klient samt anslut en ethetnetkabel från uttaget märkt med LAN till din klient. (Du måste ha, och har sannolikt nätverksinställningen DHCP så att din klient tilldelas en IP-adress). Anslut till http://10.10.10.1 med din webbläsare.
  2. Under fliken "Verktyg" anger du Säkerhetsalternativ, Namn (SSID) och Lösenordsfras. Sedan är det bara att klicka på Anslut och efter ca 15 sekunder ser du om du lyckats eller inte.
  3. Koppla loss enheten och anslut den till värmepumpen igen.
  4. Om din klient har mDNS* behöver du inte fundera på IP-adresser och når enheten via din webbläsare och adressen myheatpump.local. Alternativt konfigurerar du en s.k. Static Lease i din router för den IP-adress du fått och använder den som adress. Ett bra tips är att lägga till ett bokmärke i din webbläsare så slipper du komma ihåg IP-adressen.

I menyerna i Linux-serverns administrationsgränssnitt (LuCI) gör du sedan nödvändiga inställningar för att få Dropbox, mail och SMS att fungera. Se även undermenyn "Connectivity" för att testa Dropbox, mail och SMS. Ha inloggningsuppgifter m.m. för det mail-konto du tänker använda tillgängligt.

(*) Microsoft har av någon outgrundlig anledning valt att inte supporta mDNS i Windows, men mDNS kommer med viss Windows-programvara som t.ex. "iTunes" eller "Bonjour Print Services for Windows". Googla på "mDNS Windows" för mer information.

Lysdioder

Det finns 3 lysdioder på enheten. Sett framifrån med lysdioderna nedåt har de följande funktion: Vänster - Lyser när enheten har spänning. Mitten - Visar trafik på trådbundet Ethernet (LAN-porten). Höger - Visar trådlös nätverkstrafik (WiFi-porten).

Fabriksreset

Enheten har en resetknapp med vars hjälp du kan återställa enheten till fabriksinställningarna. Om du behöver återställa enheten gör du så här:

  1. Säkerställ att enheten hunnit starta upp. (Cirka 2 minuter efter det att enheten fått spänning har den hunnit startat upp.)
  2. Tryck och håll inne resetknappen minst 10 sekunder. Enheten startar om med fabriksinställningar när du släpper knappen. Tänk på att enheten behöver upp till ett par minuter på sig för att starta om.

API

Läsa ett specifikt register

Via ett AJAX anrop till /cgi-bin/hpgetpar?xx, där xx är registret (decimal notation) i värmepumpen, kan du läsa valfritt register. Anropet svarar med en ascii-sträng innehållande registrets hexadecimala värde (4 positioner - 16 bitar)

Läsa all register

Via ett AJAX-anrop till /cgi-bin/hpgetalljson kan du läsa värmepumpens samtliga register. Anropet svarar med en ascii-sträng på JSON format innehållande värdena på värmepumpens samtliga resister. Hexadecimalat värde (8 positioner - 32 bitar)

Skriva till något av värmepumpens register

Via ett AJAX-anrop till /cgi-bin/hpputpar?xxyyyy - där xx är registret du vill skriva till (decimal notation) och yyyy är det hexadecimala värdet du vill skriva till registret. HTML-anropet svarar med:

01 - OK

02 - Felaktig parameter eller data

03 - Timeout

04 - Upptagen (skrivoperation pågår)

Tänk på att minska parameternumret med 1 för att få motsvarande register i värmepumpen. Parameter 1 ligger alltså i register 0 o.s.v. Tänk också på att registrens datatyp varierar. Det kan vara "byte" (8 bitar), "short integer" (16 bitar) eller integer (32 bitar). Vid "byte" sätts de första positionerna till 00 (00yy). De kan vara såväl "signed" som "unsigned". Se PDF-filen, under menyn "Verktyg", för skalning av parametrarna. T.ex. kan värdet 123 för ett register representera värdet 12,3 grader. OBS! du ser inte datatyperna i detta dokument då det avser Modbus som alltid har datatypen signed eller unsigned short integer, men det ger ändå bra information om parametrarnas skalning m.m.

Tänk också på att lägga på ett slumptal i slutet av anropet så att inte din internetläsare hämtar resultatet i cachen.

Modifiera enhetens webb-interface

Vill du modifiera enhetens webb-sidor är du välkommen att göra det. Ändra i /www/index.html. Linux-servern har FTP installerad så att du lätt kan byta ut filen. Du får gärna dela med dig av förbättringarna. Lycka till.

Integration

Du kan använda enheten för integration (d.v.s. att kommunicera med annan utrustning) på två sätt:

  1. Alla enheter som kommunicerar med Mobus TCP kan integreras med enheten. Den hanterar Modbus TCP och funktionskoderna 03 - Read Holding Register, 06 - Preset Single Register och 16 - Preset Multiple Registers.
  2. Alla enheter som kan hantera HTTP GET och POST kan via API:erna (hpgetpar, hpgetalljson och hpputpar) läsa och skriva till värmepumpens register.

Tycker du att hemautomation är kul, titta på OpenHAB (open Home Automation Bus). openHAB kan kommunicera med enheten via s.k. bindings för både HTTP och Modbus.

Open Source m.m.

Enheten är i princip baserad på Open Source-produkter eller andra fria programvaror. Via dessa länkar kan du läsa mer om dem.

Hårdvara

Enheten bygger på GLi's produkt GL-MT300N, se - GL-MT300N för specifikation. GLi har många prisvärda produkter om du vill jobba vidare med Linux-distributionen OpenWRT. Du hitta bl.a. deras produkter på eBay.

Brister

Designkriterierna (liten, lätt, billig och Open Source) leder till några brister (som jag tror man kan leva med). Kort om dessa nedan.

  1. Enheten använder en 5V-spänning från värmepumpen. Tyvärr påverkas den 12V-spänning som matar värmepumpens display av den ström som enheten förbrukar. Detta gör att bakgrundsbelysningen i värmepumpens display kan flimra.
  2. Enheten har bara s.k. flashminne för att lagra filer permanent. Flashminne klarar inte av allt för frekventa skrivningar. Med undantag av de dagliga graferna och driftstatistiken ligger därför all statistik i flyktigt minne. Därför tappar enheten insamlad data till den rullande 10-timmars-grafen då strömmen slås av. Det kompenseras i viss mån av att de dagliga graferna kopieras till flash vid midnatt. De kan också laddas upp till din Dropbox. Det finns enheter med inbyggda batterier, men det är oklart om värmepumpen orkar tillhandahålla tillräckligt mycket ström till dessa enheter.
  3. OpenWrt är inte en realtidsmiljö vilket värmepumpen är. Trots mått och steg finns det risk att enheten tappar synkroniseringen med värmepumpen vid höga IO eller CPU-laster. Enheten synkroniserar dock snabbt om på någon tiondels sekund så någon praktisk betydelse borde inte detta problem ha.