Giter Site home page Giter Site logo

ebus-configuration's Introduction

Master build: Build Status


Community platform - ebus-configuration

This repository is used as a community share platform. Most changes to this repository should be included in further releases. Feel free to contribute new or changed files.

eBUS library

Download

Snapshots https://oss.sonatype.org/content/repositories/snapshots/de/cs-dev/ebus/ebus-configuration/

Release https://oss.sonatype.org/content/repositories/releases/de/cs-dev/ebus/ebus-configuration/

Maven

<dependency>
  <groupId>de.cs-dev.ebus</groupId>
  <artifactId>ebus-configuration</artifactId>
  <version>0.9.19</version>
</dependency>

Information about the format

ebus-configuration's People

Contributors

chrisp-git avatar csowada avatar dependabot[bot] avatar mikulaos avatar sven-s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ebus-configuration's Issues

Values from VRC700 not shown

Your Issue

In Things "Vaillant VRC 700 general (15)" many channels shows NaN. I think it is a new software version of the VRC700.

Your Heating System

Vailant VWF 58 - 118/4 (Heatpump)
VRC700/2 Controller
openHabian 2.5.4-1 on Raspberry Pi 3 B
adapter eBus (https://wiki.fhem.de/wiki/EBUS, potentionmeter adjustment with Linux Mint)

An example telegram

2020-05-09 21:51:04.761 [bus notice] <1008b51101018900093e3c500eff5c0000ff1700
2020-05-09 21:51:05.027 [bus notice] <1076b5110101160009ff3c500eff5c0000ff6400
2020-05-09 21:51:05.298 [bus notice] <1076b512030f0201510007e60200008017057d00
2020-05-09 21:51:05.573 [bus notice] <1008b51009000000ffffff070000520001019a00
2020-05-09 21:51:05.844 [bus notice] <1076b51009000000ffffff010000850001019a00
2020-05-09 21:51:14.734 [bus notice] <1008b51101018900093e3c500eff5c0000ff1700
2020-05-09 21:51:15.001 [bus notice] <1076b5110101160009ff3c500eff5c0000ff6400
2020-05-09 21:51:15.272 [bus notice] <1076b512030f0201510007e60200008017057d00
2020-05-09 21:51:15.546 [bus notice] <1008b51009000000ffffff070000520001019a00
2020-05-09 21:51:15.817 [bus notice] <1076b51009000000ffffff010000850001019a00
2020-05-09 21:51:24.747 [bus notice] <1008b51101018900093e3c500eff5c0000ff1700
2020-05-09 21:51:25.014 [bus notice] <1076b5110101160009ff3c500eff5c0000ff6400
2020-05-09 21:51:25.285 [bus notice] <1076b512030f0201510007e5020000801705e100
2020-05-09 21:51:25.558 [bus notice] <1008b51009000000ffffff070000520001019a00
2020-05-09 21:51:25.829 [bus notice] <1076b51009000000ffffff010000850001019a00
see log files

Your Device Table or master/slave addresses

Thing UID                                | Label                                    | Type      
----------------------------------+------------------------------------------+-----------
ebus:vrc700_zone1:68997b4c:15            | Vaillant VRC 700 zone 1 (15)             | node      
ebus:vrc700_zone2:68997b4c:15            | Vaillant VRC 700 zone 2 (15)             | node      
ebus:vrc700_hwc:68997b4c:15              | Vaillant VRC 700 hot water circuit (15)  | node      
ebus:vrc700_vac:68997b4c:15              | Vaillant VRC 700 (H)VAC (15)             | node      
ebus:std:68997b4c:08                     | eBUS Standard (08)                       | node      
ebus:bai:b209582a                        | Vaillant BAI00                           | node      
ebus:std:68997b4c:76                     | eBUS Standard (76)                       | node      
ebus:std:68997b4c:04                     | eBUS Standard (04)                       | node      
ebus:std:68997b4c:15                     | eBUS Standard (15)                       | node      
ebus:vrc700_hc2:68997b4c:15              | Vaillant VRC 700 heating circuit 2 (15)  | node      
ebus:vrc700_general:68997b4c:15          | Vaillant VRC 700 general (15)            | node      
ebus:bridge:68997b4c                     | eBUS Bridge                              | bridge    
ebus:vrc700_hc1:68997b4c:15              | Vaillant VRC 700 heating circuit 1 (15)  | nodesee 

Picture

...
ebus-resolved.txt
ebus-unresolved.txt
Slaves76-04-15
Slave08
slave15_example

Update for wolf-cwl-configuration.json feature support

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, [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"}
                ]
            }
        }
    ]
}

wolf.cwl400.json.zip

Wolf BWS cooling active state bit

Your Issue

The Wolf heat pump BWS has an extension cooling device. If cooling is active is indicated in an additional bit in the controller.d_values_rc2 states value starting from https://github.com/csowada/ebus-configuration/blob/master/src/main/resources/commands/common-configuration.json, line 190:

I extended this from

            {"name": "states", "type": "byte", "children": [
                {"name": "state_dhw", "type": "bit", "label": "State DHW active"},
                {"name": "state_hc", "type": "bit", "label": "State heating circuit active"}
            ]},

