Skip to content

Update for wolf-cwl-configuration.json feature support #13

Open
@LuiSauberhorn

Description

@LuiSauberhorn

Support of CWL is very limited. I extended the json file wolf-cwl-configuration.json to support more functionality.

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, opensource@cs-dev.de",
                     "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"}
                ]
            }
        }
    ]
}

wolf.cwl400.json.zip

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions