Error on reading Relay 2 from a Deltasol CS Plus using VBus

38 views
Skip to first unread message

Didac Vives

unread,
Sep 13, 2023, 1:12:21 PM9/13/23
to RESOL VBus

Dear Daniel,

I’m traying to read the Vbus values from Deltasol CS Plus, but I can’t read the Relay2 value and I always get -1.

--------Decoded VBus data-------------

Destination: 10

Source: 2211

Protocol Version: 1

Comand: 10

Checksum:33

---------Values-------

Sensor 1: 26.8

Sensor 2: 26.6

Sensor 3: 26.8

Sensor 4: 26.3

Relay 1: 100

Relay 2: -1

----END--------

Destination: 10
Source: 2211
Protocol Version: 1
Command: 100
Framecount: 10
Checksum: 33
------Values------
Sensor 1: 26.80
Sensor 2: 26.60
Sensor 3: 26.80
Sensor 4: 26.30
Relay 1: 100
Relay 2: -1
Destination: 10
Source: 2211
Protocol Version: 1
Command: 100
Framecount: 10
Checksum: 33
------Values------
Sensor 1: 26.80
Sensor 2: 26.60
Sensor 3: 26.80
Sensor 4: 26.30
Relay 1: 100
Relay 2: -1

I can read Sensor1_temp, Sensor2_temp, Sensor3_temp, Sensor4_temp and Relay1.

As I could no find the VBus protocol for the CS Plus in the file:

VBus-Protokollspezification_en_270111.pdf

I’m using this code from:

https://github.com/FatBeard/vbus-arduino-domoticz

ArduinoVBusDecoder.ino

But I have modified it to read this part of the code as it do no have the option for the Deltasol CS Plus:

 

F = FOffset;

     

              Septet = Buffer[F + FSeptet];

              InjectSeptet(Buffer, F, 4);

     

              // 'collector1' Temperatur Sensor 1, 15 bits, factor 0.1 in C

              Sensor1_temp = CalcTemp(Buffer[F + 1], Buffer[F]);

              // 'store1' Temperature sensor 2, 15 bits, factor 0.1 in C

              Sensor2_temp = CalcTemp(Buffer[F + 3], Buffer[F + 2]);

     

              //*******************  Frame 2  *******************

              F = FOffset + FLength;

     

              Septet = Buffer[F + FSeptet];

              InjectSeptet(Buffer, F, 4);

     

              Sensor3_temp = CalcTemp(Buffer[F + 1], Buffer[F]);

              Sensor4_temp = CalcTemp(Buffer[F + 3], Buffer[F + 2]);

     

              //*******************  Frame 3  *******************

              F = FOffset + FLength * 2;

     

              Septet = Buffer[F + FSeptet];

              InjectSeptet(Buffer, F, 4);

     

              Relay1 = (Buffer[F] );

              Relay2 = (Buffer[F + 1]);

             

              ErrorMask  = Buffer[F + 2]; //This is the notification

              Scheme    =  Buffer[F + 3];

       

              //*******************  Frame 4  *******************

              F = FOffset + FLength * 3;

     

              Septet = Buffer[F + FSeptet];

              InjectSeptet(Buffer, F, 4);

     

              OperatingHoursRelais1 = Buffer[F + 1] << 8 | Buffer[F];

              OperatingHoursRelais2    =  Buffer[F + 3] << 8 | Buffer[F + 2];;

     

              //*******************  Frame 5  *******************

              F = FOffset + FLength * 4;

     

              Septet = Buffer[F + FSeptet];

              InjectSeptet(Buffer, F, 4);

     

              HeatQuantity = (Buffer[F + 1] << 8 | Buffer[F]) + (Buffer[F + 3] << 8 | Buffer[F + 2]) * 1000;

     

              //*******************  Frame 6  *******************

              F = FOffset + FLength * 5;

     

              Septet = Buffer[F + FSeptet];

              InjectSeptet(Buffer, F, 4);

     

              HeatQuantity = HeatQuantity + (Buffer[F + 1] << 8 | Buffer[F]) * 1000000;

       

     

              SystemTime = Buffer[F + 3] << 8 | Buffer[F + 2];

 

 Thanks in advance,

Dídac

Daniel Wippermann

unread,
Oct 4, 2023, 11:44:32 PM10/4/23
to resol...@googlegroups.com
Hi Didac,

the second pump speed in not stored in the byte following the first pump speed, so you’ll need to extract that info slightly differently.

Since the CS controller you have is newer than the 2011 VBus spec PDF, you cannot find information in there. But the newer documentation can be found here:


As you can see in the first link the pump speed for relay 2 is not located at byte offset 9 like you expected, but at offset 12 (which is in the next VBus frame).

I hope this answers your question. If you have any additional questions don’t hesitate to contact me again.

Best regards,
Daniel





--
Sent from Canary

--
You received this message because you are subscribed to the Google Groups "RESOL VBus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to resol-vbus+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/resol-vbus/b1a1c74c-bfb6-4a4d-ad7d-211328fe142fn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages