Läsa och skriva parametrar till Nibe Fighter 1235

Berätta om dina pågående projekt.
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Köpte hus i slutet av November förra året.
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!
  |                        |
DATA-paketet innehåller c0 00 14 03 00 0b 09 d5
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?
20190112T232722.jpg
20190113T001403.jpg
20190209T232154.JPG
IMG_4912.JPG
IMG_4911.JPG
Edit1: La till en rad i förklaringen av datapaketet efter att @mAVRick påpekat missen.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av ecenier 10 februari 2019, 15:57:04, redigerad totalt 1 gång.
mAVRick
Inlägg: 319
Blev medlem: 19 mars 2013, 12:43:43
Ort: Östersund

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av mAVRick »

Spontant, saknar du inte ett värde på din parameter?
Payload 03, adress 2 byte och sedan checksumma direkt, känns som det skulle in en byte till där...
Med brasklappen att jag kan inget om Nibe eller deras protokoll...
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Tack! Hade med värdet i presentationen av hela paketet, men inte i förklaringen. Nu har jag uppdaterat inlägget.
Användarvisningsbild
sommarlov
Inlägg: 514
Blev medlem: 28 november 2015, 19:03:40
Ort: 08

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av sommarlov »

Har tyvärr inget att inlägga i själva problemet, ville bara säga att det är snygg jobbat! Älskar sådana här projekt folk håller på med hemma!
tingo
Inlägg: 285
Blev medlem: 17 maj 2017, 17:55:40
Ort: Oslo, Norge

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av tingo »

Enig! Pent jobbet!
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Nu har jag gått från prototyp till en lite mer robust och permanent lösning.
Lösningen integrerar dessutom en rumsgivare så att man får lite jämnare temperatur och sparar lite energi.
IMG_0365.jpg
IMG_0363.jpg
IMG_0366.jpg
Än så länge har jag bara verifierat rumsgivaren men inte monterat den i huset.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Nu fungerar även skrivning. Har lyckats ändra kurvlutning.


.
MiaM
Inlägg: 9912
Blev medlem: 6 maj 2009, 22:19:19

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av MiaM »

Används kurvlutning, kurvförskjutning och utomhusgivare ifall du har inomhusgivare ansluten?

Har försökt förstå beskrivningen till en äldre Nibe och fått intrycket att inomhusgivare "tar över" regleringen. Jag kan ha förstått fel.

Men grattis att du fått överföringen att funka åt båda hållen! :tumupp:
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Tack MiaM!

Inomhusgivaren viktas mot utegivaren. Jag har än så länge inte testat att variera den utan den är på defaultvärdet.
På 1235 tar det alltså inte över, utan kompletterar utegivaren.
jah
Inlägg: 659
Blev medlem: 16 januari 2009, 13:00:08
Ort: Eslöv

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av jah »

ecenier skrev:Nu fungerar även skrivning. Har lyckats ändra kurvlutning.
Måste säga att jag är lite förvånad att det funkar...

Kollade hur du gjort i koden, och om det där funkar så borde det egentligen räcka att ändra serieparametrarna till 8N2, och sedan skicka strängen i ett svep istället - har du testat detta?

Jag har själv ändrat till 8N2 i mitt projekt (eftersom det är mer "rätt", men egentligen borde det vara 9N1), och läsning funkar utmärkt.
Har dock inte försökt mig på skrivning än.

/J
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Ja, det kan nog vara lite konstigt, men fungerar gör det till 100% än så länge.

Min teori varför det fungerar är att genom att skicka enstaka bytes så kommer seriella klockan på mottagarsidan i synk vid start av varje byte. Stoppbiten saknas och då kanske mottagaren timear ut. Kan ju också vara buggig kod på mottagarsidan som gör att det är ren tur att det fungerar.

Ska testa att skicka som en sträng med 8N2.

Har även lött på två 680Ohms bias-resistorer också för att få väldefinierade state som du tipsade om. Jag borde ha läst databladet mer noggrant.

Minns inte vad du körde med för hårdvara @jah, men om du använder ESP-01 så kan jag skicka ett mönsterkort till dig om du är intresserad.
På mönsterkortet finns även en egen RG10 för att även kunna styra på inomhustemperaturen. PM:a i så fall.
jah
Inlägg: 659
Blev medlem: 16 januari 2009, 13:00:08
Ort: Eslöv

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av jah »

Tack för erbjudandet, men har dels redan en hemmabyggd RG10, och sedan har jag även ingång för pulser från elmätaren på mitt kort, så bättre erbjuda någon annan det isf.

Annars är ju ditt förstås mycket snyggare...

/J
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Jag har alltså 10 mönsterkort över så det är inga problem.
Är det någon annan som är intresserad så PM:a.

Edit: Jag har även fusion360-cad på passande låda om man vill skriva ut på 3d-skrivare.
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av ecenier »

Nu har jag testat med 8N2 att sända kommandot som sträng, och det fungerar inte. Däremot fungerar det även med 8N2 att skicka varje tecken för sig.
Behåller inställningen 8N2 eftersom det är rätt antal bitar som du säger.
Användarvisningsbild
Berrabongo
Inlägg: 601
Blev medlem: 3 oktober 2006, 15:17:12
Ort: Solna

Re: Läsa och skriva parametrar till Nibe Fighter 1235

Inlägg av Berrabongo »

Kan detta kort Funka med en F1245? då är jag intresserad av ett mönsterkort.
Skriv svar