into this:

            {"name": "states", "type": "byte", "children": [
                {"name": "state_dhw", "type": "bit", "label": "State DHW active"},
                {"name": "state_hc", "type": "bit", "label": "State heating circuit active"},
                {"name": "state_unknown_0x04", "type": "bit", "label": "unknown 0x04"},
                {"name": "state_unknown_0x08", "type": "bit", "label": "unknown 0x08"},
                {"name": "state_unknown_0x10", "type": "bit", "label": "unknown 0x10"},
                {"name": "state_cooling", "type": "bit", "label": "State cooling active"},
                {"name": "state_unknown_0x40", "type": "bit", "label": "unknown 0x40"},
                {"name": "state_unknown_0x80", "type": "bit", "label": "unknown 0x80"}
            ]},

With this settings the cooling state can be linked in the openhab things settings to a item which shows if cooling is active or not.

Your Heating System

Wolf BWS-1-08 with Wolf cooling extension BKM.

An example telegram

10 03 08 00 08 00 05 00 1C 80 E0 00 0A 11 00 AA

openhab> openhab:ebus resolve "10 03 08 00 08 00 05 00 1C 80 E0 00 0A 11 00 AA"

Check and unescape telegram


Original data : 10 03 08 00 08 00 05 00 1C 80 E0 00 0A 11 00 AA
Unescaped data: 10 03 08 00 08 00 05 00 1C 80 E0 00 0A 11 00 AA

Analyse the telegram


10 03 08 00 08 00 05 00 1C 80 E0 00 0A 11 00 AA
^^--------------------------------------------- Source address | Type: Master | 10
^^------------------------------------------ Destination address | Type: Master | 03
^^ ^^------------------------------------ Command | | 08 00
^^--------------------------------- Master Data Length | Length: 8 | 08
^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^--------- Master Data | | 00 05 00 1C 80 E0 00 0A
^^------ Master CRC | | 11
^^--- 00 Slave ACK

Resolve the telegram


Found 1 command method(s) for this telegram.

Values from command 'controller.d_values_rc2' with method 'GET' from collection 'std'
state_unknown_0x08 = false
temp_d_dhw = 10
temp_outside = 28
temp_d_boiler = 5
states = 224
state_cooling = true
state_unknown_0x80 = true
state_dhw = false
state_unknown_0x40 = true
performance_forced = NULL
state_hc = false
state_unknown_0x10 = false
state_unknown_0x04 = false

Your Device Table or master/slave addresses

openhab:ebus devices

MA | SA | Identifier | Device | Manufacture | ID | Firmware | Hardware | Last Activity
---+----+----------------+----------------+----------------------+----+------------+------------+---------------------
FF | 04 | | | eBUS Library | | null | null | ---
| 51 | 01 14 00 10 00 | --- | G. Kromschröder AG | 50 | 2.08 | null | Sun Jan 07 15:08:48 CET 2024
FF | 04 | | | eBUS Library | | null | null | Sun Jan 07 15:08:45 CET 2024
0F | 14 | | --- | null | | null | null | Sun Jan 07 15:08:04 CET 2024
10 | 15 | 01 18 00 00 00 | --- | G. Kromschröder AG | 50 | 2.04 | null | Sun Jan 07 15:08:45 CET 2024
70 | 75 | 01 18 00 00 00 | --- | G. Kromschröder AG | 50 | 2.04 | null | Sun Jan 07 15:08:48 CET 2024
30 | 35 | 01 18 00 00 00 | --- | G. Kromschröder AG | 50 | 2.04 | null | Sun Jan 07 15:07:38 CET 2024
03 | 08 | 01 1E 00 5A 40 | --- | Wolf GmbH | 19 | 40.01 | 0 | Sun Jan 07 15:08:45 CET 2024
F1 | F6 | 01 18 00 00 00 | --- | G. Kromschröder AG | 50 | 2.04 | null | Sun Jan 07 15:08:46 CET 2024

MA = Master Address / SA = Slave Address / ID = Manufacture ID

Help needed to read vr_71 SensorData1 (and similar)

SensorData1 is transmitted from VR 71 regularly - i want to include some of the sensor values (S1-S7) into openHAB and I'm not able to get a working configuration for this.
Need help...

Heating System

Vaillant VWF 114 with VRC700 controller
Vaillant VR 71
...

An example telegram

vr_71 SensorData1 = 21.12;19.88;19.25;-;20.38;-;-;40 3c

ebusctl read -h 26B5230106
1052013e0132010080450100800080403c

Your Device Table or master/slave addresses

MA | SA | Identifier     | Device         | Manufacture               | ID | Firmware   | Hardware   | Last Activity  
---+----+----------------+----------------+----------------------+----+------------+------------+---------------------
FF | 04 |                | <interface>    | eBUS Library              |    | null       | null       | ---            
FF | 04 |                | <interface>    | eBUS Library              |    | null       | null       | Sat Apr 04 14:37:22 CEST 2020
10 | 15 |                | ---            | null                      |    | null       | null       | Sat Apr 04 14:37:22 CEST 2020
31 | 36 |                | ---            | null                      |    | null       | null       | Sat Apr 04 14:37:22 CEST 2020
   | 26 | 56 52 5F 37 31 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 1.04       | 5.03       | Sat Apr 04 14:37:22 CEST 2020
