This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Modus Profile write multiple coils
#1
Hi,

I have a Astra Pool heat pump and i would like some help on the profile.
Can i write multiple coils via the profile? What datatatype should i use on the object? e.g. coils 0x211 & 0x212
   

Thanks in advance
Reply
#2
Using multiple coils like this is not supported. You can use register with bitmask instead.
Reply
#3
(21.03.2022, 12:27)admin Wrote: Using multiple coils like this is not supported. You can use register with bitmask instead.

Would that work?


{ "name": "Heat Pump Mode bit1", "address": 33, "bus_datatype": "bool",  "datatype":"uint16", "type": "register", "value_bitmask":0x2, "write_bitmask": true, "writable":true},
{ "name": "Heat Pump Mode bit2", "address": 33, "bus_datatype": "bool",  "datatype":"uint16", "type": "register", "value_bitmask":0x4, "write_bitmask": true, "writable":true},

{ "name": "Heat Pump Control", "address": 33, "bus_datatype": "bool",  "datatype":"uint16", "type": "register", "value_bitmask":0x100, "write_bitmask": true, "writable":true},

{ "name": "Heat Pump Inverter Mode bit1", "address": 33, "bus_datatype": "bool",  "datatype":"uint16", "type": "register", "value_bitmask":0x200, "write_bitmask": true, "writable":true},
{ "name": "Heat Pump Inverter Mode bit2", "address": 33, "bus_datatype": "bool",  "datatype":"uint16", "type": "register", "value_bitmask":0x400, "write_bitmask": true, "writable":true},
Reply
#4
It will work but you would still have separate control and status for all bits.

Use this instead. 2-bit values will be mapped to 1-byte objects where you can define custom values for the 0..3 range.
Code:
{ "name": "Heat Pump Mode", "address": 33, "bus_datatype": "uint8", "datatype": "uint16", "type": "register", "value_bitmask": 0x6, "write_bitmask": true, "writable": true },

{ "name": "Heat Pump Control", "address": 33, "bus_datatype": "bool", "datatype": "uint16", "type": "register", "value_bitmask": 0x100, "write_bitmask": true, "writable": true },

{ "name": "Heat Pump Inverter Mode", "address": 33, "bus_datatype": "uint8", "datatype": "uint16", "type": "register", "value_bitmask": 0x600, "write_bitmask": true, "writable": true },
Reply
#5
(21.03.2022, 13:53)admin Wrote: It will work but you would still have separate control and status for all bits.

Use this instead. 2-bit values will be mapped to 1-byte objects where you can define custom values for the 0..3 range.
Code:
{ "name": "Heat Pump Mode", "address": 33, "bus_datatype": "uint8", "datatype": "uint16", "type": "register", "value_bitmask": 0x6, "write_bitmask": true, "writable": true },

{ "name": "Heat Pump Control", "address": 33, "bus_datatype": "bool", "datatype": "uint16", "type": "register", "value_bitmask": 0x100, "write_bitmask": true, "writable": true },

{ "name": "Heat Pump Inverter Mode", "address": 33, "bus_datatype": "uint8", "datatype": "uint16", "type": "register", "value_bitmask": 0x600, "write_bitmask": true, "writable": true },

Thank you
Reply


Forum Jump: