Arduino ersätter Nibe RCU-10?

Jag underhåller en Nibe Fighter 360P. Och till den kan man köpa en fjärrstyrningsenhet med webbgränssnitt och SMS-styrning. Tyvärr kostar den typ 10000:- och jag köpte pumpen begagnad för ungefär halva det priset. Efter lite googling hittade jag tråden PC-styrning av Bergvärmepump på Svenska Elektronikforumet. Signaturen FredRovers beskriver detaljerat hur kommunikationen fungerar mellan pumpen och RCU. Kan jag härma detta med min Arduino?

Hårdvaran som behövs är en Arduino ATmega 2560, eftersom jag behöver två serieportar varav en pratar med 9-bitar mot pumpen. Dessutom behövde jag ett RS485-interface. Sådana kostar typ en dollar på ebay. Om man inte har en Mega så går det säkert att modifiera biblioteket softserial så det fungerar med 9-bitarsord, men mig veterligen så är inte det gjort av någon.

Resultatet har hittills blivit att jag kommit halvvägs. Jag kan läsa vad pumpen skickar till, vad den tror är en, RCU. Jag har tyvärr inte lyckats med konststycket att skicka någon data till pumpen. Jag vet helt enkelt inte hur datan ska se ut. Så som FredRovers beskriver i inlägget verkar det som att man skickar data i samma format som man läser den. När jag provar så stannar kommunikationen redan när jag säger att jag har nåt att sända. För komma vidare behöver jag låna en riktig RCU några dar för att läsa av hur magin fungerar.

Pumpens egen programvara behöver vara version 2.x för att menyalternativet RCU ska finnas. Aktiverar man RCU (meny 9.1.3) utan att ha någon inkopplad så går menyerna tröögt då CPU väntar på ACKar från RCU, men pumpen verkar ändå fungera. Det går att uppgradera pumpens mjukvara. Värt att veta är att det finns ett modbus-protokoll som Nibe använder i nyare värmepumpar. Det är inte kompatibelt med det som 360P använder. RCU-10 passar till fler pumpar, men jag vet inte vilket protokoll de använder.

Inkoppling i Nibe F360p
Var försiktig! Värmepumpen är väääldigt bra att ha fungerande. Koppla inte in nåt utan att ha mätt ordentligt och förstått vad du gett dig in på först.
Det allra viktigaste är att ha samma jordpotential i båda ändar så man inte bränner något i själva inkopplingsögonblicket. Om du överväger att använda en laptop med batteridrift första gången du kopplar in dig så har du en sund syn på hur försiktig man bör vara. Jag är själv höggradigt klantig och har bränt ett 485-interface, men ännu inget i pumpen. Koppla helst in en permanent jordsladd mellan datorn/ardunon och värmepumpen så slipper du överraskningar.

Kontakten att koppla in sig på är en RJ-45. Den sitter i ena änden av den kedja som sammankopplar alla korten i pannan. I en större anläggning kopplar man ihop alla pumparna och låter en vara master och så låter man en RCU övervaka att allt funkar som det ska.

Nibe-RJ45_pinning Det här är preliminär info. Mät och kolla själv för säkerhets skull! De enda som behövs är egentligen A och B som är själva dataanslutningen, samt jord. Färgerna är de som ses i en vanlig nätverkssladd. Jag har aldrig använt 12V eller 5V från pumpen, så jag vet inte hur ren spänning man får eller hur hög belastning den tål. Inte heller vad som händer om man överbelastar.

arduinorcu1

Inkoppling i Arduinon
Som ses på bilden ovan så är det inte många sladdar att hålla reda på.
Jordpinnar är ofta en bristvara på i Arduino, men i det här fallet så är den största bristen en pålitlig jord. För att lösa det så plockade jag isär en sockerbit och lödde fast innehållet på sidan av USB-kontakten. Det tillsammans med en strypare gör att anslutningen mot pumpen blir stabil. Skulle något av stiften sen hoppa ur mellan Arduino och RS485-interfacet så ställer det inte till med nån skada. Kabellängd är inget problem. Jag körde först med 20 meter fyrtrådig telefonsladd.

RJ45-RS485-ArduinoMega_pinning Det här är preliminär info. Mät och kolla själv för säkerhets skull! På två kina-arduinosar så står det olika vilken pinne som är TX1 och RX1 av 18 och 19, så jag skriver bara vilka nummer jag har använt. Prova att byta plats mellan dem om det inte rullar igång.

Arduinoprogram
Det jag ’har på lager’ är hur mitt program såg ut innan jag gjorde om allt och gjorde så att en ESP8266 regelbundet skickar upp senaste minutens värden.
Och vad är utkomsten? En jättetråkig mellanslagsseparerad lista som uppdateras varje minut, samt att den visar när kompressorn startar och stängs av.
listexempel
Ladda ner programmet: NibeTest1.ino
Ladda exempel på logg: NibeLog_131016_02.txt