71 | 76 | 56 57 5A 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 3.07       | 4.03       | Sat Apr 04 14:37:22 CEST 2020
03 | 08 |                | ---            | null                      |    | null       | null       | Sat Apr 04 14:37:22 CEST 2020
----------------------------------------------------------------------------------------------------------------------

Typo in setter ac.fan_step0 / ac.fan_step1 / ac.fan_step2 / ac.fan_step3 in config file wolf-cwl-configuration.json

Bug in setter for CWL300/400

Hi @csowada,

I tested your new binding, works well.

However, as you may remember, I was the one sending you the config for the CWL400. In context of changing the binding, I also changed to your config file. In general works fine, but there is one bug/typo.

In https://github.com/csowada/ebus-configuration/blob/master/src/main/resources/commands/wolf-cwl-configuration.json, we have the following code for ac.fan_step0, ac.fan_step1, ac.fan_step2, and ac.fan_step3:

        {   
            "label":    "Fan Step X",
            "id":       "ac.fan_stepX",

            "get": {
                "command": "40 50",
                "master": [
                    {"type": "static", "default": "03"}
                ],
                "slave": [
                    {"name": "fan_stepX", "type": "uint", "label":"Current Value", "reverseByteOrder": true, "format":"%4dm³/h"},   
                    {"name": "min", "type": "uint", "label":"Minimum", "reverseByteOrder": true, "format":"%4dm³/h"},   
                    {"name": "max", "type": "uint", "label":"Maximum", "reverseByteOrder": true, "format":"%4dm³/h"},   
                    {"name": "step", "type": "uint", "label":"Step", "reverseByteOrder": true, "format":"%4dm³/h"},   
                    {"name": "factory_default", "type": "uint", "label":"Factory Default", "reverseByteOrder": true, "format":"%4dm³/h"}
               ]
            },

            "set": {
                "command": "40 80",
                "master": [
                    {"type": "static", "default": "03"},
                    {"name": "cur", "type": "uint", "label":"Current Value", "reverseByteOrder": true, "min": 50, "max": 400, "step": 5, "format":"%4dm³/h"}   
                ]
            }
        },

The setter still uses my old name cur instead of the one you set fan_stepX. By that, I can read but not write. As far as I can see, that only affects the steps.

Lüftungsanlage CWL 400 Excellent

Leave out the rest, as the problem should be obvious. Thanks!

Some telegrams are unresolved

Copy of issue csowada/openhab2-addons#5


After update with Openhab 2.5 from ebus-2.4.0.RC7b to ebus-2.5.1-5:
3 telegrams are listed in ebus-unresolved. To compare them the telegrams after the update, and before the update (with additional info of mapping):
In addition my exact ebus-version of the log-entries.
´´´
29.01.2020 21:48 FF 15 B5 24 06 02 00 00 00 3D 00 48 00 08 01 00 3D 00 63 0E 00 00 84 00
29.01.2020 14:10 FF 15 B5 24 06 02 00 00 00 3D 00 48 00 08 01 00 3D 00 63 0E 00 00 84 00 GET > vrc700_general.gen.solar_yield_total

29.01.2020 21:48 FF ED B5 09 03 29 3B 00 0B 00 04 3B 00 90 90 D2 00
29.01.2020 14:11 FF ED B5 09 03 29 3B 00 0B 00 04 3B 00 90 90 D2 00 GET > custom-vms02.YieldCurrentYear

29.01.2020 21:58 FF ED B5 09 03 29 56 00 E4 00 06 56 00 63 0E 00 00 6D 00
29.01.2020 14:11 FF ED B5 09 03 29 56 00 E4 00 06 56 00 63 0E 00 00 6D 00 GET > custom-vms02.YieldTotal

2020-01-29 21:48:27.748 [INFO ] [internal.things.EBusTypeProviderImpl] - Load custom configuration file 'file:///etc/openhab2/vaillant-vms02-configuration.json' ...
2020-01-29 21:48:28.530 [WARN ] [internal.things.EBusTypeProviderImpl] - eBUS command boiler.control.setopdata only contains a setter channel!
2020-01-29 21:48:29.860 [INFO ] [ing.ebus.internal.EBusHandlerFactory] - Use eBUS binding 2.5.1.202001291838 [eBUS core: 1.0.5.202001291834, eBUS configuration: 1.0.5.202001291835]
2020-01-29 21:48:29.934 [INFO ] [ing.ebus.internal.EBusHandlerFactory] - eBUS core -> timestamp 202001291834, commit: #3d1c915, build-no: #null
2020-01-29 21:48:30.008 [INFO ] [ing.ebus.internal.EBusHandlerFactory] - eBUS configuration -> timestamp 202001291835, commit: #3f20d94, build-no: #null

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.