diff --git a/bundles/org.openhab.binding.hue/README.md b/bundles/org.openhab.binding.hue/README.md index 9901dabb28f56..2986f1b2090e0 100644 --- a/bundles/org.openhab.binding.hue/README.md +++ b/bundles/org.openhab.binding.hue/README.md @@ -8,21 +8,21 @@ The integration happens through the Hue Bridge, which acts as an IP gateway to t ## Supported Things The Hue Bridge is required as a "bridge" for accessing any other Hue device. -It supports the ZigBee LightLink protocol as well as the upwards compatible ZigBee 3.0 protocol. +It supports the Zigbee Light Link protocol as well as the upwards compatible Zigbee 3.0 protocol. There are two types of Hue Bridges, generally referred to as v1 (the rounded version) and v2 (the squared version). Only noticeable difference between the two generation of bridges is the added support for Apple HomeKit in v2. Both bridges are fully supported by this binding. Almost all available Hue devices are supported by this binding. This includes not only the "Friends of Hue", but also products like the LivingWhites adapter. -Additionally, it is possible to use OSRAM Lightify devices as well as other ZigBee LightLink compatible products, including the IKEA TRÅDFRI lights (when updated). -Beside bulbs and luminaires the Hue binding also supports some ZigBee sensors. Currently only Hue specific sensors are tested successfully (Hue Motion Sensor and Hue Dimmer Switch). +Additionally, it is possible to use OSRAM Lightify devices as well as other Zigbee Light Link compatible products, including the IKEA TRÅDFRI lights (when updated). +Beside bulbs and luminaires the Hue binding also supports some Zigbee sensors. Currently only Hue specific sensors are tested successfully (Hue Motion Sensor and Hue Dimmer Switch). Please note that the devices need to be registered with the Hue Bridge before it is possible for this binding to use them. -The Hue binding supports all seven types of lighting devices defined for ZigBee LightLink ([see page 24, table 2](https://www.nxp.com/docs/en/user-guide/JN-UG-3091.pdf). +The Hue binding supports all seven types of lighting devices defined for Zigbee Light Link ([see page 24, table 2](https://www.nxp.com/docs/en/user-guide/JN-UG-3091.pdf). These are: -| Device type | ZigBee Device ID | Thing type | +| Device type | Zigbee Device ID | Thing type | |--------------------------|------------------|------------| | On/Off Light | 0x0000 | 0000 | | On/Off Plug-in Unit | 0x0010 | 0010 | @@ -46,13 +46,13 @@ The following matrix lists the capabilities (channels) for each type: | 0210 | X | | X | X | | 0220 | X | X | | X | -Beside bulbs and luminaires the Hue binding supports some ZigBee sensors. +Beside bulbs and luminaires the Hue binding supports some Zigbee sensors. Currently only Hue specific sensors are tested successfully (e.g. Hue Motion Sensor, Hue Dimmer Switch, Hue Tap, CLIP Sensor). The Hue Motion Sensor registers a `ZLLLightLevel` sensor (0106), a `ZLLPresence` sensor (0107) and a `ZLLTemperature` sensor (0302) in one device. The Hue CLIP Sensor saves scene states with status or flag for HUE rules. -They are presented by the following ZigBee Device ID and _Thing type_: +They are presented by the following Zigbee Device ID and _Thing type_: -| Device type | ZigBee Device ID | Thing type | +| Device type | Zigbee Device ID | Thing type | |-----------------------------|------------------|----------------| | Light Sensor | 0x0106 | 0106 | | Occupancy Sensor | 0x0107 | 0107 | diff --git a/bundles/org.openhab.binding.miele/README.md b/bundles/org.openhab.binding.miele/README.md index 08403d3219d5b..e0fa72c5581cb 100644 --- a/bundles/org.openhab.binding.miele/README.md +++ b/bundles/org.openhab.binding.miele/README.md @@ -2,14 +2,14 @@ This binding integrates Miele@home appliances. Miele@home allows controlling Miele appliances that are equipped with special communication modules. -There are devices that communicate through ZigBee and others that use WiFi. +There are devices that communicate through Zigbee and others that use WiFi. See [www.miele.de](https://www.miele.de) for the list of available appliances. ## Supported Things This binding requires the XGW3000 gateway from Miele as all integration with openHAB is done through this gateway. -While users with ZigBee-enabled Miele appliances usually own such a gateway, this is often not the case for people that have only WiFi-enabled appliances. +While users with Zigbee-enabled Miele appliances usually own such a gateway, this is often not the case for people that have only WiFi-enabled appliances. The types of appliances that are supported by this binding are: diff --git a/bundles/org.openhab.binding.mihome/README.md b/bundles/org.openhab.binding.mihome/README.md index 38b838266d60f..f71e732392e4e 100644 --- a/bundles/org.openhab.binding.mihome/README.md +++ b/bundles/org.openhab.binding.mihome/README.md @@ -1,7 +1,7 @@ # Xiaomi Mi Smart Home Binding This binding allows your openHAB to communicate with the Xiaomi Smart Home Suite. -It consists of devices communicating over a ZigBee network with a ZigBee - WiFi gateway. +It consists of devices communicating over a Zigbee network with a Zigbee - WiFi gateway. The devices are very affordable and you can get them from your favourite Chinese markets like [AliExpress](https://www.aliexpress.com/) or [GearBest](https://www.gearbest.com). The sensors run on a coin cell battery for over a year. diff --git a/bundles/org.openhab.binding.openwebnet/README.md b/bundles/org.openhab.binding.openwebnet/README.md index 42e3470d2ca45..c75c33c3ddf63 100644 --- a/bundles/org.openhab.binding.openwebnet/README.md +++ b/bundles/org.openhab.binding.openwebnet/README.md @@ -1,16 +1,16 @@ # OpenWebNet (BTicino/Legrand) Binding -This binding integrates BTicino / Legrand MyHOME® BUS and ZigBee wireless (MyHOME_Play®) devices using the [OpenWebNet](https://en.wikipedia.org/wiki/OpenWebNet) protocol. +This binding integrates BTicino / Legrand MyHOME® BUS and Zigbee wireless (MyHOME_Play®) devices using the [OpenWebNet](https://en.wikipedia.org/wiki/OpenWebNet) protocol. The binding supports: -- both wired BUS/SCS (MyHOME) and wireless setups (MyHOME ZigBee). The two networks can be configured simultaneously -- auto discovery of BUS/SCS IP and ZigBee USB gateways; auto discovery of devices +- both wired BUS/SCS (MyHOME) and wireless setups (MyHOME Zigbee). The two networks can be configured simultaneously +- auto discovery of BUS/SCS IP and Zigbee USB gateways; auto discovery of devices - commands from openHAB and feedback (events) from BUS/SCS and wireless network ![MyHOMEServer1 Gateway](doc/MyHOMEServer1_gateway.jpg) ![F454 Gateway](doc/F454_gateway.png) -![ZigBee USB Gateway](doc/USB_gateway.jpg) +![Zigbee USB Gateway](doc/USB_gateway.jpg) ## Supported Things @@ -29,7 +29,7 @@ These gateways have been tested with the binding: [MH200N](https://www.homesystems-legrandgroup.com/home?p_p_id=it_smc_bticino_homesystems_search_AutocompletesearchPortlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&_it_smc_bticino_homesystems_search_AutocompletesearchPortlet_journalArticleId=2469209&_it_smc_bticino_homesystems_search_AutocompletesearchPortlet_mvcPath=%2Fview_journal_article_content.jsp), [F453](https://www.homesystems-legrandgroup.com/home?p_p_id=it_smc_bticino_homesystems_search_AutocompletesearchPortlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&_it_smc_bticino_homesystems_search_AutocompletesearchPortlet_journalArticleId=2703566&_it_smc_bticino_homesystems_search_AutocompletesearchPortlet_mvcPath=%2Fview_journal_article_content.jsp), etc. -- **ZigBee USB Gateways**, such as [BTicino 3578](https://catalogo.bticino.it/BTI-3578-IT), also known as Legrand 088328 +- **Zigbee USB Gateways**, such as [BTicino 3578](https://catalogo.bticino.it/BTI-3578-IT), also known as Legrand 088328 **NOTE** The new BTicino Living Now® and Livinglight Smart® wireless systems are not supported by this binding as they do not use the OpenWebNet protocol. @@ -49,13 +49,13 @@ The following Things and OpenWebNet `WHOs` are supported: | Dry Contact and IR Interfaces | `25` | `bus_dry_contact_ir` | Dry Contacts and IR Interfaces | Successfully tested: contact interfaces F428 and 3477; IR sensors: HC/HD/HS/L/N/NT4610 | | Energy Management | `18` | `bus_energy_meter` | Energy Management | Successfully tested: F520, F521. Partially tested: F522, F523 | -### For ZigBee (Radio) +### For Zigbee (Radio) | Category | WHO | Thing Type IDs | Description | Status | | -------------------- | :----: | :---------------------------------------------------: | :-------------------------------------------------------------------: | ------------------------------------ | -| Gateway Management | `13` | `zb_gateway` | ZigBee USB Gateway (models: BTI-3578 / LG 088328) | Tested: BTI-3578 and LG 088328 | -| Lighting | `1` | `zb_dimmer`, `zb_on_off_switch`, `zb_on_off_switch2u` | ZigBee dimmers, switches and 2-unit switches | Tested: BTI-4591, BTI-3584, BTI-4585 | -| Automation | `2` | `zb_automation` | ZigBee roller shutters | | +| Gateway Management | `13` | `zb_gateway` | Zigbee USB Gateway (models: BTI-3578 / LG 088328) | Tested: BTI-3578 and LG 088328 | +| Lighting | `1` | `zb_dimmer`, `zb_on_off_switch`, `zb_on_off_switch2u` | Zigbee dimmers, switches and 2-unit switches | Tested: BTI-4591, BTI-3584, BTI-4585 | +| Automation | `2` | `zb_automation` | Zigbee roller shutters | | ## Discovery @@ -78,9 +78,9 @@ Setting the parameter `discoveryByActivation=true` for a BUS gateway Thing makes If a device cannot be discovered automatically from Inbox it's always possible to add it manually, see [Configuring Devices](#configuring-devices). -### ZigBee Discovery +### Zigbee Discovery -- The ZigBee USB Gateway must be inserted in one of the USB ports of the openHAB computer before a discovery is started +- The Zigbee USB Gateway must be inserted in one of the USB ports of the openHAB computer before a discovery is started - _**IMPORTANT NOTE:**_ As for other openHAB bindings using the USB/serial ports, on Linux the `openhab` user must be member of the `dialout` group to be able to use USB/serial port; set the group with the following command: ```shell @@ -88,10 +88,10 @@ sudo usermod -a -G dialout openhab ``` - The user will need to logout and login to see the new group added. If you added your user to this group and still cannot get permission, reboot Linux to ensure the new group permission is attached to the `openhab` user. -- Once the ZigBee USB Gateway is added and online, a second Inbox Scan will discover devices connected to it. Because of the ZigBee radio network, device discovery will take ~40-60 sec. Be patient! -- Wireless devices must be part of the same ZigBee network of the ZigBee USB Gateway to discover them. Please refer to [this video by BTicino](https://www.youtube.com/watch?v=CoIgg_Xqhbo) to setup a ZigBee wireless network which includes the ZigBee USB Gateway -- Only powered wireless devices part of the same ZigBee network and within radio coverage of the ZigBee USB Gateway will be discovered. Unreachable or not powered devices will be discovered as _GENERIC_ devices and cannot be controlled -- Wireless control units cannot be discovered by the ZigBee USB Gateway and therefore are not supported +- Once the Zigbee USB Gateway is added and online, a second Inbox Scan will discover devices connected to it. Because of the Zigbee radio network, device discovery will take ~40-60 sec. Be patient! +- Wireless devices must be part of the same Zigbee network of the Zigbee USB Gateway to discover them. Please refer to [this video by BTicino](https://www.youtube.com/watch?v=CoIgg_Xqhbo) to setup a Zigbee wireless network which includes the Zigbee USB Gateway +- Only powered wireless devices part of the same Zigbee network and within radio coverage of the Zigbee USB Gateway will be discovered. Unreachable or not powered devices will be discovered as _GENERIC_ devices and cannot be controlled +- Wireless control units cannot be discovered by the Zigbee USB Gateway and therefore are not supported ## Thing Configuration @@ -110,14 +110,14 @@ Configuration parameters are: Alternatively the BUS/SCS Gateway thing can be configured using the `.things` file, see `openwebnet.things` example [below](#full-example). -### Configuring Wireless ZigBee USB Gateway +### Configuring Wireless Zigbee USB Gateway Configuration parameters are: -- `serialPort` : the serial port where the ZigBee USB Gateway is connected (`String`, _mandatory_) +- `serialPort` : the serial port where the Zigbee USB Gateway is connected (`String`, _mandatory_) - Examples: `/dev/ttyUSB0` (Linux/RaPi), `COM3` (Windows) -Alternatively the ZigBee USB Gateway thing can be configured using the `.things` file, see `openwebnet.things` example [below](#full-example). +Alternatively the Zigbee USB Gateway thing can be configured using the `.things` file, see `openwebnet.things` example [below](#full-example). ### Configuring Devices @@ -137,7 +137,7 @@ For any manually added device, you must configure: - energy meter F520/F521 numbered `1`: add `5` before --> `where="51"` - energy meter F522/F523 numbered `4`: add `7` before and `#0` after --> `where="74#0"` - alarm zone `2` --> `where="2"` - - example for ZigBee devices: `where=765432101#9`. The ID of the device (ADDR part) is usually written in hexadecimal on the device itself, for example `ID 0074CBB1`: convert to decimal (`7654321`) and add `01#9` at the end to obtain `where=765432101#9`. For 2-unit switch devices (`zb_on_off_switch2u`), last part should be `00#9`. + - example for Zigbee devices: `where=765432101#9`. The ID of the device (ADDR part) is usually written in hexadecimal on the device itself, for example `ID 0074CBB1`: convert to decimal (`7654321`) and add `01#9` at the end to obtain `where=765432101#9`. For 2-unit switch devices (`zb_on_off_switch2u`), last part should be `00#9`. #### Configuring Thermo @@ -210,7 +210,7 @@ OPEN command to execute: *5*8#134## | Channel Type ID (channel ID) | Applies to Thing Type IDs | Item Type | Description | Read/Write | |-----------------------------------------|---------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------------|:-----------:| -| `switch` or `switch_01`/`02` for ZigBee | `bus_on_off_switch`, `zb_on_off_switch`, `zb_on_off_switch2u` | Switch | To switch the device `ON` and `OFF` | R/W | +| `switch` or `switch_01`/`02` for Zigbee | `bus_on_off_switch`, `zb_on_off_switch`, `zb_on_off_switch2u` | Switch | To switch the device `ON` and `OFF` | R/W | | `brightness` | `bus_dimmer`, `zb_dimmer` | Dimmer | To adjust the brightness value (Percent, `ON`, `OFF`) | R/W | | `shutter` | `bus_automation` | Rollershutter | To activate roller shutters (`UP`, `DOWN`, `STOP`, Percent - [see Shutter position](#shutter-position)) | R/W | | `scenario`   | `bus_scenario_control` | String | Trigger channel for Basic scenario events [see possible values](#scenario-channels) | R (TRIGGER) | @@ -334,7 +334,7 @@ Bridge openwebnet:bus_gateway:mybridge "MyHOMEServer1" [ host="192.168.1.35", pa } ``` -ZigBee USB Gateway and things configuration - for radio devices: +Zigbee USB Gateway and things configuration - for radio devices: ```java Bridge openwebnet:zb_gateway:myZBgateway [ serialPort="COM3" ] { @@ -400,7 +400,7 @@ Switch iAlarm_Zone_3_State "Zone 3 state" ( String iAlarm_Zone_3_Alarm "Zone 3 alarm" (gAlarm) { channel="openwebnet:bus_alarm_zone:mybridge:Alarm_Zone_3:alarm" } ``` -Example items linked to OpenWebNet ZigBee devices: +Example items linked to OpenWebNet Zigbee devices: ```java Dimmer iDimmer "Dimmer [%.0f %%]" (gKitchen) [ "Lighting" ] { channel="openwebnet:zb_dimmer:myZBgateway:myZB_dimmer:brightness" } diff --git a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/OpenWebNetBindingConstants.java b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/OpenWebNetBindingConstants.java index 4b7f32ea392b4..d384c2080d8c7 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/OpenWebNetBindingConstants.java +++ b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/OpenWebNetBindingConstants.java @@ -44,7 +44,7 @@ public class OpenWebNetBindingConstants { public static final String THING_LABEL_GENERIC_DEVICE = "GENERIC Device"; // bridges public static final ThingTypeUID THING_TYPE_ZB_GATEWAY = new ThingTypeUID(BINDING_ID, "zb_gateway"); - public static final String THING_LABEL_ZB_GATEWAY = "ZigBee USB Gateway"; + public static final String THING_LABEL_ZB_GATEWAY = "Zigbee USB Gateway"; public static final ThingTypeUID THING_TYPE_BUS_GATEWAY = new ThingTypeUID(BINDING_ID, "bus_gateway"); public static final String THING_LABEL_BUS_GATEWAY = "BUS Gateway"; // other thing types @@ -81,14 +81,14 @@ public class OpenWebNetBindingConstants { public static final String THING_LABEL_BUS_AUX = "Auxiliary"; // ZIGBEE public static final ThingTypeUID THING_TYPE_ZB_ON_OFF_SWITCH = new ThingTypeUID(BINDING_ID, "zb_on_off_switch"); - public static final String THING_LABEL_ZB_ON_OFF_SWITCH = "ZigBee Switch"; + public static final String THING_LABEL_ZB_ON_OFF_SWITCH = "Zigbee Switch"; public static final ThingTypeUID THING_TYPE_ZB_ON_OFF_SWITCH_2UNITS = new ThingTypeUID(BINDING_ID, "zb_on_off_switch2u"); - public static final String THING_LABEL_ZB_ON_OFF_SWITCH_2UNITS = "ZigBee 2-units Switch"; + public static final String THING_LABEL_ZB_ON_OFF_SWITCH_2UNITS = "Zigbee 2-units Switch"; public static final ThingTypeUID THING_TYPE_ZB_DIMMER = new ThingTypeUID(BINDING_ID, "zb_dimmer"); - public static final String THING_LABEL_ZB_DIMMER = "ZigBee Dimmer"; + public static final String THING_LABEL_ZB_DIMMER = "Zigbee Dimmer"; public static final ThingTypeUID THING_TYPE_ZB_AUTOMATION = new ThingTypeUID(BINDING_ID, "zb_automation"); - public static final String THING_LABEL_ZB_AUTOMATION = "ZigBee Automation"; + public static final String THING_LABEL_ZB_AUTOMATION = "Zigbee Automation"; // #SUPPORTED THINGS SETS // ## Generic diff --git a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/discovery/OpenWebNetDeviceDiscoveryService.java b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/discovery/OpenWebNetDeviceDiscoveryService.java index c14d30c4b70cc..a1a110314f1fb 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/discovery/OpenWebNetDeviceDiscoveryService.java +++ b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/discovery/OpenWebNetDeviceDiscoveryService.java @@ -206,7 +206,7 @@ public void newDiscoveryResult(@Nullable Where where, OpenDeviceType deviceType, default: logger.warn("Device type {} is not supported, default to GENERIC device (WHERE={})", deviceType, where); if (where instanceof WhereZigBee) { - thingLabel = "ZigBee " + thingLabel; + thingLabel = "Zigbee " + thingLabel; } if (baseMsg != null) { deviceWho = baseMsg.getWho(); diff --git a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetBridgeHandler.java b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetBridgeHandler.java index 7707d01c7a88a..d46fb7bf74bf3 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetBridgeHandler.java +++ b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetBridgeHandler.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2010-2023 Contributors to the openHAB project + * Copyright (c) 2010-2022 Contributors to the openHAB project * * See the NOTICE file(s) distributed with this work for additional * information. @@ -14,8 +14,6 @@ import static org.openhab.binding.openwebnet.internal.OpenWebNetBindingConstants.*; -import java.time.Duration; -import java.time.ZonedDateTime; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -93,8 +91,6 @@ public class OpenWebNetBridgeHandler extends ConfigStatusBridgeHandler implement private static final int REFRESH_ALL_CHECK_DELAY_SEC = 20; // Delay to wait to check which devices are // online/offline - private static final int DATETIME_SYNCH_DIFF_SEC = 60; // Difference from BUS date time - private long lastRegisteredDeviceTS = -1; // timestamp when the last device has been associated to the bridge private long refreshAllDevicesDelay = 0; // delay waited before starting all devices refresh @@ -118,7 +114,6 @@ public class OpenWebNetBridgeHandler extends ConfigStatusBridgeHandler implement private boolean scanIsActive = false; // a device scan has been activated by OpenWebNetDeviceDiscoveryService; private boolean discoveryByActivation; - private boolean dateTimeSynch = false; public OpenWebNetBridgeHandler(Bridge bridge) { super(bridge); @@ -206,10 +201,8 @@ public void initialize() { passwdMasked = "******"; } discoveryByActivation = busBridgeConfig.getDiscoveryByActivation(); - dateTimeSynch = busBridgeConfig.getDateTimeSynch(); - logger.debug( - "Creating new BUS gateway with config properties: {}:{}, pwd={}, discoveryByActivation={}, dateTimeSynch={}", - host, port, passwdMasked, discoveryByActivation, dateTimeSynch); + logger.debug("Creating new BUS gateway with config properties: {}:{}, pwd={}, discoveryByActivation={}", + host, port, passwdMasked, discoveryByActivation); return new BUSGateway(host, port, passwd); } } @@ -268,11 +261,13 @@ private void disconnectGateway() { @Override public Collection> getServices() { - return Set.of(OpenWebNetDeviceDiscoveryService.class); + return Collections.singleton(OpenWebNetDeviceDiscoveryService.class); } /** * Search for devices connected to this bridge handler's gateway + * + * @param listener to receive device found notifications */ public synchronized void searchDevices() { scanIsActive = true; @@ -503,10 +498,8 @@ public void onEventMessage(@Nullable OpenMessage msg) { return; // we ignore ACKS/NACKS } // GATEWAY MANAGEMENT - if (msg instanceof GatewayMgmt gwMsg) { - if (dateTimeSynch && GatewayMgmt.DimGatewayMgmt.DATETIME.equals(gwMsg.getDim())) { - checkDateTimeDiff(gwMsg); - } + if (msg instanceof GatewayMgmt) { + // noop return; } @@ -524,7 +517,7 @@ public void onEventMessage(@Nullable OpenMessage msg) { || (discoveryByActivation && !scanIsActive))) { discoverByActivation(baseMsg); } else { - logger.debug("ownId={} has NO DEVICE associated to bridge {}: ignoring it", ownId, thing.getUID()); + logger.debug("ownId={} has NO DEVICE associated, ignoring it", ownId); } } else { deviceHandler.handleMessage(baseMsg); @@ -535,31 +528,6 @@ public void onEventMessage(@Nullable OpenMessage msg) { } } - private void checkDateTimeDiff(GatewayMgmt gwMsg) { - try { - ZonedDateTime now = ZonedDateTime.now(); - ZonedDateTime gwTime = GatewayMgmt.parseDateTime(gwMsg); - long diff = Math.abs(Duration.between(now, gwTime).toSeconds()); - if (diff > DATETIME_SYNCH_DIFF_SEC) { - logger.debug("checkDateTimeDiff: difference is more than 60s: {}s", diff); - OpenGateway gw = gateway; - if (gw != null) { - logger.debug("checkDateTimeDiff: synch DateTime to: {}", now); - try { - gw.send(GatewayMgmt.requestSetDateTime(now)); - } catch (OWNException e) { - logger.warn("checkDateTimeDiff: Exception while sending set DateTime command: {}", - e.getMessage()); - } - } - } else { - logger.debug("checkDateTimeDiff: DateTime difference: {}s", diff); - } - } catch (FrameException e) { - logger.warn("checkDateTimeDiff: FrameException while parsing {}", e.getMessage()); - } - } - @Override public void onConnected() { isGatewayConnected = true; @@ -570,9 +538,9 @@ public void onConnected() { logger.warn("received onConnected() but gateway is null"); return; } - if (gw instanceof USBGateway usbGateway) { + if (gw instanceof USBGateway) { logger.info("---- CONNECTED to Zigbee USB gateway bridge '{}' (serialPort: {})", thing.getUID(), - usbGateway.getSerialPortName()); + ((USBGateway) gw).getSerialPortName()); } else { logger.info("---- CONNECTED to BUS gateway bridge '{}' ({}:{})", thing.getUID(), ((BUSGateway) gw).getHost(), ((BUSGateway) gw).getPort()); @@ -733,15 +701,14 @@ public String thingIdFromWhere(Where where) { */ public String normalizeWhere(Where where) { String str = where.value(); - if (where instanceof WhereZigBee whereZigBee) { - str = whereZigBee.valueWithUnit(WhereZigBee.UNIT_ALL); // 76543210X#9 --> 765432100#9 + if (where instanceof WhereZigBee) { + str = ((WhereZigBee) where).valueWithUnit(WhereZigBee.UNIT_ALL); // 76543210X#9 --> 765432100#9 } else { if (str.indexOf("#4#") == -1) { // skip APL#4#bus case if (str.indexOf('#') == 0) { // Thermo central unit (#0) or zone via central unit (#Z, Z=[1-99]) --> Z, // Alarm Zone (#Z) --> Z str = str.substring(1); - } else if (str.indexOf('#') > 0 && str.charAt(0) != '0') { // Thermo zone Z and actuator N (Z#N, - // Z=[1-99], N=[1-9]) --> Z + } else if (str.indexOf('#') > 0) { // Thermo zone Z and actuator N (Z#N, Z=[1-99], N=[1-9]) --> Z str = str.substring(0, str.indexOf('#')); } } diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/binding/binding.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/binding/binding.xml new file mode 100644 index 0000000000000..b40756f0d8876 --- /dev/null +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/binding/binding.xml @@ -0,0 +1,10 @@ + + + + OpenWebNet (BTicino/Legrand) Binding + The OpenWebNet Binding integrates the BTicino/Legrand 'MyHOME' connected home system using the OpenWebNet + protocol. It supports BUS (SCS) and Zigbee USB gateways and devices. + + diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/i18n/openwebnet.properties b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/i18n/openwebnet.properties index 562ca3eaa79b1..ad9d91eb2b12a 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/i18n/openwebnet.properties +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/i18n/openwebnet.properties @@ -1,7 +1,7 @@ # binding binding.openwebnet.name = OpenWebNet (BTicino/Legrand) Binding -binding.openwebnet.description = The OpenWebNet Binding integrates the BTicino/Legrand 'MyHOME' connected home system using the OpenWebNet protocol. It supports BUS (SCS) and ZigBee USB gateways and devices. +binding.openwebnet.description = The OpenWebNet Binding integrates the BTicino/Legrand 'MyHOME' connected home system using the OpenWebNet protocol. It supports BUS (SCS) and Zigbee USB gateways and devices. # thing types @@ -37,16 +37,16 @@ thing-type.openwebnet.bus_thermo_zone.label = Thermo Zone thing-type.openwebnet.bus_thermo_zone.description = An OpenWebNet BUS/SCS configured thermo zone (managed via Central Unit or stand alone). thing-type.openwebnet.generic_device.label = Generic Device thing-type.openwebnet.generic_device.description = An OpenWebNet Generic Device. -thing-type.openwebnet.zb_automation.label = ZigBee Automation -thing-type.openwebnet.zb_automation.description = An OpenWebNet ZigBee automation device to control roller shutters, blinds, etc. BTicino models: xxx/yyyy/etc. -thing-type.openwebnet.zb_dimmer.label = ZigBee Dimmer -thing-type.openwebnet.zb_dimmer.description = An OpenWebNet ZigBee dimmer for the dimmer control of 1 light. BTicino models: 4585/4594/etc. -thing-type.openwebnet.zb_gateway.label = ZigBee USB Gateway -thing-type.openwebnet.zb_gateway.description = This USB gateway (BTicino/Legrand models: BTI-3578/088328) connects to a BTicino/Legrand ZigBee network and uses the OpenWebNet protocol. For more information see: https://catalogo.bticino.it/BTI-3578-IT and https://www.legrand.com/ecatalogue/088328-openweb-net-zigbee-gateway-radio-interface.html -thing-type.openwebnet.zb_on_off_switch.label = ZigBee Switch -thing-type.openwebnet.zb_on_off_switch.description = An OpenWebNet ZigBee switch (actuator) for the control of 1 load/light. BTicino models: 4591/3684/etc. -thing-type.openwebnet.zb_on_off_switch2u.label = ZigBee 2-units Switch -thing-type.openwebnet.zb_on_off_switch2u.description = An OpenWebNet ZigBee 2-units switch (actuator) for the control of 2 loads/lights. BTicino model: 4592 +thing-type.openwebnet.zb_automation.label = Zigbee Automation +thing-type.openwebnet.zb_automation.description = An OpenWebNet Zigbee automation device to control roller shutters, blinds, etc. BTicino models: xxx/yyyy/etc. +thing-type.openwebnet.zb_dimmer.label = Zigbee Dimmer +thing-type.openwebnet.zb_dimmer.description = An OpenWebNet Zigbee dimmer for the dimmer control of 1 light. BTicino models: 4585/4594/etc. +thing-type.openwebnet.zb_gateway.label = Zigbee USB Gateway +thing-type.openwebnet.zb_gateway.description = This USB gateway (BTicino/Legrand models: BTI-3578/088328) connects to a BTicino/Legrand Zigbee network and uses the OpenWebNet protocol. For more information see: https://catalogo.bticino.it/BTI-3578-IT and https://www.legrand.com/ecatalogue/088328-openweb-net-zigbee-gateway-radio-interface.html +thing-type.openwebnet.zb_on_off_switch.label = Zigbee Switch +thing-type.openwebnet.zb_on_off_switch.description = An OpenWebNet Zigbee switch (actuator) for the control of 1 load/light. BTicino models: 4591/3684/etc. +thing-type.openwebnet.zb_on_off_switch2u.label = Zigbee 2-units Switch +thing-type.openwebnet.zb_on_off_switch2u.description = An OpenWebNet Zigbee 2-units switch (actuator) for the control of 2 loads/lights. BTicino model: 4592 # thing types config @@ -99,15 +99,15 @@ thing-type.config.openwebnet.generic_device.where.description = It identifies on thing-type.config.openwebnet.zb_automation.shutterRun.label = Shutter Run thing-type.config.openwebnet.zb_automation.shutterRun.description = Time (in ms) to go from max position (e.g. CLOSED) to the other position (e.g. OPEN). Example: 12000 (=12sec). Use AUTO (default) to calibrate the shutter automatically (UP->DOWN->Position%) the first time a Position command (%) is sent. thing-type.config.openwebnet.zb_automation.where.label = OpenWebNet Address (where) -thing-type.config.openwebnet.zb_automation.where.description = It identifies one ZigBee device. Example: 765432101#9 +thing-type.config.openwebnet.zb_automation.where.description = It identifies one Zigbee device. Example: 765432101#9 thing-type.config.openwebnet.zb_dimmer.where.label = OpenWebNet Address (where) -thing-type.config.openwebnet.zb_dimmer.where.description = It identifies one ZigBee device. Example: 765432101#9 +thing-type.config.openwebnet.zb_dimmer.where.description = It identifies one Zigbee device. Example: 765432101#9 thing-type.config.openwebnet.zb_gateway.serialPort.label = Serial Port -thing-type.config.openwebnet.zb_gateway.serialPort.description = Serial port where the OpenWebNet ZigBee USB Gateway is connected. Example: COM3 (Win), /dev/ttyUSB0 (Linux), etc. +thing-type.config.openwebnet.zb_gateway.serialPort.description = Serial port where the OpenWebNet Zigbee USB Gateway is connected. Example: COM3 (Win), /dev/ttyUSB0 (Linux), etc. thing-type.config.openwebnet.zb_on_off_switch.where.label = OpenWebNet Address (where) -thing-type.config.openwebnet.zb_on_off_switch.where.description = It identifies one ZigBee device. Example: 765432101#9 +thing-type.config.openwebnet.zb_on_off_switch.where.description = It identifies one Zigbee device. Example: 765432101#9 thing-type.config.openwebnet.zb_on_off_switch2u.where.label = OpenWebNet Address (where) -thing-type.config.openwebnet.zb_on_off_switch2u.where.description = It identifies one ZigBee device. Example: 765432100#9 (use unit=00 at the end) +thing-type.config.openwebnet.zb_on_off_switch2u.where.description = It identifies one Zigbee device. Example: 765432100#9 (use unit=00 at the end) # channel types diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBAutomation.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBAutomation.xml index d647cc394ce8c..2ce69d8765ebd 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBAutomation.xml +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBAutomation.xml @@ -10,8 +10,8 @@ - - An OpenWebNet ZigBee automation device to control roller shutters, blinds, etc. BTicino models: + + An OpenWebNet Zigbee automation device to control roller shutters, blinds, etc. BTicino models: xxx/yyyy/etc. @@ -38,7 +38,7 @@ - It identifies one ZigBee device. Example: 765432101#9 + It identifies one Zigbee device. Example: 765432101#9 diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBDimmer.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBDimmer.xml index bbbf8f68a9c54..d1580460e900d 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBDimmer.xml +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBDimmer.xml @@ -4,14 +4,14 @@ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + - - An OpenWebNet ZigBee dimmer for the dimmer control of 1 light. BTicino models: 4585/4594/etc. + + An OpenWebNet Zigbee dimmer for the dimmer control of 1 light. BTicino models: 4585/4594/etc. @@ -28,7 +28,7 @@ - It identifies one ZigBee device. Example: 765432101#9 + It identifies one Zigbee device. Example: 765432101#9 diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch.xml index 07ed0c72f62d7..41a5cd3fcb286 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch.xml +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch.xml @@ -10,8 +10,8 @@ - - An OpenWebNet ZigBee switch (actuator) for the control of 1 load/light. BTicino models: 4591/3684/etc. + + An OpenWebNet Zigbee switch (actuator) for the control of 1 load/light. BTicino models: 4591/3684/etc. @@ -28,7 +28,7 @@ - It identifies one ZigBee device. Example: 765432101#9 + It identifies one Zigbee device. Example: 765432101#9 diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch2Units.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch2Units.xml index f755795873e73..4c795c689cc1c 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch2Units.xml +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/ZBOnOffSwitch2Units.xml @@ -4,14 +4,14 @@ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + - - An OpenWebNet ZigBee 2-units switch (actuator) for the control of 2 loads/lights. BTicino model: 4592 + + An OpenWebNet Zigbee 2-units switch (actuator) for the control of 2 loads/lights. BTicino model: 4592 @@ -29,7 +29,7 @@ - It identifies one ZigBee device. Example: 765432100#9 (use unit=00 at the end) + It identifies one Zigbee device. Example: 765432100#9 (use unit=00 at the end) diff --git a/bundles/org.openhab.binding.plugwise/README.md b/bundles/org.openhab.binding.plugwise/README.md index 0a4e805cf20f3..6d9bc055ddf9b 100644 --- a/bundles/org.openhab.binding.plugwise/README.md +++ b/bundles/org.openhab.binding.plugwise/README.md @@ -1,6 +1,6 @@ # Plugwise Binding -The Plugwise binding adds support to openHAB for [Plugwise](https://www.plugwise.com) ZigBee devices using the Stick. +The Plugwise binding adds support to openHAB for [Plugwise](https://www.plugwise.com) Zigbee devices using the Stick. Users should use the Plugwise Source software to define the network, reset devices or perform firmware upgrades. @@ -14,11 +14,11 @@ The binding supports the following Plugwise devices: | Device Type | Description | Thing Type | |-------------|------------------------------------------------------------------------------------------|------------| | Circle | A power outlet plug that provides energy measurement and switching control of appliances | circle | -| Circle+ | A special Circle that coordinates the ZigBee network and acts as network gateway | circleplus | +| Circle+ | A special Circle that coordinates the Zigbee network and acts as network gateway | circleplus | | Scan | A wireless motion (PIR) and light sensor | scan | | Sense | A wireless temperature and humidity sensor | sense | | Stealth | A Circle with a more compact form factor that can be built-in | stealth | -| Stick | A ZigBee USB controller that openHAB uses to communicate with the Circle+ | stick | +| Stick | A Zigbee USB controller that openHAB uses to communicate with the Circle+ | stick | | Switch | A wireless wall switch | switch | ## Discovery @@ -44,7 +44,7 @@ Similarly the MAC addresses of the Scan, Sense and Switch can also be obtained f | Configuration Parameter | Required | Default | Description | |-------------------------|----------|--------------|-----------------------------------------------------------------------------------| | serialPort | X | /dev/ttyUSB0 | The serial port of the Stick, e.g. "/dev/ttyUSB0" for Linux or "COM1" for Windows | -| messageWaitTime | | 150 | The time to wait between messages sent on the ZigBee network (in ms) | +| messageWaitTime | | 150 | The time to wait between messages sent on the Zigbee network (in ms) | To determine the serial port in Linux, insert the Stick, then execute the `dmesg` command. The last few lines of the output will contain the USB port of the Stick (e.g. `/dev/ttyUSB0`). @@ -60,7 +60,7 @@ To access the serial port of the Stick on Linux, the user running openHAB needs | powerStateChanging | | commandSwitching | Controls if the power state can be changed with commands or is always on/off (commandSwitching, alwaysOn or alwaysOff) | | suppliesPower | | false | Enables power production measurements (true or false) | | measurementInterval | | 60 | The energy measurement interval (in minutes) (5 to 60) | -| temporarilyNotInNetwork | | false | Stops searching for an unplugged device on the ZigBee network traffic (true or false) | +| temporarilyNotInNetwork | | false | Stops searching for an unplugged device on the Zigbee network traffic (true or false) | ### Scan diff --git a/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/binding/binding.xml b/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/binding/binding.xml new file mode 100644 index 0000000000000..e0b44b39dce9b --- /dev/null +++ b/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/binding/binding.xml @@ -0,0 +1,10 @@ + + + + Plugwise Binding + Monitor and control Plugwise Zigbee devices using the Stick. Supported devices are the Circle, Circle+, + Scan, Sense, Stealth and Switch. + + diff --git a/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/i18n/plugwise.properties b/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/i18n/plugwise.properties index 991c94d8563c4..62c4121eb81dc 100644 --- a/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/i18n/plugwise.properties +++ b/bundles/org.openhab.binding.plugwise/src/main/resources/OH-INF/i18n/plugwise.properties @@ -1,6 +1,6 @@ -# add-on -addon.plugwise.name = Plugwise Binding -addon.plugwise.description = Monitor and control Plugwise Zigbee devices using the Stick. Supported devices are the Circle, Circle+, Scan, Sense, Stealth and Switch. +# binding +binding.plugwise.name = Plugwise Binding +binding.plugwise.description = Monitor and control Plugwise Zigbee devices using the Stick. Supported devices are the Circle, Circle+, Scan, Sense, Stealth and Switch. # bridge type configuration parameters diff --git a/bundles/org.openhab.binding.plugwiseha/README.md b/bundles/org.openhab.binding.plugwiseha/README.md index 434df6714c371..05db29bbfbe9f 100644 --- a/bundles/org.openhab.binding.plugwiseha/README.md +++ b/bundles/org.openhab.binding.plugwiseha/README.md @@ -1,7 +1,7 @@ # PlugwiseHA Binding The Plugwise Home Automation binding adds support to openHAB for the [Plugwise Home Automation ecosystem](https://www.plugwise.com/en_US/adam_zone_control). -This system is built around a gateway from Plugwise called the 'Adam' which incorporates a ZigBee controller to manage thermostatic radiator valves, room thermostats, floor heating pumps, et cetera. +This system is built around a gateway from Plugwise called the 'Adam' which incorporates a Zigbee controller to manage thermostatic radiator valves, room thermostats, floor heating pumps, et cetera. Users can manage and control this system either via a web app or a mobile phone app developed by Plugwise. The (web) app allows users to define heating zone's (e.g. rooms) and add radiator valves to those rooms to manage and control their heating irrespective of other rooms. diff --git a/bundles/org.openhab.binding.tacmi/README.md b/bundles/org.openhab.binding.tacmi/README.md index d1800c074d537..c4e198c72e553 100644 --- a/bundles/org.openhab.binding.tacmi/README.md +++ b/bundles/org.openhab.binding.tacmi/README.md @@ -6,41 +6,42 @@ Since I only have the new UVR16x2, it has only been tested with this controller. The binding supports two ways to interact with the C.M.I. and all devices connected to the C.M.I. via the CAN bus. These modes are: -Via a "Schema API Page" -- Read values from output nodes -- Change values for controllable nodes +Via a "Schema API Page" + * Read values from output nodes + * Change values for controllable nodes CoE (CAN over Ethernet) Connection + * Receive data from analog CAN-outputs defined in TAPPS2 + * Receive data from digital CAN-outputs defined in TAPPS2 + * Send ON/OFF to digital CAN-inputs defined in TAPPS2 + * Send numeric values to analog CAN-inputs defined in TAPPS2 -- Receive data from analog CAN-outputs defined in TAPPS2 -- Receive data from digital CAN-outputs defined in TAPPS2 -- Send ON/OFF to digital CAN-inputs defined in TAPPS2 -- Send numeric values to analog CAN-inputs defined in TAPPS2 Depending on what you want to achieve, either the "Schema API Page" or the CoE way might be better. As rough guidance: Anything you want to provide to the TA equipment it has to work / operate with the CoE might be better. If you plan things mainly for user interaction the "Schema API Page" might be better. + ## Prerequisites ### Setting up the "Schema API Page" -The "Schema API page" is a special schema page created via TA's _TA-Designer_ application available as download on their web site. +The "Schema API page" is a special schema page created via TA's *TA-Designer* application available as download on their web site. This page just needs to exist and be deployed on the C.M.I. but it dosn't need to be linked by the other schema pages you are using to control your TA installation. All objects from this special 'API' page are automatically mapped as channels of this thing, so the labels of the objects on this page have to follow a specific schema. -When adding objects to this page, the schema for the Object's _Pre-Text_ field has to follow the schema ` :`. +When adding objects to this page, the schema for the Object's *Pre-Text* field has to follow the schema ` : `. Maybe this screenshot shows it best: ![screenshot-channel-object-details](doc/images/channel-object-details.png) -The Text from the _Pre-Text_ will be used to define the channel. -The first word _tempCollector_ (highlighted in the screenshot) will be used as channel name, so it has to be unique. -Everything else till the final _:_ will be used as channel description. -Be sure to have at least 2 words in the _Pre-Text_ as we need both - the channel name and a description. +The Text from the *Pre-Text* will be used to define the channel. +The first word *tempCollector* (highlighted in the screenshot) will be used as channel name, so it has to be unique. +Everything else till the final *:* will be used as channel description. +Be sure to have at least 2 words in the *Pre-Text* as we need both - the channel name and a description. The binding will log an error otherwise. Also keep in mind: for the channel name we have to adhere to the openHAB channel name conventions - so just use letters and numbers without any special sings here. The type of the channel will be automatically determined by the type of the object added. @@ -70,19 +71,19 @@ Don’t forget to reboot the CMI after you uploaded the coe.csv file. ## Supported Bridge and Things -- TA C.M.I. schema API connection - Thing +* TA C.M.I. schema API connection - Thing This thing reflecting one of our 'schema API page' as defined in the prerequisites. This thing doesn't need the bridge. Multiple of these pages on different C.M.I.'s could be defined within an openHAB instance. -- TA C.M.I. CoE Bridge +* TA C.M.I. CoE Bridge In order to get the CAN over Ethernet (COE) envionment working a `coe-bridge` has to be created. The bridge itself opens the UDP port 5441 for communication with the C.M.I. devices. The bridge could be used for multiple C.M.I. devices. -- TA C.M.I. CoE Connection - Thing +* TA C.M.I. CoE Connection - Thing This thing reflects a connection to a node behind a specific C.M.I.. This node could be every CAN-Capable device from TA which allows to define a CAN-Input. @@ -138,9 +139,9 @@ The channels have a parameter allowing to configure their update behavior: The behavior in detail: -- `Default` (`0`): When the channel is 'read-only' the update-policy defaults to _On-Fetch_ . When the channel is linked to something that can be modified it defaults to _On-Change_ . -- `On-Fetch` (`1`): This is the default for read-only values. This means the channel is updated every time the schema page is polled. Ideally for values you want to monitor and log into charts. -- `On-Change` (`2`): When channel values can be changed via OH it is better to only update the channel when the value changes. The binding will cache the previous value and only send an update when it changes to the previous known value. This is especially useful if you intend to link other things (like i.e. Zigbee or Shelly switches) to the TA via OH that can be controlled by different sources. This prevents unintended toggles or even toggle-loops. +* `Default` (`0`): When the channel is 'read-only' the update-policy defaults to _On-Fetch_ . When the channel is linked to something that can be modified it defaults to _On-Change_ . +* `On-Fetch` (`1`): This is the default for read-only values. This means the channel is updated every time the schema page is polled. Ideally for values you want to monitor and log into charts. +* `On-Change` (`2`): When channel values can be changed via OH it is better to only update the channel when the value changes. The binding will cache the previous value and only send an update when it changes to the previous known value. This is especially useful if you intend to link other things (like i.e. Zigbee or Shelly switches) to the TA via OH that can be controlled by different sources. This prevents unintended toggles or even toggle-loops. ### TA C.M.I. CoE Connection @@ -204,6 +205,7 @@ The known measure types are: | 12 | Megawatthours | | | 13..21 | Unknown | | + ## Full Example As there is no common configuration as everything depends on the configuration of the TA devices. @@ -211,7 +213,7 @@ So we just can provide some samples providing the basics so you can build the co Example of a _.thing_ file: -```java +``` Thing tacmi:cmiSchema:apiLab "CMIApiPage"@"lab" [ host="192.168.178.33", username="user", password="secret", schemaId=4 ] Bridge tacmi:coe-bridge:coe-bridge "TA C.M.I. Bridge" { @@ -229,7 +231,7 @@ Bridge tacmi:coe-bridge:coe-bridge "TA C.M.I. Bridge" Sample _.items_-File: -```java +``` # APIPage-items Number TACMI_Api_tempCollector "Collector temp [%.1f °C]" {channel="tacmi:cmiSchema:apiLab:tempCollector"} String TACMI_Api_hc1OperationMode "Heating Curcuit 1 Operation Mode [%s]" {channel="tacmi:cmiSchema:apiLab:hc1OperationMode"} @@ -244,7 +246,7 @@ Switch TACMI_Digital_Out_1 "TA output switch 1 [%s]" {channel="tacmi:cmi:coe Sample _.sitemap_ snipplet -```perl +``` sitemap heatingTA label="heatingTA" { Text item=TACMI_Api_tempCollector @@ -265,7 +267,7 @@ You might already have noticed that some state information is in German. As I have set the `Accept-Language`-Http-Header to `en` for all request and found no other way setting a language for the schema pages I assume it is a lack of internationalization in the C.M.I. You could circumvent this by creating map files to map things properly to your language. -If you want to see the possible options of a multi-state field you could open the _schema API page_ with your web browser and click on the object. +If you want to see the possible options of a multi-state field you could open the *schema API page* with your web browser and click on the object. A Popup with an option field will be shown showing all possible options, like in this screenshot: ![screenshot-operation-mode-values](doc/images/operation-mode-values.png)