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.

Help Modbus Datatype
#1
Hi Everybody,

I try to conect my Tecalor / Stiebel Eltron heat pump to my KNX System over Modbus TCP IP. With the Modbus Profile Generator I generated a Profile which works, but I got Problems white the Modbus Datatype and Bus Datatype. When I read the Inputregister its wrong, for Exampel it shows 23C in reality its 6,7C.

I don't Understand which datatype I need to use. The documentation of my Heat Pump:

   

Code:
{
  "manufacturer": "Tecalor",
  "description": "THZ",
  "mapping": [
    {
      "name": "RAUMISTTEMP",
      "address": 1,
      "bus_datatype": "float16",
      "datatype": "float16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "RAUMSOLLTEMP",
      "address": 2,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "AUSSENTEMPERATUR",
      "address": 7,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "ISTWERT-HK1",
      "address": 8,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "SOLLWERT-HK1",
      "address": 9,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "VORLAUFTEMP",
      "address": 12,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "RUECKLAUFTEMP",
      "address": 13,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "WW -ISTTEMP",
      "address": 16,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "WW -SOLLTEMP",
      "address": 17,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "inputregister",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "RAUMTEMP-TAG",
      "address": 1002,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "register",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "RAUMTEMP-NACHT",
      "address": 1003,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "register",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "WW -SOLL-TAG",
      "address": 1012,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "register",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "WW -SOLL-NACHT",
      "address": 1013,
      "bus_datatype": "int16",
      "datatype": "int16",
      "type": "register",
      "units": "\u00B0C",
      "value_multiplier": 0.1
    },
    {
      "name": "STUFE -TAG",
      "address": 1018,
      "bus_datatype": "uint16",
      "datatype": "uint16",
      "type": "register",
      "units": "Stufe",
      "value_multiplier": 1
    },
    {
      "name": "STUFE -NACHT",
      "address": 1019,
      "bus_datatype": "uint16",
      "datatype": "uint16",
      "type": "register",
      "units": "Stufe",
      "value_multiplier": 1
    }
  ]
}
Reply
#2
For values that have a 0.1 multiplier use these settings:
Code:
"bus_datatype": "float16",
"datatype": "int16"
Use read test to verify that the addresses are correct (set the datatype to int16 not float16). Sometimes you have to subtract 1 from the documented addresses.
Reply
#3
Hi admin,

thank you for the fast answer.

Its what you said, the register adress is shiftet... when I want to read adress 7 I need to read adress 6.
Reply


Forum Jump: