diff --git a/bundles/org.openhab.binding.guntamatic/README.md b/bundles/org.openhab.binding.guntamatic/README.md index 745b6ca3def..35ad6f124d7 100644 --- a/bundles/org.openhab.binding.guntamatic/README.md +++ b/bundles/org.openhab.binding.guntamatic/README.md @@ -4,7 +4,7 @@ The Guntamatic Binding can be used to monitor and control [Guntamatic Heating Sy ## Supported Things -The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System, running Firmware 3.2d. +The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System, running Firmware 3.3d. It should work for all other Guntamatic Heating Systems as well, that support the same web interface (Pellets, WoodChips, EnergyGrain as well as Log Heating Systems). ## Things @@ -13,13 +13,13 @@ Guntamatic Heating Systems supported as Thing Types: | Name | Thing Type ID | Heating System Type | Binding Development Status | | --------- | ------------- | -------------------- | ------------------------------------------------ | -| Biostar | `biostar` | Pellets | tested via 15kW, firmware 3.2d, German & English | +| Biostar | `biostar` | Pellets | tested via 15kW, firmware 3.3d, German & English | | Biosmart | `biosmart` | Logs | tested via 22kW, firmware 3.2f, German | | Powerchip | `powerchip` | WoodChips | tested via 100kW, firmware 3.2d, French | -| Powercorn | `powercorn` | EnergyGrain | untested | -| Biocom | `biocom` | Pellets | untested | -| Pro | `pro` | Pellets or WoodChips | untested | -| Therm | `therm` | Pellets | untested | +| Powercorn | `powercorn` | EnergyGrain | untested (no user feedback) | +| Biocom | `biocom` | Pellets | untested (no user feedback) | +| Pro | `pro` | Pellets or WoodChips | untested (no user feedback) | +| Therm | `therm` | Pellets | untested (no user feedback) | | Generic | `generic` | - | use, if none from above | ### Thing Configuration @@ -33,13 +33,13 @@ Guntamatic Heating Systems supported as Thing Types: ### Properties -| Property | Description | Supported | -| ----------------- | --------------------------------------------------- | ------------------------------------------------- | -| `extraWwHeat` | Parameter used by `controlExtraWwHeat` channels | all | -| `boilerApproval` | Parameter used by `controlBoilerApproval` channel | Biostar, Powerchip, Powercorn, Biocom, Pro, Therm | -| `heatCircProgram` | Parameter used by `controlHeatCircProgram` channels | all | -| `program` | Parameter used by `controlProgram` channel | all | -| `wwHeat` | Parameter used by `controlWwHeat` channels | all | +| Property | Description | Supported | +| ----------------- | ---------------------------------------------- | ------------------------------------------------- | +| `extraWwHeat` | Parameter used by `extra-ww-heat` channels | all | +| `boilerApproval` | Parameter used by `boiler-approval` channel | Biostar, Powerchip, Powercorn, Biocom, Pro, Therm | +| `heatCircProgram` | Parameter used by `heat-circ-program` channels | all | +| `program` | Parameter used by `program` channel | all | +| `wwHeat` | Parameter used by `ww-heat` channels | all | ## Channels @@ -47,151 +47,153 @@ Guntamatic Heating Systems supported as Thing Types: The Guntamatic Heating System can be controlled using the following channels: -| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced | -| ------------------------- | ------------------------------------------------------------------------------- | -------- | :--: | :-------------------: | :------: | :------: | -| `controlBoilerApproval` | Set Boiler Approval (`AUTO`, `OFF`, `ON`) | `String` | | 🔐 W1 | R/W | true | -| `controlProgram` | Set Program (`OFF`, `NORMAL`, `WARMWATER`, `MANUAL`[1](#f1)) | `String` | | 🔐 W1 | R/W | false | -| `controlHeatCircProgram0` | Set Heat Circle 0 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram1` | Set Heat Circle 1 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram2` | Set Heat Circle 2 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram3` | Set Heat Circle 3 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram4` | Set Heat Circle 4 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram5` | Set Heat Circle 5 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram6` | Set Heat Circle 6 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram7` | Set Heat Circle 7 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlHeatCircProgram8` | Set Heat Circle 8 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | -| `controlWwHeat0` | Trigger Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | -| `controlWwHeat1` | Trigger Warm Water Circle 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | -| `controlWwHeat2` | Trigger Warm Water Circle 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | -| `controlExtraWwHeat0` | Trigger Extra Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | -| `controlExtraWwHeat1` | Trigger Extra Warm Water Circle 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | -| `controlExtraWwHeat2` | Trigger Extra Warm Water Circle 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | +| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced | +| --------------------- | ------------------------------------------------------------------------------- | -------- | :--: | :-------------------: | :------: | :------: | +| `boiler-approval` | Set Boiler Approval (`AUTO`, `OFF`, `ON`)[1](#f1)) | `String` | | 🔐 W1 | R/W | true | +| `program` | Set Program (`OFF`, `NORMAL`, `WARMWATER`, `MANUAL`[2](#f2)) | `String` | | 🔐 W1 | R/W | false | +| `heat-circ-program-0` | Set Heat Circuit 0 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-1` | Set Heat Circuit 1 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-2` | Set Heat Circuit 2 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-3` | Set Heat Circuit 3 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-4` | Set Heat Circuit 4 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-5` | Set Heat Circuit 5 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-6` | Set Heat Circuit 6 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-7` | Set Heat Circuit 7 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `heat-circ-program-8` | Set Heat Circuit 8 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true | +| `ww-heat-0` | Trigger Warm Water Circuit 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | +| `ww-heat-1` | Trigger Warm Water Circuit 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | +| `ww-heat-2` | Trigger Warm Water Circuit 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | +| `extra-ww-heat-0` | Trigger Extra Warm Water Circuit 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | +| `extra-ww-heat-1` | Trigger Extra Warm Water Circuit 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | +| `extra-ww-heat-2` | Trigger Extra Warm Water Circuit 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true | -- 1) ... `MANUAL` is supported by Biostar, Powerchip, Powercorn, Biocom, Pro as well as Therm only [↩](#a1) +- 1) ... Channel is supported by Biostar, Powerchip, Powercorn, Biocom, Pro as well as Therm only [↩](#a1) +- 2) ... `MANUAL` is supported by Biostar, Powerchip, Powercorn, Biocom, Pro as well as Therm only [↩](#a2) #### Response of Control Channels - `{"ack":"confirmation message"}` ... in case of success - `{"err":"error message"}` ... in case of error -The reaction of the Guntamatic Heating System can be monitored via the corresponding data channel. E.g. `programHc1` if you triggered `controlHeatCircProgram1`. The data channel gets updated with the next cyclic update (according to the `refreshInterval` configuration). +The reaction of the Guntamatic Heating System can be monitored via the corresponding data channel. E.g. `program-hc-1` if you triggered `heat-circ-program-1`. The data channel gets updated with the next cyclic update (according to the `refreshInterval` configuration). -### Monitoring Channels +### Status Channels The Binding dynamically generates Channels, derived from the data provided from the actual Guntamatic Heating System. Example list of Channels using a Guntamatic Biostar 15kW Pellets Heating System running firmware 3.2d and Guntamatic System Language configured to English: -| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced | -| -------------------- | ---------------------- | ---------------------- | :--: | :-------------------: | :------: | :------: | -| `running` | Running | `String` | | 🔓 W0 | R/O | false | -| `outsideTemp` | Outside Temp. | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `blrTargetTemp` | Blr.Target Temp | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `boilerTemperature` | Boiler Temperature | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flueGasUtilisation` | Flue gas utilisation | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | -| `output` | Output | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | -| `returnTemp` | Return temp | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `co2Target` | CO2 Target | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | -| `co2Content` | CO2 Content | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | -| `returnTempTarget` | Return temp target | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `statusCode` | Status code | `Number` | | 🔐 W1 | R/O | false | -| `efficiency` | Efficiency | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | -| `extractorSystem` | Extractor System | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | -| `feedTurbine` | Feed Turbine | `String` | | 🔐 W1 | R/O | false | -| `dischargeMotor` | Discharge motor | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | -| `g1Target` | G1 Target | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | -| `bufferTop` | Buffer Top | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bufferMid` | Buffer Mid | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bufferBtm` | Buffer Btm | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `pumpHp0` | Pump HP0 | `Switch` | | 🔓 W0 | R/O | false | -| `dhw0` | DHW 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bDhw0` | B DHW 0 | `Switch` | | 🔓 W0 | R/O | false | -| `dhw1` | DHW 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bDhw1` | B DHW 1 | `Switch` | | 🔓 W0 | R/O | false | -| `dhw2` | DHW 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bDhw2` | B DHW 2 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc0` | Room Temp:HC 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `heatCirc0` | Heat Circ. 0 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc1` | Room Temp:HC 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowTarget1` | Flow Target 1 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `flowIs1` | Flow is 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `mixer1` | Mixer 1 | `String` | | 🔐 W1 | R/O | false | -| `heatCirc1` | Heat Circ. 1 | `Switch` | | 🔐 W1 | R/O | false | -| `roomTempHc2` | Room Temp:HC 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowTarget2` | Flow Target 2 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `flowIs2` | Flow is 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `mixer2` | Mixer 2 | `String` | | 🔐 W1 | R/O | false | -| `heatCirc2` | Heat Circ. 2 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc3` | Room Temp:HC 3 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `heatCirc3` | Heat Circ. 3 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc4` | Room Temp:HC 4 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowTarget4` | Flow Target 4 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `flowIs4` | Flow is 4 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `mixer4` | Mixer 4 | `String` | | 🔐 W1 | R/O | false | -| `heatCirc4` | Heat Circ. 4 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc5` | Room Temp:HC 5 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowTarget5` | Flow Target 5 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `flowIs5` | Flow is 5 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `mixer5` | Mixer 5 | `String` | | 🔐 W1 | R/O | false | -| `heatCirc5` | Heat Circ. 5 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc6` | Room Temp:HC 6 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `heatCirc6` | Heat Circ. 6 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc7` | Room Temp:HC 7 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowTarget7` | Flow Target 7 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `flowIs7` | Flow is 7 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `mixer7` | Mixer 7 | `String` | | 🔐 W1 | R/O | false | -| `heatCirc7` | Heat Circ. 7 | `Switch` | | 🔓 W0 | R/O | false | -| `roomTempHc8` | Room Temp:HC 8 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowTarget8` | Flow Target 8 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `flowIs8` | Flow is 8 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `mixer8` | Mixer 8 | `String` | | 🔐 W1 | R/O | false | -| `heatCirc8` | Heat Circ. 8 | `Switch` | | 🔓 W0 | R/O | false | -| `fuelLevel` | Fuel Level | `String` | | 🔐 W1 | R/O | false | -| `stb` | STB | `String` | | 🔐 W1 | R/O | false | -| `tks` | TKS | `String` | | 🔐 W1 | R/O | false | -| `boilerApproval` | Boiler approval | `Switch` | | 🔐 W1 | R/O | false | -| `programme` | Programme | `String` | | 🔓 W0 | R/O | false | -| `programHc0` | Program HC0 | `String` | | 🔓 W0 | R/O | false | -| `programHc1` | Program HC1 | `String` | | 🔓 W0 | R/O | false | -| `programHc2` | Program HC2 | `String` | | 🔓 W0 | R/O | false | -| `programHc3` | Program HC3 | `String` | | 🔓 W0 | R/O | false | -| `programHc4` | Program HC4 | `String` | | 🔓 W0 | R/O | false | -| `programHc5` | Program HC5 | `String` | | 🔓 W0 | R/O | false | -| `programHc6` | Program HC6 | `String` | | 🔓 W0 | R/O | false | -| `programHc7` | Program HC7 | `String` | | 🔓 W0 | R/O | false | -| `programHc8` | Program HC8 | `String` | | 🔓 W0 | R/O | false | -| `interuption0` | Interuption 0 | `String` | | 🔓 W0 | R/O | false | -| `interuption1` | Interuption 1 | `String` | | 🔓 W0 | R/O | false | -| `serial` | Serial | `Number` | | 🔓 W0 | R/O | false | -| `version` | Version | `String` | | 🔓 W0 | R/O | false | -| `runningTime` | Running Time | `Number:Time` | `h` | 🔓 W0 | R/O | false | -| `serviceHrs` | Service Hrs | `Number:Time` | `d` | 🔓 W0 | R/O | false | -| `emptyAshIn` | Empty ash in | `Number:Time` | `h` | 🔓 W0 | R/O | false | -| `flowIs0` | Flow is 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowIs3` | Flow is 3 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `flowIs6` | Flow is 6 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `fuelCounter` | Fuel counter | `Number:Volume` | `m³` | 🔐 W1 | R/O | false | -| `bufferLoad` | Buffer load. | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | -| `bufferTop0` | Buffer Top 0 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `bufferBtm0` | Buffer Btm 0 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `bufferTop1` | Buffer Top 1 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `bufferBtm1` | Buffer Btm 1 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `bufferTop2` | Buffer Top 2 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `bufferBtm2` | Buffer Btm 2 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | -| `bExtraWw0` | B extra-WW. 0 | `Switch` | | 🔐 W1 | R/O | false | -| `bExtraWw1` | B extra-WW. 1 | `Switch` | | 🔐 W1 | R/O | false | -| `bExtraWw2` | B extra-WW. 2 | `Switch` | | 🔐 W1 | R/O | false | -| `auxiliaryPump0` | Auxiliary pump 0 | `Switch` | | 🔐 W1 | R/O | false | -| `auxiliaryPump1` | Auxiliary pump 1 | `Switch` | | 🔐 W1 | R/O | false | -| `auxiliaryPump2` | Auxiliary pump 2 | `Switch` | | 🔐 W1 | R/O | false | -| `boilersConditionNo` | Boiler´s condition no. | `String` | | 🔐 W1 | R/O | false | -| `bufferT5` | Buffer T5 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bufferT6` | Buffer T6 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `bufferT7` | Buffer T7 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `extraWw0` | Extra-WW. 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `extraWw1` | Extra-WW. 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `extraWw2` | Extra-WW. 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | -| `grate` | Grate | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced | +|----------------------------|------------------------|------------------------|-:--:-|-:-------------------:-|-:------:-|-:------:-| +| `000-running` | Running | `String` | | 🔓 W0 | R/O | false | +| `001-outside-temp` | Outside Temp. | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `002-blr-target-temp` | Blr.Target Temp | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `003-boiler-temperature` | Boiler Temperature | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `004-flue-gas-utilisation` | Flue gas utilisation | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | +| `005-output` | Output | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| `006-return-temp` | Return temp | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `007-co2-target` | CO2 Target | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | +| `008-co2-content` | CO2 Content | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| `009-return-temp-target` | Return temp target | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `010-status-code` | Status code | `Number` | | 🔐 W1 | R/O | false | +| `011-efficiency` | Efficiency | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | +| `012-output` | Output | `Number:Dimensionless` | `%` | 🔐 W1 | R/O | false | +| `013-extractor-system` | Extractor System | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| `014-feed-turbine` | Feed Turbine | `String` | | 🔐 W1 | R/O | false | +| `015-discharge-motor` | Discharge motor | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| `016-g1-target` | G1 Target | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| `017-buffer-top` | Buffer Top | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `018-buffer-mid` | Buffer Mid | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `019-buffer-btm` | Buffer Btm | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `020-pump-hp0` | Pump HP0 | `Switch` | | 🔓 W0 | R/O | false | +| `021-dhw-0` | DHW 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `022-b-dhw-0` | B DHW 0 | `Switch` | | 🔓 W0 | R/O | false | +| `023-dhw-1` | DHW 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `024-b-dhw-1` | B DHW 1 | `Switch` | | 🔓 W0 | R/O | false | +| `025-dhw-2` | DHW 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `026-b-dhw-2` | B DHW 2 | `Switch` | | 🔓 W0 | R/O | false | +| `027-room-temp-hc-0` | Room Temp:HC 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `028-heat-circ-0` | Heat Circ. 0 | `Switch` | | 🔓 W0 | R/O | false | +| `029-room-temp-hc-1` | Room Temp:HC 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `030-flow-target-1` | Flow Target 1 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `031-flow-is-1` | Flow is 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `032-mixer-1` | Mixer 1 | `String` | | 🔐 W1 | R/O | false | +| `033-heat-circ-1` | Heat Circ. 1 | `Switch` | | 🔐 W1 | R/O | false | +| `034-room-temp-hc-2` | Room Temp:HC 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `035-flow-target-2` | Flow Target 2 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `036-flow-is-2` | Flow is 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `037-mixer-2` | Mixer 2 | `String` | | 🔐 W1 | R/O | false | +| `038-heat-circ-2` | Heat Circ. 2 | `Switch` | | 🔓 W0 | R/O | false | +| `039-room-temp-hc-3` | Room Temp:HC 3 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `040-heat-circ-3` | Heat Circ. 3 | `Switch` | | 🔓 W0 | R/O | false | +| `041-room-temp-hc-4` | Room Temp:HC 4 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `042-flow-target-4` | Flow Target 4 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `043-flow-is-4` | Flow is 4 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `044-mixer-4` | Mixer 4 | `String` | | 🔐 W1 | R/O | false | +| `045-heat-circ-4` | Heat Circ. 4 | `Switch` | | 🔓 W0 | R/O | false | +| `046-room-temp-hc-5` | Room Temp:HC 5 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `047-flow-target-5` | Flow Target 5 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `048-flow-is-5` | Flow is 5 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `049-mixer-5` | Mixer 5 | `String` | | 🔐 W1 | R/O | false | +| `050-heat-circ-5` | Heat Circ. 5 | `Switch` | | 🔓 W0 | R/O | false | +| `051-room-temp-hc-6` | Room Temp:HC 6 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `052-heat-circ-6` | Heat Circ. 6 | `Switch` | | 🔓 W0 | R/O | false | +| `053-room-temp-hc-7` | Room Temp:HC 7 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `054-flow-target-7` | Flow Target 7 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `055-flow-is-7` | Flow is 7 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `056-mixer-7` | Mixer 7 | `String` | | 🔐 W1 | R/O | false | +| `057-heat-circ-7` | Heat Circ. 7 | `Switch` | | 🔓 W0 | R/O | false | +| `058-room-temp-hc-8` | Room Temp:HC 8 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `059-flow-target-8` | Flow Target 8 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `060-flow-is-8` | Flow is 8 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `061-mixer-8` | Mixer 8 | `String` | | 🔐 W1 | R/O | false | +| `062-heat-circ-8` | Heat Circ. 8 | `Switch` | | 🔓 W0 | R/O | false | +| `065-fuel-level` | Fuel Level | `String` | | 🔐 W1 | R/O | false | +| `066-stb` | STB | `String` | | 🔐 W1 | R/O | false | +| `067-tks` | TKS | `String` | | 🔐 W1 | R/O | false | +| `068-boiler-approval` | Boiler approval | `Switch` | | 🔐 W1 | R/O | false | +| `069-programme` | Programme | `String` | | 🔓 W0 | R/O | false | +| `070-program-hc0` | Program HC0 | `String` | | 🔓 W0 | R/O | false | +| `071-program-hc1` | Program HC1 | `String` | | 🔓 W0 | R/O | false | +| `072-program-hc2` | Program HC2 | `String` | | 🔓 W0 | R/O | false | +| `073-program-hc3` | Program HC3 | `String` | | 🔓 W0 | R/O | false | +| `074-program-hc4` | Program HC4 | `String` | | 🔓 W0 | R/O | false | +| `075-program-hc5` | Program HC5 | `String` | | 🔓 W0 | R/O | false | +| `076-program-hc6` | Program HC6 | `String` | | 🔓 W0 | R/O | false | +| `077-program-hc7` | Program HC7 | `String` | | 🔓 W0 | R/O | false | +| `078-program-hc8` | Program HC8 | `String` | | 🔓 W0 | R/O | false | +| `079-interuption-0` | Interuption 0 | `String` | | 🔓 W0 | R/O | false | +| `080-interuption-1` | Interuption 1 | `String` | | 🔓 W0 | R/O | false | +| `081-serial` | Serial | `Number` | | 🔓 W0 | R/O | false | +| `082-version` | Version | `String` | | 🔓 W0 | R/O | false | +| `083-running-time` | Running Time | `Number:Time` | `h` | 🔓 W0 | R/O | false | +| `084-service-hrs` | Service Hrs | `Number:Time` | `d` | 🔓 W0 | R/O | false | +| `085-empty-ash-in` | Empty ash in | `Number:Time` | `h` | 🔓 W0 | R/O | false | +| `086-flow-is-0` | Flow is 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `087-flow-is-3` | Flow is 3 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `088-flow-is-6` | Flow is 6 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `089-fuel-counter` | Fuel counter | `Number:Volume` | `m³` | 🔐 W1 | R/O | false | +| `090-buffer-load` | Buffer load. | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | +| `091-buffer-top-0` | Buffer Top 0 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `092-buffer-btm-0` | Buffer Btm 0 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `093-buffer-top-1` | Buffer Top 1 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `094-buffer-btm-1` | Buffer Btm 1 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `095-buffer-top-2` | Buffer Top 2 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `096-buffer-btm-2` | Buffer Btm 2 | `Number:Temperature` | `°C` | 🔐 W1 | R/O | false | +| `097-b-extra-ww-0` | B extra-WW. 0 | `Switch` | | 🔐 W1 | R/O | false | +| `098-b-extra-ww-1` | B extra-WW. 1 | `Switch` | | 🔐 W1 | R/O | false | +| `099-b-extra-ww-2` | B extra-WW. 2 | `Switch` | | 🔐 W1 | R/O | false | +| `100-auxiliary-pump-0` | Auxiliary pump 0 | `Switch` | | 🔐 W1 | R/O | false | +| `101-auxiliary-pump-1` | Auxiliary pump 1 | `Switch` | | 🔐 W1 | R/O | false | +| `102-auxiliary-pump-2` | Auxiliary pump 2 | `Switch` | | 🔐 W1 | R/O | false | +| `104-boilers-condition-no` | Boiler´s condition no. | `String` | | 🔐 W1 | R/O | false | +| `108-buffer-t5` | Buffer T5 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `109-buffer-t6` | Buffer T6 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `110-buffer-t7` | Buffer T7 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `111-extra-ww-0` | Extra-WW. 0 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `112-extra-ww-1` | Extra-WW. 1 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `113-extra-ww-2` | Extra-WW. 2 | `Number:Temperature` | `°C` | 🔓 W0 | R/O | false | +| `114-grate` | Grate | `Number:Dimensionless` | `%` | 🔓 W0 | R/O | false | #### Security Access Levels @@ -210,131 +212,117 @@ Thing guntamatic:biostar:mybiostar "Guntamatic Biostar" [ hostname="192.1 ### Item File ```java -String Biostar_ControlBoilerApproval "Set Boiler Approval" { channel="guntamatic:biostar:mybiostar:controlBoilerApproval" } -String Biostar_ControlProgram "Set Program" { channel="guntamatic:biostar:mybiostar:controlProgram" } -String Biostar_ControlHeatCircProgram0 "Set Heat Circle 0 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram0" } -String Biostar_ControlHeatCircProgram1 "Set Heat Circle 1 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram1" } -String Biostar_ControlHeatCircProgram2 "Set Heat Circle 2 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram2" } -String Biostar_ControlHeatCircProgram3 "Set Heat Circle 3 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram3" } -String Biostar_ControlHeatCircProgram4 "Set Heat Circle 4 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram4" } -String Biostar_ControlHeatCircProgram5 "Set Heat Circle 5 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram5" } -String Biostar_ControlHeatCircProgram6 "Set Heat Circle 6 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram6" } -String Biostar_ControlHeatCircProgram7 "Set Heat Circle 7 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram7" } -String Biostar_ControlHeatCircProgram8 "Set Heat Circle 8 Program" { channel="guntamatic:biostar:mybiostar:controlHeatCircProgram8" } -String Biostar_ControlWwHeat0 "Trigger Warm Water Circle 0" { channel="guntamatic:biostar:mybiostar:controlWwHeat0" } -String Biostar_ControlWwHeat1 "Trigger Warm Water Circle 1" { channel="guntamatic:biostar:mybiostar:controlWwHeat1" } -String Biostar_ControlWwHeat2 "Trigger Warm Water Circle 2" { channel="guntamatic:biostar:mybiostar:controlWwHeat2" } -String Biostar_ControlExtraWwHeat0 "Trigger Extra Warm Water Circle 0" { channel="guntamatic:biostar:mybiostar:controlExtraWwHeat0" } -String Biostar_ControlExtraWwHeat1 "Trigger Extra Warm Water Circle 1" { channel="guntamatic:biostar:mybiostar:controlExtraWwHeat1" } -String Biostar_ControlExtraWwHeat2 "Trigger Extra Warm Water Circle 2" { channel="guntamatic:biostar:mybiostar:controlExtraWwHeat2" } -String Biostar_Running "Running" { channel="guntamatic:biostar:mybiostar:running" } -Number:Temperature Biostar_OutsideTemp "Outside Temp." { channel="guntamatic:biostar:mybiostar:outsideTemp" } -Number:Temperature Biostar_BlrTargetTemp "Blr.Target Temp" { channel="guntamatic:biostar:mybiostar:blrTargetTemp" } -Number:Temperature Biostar_BoilerTemperature "Boiler Temperature" { channel="guntamatic:biostar:mybiostar:boilerTemperature" } -Number:Dimensionless Biostar_FlueGasUtilisation "Flue gas utilisation" { channel="guntamatic:biostar:mybiostar:flueGasUtilisation" } -Number:Dimensionless Biostar_Output "Output" { channel="guntamatic:biostar:mybiostar:output" } -Number:Temperature Biostar_ReturnTemp "Return temp" { channel="guntamatic:biostar:mybiostar:returnTemp" } -Number:Dimensionless Biostar_Co2Target "CO2 Target" { channel="guntamatic:biostar:mybiostar:co2Target" } -Number:Dimensionless Biostar_Co2Content "CO2 Content" { channel="guntamatic:biostar:mybiostar:co2Content" } -Number:Temperature Biostar_ReturnTempTarget "Return temp target" { channel="guntamatic:biostar:mybiostar:returnTempTarget" } -Number Biostar_StatusCode "Status code" { channel="guntamatic:biostar:mybiostar:statusCode" } -Number:Dimensionless Biostar_Efficiency "Efficiency" { channel="guntamatic:biostar:mybiostar:efficiency" } -Number:Dimensionless Biostar_ExtractorSystem "Extractor System" { channel="guntamatic:biostar:mybiostar:extractorSystem" } -String Biostar_FeedTurbine "Feed Turbine" { channel="guntamatic:biostar:mybiostar:feedTurbine" } -Number:Dimensionless Biostar_DischargeMotor "Discharge motor" { channel="guntamatic:biostar:mybiostar:dischargeMotor" } -Number:Dimensionless Biostar_G1Target "G1 Target" { channel="guntamatic:biostar:mybiostar:g1Target" } -Number:Temperature Biostar_BufferTop "Buffer Top" { channel="guntamatic:biostar:mybiostar:bufferTop" } -Number:Temperature Biostar_BufferMid "Buffer Mid" { channel="guntamatic:biostar:mybiostar:bufferMid" } -Number:Temperature Biostar_BufferBtm "Buffer Btm" { channel="guntamatic:biostar:mybiostar:bufferBtm" } -Switch Biostar_PumpHp0 "Pump HP0" { channel="guntamatic:biostar:mybiostar:pumpHp0" } -Number:Temperature Biostar_Dhw0 "DHW 0" { channel="guntamatic:biostar:mybiostar:dhw0" } -Switch Biostar_BDhw0 "B DHW 0" { channel="guntamatic:biostar:mybiostar:bDhw0" } -Number:Temperature Biostar_Dhw1 "DHW 1" { channel="guntamatic:biostar:mybiostar:dhw1" } -Switch Biostar_BDhw1 "B DHW 1" { channel="guntamatic:biostar:mybiostar:bDhw1" } -Number:Temperature Biostar_Dhw2 "DHW 2" { channel="guntamatic:biostar:mybiostar:dhw2" } -Switch Biostar_BDhw2 "B DHW 2" { channel="guntamatic:biostar:mybiostar:bDhw2" } -Number:Temperature Biostar_RoomTempHc0 "Room Temp:HC 0" { channel="guntamatic:biostar:mybiostar:roomTempHc0" } -Switch Biostar_HeatCirc0 "Heat Circ. 0" { channel="guntamatic:biostar:mybiostar:heatCirc0" } -Number:Temperature Biostar_RoomTempHc1 "Room Temp:HC 1" { channel="guntamatic:biostar:mybiostar:roomTempHc1" } -Number:Temperature Biostar_FlowTarget1 "Flow Target 1" { channel="guntamatic:biostar:mybiostar:flowTarget1" } -Number:Temperature Biostar_FlowIs1 "Flow is 1" { channel="guntamatic:biostar:mybiostar:flowIs1" } -String Biostar_Mixer1 "Mixer 1" { channel="guntamatic:biostar:mybiostar:mixer1" } -Switch Biostar_HeatCirc1 "Heat Circ. 1" { channel="guntamatic:biostar:mybiostar:heatCirc1" } -Number:Temperature Biostar_RoomTempHc2 "Room Temp:HC 2" { channel="guntamatic:biostar:mybiostar:roomTempHc2" } -Number:Temperature Biostar_FlowTarget2 "Flow Target 2" { channel="guntamatic:biostar:mybiostar:flowTarget2" } -Number:Temperature Biostar_FlowIs2 "Flow is 2" { channel="guntamatic:biostar:mybiostar:flowIs2" } -String Biostar_Mixer2 "Mixer 2" { channel="guntamatic:biostar:mybiostar:mixer2" } -Switch Biostar_HeatCirc2 "Heat Circ. 2" { channel="guntamatic:biostar:mybiostar:heatCirc2" } -Number:Temperature Biostar_RoomTempHc3 "Room Temp:HC 3" { channel="guntamatic:biostar:mybiostar:roomTempHc3" } -Switch Biostar_HeatCirc3 "Heat Circ. 3" { channel="guntamatic:biostar:mybiostar:heatCirc3" } -Number:Temperature Biostar_RoomTempHc4 "Room Temp:HC 4" { channel="guntamatic:biostar:mybiostar:roomTempHc4" } -Number:Temperature Biostar_FlowTarget4 "Flow Target 4" { channel="guntamatic:biostar:mybiostar:flowTarget4" } -Number:Temperature Biostar_FlowIs4 "Flow is 4" { channel="guntamatic:biostar:mybiostar:flowIs4" } -String Biostar_Mixer4 "Mixer 4" { channel="guntamatic:biostar:mybiostar:mixer4" } -Switch Biostar_HeatCirc4 "Heat Circ. 4" { channel="guntamatic:biostar:mybiostar:heatCirc4" } -Number:Temperature Biostar_RoomTempHc5 "Room Temp:HC 5" { channel="guntamatic:biostar:mybiostar:roomTempHc5" } -Number:Temperature Biostar_FlowTarget5 "Flow Target 5" { channel="guntamatic:biostar:mybiostar:flowTarget5" } -Number:Temperature Biostar_FlowIs5 "Flow is 5" { channel="guntamatic:biostar:mybiostar:flowIs5" } -String Biostar_Mixer5 "Mixer 5" { channel="guntamatic:biostar:mybiostar:mixer5" } -Switch Biostar_HeatCirc5 "Heat Circ. 5" { channel="guntamatic:biostar:mybiostar:heatCirc5" } -Number:Temperature Biostar_RoomTempHc6 "Room Temp:HC 6" { channel="guntamatic:biostar:mybiostar:roomTempHc6" } -Switch Biostar_HeatCirc6 "Heat Circ. 6" { channel="guntamatic:biostar:mybiostar:heatCirc6" } -Number:Temperature Biostar_RoomTempHc7 "Room Temp:HC 7" { channel="guntamatic:biostar:mybiostar:roomTempHc7" } -Number:Temperature Biostar_FlowTarget7 "Flow Target 7" { channel="guntamatic:biostar:mybiostar:flowTarget7" } -Number:Temperature Biostar_FlowIs7 "Flow is 7" { channel="guntamatic:biostar:mybiostar:flowIs7" } -String Biostar_Mixer7 "Mixer 7" { channel="guntamatic:biostar:mybiostar:mixer7" } -Switch Biostar_HeatCirc7 "Heat Circ. 7" { channel="guntamatic:biostar:mybiostar:heatCirc7" } -Number:Temperature Biostar_RoomTempHc8 "Room Temp:HC 8" { channel="guntamatic:biostar:mybiostar:roomTempHc8" } -Number:Temperature Biostar_FlowTarget8 "Flow Target 8" { channel="guntamatic:biostar:mybiostar:flowTarget8" } -Number:Temperature Biostar_FlowIs8 "Flow is 8" { channel="guntamatic:biostar:mybiostar:flowIs8" } -String Biostar_Mixer8 "Mixer 8" { channel="guntamatic:biostar:mybiostar:mixer8" } -Switch Biostar_HeatCirc8 "Heat Circ. 8" { channel="guntamatic:biostar:mybiostar:heatCirc8" } -String Biostar_FuelLevel "Fuel Level" { channel="guntamatic:biostar:mybiostar:fuelLevel" } -String Biostar_Stb "STB" { channel="guntamatic:biostar:mybiostar:stb" } -String Biostar_Tks "TKS" { channel="guntamatic:biostar:mybiostar:tks" } -Switch Biostar_BoilerApproval "Boiler approval" { channel="guntamatic:biostar:mybiostar:boilerApproval" } -String Biostar_Programme "Programme" { channel="guntamatic:biostar:mybiostar:programme" } -String Biostar_ProgramHc0 "Program HC0" { channel="guntamatic:biostar:mybiostar:programHc0" } -String Biostar_ProgramHc1 "Program HC1" { channel="guntamatic:biostar:mybiostar:programHc1" } -String Biostar_ProgramHc2 "Program HC2" { channel="guntamatic:biostar:mybiostar:programHc2" } -String Biostar_ProgramHc3 "Program HC3" { channel="guntamatic:biostar:mybiostar:programHc3" } -String Biostar_ProgramHc4 "Program HC4" { channel="guntamatic:biostar:mybiostar:programHc4" } -String Biostar_ProgramHc5 "Program HC5" { channel="guntamatic:biostar:mybiostar:programHc5" } -String Biostar_ProgramHc6 "Program HC6" { channel="guntamatic:biostar:mybiostar:programHc6" } -String Biostar_ProgramHc7 "Program HC7" { channel="guntamatic:biostar:mybiostar:programHc7" } -String Biostar_ProgramHc8 "Program HC8" { channel="guntamatic:biostar:mybiostar:programHc8" } -String Biostar_Interuption0 "Interuption 0" { channel="guntamatic:biostar:mybiostar:interuption0" } -String Biostar_Interuption1 "Interuption 1" { channel="guntamatic:biostar:mybiostar:interuption1" } -Number Biostar_Serial "Serial" { channel="guntamatic:biostar:mybiostar:serial" } -String Biostar_Version "Version" { channel="guntamatic:biostar:mybiostar:version" } -Number:Time Biostar_RunningTime "Running Time" { channel="guntamatic:biostar:mybiostar:runningTime" } -Number:Time Biostar_ServiceHrs "Service Hrs" { channel="guntamatic:biostar:mybiostar:serviceHrs" } -Number:Time Biostar_EmptyAshIn "Empty ash in" { channel="guntamatic:biostar:mybiostar:emptyAshIn" } -Number:Temperature Biostar_FlowIs0 "Flow is 0" { channel="guntamatic:biostar:mybiostar:flowIs0" } -Number:Temperature Biostar_FlowIs3 "Flow is 3" { channel="guntamatic:biostar:mybiostar:flowIs3" } -Number:Temperature Biostar_FlowIs6 "Flow is 6" { channel="guntamatic:biostar:mybiostar:flowIs6" } -Number:Volume Biostar_FuelCounter "Fuel counter" { channel="guntamatic:biostar:mybiostar:fuelCounter" } -Number:Dimensionless Biostar_BufferLoad "Buffer load." { channel="guntamatic:biostar:mybiostar:bufferLoad" } -Number:Temperature Biostar_BufferTop0 "Buffer Top 0" { channel="guntamatic:biostar:mybiostar:bufferTop0" } -Number:Temperature Biostar_BufferBtm0 "Buffer Btm 0" { channel="guntamatic:biostar:mybiostar:bufferBtm0" } -Number:Temperature Biostar_BufferTop1 "Buffer Top 1" { channel="guntamatic:biostar:mybiostar:bufferTop1" } -Number:Temperature Biostar_BufferBtm1 "Buffer Btm 1" { channel="guntamatic:biostar:mybiostar:bufferBtm1" } -Number:Temperature Biostar_BufferTop2 "Buffer Top 2" { channel="guntamatic:biostar:mybiostar:bufferTop2" } -Number:Temperature Biostar_BufferBtm2 "Buffer Btm 2" { channel="guntamatic:biostar:mybiostar:bufferBtm2" } -Switch Biostar_BExtraWw0 "B extra-WW. 0" { channel="guntamatic:biostar:mybiostar:bExtraWw0" } -Switch Biostar_BExtraWw1 "B extra-WW. 1" { channel="guntamatic:biostar:mybiostar:bExtraWw1" } -Switch Biostar_BExtraWw2 "B extra-WW. 2" { channel="guntamatic:biostar:mybiostar:bExtraWw2" } -Switch Biostar_AuxiliaryPump0 "Auxiliary pump 0" { channel="guntamatic:biostar:mybiostar:auxiliaryPump0" } -Switch Biostar_AuxiliaryPump1 "Auxiliary pump 1" { channel="guntamatic:biostar:mybiostar:auxiliaryPump1" } -Switch Biostar_AuxiliaryPump2 "Auxiliary pump 2" { channel="guntamatic:biostar:mybiostar:auxiliaryPump2" } -String Biostar_BoilersConditionNo "Boiler´s condition no." { channel="guntamatic:biostar:mybiostar:boilersConditionNo" } -Number:Temperature Biostar_BufferT5 "Buffer T5" { channel="guntamatic:biostar:mybiostar:bufferT5" } -Number:Temperature Biostar_BufferT6 "Buffer T6" { channel="guntamatic:biostar:mybiostar:bufferT6" } -Number:Temperature Biostar_BufferT7 "Buffer T7" { channel="guntamatic:biostar:mybiostar:bufferT7" } -Number:Temperature Biostar_ExtraWw0 "Extra-WW. 0" { channel="guntamatic:biostar:mybiostar:extraWw0" } -Number:Temperature Biostar_ExtraWw1 "Extra-WW. 1" { channel="guntamatic:biostar:mybiostar:extraWw1" } -Number:Temperature Biostar_ExtraWw2 "Extra-WW. 2" { channel="guntamatic:biostar:mybiostar:extraWw2" } -Number:Dimensionless Biostar_Grate "Grate" { channel="guntamatic:biostar:mybiostar:grate" } +String Biostar_ControlProgram "Control Program" { channel="guntamatic:biostar:mybiostar:control#program" } + +String               Biostar_Running                 "Running"                            { channel="guntamatic:biostar:mybiostar:status#000-running" } +Number:Temperature   Biostar_OutsideTemp             "Outside Temp."                      { channel="guntamatic:biostar:mybiostar:status#001-outside-temp" } +Number:Temperature   Biostar_BlrTargetTemp           "Blr.Target Temp"                    { channel="guntamatic:biostar:mybiostar:status#002-blr-target-temp" } +Number:Temperature   Biostar_BoilerTemperature       "Boiler Temperature"                 { channel="guntamatic:biostar:mybiostar:status#003-boiler-temperature" } +Number:Dimensionless Biostar_FlueGasUtilisation      "Flue gas utilisation"               { channel="guntamatic:biostar:mybiostar:status#004-flue-gas-utilisation" } +Number:Dimensionless Biostar_Output                  "Output"                             { channel="guntamatic:biostar:mybiostar:status#005-output" } +Number:Temperature   Biostar_ReturnTemp              "Return temp"                        { channel="guntamatic:biostar:mybiostar:status#006-return-temp" } +Number:Dimensionless Biostar_Co2Target               "CO2 Target"                         { channel="guntamatic:biostar:mybiostar:status#007-co2-target" } +Number:Dimensionless Biostar_Co2Content              "CO2 Content"                        { channel="guntamatic:biostar:mybiostar:status#008-co2-content" } +Number:Temperature   Biostar_ReturnTempTarget        "Return temp target"                 { channel="guntamatic:biostar:mybiostar:status#009-return-temp-target" } +Number               Biostar_StatusCode              "Status code"                        { channel="guntamatic:biostar:mybiostar:status#010-status-code" } +Number:Dimensionless Biostar_Efficiency              "Efficiency"                         { channel="guntamatic:biostar:mybiostar:status#011-efficiency" } +Number:Dimensionless Biostar_Output2                 "Output"                             { channel="guntamatic:biostar:mybiostar:status#012-output" } +Number:Dimensionless Biostar_ExtractorSystem         "Extractor System"                   { channel="guntamatic:biostar:mybiostar:status#013-extractor-system" } +String               Biostar_FeedTurbine             "Feed Turbine"                       { channel="guntamatic:biostar:mybiostar:status#014-feed-turbine" } +Number:Dimensionless Biostar_DischargeMotor          "Discharge motor"                    { channel="guntamatic:biostar:mybiostar:status#015-discharge-motor" } +Number:Dimensionless Biostar_G1Target                "G1 Target"                          { channel="guntamatic:biostar:mybiostar:status#016-g1-target" } +Number:Temperature   Biostar_BufferTop               "Buffer Top"                         { channel="guntamatic:biostar:mybiostar:status#017-buffer-top" } +Number:Temperature   Biostar_BufferMid               "Buffer Mid"                         { channel="guntamatic:biostar:mybiostar:status#018-buffer-mid" } +Number:Temperature   Biostar_BufferBtm               "Buffer Btm"                         { channel="guntamatic:biostar:mybiostar:status#019-buffer-btm" } +Switch               Biostar_PumpHp0                 "Pump HP0"                           { channel="guntamatic:biostar:mybiostar:status#020-pump-hp0" } +Number:Temperature   Biostar_Dhw0                    "DHW 0"                              { channel="guntamatic:biostar:mybiostar:status#021-dhw-0" } +Switch               Biostar_BDhw0                   "B DHW 0"                            { channel="guntamatic:biostar:mybiostar:status#022-b-dhw-0" } +Number:Temperature   Biostar_Dhw1                    "DHW 1"                              { channel="guntamatic:biostar:mybiostar:status#023-dhw-1" } +Switch               Biostar_BDhw1                   "B DHW 1"                            { channel="guntamatic:biostar:mybiostar:status#024-b-dhw-1" } +Number:Temperature   Biostar_Dhw2                    "DHW 2"                              { channel="guntamatic:biostar:mybiostar:status#025-dhw-2" } +Switch               Biostar_BDhw2                   "B DHW 2"                            { channel="guntamatic:biostar:mybiostar:status#026-b-dhw-2" } +Number:Temperature   Biostar_RoomTempHc0             "Room Temp:HC 0"                     { channel="guntamatic:biostar:mybiostar:status#027-room-temp-hc-0" } +Switch               Biostar_HeatCirc0               "Heat Circ. 0"                       { channel="guntamatic:biostar:mybiostar:status#028-heat-circ-0" } +Number:Temperature   Biostar_RoomTempHc1             "Room Temp:HC 1"                     { channel="guntamatic:biostar:mybiostar:status#029-room-temp-hc-1" } +Number:Temperature   Biostar_FlowTarget1             "Flow Target 1"                      { channel="guntamatic:biostar:mybiostar:status#030-flow-target-1" } +Number:Temperature   Biostar_FlowIs1                 "Flow is 1"                          { channel="guntamatic:biostar:mybiostar:status#031-flow-is-1" } +String               Biostar_Mixer1                  "Mixer 1"                            { channel="guntamatic:biostar:mybiostar:status#032-mixer-1" } +Switch               Biostar_HeatCirc1               "Heat Circ. 1"                       { channel="guntamatic:biostar:mybiostar:status#033-heat-circ-1" } +Number:Temperature   Biostar_RoomTempHc2             "Room Temp:HC 2"                     { channel="guntamatic:biostar:mybiostar:status#034-room-temp-hc-2" } +Number:Temperature   Biostar_FlowTarget2             "Flow Target 2"                      { channel="guntamatic:biostar:mybiostar:status#035-flow-target-2" } +Number:Temperature   Biostar_FlowIs2                 "Flow is 2"                          { channel="guntamatic:biostar:mybiostar:status#036-flow-is-2" } +String               Biostar_Mixer2                  "Mixer 2"                            { channel="guntamatic:biostar:mybiostar:status#037-mixer-2" } +Switch               Biostar_HeatCirc2               "Heat Circ. 2"                       { channel="guntamatic:biostar:mybiostar:status#038-heat-circ-2" } +Number:Temperature   Biostar_RoomTempHc3             "Room Temp:HC 3"                     { channel="guntamatic:biostar:mybiostar:status#039-room-temp-hc-3" } +Switch               Biostar_HeatCirc3               "Heat Circ. 3"                       { channel="guntamatic:biostar:mybiostar:status#040-heat-circ-3" } +Number:Temperature   Biostar_RoomTempHc4             "Room Temp:HC 4"                     { channel="guntamatic:biostar:mybiostar:status#041-room-temp-hc-4" } +Number:Temperature   Biostar_FlowTarget4             "Flow Target 4"                      { channel="guntamatic:biostar:mybiostar:status#042-flow-target-4" } +Number:Temperature   Biostar_FlowIs4                 "Flow is 4"                          { channel="guntamatic:biostar:mybiostar:status#043-flow-is-4" } +String               Biostar_Mixer4                  "Mixer 4"                            { channel="guntamatic:biostar:mybiostar:status#044-mixer-4" } +Switch               Biostar_HeatCirc4               "Heat Circ. 4"                       { channel="guntamatic:biostar:mybiostar:status#045-heat-circ-4" } +Number:Temperature   Biostar_RoomTempHc5             "Room Temp:HC 5"                     { channel="guntamatic:biostar:mybiostar:status#046-room-temp-hc-5" } +Number:Temperature   Biostar_FlowTarget5             "Flow Target 5"                      { channel="guntamatic:biostar:mybiostar:status#047-flow-target-5" } +Number:Temperature   Biostar_FlowIs5                 "Flow is 5"                          { channel="guntamatic:biostar:mybiostar:status#048-flow-is-5" } +String               Biostar_Mixer5                  "Mixer 5"                            { channel="guntamatic:biostar:mybiostar:status#049-mixer-5" } +Switch               Biostar_HeatCirc5               "Heat Circ. 5"                       { channel="guntamatic:biostar:mybiostar:status#050-heat-circ-5" } +Number:Temperature   Biostar_RoomTempHc6             "Room Temp:HC 6"                     { channel="guntamatic:biostar:mybiostar:status#051-room-temp-hc-6" } +Switch               Biostar_HeatCirc6               "Heat Circ. 6"                       { channel="guntamatic:biostar:mybiostar:status#052-heat-circ-6" } +Number:Temperature   Biostar_RoomTempHc7             "Room Temp:HC 7"                     { channel="guntamatic:biostar:mybiostar:status#053-room-temp-hc-7" } +Number:Temperature   Biostar_FlowTarget7             "Flow Target 7"                      { channel="guntamatic:biostar:mybiostar:status#054-flow-target-7" } +Number:Temperature   Biostar_FlowIs7                 "Flow is 7"                          { channel="guntamatic:biostar:mybiostar:status#055-flow-is-7" } +String               Biostar_Mixer7                  "Mixer 7"                            { channel="guntamatic:biostar:mybiostar:status#056-mixer-7" } +Switch               Biostar_HeatCirc7               "Heat Circ. 7"                       { channel="guntamatic:biostar:mybiostar:status#057-heat-circ-7" } +Number:Temperature   Biostar_RoomTempHc8             "Room Temp:HC 8"                     { channel="guntamatic:biostar:mybiostar:status#058-room-temp-hc-8" } +Number:Temperature   Biostar_FlowTarget8             "Flow Target 8"                      { channel="guntamatic:biostar:mybiostar:status#059-flow-target-8" } +Number:Temperature   Biostar_FlowIs8                 "Flow is 8"                          { channel="guntamatic:biostar:mybiostar:status#060-flow-is-8" } +String               Biostar_Mixer8                  "Mixer 8"                            { channel="guntamatic:biostar:mybiostar:status#061-mixer-8" } +Switch               Biostar_HeatCirc8               "Heat Circ. 8"                       { channel="guntamatic:biostar:mybiostar:status#062-heat-circ-8" } +String               Biostar_FuelLevel               "Fuel Level"                         { channel="guntamatic:biostar:mybiostar:status#065-fuel-level" } +String               Biostar_Stb                     "STB"                                { channel="guntamatic:biostar:mybiostar:status#066-stb" } +String               Biostar_Tks                     "TKS"                                { channel="guntamatic:biostar:mybiostar:status#067-tks" } +Switch               Biostar_BoilerApproval          "Boiler approval"                    { channel="guntamatic:biostar:mybiostar:status#068-boiler-approval" } +String               Biostar_Programme               "Programme"                          { channel="guntamatic:biostar:mybiostar:status#069-programme" } +String               Biostar_ProgramHc0              "Program HC0"                        { channel="guntamatic:biostar:mybiostar:status#070-program-hc0" } +String               Biostar_ProgramHc1              "Program HC1"                        { channel="guntamatic:biostar:mybiostar:status#071-program-hc1" } +String               Biostar_ProgramHc2              "Program HC2"                        { channel="guntamatic:biostar:mybiostar:status#072-program-hc2" } +String               Biostar_ProgramHc3              "Program HC3"                        { channel="guntamatic:biostar:mybiostar:status#073-program-hc3" } +String               Biostar_ProgramHc4              "Program HC4"                        { channel="guntamatic:biostar:mybiostar:status#074-program-hc4" } +String               Biostar_ProgramHc5              "Program HC5"                        { channel="guntamatic:biostar:mybiostar:status#075-program-hc5" } +String               Biostar_ProgramHc6              "Program HC6"                        { channel="guntamatic:biostar:mybiostar:status#076-program-hc6" } +String               Biostar_ProgramHc7              "Program HC7"                        { channel="guntamatic:biostar:mybiostar:status#077-program-hc7" } +String               Biostar_ProgramHc8              "Program HC8"                        { channel="guntamatic:biostar:mybiostar:status#078-program-hc8" } +String               Biostar_Interuption0            "Interuption 0"                      { channel="guntamatic:biostar:mybiostar:status#079-interuption-0" } +String               Biostar_Interuption1            "Interuption 1"                      { channel="guntamatic:biostar:mybiostar:status#080-interuption-1" } +Number               Biostar_Serial                  "Serial"                             { channel="guntamatic:biostar:mybiostar:status#081-serial" } +String               Biostar_Version                 "Version"                            { channel="guntamatic:biostar:mybiostar:status#082-version" } +Number:Time          Biostar_RunningTime             "Running Time"                       { channel="guntamatic:biostar:mybiostar:status#083-running-time" } +Number:Time          Biostar_ServiceHrs              "Service Hrs"                        { channel="guntamatic:biostar:mybiostar:status#084-service-hrs" } +Number:Time          Biostar_EmptyAshIn              "Empty ash in"                       { channel="guntamatic:biostar:mybiostar:status#085-empty-ash-in" } +Number:Temperature   Biostar_FlowIs0                 "Flow is 0"                          { channel="guntamatic:biostar:mybiostar:status#086-flow-is-0" } +Number:Temperature   Biostar_FlowIs3                 "Flow is 3"                          { channel="guntamatic:biostar:mybiostar:status#087-flow-is-3" } +Number:Temperature   Biostar_FlowIs6                 "Flow is 6"                          { channel="guntamatic:biostar:mybiostar:status#088-flow-is-6" } +Number:Volume        Biostar_FuelCounter             "Fuel counter"                       { channel="guntamatic:biostar:mybiostar:status#089-fuel-counter" } +Number:Dimensionless Biostar_BufferLoad              "Buffer load."                       { channel="guntamatic:biostar:mybiostar:status#090-buffer-load" } +Number:Temperature   Biostar_BufferTop0              "Buffer Top 0"                       { channel="guntamatic:biostar:mybiostar:status#091-buffer-top-0" } +Number:Temperature   Biostar_BufferBtm0              "Buffer Btm 0"                       { channel="guntamatic:biostar:mybiostar:status#092-buffer-btm-0" } +Number:Temperature   Biostar_BufferTop1              "Buffer Top 1"                       { channel="guntamatic:biostar:mybiostar:status#093-buffer-top-1" } +Number:Temperature   Biostar_BufferBtm1              "Buffer Btm 1"                       { channel="guntamatic:biostar:mybiostar:status#094-buffer-btm-1" } +Number:Temperature   Biostar_BufferTop2              "Buffer Top 2"                       { channel="guntamatic:biostar:mybiostar:status#095-buffer-top-2" } +Number:Temperature   Biostar_BufferBtm2              "Buffer Btm 2"                       { channel="guntamatic:biostar:mybiostar:status#096-buffer-btm-2" } +Switch               Biostar_BExtraWw0               "B extra-WW. 0"                      { channel="guntamatic:biostar:mybiostar:status#097-b-extra-ww-0" } +Switch               Biostar_BExtraWw1               "B extra-WW. 1"                      { channel="guntamatic:biostar:mybiostar:status#098-b-extra-ww-1" } +Switch               Biostar_BExtraWw2               "B extra-WW. 2"                      { channel="guntamatic:biostar:mybiostar:status#099-b-extra-ww-2" } +Switch               Biostar_AuxiliaryPump0          "Auxiliary pump 0"                   { channel="guntamatic:biostar:mybiostar:status#100-auxiliary-pump-0" } +Switch               Biostar_AuxiliaryPump1          "Auxiliary pump 1"                   { channel="guntamatic:biostar:mybiostar:status#101-auxiliary-pump-1" } +Switch               Biostar_AuxiliaryPump2          "Auxiliary pump 2"                   { channel="guntamatic:biostar:mybiostar:status#102-auxiliary-pump-2" } +String               Biostar_BoilersConditionNo      "Boiler´s condition no."             { channel="guntamatic:biostar:mybiostar:status#104-boilers-condition-no" } +Number:Temperature   Biostar_BufferT5                "Buffer T5"                          { channel="guntamatic:biostar:mybiostar:status#108-buffer-t5" } +Number:Temperature   Biostar_BufferT6                "Buffer T6"                          { channel="guntamatic:biostar:mybiostar:status#109-buffer-t6" } +Number:Temperature   Biostar_BufferT7                "Buffer T7"                          { channel="guntamatic:biostar:mybiostar:status#110-buffer-t7" } +Number:Temperature   Biostar_ExtraWw0                "Extra-WW. 0"                        { channel="guntamatic:biostar:mybiostar:status#111-extra-ww-0" } +Number:Temperature   Biostar_ExtraWw1                "Extra-WW. 1"                        { channel="guntamatic:biostar:mybiostar:status#112-extra-ww-1" } +Number:Temperature   Biostar_ExtraWw2                "Extra-WW. 2"                        { channel="guntamatic:biostar:mybiostar:status#113-extra-ww-2" } +Number:Dimensionless Biostar_Grate                   "Grate"                              { channel="guntamatic:biostar:mybiostar:status#114-grate" } ``` ### Rule @@ -360,7 +348,7 @@ end ## Your feedback is required -The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System, running Firmware 3.2d. +The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System, running Firmware 3.3d. Please provide feedback (👍 as well as 👎) when using the Binding for other Guntamatic Heating Systems. Forum topic for feedback: diff --git a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticBindingConstants.java b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticBindingConstants.java index 912f8bf0712..30040284cb0 100644 --- a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticBindingConstants.java +++ b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticBindingConstants.java @@ -39,38 +39,42 @@ public class GuntamaticBindingConstants { public static final ThingTypeUID THING_TYPE_THERM = new ThingTypeUID(BINDING_ID, "therm"); public static final ThingTypeUID THING_TYPE_GENERIC = new ThingTypeUID(BINDING_ID, "generic"); + public static final String GROUP_CONTROL = "control#"; + // List of all Channel ids - public static final String CHANNEL_CONTROLBOILERAPPROVAL = "controlBoilerApproval"; - public static final String CHANNEL_CONTROLPROGRAM = "controlProgram"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM0 = "controlHeatCircProgram0"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM1 = "controlHeatCircProgram1"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM2 = "controlHeatCircProgram2"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM3 = "controlHeatCircProgram3"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM4 = "controlHeatCircProgram4"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM5 = "controlHeatCircProgram5"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM6 = "controlHeatCircProgram6"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM7 = "controlHeatCircProgram7"; - public static final String CHANNEL_CONTROLHEATCIRCPROGRAM8 = "controlHeatCircProgram8"; - public static final String CHANNEL_CONTROLWWHEAT0 = "controlWwHeat0"; - public static final String CHANNEL_CONTROLWWHEAT1 = "controlWwHeat1"; - public static final String CHANNEL_CONTROLWWHEAT2 = "controlWwHeat2"; - public static final String CHANNEL_CONTROLEXTRAWWHEAT0 = "controlExtraWwHeat0"; - public static final String CHANNEL_CONTROLEXTRAWWHEAT1 = "controlExtraWwHeat1"; - public static final String CHANNEL_CONTROLEXTRAWWHEAT2 = "controlExtraWwHeat2"; + public static final String CHANNEL_CONTROL_BOILERAPPROVAL = GROUP_CONTROL + "boiler-approval"; + public static final String CHANNEL_CONTROL_PROGRAM = GROUP_CONTROL + "program"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM0 = GROUP_CONTROL + "heat-circ-program-0"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM1 = GROUP_CONTROL + "heat-circ-program-1"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM2 = GROUP_CONTROL + "heat-circ-program-2"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM3 = GROUP_CONTROL + "heat-circ-program-3"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM4 = GROUP_CONTROL + "heat-circ-program-4"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM5 = GROUP_CONTROL + "heat-circ-program-5"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM6 = GROUP_CONTROL + "heat-circ-program-6"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM7 = GROUP_CONTROL + "heat-circ-program-7"; + public static final String CHANNEL_CONTROL_HEATCIRCPROGRAM8 = GROUP_CONTROL + "heat-circ-program-8"; + public static final String CHANNEL_CONTROL_WWHEAT0 = GROUP_CONTROL + "ww-heat-0"; + public static final String CHANNEL_CONTROL_WWHEAT1 = GROUP_CONTROL + "ww-heat-1"; + public static final String CHANNEL_CONTROL_WWHEAT2 = GROUP_CONTROL + "ww-heat-2"; + public static final String CHANNEL_CONTROL_EXTRAWWHEAT0 = GROUP_CONTROL + "extra-ww-heat-0"; + public static final String CHANNEL_CONTROL_EXTRAWWHEAT1 = GROUP_CONTROL + "extra-ww-heat-1"; + public static final String CHANNEL_CONTROL_EXTRAWWHEAT2 = GROUP_CONTROL + "extra-ww-heat-2"; - public static final List STATIC_CHANNEL_IDS = Arrays.asList(CHANNEL_CONTROLBOILERAPPROVAL, - CHANNEL_CONTROLPROGRAM, CHANNEL_CONTROLHEATCIRCPROGRAM0, CHANNEL_CONTROLHEATCIRCPROGRAM1, - CHANNEL_CONTROLHEATCIRCPROGRAM2, CHANNEL_CONTROLHEATCIRCPROGRAM3, CHANNEL_CONTROLHEATCIRCPROGRAM4, - CHANNEL_CONTROLHEATCIRCPROGRAM5, CHANNEL_CONTROLHEATCIRCPROGRAM6, CHANNEL_CONTROLHEATCIRCPROGRAM7, - CHANNEL_CONTROLHEATCIRCPROGRAM8, CHANNEL_CONTROLWWHEAT0, CHANNEL_CONTROLWWHEAT1, CHANNEL_CONTROLWWHEAT2, - CHANNEL_CONTROLEXTRAWWHEAT0, CHANNEL_CONTROLEXTRAWWHEAT1, CHANNEL_CONTROLEXTRAWWHEAT2); + public static final List STATIC_CHANNEL_IDS = Arrays.asList(CHANNEL_CONTROL_BOILERAPPROVAL, + CHANNEL_CONTROL_PROGRAM, CHANNEL_CONTROL_HEATCIRCPROGRAM0, CHANNEL_CONTROL_HEATCIRCPROGRAM1, + CHANNEL_CONTROL_HEATCIRCPROGRAM2, CHANNEL_CONTROL_HEATCIRCPROGRAM3, CHANNEL_CONTROL_HEATCIRCPROGRAM4, + CHANNEL_CONTROL_HEATCIRCPROGRAM5, CHANNEL_CONTROL_HEATCIRCPROGRAM6, CHANNEL_CONTROL_HEATCIRCPROGRAM7, + CHANNEL_CONTROL_HEATCIRCPROGRAM8, CHANNEL_CONTROL_WWHEAT0, CHANNEL_CONTROL_WWHEAT1, CHANNEL_CONTROL_WWHEAT2, + CHANNEL_CONTROL_EXTRAWWHEAT0, CHANNEL_CONTROL_EXTRAWWHEAT1, CHANNEL_CONTROL_EXTRAWWHEAT2); - public static final List STATIC_CHANNEL_IDS_WOBOILERAPP = Arrays.asList(CHANNEL_CONTROLPROGRAM, - CHANNEL_CONTROLHEATCIRCPROGRAM0, CHANNEL_CONTROLHEATCIRCPROGRAM1, CHANNEL_CONTROLHEATCIRCPROGRAM2, - CHANNEL_CONTROLHEATCIRCPROGRAM3, CHANNEL_CONTROLHEATCIRCPROGRAM4, CHANNEL_CONTROLHEATCIRCPROGRAM5, - CHANNEL_CONTROLHEATCIRCPROGRAM6, CHANNEL_CONTROLHEATCIRCPROGRAM7, CHANNEL_CONTROLHEATCIRCPROGRAM8, - CHANNEL_CONTROLWWHEAT0, CHANNEL_CONTROLWWHEAT1, CHANNEL_CONTROLWWHEAT2, CHANNEL_CONTROLEXTRAWWHEAT0, - CHANNEL_CONTROLEXTRAWWHEAT1, CHANNEL_CONTROLEXTRAWWHEAT2); + public static final List STATIC_CHANNEL_IDS_WOBOILERAPP = Arrays.asList(CHANNEL_CONTROL_PROGRAM, + CHANNEL_CONTROL_HEATCIRCPROGRAM0, CHANNEL_CONTROL_HEATCIRCPROGRAM1, CHANNEL_CONTROL_HEATCIRCPROGRAM2, + CHANNEL_CONTROL_HEATCIRCPROGRAM3, CHANNEL_CONTROL_HEATCIRCPROGRAM4, CHANNEL_CONTROL_HEATCIRCPROGRAM5, + CHANNEL_CONTROL_HEATCIRCPROGRAM6, CHANNEL_CONTROL_HEATCIRCPROGRAM7, CHANNEL_CONTROL_HEATCIRCPROGRAM8, + CHANNEL_CONTROL_WWHEAT0, CHANNEL_CONTROL_WWHEAT1, CHANNEL_CONTROL_WWHEAT2, CHANNEL_CONTROL_EXTRAWWHEAT0, + CHANNEL_CONTROL_EXTRAWWHEAT1, CHANNEL_CONTROL_EXTRAWWHEAT2); + + public static final String GROUP_STATUS = "status#"; public static final String PARAMETER_BOILERAPPROVAL = "boilerApproval"; public static final String PARAMETER_PROGRAM = "program"; diff --git a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticChannelTypeProvider.java b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticChannelTypeProvider.java deleted file mode 100644 index 889bd2005ee..00000000000 --- a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticChannelTypeProvider.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.guntamatic.internal; - -import java.util.Collection; -import java.util.Locale; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.openhab.core.thing.type.ChannelType; -import org.openhab.core.thing.type.ChannelTypeBuilder; -import org.openhab.core.thing.type.ChannelTypeProvider; -import org.openhab.core.thing.type.ChannelTypeUID; -import org.openhab.core.thing.type.StateChannelTypeBuilder; -import org.openhab.core.types.StateDescriptionFragmentBuilder; -import org.osgi.service.component.annotations.Component; - -/** - * Provide channelTypes for Guntamatic Heating Systems - * - * @author Weger Michael - Initial contribution - */ -@Component(service = { ChannelTypeProvider.class, GuntamaticChannelTypeProvider.class }) -@NonNullByDefault -public class GuntamaticChannelTypeProvider implements ChannelTypeProvider { - private final Map channelTypes = new ConcurrentHashMap<>(); - - @Override - public Collection getChannelTypes(@Nullable Locale locale) { - return channelTypes.values(); - } - - @Override - public @Nullable ChannelType getChannelType(ChannelTypeUID channelTypeUID, @Nullable Locale locale) { - return channelTypes.get(channelTypeUID.getAsString()); // returns null if not found - } - - public void addChannelType(ChannelTypeUID channelTypeUID, String label, String itemType, String description, - boolean advanced, String pattern) { - StateDescriptionFragmentBuilder stateDescriptionFragmentBuilder = StateDescriptionFragmentBuilder.create() - .withReadOnly(true); - if (!pattern.isEmpty()) { - stateDescriptionFragmentBuilder.withPattern(pattern); - } - StateChannelTypeBuilder stateChannelTypeBuilder = ChannelTypeBuilder.state(channelTypeUID, label, itemType) - .withDescription(description).isAdvanced(advanced) - .withStateDescriptionFragment(stateDescriptionFragmentBuilder.build()); - channelTypes.put(channelTypeUID.getAsString(), stateChannelTypeBuilder.build()); - } -} diff --git a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticDynamicTypeProvider.java b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticDynamicTypeProvider.java new file mode 100644 index 00000000000..4c8d3a72847 --- /dev/null +++ b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticDynamicTypeProvider.java @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.guntamatic.internal; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.core.storage.StorageService; +import org.openhab.core.thing.ThingUID; +import org.openhab.core.thing.binding.AbstractStorageBasedTypeProvider; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.thing.type.ChannelTypeProvider; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; + +/** + * The {@link GuntamaticDynamicTypeProvider} is an instance of a {@link AbstractStorageBasedTypeProvider} for the + * Guntamatic Binding + * + * @author Weger Michael - Initial contribution + */ +@Component(service = { GuntamaticDynamicTypeProvider.class, ChannelTypeProvider.class }) +@NonNullByDefault +public class GuntamaticDynamicTypeProvider extends AbstractStorageBasedTypeProvider { + + @Activate + public GuntamaticDynamicTypeProvider(@Reference StorageService storageService) { + super(storageService); + } + + public void removeChannelTypesForThing(ThingUID uid) { + String thingUid = uid.getAsString() + ":"; + getChannelTypes(null).stream().map(ChannelType::getUID).filter(c -> c.getAsString().startsWith(thingUid)) + .forEach(this::removeChannelType); + } +} diff --git a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandler.java b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandler.java index 8ede496ea7e..0d4ee55eb0e 100644 --- a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandler.java +++ b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandler.java @@ -52,10 +52,13 @@ import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.thing.binding.builder.ChannelBuilder; import org.openhab.core.thing.binding.builder.ThingBuilder; import org.openhab.core.thing.type.ChannelKind; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.thing.type.ChannelTypeBuilder; import org.openhab.core.thing.type.ChannelTypeUID; import org.openhab.core.types.Command; import org.openhab.core.types.RefreshType; import org.openhab.core.types.State; +import org.openhab.core.types.StateDescriptionFragmentBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -101,16 +104,16 @@ public class GuntamaticHandler extends BaseThingHandler { private List staticChannelIDs; private GuntamaticConfiguration config = new GuntamaticConfiguration(); private Boolean channelsInitialized = false; - private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider; + private GuntamaticDynamicTypeProvider typeProvider; private Map channels = new HashMap<>(); private Map types = new HashMap<>(); private Map> units = new HashMap<>(); - public GuntamaticHandler(Thing thing, HttpClient httpClient, - GuntamaticChannelTypeProvider guntamaticChannelTypeProvider, List staticChannelIDs) { + public GuntamaticHandler(Thing thing, HttpClient httpClient, GuntamaticDynamicTypeProvider typeProvider, + List staticChannelIDs) { super(thing); this.httpClient = httpClient; - this.guntamaticChannelTypeProvider = guntamaticChannelTypeProvider; + this.typeProvider = typeProvider; this.staticChannelIDs = staticChannelIDs; } @@ -122,11 +125,11 @@ public class GuntamaticHandler extends BaseThingHandler { Map map; String channelID = channelUID.getId(); switch (channelID) { - case CHANNEL_CONTROLBOILERAPPROVAL: + case CHANNEL_CONTROL_BOILERAPPROVAL: param = getThing().getProperties().get(PARAMETER_BOILERAPPROVAL); map = MAP_COMMAND_PARAM_APPROVAL; break; - case CHANNEL_CONTROLPROGRAM: + case CHANNEL_CONTROL_PROGRAM: param = getThing().getProperties().get(PARAMETER_PROGRAM); ThingTypeUID thingTypeUID = getThing().getThingTypeUID(); @@ -137,31 +140,30 @@ public class GuntamaticHandler extends BaseThingHandler { } else { map = MAP_COMMAND_PARAM_PROG_WOMANU; } - break; - case CHANNEL_CONTROLHEATCIRCPROGRAM0: - case CHANNEL_CONTROLHEATCIRCPROGRAM1: - case CHANNEL_CONTROLHEATCIRCPROGRAM2: - case CHANNEL_CONTROLHEATCIRCPROGRAM3: - case CHANNEL_CONTROLHEATCIRCPROGRAM4: - case CHANNEL_CONTROLHEATCIRCPROGRAM5: - case CHANNEL_CONTROLHEATCIRCPROGRAM6: - case CHANNEL_CONTROLHEATCIRCPROGRAM7: - case CHANNEL_CONTROLHEATCIRCPROGRAM8: + case CHANNEL_CONTROL_HEATCIRCPROGRAM0: + case CHANNEL_CONTROL_HEATCIRCPROGRAM1: + case CHANNEL_CONTROL_HEATCIRCPROGRAM2: + case CHANNEL_CONTROL_HEATCIRCPROGRAM3: + case CHANNEL_CONTROL_HEATCIRCPROGRAM4: + case CHANNEL_CONTROL_HEATCIRCPROGRAM5: + case CHANNEL_CONTROL_HEATCIRCPROGRAM6: + case CHANNEL_CONTROL_HEATCIRCPROGRAM7: + case CHANNEL_CONTROL_HEATCIRCPROGRAM8: param = getThing().getProperties().get(PARAMETER_HEATCIRCPROGRAM).replace("x", channelID.substring(channelID.length() - 1)); map = MAP_COMMAND_PARAM_HC; break; - case CHANNEL_CONTROLWWHEAT0: - case CHANNEL_CONTROLWWHEAT1: - case CHANNEL_CONTROLWWHEAT2: + case CHANNEL_CONTROL_WWHEAT0: + case CHANNEL_CONTROL_WWHEAT1: + case CHANNEL_CONTROL_WWHEAT2: param = getThing().getProperties().get(PARAMETER_WWHEAT).replace("x", channelID.substring(channelID.length() - 1)); map = MAP_COMMAND_PARAM_WW; break; - case CHANNEL_CONTROLEXTRAWWHEAT0: - case CHANNEL_CONTROLEXTRAWWHEAT1: - case CHANNEL_CONTROLEXTRAWWHEAT2: + case CHANNEL_CONTROL_EXTRAWWHEAT0: + case CHANNEL_CONTROL_EXTRAWWHEAT1: + case CHANNEL_CONTROL_EXTRAWWHEAT2: param = getThing().getProperties().get(PARAMETER_EXTRAWWHEAT).replace("x", channelID.substring(channelID.length() - 1)); map = MAP_COMMAND_PARAM_WW; @@ -197,8 +199,9 @@ public class GuntamaticHandler extends BaseThingHandler { String channel = channels.get(i); Unit unit = units.get(i); if ((channel != null) && (i < daqdata.length)) { + String channelId = GROUP_STATUS + String.format("%03d", i) + "-" + channel; String value = daqdata[i]; - Channel chn = thing.getChannel(channel); + Channel chn = thing.getChannel(channelId); if ((chn != null) && (value != null)) { value = value.trim(); String typeName = chn.getAcceptedItemType(); @@ -234,7 +237,7 @@ public class GuntamaticHandler extends BaseThingHandler { } } if (newState != null) { - updateState(channel, newState); + updateState(channelId, newState); } else { logger.warn("Data for unknown typeName '{}' or unknown unit received", typeName); } @@ -268,6 +271,9 @@ public class GuntamaticHandler extends BaseThingHandler { private void parseAndInit(String html) { String[] daqdesc = html.split("\\n"); List channelList = new ArrayList<>(); + for (Channel chn : thing.getChannels()) { + logger.debug("Static Channel '{}' present", chn.getUID()); + } // make sure that static channels are present for (String channelID : staticChannelIDs) { @@ -285,67 +291,76 @@ public class GuntamaticHandler extends BaseThingHandler { String label = param[0].replace("C02", "CO2"); if (!"reserved".equals(label)) { - String channel = toLowerCamelCase(replaceUmlaut(label)); + String channel = toLowerCaseHyphen(replaceUmlaut(label)); label = label.substring(0, 1).toUpperCase() + label.substring(1); String unitStr = ((param.length == 1) || param[1].isBlank()) ? "" : param[1].trim(); Unit unit = guessUnit(unitStr); - boolean channelInitialized = channels.containsValue(channel); - if (!channelInitialized) { - String itemType; - String pattern; - String type = types.get(i); - if (type == null) { - type = ""; - } + String itemType; + String pattern; + String type = types.get(i); + if (type == null) { + type = ""; + } - if ("boolean".equals(type)) { - itemType = CoreItemFactory.SWITCH; - pattern = ""; - } else if ("integer".equals(type)) { - itemType = guessItemType(unit); - pattern = "%d"; - if (unit != null) { - pattern += " %unit%"; - } - } else if ("float".equals(type)) { + if ("boolean".equals(type)) { + itemType = CoreItemFactory.SWITCH; + pattern = ""; + } else if ("integer".equals(type)) { + itemType = guessItemType(unit); + pattern = "%d"; + if (unit != null) { + pattern += " %unit%"; + } + } else if ("float".equals(type)) { + itemType = guessItemType(unit); + pattern = "%.2f"; + if (unit != null) { + pattern += " %unit%"; + } + } else if ("string".equals(type)) { + itemType = CoreItemFactory.STRING; + pattern = "%s"; + } else { + if (unitStr.isBlank()) { + itemType = CoreItemFactory.STRING; + pattern = "%s"; + } else { itemType = guessItemType(unit); pattern = "%.2f"; if (unit != null) { pattern += " %unit%"; } - } else if ("string".equals(type)) { - itemType = CoreItemFactory.STRING; - pattern = "%s"; - } else { - if (unitStr.isBlank()) { - itemType = CoreItemFactory.STRING; - pattern = "%s"; - } else { - itemType = guessItemType(unit); - pattern = "%.2f"; - if (unit != null) { - pattern += " %unit%"; - } - } } - - ChannelTypeUID channelTypeUID = new ChannelTypeUID(BINDING_ID, channel); - guntamaticChannelTypeProvider.addChannelType(channelTypeUID, channel, itemType, - "Guntamatic " + label, false, pattern); - Channel newChannel = ChannelBuilder.create(new ChannelUID(thing.getUID(), channel), itemType) - .withType(channelTypeUID).withKind(ChannelKind.STATE).withLabel(label).build(); - channelList.add(newChannel); - channels.put(i, channel); - if (unit != null) { - units.put(i, unit); - } - - logger.debug( - "Supported Channel: Idx: '{}', Name: '{}'/'{}', Type: '{}'/'{}', Unit: '{}', Pattern '{}' ", - String.format("%03d", i), label, channel, type, itemType, unitStr, pattern); } + + String channelId = String.format("%03d", i) + "-" + channel; + ChannelTypeUID channelTypeUID = new ChannelTypeUID(BINDING_ID, channelId); + StateDescriptionFragmentBuilder stateDescriptionFragmentBuilder = StateDescriptionFragmentBuilder + .create().withReadOnly(true); + if (!pattern.isEmpty()) { + stateDescriptionFragmentBuilder.withPattern(pattern); + } + + ChannelType channelType = ChannelTypeBuilder.state(channelTypeUID, label, itemType) + .withDescription("Guntamatic " + label) + .withStateDescriptionFragment(stateDescriptionFragmentBuilder.build()).build(); + + typeProvider.putChannelType(channelType); + + Channel newChannel = ChannelBuilder + .create(new ChannelUID(thing.getUID(), GROUP_STATUS + channelId), itemType) + .withType(channelTypeUID).withKind(ChannelKind.STATE).withLabel(label).build(); + channelList.add(newChannel); + channels.put(i, channel); + if (unit != null) { + units.put(i, unit); + } + + logger.debug( + "Supported Channel: Idx: '{}', Name: '{}'/'{}', Type: '{}'/'{}', Unit: '{}', Pattern '{}' ", + String.format("%03d", i), label, GROUP_STATUS + channelId, type, itemType, unitStr, pattern); } } ThingBuilder thingBuilder = editThing(); @@ -385,28 +400,14 @@ public class GuntamaticHandler extends BaseThingHandler { return output; } - private String toLowerCamelCase(String input) { - char delimiter = ' '; - String output = input.replace("´", "").replaceAll("[^\\w]", String.valueOf(delimiter)); - - StringBuilder builder = new StringBuilder(); - boolean nextCharLow = true; - - for (int i = 0; i < output.length(); i++) { - char currentChar = output.charAt(i); - if (delimiter == currentChar) { - nextCharLow = false; - } else if (nextCharLow) { - builder.append(Character.toLowerCase(currentChar)); - } else { - builder.append(Character.toUpperCase(currentChar)); - nextCharLow = true; - } - } - return builder.toString(); + private String toLowerCaseHyphen(String input) { + return input.replaceAll("[^a-zA-Z0-9\\s]", "").trim().replaceAll("([a-z])([A-Z0-9])", "$1-$2") + .replaceAll("\\s+", "-").toLowerCase(); } private @Nullable String sendGetRequest(String url, String... params) { + logger.debug("sendGetRequest '{}'", url); + String errorReason = ""; String req = "http://" + config.hostname + url; @@ -436,13 +437,13 @@ public class GuntamaticHandler extends BaseThingHandler { String response = new String(contentResponse.getContent(), Charset.forName(config.encoding)); if (url.equals(DAQEXTDESC_URL)) { parseAndJsonInit(response); - } else if (url.equals(DAQDATA_URL)) { - parseAndUpdate(response); } else if (url.equals(DAQDESC_URL)) { parseAndInit(response); + } else if (url.equals(DAQDATA_URL)) { + parseAndUpdate(response); } else { - logger.debug(req); - // PARSET_URL via return + logger.debug("parset request: {}", req); + // PARSET_URL request is handled via return value only } return response; } catch (IllegalArgumentException e) { @@ -471,7 +472,10 @@ public class GuntamaticHandler extends BaseThingHandler { sendGetRequest(DAQEXTDESC_URL); } sendGetRequest(DAQDESC_URL); - } else { + } + + // above intialization usually changes channelsInitialized to TRUE + if (channelsInitialized) { sendGetRequest(DAQDATA_URL); } } @@ -497,4 +501,10 @@ public class GuntamaticHandler extends BaseThingHandler { } channelsInitialized = false; } + + @Override + public void handleRemoval() { + typeProvider.removeChannelTypesForThing(getThing().getUID()); + super.handleRemoval(); + } } diff --git a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandlerFactory.java b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandlerFactory.java index 95d657361e2..c822900a696 100644 --- a/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandlerFactory.java +++ b/bundles/org.openhab.binding.guntamatic/src/main/java/org/openhab/binding/guntamatic/internal/GuntamaticHandlerFactory.java @@ -45,13 +45,13 @@ public class GuntamaticHandlerFactory extends BaseThingHandlerFactory { THING_TYPE_GENERIC); private final HttpClient httpClient; - private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider; + private GuntamaticDynamicTypeProvider dynamicTypeProvider; @Activate public GuntamaticHandlerFactory(@Reference HttpClientFactory httpClientFactory, - @Reference GuntamaticChannelTypeProvider guntamaticChannelTypeProvider) { + @Reference GuntamaticDynamicTypeProvider dynamicTypeProvider) { this.httpClient = httpClientFactory.getCommonHttpClient(); - this.guntamaticChannelTypeProvider = guntamaticChannelTypeProvider; + this.dynamicTypeProvider = dynamicTypeProvider; } @Override @@ -73,7 +73,7 @@ public class GuntamaticHandlerFactory extends BaseThingHandlerFactory { } if (supportsThingType(thingTypeUID)) { - return new GuntamaticHandler(thing, httpClient, guntamaticChannelTypeProvider, staticChannelIDs); + return new GuntamaticHandler(thing, httpClient, dynamicTypeProvider, staticChannelIDs); } return null; diff --git a/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/i18n/guntamatic.properties b/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/i18n/guntamatic.properties index e7ea9ea9122..1e1e6621c09 100644 --- a/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/i18n/guntamatic.properties +++ b/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/i18n/guntamatic.properties @@ -7,154 +7,20 @@ addon.guntamatic.description = Binding for Guntamatic Heating Systems. thing-type.guntamatic.biocom.label = Guntamatic Biocom thing-type.guntamatic.biocom.description = Guntamatic Biocom Pellets Heating System. Untested! Please provide Feedback! -thing-type.guntamatic.biocom.channel.controlBoilerApproval.label = Set Boiler Approval -thing-type.guntamatic.biocom.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.biocom.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.biocom.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.biocom.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.biocom.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.biocom.channel.controlProgram.label = Set Program -thing-type.guntamatic.biocom.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.biocom.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.biocom.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.biosmart.label = Guntamatic Biosmart thing-type.guntamatic.biosmart.description = Guntamatic Biosmart Log Heating System -thing-type.guntamatic.biosmart.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.biosmart.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.biosmart.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.biosmart.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.biosmart.channel.controlProgram.label = Set Program -thing-type.guntamatic.biosmart.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.biosmart.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.biosmart.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.biostar.label = Guntamatic Biostar thing-type.guntamatic.biostar.description = Guntamatic Biostar Pellets Heating System -thing-type.guntamatic.biostar.channel.controlBoilerApproval.label = Set Boiler Approval -thing-type.guntamatic.biostar.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.biostar.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.biostar.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.biostar.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.biostar.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.biostar.channel.controlProgram.label = Set Program -thing-type.guntamatic.biostar.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.biostar.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.biostar.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.generic.label = Guntamatic Generic thing-type.guntamatic.generic.description = Generic Guntamatic Heating System. Use this type, if your Heating System is none of the others. Please provide Feedback! -thing-type.guntamatic.generic.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.generic.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.generic.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.generic.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.generic.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.generic.channel.controlProgram.label = Set Program -thing-type.guntamatic.generic.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.generic.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.generic.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.powerchip.label = Guntamatic Powerchip thing-type.guntamatic.powerchip.description = Guntamatic Powerchip WoodChip Heating System -thing-type.guntamatic.powerchip.channel.controlBoilerApproval.label = Set Boiler Approval -thing-type.guntamatic.powerchip.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.powerchip.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.powerchip.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.powerchip.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.powerchip.channel.controlProgram.label = Set Program -thing-type.guntamatic.powerchip.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.powerchip.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.powerchip.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.powercorn.label = Guntamatic Powercorn thing-type.guntamatic.powercorn.description = Guntamatic Powercorn EnergyGrain Heating System. Untested! Please provide Feedback! -thing-type.guntamatic.powercorn.channel.controlBoilerApproval.label = Set Boiler Approval -thing-type.guntamatic.powercorn.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.powercorn.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.powercorn.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.powercorn.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.powercorn.channel.controlProgram.label = Set Program -thing-type.guntamatic.powercorn.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.powercorn.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.powercorn.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.pro.label = Guntamatic Pro thing-type.guntamatic.pro.description = Guntamatic Pro Pellets or WoodChip Heating System. Untested! Please provide Feedback! -thing-type.guntamatic.pro.channel.controlBoilerApproval.label = Set Boiler Approval -thing-type.guntamatic.pro.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.pro.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.pro.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.pro.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.pro.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.pro.channel.controlProgram.label = Set Program -thing-type.guntamatic.pro.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.pro.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.pro.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 thing-type.guntamatic.therm.label = Guntamatic Therm thing-type.guntamatic.therm.description = Guntamatic Therm Pellets Heating System. Untested! Please provide Feedback! -thing-type.guntamatic.therm.channel.controlBoilerApproval.label = Set Boiler Approval -thing-type.guntamatic.therm.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 -thing-type.guntamatic.therm.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 -thing-type.guntamatic.therm.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 -thing-type.guntamatic.therm.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program -thing-type.guntamatic.therm.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program -thing-type.guntamatic.therm.channel.controlProgram.label = Set Program -thing-type.guntamatic.therm.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 -thing-type.guntamatic.therm.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 -thing-type.guntamatic.therm.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 # thing types config @@ -167,6 +33,45 @@ thing-type.config.guntamatic.heatingsystem.key.description = Optional, but requi thing-type.config.guntamatic.heatingsystem.refreshInterval.label = Refresh Interval thing-type.config.guntamatic.heatingsystem.refreshInterval.description = Interval the Guntamatic Heating System is polled in seconds. Default: 60s +# channel group types + +channel-group-type.guntamatic.controlGroupType.label = Control +channel-group-type.guntamatic.controlGroupType.channel.boilerApproval.label = Set Boiler Approval +channel-group-type.guntamatic.controlGroupType.channel.extraWwHeat0.label = Trigger Extra Warm Water Circle 0 +channel-group-type.guntamatic.controlGroupType.channel.extraWwHeat1.label = Trigger Extra Warm Water Circle 1 +channel-group-type.guntamatic.controlGroupType.channel.extraWwHeat2.label = Trigger Extra Warm Water Circle 2 +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram0.label = Set Heat Circle 0 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram1.label = Set Heat Circle 1 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram2.label = Set Heat Circle 2 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram3.label = Set Heat Circle 3 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram4.label = Set Heat Circle 4 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram5.label = Set Heat Circle 5 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram6.label = Set Heat Circle 6 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram7.label = Set Heat Circle 7 Program +channel-group-type.guntamatic.controlGroupType.channel.heatCircProgram8.label = Set Heat Circle 8 Program +channel-group-type.guntamatic.controlGroupType.channel.program.label = Set Program +channel-group-type.guntamatic.controlGroupType.channel.wwHeat0.label = Trigger Warm Water Circle 0 +channel-group-type.guntamatic.controlGroupType.channel.wwHeat1.label = Trigger Warm Water Circle 1 +channel-group-type.guntamatic.controlGroupType.channel.wwHeat2.label = Trigger Warm Water Circle 2 +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.label = Control +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.extraWwHeat0.label = Trigger Extra Warm Water Circle 0 +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.extraWwHeat1.label = Trigger Extra Warm Water Circle 1 +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.extraWwHeat2.label = Trigger Extra Warm Water Circle 2 +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram0.label = Set Heat Circle 0 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram1.label = Set Heat Circle 1 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram2.label = Set Heat Circle 2 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram3.label = Set Heat Circle 3 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram4.label = Set Heat Circle 4 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram5.label = Set Heat Circle 5 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram6.label = Set Heat Circle 6 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram7.label = Set Heat Circle 7 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.heatCircProgram8.label = Set Heat Circle 8 Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.program.label = Set Program +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.wwHeat0.label = Trigger Warm Water Circle 0 +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.wwHeat1.label = Trigger Warm Water Circle 1 +channel-group-type.guntamatic.controlGroupTypeWOBoilerApp.channel.wwHeat2.label = Trigger Warm Water Circle 2 +channel-group-type.guntamatic.statusGroupType.label = Status + # channel types channel-type.guntamatic.controlBoilerApproval.label = Set Boiler Approval @@ -197,3 +102,140 @@ channel-type.guntamatic.controlProgramWOManu.state.option.2 = WARMWATER channel-type.guntamatic.controlWwHeat.label = Trigger Warm Water Circle channel-type.guntamatic.controlWwHeat.description = Trigger Warm Water Circle of the Guntamatic Heating System (RECHARGE) channel-type.guntamatic.controlWwHeat.state.option.0 = RECHARGE + +# thing types + +thing-type.guntamatic.biocom.channel.controlBoilerApproval.label = Set Boiler Approval +thing-type.guntamatic.biocom.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.biocom.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.biocom.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.biocom.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.biocom.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.biocom.channel.controlProgram.label = Set Program +thing-type.guntamatic.biocom.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.biocom.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.biocom.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.biosmart.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.biosmart.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.biosmart.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.biosmart.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.biosmart.channel.controlProgram.label = Set Program +thing-type.guntamatic.biosmart.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.biosmart.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.biosmart.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.biostar.channel.controlBoilerApproval.label = Set Boiler Approval +thing-type.guntamatic.biostar.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.biostar.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.biostar.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.biostar.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.biostar.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.biostar.channel.controlProgram.label = Set Program +thing-type.guntamatic.biostar.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.biostar.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.biostar.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.generic.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.generic.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.generic.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.generic.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.generic.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.generic.channel.controlProgram.label = Set Program +thing-type.guntamatic.generic.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.generic.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.generic.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.powerchip.channel.controlBoilerApproval.label = Set Boiler Approval +thing-type.guntamatic.powerchip.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.powerchip.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.powerchip.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.powerchip.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.powerchip.channel.controlProgram.label = Set Program +thing-type.guntamatic.powerchip.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.powerchip.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.powerchip.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.powercorn.channel.controlBoilerApproval.label = Set Boiler Approval +thing-type.guntamatic.powercorn.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.powercorn.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.powercorn.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.powercorn.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.powercorn.channel.controlProgram.label = Set Program +thing-type.guntamatic.powercorn.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.powercorn.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.powercorn.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.pro.channel.controlBoilerApproval.label = Set Boiler Approval +thing-type.guntamatic.pro.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.pro.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.pro.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.pro.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.pro.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.pro.channel.controlProgram.label = Set Program +thing-type.guntamatic.pro.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.pro.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.pro.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 +thing-type.guntamatic.therm.channel.controlBoilerApproval.label = Set Boiler Approval +thing-type.guntamatic.therm.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0 +thing-type.guntamatic.therm.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1 +thing-type.guntamatic.therm.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2 +thing-type.guntamatic.therm.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program +thing-type.guntamatic.therm.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program +thing-type.guntamatic.therm.channel.controlProgram.label = Set Program +thing-type.guntamatic.therm.channel.controlWwHeat0.label = Trigger Warm Water Circle 0 +thing-type.guntamatic.therm.channel.controlWwHeat1.label = Trigger Warm Water Circle 1 +thing-type.guntamatic.therm.channel.controlWwHeat2.label = Trigger Warm Water Circle 2 diff --git a/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/thing/thing-types.xml index 676cb34deb5..c7170183413 100644 --- a/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/thing/thing-types.xml @@ -5,536 +5,280 @@ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - Guntamatic Biostar Pellets Heating System - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + K0010 PR001 HKx01 BKx06 ZKx06 + 1 - + Guntamatic Biosmart Log Heating System - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + PR001 HKx01 BKx06 ZKx06 + 1 - + Guntamatic Powerchip WoodChip Heating System - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + PK002 PR001 HKx01 BKx06 ZKx06 + 1 - + Guntamatic Powercorn EnergyGrain Heating System. Untested! Please provide Feedback! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + PK002 PR001 HKx01 BKx06 ZKx06 + 1 - + Guntamatic Biocom Pellets Heating System. Untested! Please provide Feedback! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + PK002 PR001 HKx01 BKx06 ZKx06 + 1 - + Guntamatic Pro Pellets or WoodChip Heating System. Untested! Please provide Feedback! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + PK002 PR001 HKx01 BKx06 ZKx06 + 1 - + Guntamatic Therm Pellets Heating System. Untested! Please provide Feedback! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + K0010 PR001 HKx01 BKx06 ZKx06 + 1 - + Generic Guntamatic Heating System. Use this type, if your Heating System is none of the others. Please provide Feedback! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + PR001 HKx01 BKx06 ZKx06 + 1 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String Set Program of the Guntamatic Heating System (OFF, NORMAL, WARMWATER, MANUAL) @@ -547,7 +291,7 @@ - + String Set Program of the Guntamatic Heating System (OFF, NORMAL, WARMWATER) @@ -559,7 +303,7 @@ - + String Set Boiler Approval of the Guntamatic Heating System (AUTO, OFF, ON) @@ -571,10 +315,10 @@ - + String - - Set Heat Circle of the Guntamatic Heating System (OFF, NORMAL, HEAT, LOWER) + + Set Heat Circuit of the Guntamatic Heating System (OFF, NORMAL, HEAT, LOWER) @@ -584,20 +328,20 @@ - + String - - Trigger Warm Water Circle of the Guntamatic Heating System (RECHARGE) + + Trigger Warm Water Circuit of the Guntamatic Heating System (RECHARGE) - + String - - Trigger Extra Warm Water Circle of the Guntamatic Heating System (RECHARGE) + + Trigger Extra Warm Water Circuit of the Guntamatic Heating System (RECHARGE) diff --git a/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/update/update.xml b/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/update/update.xml new file mode 100644 index 00000000000..9bfa82a0fd3 --- /dev/null +++ b/bundles/org.openhab.binding.guntamatic/src/main/resources/OH-INF/update/update.xml @@ -0,0 +1,589 @@ + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-boiler-approval + + + guntamatic:control-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-program-wo-manu + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-boiler-approval + + + guntamatic:control-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-boiler-approval + + + guntamatic:control-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-boiler-approval + + + guntamatic:control-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-boiler-approval + + + guntamatic:control-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-boiler-approval + + + guntamatic:control-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + + + + + + + + + + + + + + + + + + + + + + + guntamatic:control-program-wo-manu + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-heat-circ-program + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + guntamatic:control-extra-ww-heat + + + +