I'm new to the forum but have been using an OTWG from nodoshop for over a year. And it all works perfectly.

Lately, I've been trying to understand how the OTGW communicates with the monitor program. If I telnet into the otgw I can see the same payload as what appears in the monitor program (log). I can kinda understand how the messages are coded.

It seems to be hex and the last 4 digits, but you have to make sure if it's a floating hex or int. The webpage about the otgw is well written but lacks examples on how to decode this data.

Example :

- Code: Select all
`09:11:41.249452 R807A0000 Read-Data DHW pump/valve operation hours: 0`

09:11:41.345618 B407A1B44 Read-Ack DHW pump/valve operation hours: 6980

80 or 40 Not sure what this reperesents ?

7A base 16 --> 122 base 10 --> DHW pump/valve operation hours (MsgID=122)

1B44 base 16 --> 6980 base 10

And

- Code: Select all
`09:11:48.534414 R80190000 Read-Data Boiler water temperature: 0.00`

09:11:48.627821 B40192733 Read-Ack Boiler water temperature: 39.20

Again 80 or 40 ?

19 base 16 --> 25 base 10 --> Boiler water temperature (MsgID=25) - Printed as a floating point value

27.33 base 16 --> 39.19921875 base 10 --> 39.20

In the example :

- Code: Select all
`09:11:44.379532 R801C0000 Read-Data Return water temperature: 0.00`

09:11:44.516667 BC01C2666 Read-Ack Return water temperature: 38.40

What does C0 represent? That the clock is set for MHz or that comfort mode is engaged?

I understand what R and B mean, I can also change the setpoint with the "CS=xx" with xx being an int value.

Am I missing something?

The plan is to decode these values in python and create my own control loop using a Smith predictor and feedback loop to create a robust (possible H_inf or even H_2) control loop. Part of my degree is control theory so this is a part-time hobby which I enjoy.

Again thanks for any help !

Matthew