I denna artikeln ska jag försöka beskriva mitt lilla projekt med att övervaka min IVT-490 värmepump med en Raspberry P.
Jag har hämtat mycket kunskap från dessa två forum-trådar :
http://www.varmepumpsforum.com/vpforum/index.php?topic=27306.15Tanken
och
http://www.byggahus.se/forum/varme-allmant/44487-prata-med-ivt-490-a-5.html
Min värmepump har ett interface som ser ut såhär :
Man behöver slå på variabeldumpning på pannan för att få ut information. Man kommer in i Admin mode genom att hålla in högra knappen i 5-10 sekunder. Sedan letar man upp “Installation och igångkörning” och där finner man “Variabeldumpning till PC”. Med det påslaget så får man ut data 1 gång per minut. (source; Niclas Hedlund)
Citerar Niclas.Hedlund om interfacet från Värmepumpsforum:
Baudraten är 9600baud och 8 databitar, 1stopbit och ingen paritet.
Tänk på att TxD som är markerat på bilden är data UT från pumpen, och RxD data IN till pumpen.
Då jag inte lyckats få tag på en kontakt så fick jag använda mig av en plastpåseklämma (som man köper på MAXI) som jag vänt på och satt två skruvar i, och så har jag silvertejp också…. ja ja det är ju på egen risk 🙂
EDIT: Nu funkade inte min plastklämma så bra så jag lödde dit trådarna istället, nu funkar det bättre. MEN så hörde Fredrik Winkvist av sig och berättade vilken kontakt man skulle ha, och den ska funka perfekt. För er som söker så heter den “2.54mm Pitch 2×5 Pin Double Row Angle IDC Pin Headers 10 Pins”. Ett stort Tack till Fredrik, här är en länk till eBay som säkert blir outdated men så länge den finns kvar kan länken vara bra: http://www.ebay.com/itm/20-Pcs-2-54mm-Pitch-2×5-Pin-Double-Row-Angle-IDC-Pin-Headers-10-Pins-/310784076520?pt=LH_DefaultDomain_0&hash=item485c2caae8
Specification:
Product Name | IDC Pin Header |
Position | 5 |
Pin Number | 10 |
Row | 2 |
Mounting Angle | 90 Degree |
Pin Pitch | 2.54mm/0.1″ |
Pin Length | 4mm/ 0.16″ 12mm/ 0.47″ |
Total Size | 19 x 9.5 x 22mm/ 0.75″ x 0.37″ x 0.87″ ( L*W*H) |
Material | Plastic, Metal |
Color | Black, Silver Tone |
Net Weight | 66g |
Package Content | 20 x Angle IDC Pin Headers |
Description:
Features double row, 90 degree mounting angle, male pin header, electronic component, IDC connector.
This pin header is an ideal connector for the PCB board and intergrated circuit, used widely in the computer, breadboard, LCD, TV and other home appliances.
När detta var gjort var jag tvungen att koppla in det via typ USB, så jag köpte en sådan
här på ebay. http://www.ebay.co.uk/itm/6PIN-CP2102-USB-2-0-to-UART-TTL-Electronic-Connector-Serial-Converter-Module-/390568169609?pt=UK_Computing_Parallel_Serial_PS_2&hash=item5aefad5089
Varje minut så skickar den ut 37-parametrar som är ;-separerade, se EXCEL filen; Loggning-2. (loggfilen kommer också från Värmepumpsforumet; inskickat av Larsmaja)
En rad kan se ut såhär :
1 |
360; 315; 33; 478; 445; 447; -512; 774; -512;0;0;0;0;1;0;0;1;1;0;0; 296; 311; 326; 341; 495; 520; 545; 301; 326; 351; 435; 105; 26; 0; 0; 0; 0 |
Där alla temperaturer är heltal med 1 decimals noggrannhet, så 315 betyder 31,5 grader Celsius.
360 är sekvensummer
315 är Framledningstemperatur (GT1), dvs 31,5 grader
33 är Utetemperatur (GT2), dvs 3,1 grader
478 är Tapvarmvatten (GT3-1), dvs 47,8 grader
445 är Varmvatten(GT3-2), dvs 44,5 grader
447 är Värmevatten(GT3-3), dvs 44,7 grader
-512 är Rumstemperatur(GT5), men jag har inte den givaren så den visar -512
774 är Hetgastemperatur(GT6), dvs 77,4 grader
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
root["framledn"] = ivt[1]; //Framledning root["ute"] = ivt[2]; //Ute root["tappvarmvtopp"] = ivt[3]; //Tappvarmvatten Topp root["varmevmitt"] = ivt[4]; //Varmvatten Mitt root["varmevbotton"] = ivt[5]; //Värmevatten Botten root["inne"] = ivt[6]; //Rumstemp root["hetgas"] = ivt[7]; //Hetgas root["egtemp"] = ivt[8]; //Extra Acc-Tank root["tryckvakt"] = ivt[9]; //Tryckvakt root["hogtryck"] = ivt[10]; //Högtryck root["lagtryck"] = ivt[11]; //Lågtryck root["egsemester"] = ivt[12]; //Semester aktiv? root["kompressor"] = ivt[13]; //Kompressor aktiv root["schuntoppen"] = ivt[14]; //SV1 Öppna root["schuntstangd"] = ivt[15]; //SV1 Stäng root["cirkpump"] = ivt[16]; //P1 Rad //root["flakt"] = ivt[17]; //Fläkt root["larm"] = ivt[18]; //Larm aktiv //root["20"] = ivt[19]; //Extern P2 //root["21"] = ivt[20]; //LLT GT1 //root["22"] = ivt[21]; //LL GT1 root["bvframledning"] = ivt[22]; //BV GT1 //root["24"] = ivt[23]; //UL GT1 //root["25"] = ivt[24]; //LL GT3:2 //root["26"] = ivt[25]; //ULT GT3:2 //root["27"] = ivt[26]; //UL GT3:2 //root["28"] = ivt[27]; //LL GT3:3 //root["29"] = ivt[28]; //BV GT3:3 root["extravv1"] = ivt[29]; //SV3 BV Förskj root["extravv2"] = ivt[30]; //Effekt ink vit VV behov root["extravv3"] = ivt[31]; //Tillskotstimer VV behov //root["33"] = ivt[32]; //Tappv prio root["elpatron"] = ivt[33]; //Tillskott i %/10 //root["35"] = ivt[34]; //Tillskott RAD root["extravv4"] = ivt[35]; //Tillskott Tillägg //root["37"] = ivt[36]; //Default SV2 Open |
I bilden nedan ser man de olika givarna GT1-7.
På min Raspberry pi skrev jag ett enkelt script som läser från USB-serieporten och postar på en websida som jag har gjort, där jag helt enkelt lägger in det i en MySQL databas )oerhört enkelt, bara timestamp och så det ;-separerade datan (två kolumner, pga av att jag ville komma igång, skulle såklart haft 38 kolumner så man kunde göra lite mer SQL, men det får bli en annan gång…)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import requests import serial import time from time import gmtime, strftime import re pattern = re.compile(r'\s+') def readlineCR(port): rv = "" while True: ch = port.read() rv += ch if ch == '\r' or ch == '': return rv def post(timestamp,data) : payload = {'timestamp': timestamp, 'data': data} try : r = requests.post("http://domain.com/path/file.php", data=payload) print(r.text) except Exception as e: print "Oops! unable to post result!",e.__doc__,e.message port = serial.Serial("/dev/ttyUSB0", baudrate = 9600, timeout = 60) while True: rcv='' try : rcv = readlineCR(port) except Exception as e: print "Oops! problems reading from USB!" print e.__doc__ print e.message rcv = re.sub(pattern, '',rcv) timeStamp = strftime("%Y-%m-%d %H:%M:%S", gmtime()) print(timeStamp+rcv) if rcv : post( timeStamp,rcv) else : print "Empty data..." |
Jag har noterat att ibland så ramlar mina trådar ur, och så får jag inget resultat, då blir serieporten inte nåbar 🙂 och då får jag lite roliga felutskrifter… och såklart blir diagrammen dåligt uppdaterade….
Jag har gjort en websida (PHP and Javascript) där jag använt Highcharts för att rendera diagrammen. Ta en titt här http://tsoft.se/varmepanna/
Fredrik Winkvist var dessutom lite uppfinningsrik och berättade att man använda strömförsörjningen från värmepumpens 5Volt ut till Raspberry Pi;n. Ta en kik på bilden nedan.
Förbättringsförslag är alltid välkomna, så hör av er !
Mitt nästa projekt, när jag får tid…. är att mäta strömförbrukningen hemma…
-Tobias
Mycket fint arbete! Har också en ivt490 som jag tänkte göra precis samma sak med. Jag ska försöka lösa en kontakt, om du är intresserad så kan jag berätta mer om hur jag löst det senare.
ja absolut, fÃ¥r du tag i rätt kontakt sÃ¥ hör av dig. Jag mailade ELFA som jag tänkte absolut skulle ha en sÃ¥dan kontakt men det hade de inte…
Jag tror att denna passar: http://www.electrokit.com/kantkontakt-2x12pol-3-96mm.47052
vad tror du om det?
Jag föreslår den som Fredrik Winkvist hittade, den vet vi fungerar:-)
http://www.ebay.com/itm/20-Pcs-2-54mm-Pitch-2×5-Pin-Double-Row-Angle-IDC-Pin-Headers-10-Pins-/310784076520?pt=LH_DefaultDomain_0&hash=item485c2caae8
Såg inte den, mobilsurfade på bussen! Jag har samma uart ttl som du, men inte behöver man väl vcc i detta fallet? som jag förstår det ger både pumpen och adaptern ut ström på sina respektive vcc, så det borde räcka med rx, tx och gnd (där givetvis ena rx går till andres tx och vice versa)?
Snyggt jobbat!
NÃ¥gon som vet vad Gasen är för nÃ¥got och varför den droppar frÃ¥n 80 grader till typ 22 grader, och samtidigt (om det nu är ett sammanträffande vet jag inte) sÃ¥ slutar kompressorn. Jag har ingen koll pÃ¥ värmepumpar… borde nog läsa pÃ¥ lite….
FrÃ¥n manualen: “I kompressorn höjs trycket pÃ¥ köldmediet. Temperaturen pÃ¥ Ã¥ngan nÃ¥r ca +100ºC. Den varma gasen leds
därefter in i kondensorn.”
Husdata har en tjänst för detta som man kan kolla,
Vet ni hur man kan läsa ut konfigurationen från IVT så att man slipper stå vid panelen och trycka hela tiden..??? IVT har konfiguration får användare och istallatören.
Synd att man kan bara läsa…inte skriva/styra den.
Vore trevligt om man kan lägga den i semester mode eller lägga extra vatten osv. remote.
Om man bara kan läsa hur laser jag ut konfigurationen från IVT?
Jag tror att man bara kan lyssna på IVT inte läsa och defenetift inte skriva.
Visst kan man skriva till den, ska se om jag kan leta fram en spec pÃ¥ vad man kan styra, vet att det var nÃ¥got med nÃ¥gon fläkt och nÃ¥gon ventil som man kunde slÃ¥ och av. Jag tror jag läste om REGO400 nÃ¥gonstans…. FrÃ¥gan är bara att även om man kan, vad skickar man in pÃ¥ interfacet för att slÃ¥ pÃ¥/av.
Jag hade hoppats att det fanns en MIB som man kan läsa konfigurationen från.
Denn länk verkar intresant för att kunna läsa configuration från IVT.
http://rago600.sourceforge.net/
Hej.
Jag undrar om man måste göra någon inställning i värmepumpen för att få den att spotta ur sig data på service-porten? Jag har försökt nu i några kvällar att lyssna på min IVT GREENLINE E7 (rego638) men jag kan inte få ut nån data från den alls.
Min värmepump har en klassisk 9pin D-kontakt (seriekontakt) märkt service som jag försöker lyssna på. Om jag har förstått det rätt så kör den TTL (0-5V) nivå på utgången så just nu har jag en Arduino på den som spottar ur sig seriell debugdata över USB. men hur jag än gör så kan jag inte få den att detektera nån form av data från värmepumpen.
Just nu är det bara GND och TX som jag lyssnar pÃ¥ frÃ¥n pumpen… Tror jag…
Så. Måste man göra nåt med värmepumpen för att starta utskickningen av data eller är det alltid påslaget.
Tack för en bra blog !
AjdÃ¥, det verkar som jag glömt skriva det i bloggen, det ska jag uppdatera direkt. Ja du mÃ¥ste enable;a variabeldumpning pÃ¥ värmepannan. I mitt fall är finner du “Variabeldumpning till PC” under menyn “Installation och igÃ¥ngkörning”, och dÃ¥ skickas data ut en gÃ¥ng per minut. Och som Niclas Hedlund skriver i sin blog :
(Håll in högra knappen i 5-10sek tills ett meddelande dyker upp i displayen om att du har bytt mode. Sedan finna alternativet i menyerna)
Tack för svaret. Tyvärr sÃ¥ hittar jag inte det valet i min installatörsmeny pÃ¥ min panna…
Wow!
SÃ¥ snyggt! Jag var inne pÃ¥ samma spÃ¥r att sätta dit en rpi men sen sÃ¥ hittade jag ESP8266 som kan programmeras som en arduino men har wifi. (Kostar $2-8 beroende pÃ¥ var man köper…)
Det jag gått och funderat på är om den kunde matas direkt från 490:an och om du kan driva raspberrypi:n så borde det gå att köra ESP8266.
MÃ¥ste dock anpassa pannans 5V TTL till ESP8266:ans 3.3V TTL.
Nu ska grejerna fram!
Tack, Daniel
Grym Writeup! Tack för den. Tänkte höra om du fick några kontakter över när du beställd? Bäst att fråga innan jag beställer 20 st själv.
Min IVT 490 anno 2009 har slocknat helt av sig själv mitt i härliga kylan. Har du felsökt din någon gång eller haft ojämna temperaturvariationer med väldigt varmt/väldigt kallt hemma?? Hjälp!
Jo våra IVT 490 oxså hade slocknat av sig själv, efter lite kontroll såg jag att Automatsäkringen (bredvid Manuell brytare nära värmetanken) hade löst ut, troligen för att det var för kallt ute och det drog för mycket ampar av kretsen, Jag tryckte ner säkringen igen och allt började rulla som normal.
Hej
Faktum är att det är bland annat därför jag ville kunna övervaka min värmepump…
När det är kallt som nu, kan jag stå i köket och höra hur automatsäkringen i pannan går och så tar det några minuter så går den igen… varför ???
vi hade problem för något år sedan att temperaturen gick upp ordentligt och sedan ner och sedan upp igen, men då hade jag ingen övervakning
kommer inte ihåg vad vi gjorde, vi hade någon kille ute som kikade på den då, ska kolla med frugan om hon kommer ihåg,
Men det var dessa grejorna som gjorde att jag la lite extra tid på att få det att funka (sen är det ju väldigt roligt också)
Så tyvärr just nu kommer jag inte på något
Dessutom som du ser på mina grafer så far mina värden upp och ner, och jag kan tycka att det är lite konstigt men jag kan inte mycket om värmepumpar tyvärr…
Du fÃ¥r gärna berätta om du kommit pÃ¥ nÃ¥got, det kan vara till hjälpa för mig och kanske andra, kan ju skriva en liten artikel om dina findings 🙂
Lycka till
Tobias
Hej Tobias,
Mycket intressant projekt. Jag tänkte följa och bygga samma lösning till min pump. Tänkte kolla med dig om du har en bra bild på vilka stift kablarna ska kopplas på mellan pumpen samt RaspberryPI USB adaptern? Mvh M
Hej Tobias!
Bra blogginlägg! Använder själv en ESP8266 som UART-/Wifi-brygga.
Fick konvertera mellan 5V 3V3 TTL-nivåer för UART, men det kan lätt göras med ett par motstånd.
Har gjort ett python-script som läser värden via serieporten. Därefter konverteras dessa till virtuella sensorvärden och skickas in till Domoticz via mqtt.
Har fungerat bra under några veckor.
Hej Tord
Detter är en Google tranlate
Jag är danska och inte så bra på svenska
Jag har en ITV 490 och använder också Domintcz att styra mitt hus
du har möjlighet att visa vad och hur du har gjort med Arduino
MVH
Jan
@Jan. Jag använder inte Arduino utan esp-link på esp8266.
Mvh
Tord
Hej,
Jag har flyttat in i ett hus med en IVT 490. Eftersom att jag loggar ALLT så vill jag göra samma sak med pumpen.
Länken till kontakterna på eBay är för 20 stycken kontakter. Någon som har köpt och har möjlighet att skicka?
Det blev lödning, en Raspberry Pi 2, USB-wifi och en USB till UART-TTL. Pumpen gillade inte att jag strömmatade pajen via den egna outputen via kontakten på kortet så den roade sig med att starta om då och då. Det blir tyst i elementen då den startar om eftersom att cirkulationspumpen stannar under omstarten så det blev extern strömmatning.
Brassar in allt i Domoticz genom att uppdatera en användarvariabel via Domoticz http-api. När användarvariabeln ändras (dvs när pumpen dumpar data) sÃ¥ uppdateras temperatursensorerna och brytarna i Domoticz. Sen sÃ¥ finns det ju “Floorplans” i Domoticz och tja, jag är rätt nöjd med resultatet, se https://drive.google.com/file/d/0B13H1MftDH4lMVViaXRMeHRJNkk/view?usp=sharing
Tack för en bra sida!
Hej Niklas,
har du scriptet som du använder för att köra in datat i domoticz?
Synd bara att man inte kan styra värmepumpen via kommandon eller domoticz. Men informationen är bra och ha. 🙂
Mvh,
Mattias
Hej!
Så här ser det ut:
http://pastebin.com/RNxaghF7
Det kan säkert förbättras men det funkar fint. 😉
Sen har jag ett script som kollar hur gammal datan är och skickar mig ett meddelande om den är äldre än 5 minuter (något har hänt med pajen eller wifi)
Här är det scriptet:
http://pastebin.com/fPHvawQU
Lägger in scripten via Fler inställningar -> Händelsesystem/Events
Så att du på floorplan har strömförbrukning med. Kan man läsa ut strömförbrukning från pumpen eller har du en extern mätare för det?
Det är för hela huset. Jag mäter pulserna via 1-wire på elmätaren. 10 000 per kWh. Det är intressant att ha i samma bild för att jag ser förbrukningen när pumpen indikerar att den kör elpatronen. Man kan ju övervaka pumpen separat men det kräver ju att du känner av förbrukningen på de tre faserna till pumpen. Antingen med kabelklämmor eller direkt inkopplad på samma kablar..
This post deserves more attention. Sharing it!If anyone wants to read the topic in more details then visit 8xbet
I’m impressed by the depth of your knowledge.If anyone wants to read the topic in more details then visit 8xbet
Insightful and thought-provoking. Well done!If anyone wants to read the topic in more details then visit 8xbet
Your writing always makes me think. Well done!If anyone wants to read the topic in more details then visit 8xbet
Thanks for shedding light on this topic.If anyone wants to read the topic in more details then visit 8xbet
Kubet là một nhà cái uy tín tại Việt Nam, cung cấp đa dạng dịch vụ cá cược thể thao, casino trực tuyến.