Wolf ism8i heating system EBUS adapter TCP decoder

This will open a TCP socket on port 12004 and wait for a Wolf ism8i heating system module to connect. The module will send data values on change and in certain intervals (usually at least every 30 minutes). The flow will create a response message. Without response the ism8 module would resend the messages up to 5 times for each data value. The flow also contains an inject node that will request all data values from the ism8i module once.

It's possible that the module sends several values in one message that would be put into an array in the payload. I've never observed this up to now.

This has only been tested in my personal environment (along with BWL-1S). It's possible I've missed to decode some data values but I guess it will greatly help to get it up and running. Some content and naming is in german as Wolf heating systems are probably mainly used in germany. Currently only reading values is supported. Settings values is not part of the flow.

[{"id":"f2a1d6eead8fd07b","type":"inject","z":"5a36bf91ec141089","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[6,32,240,128,0,22,4,0,0,0,240,6,0,184,0,1,0,184,3,2,138,35]","payloadType":"json","x":1630,"y":1900,"wires":[["809de886a8b0748c"]]},{"id":"dc6754e9a9ff0918","type":"tcp in","z":"5a36bf91ec141089","name":"","server":"server","host":"","port":"12004","datamode":"stream","datatype":"buffer","newline":"","topic":"","trim":false,"base64":false,"tls":"","x":1620,"y":1840,"wires":[["812e0fe9463aadc0"]]},{"id":"812e0fe9463aadc0","type":"function","z":"5a36bf91ec141089","name":"ism8i decoder","func":"const data = msg.payload\nif (data == null || data.length < 13) {\n    return null\n}\n\nconst mainService = data[10]\nconst subService = data[11]\n\n//invalid main service or sub service\nif(mainService != 0xF0 || subService != 0x06) {\n    return null\n}\n\nconst numberOfDataPoints = data[14] << 8 | data[15]\nconst dataPoints = [];\nvar currentPosition = 16;\nconst DATAPOINT_DEF = flow.get(\"WOLF_DATAPOINTS\")\nconst UNKNOWN_DATAPOINT_DEF = flow.get(\"UNKNOWN_DATAPOINT\")\nfor(let i = 0; i < numberOfDataPoints; i++) {\n    const dataPointId = data[currentPosition] << 8 | data[currentPosition+1]\n    const dataPointLength = data[currentPosition+3]\n    var dataPointRawValue = 0x00;\n    currentPosition+=4;\n    for (let dataPointByte = 0; dataPointByte < dataPointLength; dataPointByte++) {\n        dataPointRawValue = dataPointRawValue << 8 | data[currentPosition]\n        currentPosition++\n    }\n    \n    const dataPointDefinition = DATAPOINT_DEF.get(dataPointId) || UNKNOWN_DATAPOINT_DEF\n    const dataPointValue = dataPointDefinition.typeConverter(dataPointRawValue)\n    \n    dataPoints.push({\n        \"id\": dataPointId,\n        \"device\": dataPointDefinition.device,\n        \"description\": dataPointDefinition.description,\n        \"value\": dataPointValue\n    })\n}\nvar responseMsg = { payload: Buffer.from([0x06, 0x20, 0xF0, 0x80, 0x00, 0x11, 0x04, 0x00, 0x00, 0x00, 0xF0, 0x86, data[12], data[13], 0x00, 0x00, 0x00]) };\nvar unknownDatapointMsg = null\nif(numberOfDataPoints == 1) {\n    if (dataPoints[0].device == \"\") {\n        unknownDatapointMsg = { payload: dataPoints[0] };\n        msg = null\n    }\n    else {\n        msg.payload = dataPoints[0]\n    }\n\n}\nelse {\n    msg.payload = dataPoints\n}\n\n\nreturn [msg, unknownDatapointMsg, responseMsg];","outputs":3,"timeout":0,"noerr":0,"initialize":"const PDT_KNX_FLOAT = value => {\n    //MEEEEMMM MMMMMMMM \n    const e = (value & 0x7800) >> 11\n    const isNegative = (value & 0x8000) != 0\n    //m two's complement\n    var m = value & 0x07FF\n    if (isNegative) {\n        m -= 2048\n    }\n    return (0.01 * m) * Math.pow(2, e)\n}\n\nconst PDT_BINARY_INFORMATION = value => {\n    return (value & 0x01)\n}\n\nconst PDT_ENUM8 = value => {\n    return (value & 0xFF)\n}\n\nconst PDT_LONG = value => {\n    return (value & 0xFFFFFFFF)\n}\n\nconst PDT_SCALING = value => {\n    return value / 255 * 100\n}\n\nconst PDT_UNSIGNED_CHAR = value => {\n    return value & 0xFF\n}\n\nconst PDT_UNSIGNED_INT = value => {\n    return value & 0xFFFF\n}\n\nconst DPT_VALUE_TEMP = value => {\n    return { \"value\": PDT_KNX_FLOAT(value), \"unit\": \"°C\" }\n}\n\nconst DPT_VALUE_TEMPD = value => {\n    return { \"value\": PDT_KNX_FLOAT(value), \"unit\": \"K\" }\n}\n\nconst DPT_POWER = value => {\n    return { \"value\": PDT_KNX_FLOAT(value), \"unit\": \"kW\" }\n}\n\nconst DPT_VALUE_PRES = value => {\n    //Pa -> Bar\n    return { \"value\": (PDT_KNX_FLOAT(value) / 100000), \"unit\": \"bar\" }\n}\n\nconst DPT_SWITCH = value => {\n    const binaryInfo = PDT_BINARY_INFORMATION(value)\n    const onOff = binaryInfo > 0 ? \"On\" : \"Off\"\n    return { \"value\": onOff, \"unit\": \"\" }\n}\n\nconst DPT_BOOL = value => {\n    const binaryInfo = PDT_BINARY_INFORMATION(value)\n    return { \"value\": binaryInfo > 0, \"unit\": \"\" }\n}\n\nconst DPT_ENABLE = value => {\n    const binaryInfo = PDT_BINARY_INFORMATION(value)\n    const enableDisable = binaryInfo > 0 ? \"Enable\" : \"Disable\"\n    return { \"value\": enableDisable, \"unit\": \"\" }\n}\n\nconst DPT_OPEN_CLOSE = value => {\n    const binaryInfo = PDT_BINARY_INFORMATION(value)\n    const openClose = binaryInfo > 0 ? \"Close\" : \"Open\"\n    return { \"value\": openClose, \"unit\": \"\" }\n}\n\nconst DPT_SCALING = value => {\n    const scaling = PDT_SCALING(value)\n    return { \"value\": scaling, \"unit\": \"%\" }\n}\n\nconst DPT_HVACCONTRMODE_WOLF = value => {\n    const enumVal = PDT_ENUM8(value)\n    const modes = new Map([\n        [0, \"Schornsteinfeger\"],\n        [1, \"Betrieb\"],\n        [6, \"Standby\"],\n        [7, \"Test/GLT-Betrieb\"],\n        [11, \"Frostschutz\"],\n        [12, \"Kalibrierung\"]\n    ]);\n    return { \"value\": modes.get(enumVal) || \"reserved\", \"unit\": \"\" }\n}\n\nconst DPT_VALUE1_COUNT = value => {\n    return { \"value\": PDT_UNSIGNED_CHAR(value), \"unit\": \"pulse\" }\n}\n\nconst DPT_VALUE2_COUNT = value => {\n    return { \"value\": PDT_UNSIGNED_INT(value), \"unit\": \"pulse\" }\n}\n\nconst DPT_ACTIVE_ENERGY = value => {\n    return { \"value\": PDT_LONG(value), \"unit\": \"Wh\" }\n}\n\nconst DPT_ACTIVE_ENERGY_KWH = value => {\n    return { \"value\": PDT_LONG(value), \"unit\": \"kWh\" }\n}\n\nconst DPT_FLOW_RATE = value => {\n    return { \"value\": PDT_LONG(value), \"unit\": \"m³/h\" }\n}\n\nflow.set(\"WOLF_DATAPOINTS\", new Map([\n    [1, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Störung\" }],\n    [2, { \"typeConverter\": DPT_HVACCONTRMODE_WOLF, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Betriebsart\" }],\n    [3, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Modulationsgrad/Brennerleistung\" }],\n    [4, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Kesseltemperatur\" }],\n    [5, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Sammlertemperatur\" }],\n    [6, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Rücklauftemperatur\" }],\n    [7, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Warmwassertemperatur\" }],\n    [8, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Außentemperatur\" }],\n    [9, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Brenner / Flamme\" }],\n    [10, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Heizkreispumpe\" }],\n    [11, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Speicherladepumpe\" }],\n    [12, { \"typeConverter\": DPT_OPEN_CLOSE, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status 3-Wege-Umschaltventil\" }],\n    [13, { \"typeConverter\": DPT_VALUE_PRES, \"device\": \"Heizgerät(1) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Anlagendruck\" }],\n    [14, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Störung\" }],\n    [15, { \"typeConverter\": DPT_HVACCONTRMODE_WOLF, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Betriebsart\" }],\n    [16, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Modulationsgrad/Brennerleistung\" }],\n    [17, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Kesseltemperatur\" }],\n    [18, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Sammlertemperatur\" }],\n    [19, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Rücklauftemperatur\" }],\n    [20, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Warmwassertemperatur\" }],\n    [21, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Außentemperatur\" }],\n    [22, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Brenner / Flamme\" }],\n    [23, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Heizkreispumpe\" }],\n    [24, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Speicherladepumpe\" }],\n    [25, { \"typeConverter\": DPT_OPEN_CLOSE, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status 3-Wege-Umschaltventil\" }],\n    [26, { \"typeConverter\": DPT_VALUE_PRES, \"device\": \"Heizgerät(2) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Anlagendruck\" }],\n    [27, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Störung\" }],\n    [28, { \"typeConverter\": DPT_HVACCONTRMODE_WOLF, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Betriebsart\" }],\n    [29, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Modulationsgrad/Brennerleistung\" }],\n    [30, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Kesseltemperatur\" }],\n    [31, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Sammlertemperatur\" }],\n    [32, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Rücklauftemperatur\" }],\n    [33, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Warmwassertemperatur\" }],\n    [34, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Außentemperatur\" }],\n    [35, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Brenner / Flamme\" }],\n    [36, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Heizkreispumpe\" }],\n    [37, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Speicherladepumpe\" }],\n    [38, { \"typeConverter\": DPT_OPEN_CLOSE, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status 3-Wege-Umschaltventil\" }],\n    [39, { \"typeConverter\": DPT_VALUE_PRES, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Anlagendruck\" }],\n    [40, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Störung\" }],\n    [41, { \"typeConverter\": DPT_HVACCONTRMODE_WOLF, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Betriebsart\" }],\n    [42, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Modulationsgrad/Brennerleistung\" }],\n    [43, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Kesseltemperatur\" }],\n    [44, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Sammlertemperatur\" }],\n    [45, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Rücklauftemperatur\" }],\n    [46, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Warmwassertemperatur\" }],\n    [47, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Außentemperatur\" }],\n    [48, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Brenner / Flamme\" }],\n    [49, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Heizkreispumpe\" }],\n    [50, { \"typeConverter\": DPT_SWITCH, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status Speicherladepumpe\" }],\n    [51, { \"typeConverter\": DPT_OPEN_CLOSE, \"device\": \"Heizgerät(3) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Status 3-Wege-Umschaltventil\" }],\n    [52, { \"typeConverter\": DPT_VALUE_PRES, \"device\": \"Heizgerät(4) TOB, CGB-2, MGK-2, COB-2 oder TGB-2\", \"description\": \"Anlagendruck\" }],\n    [53, { \"typeConverter\": DPT_SWITCH, \"device\": \"Systembedienmodul\", \"description\": \"Störung\" }],\n    [54, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Systembedienmodul\", \"description\": \"Außentemperatur\" }],\n    [55, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Raumtemperatur\" }],\n    [56, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Warmwassersolltemperatur\" }],\n    [59, { \"typeConverter\": DPT_SWITCH, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Heizkreis Zeitprogramm 1\" }],\n    [60, { \"typeConverter\": DPT_SWITCH, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Heizkreis Zeitprogramm 2\" }],\n    [61, { \"typeConverter\": DPT_SWITCH, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Heizkreis Zeitprogramm 3\" }],\n    [62, { \"typeConverter\": DPT_SWITCH, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Warmwasser Zeitprogramm 1\" }],\n    [63, { \"typeConverter\": DPT_SWITCH, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Warmwasser Zeitprogramm 2\" }],\n    [64, { \"typeConverter\": DPT_SWITCH, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Warmwasser Zeitprogramm 3\" }],\n    [65, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Sollwertkorrektur\" }],\n    [66, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Direkter Heizkreis + direktes Warmwasser\", \"description\": \"Sparfaktor\" }],\n    [68, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Raumtemperatur\" }],\n    [69, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Warmwassersolltemperatur\" }],\n    [72, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Mischer Zeitprogramm 1\" }],\n    [73, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Mischer Zeitprogramm 2\" }],\n    [74, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Mischer Zeitprogramm 3\" }],\n    [75, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Warmwasser Zeitprogramm 1\" }],\n    [76, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Warmwasser Zeitprogramm 2\" }],\n    [77, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Warmwasser Zeitprogramm 3\" }],\n    [78, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Sollwertkorrektur\" }],\n    [79, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Mischerkreis 1 + Warmwasser 1\", \"description\": \"Sparfaktor\" }],\n    [81, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Raumtemperatur\" }],\n    [82, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Warmwassersolltemperatur\" }],\n    [85, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Mischer Zeitprogramm 1\" }],\n    [86, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Mischer Zeitprogramm 2\" }],\n    [87, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Mischer Zeitprogramm 3\" }],\n    [88, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Warmwasser Zeitprogramm 1\" }],\n    [89, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Warmwasser Zeitprogramm 2\" }],\n    [90, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Warmwasser Zeitprogramm 3\" }],\n    [91, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Sollwertkorrektur\" }],\n    [92, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Mischerkreis 2 + Warmwasser 2\", \"description\": \"Sparfaktor\" }],\n    [94, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Raumtemperatur\" }],\n    [95, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Warmwassersolltemperatur\" }],\n    [98, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Mischer Zeitprogramm 1\" }],\n    [99, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Mischer Zeitprogramm 2\" }],\n    [100, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Mischer Zeitprogramm 3\" }],\n    [101, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Warmwasser Zeitprogramm 1\" }],\n    [102, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Warmwasser Zeitprogramm 2\" }],\n    [103, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Warmwasser Zeitprogramm 3\" }],\n    [104, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Sollwertkorrektur\" }],\n    [105, { \"typeConverter\": DPT_VALUE_TEMPD, \"device\": \"Mischerkreis 3 + Warmwasser 3\", \"description\": \"Sparfaktor\" }],\n    [106, { \"typeConverter\": DPT_SWITCH, \"device\": \"Kaskadenmodul\", \"description\": \"Störung\" }],\n    [107, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Kaskadenmodul\", \"description\": \"Sammlertemperatur\" }],\n    [108, { \"typeConverter\": DPT_SCALING, \"device\": \"Kaskadenmodul\", \"description\": \"Gesamtmodulation\" }],\n    [109, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Kaskadenmodul\", \"description\": \"Vorlauftemperatur Mischerkreis\" }],\n    [110, { \"typeConverter\": DPT_SWITCH, \"device\": \"Kaskadenmodul\", \"description\": \"Status Mischerkreispumpe\" }],\n    [111, { \"typeConverter\": DPT_ENABLE, \"device\": \"Kaskadenmodul\", \"description\": \"Status Ausgang A1\" }],\n    [112, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Kaskadenmodul\", \"description\": \"Eingang E1\" }],\n    [113, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Kaskadenmodul\", \"description\": \"Eingang E2\" }],\n    [114, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischermodul 1\", \"description\": \"Störung\" }],\n    [115, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 1\", \"description\": \"Warmwassertemperatur\" }],\n    [116, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 1\", \"description\": \"Vorlauftemperatur Mischerkreis\" }],\n    [117, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischermodul 1\", \"description\": \"Status Mischerkreispumpe\" }],\n    [118, { \"typeConverter\": DPT_ENABLE, \"device\": \"Mischermodul 1\", \"description\": \"Status Ausgang A1\" }],\n    [119, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 1\", \"description\": \"Eingang E1\" }],\n    [120, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 1\", \"description\": \"Eingang E2\" }],\n    [121, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischermodul 2\", \"description\": \"Störung\" }],\n    [122, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 2\", \"description\": \"Warmwassertemperatur\" }],\n    [123, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 2\", \"description\": \"Vorlauftemperatur Mischerkreis\" }],\n    [124, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischermodul 2\", \"description\": \"Status Mischerkreispumpe\" }],\n    [125, { \"typeConverter\": DPT_ENABLE, \"device\": \"Mischermodul 2\", \"description\": \"Status Ausgang A1\" }],\n    [126, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 2\", \"description\": \"Eingang E1\" }],\n    [127, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 2\", \"description\": \"Eingang E2\" }],\n    [128, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischermodul 3\", \"description\": \"Störung\" }],\n    [129, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 3\", \"description\": \"Warmwassertemperatur\" }],\n    [130, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 3\", \"description\": \"Vorlauftemperatur Mischerkreis\" }],\n    [131, { \"typeConverter\": DPT_SWITCH, \"device\": \"Mischermodul 3\", \"description\": \"Status Mischerkreispumpe\" }],\n    [132, { \"typeConverter\": DPT_ENABLE, \"device\": \"Mischermodul 3\", \"description\": \"Status Ausgang A1\" }],\n    [133, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 3\", \"description\": \"Eingang E1\" }],\n    [134, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Mischermodul 3\", \"description\": \"Eingang E2\" }],\n    [135, { \"typeConverter\": DPT_SWITCH, \"device\": \"Solarmodul\", \"description\": \"Störung\" }],\n    [136, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Solarmodul\", \"description\": \"Warmwassertemperatur Solar 1\" }],\n    [137, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Solarmodul\", \"description\": \"Temperatur Kollektor 1\" }],\n    [138, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Solarmodul\", \"description\": \"Eingang E1\" }],\n    [140, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Solarmodul\", \"description\": \"Eingang E3\" }],\n    [141, { \"typeConverter\": DPT_SWITCH, \"device\": \"Solarmodul\", \"description\": \"Status Solarkreispumpe SKP1\" }],\n    [142, { \"typeConverter\": DPT_ENABLE, \"device\": \"Solarmodul\", \"description\": \"Status Ausgang A1\" }],\n    [143, { \"typeConverter\": DPT_ENABLE, \"device\": \"Solarmodul\", \"description\": \"Status Ausgang A2\" }],\n    [144, { \"typeConverter\": DPT_ENABLE, \"device\": \"Solarmodul\", \"description\": \"Status Ausgang A3\" }],\n    [145, { \"typeConverter\": DPT_ENABLE, \"device\": \"Solarmodul\", \"description\": \"Status Ausgang A4\" }],\n    [147, { \"typeConverter\": DPT_POWER, \"device\": \"Solarmodul\", \"description\": \"Aktuelle Leistung\" }],\n    [148, { \"typeConverter\": DPT_SWITCH, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Störung\" }],\n    [150, { \"typeConverter\": DPT_SWITCH, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Zeitprogramm 1\" }],\n    [151, { \"typeConverter\": DPT_SWITCH, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Zeitprogramm 2\" }],\n    [152, { \"typeConverter\": DPT_SWITCH, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Zeitprogramm 3\" }],\n    [153, { \"typeConverter\": DPT_SWITCH, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Zeitweise Intensivlüftung\" }],\n    [158, { \"typeConverter\": DPT_SWITCH, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Zeitweiser Feuchteschutz\" }],\n    [163, { \"typeConverter\": DPT_SCALING, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Lüftungsstufe\" }],\n    [164, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Ablufttemperatur (CWL Excellent)/Fortlufttemperatur (CWL 2)\" }],\n    [165, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Frischlufttemperatur (CWL Excellent)/Zulufttemperatur(CWL 2)\" }],\n    [166, { \"typeConverter\": DPT_FLOW_RATE, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Luftdurchsatz Zuluft\" }],\n    [167, { \"typeConverter\": DPT_FLOW_RATE, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Luftdurchsatz Abluft\" }],\n    [168, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Bypass Initialisierung\" }],\n    [169, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Bypass öffnet/offen\" }],\n    [170, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Bypass schließt/geschlossen\" }],\n    [171, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Bypass Fehler\" }],\n    [172, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Frost Status: Initialisierung/Warte\" }],\n    [173, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Frost Status: Kein Frost\" }],\n    [174, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Frost Status: Vorwärmer\" }],\n    [175, { \"typeConverter\": DPT_BOOL, \"device\": \"CWL-2/CWL Excellent\", \"description\": \"Frost Status: Fehler/Unausgeglichen\" }],\n    [176, { \"typeConverter\": DPT_SWITCH, \"device\": \"BWL-1S/CHA\", \"description\": \"Störung\" }],\n    [177, { \"typeConverter\": DPT_HVACCONTRMODE_WOLF, \"device\": \"BWL-1S/CHA\", \"description\": \"Betriebsart\" }],\n    [178, { \"typeConverter\": DPT_POWER, \"device\": \"BWL-1S/CHA\", \"description\": \"Heizleistung\" }],\n    [179, { \"typeConverter\": DPT_POWER, \"device\": \"BWL-1S/CHA\", \"description\": \"Kühlleistung\" }],\n    [180, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BWL-1S/CHA\", \"description\": \"Kesseltemperatur\" }],\n    [181, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BWL-1S/CHA\", \"description\": \"Sammlertemperatur\" }],\n    [182, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BWL-1S/CHA\", \"description\": \"Rücklauftemperatur\" }],\n    [183, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BWL-1S/CHA\", \"description\": \"Warmwassertemperatur\" }],\n    [184, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BWL-1S/CHA\", \"description\": \"Außentemperatur\" }],\n    [185, { \"typeConverter\": DPT_SWITCH, \"device\": \"BWL-1S/CHA\", \"description\": \"Status Heizkreispumpe\" }],\n    [186, { \"typeConverter\": DPT_SWITCH, \"device\": \"BWL-1S/CHA\", \"description\": \"Status Zubringer-/Heizkreispumpe\" }],\n    [187, { \"typeConverter\": DPT_OPEN_CLOSE, \"device\": \"BWL-1S/CHA\", \"description\": \"Status 3-Wege-Umschaltventil HZ/WW\" }],\n    [188, { \"typeConverter\": DPT_OPEN_CLOSE, \"device\": \"BWL-1S/CHA\", \"description\": \"Status 3-Wege-Umschaltventil HZ/K\" }],\n    [189, { \"typeConverter\": DPT_SWITCH, \"device\": \"BWL-1S/CHA\", \"description\": \"Status E-Heizung\" }],\n    [190, { \"typeConverter\": DPT_VALUE_PRES, \"device\": \"BWL-1S/CHA\", \"description\": \"Anlagendruck\" }],\n    [191, { \"typeConverter\": DPT_POWER, \"device\": \"BWL-1S/CHA\", \"description\": \"Leistungsaufnahme\" }],\n    [192, { \"typeConverter\": DPT_POWER, \"device\": \"CWL Excellent/CWL-2\", \"description\": \"Filterwarnung aktiv\" }],\n    [193, { \"typeConverter\": DPT_POWER, \"device\": \"CWL Excellent/CWL-2\", \"description\": \"Filterwarnung zurücksetzen\" }],\n    [194, { \"typeConverter\": DPT_POWER, \"device\": \"Systembedienmodul\", \"description\": \"1x Warmwasserladung (global)\" }],\n    [195, { \"typeConverter\": DPT_ACTIVE_ENERGY, \"device\": \"Solarmodul\", \"description\": \"Tagesertrag\" }],\n    [196, { \"typeConverter\": DPT_ACTIVE_ENERGY, \"device\": \"Solarmodul\", \"description\": \"Gesamtertrag\" }],\n    [197, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 1\", \"description\": \"Abgastemperatur\" }],\n    [198, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät 1\", \"description\": \"Leistungsvorgabe\" }],\n    [199, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 1\", \"description\": \"Kesselsolltemperaturvorgabe\" }],\n    [200, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 2\", \"description\": \"Abgastemperatur\" }],\n    [201, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät 2\", \"description\": \"Leistungsvorgabe\" }],\n    [202, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 2\", \"description\": \"Kesselsolltemperaturvorgabe\" }],\n    [203, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 3\", \"description\": \"Abgastemperatur\" }],\n    [204, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät 3\", \"description\": \"Leistungsvorgabe\" }],\n    [205, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 3\", \"description\": \"Kesselsolltemperaturvorgabe\" }],\n    [206, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 4\", \"description\": \"Abgastemperatur\" }],\n    [207, { \"typeConverter\": DPT_SCALING, \"device\": \"Heizgerät 4\", \"description\": \"Leistungsvorgabe\" }],\n    [208, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 4\", \"description\": \"Kesselsolltemperaturvorgabe\" }],\n    [209, { \"typeConverter\": DPT_SCALING, \"device\": \"Kaskadenmodul\", \"description\": \"Gesamtmodulationsgradvorgabe\" }],\n    [210, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Kaskadenmodul\", \"description\": \"Sammlersolltemperaturvorgabe\" }],\n    [211, { \"typeConverter\": DPT_SWITCH, \"device\": \"Kaskadenmodul\", \"description\": \"Betriebsart Heizen/Kühlen\" }],\n    [251, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"BM-2\", \"description\": \"Erkennung verfügbare Heiz-/Mischerkreise\" }],\n    [338, { \"typeConverter\": DPT_SWITCH,       \"device\": \"BWL-1S/CHA\", \"description\": \"Zubringer Heizkreispumpe?\" }],\n    [346, { \"typeConverter\": DPT_SCALING,      \"device\": \"BWL-1S/CHA\", \"description\": \"Unklarer Scale?\" }],\n    [355, { \"typeConverter\": DPT_VALUE2_COUNT, \"device\": \"BM-2\", \"description\": \"Erkennung verfügbare Geräte 1\" }],\n    [356, { \"typeConverter\": DPT_VALUE2_COUNT, \"device\": \"BM-2\", \"description\": \"Erkennung verfügbare Geräte 2\" }],\n    [357, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"BM-2\", \"description\": \"Unterscheidung Heizgerätetyp (HG1)\" }],\n    [358, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"BM-2\", \"description\": \"Erkennung vorhandener Warmwasserkreise\" }],\n    [359, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"BM-2\", \"description\": \"Unterscheidung Heizgerätetyp (HG2)\" }],\n    [360, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"BM-2\", \"description\": \"Unterscheidung Heizgerätetyp (HG3)\" }],\n    [361, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"BM-2\", \"description\": \"Unterscheidung Heizgerätetyp (HG4)\" }],\n    [364, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 1\", \"description\": \"Kesselsolltemperatur\" }],\n    [365, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 2\", \"description\": \"Kesselsolltemperatur\" }],\n    [366, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 3\", \"description\": \"Kesselsolltemperatur\" }],\n    [367, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"Heizgerät 4\", \"description\": \"Kesselsolltemperatur\" }],\n    [368, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BM-2\", \"description\": \"Vorlaufsolltemperatur dir. HK\" }],\n    [369, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BM-2\", \"description\": \"Mischersolltemperatur MK1\" }],\n    [370, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BM-2\", \"description\": \"Mischersolltemperatur MK2\" }],\n    [371, { \"typeConverter\": DPT_VALUE_TEMP, \"device\": \"BM-2\", \"description\": \"Mischersolltemperatur MK3\" }],\n    [372, { \"typeConverter\": DPT_VALUE1_COUNT, \"device\": \"Allgemein\", \"description\": \"Zuletzt aktiver Störcode\" }],\n]))\n\nflow.set(\"UNKNOWN_DATAPOINT\", { \"typeConverter\": value => { return { \"value\": value, \"unit\": \"\" } }, \"device\": \"\", \"description\": \"Unknown datapoint\" })","finalize":"","libs":[],"x":1920,"y":1840,"wires":[["0f46b6289cc28a39"],[],["11bdf2ae28debb90"]]},{"id":"809de886a8b0748c","type":"function","z":"5a36bf91ec141089","name":"Request für alle Werte erzeugen","func":"msg.payload = Buffer.from([0x06, 0x20, 0xF0, 0x80, 0x00, 0x16, 0x04, 0x00, 0x00, 0x00, 0xF0, 0xD0])\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1870,"y":1900,"wires":[["11bdf2ae28debb90"]]},{"id":"11bdf2ae28debb90","type":"tcp out","z":"5a36bf91ec141089","name":"","host":"","port":"","beserver":"reply","base64":false,"end":false,"tls":"","x":2130,"y":1900,"wires":[]}]

Flow Info

Created 1 year, 8 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • function (x2)
  • inject (x1)
  • tcp in (x1)
  • tcp out (x1)

Tags

Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option