Testprogram för att se om allt är rätt kopplat. RCU behöver inte vara aktiverat (om du inte har en inkopplad), utan man ser anropen från CPU-kortet till de övriga korten.
Ladda ner: NibeDataDump.ino
Se exempel där RCU är aktiverat, men inte svarar: NibeDataDump_DT_160312.txt

Vad har jag det till?
diagramexempel
Jag har kopplat en ESP8266 till min ATMega2560 och låter den varje minut sända ett antal värden till en webbserver där det sparas i en databas. Även elmätaren gör samma sak. Sen kan jag kolla nuvarande värden på en enkel webbsida eller de senaste dygnens värden som i grafen i bilden ovanför med hjälp av HighSharts.

Todo:
Lägga upp kopplingsschemor
Kolla upp om någon av signalerna RS485DE eller RS485REinv ska inverteras (klart, ny version 160312!)
Lösa knuten med att jag inte lyckas sända kommandon till värmepumpen.
Mer?

Kensington DD90-1

Det här är en laptopladdare för bil/flyg som gick sönder då användaren råkade koppla in negativ spänning till den. Den är enkel att öppna, det är bara att bryta isär höljet med ett bågfilsblad eller liknande. Det finns inga dolda skruvar och det finns inget lim som håller ihop den.
Kensington1
Konstruktionen är enkel med två separata DC-DC-omvandlare. 5V 0,5A för att hålla mobilen vid liv och 90W till laptopen. Jag tror den är tänkt för utbytbara pluggar för utspänning, därav kontakterna med ett motstånd uppe till höger.

Kensington2
Säkringen är en snabb 12A i storlek 6,10 x 2,69mm och ses till vänster i mitten. Nya finns att köpa på ebay såklart. Den stora vita komponenten är en värmesäkring som löser ut då den blir 145 grader. Efter byte av den förstnämnda så fungerade laddaren igen.

Enfas elmätare för DIN-skena DDS238-1

Nu har den andra elmätaren kommit från Kina. Köpt på ebay för drygt 120 kronor.
Den är väldigt lik XTM18SA på utsidan, är de likadana inuti?
bada_tva bada_tva_2
Tillverkaren är i vilket fall noga med att avskräcka från inbrottsförsök. Men jag tar risken och bryter sigillen. Plastkonstruktionen är faktiskt lättare att öppna med något sämre passform än XTM18SA. Klämmorna som håller kablarna ser dock ut att vara av bättre kvalitet.

inuti_3
Väl inne i mätaren så ser det helt annorlunda ut men ändå väldigt lika. Nollan sitter på ena sidan och in- och utgång på den andra, med kopparledare. Det kanske inte bara är cost reduction då en fördel med att inte ha fas och nolla nära varandra är att risken för överslag minskar. Fast den lilla kopparmängden kanske gör att det istället blir varmare?
Kretsarna då? Displaydriver BL55024, EEPROM 24c02, CPU Holtek HT68F03C (8 pinnar, 64byte EEPROM, 64byte RAM, 1k FLASH, timers, 2.2V-5.5V), elmätarkrets ADE7755. Snarlikt kusinen med andra ord.
Notera den lustiga böjningen av lysdiodbenen. Man måste peta ut lysdioden efter man monterat kretskortet i lådan.

inuti_2
Här ser man själva bygeln som strömmen går genom. Ovanför sitter S0-utgången som jag tänker använda för att räkna pulser. Den här ger hela 3200 pulser per kWh. Inget är omöjligt att omvandla, men är det inte ett udda val? Det vita kletet är nåt silikonliknande som ska hålla saker på plats. Jag hoppas det åldras med värdighet och inte börjar suga åt sig fukt.

inuti_baksida
Undersidan är fri från komponenter. Man ser att S0-utgången är väl separerad från fasen, men jag hade hellre sett den på samma sida som nollan.

inuti_undersida
Jag vet inte vad man justerar med de här byglarna och varför just 24 är valt.

lod
De här ramlade ut när jag öppnade mätaren. Känns inte helt bra med lödrester i elmateriel. Tur att den är tänkt att sitta still i ett skåp. Anledningen är troligtvis att någon manuellt måste löda ihop mönsterkorten 90 grader mot varandra. Det sitter fortfarande kvar lite lödrester i lödmasken.

DDS238-1 vs XTM18SA. Vilken är då bäst? Jag har (ännu) inte kollat om någon av dem visar rätt. Den här har ett CE-märke, men den är slarvigt ihopsatt. Den andra verkar ha komponenter av högre kvalitet, men sämre placering av dem.