Huset upplevdes kallt och jag lånade en FLIR-kamera för att se var värmen smiter ut.
Såg samtidigt att de vattenburna radiatorerna såg konstiga ut genom FLIR-kameran.
Hade i samma veva några vänner över på middag och blev ganska snart varse att VB-fram och VB-retur verkade omkastade.
Det visar sig att de varit omkastade sedan installationen av bergvärmepumpen för knappt 10 år sedan.
Jag hade en rörmokare över som fixade problemet. Det blev en helt annan värme i radiatorerna. En jämn fördelning av värmen och inte bara i ena kanten av radiatorn som det varit tidigare.
Detta gjorde att jag började söka på om jag kunde läsa av bergvärmepumpens parametrar för att se vad som händer när jag skruvar på cirkulationspumpen, kurvlutning, kurvförskjutning mm. Jag har en Nibe Fighter 1235 8kW.
Självklart finns det ju redan en tråd om detta här på elektronikforumet
https://elektronikforumet.com/forum/vie ... hp?t=13714
Där finns en post av @FredRovers som beskriver hur man kan läsa av parametrarna genom satt låtsas att man är en RCU (Nibes egna kommunikatonsmodul som är ett extra tillbehör).
https://elektronikforumet.com/forum/vie ... 10#p267410
För att få en smidig, kompakt och enkel lösning implementerade jag kod i Arduino IDE som körs på en ESP8266-variant som heter Wemos D1 mini. Det skulle även fungera med den minsta varianten, ESP-01, men jag tog den som låg på armlängds avstånd vid skrivbordet . F1235 använder RS485-bus för att kommunicera internt, och jag behövde därför även en RS485-RS232-brygga eftersom ESP8266 bara pratar RS232 (https://www.ebay.com/itm/3-3V-UART-seri ... 3317363375).
Då RJ45-porten på F1235 även förser med +5V så behövs bara en nätverkskabel som i andra änden har bryggan samt Wemos D1 mini.
Koden som den ser ut idag är en minst sagt work under construction och koden behöver städas rejält... men den fungerar.
Det D1:an gör idag är att lyssna efter (hex) 00 14 från CPUn och sedan svara 06 (ACK). Då skickar CPUn några parametrar. Dessa sparar jag undan i en array. Parametrarna uppdateras många gånger under en minut så man får mer data än man behöver. Det är 97 parametrar totalt, varav flertalet inte är speciellt intressanta eller ens används.
Ungefär var 25:e sekund skickar jag iväg ett UDP-paket med hela arrayen med de senaste värdena.
Detta UDP-paket tar jag emot på en liten server (Seagate FreeAgent DockStar Network Adapter STDSA10G-RK) som jag hackat och kör debian på.
Den tar datat i UDP-paketet och formaterar datat och laddar upp det till thingspeak (https://thingspeak.com/channels/699393). Jag skulle ju helst vilja ha lite finare grafer än vad thingspeak erbjuder, men jag vet inte riktigt vad jag ska välja i djungeln av lösningar.
Sneglar på MQTT och Chart.js, men är osäker på om det är rätt väg att gå. Tips?
En förbättring som skulle förenkla kommunikationen är att jag redan från Wemos D1 skickar direkt till Thingspeak.
En annan sak jag skulle vilja få till är också att kunna skriva värden till bergvärmepumpen, men här har jag än så länge gått bet. Den beskrivning som FredRover beskriver fungerar inte. Jag skickar en 05 (ENQ) efter jag blivit adresserad. Får en ACK enligt hans beskrivning. Sedan skickar jag nya Data, men sedan får jag inte ACK tillbaka .
Kod: Markera allt
CPU RCU(typ)
| |
|—— 00 14 --—>|
| |
| <—— ENQ --—|
| |
|—— ACK --——>|
| |
| <— DATA —--—|
| |
|—— 00 —--—>| <--- Här går det fel!
| |
c0 är kommando.
00 14 är adress.
03 är payload-längd.
00 0b är adressen till parametern som ska skrivas. Kurvlutning i det här fallet.
09 är nya parametervärdet.
d5 är checksumma (xor av föregående byte c0 till 09).
Någon som har tips på hur man kan få till skrivning? Edit1: La till en rad i förklaringen av datapaketet efter att @mAVRick påpekat missen.