I have an CWL and started to integrate it. Several additional functions are implemented now. I will continue on working on the file but have reached a good interim state:
{
"id": "cwl",
"vendor": "Wolf",
"label": "Wolf CWL",
"description": "Wolf CWL 300/400",
"authors": ["Christian Sowada, [email protected]",
"Lui Sauberhorn"],
"identification": ["08 16 00 22 03"],
"commands":
[
{
"label": "Temperature Inside",
"id": "ac.temp.inside",
"command": "40 22",
"get": {
"master": [
{"type": "static", "default": "07"}
],
"slave": [
{"name": "temp.inside", "type": "int", "label":"Temperature Inside", "reverseByteOrder": true, "factor": 0.1, "min": 1, "max": 60, "format":"%.1f°C"}
]
}
},
{
"label": "Temperature Outside",
"id": "ac.temp.outside",
"command": "40 22",
"get": {
"master": [
{"type": "static", "default": "08"}
],
"slave": [
{"name": "temp.outside", "type": "int", "label":"Temperature Outside", "reverseByteOrder": true, "factor": 0.1, "min": -60, "max": 100, "format":"%.1f°C"}
]
}
},
{
"label": "Air Flow In",
"id": "ac.airflow.in.real",
"command": "40 22",
"get": {
"master": [
{"type": "static", "default": "0b"}
],
"slave": [
{"name": "airflow.in.real", "type": "int", "label":"Temperature Inside", "reverseByteOrder": true, "factor": 1, "min": 0, "max": 1000, "format":"%4dm³/h"}
]
}
},
{
"label": "Air FLow Out",
"id": "ac.airflow.out.real",
"command": "40 22",
"get": {
"master": [
{"type": "static", "default": "0c"}
],
"slave": [
{"name": "airflow.out.real", "type": "int", "label":"Temperature Outside", "reverseByteOrder": true, "factor": 1, "min": 0, "max": 1000, "format":"%4dm³/h"}
]
}
},
{
"label": "Filter Status",
"id": "ac.filter.dirty",
"command": "40 22",
"get": {
"master": [
{"type": "static", "default": "18"}
],
"slave": [
{"name": "filter.dirty", "type": "int", "label":"Filter Dirty", "reverseByteOrder": true, "factor": 1, "min": 0, "max": 1, "format":"%d"}
]
}
},
{
"label": "ByPass Status",
"id": "ac.bypass.status",
"command": "40 22",
"get": {
"master": [
{"type": "static", "default": "0E"}
],
"slave": [
{"name": "bypass.status", "type": "int", "label":"Bypass Status", "reverseByteOrder": true, "factor": 1, "min": 0, "max": 5, "format":"%d",
"mapping": {
"0": "Initialize", "1": "Opening", "2": "Closing", "3": "Open", "4": "Closed", "5": "Error"
}
}
]
}
},
{
"label": "Fan Step 0",
"id": "ac.fan.step.0",
"get": {
"command": "40 50",
"master": [
{"type": "static", "default": "21"}
],
"slave": [
{"name": "cur", "type": "int", "label":"Fan Step 0 Current", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "min", "type": "int", "label":"Fan Step 0 Min", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "max", "type": "int", "label":"Fan Step 0 Max", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "stp", "type": "int", "label":"Fan Step 0 Step", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "fac", "type": "int", "label":"Fan Step 0 Factory", "reverseByteOrder": true, "format":"%4dm³/h"}
]
},
"set": {
"command": "40 80",
"master": [
{"type": "static", "default": "21"},
{"name": "cur", "type": "int", "label":"Fan Step 0 Current", "reverseByteOrder": true, "min": 50, "max": 400, "step": 5, "format":"%4dm³/h"}
]
}
},
{
"label": "Fan Step 1",
"id": "ac.fan.step.1",
"get": {
"command": "40 50",
"master": [
{"type": "static", "default": "01"}
],
"slave": [
{"name": "cur", "type": "int", "label":"Fan Step 1 Current", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "min", "type": "int", "label":"Fan Step 1 Min", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "max", "type": "int", "label":"Fan Step 1 Max", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "stp", "type": "int", "label":"Fan Step 1 Step", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "fac", "type": "int", "label":"Fan Step 1 Factory", "reverseByteOrder": true, "format":"%4dm³/h"}
]
},
"set": {
"command": "40 80",
"master": [
{"type": "static", "default": "01"},
{"name": "cur", "type": "int", "label":"Fan Step 1 Current", "reverseByteOrder": true, "min": 50, "max": 400, "step": 5, "format":"%4dm³/h"}
]
}
},
{
"label": "Fan Step 2",
"id": "ac.fan.step.2",
"get": {
"command": "40 50",
"master": [
{"type": "static", "default": "02"}
],
"slave": [
{"name": "cur", "type": "int", "label":"Fan Step 2 Current", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "min", "type": "int", "label":"Fan Step 2 Min", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "max", "type": "int", "label":"Fan Step 2 Max", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "stp", "type": "int", "label":"Fan Step 2 Step", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "fac", "type": "int", "label":"Fan Step 2 Factory", "reverseByteOrder": true, "format":"%4dm³/h"}
]
},
"set": {
"command": "40 80",
"master": [
{"type": "static", "default": "02"},
{"name": "cur", "type": "int", "label":"Fan Step 2 Current", "reverseByteOrder": true, "min": 50, "max": 400, "step": 5, "format":"%4dm³/h"}
]
}
},
{
"label": "Fan Step 3 Get",
"id": "ac.fan.step.3.get",
"get": {
"command": "40 50",
"master": [
{"type": "static", "default": "03"}
],
"slave": [
{"name": "cur", "type": "int", "label":"Fan Step 3 Current", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "min", "type": "int", "label":"Fan Step 3 Min", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "max", "type": "int", "label":"Fan Step 3 Max", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "stp", "type": "int", "label":"Fan Step 3 Step", "reverseByteOrder": true, "format":"%4dm³/h"},
{"name": "fac", "type": "int", "label":"Fan Step 3 Factory", "reverseByteOrder": true, "format":"%4dm³/h"}
]
},
"set": {
"command": "40 80",
"master": [
{"type": "static", "default": "03"},
{"name": "cur", "type": "int", "label":"Fan Step 3 Current", "reverseByteOrder": true, "min": 50, "max": 400, "step": 5, "format":"%4dm³/h"}
]
}
},
{
"label": "Fan Step",
"id": "ac.fan.step",
"command": "40 a1",
"set": {
"master": [
{"name": "mode", "type": "uint", "label":"Fan Step Mode", "reverseByteOrder": true, "min": 0, "max": 3, "step": 1, "format":"%d"}
]
}
}
]
}