diff --git a/bundles/org.openhab.binding.panasonicbdp/README.md b/bundles/org.openhab.binding.panasonicbdp/README.md index d4f5683134576..ef39895458f33 100644 --- a/bundles/org.openhab.binding.panasonicbdp/README.md +++ b/bundles/org.openhab.binding.panasonicbdp/README.md @@ -7,9 +7,9 @@ This binding connects Panasonic Blu-ray players from 2011/2012 and UHD Blu-ray p **Supported UHD models:** DP-UB420/424, DP-UB820/824 & DP-UB9000/9004. **Please note:** The player must be on the same IP subnet as the openHAB server for this binding to function. -If the connection to the player originates from a different subnet, 404 response errors are sent in response to all requests. +If the connection to the player originates from a different subnet, HTTP 404 errors are returned for all requests. -To enable network remote control of the Blu-ray model players, configure the following settings: +To enable network remote control of the Blu-ray players (`bd-player`), configure the following settings: - **Player Settings/Network/Network Settings/Remote Device Settings** @@ -18,36 +18,36 @@ Then make sure you have the following values set: - **Remote Device Operation: On** - **Registration Type: Automatic** -For the UHD models, Voice Control must be enabled for the player's http interface to be active: +For the UHD models (`uhd-player`), Voice Control must be enabled for the player's HTTP interface to be active: - **Player Settings/Network/Voice Control: On** -To enable the binding to control the player while off (network active while off), Quick Start mode must be On as follows: +To allow the binding to control the player while it is off (network active in standby), set Quick Start to On: - **Player Settings/System/Quick Start: On** **UHD Model Command Authentication:** The UHD models require authentication to use the control API. -A player key must be specified in the thing configuration in order for the `power`, `button` and `control` channels to work. +A player key must be specified in the Thing configuration in order for the `power`, `button` and `control` channels to work. UHD model players that are patched do not require a player key. See the [AVForums discussions](https://www.avforums.com/forums/blu-ray-dvd-player-multiregion-hacks.126/) of the DP-UB420/820/9000 players for more information. ## Supported Things -There are two supported thing types, which represent either a BD player or a UHD player. +There are two supported Thing types, which represent either a BD player or a UHD player. A supported Blu-ray player uses the `bd-player` id and a supported UHD Blu-ray player uses the `uhd-player` id. Multiple Things can be added if more than one player is to be controlled. ## Discovery Auto-discovery is supported if the player can be located on the local network using UPnP. -Otherwise the Thing must be manually added. +Otherwise, the Thing must be added manually. ## Binding Configuration -The binding has no configuration options, all configuration is done at Thing level. +The binding has no configuration options; all configuration is done at the Thing level. ## Thing Configuration @@ -56,16 +56,16 @@ The Thing has a few configuration parameters: | Name | Type | Description | Default | Required | |-----------|---------|-------------------------------------------------------------------------------------------------------|---------|----------| | hostName | text | The host name or IP address of the player. | N/A | yes | -| refresh | integer | Overrides the refresh interval of the player status. Minimum interval is 5 seconds. | 5 | no | -| playerKey | text | For UHD models, to enable authentication of control commands, a key for the player must be specified. | N/A | no | +| refresh | integer | Overrides the refresh interval for the player status. The minimum interval is 5 seconds. | 5 | no | +| playerKey | text | For UHD models, to enable authentication of control commands, specify the player's key. | N/A | no | Some notes: -- The control protocol of these players is undocumented and may not work consistently in all situations -- The UHD models only support playback elapsed time (not title total time or chapter information) reporting +- The control protocol for these players is undocumented and may not work consistently in all situations. +- The UHD models only report playback elapsed time (not total title time or chapter information). - The time and chapter information is only available when playing a Blu-ray disc (not DVD or CD) -- There are reports in forum postings that not all commands work on all of the older models (i.e.: Power does not work on DMP-BDT110) -- Not all status information is available from all BD models (i.e.: playback elapsed time not reported by some models) +- There are reports in forum postings that not all commands work on all of the older models (e.g., Power does not work on the DMP-BDT110). +- Not all status information is available from all BD models (e.g., playback elapsed time is not reported by some models). - Netflix is no longer supported on the BD models. ## Channels @@ -76,12 +76,12 @@ The following channels are available: |-----------------|-------------|------------|---------------------------------------------------------------------------------------| | power | Switch | RW | Turn the power for the player ON or OFF. | | button | String | W | Sends a command to the player. See lists of available commands in Appendix A below. | -| control | Player | RW | Control Playback e.g. Play/Pause/Next/Previous/FForward/Rewind. | -| player-status | String | R | The player status i.e.: Power Off, Tray Open, Stopped, Playback, Pause Playback, etc. | +| control | Player | RW | Control playback, e.g., Play/Pause/Next/Previous/Fast Forward/Rewind. | +| player-status | String | R | The player status, such as Power Off, Tray Open, Stopped, Playback, Pause Playback. | | time-elapsed | Number:Time | R | The total playback time elapsed. | -| time-total | Number:Time | R | The total length of the current playing title. Not on UHD models. | -| chapter-current | Number | R | The current chapter number. Not on UHD models. | -| chapter-total | Number | R | The total number of chapters in the current title. Not on UHD models. | +| time-total | Number:Time | R | The total length of the current playing title. Not available on UHD models. | +| chapter-current | Number | R | The current chapter number. Not available on UHD models. | +| chapter-total | Number | R | The total number of chapters in the current title. Not available on UHD models. | ## Full Example @@ -128,7 +128,7 @@ sitemap panasonicbdp label="Panasonic Blu-ray" { Text item=Player_TimeTotal icon="time" Text item=Player_ChapterCurrent icon="time" Text item=Player_ChapterTotal icon="time" - Buttongrid label="Remote Control" staticIcon=material:tv_remote item=Player_Button buttons=[1:1:POWER="Power"=switch-off, 1:3:OP_CL="Open"=f7:eject, 2:1:D1="1", 2:2:D2="2", 2:3:D3="3", 3:1:D4="4", 3:2:D5="5", 3:3:D6="6", 4:1:D7="7", 4:2:D8="8", 4:3:D9="9", 5:1:SHARP="# [_]", 5:2:D0="0", 5:3:CLEAR="* Cancel", 6:1:NETFLIX="Netflix", 6:2:MLTNAVI="Home"=f7:house, 6:3:NETWORK="Internet", 7:1:PUPMENU="Pop-Up Menu", 7:2:UP="UP"=f7:arrowtriangle_up, 7:3:TITLE="Top Menu", 8:1:LEFT="Left"=f7:arrowtriangle_left, 8:2:SELECT="OK", 8:3:RIGHT="Right"=f7:arrowtriangle_right, 9:1:MENU="Option", 9:2:DOWN="Down"=f7:arrowtriangle_down, 9:3:RETURN="Return", 10:1:REV="Rev"=f7:backward, 10:2:PLAYBACK="Play"=f7:play, 10:3:CUE="Fwd"=f7:forward, 11:1:SKIPREV="Prev"=f7:backward_end_alt, 11:2:PAUSE="Pause"=f7:pause, 11:3:SKIPFWD="Next"=f7:forward_end_alt, 12:1:CLOSED_CAPTION="CC", 12:2:STOP="Stop"=f7:stop, 12:3:MIRACAST="Mirroring", 13:1:RED="Red", 13:2:GREEN="Green", 13:3:YELLOW="Yellow", 14:1:BLUE="Blue", 14:2:DSPSEL="Status", 14:3:PLAYBACKINFO="Playback Info", 15:1:TITLEONOFF="Subtitle", 15:2:AUDIOSEL="Audio", 15:3:PICTURESETTINGS="Video Setting", 16:1:HDR_PICTUREMODE="HDR Setting", 16:2:SOUNDEFFECT="Sound Effect", 16:3:HIGHCLARITY="High Clarity", 17:2:SKIP_THE_TRAILER="Skip The Trailer"] + Buttongrid label="Remote Control" staticIcon=material:tv_remote item=Player_Button buttons=[1:1:POWER="Power"=switch-off, 1:3:OP_CL="Open"=f7:eject, 2:1:D1="1", 2:2:D2="2", 2:3:D3="3", 3:1:D4="4", 3:2:D5="5", 3:3:D6="6", 4:1:D7="7", 4:2:D8="8", 4:3:D9="9", 5:1:SHARP="# [_]", 5:2:D0="0", 5:3:CLEAR="* Cancel", 6:1:NETFLIX="Netflix", 6:2:MLTNAVI="Home"=f7:house, 6:3:NETWORK="Internet", 7:1:PUPMENU="Pop-up Menu", 7:2:UP="UP"=f7:arrowtriangle_up, 7:3:TITLE="Top Menu", 8:1:LEFT="Left"=f7:arrowtriangle_left, 8:2:SELECT="OK", 8:3:RIGHT="Right"=f7:arrowtriangle_right, 9:1:MENU="Option", 9:2:DOWN="Down"=f7:arrowtriangle_down, 9:3:RETURN="Return", 10:1:REV="Rev"=f7:backward, 10:2:PLAYBACK="Play"=f7:play, 10:3:CUE="Fwd"=f7:forward, 11:1:SKIPREV="Prev"=f7:backward_end_alt, 11:2:PAUSE="Pause"=f7:pause, 11:3:SKIPFWD="Next"=f7:forward_end_alt, 12:1:CLOSED_CAPTION="CC", 12:2:STOP="Stop"=f7:stop, 12:3:MIRACAST="Mirroring", 13:1:RED="Red", 13:2:GREEN="Green", 13:3:YELLOW="Yellow", 14:1:BLUE="Blue", 14:2:DSPSEL="Status", 14:3:PLAYBACKINFO="Playback Info", 15:1:TITLEONOFF="Subtitle", 15:2:AUDIOSEL="Audio", 15:3:PICTURESETTINGS="Video Setting", 16:1:HDR_PICTUREMODE="HDR Setting", 16:2:SOUNDEFFECT="Sound Effect", 16:3:HIGHCLARITY="High Clarity", 17:2:SKIP_THE_TRAILER="Skip The Trailer"] } } ``` @@ -152,7 +152,7 @@ sitemap panasonicbdp label="Panasonic Blu-ray" { | Open/Close | OP_CL | | Status | DSPSEL | | Top Menu | TITLE | -| Pop-Up Menu | PUPMENU | +| Pop-up Menu | PUPMENU | | Up | UP | | Down | DOWN | | Left | LEFT | @@ -179,7 +179,7 @@ sitemap panasonicbdp label="Panasonic Blu-ray" { | Yellow | YELLOW | | Home | MLTNAVI | | Netflix (broken/too old) | NETFLIX | -| VIERA Cast | V_CAST | +| Viera Cast | V_CAST | | Network | NETWORK | | Setup | SETUP | | Exit | EXIT | @@ -238,7 +238,7 @@ sitemap panasonicbdp label="Panasonic Blu-ray" { | Yellow | YELLOW | | Home | MLTNAVI | | Netflix | NETFLIX | -| VIERA Cast | V_CAST | +| Viera Cast | V_CAST | | Network | NETWORK | | Setup | SETUP | | Exit | EXIT | diff --git a/bundles/org.openhab.binding.panasonicbdp/src/main/resources/OH-INF/i18n/panasonicbdp.properties b/bundles/org.openhab.binding.panasonicbdp/src/main/resources/OH-INF/i18n/panasonicbdp.properties index 2735c2cd38858..8b3485e333a2e 100644 --- a/bundles/org.openhab.binding.panasonicbdp/src/main/resources/OH-INF/i18n/panasonicbdp.properties +++ b/bundles/org.openhab.binding.panasonicbdp/src/main/resources/OH-INF/i18n/panasonicbdp.properties @@ -90,8 +90,10 @@ channel-type.panasonicbdp.player-status.label = Player Status channel-type.panasonicbdp.player-status.description = The current player status channel-type.panasonicbdp.time-elapsed.label = Playback Time channel-type.panasonicbdp.time-elapsed.description = The current playback time elapsed +channel-type.panasonicbdp.time-elapsed.state.pattern = %1$tT channel-type.panasonicbdp.time-total.label = Total Time channel-type.panasonicbdp.time-total.description = The total length of the current title +channel-type.panasonicbdp.time-total.state.pattern = %1$tT channel-type.panasonicbdp.uhd-button.label = Remote Button channel-type.panasonicbdp.uhd-button.description = A remote button press to send to the player channel-type.panasonicbdp.uhd-button.state.option.POWERON = Power On diff --git a/bundles/org.openhab.binding.paradoxalarm/README.md b/bundles/org.openhab.binding.paradoxalarm/README.md index 142dde72ad545..f20ee424f10a7 100644 --- a/bundles/org.openhab.binding.paradoxalarm/README.md +++ b/bundles/org.openhab.binding.paradoxalarm/README.md @@ -7,59 +7,59 @@ With the power of openHAB this binding can be used for complex decision rules co Examples: - All partitions are armed, therefore there is no one at home. -- Window is opened for more than 10 minutes and temperature outside is bellow XXX degrees, send mail/any other supported notification to particular people. +- Window is opened for more than 10 minutes and temperature outside is below XXX degrees, send mail/any other supported notification to particular people. ## Supported Paradox panels/systems -Currently binding supports the following panels: EVO192, EVO48(not tested), EVO96(not tested) +Currently binding supports the following panels: EVO192, EVO48 (not tested), EVO96 (not tested) ## Supported Things -| Thing | Thing Type | Description | -|-----------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ip150 | Bridge | The bridge is used to communicate with IP150 ethernet module attached to Paradox security system. | -| panel | Thing | This is representation of Paradox panel. Has the general information about the main panel module, i.e. serial number, firmware/hardware/software versions, panel type, etc... | -| partition | Thing | The partition is grouped aggregation of multiple zones. It's also referred in Paradox Babyware as "Area". | -| zone | Thing | Paradox zone. Can be anything - magnetic, motion or any other opened/closed sensor. State channel is contact, "low battery" and "is tampered" channels are switch, label is String | +| Thing | Thing Type | Description | +|-----------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ip150 | Bridge | The bridge is used to communicate with the IP150 ethernet module attached to the Paradox security system. | +| panel | Thing | This is the representation of the Paradox panel. Has the general information about the main panel module, such as serial number, firmware/hardware/software versions, panel type, etc. | +| partition | Thing | The partition is a grouped aggregation of multiple zones. It's also referred to in Paradox Babyware as "Area". | +| zone | Thing | Paradox zone. Can be anything - magnetic, motion, or any other opened/closed sensor. State channel is contact, "low battery" and "is tampered" channels are switch, label is String. | ## Things configuration ### IP150 Bridge Parameters -| Parameter | Description | -|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------| -| refresh | Value is in seconds. Defines the refresh interval when the binding polls from paradox system. Optional parameter. Default 5 seconds. | -| ip150Password | The password to your IP150 (not your panel PIN). Mandatory parameter. | -| pcPassword | The panel programming code 3012 setting. Optional parameter. Default value is 0000. | -| ipAddress | IP address or hostname of your IP150. If hostname is used must be resolvable by OpenHAB. Mandatory parameter. | -| port | The port used for data communication. Optional parameter. Default value is 10000. | -| panelType | If parameter is passed, auto-discovery of panel type will be skipped. Provide string - EVO48, EVO96, EVO192, etc... Optional parameter. | -| reconnectWaitTime | Value is in seconds. The time to wait before a reconnect occurs after socket timeout. Optional parameter. Default value is 30 seconds. | -| maxPartitions | Sets maximum partitions to use during refresh. If not set, maximum allowed amount from panelType will be used. Optional parameter. | -| maxZones | Sets maximum zones to use during refresh. If not set, maximum allowed amount from panelType will be used. Optional parameter. | -| encrypt | Sets if encryption has to be used. Optional parameter. Default value is false | +| Parameter | Description | +|-------------------|------------------------------------------------------------------------------------------------------------------------------------------| +| refresh | Value is in seconds. Defines the refresh interval when the binding polls from the Paradox system. Optional parameter. Default 5 seconds. | +| ip150Password | The password to your IP150 (not your panel PIN). Mandatory parameter. | +| pcPassword | The panel programming code 3012 setting. Optional parameter. Default value is 0000. | +| ipAddress | IP address or hostname of your IP150. If hostname is used, it must be resolvable by openHAB. Mandatory parameter. | +| port | The port used for data communication. Optional parameter. Default value is 10000. | +| panelType | If parameter is passed, auto-discovery of panel type will be skipped. Provide string - EVO48, EVO96, EVO192, etc. Optional parameter. | +| reconnectWaitTime | Value is in seconds. The time to wait before a reconnect occurs after socket timeout. Optional parameter. Default value is 30 seconds. | +| maxPartitions | Sets maximum partitions to use during refresh. If not set, the maximum allowed amount from panelType will be used. Optional parameter. | +| maxZones | Sets maximum zones to use during refresh. If not set, the maximum allowed amount from panelType will be used. Optional parameter. | +| encrypt | Sets if encryption has to be used. Optional parameter. Default value is false. | ### IP150 Bridge Channels -| Channel | Description | -|---------------------|------------------------------------------------| -|communicationCommand | Possible values [LOGOUT, LOGIN, RESET] | -|communicationState | Shows the communication status to Paradox. Different from Bridge status. Bridge may be online and able to receive commands but communication may be offline due to various reasons. Possible values [Offline, Online] | +| Channel | Description | +|----------------------|-------------------------------------------------------------------------------------------------------| +| communicationCommand | Possible values [LOGOUT, LOGIN, RESET] | +| communicationState | Shows the communication status to Paradox (may differ from Bridge status). Values: [Offline, Online]. | #### Communication Command Values -| Value | Description | -|--------|------------------------------------------------------------------------------------| -| LOGOUT | Logs out and disconnects from Paradox alarm system | -| LOGIN | Creates socket if necessary, connects to paradox system and uses the logon data from the thing parameters to connect.| -| RESET | Does logout and then login with recreation of communicator objects inside the code.| +| Value | Description | +|--------|------------------------------------------------------------------------------------------------------------------------| +| LOGOUT | Logs out and disconnects from Paradox alarm system. | +| LOGIN | Creates socket if necessary, connects to Paradox system, and uses the logon data from the Thing parameters to connect. | +| RESET | Does logout and then login with recreation of communicator objects inside the code. | ### Entities (zones, partitions) Configuration -| Value | Description | -|-------------------|------------------------------------------------------------------------------------| -| id | The numeric ID of the zone/partition | -| disarmEnabled | Optional boolean flag. Valid for partitions. When set to true the command DISARM will be allowed for the partition where the flag is enabled. CAUTION: Enabling DISARM command can be dangerous. If attacker can gain access to your openHAB (via API or UI), this command can be used to disarm your armed partition (area) | +| Value | Description | +|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| id | The numeric ID of the zone/partition. | +| disarmEnabled | Optional boolean. When set to true, enables DISARM command for the partition. **CAUTION:** Enabling this can be dangerous if openHAB access is compromised, allowing attackers to disarm your armed partition. | ### Panel Channels @@ -69,39 +69,39 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9 | inputVoltage | Number:ElectricPotential | Supply Voltage | | boardVoltage | Number:ElectricPotential | Board DC Voltage | | batteryVoltage | Number:ElectricPotential | Battery Voltage | -| panelTime | DateTime | Panel internal time (Timezone is set to default zone of the Java virtual machine) | +| panelTime | DateTime | Panel internal time (Timezone is set to the default zone of the Java virtual machine). | ### Partition Channels -| Channel | Type | Description | -|--------------------------|---------|-----------------------------------------------------------------------------------------------| -| partitionLabel | String | Label of partition inside Paradox configuration | -| state | String | Calculated overall state of the partition (Armed, Disarmed, In Alarm) | -| detailedState | String | Calculated detailed state of the partition based on partition state bits (see below table for possible values) | -| additionalState | String | This used to be a channel where all different states were consolidated as semi-colon separated string. With implementation of each state as channel additional states should be no longer used. (deprecated channel) | -| readyToArm | Switch | Partition is Ready to arm | -| inExitDelay | Switch | Partition is in Exit delay | -| inEntryDelay | Switch | Partition in Entry Delay | -| inTrouble | Switch | Partition has trouble | -| alarmInMemory | Switch | Partition has alarm in memory | -| zoneBypass | Switch | Partition is in Zone Bypass | -| zoneInTamperTrouble | Switch | Partition is in Tamper Trouble | -| zoneInLowBatteryTrouble | Switch | Partition has zone in Low Battery Trouble | -| zoneInFireLoopTrouble | Switch | Partition has zone in Fire Loop Trouble | -| zoneInSupervisionTrouble | Switch | Partition has zone in Supervision Trouble | -| stayInstantReady | Switch | Partition is in state Stay Instant Ready | -| forceReady | Switch | Partition is in state Force Ready | -| bypassReady | Switch | Partition is in state Bypass Ready | -| inhibitReady | Switch | Partition is in state Inhibit Ready | -| allZonesClosed | Contact | All zones in partition are currently closed | -| command | String | Command to be send to partition. Can be (ARM, DISARM, FORCE_ARM, INSTANT_ARM, STAY_ARM, BEEP) | +| Channel | Type | Description | +|--------------------------|---------|----------------------------------------------------------------------------------------------------------------------------| +| partitionLabel | String | Label of partition inside Paradox configuration | +| state | String | Calculated overall state of the partition (Armed, Disarmed, In Alarm) | +| detailedState | String | Calculated detailed state of the partition based on partition state bits (see below table for possible values). | +| additionalState | String | Deprecated. Previously consolidated multiple states as semi-colon separated string; use individual state channels instead. | +| readyToArm | Switch | Partition is Ready to arm | +| inExitDelay | Switch | Partition is in Exit delay | +| inEntryDelay | Switch | Partition in Entry Delay | +| inTrouble | Switch | Partition has trouble | +| alarmInMemory | Switch | Partition has alarm in memory | +| zoneBypass | Switch | Partition is in Zone Bypass | +| zoneInTamperTrouble | Switch | Partition is in Tamper Trouble | +| zoneInLowBatteryTrouble | Switch | Partition has zone in Low Battery Trouble | +| zoneInFireLoopTrouble | Switch | Partition has zone in Fire Loop Trouble | +| zoneInSupervisionTrouble | Switch | Partition has zone in Supervision Trouble | +| stayInstantReady | Switch | Partition is in state Stay Instant Ready | +| forceReady | Switch | Partition is in state Force Ready | +| bypassReady | Switch | Partition is in state Bypass Ready | +| inhibitReady | Switch | Partition is in state Inhibit Ready | +| allZonesClosed | Contact | All zones in partition are currently closed. | +| command | String | Command to be sent to partition. Can be (ARM, DISARM, FORCE_ARM, INSTANT_ARM, STAY_ARM, BEEP). | ### Partition Detailed State Values | Overall state value | Detailed state value (depending on the sub-state) | |--------------------------|----------------------------------------------------------------------------------------------| | InAlarm | Silent Alarm, Audible Alarm, Fire Alarm, In Alarm (if none of the first three) | -| Armed | Away Armed, Stay Armed, NoEntry Armed, Armed (if none of the first three) | +| Armed | Away Armed, Stay Armed, No Entry Armed, Armed (if none of the first three) | | Disarmed | Disarmed | ### Zone Channels @@ -112,14 +112,14 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9 | openedState | Contact | Zone opened / closed | | tamperedState | Switch | Zone is tampered | | supervisionTrouble | Switch | Zone is in supervision trouble | -| inTxDelay | Switch | Zone is in txDelay | +| inTxDelay | Switch | Zone is in TX delay | | shutdown | Switch | Zone is shutdown | | bypassed | Switch | Zone is bypassed | -| hasActivatedIntellizoneDelay | Switch | Zone is has an activated Intellizone delay | -| hasActivatedEntryDelay | Switch | Zone is has an activated entry delay | +| hasActivatedIntellizoneDelay | Switch | Zone has an activated Intellizone delay | +| hasActivatedEntryDelay | Switch | Zone has an activated entry delay | | presentlyInAlarm | Switch | Zone is currently in alarm | | generatedAlarm | Switch | Zone has generated an alarm | -| command | String | Command for zone. Can be (BYPASS, CLEAR_BYPASS) | +| command | String | Command for zone. Can be (BYPASS, CLEAR_BYPASS). | ## Example Things Configuration diff --git a/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/i18n/paradoxalarm.properties b/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/i18n/paradoxalarm.properties index 0233610f5d3ad..8630d098c4cb0 100644 --- a/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/i18n/paradoxalarm.properties +++ b/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/i18n/paradoxalarm.properties @@ -1,3 +1,8 @@ +# add-on + +addon.paradoxalarm.name = ParadoxAlarm Binding +addon.paradoxalarm.description = This is the binding for ParadoxAlarm. + # thing types thing-type.paradoxalarm.ip150.label = Paradox IP150 Module Connector @@ -124,8 +129,3 @@ channel-type.paradoxalarm.zoneInTamperTrouble.label = Partition Has Zone In Tamp channel-type.paradoxalarm.zoneInTamperTrouble.description = Partition has in Tamper Trouble channel-type.paradoxalarm.zoneLabel.label = Zone Label channel-type.paradoxalarm.zoneLabel.description = Label of zone - -# add-on - -addon.paradoxalarm.name = ParadoxAlarm Binding -addon.paradoxalarm.description = This is the binding for ParadoxAlarm. diff --git a/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/thing/ip150connector.xml b/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/thing/ip150connector.xml index 7851050526b24..6774cbb3fe1ca 100644 --- a/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/thing/ip150connector.xml +++ b/bundles/org.openhab.binding.paradoxalarm/src/main/resources/OH-INF/thing/ip150connector.xml @@ -50,12 +50,12 @@ The time to wait before a reconnect occurs after socket timeout. Value is in seconds 30 - + Maximum number of configured zones to check (from zone 1 to maxZones) 0 - + Maximum number of configured partitions to check (from partition 1 to maxPartitions) 0 diff --git a/bundles/org.openhab.binding.pegelonline/README.md b/bundles/org.openhab.binding.pegelonline/README.md index e9b109abf5bc0..55c3cb2d6b570 100644 --- a/bundles/org.openhab.binding.pegelonline/README.md +++ b/bundles/org.openhab.binding.pegelonline/README.md @@ -1,9 +1,9 @@ # PegelOnline Binding -Binding to observe water level from german rivers. -Data is provided by german **Water-Route and Shipping Agency** [WSV](https://www.pegelonline.wsv.de/). -Goal is to monitor actual water levels from rivers nearby your home. -In case of changing water levels the corresponding warning level is lowered or raised. +Binding to observe water levels from German rivers. +Data is provided by the German **Water-Route and Shipping Agency** [WSV](https://www.pegelonline.wsv.de/). +The goal is to monitor actual water levels from rivers nearby your home. +In case of changing water levels, the corresponding warning level is lowered or raised. ## Supported Things @@ -13,37 +13,37 @@ In case of changing water levels the corresponding warning level is lowered or r ## Discovery -In case your home location coordinates are set the discovery will recognize all measurement stations within a radius of 50 km. -Found Things are added in your Inbox. +If your home location coordinates are set, the discovery will recognize all measurement stations within a radius of 50 km. +Found Things are added to your Inbox. ## Thing Configuration -Thing configuration contains 3 sections +Thing configuration contains 3 sections: -- [Station selection](station_selection) -- [Warning Levels of selected station](warning_levels) -- [Refresh rate](configuration_parameters) +- [Station selection](#station-selection) +- [Warning Levels of selected station](#warning-levels) +- [Refresh rate](#configuration-parameters) ### Station selection -Stations can be selected with an Universally Unique Identifier (uuid). +Stations can be selected with a Universally Unique Identifier (uuid). It's automatically added by the Discovery. -Configure a station manually using [list of all available stations](https://pegelonline.wsv.de/gast/pegeltabelle) or [stations.json](https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json) and choose the uuid of your desired measurement station. +To configure a station manually, use the [list of all available stations](https://pegelonline.wsv.de/gast/pegeltabelle) or [stations.json](https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json) and choose the uuid of your desired measurement station. ### Warning Levels Marburg water level measurement station -Each station has specific warning levels +Each station has specific warning levels: - Warning Levels 1 (_lowest_) to 3 (_highest_) - Flooding Levels -Unfortunately these levels cannot be queried automatically. -Please select your [federal state](https://www.hochwasserzentralen.de/) and check if which levels they provide. -The picture shows the levels of [measurement station Marburg of federal state Hesse](https://www.hlnug.de/static/pegel/wiskiweb2/stations/25830056/station.html?v=20210802152952) +Unfortunately, these levels cannot be queried automatically. +Please select your [federal state](https://www.hochwasserzentralen.de/) and check which levels they provide. +The picture shows the levels of the [measurement station Marburg of federal state Hesse](https://www.hlnug.de/static/pegel/wiskiweb2/stations/25830056/station.html?v=20210802152952). -If you cannot evaluate warning or flooding levels leave the parameter empty. +If you cannot evaluate warning or flooding levels, leave the parameter empty. ### Configuration parameters @@ -107,7 +107,7 @@ Thing pegelonline:station:giessen "Measurement Station Giessen" [ ```java DateTime Lahn_Giessen_Timestamp "Measurement timestamp Lahn Giessen" {channel="pegelonline:station:giessen:timestamp" } -Number:Length Lahn_Giessen_Level "Water Level Lahn Giessen]" {channel="pegelonline:station:giessen:level" } +Number:Length Lahn_Giessen_Level "Water Level Lahn Giessen" {channel="pegelonline:station:giessen:level" } Number Lahn_Giessen_Trend "Water Level Trend Lahn Giessen" {channel="pegelonline:station:giessen:trend"} Number Lahn_Giessen_Warning "Warning Level Lahn Giessen" {channel="pegelonline:station:giessen:warning"} ``` diff --git a/bundles/org.openhab.binding.pentair/README.md b/bundles/org.openhab.binding.pentair/README.md index 5fc35e1b0ee8e..329b3658fecba 100644 --- a/bundles/org.openhab.binding.pentair/README.md +++ b/bundles/org.openhab.binding.pentair/README.md @@ -8,12 +8,12 @@ Further, if there is interest to improve functionality or address issues with an ## Hardware Setup -> REQUISITE DISCLAIMER: CONNECTING 3RD PARTY DEVICES TO THE PENTAIR SYSTEM BUS COULD CAUSE SERIOUS DAMAGE TO THE SYSTEM SHOULD SOMETHING MALFUNCTION. IT IS NOT ENDORSED BY PENTAIR AND COULD VOID WARRENTY. IF YOU DECIDE TO USE THIS BINDING TO INTERFACE TO A PENTAIR CONTROLLER, THE AUTHOR(S) CAN NOT BE HELD RESPONSIBLE. +> REQUISITE DISCLAIMER: CONNECTING 3RD PARTY DEVICES TO THE PENTAIR SYSTEM BUS COULD CAUSE SERIOUS DAMAGE TO THE SYSTEM SHOULD SOMETHING MALFUNCTION. IT IS NOT ENDORSED BY PENTAIR AND COULD VOID WARRANTY. IF YOU DECIDE TO USE THIS BINDING TO INTERFACE TO A PENTAIR CONTROLLER, THE AUTHOR(S) CANNOT BE HELD RESPONSIBLE. This binding requires an adapter to interface to the Pentair system bus. This bus/wire runs between the Pentair control system, indoor control panels, IntelliFlo pumps, etc. -It is a standard RS-485 bus running at 9600,8N1 so any RS-485 adapter should work and you should be able to buy one for under $30. -Pentair does not publish any information on the protocol so this binding was developed using the great reverse-engineering efforts of others made available on the internet. +It is a standard RS-485 bus running at 9600,8N1, so any RS-485 adapter should work and you should be able to buy one for under $30. +Pentair does not publish any information on the protocol, so this binding was developed using the great reverse-engineering efforts of others made available on the internet. I have cited several of those in the References section below. ### Connecting adapter to your system @@ -21,19 +21,19 @@ I have cited several of those in the References section below. A USB or serial RS-485 interface or IP based interface can be used to interface to the Pentair system bus. The binding includes 2 different Bridges depending on which type of interface you use, serial_bridge or ip_bridge. -If your openHAB system is physically located far from your Pentair equipment or indoor control panel, you can use a Raspberry Pi or other computer to redirect USB/serial port traffic over the internet using a program called ser2sock (see Reference section). -An example setup would run the following command: "ser2sock -p 10000 -s /dev/ttyUSB1 -b 9600 -d". +If your openHAB system is physically located far from your Pentair equipment or indoor control panel, you can use a Raspberry Pi or other computer to redirect USB/serial port traffic over the internet using a program called ser2sock (see References section). +An example setup would run the following command: `ser2sock -p 10000 -s /dev/ttyUSB1 -b 9600 -d`. Note: This is the setup utilized for the majority of my testing of this binding. Once you have the interface connected to your system, it is best to test basic connectivity. Note the protocol is a binary protocol (not ASCII text based) and in order to view the communication packets, one must use a program capable of a binary/HEX mode. -If connected properly, you will see a periodic traffic with packets staring with FF00FFA5. +If connected properly, you will see periodic traffic with packets starting with FF00FFA5. This is the preamble for Pentair's communication packet. After you see this traffic, you can proceed to configuring the Pentair binding in openHAB. -Note: Many adapters use A and B to represent Data+ and Data-. There is no reliable standard for determining which is Data+ and Data-. If you connect the system in reverse, you will still see serial data, however it will be corrupted. Look at your data coming from your device and look for a repeated "FFa5". If you don't see that preamble reliably, you may try switching your data lines." +Note: Many adapters use A and B to represent Data+ and Data-. There is no reliable standard for determining which is Data+ and Data-. If you connect the system in reverse, you will still see serial data; however, it will be corrupted. Look at your data coming from your device and look for a repeated "FFa5". If you don't see that preamble reliably, you may try switching your data lines. #### USB/Serial interface @@ -50,16 +50,16 @@ In order for the Pentair controller to receive commands from this binding, you m ## Supported Things -This binding supports the following thing types: +This binding supports the following Thing types: -| ThingType UID | Thing Type | Description | -| --------------- | :--------: | --------------------------------------- | -| ip_bridge | Bridge | A TCP network RS-485 bridge device. | -| serial_bridge | Bridge | A USB or serial RS-485 device. | -| controller | Thing | Pentair EasyTouch, SunTouch, or IntelliTouch pool controller. | -| intelliflo | Thing | Pentair IntelliFlo variable speed pump. | -| intellichlor | Thing | Pentair IntelliChlor chlorinator. | -| intellichem | Thing | Pentair IntelliChem. | +| ThingType UID | Thing Type | Description | +|---------------|------------|---------------------------------------------------------------| +| ip_bridge | Bridge | A TCP network RS-485 bridge device. | +| serial_bridge | Bridge | A USB or serial RS-485 device. | +| controller | Thing | Pentair EasyTouch, SunTouch, or IntelliTouch pool controller. | +| intelliflo | Thing | Pentair IntelliFlo variable speed pump. | +| intellichlor | Thing | Pentair IntelliChlor chlorinator. | +| intellichem | Thing | Pentair IntelliChem. | ## Binding Configuration @@ -71,15 +71,15 @@ A Bridge item must first be configured to gain access to the Pentair bus. This can be done via the interactive setup pages in openHAB or manually through a .thing configuration file. The following table shows the parameters for each Bridge. -| Thing | Configuration Parameters | -| ------------- | ------------------------------------------------------------ | -| ip_bridge | address - IP address for the RS-485 adapter - Required. | -| | port - TCP port for the RS-485 adapter - Not Required - default = 10000. | -| | id - ID to use when communicating on Pentair control bus - default = 34. | -| serial_bridge | serialPort - Serial port for the IT-100s bridge - Required. | -| | baud - Baud rate of the IT-100 bridge - Not Required - default = 9600. | -| | pollPeriod - Period of time in minutes between the poll command being sent to the IT-100 bridge - Not Required - default=1. | -| | id - ID to use when communicating on Pentair control bus - default = 34. | +| Thing | Configuration Parameters | +|---------------|-----------------------------------------------------------------------------------------------------------------------------| +| ip_bridge | address - IP address for the RS-485 adapter - Required. | +| | port - TCP port for the RS-485 adapter - Not Required - default = 10000. | +| | id - ID to use when communicating on Pentair control bus - default = 34. | +| serial_bridge | serialPort - Serial port for the RS-485 bridge - Required. | +| | baud - Baud rate of the RS-485 bridge - Not Required - default = 9600. | +| | pollPeriod - Period of time in minutes between the poll command being sent to the RS-485 bridge - Not Required - default=1. | +| | id - ID to use when communicating on Pentair control bus - default = 34. | ```java Bridge pentair:ip_bridge:1 [ address="192.168.1.202", port=10001 ] { @@ -105,34 +105,35 @@ Bridge pentair:serial_bridge:1 [ serialPort="/dev/ttyUSB0" ] { ### Thing: Controller -Represents and interfaces with a Pentair pool controller in the system. This binding should work for both Intellitouch and EasyTouch systems. -Feature availability is dependent on the version of hardware and firmware versions of your specific controller. +Represents and interfaces with a Pentair pool controller in the system. +This binding should work for both IntelliTouch and EasyTouch systems. +Feature availability is dependent on the hardware and firmware versions of your specific controller. #### Synchronize Time This configuration setting will instruct the binding to automatically update the controller's clock every 24 hours with the value from the openHAB server. This is useful to keep the pool system clock set correct and automatically adjust for daylight savings time. -| Channel Group | Channel | Type | | Description | -| :------------------------------: | :-------: | :----: | :-: | :--------------: | -| pool, spa, aux[1-8], feature[1-8] | switch | Switch | RW | Indicates the particulcar circuit or feature is on or off. | -| " | name | String | R | Name of circuit | -| " | feature | String | R | Feature of ciruit | -| poolheat, spaheat | setpoint | Number:Temperature | RW | Temperature setpoint | -| " | temperature | Number:Temperature | R | Current water temperature. Note, the temperature is only valid while in either pool or spa mode. | -| " | heatmode | String | R | Heat mode configured. Values: NONE, HEATER, SOLARPREFERRED, SOLAR | -| schedule[1-9] | schedule | String | RW | Summary string of schedule. | -| " | type | String | RW | Type of schedule. Note, to actually write the program to the controller, this channel must be written to with the same value 2 times within 5s. Values: NONE, NORMAL, EGGTIMER, ONCE ONLY | -| " | start | Number:Time | RW | Time of day to start schedule expressed in minutes. | -| " | end | Number:Time | RW | Time of day to end schedule expressed in minutes. In the case of EGG TIMER, this shoud be the duration. | -| " | circuit | Number | RW | Circuit/Feature the schedule will control. | -| " | days | String | RW | The days the schedule will run. S=Sunday, M=Monday, T=Tuesday, W=Wednesday, R=Thursday, F=Friday, Y=Saturday | -| status | lightmode | String | RW | Light mode. Values: OFF, ON, COLORSYNC, COLORSWIM, COLORSET, PARTY, ROMANCE, CARIBBEAN, AMERICAN, SUNSET, ROYAL, BLUE, GREEN, RED, WHITE, MAGENTA | -| " | solartemperature | Number:Temperature | R | Solar temperature sensor reading. | -| " | airtemperature | Number:Temperature | R | Air temperature sensor reading. | -| " | servicemode | Switch | R | Indicates whether controller is in service mode. | -| " | solaron | Switch | R | Indicates whether solar heat is on. | -| " | heateron | Switch | R | Indicates whether heater is on. | +| Channel Group | Channel | Type | | Description | +|-----------------------------------|------------------|--------------------|----|---------------------------------------------------------------------------------------------------------------------------------------------------| +| pool, spa, aux[1-8], feature[1-8] | switch | Switch | RW | Indicates the particulcar circuit or feature is on or off. | +| " | name | String | R | Name of circuit | +| " | feature | String | R | Feature of ciruit | +| poolheat, spaheat | setpoint | Number:Temperature | RW | Temperature setpoint | +| " | temperature | Number:Temperature | R | Current water temperature. Note, the temperature is only valid while in either pool or spa mode. | +| " | heatmode | String | R | Heat mode configured. Values: NONE, HEATER, SOLARPREFERRED, SOLAR | +| schedule[1-9] | schedule | String | RW | Summary string of schedule. | +| " | type | String | RW | Type of schedule. To write to controller, send same value twice within 5s. Values: NONE, NORMAL, EGGTIMER, ONCE ONLY | +| " | start | Number:Time | RW | Time of day to start schedule expressed in minutes. | +| " | end | Number:Time | RW | Time of day to end schedule expressed in minutes. In the case of EGG TIMER, this shoud be the duration. | +| " | circuit | Number | RW | Circuit/Feature the schedule will control. | +| " | days | String | RW | The days the schedule will run. S=Sunday, M=Monday, T=Tuesday, W=Wednesday, R=Thursday, F=Friday, Y=Saturday | +| status | lightmode | String | RW | Light mode. Values: OFF, ON, COLORSYNC, COLORSWIM, COLORSET, PARTY, ROMANCE, CARIBBEAN, AMERICAN, SUNSET, ROYAL, BLUE, GREEN, RED, WHITE, MAGENTA | +| " | solartemperature | Number:Temperature | R | Solar temperature sensor reading. | +| " | airtemperature | Number:Temperature | R | Air temperature sensor reading. | +| " | servicemode | Switch | R | Indicates whether controller is in service mode. | +| " | solaron | Switch | R | Indicates whether solar heat is on. | +| " | heateron | Switch | R | Indicates whether heater is on. | #### Working with schedules @@ -144,19 +145,19 @@ To prevent erroneous writes to the schedules though, one must write to the `type Represents an Intellichlor module connected in your system. Currently, the values here are readonly. -| Channel | Type | | Description | -| :------------------: | :----: | :-: | :---------- | -| saltOutput | Number:Dimensionless | R | Current salt output %. | -| salinity | Number:Dimensionless | R | Salinity (ppm). | -| ok | Switch | R | System is operating normally. | -| lowFlow | Switch | R | Water flow rate is low. | -| lowSalt | Switch | R | Low salt level. | -| veryLowSalt | Switch | R | Very low salt level. | -| highCurrent | Switch | R | High current level. | -| cleanCell | Switch | R | Clean cell. | -| lowVoltage | Switch | R | Low voltage. | -| lowWaterTemp | Switch | R | Water temperature is too low for chlorine generation. | -| commError | Switch | R | Communication error. | +| Channel | Type | | Description | +|--------------|----------------------|---|-------------------------------------------------------| +| saltOutput | Number:Dimensionless | R | Current salt output %. | +| salinity | Number:Dimensionless | R | Salinity (ppm). | +| ok | Switch | R | System is operating normally. | +| lowFlow | Switch | R | Water flow rate is low. | +| lowSalt | Switch | R | Low salt level. | +| veryLowSalt | Switch | R | Very low salt level. | +| highCurrent | Switch | R | High current level. | +| cleanCell | Switch | R | Clean cell. | +| lowVoltage | Switch | R | Low voltage. | +| lowWaterTemp | Switch | R | Water temperature is too low for chlorine generation. | +| commError | Switch | R | Communication error. | ### Thing: IntelliFlo @@ -164,15 +165,15 @@ Represents and interfaces to an Intelliflo pump. When a controller is active in the system all pump values are read only since the pump can only have one master at a time. If no controller is present or the controller is in service mode, the pump can be controlled directly from OpenHab. -| Channel | Type | | Description | -| :------------------: | :----: | :-: | :---------- | -| run | Switch | RW | Indicates whether the pump is running. | -| rpm | Number | RW | Pump RPM | -| gpm | Number:VolumetricFlowRate | R | Pump GPM (only valid for VF pumps) | -| power | Number:Power | R | Pump power (Watt) | -| status1 | Number | R | Pump status1. (not reversed engineered) | -| status2 | Number | R | Pump status2. (not reversed engineered) | -| runProgram | Number | RW | Run program (0 to stop, # to run) | +| Channel | Type | | Description | +|------------|---------------------------|----|-----------------------------------------| +| run | Switch | RW | Indicates whether the pump is running. | +| rpm | Number | RW | Pump RPM | +| gpm | Number:VolumetricFlowRate | R | Pump GPM (only valid for VF pumps) | +| power | Number:Power | R | Pump power (Watt) | +| status1 | Number | R | Pump status1. (not reversed engineered) | +| status2 | Number | R | Pump status2. (not reversed engineered) | +| runProgram | Number | RW | Run program (0 to stop, # to run) | ### Thing: IntelliChem @@ -180,37 +181,37 @@ Represents and interfaces to an IntelliChem unit. This is for monitoring of values only and IntelliChem cannot be directly controlled through this binding. Note: This has limited testing since I don't own an IntelliChem -| Channel | Type | | Description | -| :------------------: | :----: | :-: | :---------- | -| phReading | Number | R | Current PH reading. | -| orpReading | Number | R | Current Oxidation Reduction Potential (ORP) reading. | -| phSetPoint | Number | R | Current PH set point. | -| orpSetPoint | Number | R | Oxidation Reduction Potential (ORP) set point. | -| tank1Level | Number | R | Tank 1 level (1-7). | -| tank2Level | Number | R | Tank 2 level (1-7). | -| calciumHardness | Number:Dimensionless | R | Calcium hardness PPM (mg/L). | -| cyaReading | Number | R | Cyanuric acid reading. | -| alkalinity | Number | R | Alkalinity reading. | -| phDoserType | String | R | The doser type for PH (None, CO2, Acid). | -| orpDOserType | String | R | The doser type for ORP (None, ORP). | -| phDoserStatus | Switch | R | Whether the chemical is currently dosing. | -| orpDoserStatus | Switch | R | Whether the chemical is currently dosing. | -| phDoseTime | Number:Time | R | The time a particular chemical has been dosing. | -| orpdoseTime | Number:Time | R | The time a particular chemical has been dosing. | -| lsi | Number | R | Langelier Saturation Index. | -| saltLevel | Number:Dimensionless | R | Current salt content reading of the water (PPM). | -| temperature | Number:Temperature | R | Current temperature. | -| alarmWaterFlow | Switch | R | Water flow alarm (on = no water flow). | -| alarmPh | Switch | R | PH alarm reported. | -| alarmOrp | Switch | R | ORP alarm reported. | -| alarmPhTank | Switch | R | PH tank alarm reported. | -| alarmOrpTank | Switch | R | ORP tank alarm reported. | -| alarmProbeFault | Switch | R | Probe fault alarm reported. | -| warningPhLockout | Switch | R | Unit is in PH Lockout. | -| warningPhDailyLimitReached | Switch | R | Daily limit of PH dosing has been reached. | -| warningOrpDailLimitReached | Switch | R | Daily limit of ORP dosing has been reached. | -| warningInvalidSetup | Switch | R | Invalid setup for the unit. | -| warningChlorinatorCommError | Switch | R | Error in communicating with the Chlorinator. | +| Channel | Type | | Description | +|-----------------------------|----------------------|---|------------------------------------------------------| +| phReading | Number | R | Current PH reading. | +| orpReading | Number | R | Current Oxidation Reduction Potential (ORP) reading. | +| phSetPoint | Number | R | Current PH set point. | +| orpSetPoint | Number | R | Oxidation Reduction Potential (ORP) set point. | +| tank1Level | Number | R | Tank 1 level (1-7). | +| tank2Level | Number | R | Tank 2 level (1-7). | +| calciumHardness | Number:Dimensionless | R | Calcium hardness PPM (mg/L). | +| cyaReading | Number | R | Cyanuric acid reading. | +| alkalinity | Number | R | Alkalinity reading. | +| phDoserType | String | R | The doser type for PH (None, CO2, Acid). | +| orpDOserType | String | R | The doser type for ORP (None, ORP). | +| phDoserStatus | Switch | R | Whether the chemical is currently dosing. | +| orpDoserStatus | Switch | R | Whether the chemical is currently dosing. | +| phDoseTime | Number:Time | R | The time a particular chemical has been dosing. | +| orpdoseTime | Number:Time | R | The time a particular chemical has been dosing. | +| lsi | Number | R | Langelier Saturation Index. | +| saltLevel | Number:Dimensionless | R | Current salt content reading of the water (PPM). | +| temperature | Number:Temperature | R | Current temperature. | +| alarmWaterFlow | Switch | R | Water flow alarm (on = no water flow). | +| alarmPh | Switch | R | PH alarm reported. | +| alarmOrp | Switch | R | ORP alarm reported. | +| alarmPhTank | Switch | R | PH tank alarm reported. | +| alarmOrpTank | Switch | R | ORP tank alarm reported. | +| alarmProbeFault | Switch | R | Probe fault alarm reported. | +| warningPhLockout | Switch | R | Unit is in PH Lockout. | +| warningPhDailyLimitReached | Switch | R | Daily limit of PH dosing has been reached. | +| warningOrpDailyLimitReached | Switch | R | Daily limit of ORP dosing has been reached. | +| warningInvalidSetup | Switch | R | Invalid setup for the unit. | +| warningChlorinatorCommError | Switch | R | Error in communicating with the Chlorinator. | ## Example setup diff --git a/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/i18n/pentair.properties b/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/i18n/pentair.properties index c214910600e02..e0be2a71f5337 100644 --- a/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/i18n/pentair.properties +++ b/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/i18n/pentair.properties @@ -105,7 +105,7 @@ channel-type.pentair.alkalinity.label = Total Alkalinity channel-type.pentair.alkalinity.description = Total Alkalinity reading (ppm). channel-type.pentair.auxSwitch.label = Auxillary Switch channel-type.pentair.auxSwitch.description = The on/off control for this circuit. -channel-type.pentair.calciumHardness.label = Calcium Hardess +channel-type.pentair.calciumHardness.label = Calcium Hardness channel-type.pentair.calciumHardness.description = Calcium hardness (ppm). channel-type.pentair.circuitFunction.label = Circuit Function channel-type.pentair.circuitFunction.description = The function this circuit controls. diff --git a/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/thing/intellichem.xml b/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/thing/intellichem.xml index d084eaa8fc055..95784c5c4b77e 100644 --- a/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/thing/intellichem.xml +++ b/bundles/org.openhab.binding.pentair/src/main/resources/OH-INF/thing/intellichem.xml @@ -105,7 +105,7 @@ Number:Dimensionless - + Calcium hardness (ppm). Measurement diff --git a/bundles/org.openhab.binding.phc/README.md b/bundles/org.openhab.binding.phc/README.md index 561e2b1ae65a3..7abd33d8ea5c5 100644 --- a/bundles/org.openhab.binding.phc/README.md +++ b/bundles/org.openhab.binding.phc/README.md @@ -1,10 +1,10 @@ # PHC Binding -This binding allows you to integrate modules(at the Moment AM, EM, JRM and DIM) of PHC, without the PHC control (STM), in openHAB. +This binding allows you to integrate modules (at the moment AM, EM, JRM and DIM) of PHC without the PHC control (STM) in openHAB. The serial protocol is mainly extracted, with thanks to the developers from the projects [PHCtoUDP](https://sourceforge.net/projects/phctoudp/) and [OpenHC](https://sourceforge.net/projects/openhc/?source=directory). -The basics of the module bus protocol can also be found in the [Wiki of the PHC-Forum (german)](https://wiki.phc-forum.de/index.php/PHC-Protokoll_des_internen_Bus). +The basics of the module bus protocol can also be found in the [Wiki of the PHC-Forum (German)](https://wiki.phc-forum.de/index.php/PHC-Protokoll_des_internen_Bus). While the Wiki is offline you can find a PDF version in this [PHC-Forum post](https://phc-forum.de/index.php/forum/phc-programmierung/129-phc-protokoll?start=15#1329). ## Serial Communication @@ -16,22 +16,26 @@ The binding was tested with QinHeng Electronics HL-340 USB-Serial adapter (RS485 | Windows 10 | HL-340 | ok | | | FTDI | good | | Raspberry Pi 3B/Jessie | HL-340 | not reliable | -| | FTDI | doesn´t work | +| | FTDI | doesn't work | | | on board | bad | | Up Board/ubilinux(Jessie)| HL-340 | not reliable | | | FTDI | good | -If there are many modules on one bridge, the initialization can take a few minutes. If it does not work you can plug in the modules one after the other. -Sometimes after initialization, you might have to switch two times or the reaction could be a bit slow, but after you used a channel it should all work fine. +If there are many modules on one bridge, the initialization can take a few minutes. +If it does not work, you can plug in the modules one after the other. +Sometimes after initialization, you might have to switch twice, or the reaction could be a bit slow, but after you have used a channel, it should all work fine. For all devices running with Linux that use the ch341 driver (HL-340), the new version (ch34x) is needed. A guide for installing the CH340/341 UART driver for Raspberry Pi is available in the [raspberrypi-ch340-driver GitHub repository](https://github.com/aperepel/raspberrypi-ch340-driver). -If you don´t have the same kernel as used in the guide you have to compile the module yourself. In the guide is described a specific way for the Raspberry Pi. With another Linux version you can go the normal way with linux-headers. +If you don't have the same kernel as used in the guide, you have to compile the module yourself. +In the guide, a specific way for the Raspberry Pi is described. +With another Linux version, you can use the normal way with linux-headers. According to the [Wiki of the PHC-Forum](https://wiki.phc-forum.de/index.php/PHC-Protokoll_des_internen_Bus#USB_RS-485_Adapter) the newer version of the FTDI adapter doesn't really work anymore either. -In Linux amongst others the user 'openhab' must be added to the group 'dialout': ```sudo usermod -a -G dialout openhab``` For more information read the [installation guide](https://www.openhab.org/docs/installation/linux.html#recommended-additional-setup-steps). +In Linux, among other things, the user 'openhab' must be added to the group 'dialout': ```sudo usermod -a -G dialout openhab``` +For more information, read the [installation guide](https://www.openhab.org/docs/installation/linux.html#recommended-additional-setup-steps). ### Connection @@ -63,7 +67,7 @@ Connect a RJ12 plug with the RS485 adaptor and the power supply as follows. The Bridge manages the communication between the things and the modules via a serial port (RS485). It represents the STM. -At the Moment you can only use one Bridge (like one STM). +At the moment, you can only use one Bridge (like one STM). ### Configurations @@ -85,16 +89,18 @@ Not implemented yet. ## Thing Configuration -A thing accords with a module in the PHC software and the channels (with linked items) accord with the inputs and outputs. -Please note, if you define the things manually (not in the UI) that the ThingID always have to be the address (like the PID switches on the module). +A Thing corresponds with a module in the PHC software, and the channels (with linked items) correspond with the inputs and outputs. +Please note, if you define the things manually (not in the UI), that the ThingID always has to be the address (like the PID switches on the module). ### Parameters - **address:** Type the address of the module like the DIP switches (you can also find in the PHC software) of the module, e.g. 10110. (mandatory) -- **upDownTime[1-4] (only JRM):** (advanced) The time in seconds that the shutter needs to move up or down, with a resolution of 1/10 seconds. The default, if no value is specified, is 30 seconds. +- **upDownTime[1-4] (only JRM):** (advanced) The time in seconds that the shutter needs to move up or down, with a resolution of 1/10 seconds. +The default, if no value is specified, is 30 seconds. -- **dimTime[1-2] (only DIM):** (advanced) The time in seconds in that the dimmer should move 100%. The default is 2 seconds, then for example dimming from 0 to 100% takes 2 second. +- **dimTime[1-2] (only DIM):** (advanced) The time in seconds for the dimmer to move 100%. +The default is 2 seconds; for example, dimming from 0 to 100% takes 2 seconds. ## Channels @@ -116,8 +122,8 @@ Please note, if you define the things manually (not in the UI) that the ThingID - **jrm:** Outgoing shutter channels. - **jrmT:** Time for shutter channels in seconds with an accuracy of 1/10 seconds. These channels are used instead of the configuration parameters. -If you send the time via this channel, the Binding uses this time till you send another. -After reboot the config parameter is used by default. +If you send the time via this channel, the Binding uses this time until you send another. +After reboot, the config parameter is used by default. - **dim:** Outgoing dimmer channels. ## Full Example @@ -126,7 +132,7 @@ After reboot the config parameter is used by default. ```java Bridge phc:bridge:demo [port="/dev/ttyUSB0"]{ - // The ThingID have to be the address. + // The ThingID has to be the address. Thing AM 01101 [address="01101"] Thing EM 00110 [address="00110"] Thing JRM 10111 [address="10111", upDownTime3=60, upDownTime4=20] diff --git a/bundles/org.openhab.binding.pihole/README.md b/bundles/org.openhab.binding.pihole/README.md index e7b29feaa5864..fb10b738739d3 100644 --- a/bundles/org.openhab.binding.pihole/README.md +++ b/bundles/org.openhab.binding.pihole/README.md @@ -8,7 +8,7 @@ The Pi-hole Binding allows you to monitor Pi-hole statistics and control its fun ## Features -- Real-time Statistics: Monitor key metrics such as the number of domains being blocked, DNS queries made today, ads blocked today, and more. +- Real-time Statistics: Monitor key metrics such as the number of domains being blocked, DNS queries made today, and ads blocked today. - Control: Enable or disable Pi-hole's blocking functionality, configure blocking options, and adjust privacy settings directly from openHAB. - Integration: Seamlessly integrate Pi-hole data and controls with other openHAB items and rules to create advanced automation scenarios. - Version 6 of piHole is supported (configured via the `serverVersion` configuration parameter) starting with version 6.3 (6.2 will not work). @@ -21,12 +21,11 @@ The Pi-hole Binding allows you to monitor Pi-hole statistics and control its fun ### `server` Thing Configuration -| Name | Type | Description | Default | Required | Advanced | -|-----------------|---------|-------------------------------------------------------------------------------------------|---------|----------|----------| -| hostname | text | URL (hostname or IP address) of the pihole web server | N/A | yes | no | -| token | text | Token to access the device. To generate token go to `settings` > `API` > `Show API token` | N/A | yes | no | -| refreshInterval | integer | Interval the device is polled in sec | 600 | no | yes | -| serverVersion | text | Defines the API to be used with this server | v5 | no | no | +| Name | Type | Description | Default | Required | Advanced | +|-----------------|---------|--------------------------------------------------------------------------------------------|---------|----------|----------| +| hostname | text | URL (hostname or IP address) of the pihole web server | N/A | yes | no | +| token | text | Token to access the device. To generate token, go to `settings` > `API` > `Show API token` | N/A | yes | no | +| refreshInterval | integer | Interval the device is polled in sec | 600 | no | yes | ## Channels @@ -61,7 +60,7 @@ The Pi-hole Binding allows you to monitor Pi-hole statistics and control its fun | enabled | Switch | RO | The current status of blocking | | disable-enable | String | RW | Is blocking enabled/disabled | | gravity-last-update | DateTime | RO | Last update of gravity | -| gravity-file-exists | DateTime | RO | Does gravity file exists | +| gravity-file-exists | Switch | RO | Does gravity file exists | ## Full Example @@ -141,7 +140,7 @@ String disable_enable "Disable Blocking" { channel="pihole:server:a4a077edb8:dis ### Actions -Pi-hole binding provides actions to use in rules: +The Pi-hole binding provides actions to use in rules: ```java import java.util.concurrent.TimeUnit diff --git a/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/i18n/pihole.properties b/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/i18n/pihole.properties index dc2506b9a9e6f..25fda68ef3ac2 100644 --- a/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/i18n/pihole.properties +++ b/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/i18n/pihole.properties @@ -67,7 +67,7 @@ thing-type.config.pihole.server.hostname.description = Hostname or IP address of thing-type.config.pihole.server.refreshIntervalSeconds.label = Refresh Interval thing-type.config.pihole.server.refreshIntervalSeconds.description = Interval the device is polled in sec. thing-type.config.pihole.server.token.label = Token -thing-type.config.pihole.server.token.description = Token to access the device. To generate token go to `settings` > `API` > `Show API token` +thing-type.config.pihole.server.token.description = Token to access the device. To generate token, go to `settings` > `API` > `Show API token` # channel types @@ -79,6 +79,8 @@ channel-type.pihole.disable-enable-channel.command.option.FOR_5_MIN = Disable Bl channel-type.pihole.disable-enable-channel.command.option.ENABLE = Enable Blocking channel-type.pihole.enabled-channel.label = Status channel-type.pihole.enabled-channel.description = The current status of blocking +channel-type.pihole.gravity-file-exists-channel.label = Gravity File Exists +channel-type.pihole.gravity-last-update-channel.label = Gravity Last Update channel-type.pihole.number-channel.label = Number channel # channel types diff --git a/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/thing/thing-types.xml index ef7d2e14d19c8..80a5c606b6a50 100644 --- a/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.pihole/src/main/resources/OH-INF/thing/thing-types.xml @@ -129,7 +129,7 @@ password - Token to access the device. To generate token go to `settings` > `API` > `Show API token` + Token to access the device. To generate token, go to `settings` > `API` > `Show API token` diff --git a/bundles/org.openhab.binding.pilight/README.md b/bundles/org.openhab.binding.pilight/README.md index eca1d06320860..5943e6b29eef6 100644 --- a/bundles/org.openhab.binding.pilight/README.md +++ b/bundles/org.openhab.binding.pilight/README.md @@ -1,18 +1,18 @@ # pilight Binding -The pilight binding allows openHAB to communicate with a [pilight](https://www.pilight.org/) instance running pilight -version 6.0 or greater. +The pilight binding allows openHAB to communicate with a [pilight](https://www.pilight.org/) instance running pilight version 6.0 or greater. -> pilight is a free open source full fledge domotica solution that runs on a Raspberry Pi, HummingBoard, BananaPi, -> Radxa, but also on *BSD and various linuxes (tested on Arch, Ubuntu and Debian). It's open source and freely available -> for anyone. pilight works with a great deal of devices and is frequency independent. Therefor, it can control devices -> working at 315Mhz, 433Mhz, 868Mhz etc. Support for these devices are dependent on community, because we as developers -> don't own them all. +> pilight is a free, open-source, full-fledged domotica solution that runs on a Raspberry Pi, HummingBoard, BananaPi, +> Radxa, but also on *BSD and various Linux distributions (tested on Arch, Ubuntu, and Debian). +> It's open source and freely available for anyone. +> pilight works with a great deal of devices and is frequency independent. +> Therefore, it can control devices working at 315MHz, 433MHz, 868MHz, etc. +> Support for these devices is dependent on the community, because we as developers don't own them all. -pilight is a cheap way to control 'Click On Click Off' devices. It started as an application for the Raspberry Pi (using -the GPIO interface) but it's also possible now to connect it to any other PC using an Arduino Nano. You will need a -cheap 433Mhz transceiver in both cases. See the [Pilight manual](https://manual.pilight.org/electronics/wiring.html) for -more information. +pilight is a cheap way to control 'Click On Click Off' devices. +It started as an application for the Raspberry Pi (using the GPIO interface), but it's also possible now to connect it to any other PC using an Arduino Nano. +You will need a cheap 433MHz transceiver in both cases. +See the [Pilight manual](https://manual.pilight.org/electronics/wiring.html) for more information. ## Supported Things @@ -37,11 +37,10 @@ The `bridge` requires the following configuration parameters: |----------------------|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| | IP Address | ipAddress | Host name or IP address of the pilight daemon | yes | | Port | port | Port number on which the pilight daemon is listening. Default: 5000 | yes | -| Delay | delay | Delay (in millisecond) between consecutive commands. Recommended value without band pass filter: 1000. Recommended value with band pass filter: somewhere between 200-500. Default: 500 | no | +| Delay | delay | Delay (in milliseconds) between consecutive commands. Recommended value without band-pass filter: 1000. Recommended value with band-pass filter: somewhere between 200-500. Default: 500 | no | | Background Discovery | backgroundDiscovery | Whether pilight devices for this Bridge should automatically be discovered. Default: true | no | -Important: you must explicitly configure the port in the pilight daemon config or otherwise a random port will be used -and the binding will not be able to connect. +Important: You must explicitly configure the port in the pilight daemon config; otherwise, a random port will be used and the binding will not be able to connect. ### `contact`, `dimmer`, `switch`, `generic` Things @@ -53,7 +52,7 @@ These things have all one required parameter: ## Channels -The `bridge` thing has no channels. +The `bridge` Thing has no channels. The `contact`, `dimmer` and `switch` things all have one channel: @@ -63,25 +62,20 @@ The `contact`, `dimmer` and `switch` things all have one channel: | `dimmer` | dimlevel | Dimmer | Dim level of the dimmer | | `switch` | state | Switch | State of the switch | -The `generic` thing has no fixed channels, so you have to add them manually. Currently, only String and Number channels -are supported. +The `generic` Thing has no fixed channels, so you have to add them manually. +Currently, only String and Number channels are supported. ## Auto Discovery ### Bridge Auto Discovery -The pilight daemon implements a SSDP interface, which can be used to search for running pilight daemon instances by -sending a SSDP request via multicast udp (this mechanism may only work if -the [standalone mode](https://manual.pilight.org/configuration/settings.html#standalone) in the pilight daemon is -disabled. After loading the binding this bridge discovery is automatically run and scheduled to scan for bridges every -10 minutes. +The pilight daemon implements an SSDP interface, which can be used to search for running pilight daemon instances by sending an SSDP request via multicast UDP (this mechanism may only work if the [standalone mode](https://manual.pilight.org/configuration/settings.html#standalone) in the pilight daemon is disabled). +After loading the binding, this bridge discovery is automatically run and scheduled to scan for bridges every 10 minutes. ### Device Auto Discovery -After a `bridge` thing has been configured in openHAB, it automatically establishes a connection between pilight daemon -and openHAB. As soon as the bridge is connected, the devices configured in the pilight daemon are automatically found -via autodiscovery in background (or via a manually triggered discovery) and are displayed in the inbox to easily create -things from them. +After a `bridge` Thing has been configured in openHAB, it automatically establishes a connection between the pilight daemon and openHAB. +As soon as the bridge is connected, the devices configured in the pilight daemon are automatically found via autodiscovery in the background (or via a manually triggered discovery) and are displayed in the inbox to easily create things from them. ## Full Example diff --git a/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/i18n/pilight.properties b/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/i18n/pilight.properties index 9f8727a180055..fdf13a9882044 100644 --- a/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/i18n/pilight.properties +++ b/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/i18n/pilight.properties @@ -19,14 +19,13 @@ thing-type.pilight.switch.description = Pilight Switch # thing types config thing-type.config.pilight.bridge.backgroundDiscovery.label = Background Discovery -thing-type.config.pilight.bridge.backgroundDiscovery.description = Whether Pilight devices for this Bridge should automatically be discovered. +thing-type.config.pilight.bridge.backgroundDiscovery.description = Whether Pilight devices for this bridge should automatically be discovered. thing-type.config.pilight.bridge.delay.label = Delay between Commands -thing-type.config.pilight.bridge.delay.description = Delay (in millisecond) between consecutive commands. Recommended value without band pass filter: 1000. Recommended value with band pass filter: somewhere between 200-500. +thing-type.config.pilight.bridge.delay.description = Delay (in milliseconds) between consecutive commands. Recommended value without band-pass filter: 1000. Recommended value with band-pass filter: somewhere between 200-500. thing-type.config.pilight.bridge.ipAddress.label = Network Address thing-type.config.pilight.bridge.ipAddress.description = The IP or host name of the Pilight instance. thing-type.config.pilight.bridge.port.label = Port -thing-type.config.pilight.bridge.port.description = Port of the Pilight daemon. You must explicitly configure the port in the Pilight daemon config or otherwise a random port will be used and the binding will not be able to connect. - +thing-type.config.pilight.bridge.port.description = Port of the Pilight daemon. You must explicitly configure the port in the Pilight daemon config; otherwise, a random port will be used and the binding will not be able to connect. thing-type.config.pilight.device.name.label = Name of Device thing-type.config.pilight.device.name.description = The name of the pilight device. diff --git a/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/thing/bridge.xml b/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/thing/bridge.xml index 2978a3a07fd29..d981bfba21d15 100644 --- a/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/thing/bridge.xml +++ b/bundles/org.openhab.binding.pilight/src/main/resources/OH-INF/thing/bridge.xml @@ -21,15 +21,14 @@ - Port of the Pilight daemon. You must explicitly configure the port in the Pilight daemon config or - otherwise a random port will be used and the binding will not be able to connect. - + Port of the Pilight daemon. You must explicitly configure the port in the Pilight daemon config; + otherwise, a random port will be used and the binding will not be able to connect. 5000 - Delay (in millisecond) between consecutive commands. Recommended value without band pass filter: 1000. - Recommended value with band pass filter: somewhere between 200-500. + Delay (in milliseconds) between consecutive commands. Recommended value without band-pass filter: 1000. + Recommended value with band-pass filter: somewhere between 200-500. 500 true diff --git a/bundles/org.openhab.binding.pioneeravr/README.md b/bundles/org.openhab.binding.pioneeravr/README.md index 5d6af85ad9648..4bf52e5715bd9 100644 --- a/bundles/org.openhab.binding.pioneeravr/README.md +++ b/bundles/org.openhab.binding.pioneeravr/README.md @@ -6,21 +6,21 @@ This binding integrates Pioneer AVRs. The binding can auto-discover the Pioneer AVRs present on your local network. The auto-discovery is enabled by default. -To disable it, you can create a file in the services directory called pioneeravr.cfg with the following content: +To disable it, you can create a file in the services directory called `pioneeravr.cfg` with the following content: ```ini #Put your configuration here org.openhab.pioneeravr:enableAutoDiscovery=false ``` -This configuration parameter only control the PioneerAVR auto-discovery process, not the openHAB auto-discovery. +This configuration parameter only controls the PioneerAVR auto-discovery process, not the openHAB auto-discovery. Moreover, if the openHAB auto-discovery is disabled, the PioneerAVR auto-discovery is disabled too. ## Thing configuration -In the things folder, create a file called pioneeravr.things (or any other name) and configure your AVRs inside. +In the things folder, create a file called `pioneeravr.things` (or any other name) and configure your AVRs inside. -The binding can control AVRs through the local network (ipAvr/ipAvrUnsupported thing type) or through a Serial connection (serialAvr) if the AVR is directly connected to your computer. +The binding can control AVRs through the local network (ipAvr/ipAvrUnsupported Thing type) or through a serial connection (serialAvr) if the AVR is directly connected to your computer. Configuration of ipAvr/ipAvrUnsupported: @@ -89,7 +89,9 @@ Here after are the ID values of the input sources (depending on you AVR input so ## Listening Modes -The _Listening Mode_ is set by user to instruct the AVR how to treat the audio signal and do upscaling, downscaling and amplification. This settings corresponds to the settings made with the remote control or front panel. What the AVR actually does with each setting/input-signal-combination can be read out using the _Playing Listening Mode_ channel. +The _Listening Mode_ is set by the user to instruct the AVR how to treat the audio signal and do upscaling, downscaling, and amplification. +This setting corresponds to the settings made with the remote control or front panel. +What the AVR actually does with each setting/input-signal-combination can be read out using the _Playing Listening Mode_ channel. - 0001: STEREO (cyclic) - 0010: STANDARD (cyclic) @@ -149,7 +151,8 @@ The _Listening Mode_ is set by user to instruct the AVR how to treat the audio s ## Playing Listening Modes -The _Playing Listening Mode_ is the Listening Mode that is actually playing as opposed to the _Listening Mode_ set by the user. The _Playing Listening Mode_ is what the display on the device shows. +The _Playing Listening Mode_ is the Listening Mode that is actually playing, as opposed to the _Listening Mode_ set by the user. +The _Playing Listening Mode_ is what the display on the device shows. - 0101: [)(]PLIIx MOVIE - 0102: [)(]PLII MOVIE diff --git a/bundles/org.openhab.binding.pixometer/README.md b/bundles/org.openhab.binding.pixometer/README.md index d7b7e49cb24dc..b2c2e4c91e604 100644 --- a/bundles/org.openhab.binding.pixometer/README.md +++ b/bundles/org.openhab.binding.pixometer/README.md @@ -4,7 +4,7 @@ This binding connects to the pixometer API, which can manage your meter readings ## Supported Things -This binding supports the following thing types according to the capabilities of pixometer: +This binding supports the following Thing types according to pixometer's capabilities: | Name | Type | Description | | ----------- | ------ | --------------------------------------------------------------------------- | @@ -13,17 +13,17 @@ This binding supports the following thing types according to the capabilities of | Gasmeter | Thing | Provides access to the readings of configured gas meters. | | Watermeter | Thing | Provides access to the readings of configured water meters. | -The different meter types are pretty similar in basic, but are implemented in parallel to provide Units of Measurement support. +The different meter types are broadly similar at their core but are implemented separately to provide Units of Measurement support. ## Thing Configuration ### Account (bridge) -| Parameter | Description | Required | Default Value | Comment | -| --------- | --------------------------------------------- | -------- | ------------- | ------- | -| user | | Yes | - | | -| password | | Yes | - | | -| refresh | Sets the refresh time. Minimum is 60 Minutes. | Yes | 240 | | +| Parameter | Description | Required | Default Value | Comment | +|-----------|---------------------------------------------------|----------|---------------|---------| +| user | | Yes | - | | +| password | | Yes | - | | +| refresh | Sets the refresh interval. Minimum is 60 minutes. | Yes | 240 | | ### Meter Things @@ -39,7 +39,7 @@ All meter things have the following channels: | ------------------ | ------------------------------------------------------ | ------------------- | -------- | | last_reading_value | The last value that has been read for this meter. | Number | false | | last_reading_date | The time at which the last reading value was recorded. | DateTime | false | -| last_refresh_date | The last time that the current thing has been updated. | DateTime | false | +| last_refresh_date | The last time that the current Thing has been updated. | DateTime | false | ## Full Example diff --git a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/i18n/pixometer.properties b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/i18n/pixometer.properties index 6060df710e4d0..2ebf6c3890615 100644 --- a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/i18n/pixometer.properties +++ b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/i18n/pixometer.properties @@ -1,44 +1,43 @@ # add-on + addon.pixometer.name = Pixometer Binding -addon.pixometer.description = This binding can connect to the Pixometer.io API and accesses meters and measurement data from the connected account. +addon.pixometer.description = This binding integrates meter data through pixometer. # thing types -thing-type.pixometer.account.label = Pixometer Account -thing-type.pixometer.account.description = - -thing-type.config.pixometer.account.user.label = Username -thing-type.config.pixometer.account.user.description = The Pixometer username - -thing-type.config.pixometer.account.password.label = Password -thing-type.config.pixometer.account.password.description = The Pixometer password - -thing-type.config.pixometer.account.refresh.label = Refresh Interval -thing-type.config.pixometer.account.refresh.description = The interval on which the API is refreshed. (at least 60 minutes) +thing-type.pixometer.account.label = Pixometer Account +thing-type.pixometer.account.description = This bridge manages your Pixometer account. thing-type.pixometer.energymeter.label = Energymeter -thing-type.pixometer.energymeter.description = An energymeter thing. - -thing-type.config.pixometer.energymeter.resource_id.label = Meter Ressource ID -thing-type.config.pixometer.energymeter.resource_id.description = The ID which represents the current meter. You can find it in the pixometer browser app while editing a specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" - +thing-type.pixometer.energymeter.description = A specific energy meter. thing-type.pixometer.gasmeter.label = Gasmeter -thing-type.pixometer.gasmeter.description = A gas meter. - -thing-type.config.pixometer.gasmeter.resource_id.label = Meter Tressource ID -thing-type.config.pixometer.gasmeter.resource_id.description = The ID which represents the current meter. You can find it in the pixometer browser app while editing a specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" - +thing-type.pixometer.gasmeter.description = A specific gas meter. thing-type.pixometer.watermeter.label = Watermeter -thing-type.pixometer.watermeter.description = A water meter. +thing-type.pixometer.watermeter.description = A specific water meter. -thing-type.config.pixometer.watermeter.resource_id.label = Meter Ressource ID -thing-type.config.pixometer.watermeter.resource_id.description = The ID which represents the current meter. You can find it in the pixometer browser app while editing a specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" +# thing types config -# channel types -channel-type.pixometer.last_reading_value.label = Reading Value -channel-type.pixometer.last_reading_value.description = Value of the last reading that has been made with pixometer. +thing-type.config.pixometer.account.password.label = Password +thing-type.config.pixometer.account.password.description = Your Pixometer password. +thing-type.config.pixometer.account.refresh.label = Refresh Time +thing-type.config.pixometer.account.refresh.description = Sets the refresh interval. Minimum is 60 minutes. +thing-type.config.pixometer.account.user.label = Username +thing-type.config.pixometer.account.user.description = Your Pixometer username. +thing-type.config.pixometer.energymeter.resourceId.label = Resource ID +thing-type.config.pixometer.energymeter.resourceId.description = The ID that represents the current meter. You can find it in the Pixometer web app while editing a specific meter. It looks like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" +thing-type.config.pixometer.gasmeter.resourceId.label = Resource ID +thing-type.config.pixometer.gasmeter.resourceId.description = The ID that represents the current meter. You can find it in the Pixometer web app while editing a specific meter. It looks like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" +thing-type.config.pixometer.watermeter.resourceId.label = Resource ID +thing-type.config.pixometer.watermeter.resourceId.description = The ID that represents the current meter. You can find it in the Pixometer web app while editing a specific meter. It looks like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" -channel-type.pixometer.last_reading_date.label = Reading Date -channel-type.pixometer.last_reading_date.description = Date of the last reading that has been made with pixometer. +# channel types -channel-type.pixometer.last_refresh_date.label = Refresh Date -channel-type.pixometer.last_refresh_date.description = Date of the last time the Api has been refreshed. +channel-type.pixometer.last_reading_date.label = Last Reading +channel-type.pixometer.last_reading_date.description = The last time that the current meter was read. +channel-type.pixometer.last_reading_value_energy.label = Last Reading +channel-type.pixometer.last_reading_value_energy.description = The last value that has been read for this meter. +channel-type.pixometer.last_reading_value_gas.label = Last Reading +channel-type.pixometer.last_reading_value_gas.description = The last value that has been read for this meter. +channel-type.pixometer.last_reading_value_water.label = Last Reading +channel-type.pixometer.last_reading_value_water.description = The last value that has been read for this meter. +channel-type.pixometer.last_refresh_date.label = Last Refresh +channel-type.pixometer.last_refresh_date.description = The last time that the thing was refreshed. diff --git a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/account.xml b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/account.xml index cb48972e7991e..79a0d6b74692a 100644 --- a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/account.xml +++ b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/account.xml @@ -7,23 +7,23 @@ - This Bridge handles your Pixometer account. + This bridge manages your Pixometer account. WebService - Your Pixometer Username. + Your Pixometer username. password - Your Pixometer Password. + Your Pixometer password. - Sets the refresh time. Minimum is 60 Minutes. + Sets the refresh interval. Minimum is 60 minutes. 240 diff --git a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/channels.xml b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/channels.xml index 11f955418d163..0d5702f0c9260 100644 --- a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/channels.xml +++ b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/channels.xml @@ -6,13 +6,13 @@ DateTime - The last time that the current meter has been read. + The last time that the current meter was read. DateTime - The last time that the thing has been refreshed. + The last time that the thing was refreshed. diff --git a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/energymeter.xml b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/energymeter.xml index 5207be490ca0c..73ed583a064d1 100644 --- a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/energymeter.xml +++ b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/energymeter.xml @@ -18,9 +18,9 @@ - - The ID which represents the current meter. You can find it in the pixometer browser app while editing a - specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" + + The ID that represents the current meter. You can find it in the Pixometer web app while editing a + specific meter. It looks like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" diff --git a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/gasmeter.xml b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/gasmeter.xml index ccc76a5a51d18..ecf8809c6b4a6 100644 --- a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/gasmeter.xml +++ b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/gasmeter.xml @@ -18,9 +18,9 @@ - - The ID which represents the current meter. You can find it in the pixometer browser app while editing a - specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" + + The ID that represents the current meter. You can find it in the Pixometer web app while editing a + specific meter. It looks like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" diff --git a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/watermeter.xml b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/watermeter.xml index 4cdf9a69a32a5..81a28db6104cc 100644 --- a/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/watermeter.xml +++ b/bundles/org.openhab.binding.pixometer/src/main/resources/OH-INF/thing/watermeter.xml @@ -18,9 +18,9 @@ - - The ID which represents the current meter. You can find it in the pixometer browser app while editing a - specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" + + The ID that represents the current meter. You can find it in the Pixometer web app while editing a + specific meter. It looks like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" @@ -32,6 +32,6 @@ Measurement Water - + diff --git a/bundles/org.openhab.binding.pjlinkdevice/README.md b/bundles/org.openhab.binding.pjlinkdevice/README.md index 54e8fd3973c94..1d2517b9c7a9d 100644 --- a/bundles/org.openhab.binding.pjlinkdevice/README.md +++ b/bundles/org.openhab.binding.pjlinkdevice/README.md @@ -3,7 +3,7 @@ This binding allows you to control devices with [PJLink](https://pjlink.jbmia.or.jp/english/) support. PJLink is a protocol that was developed to standardize IP control of digital projectors, but can also be used by other device types. -Aspects that can be controlled via PJLink are power on/off, input source selection and volume/mute setting. +Aspects that can be controlled via PJLink include power on/off, input source selection, and volume/mute. ## Supported Things @@ -18,11 +18,11 @@ The binding is tested with the PJLink device test tool (PJLinkTEST4CNT) and an A ## Discovery -Autodiscovery is checking all IP addressess of all class C IPv4 subnets connected to the openHAB system for devices which respond PJLink compliant on the PJLink standard port 4352. +Autodiscovery scans all Class C IPv4 subnets connected to the openHAB system for devices that respond to PJLink on the standard port 4352. ## Thing Configuration -The _pjLinkDevice_ thing type has the following parameters: +The _pjLinkDevice_ Thing type has the following parameters: | Parameter | Description | |-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/i18n/pjLinkDevice.properties b/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/i18n/pjLinkDevice.properties index 4dc05cfda9145..e1db024339ab3 100644 --- a/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/i18n/pjLinkDevice.properties +++ b/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/i18n/pjLinkDevice.properties @@ -6,7 +6,7 @@ addon.pjLinkDevice.description = This binding can control PJLink compatible devi # thing types thing-type.pjLinkDevice.pjLinkDevice.label = PJLink Device -thing-type.pjLinkDevice.pjLinkDevice.description = A PJLink compatible device, e.g. a digital projector +thing-type.pjLinkDevice.pjLinkDevice.description = A PJLink-compatible device, e.g., a digital projector. # thing types config @@ -16,42 +16,42 @@ thing-type.config.pjLinkDevice.pjLinkDevice.autoReconnectInterval.label = Auto R thing-type.config.pjLinkDevice.pjLinkDevice.autoReconnectInterval.description = Seconds between connection retries when connection to the PJLink device has been lost, 0 means never retry, minimum 30s thing-type.config.pjLinkDevice.pjLinkDevice.group.basic.label = Basic Settings thing-type.config.pjLinkDevice.pjLinkDevice.group.refresh.label = Polling Settings -thing-type.config.pjLinkDevice.pjLinkDevice.group.refresh.description = Use these settings to configure how the status of the PJLink device will be refreshed +thing-type.config.pjLinkDevice.pjLinkDevice.group.refresh.description = Use these settings to configure how the status of the PJLink device is refreshed. thing-type.config.pjLinkDevice.pjLinkDevice.ipAddress.label = IP Address thing-type.config.pjLinkDevice.pjLinkDevice.ipAddress.description = The address of the PJLink device to control. thing-type.config.pjLinkDevice.pjLinkDevice.refreshInputChannel.label = Poll for Selected Input Channel -thing-type.config.pjLinkDevice.pjLinkDevice.refreshInputChannel.description = Enable polling for the selected input channel. Only considered if the refreshInterval interval is greater than zero. +thing-type.config.pjLinkDevice.pjLinkDevice.refreshInputChannel.description = Enable polling for the selected input channel. Only used if the refresh interval is greater than zero. thing-type.config.pjLinkDevice.pjLinkDevice.refreshInterval.label = Refresh Interval (s) thing-type.config.pjLinkDevice.pjLinkDevice.refreshInterval.description = How often to poll the device state (in seconds). A value of zero will disable polling. thing-type.config.pjLinkDevice.pjLinkDevice.refreshLampState.label = Poll for Lamp State thing-type.config.pjLinkDevice.pjLinkDevice.refreshLampState.description = Enable polling for the lamp state. Only considered if the refresh interval is greater than zero. thing-type.config.pjLinkDevice.pjLinkDevice.refreshMute.label = Poll for Mute State -thing-type.config.pjLinkDevice.pjLinkDevice.refreshMute.description = Enable polling for the mute state. Only considered if the refreshInterval interval is greater than zero. +thing-type.config.pjLinkDevice.pjLinkDevice.refreshMute.description = Enable polling for the mute state. Only used if the refresh interval is greater than zero. thing-type.config.pjLinkDevice.pjLinkDevice.refreshPower.label = Poll for Power State -thing-type.config.pjLinkDevice.pjLinkDevice.refreshPower.description = Enable polling for the power state. Only considered if the refreshInterval interval is greater than zero. +thing-type.config.pjLinkDevice.pjLinkDevice.refreshPower.description = Enable polling for the power state. Only used if the refresh interval is greater than zero. thing-type.config.pjLinkDevice.pjLinkDevice.tcpPort.label = TCP Port thing-type.config.pjLinkDevice.pjLinkDevice.tcpPort.description = The TCP port of the PJLink device to control. # channel types channel-type.pjLinkDevice.audioAndVideoMute.label = Audio and Video Mute -channel-type.pjLinkDevice.audioAndVideoMute.description = Select the audio and video mute status +channel-type.pjLinkDevice.audioAndVideoMute.description = Set the audio and video mute state. channel-type.pjLinkDevice.audioMute.label = Audio Mute -channel-type.pjLinkDevice.audioMute.description = Select the audio mute status +channel-type.pjLinkDevice.audioMute.description = Set the audio mute state. channel-type.pjLinkDevice.input.label = Input -channel-type.pjLinkDevice.input.description = Select the input signal to use +channel-type.pjLinkDevice.input.description = Set the input source. channel-type.pjLinkDevice.lampActive.label = Lamp Active channel-type.pjLinkDevice.lampActive.description = Is the lamp in use? channel-type.pjLinkDevice.lampHours.label = Lamp Hours -channel-type.pjLinkDevice.lampHours.description = How long the lamp has been in use (in hours) +channel-type.pjLinkDevice.lampHours.description = How long the lamp has been in use (in hours). channel-type.pjLinkDevice.power.label = Power -channel-type.pjLinkDevice.power.description = Power ON/OFF the projector +channel-type.pjLinkDevice.power.description = Turn the projector on or off. channel-type.pjLinkDevice.videoMute.label = Video Mute -channel-type.pjLinkDevice.videoMute.description = Select the video mute status +channel-type.pjLinkDevice.videoMute.description = Set the video mute state. # channel types config channel-type.config.pjLinkDevice.lampActive.lampNumber.label = Lamp Number -channel-type.config.pjLinkDevice.lampActive.lampNumber.description = Show activity for this lamp +channel-type.config.pjLinkDevice.lampActive.lampNumber.description = Show whether this lamp is active. channel-type.config.pjLinkDevice.lampHours.lampNumber.label = Lamp Number -channel-type.config.pjLinkDevice.lampHours.lampNumber.description = Show used hours for this lamp +channel-type.config.pjLinkDevice.lampHours.lampNumber.description = Show the used hours for this lamp. diff --git a/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/thing/thing-types.xml index 3adb3e676adb7..e5fa44cd71225 100644 --- a/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.pjlinkdevice/src/main/resources/OH-INF/thing/thing-types.xml @@ -6,7 +6,7 @@ - A PJLink compatible device, e.g. a digital projector + A PJLink-compatible device, e.g., a digital projector. Projector @@ -30,7 +30,7 @@ - Use these settings to configure how the status of the PJLink device will be refreshed + Use these settings to configure how the status of the PJLink device is refreshed. network-address @@ -61,20 +61,17 @@ false - Enable polling for the power state. Only considered if the refreshInterval interval is greater than - zero. + Enable polling for the power state. Only used if the refresh interval is greater than zero. false - Enable polling for the mute state. Only considered if the refreshInterval interval is greater than - zero. + Enable polling for the mute state. Only used if the refresh interval is greater than zero. false - Enable polling for the selected input channel. Only considered if the refreshInterval interval is - greater than zero. + Enable polling for the selected input channel. Only used if the refresh interval is greater than zero. false @@ -88,7 +85,7 @@ Switch - Power ON/OFF the projector + Turn the projector on or off. Switch Power @@ -98,13 +95,13 @@ String - Select the input signal to use + Set the input source. Switch - Select the audio mute status + Set the audio mute state. Switch SoundVolume @@ -114,7 +111,7 @@ Switch - Select the video mute status + Set the video mute state. Switch Brightness @@ -124,7 +121,7 @@ Switch - Select the audio and video mute status + Set the audio and video mute state. Switch MediaControl @@ -134,12 +131,12 @@ Number - How long the lamp has been in use (in hours) + How long the lamp has been in use (in hours). - Show used hours for this lamp + Show the used hours for this lamp. 1 @@ -153,7 +150,7 @@ - Show activity for this lamp + Show whether this lamp is active. 1 diff --git a/bundles/org.openhab.binding.playstation/README.md b/bundles/org.openhab.binding.playstation/README.md index 29b3bf733cc43..722cc6cfa96cc 100644 --- a/bundles/org.openhab.binding.playstation/README.md +++ b/bundles/org.openhab.binding.playstation/README.md @@ -1,46 +1,47 @@ # Sony PlayStation Binding -This binding allows you to monitor the on/off status and which application that is currently running on your PlayStation 4. -By providing your user-credentials you can also change the power, which application that is running and more. +This binding allows you to monitor the on/off status and which application is currently running on your PlayStation 4. +By providing your user credentials you can also change the power state, which application is running, and more. ## Supported Things This binding should support all PS4 variants. -It can also tell if your PS3 is ON or OFF/not present. +It can also tell if your PS3 is on, off, or not present. ## Discovery Discovery should find all your PS4s within a few seconds as long as they are in standby mode and not completely turned off. -To be able to discover your PS3 you need to turn on "Connect PS Vita System Using Network" in +To discover your PS3, you need to turn on "Connect PS Vita System Using Network" in Settings -> System Settings -> Connect PS Vita System Using Network. ## Thing Configuration **playstation4** parameters: -| Property | Default | Required | Description | -|---------------------|---------|:--------:|--------------------------------------------------------------------------| -| ipAddress | | Yes | The IP address of the PlayStation 4 | -| userCredential | | Yes | A key used for authentication, get via PS4-waker. | -| pairingCode | | Yes | This is shown on the PlayStation 4 during pairing, only needed once. | -| passCode | | (Yes) | If you use a code to log in your user on the PS4, set this. | -| connectionTimeout | 60 | No | How long the connection to the PS4 is kept up, seconds. | -| autoConnect | false | No | If a connection should be establish to the PS4 when it's turned on. | -| artworkSize | 320 | No | Width and height of downloaded artwork. | -| outboundIP | | No | Use this if your PS4 is not on the normal openHAB network. | -| ipPort | 997 | No | The port to probe the PS4 on, no need to change normally. | - -If you want to control your PS4 the first thing you need is your user-credentials, this is a 64 characters HEX string that is easiest obtained by using PS4-waker . -To run the PS4-waker you will need a Node.js command prompt (for example: ). -Enter "npx ps4-waker --help" int the command prompt. Agree to install by entering "y". +| Property | Default | Required | Description | +|-------------------|---------|:--------:|----------------------------------------------------------------------------| +| ipAddress | | Yes | The IP address of the PlayStation 4 | +| userCredential | | Yes | A key used for authentication, obtained via PS4-waker. | +| pairingCode | | Yes | This is shown on the PlayStation 4 during pairing, only needed once. | +| passCode | | (Yes) | If you use a code to log in to your user on the PS4, set this. | +| connectionTimeout | 60 | No | How long the connection to the PS4 is kept open (in seconds). | +| autoConnect | false | No | Whether a connection should be established to the PS4 when it's turned on. | +| artworkSize | 320 | No | Width and height of downloaded artwork. | +| outboundIP | | No | Use this if your PS4 is not on the normal openHAB network. | +| ipPort | 997 | No | The port to probe the PS4 on, no need to change normally. | + +If you want to control your PS4, the first thing you need is your user credentials. +This is a 64-character hex string that is most easily obtained by using PS4-waker (). +To run PS4-waker, you will need Node.js installed (for example: ). +Enter "npx ps4-waker --help" in the command prompt. Agree to install by entering "y". After that send "npx ps4-waker --check". You will get asked to connect the "PS4 Second screen" Android app to the running clone. -Do this and then you will need to get the pairing key from your PS4 --> Settings ---> Mobile device pairing settings. +Do this, and then you will need to get the pairing key from your PS4: Settings -> Mobile device pairing settings. On the PS4 screen you will see your pairing code and in the command prompt you will find the user credentials. -Then you need to pair your openHAB device with the PS4. +Then you need to pair openHAB with the PS4. This can be done by saving the Thing while the pairing screen is open on the PS4. The code is only needed during pairing. -Then, if you have a pass code when you log in to your PS4 you have to specify that as well. +If you have a passcode when you log in to your PS4, you must specify that as well. **playstation3** parameters: @@ -52,20 +53,20 @@ Then, if you have a pass code when you log in to your PS4 you have to specify th | Channel Type ID | Item Type | Description | Read/Write | |------------------|-----------|-------------------------------------------------------------------------|------------| -| power | Switch | Shows if PlayStation is ON or in standby. | RW | +| power | Switch | Shows if the PlayStation is on or in standby. | RW | | applicationName | String | Name of the currently running application. | R | -| applicationId | String | Id of the currently running application. | RW | +| applicationId | String | ID of the currently running application. | RW | | applicationImage | Image | Application artwork. | R | -| oskText | String | The text from the OnScreenKeyboard. | RW | -| sendKey | String | Send a key/button push to PS4. | W | -| secondScreen | String | HTTP link to the second screen. | R | +| oskText | String | The text from the on-screen keyboard. | RW | +| sendKey | String | Send a key/button press to the PS4. | W | +| secondScreen | String | HTTP link to the Second Screen. | R | | connect | Switch | Connect/disconnect to/from PS4. | RW | ## Full Example -Example of how to configure a thing. +Example of how to configure a Thing. -demo.thing +demo.things ```java Thing playstation:PS4:123456789ABC "PlayStation4" @ "Living Room" [ ipAddress="192.168.0.2", userCredential="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", passCode="1234", pairingCode="12345678", @@ -74,7 +75,7 @@ connectionTimeout="60", autoConnect="false", artworkSize="320", outboundIP="192. Thing playstation:PS3:123456789ABC "PlayStation3" @ "Living Room" [ ipAddress="192.168.0.2" ] ``` -Here are some examples on how to map the channels to items. +Here are some examples of how to map the channels to items. demo.items: @@ -106,7 +107,7 @@ sitemap demo label="Main Menu" "CUSA02827"="HBO", "CUSA01780"="Spotify", "CUSA11993"="Marvel's Spider-Man" ] - Image item=PS4_Artwork + Image item=PS4_ArtWork Text item=PS4_OSKText Switch item=PS4_Connect String item=PS4_SendKey @@ -124,6 +125,7 @@ sitemap demo label="Main Menu" } ``` -## Caveat and Limitations! +## Caveats and Limitations -I tried my hardest to figure out how to turn on the PS3 through WakeOnLan but it looks like Sony never got it to work properly, the only way I've seen it turn on is via WiFi, but if you hook up your PS3 through WiFi to your router and enable WakeOnLan it turns itself on randomly. +I tried my hardest to figure out how to turn on the PS3 through Wake-on-LAN, but it looks like Sony never got it to work properly. +The only way I've seen it turn on is via Wi‑Fi, but if you connect your PS3 to your router via Wi‑Fi and enable Wake‑on‑LAN, it can turn itself on randomly. diff --git a/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/config/config.xml b/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/config/config.xml index d66842c32e2f0..87a9ff50a94e2 100644 --- a/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/config/config.xml +++ b/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/config/config.xml @@ -8,7 +8,7 @@ network-address - The IP Address of the PlayStation 3. + The IP address of the PlayStation 3. true @@ -16,52 +16,52 @@ - User Credential to Communicate with the PlayStation 4. + User credential to communicate with the PlayStation 4. password - Pass Code to Log in to PlayStation 4. + Passcode to log in to the PlayStation 4. - Code to Pair openHAB Device to PlayStation 4. Only Needed During Pairing. + Code to pair the openHAB device with the PlayStation 4. Only needed during pairing. - How Many Seconds After the Last Command the Connection to the PS4 Closes Down. Use 0 to Never Close - Connection. + How many seconds after the last command the connection to the PS4 closes. Use 0 to never close the + connection. 60 true - Should the Binding Try to Connect to the PS4 as Soon as it's Turned On. + Whether the binding should try to connect to the PS4 as soon as it's turned on. false true - The Width and Height of the Downloaded Artwork. + The width and height of the downloaded artwork. 320 true network-address - The IP Address of the PlayStation 4. + The IP address of the PlayStation 4. true - The IP Port Used to Communicate with the PlayStation 4. + The IP port used to communicate with the PlayStation 4. 997 true network-address - IP Address of the Network Interface to Use. + IP address of the network interface to use. true diff --git a/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/i18n/playstation.properties b/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/i18n/playstation.properties index 6095f9f826ba2..3eac91dbf020d 100644 --- a/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/i18n/playstation.properties +++ b/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/i18n/playstation.properties @@ -1,52 +1,63 @@ - # add-on + addon.playstation.name = Sony PlayStation Binding addon.playstation.description = Monitor and control your Sony PlayStation. # thing types + thing-type.playstation.PS3.label = PlayStation 3 thing-type.playstation.PS3.description = Sony PlayStation 3 console. thing-type.playstation.PS4.label = PlayStation 4 thing-type.playstation.PS4.description = Sony PlayStation 4 console. -# thing type configuration +# thing types config + thing-type.config.playstation.PS3.ipAddress.label = IP Address -thing-type.config.playstation.PS3.ipAddress.description = The IP Address of the PlayStation 3. -thing-type.config.playstation.PS4.userCredential.label = User Credential -thing-type.config.playstation.PS4.userCredential.description = User Credential to Communicate with the PlayStation 4, 64 Hex Characters. -thing-type.config.playstation.PS4.passCode.label = Pass Code -thing-type.config.playstation.PS4.passCode.description = Pass Code to Log in to PlayStation 4, Optional, 4 Digits. -thing-type.config.playstation.PS4.pairingCode.label = Pairing Code -thing-type.config.playstation.PS4.pairingCode.description = Pairing Code to Pair openHAB Device to PlayStation 4, only Needed During Pairing, 8 Digits. -thing-type.config.playstation.PS4.connectionTimeout.label = Connection Timeout -thing-type.config.playstation.PS4.connectionTimeout.description = How Many Seconds After the Last Command the Connection to the PS4 Closes Down. Use 0 to Never Close Connection. -thing-type.config.playstation.PS4.autoConnect.label = Auto Connect -thing-type.config.playstation.PS4.autoConnect.description = Should the Binding Try to Connect to the PS4 as Soon as it's Turned On. +thing-type.config.playstation.PS3.ipAddress.description = The IP address of the PlayStation 3. thing-type.config.playstation.PS4.artworkSize.label = Artwork Size -thing-type.config.playstation.PS4.artworkSize.description = The Width and Height of the Downloaded Artwork. -thing-type.config.playstation.PS4.outboundIP.label = Outbound IP -thing-type.config.playstation.PS4.outboundIP.description = IP Address of the Network Interface to use. Only use if your PS4 is on a Sub-Net Different from the Standard openHAB. +thing-type.config.playstation.PS4.artworkSize.description = The width and height of the downloaded artwork. +thing-type.config.playstation.PS4.autoConnect.label = Auto Connect +thing-type.config.playstation.PS4.autoConnect.description = Whether the binding should try to connect to the PS4 as soon as it's turned on. +thing-type.config.playstation.PS4.connectionTimeout.label = Connection Timeout +thing-type.config.playstation.PS4.connectionTimeout.description = How many seconds after the last command the connection to the PS4 closes. Use 0 to never close the connection. thing-type.config.playstation.PS4.ipAddress.label = IP Address -thing-type.config.playstation.PS4.ipAddress.description = The IP Address of the PlayStation 4. +thing-type.config.playstation.PS4.ipAddress.description = The IP address of the PlayStation 4. thing-type.config.playstation.PS4.ipPort.label = IP Port -thing-type.config.playstation.PS4.ipPort.description = The IP Port Used to Communicate with the PlayStation 4. +thing-type.config.playstation.PS4.ipPort.description = The IP port used to communicate with the PlayStation 4. +thing-type.config.playstation.PS4.outboundIP.label = Outbound IP +thing-type.config.playstation.PS4.outboundIP.description = IP address of the network interface to use. +thing-type.config.playstation.PS4.pairingCode.label = Pairing Code +thing-type.config.playstation.PS4.pairingCode.description = Code to pair the openHAB device with the PlayStation 4. Only needed during pairing. +thing-type.config.playstation.PS4.passCode.label = Pass Code +thing-type.config.playstation.PS4.passCode.description = Passcode to log in to the PlayStation 4. +thing-type.config.playstation.PS4.userCredential.label = User Credential +thing-type.config.playstation.PS4.userCredential.description = User credential to communicate with the PlayStation 4. # channel types -channel-type.playstation.power-ps3-channel.label = PlayStation 3 Power -channel-type.playstation.power-ps3-channel.description = Shows if PlayStation 3 is On or Off. -channel-type.playstation.power-channel.label = PlayStation 4 Power -channel-type.playstation.power-channel.description = Shows if PlayStation 4 is On or in Standby/Off. + channel-type.playstation.application-channel.label = Application -channel-type.playstation.application-channel.description = Name of the Currently Running Application. +channel-type.playstation.application-channel.description = Name of the currently running application. channel-type.playstation.applicationId-channel.label = Application ID -channel-type.playstation.applicationId-channel.description = ID of the Currently Running Application. +channel-type.playstation.applicationId-channel.description = ID of the currently running application. channel-type.playstation.applicationImage-channel.label = Artwork -channel-type.playstation.applicationImage-channel.description = Application Artwork. +channel-type.playstation.applicationImage-channel.description = Application artwork. +channel-type.playstation.connect-channel.label = Connected +channel-type.playstation.connect-channel.description = Connect to or disconnect from the PS4 without sending a command. channel-type.playstation.oskText-channel.label = OSK Text -channel-type.playstation.oskText-channel.description = The Text from the OnScreenKeyboard. -channel-type.playstation.sendKey-channel.label = Send a Key Press -channel-type.playstation.sendKey-channel.description = Send a Key Press to the PS4 UI. +channel-type.playstation.oskText-channel.description = The text from the on-screen keyboard. +channel-type.playstation.power-channel.label = PlayStation 4 Power +channel-type.playstation.power-channel.description = Shows if the PlayStation 4 is on or in standby/off. +channel-type.playstation.power-ps3-channel.label = PlayStation 3 Power +channel-type.playstation.power-ps3-channel.description = Shows if the PlayStation 3 is on or off. channel-type.playstation.secondScreen-channel.label = Second screen -channel-type.playstation.secondScreen-channel.description = Link to 2ndScreen HTTP server. -channel-type.playstation.connect-channel.label = Connect -channel-type.playstation.connect-channel.description = Connect/Disconnect to/from PS4 Without Sending a Command. +channel-type.playstation.secondScreen-channel.description = Link to the Second Screen HTTP server. +channel-type.playstation.sendKey-channel.label = Send a Key Press +channel-type.playstation.sendKey-channel.description = Send a key press to the PS4 UI. +channel-type.playstation.sendKey-channel.command.option.keyUp = Up +channel-type.playstation.sendKey-channel.command.option.keyDown = Down +channel-type.playstation.sendKey-channel.command.option.keyRight = Right +channel-type.playstation.sendKey-channel.command.option.keyLeft = Left +channel-type.playstation.sendKey-channel.command.option.keyEnter = Enter +channel-type.playstation.sendKey-channel.command.option.keyBack = Back +channel-type.playstation.sendKey-channel.command.option.keyOption = Option +channel-type.playstation.sendKey-channel.command.option.keyPS = PS diff --git a/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/thing/thing-types.xml index 4035ab84ba1e6..13b2ec02875d4 100644 --- a/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.playstation/src/main/resources/OH-INF/thing/thing-types.xml @@ -48,7 +48,7 @@ Switch - Shows if PlayStation 3 is On or Off. + Shows if the PlayStation 3 is on or off. Status Power @@ -58,7 +58,7 @@ Switch - Shows if PlayStation 4 is On or in Standby/Off. + Shows if the PlayStation 4 is on or in standby/off. Status Power @@ -67,7 +67,7 @@ String - Name of the Currently Running Application. + Name of the currently running application. Status App @@ -77,24 +77,24 @@ String - ID of the Currently running application. + ID of the currently running application. MediaControl Image - Application Artwork. + Application artwork. String - The Text from the OnScreenKeyboard. + The text from the on-screen keyboard. String - Send a Key Press to the PS4 UI. + Send a key press to the PS4 UI. MoveControl @@ -112,13 +112,13 @@ String - Link to 2ndScreen HTTP Server. + Link to the Second Screen HTTP server. Switch - Connect/Disconnect to/from PS4 without Sending Command. + Connect to or disconnect from the PS4 without sending a command. diff --git a/bundles/org.openhab.binding.plclogo/README.md b/bundles/org.openhab.binding.plclogo/README.md index f10eed552d396..f9de30f2215fc 100644 --- a/bundles/org.openhab.binding.plclogo/README.md +++ b/bundles/org.openhab.binding.plclogo/README.md @@ -1,25 +1,24 @@ # PLCLogo Binding -This binding provides native support of Siemens LOGO! PLC devices. -Communication with LOGO! is done via Moka7 library. +This binding provides native support for Siemens LOGO! PLC devices. +Communication with LOGO! is done via the Moka7 library. Currently only two devices are supported: `0BA7` (LOGO! 7) and `0BA8` (LOGO! 8). -Additionally multiple devices are supported. -Different families of LOGO! devices should work also, but was not tested now due to lack of hardware. -Binding works nicely at least 100ms polling rate, if network connection is stable. +Multiple devices are supported as well. +Different families of LOGO! devices should also work, but have not been tested due to lack of hardware. +The binding works reliably with a polling rate of at least 100 ms, provided the network connection is stable. ## Pitfalls -- Changing of block parameter while running the binding may kill your LOGO!, so that program flashing via LOGO! SoftComort - will be required. Furthermore programs within LOGO! SoftComfort and LOGO! itself will differ, so that online simulation - will not work anymore without program synchronisation. +- Changing block parameters while the binding is running may crash your LOGO!, requiring program flashing via LOGO! SoftComfort. + Furthermore, programs within LOGO! SoftComfort and LOGO! itself will differ, so online simulation will no longer work without program synchronization. -- Flashing the LOGO! while running the binding may crash the network interface of your LOGO!. Before flashing the LOGO! - with LOGO! SoftComfort stop openHAB service. If network interface is crashed, no reader could be created for this - device. See troubleshooting section below how to recover. +- Flashing the LOGO! while the binding is running may crash the network interface of your LOGO!. Before flashing the LOGO! + with LOGO! SoftComfort, stop the openHAB service. If the network interface crashes, no reader can be created for this + device. See the troubleshooting section below for recovery instructions. ## Discovery -Siemens LOGO! devices can be manually discovered by sending a request to every IP on the network. +Siemens LOGO! devices can be manually discovered by sending a request to every IP address on the network. This functionality should be used with caution, because it produces heavy load to the operating hardware. For this reason, the binding does not do an automatic background discovery, but discovery can be triggered manually. @@ -31,21 +30,21 @@ Every Siemens LOGO! PLC is configured as bridge: Bridge plclogo:device: [ address="", family="<0BA7/0BA8>", localTSAP="0x", remoteTSAP="0x", refresh= ] ``` -| Parameter | Type | Required | Default | Description | -| ---------- | :-----: | :--------: | :-------: | ---------------------------------------------------------------- | -| address | String | Yes | | IP address of the LOGO! PLC. | -| family | String | Yes | | LOGO! family to communicate with. Can be `0BA7` or `0BA8` now. | -| localTSAP | String | Yes | | TSAP (as hex) is used by the local instance. Check configuration | -| | | | | in LOGO!Soft Comfort. Common used value is `0x3000`. | -| remoteTSAP | String | Yes | | TSAP (as hex) of the remote LOGO! PLC, as configured by | -| | | | | LOGO!Soft Comfort. Common used value is `0x2000`. | -| refresh | Integer | No | 100ms | Polling interval, in milliseconds. Is used for query the LOGO!. | +| Parameter | Type | Required | Default | Description | +|------------|:-------:|:--------:|:-------:|------------------------------------------------------------------| +| address | String | Yes | | IP address of the LOGO! PLC. | +| family | String | Yes | | LOGO! family to communicate with. Can be `0BA7` or `0BA8` now. | +| localTSAP | String | Yes | | TSAP (as hex) is used by the local instance. Check configuration | +| | | | | in LOGO!Soft Comfort. Common used value is `0x3000`. | +| remoteTSAP | String | Yes | | TSAP (as hex) of the remote LOGO! PLC, as configured by | +| | | | | LOGO!Soft Comfort. Common used value is `0x2000`. | +| refresh | Integer | No | 100ms | Polling interval (in milliseconds) used to query the LOGO!. | -Be sure not to use the same values for localTSAP and remoteTSAP, if configure more than one LOGO! +Be sure not to use the same values for localTSAP and remoteTSAP if you configure more than one LOGO! ## Thing configuration -Binding supports four types of things: digital, analog, memory and datetime. +The binding supports four types of things: digital, analog, memory, and datetime. ### Digital Things @@ -55,12 +54,12 @@ The configuration pattern for digital things is: Thing digital "Label" @ "Location" [ kind="", force= ] ``` -| Parameter | Type | Required | Default | Description | -| --------- | :-----: | :--------: | :-------: | ------------------------------------------------------------ | -| kind | String | Yes | | Blocks kind | -| force | Boolean | No | false | Send current value to openHAB, independent if changed or not | +| Parameter | Type | Required | Default | Description | +|-----------|:-------:|:--------:|:-------:|----------------------------------------------------------------------| +| kind | String | Yes | | Blocks kind | +| force | Boolean | No | false | Send current value to openHAB, independent of whether changed or not | -Follow block kinds are allowed for digital things: +The following block kinds are allowed for digital things: | Type | `0BA7` | `0BA8` | | -------------- | :----: | ------ | @@ -78,13 +77,13 @@ The configuration pattern for analog things is: Thing analog "Label" @ "Location" [ kind="", threshold=, force= ] ``` -| Parameter | Type | Required | Default | Description | -| --------- | :-----: | :--------: | :-------: | ------------------------------------------------------------- | -| kind | String | Yes | | Blocks kind | -| threshold | Integer | No | 0 | Send current value to openHAB, if changed more than threshold | -| force | Boolean | No | false | Send current value to openHAB, independent if changed or not | +| Parameter | Type | Required | Default | Description | +|-----------|:-------:|:--------:|:-------:|----------------------------------------------------------------------| +| kind | String | Yes | | Blocks kind | +| threshold | Integer | No | 0 | Send current value to openHAB if changed by more than threshold | +| force | Boolean | No | false | Send current value to openHAB, independent of whether changed or not | -Follow block kinds are allowed for analog things: +The following block kinds are allowed for analog things: | Type | `0BA7` | `0BA8` | | -------------- | :----: | ------ | @@ -102,7 +101,7 @@ The configuration pattern for analog things is: Thing memory "Label" @ "Location" [ block="", threshold=, force= ] ``` -Follow block names are allowed for memory things: +The following block names are allowed for memory things: | Type | `0BA7` | `0BA8` | | ----- | :---------------: | ----------------- | @@ -111,7 +110,7 @@ Follow block names are allowed for memory things: | Word | `VW[0-849]` | `VW[0-849]` | | DWord | `VD[0-847]` | `VD[0-847]` | -Parameter `threshold` will be taken into account for Byte, Word and DWord, i.e Number items, only. +Parameter `threshold` will be taken into account for Byte, Word, and DWord (i.e., Number items) only. ### DateTime Things @@ -121,16 +120,16 @@ The configuration pattern for datetime things is: Thing datetime "Label" @ "Location" [ block="", type=, force= ] ``` -Follow block names are allowed for datetime things: +The following block names are allowed for datetime things: | Type | `0BA7` | `0BA8` | | ----- | :---------: | ----------- | | Word | `VW[0-849]` | `VW[0-849]` | -If parameter `type` is `"date"`, then the binding will try to interpret incoming data as calendar date. -The time this case will be taken from openHAB host. -If `type` is set to `"time"`, then incoming data will be tried to interpret as time of day. -The date this case will be taken from openHAB host. +If parameter `type` is `"date"`, the binding will try to interpret incoming data as a calendar date. +The time in this case will be taken from the openHAB host. +If `type` is set to `"time"`, incoming data will be interpreted as the time of day. +The date in this case will be taken from the openHAB host. ### Pulse Things @@ -140,13 +139,13 @@ The configuration pattern for pulse things is: Thing pulse "Label" @ "Location" [ block="", observe="", pulse= ] ``` -Follow block names are allowed for pulse things: +The following block names are allowed for pulse things: | Type | `0BA7` | `0BA8` | | ----- | :---------------: | ----------------- | | Bit | `VB[0-850].[0-7]` | `VB[0-850].[0-7]` | -Follow observed block names are allowed for pulse things: +The following observed block names are allowed for pulse things: | Type | `0BA7` | `0BA8` | | ----- | :---------------: | ----------------- | @@ -157,17 +156,16 @@ Follow observed block names are allowed for pulse things: | Bit | | `NI[1-64]` | | Bit | | `NQ[1-64]` | -If `observe` is not set or set equal `block`, simply pulse with length `pulse` milliseconds is send to `block`. -If `observe` is set and differ from `block`, binding will wait for value change on `observe` and send then a pulse -with length `pulse` milliseconds to block. -Please note, update rate for change detection depends on bridge refresh value. -For both use cases: if `block` was `0` then `1` is send and vice versa. +If `observe` is not set or is set equal to `block`, a pulse with length `pulse` milliseconds is sent to `block`. +If `observe` is set and differs from `block`, the binding will wait for a value change on `observe` and then send a pulse with length `pulse` milliseconds to `block`. +Please note the update rate for change detection depends on the bridge refresh value. +For both use cases: if `block` was `0`, then `1` is sent and vice versa. ## Channels ### Bridge -Each device have currently three channels `diagnostic`, `rtc` and `weekday`: +Each device currently has three channels: `diagnostic`, `rtc`, and `weekday`: ```java channel="plclogo:device::diagnostic" @@ -176,10 +174,10 @@ channel="plclogo:device::datetime" channel="plclogo:device::weekday" ``` -Channel `diagnostic` contains the last diagnostic message reported by LOGO! as `String` item. -Channel `weekday` contains current day of the week and shall be linked to `String` item too. +Channel `diagnostic` contains the last diagnostic message reported by LOGO!. +Channel `weekday` contains the current day of the week. Channel `datetime` reports current date/time used in LOGO! as `DateTime` item. -These values are also provided by LOGO!. +The value is provided by LOGO!. Channel `rtc` supports `DateTime` items only and returns the LOGO! real time clock value. Since Siemens `0BA7` (LOGO! 7) devices will not transfer any useful data for this channel, local time of openHAB host will be used. @@ -188,13 +186,13 @@ Since the smallest resolution provided by LOGO! is one second, `rtc` channel wil ### Digital -Format pattern for digital channels is +The format pattern for digital channels is ```java channel="plclogo:digital:::" ``` -Dependent on configured LOGO! PLC and thing kind, follow channels are available: +Dependent on the configured LOGO! PLC and Thing kind, the following channels are available: | Kind | `0BA7` | `0BA8` | Item | | ---- | :-------: | :--------: | --------- | @@ -206,13 +204,13 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available: ### Analog -Format pattern for analog channels is +The format pattern for analog channels is ```java channel="plclogo:analog:::" ``` -Dependent on configured LOGO! PLC and thing kind, follow channels are available: +Dependent on the configured LOGO! PLC and Thing kind, the following channels are available: | Kind | `0BA7` | `0BA8` | Item | | ----- | :--------: | :---------: | -------- | @@ -224,13 +222,13 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available: ### Memory -Format pattern for memory channels for bit values is +The format pattern for memory channels for bit values is ```java channel="plclogo:memory:::" ``` -Dependent on configured LOGO! PLC and thing kind, follow channels are available: +Dependent on the configured LOGO! PLC and Thing kind, the following channels are available: | Kind | `0BA7` | `0BA8` | Item | | ----------------- | :-----: | :-----: | -------- | @@ -241,13 +239,13 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available: ### DateTime -Format pattern depends for date/time channels is +The format pattern for date/time channels is ```java channel="plclogo:datetime:::" ``` -Dependent on configured LOGO! PLC and thing kind, follow channels are available: +Dependent on the configured LOGO! PLC and Thing kind, the following channels are available: | Kind | `0BA7` | `0BA8` | Item | | ----------- | :-----: | :-----: | ---------- | @@ -255,9 +253,9 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available: | `VW[0-849]` | `time` | `time` | `DateTime` | | `VW[0-849]` | `value` | `value` | `Number` | -Channel `date` is available, if thing is configured as `"date"`. -Is thing configured as `"time"`, then channel `time` is provided. -Raw block data is provided via `value` channel, independed from thing configuration: +Channel `date` is available if the Thing is configured as `"date"`. +If the Thing is configured as `"time"`, then channel `time` is provided. +Raw block data is provided via the `value` channel, independent of the Thing configuration: ```java channel="plclogo:datetime:::value" @@ -265,19 +263,19 @@ channel="plclogo:datetime:::value" ### Pulse -Format pattern depends for pulse channels is +The format pattern for pulse channels is ```java channel="plclogo:pulse:::state" ``` -Additionally the state of observed block data is provided via `observed` channel +Additionally, the state of the observed block data is provided via the `observed` channel ```java channel="plclogo:pulse:::observed" ``` -Dependent on configured LOGO! PLC and thing kind, follow channels are available: +Dependent on the configured LOGO! PLC and Thing kind, the following channels are available: | Kind | `0BA7` | `0BA8` | Item | | ----------------- | :--------: | :--------: | --------- | @@ -376,16 +374,16 @@ DateTime Logo2_RTC { channel="plclogo:device:Logo2:rtc"} Be sure to have only one bridge for each LOGO! device. -### Log shows reader was created but no communication with LOGO! possible +### Log shows reader was created but no communication with LOGO! is possible Check TSAP values: localTSAP and remoteTSAP should not be the same. You have to choose different addresses. **openHAB is starting without errors but no reader was created for the LOGO!** -If all configuration parameters were checked and fine, it maybe possible that the network interface of the LOGO! is crashed. -To recover stop openHAB, cold boot your LOGO! (power off/on) and reflash the program with LOGO! SoftComfort. -Then restart openHAB and check logging for a created reader. +If all configuration parameters have been checked and are correct, it may be possible that the network interface of the LOGO! has crashed. +To recover, stop openHAB, cold boot your LOGO! (power off/on), and reflash the program with LOGO! SoftComfort. +Then restart openHAB and check the logging for a created reader. ### RTC value differs from the value shown in LOGO! (0BA7) diff --git a/bundles/org.openhab.binding.plex/README.md b/bundles/org.openhab.binding.plex/README.md index c34e5d00aa796..f635b992a98bf 100644 --- a/bundles/org.openhab.binding.plex/README.md +++ b/bundles/org.openhab.binding.plex/README.md @@ -4,33 +4,35 @@ This binding can read information from multiple PLEX players connected to a PLEX It can be used for multiple scenarios: -- Drive light changes based on player status. For instances turn off the lights when movie starts playing and turn them back on when movie is stopped/paused -- Create a page that displays currently played media of one or more player connected to the server. -- Send social media messages when player plays new media -- Inform what the end time of the currently played media is +- Drive light changes based on player status. For instance, turn off the lights when a movie starts playing and turn them back on when the movie is stopped or paused. +- Create a page that displays the media currently playing on one or more players connected to the server. +- Send a social media message when a player starts playing new media. +- Show the end time of the currently playing media. -The binding can also control `PLAY/PAUSE/NEXT/PREVIOUS` the players which can be used for: +The binding can also control players (`PLAY/PAUSE/NEXT/PREVIOUS`), which you can use to: -- Start playing some music when someone enters a room -- Pause the movie when motion is detected +- Start playing music when someone enters a room. +- Pause the movie when motion is detected. ## Supported Things -This binding supports 2 things. +This binding supports two Things. -- `server`: The PLEX server will act as a bridge to read out the information from all connected players -- `player`: A PLEX client of any type / os connected to the server. +- `server`: The PLEX server acts as a Bridge to read information from all connected players. +- `player`: A PLEX client of any type/OS connected to the server. ## Discovery -For the auto discovery to work correctly you first need to configure and add the `PLEX Server` Thing. -Next step is to _PLAY_ something on the desired player. Only when media is played on the player it will show up in the auto discovery! +For auto-discovery to work correctly, first configure and add the `PLEX Server` Thing. +Next, play something on the desired player. +The player appears in auto-discovery only while media is playing. ## Thing Configuration -The PLEX Server needs to be configured first. The hostname of the PLEX server is mandatory and the either the PLEX token (recommended) or the username/password of the PLEX server (not recommended). +Configure the PLEX Server first. +The host name of the PLEX server is mandatory, and either the PLEX token (recommended) or the username/password of the PLEX server (not recommended). -Then find the PLEX token please follow the instructions from the PLEX support forum: +To find the PLEX token, follow the instructions from the PLEX support site: 1. [Sign in to your Plex account](https://support.plex.tv/articles/200933616-plex-account/) in Plex Web App 1. Browse to a library item and [view the XML](https://support.plex.tv/articles/201998867-investigate-media-information-and-formats/) for it @@ -38,27 +40,29 @@ Then find the PLEX token please follow the instructions from the PLEX support fo ### `PLEX Server` Thing Configuration -| Name | Type | Description | Default | Required | Advanced | -|-------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|----------|---------| -| host | text | PLEX host name or IP address | N/A | yes | no | -| portNumber | integer | Port Number (leave blank if PLEX installed on default port) | 32400 | no | no | -| refreshRate | integer | Interval in seconds at which PLEX server status is polled | 5 | no | no | -| username | text | If you're using Plex Home you need to supply the username and password of your Plex account here. If you don't want to enter your credentials you can also directly set your account token below instead. | N/A | no | no | -| password | text | If you're using Plex Home you need to supply the username and password of your Plex account here. If you don't want to enter your credentials you can also directly set your account token below instead. | N/A | no | no | -| token | text | The authentication token when username/password is left blank | N/A | no | no | +| Name | Type | Description | Default | Required | Advanced | +|-------------|---------|-------------------------------------------------------------------------------------------------|---------|----------|----------| +| host | text | PLEX host name or IP address | N/A | yes | no | +| portNumber | integer | Port Number (leave blank if PLEX installed on default port) | 32400 | no | no | +| refreshRate | integer | Interval in seconds at which PLEX server status is polled | 5 | no | no | +| username | text | When using Plex Home, the username of your Plex account is required if the token is left blank. | N/A | no | no | +| password | text | When using Plex Home, the password of your Plex account is required if the token is left blank. | N/A | no | no | +| token | text | The authentication token when username/password is left blank | N/A | no | no | ### `PLEX Player` Thing Configuration -You can add multiple PLEX players. You can choose to find the player by autodiscovery or add them manually. +You can add multiple PLEX players. +You can either find the player via auto-discovery or add it manually. #### Autodiscovery -Turn on the player you want to add and _play_ some media on it. Navigate to `/settings/things/add/plex` and start the auto discover. -The player will be found and you can add it. +Turn on the player you want to add and play some media on it. +Navigate to `/settings/things/add/plex` and start auto-discovery. +When found, add the player. -#### Manual adding a player Thing +#### Add a player manually -When you want to add them manually go to the following url [https://plex.tv/devices.xml?X-Plex-Token=YOURTOKENVALUEHERE] . +To add a player manually, go to . It will display the following XML file. @@ -87,11 +91,11 @@ It will display the following XML file. ``` -Find the `Device` block of the player you want to add and fill in the `clientIdentifier` as `playerID` +Find the `Device` block of the player you want to add and set the `clientIdentifier` as the `playerID`. -| Name | Type | Description | Default | Required | Advanced | -|-------------|---------|--------------------------------------------------------------------------------------------|---------|----------|---------| -| playerID | text | The unique identifier of the player. `clientIdentifier` from [https://plex.tv/devices.xml] | N/A | yes | no | +| Name | Type | Description | Default | Required | Advanced | +|----------|------|--------------------------------------------------------------------------------------------|---------|----------|----------| +| playerID | text | The unique identifier of the player. `clientIdentifier` from [https://plex.tv/devices.xml] | N/A | yes | no | ## Channels @@ -118,26 +122,24 @@ The PLEX Player supports the following channels: | ratingKey | String | RO | The unique key in the Plex library identifying the media that is playing | | parentRatingKey | String | RO | The unique key in the Plex library identifying the parent (TV show season or album) of the media that is playing | | grandparentRatingKey | String | RO | The unique key in the Plex library identifying the grandparent (TV show) of the media that is playing | -| user | String | RO | The user title | +| user | String | RO | The user name | ## Full Example `.things` file: ```java -Bridge plex:server:plexServer "Bridge Plex : Plex" [host="IP.Address.Or.Hostname", token="SadhjsajjA3AG", refreshRate=5] -{ - Thing plex:player:MyViewerName01 "My Viewer Name 01" [playerID="ClientIdentifierFromDevices.XML1"] - Thing plex:player:MyViewerName02 "My Viewer Name 02" [playerID="ClientIdentifierFromDevices.XML2"] +Bridge plex:server:plexrServer "Bridge Plex: Plex" [ host="IP.Address.Or.Hostname", token="SadhjsajjA3AG", refreshRate=5 ] { + Thing plex:player:MyViewerName01 "My Viewer Name 01" [ playerID="ClientIdentifierFromDevices.XML1" ] + Thing plex:player:MyViewerName02 "My Viewer Name 02" [ playerID="ClientIdentifierFromDevices.XML2" ] } ``` `.items` file ```java -String BridgePlexCurrent "Current players" {channel="plex:server:plexServer:currentPlayers"} -String BridgePlexCurrentActive "Current players active" {channel="plex:server:plexServer:currentPlayersActive"} - +Number BridgePlexCurrent "Current players" { channel="plex:server:plexServer:currentPlayers" } +Number BridgePlexCurrentActive "Current players active" { channel="plex:server:plexServer:currentPlayersActive" } Switch PlexTVPower01 "Power" {channel="plex:player:MyViewerName01:power"} String PlexTVStatus01 "Status [%s]" {channel="plex:player:MyViewerName01:state"} Player PlexTVControl01 "Player" {channel="plex:player:MyViewerName01:player"} diff --git a/bundles/org.openhab.binding.plugwise/README.md b/bundles/org.openhab.binding.plugwise/README.md index 6d9bc055ddf9b..5663241a056d5 100644 --- a/bundles/org.openhab.binding.plugwise/README.md +++ b/bundles/org.openhab.binding.plugwise/README.md @@ -23,7 +23,7 @@ The binding supports the following Plugwise devices: ## Discovery -Automatic device discovery runs every 3 minutes which can be sped up by starting a manual discovery. +Automatic device discovery runs every three minutes, which can be sped up by starting a manual discovery. All Circle, Circle+ and Stealth devices are discovered immediately after adding the Stick. Battery powered devices like the Scan, Sense and Switch are discovered when they are awake. The Scan and Sense can be woken by pressing the "Wake" button. The Switch is detected when it is awake after switching the left or right button. @@ -37,7 +37,7 @@ The binding uses full MAC addresses i.e. also the fine print on the sticker. If you don't want to get off your chair, climb up ladders and unplug devices all across your home, causing all sorts of havoc; you can also find them in Source. Open `Settings > Appliances`. Then double click on an appliance. Click on the little Circle icon to the right of the short Address to see the details of a module and the full MAC address. -Similarly the MAC addresses of the Scan, Sense and Switch can also be obtained from the Appliances screen by double clicking them in the `Sensors and other modules` list. +Similarly, the MAC addresses of the Scan, Sense, and Switch can also be obtained from the Appliances screen by double-clicking them in the `Sensors and other modules` list. ### Stick 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..fddcc0972ad94 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,186 +1,131 @@ # 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. - - -# bridge type configuration parameters -bridge-type.config.plugwise.stick.serialPort.label = Serial port -bridge-type.config.plugwise.stick.serialPort.description = The serial port of the Stick, e.g. "/dev/ttyUSB0" for Linux or "COM1" for Windows - -bridge-type.config.plugwise.stick.messageWaitTime.label = Message wait time -bridge-type.config.plugwise.stick.messageWaitTime.description = The time to wait between messages sent on the Zigbee network (in ms) +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. # thing types + thing-type.plugwise.circle.label = Plugwise Circle thing-type.plugwise.circle.description = A power outlet plug that provides energy measurement and switching control of appliances - thing-type.plugwise.circleplus.label = Plugwise Circle+ thing-type.plugwise.circleplus.description = A special Circle that coordinates the Zigbee network and acts as network gateway - thing-type.plugwise.scan.label = Plugwise Scan thing-type.plugwise.scan.description = A wireless motion (PIR) and light sensor - thing-type.plugwise.sense.label = Plugwise Sense thing-type.plugwise.sense.description = A wireless temperature and humidity sensor - thing-type.plugwise.stealth.label = Plugwise Stealth thing-type.plugwise.stealth.description = A Circle with a more compact form factor that can be built-in - thing-type.plugwise.stick.label = Plugwise Stick thing-type.plugwise.stick.description = A Zigbee USB controller used for communicating with the Circle+ - thing-type.plugwise.switch.label = Plugwise Switch thing-type.plugwise.switch.description = A wireless wall switch +# thing types config -# Relay thing type configuration parameters -thing-type.config.plugwise.relay.macAddress.label = MAC address +bridge-type.config.plugwise.stick.messageWaitTime.label = Message Wait Time +bridge-type.config.plugwise.stick.messageWaitTime.description = The time to wait between messages sent on the Zigbee network (in ms) +bridge-type.config.plugwise.stick.serialPort.label = Serial Port +bridge-type.config.plugwise.stick.serialPort.description = The serial port of the Stick, e.g. "/dev/ttyUSB0" for Linux or "COM1" for Windows +thing-type.config.plugwise.relay.macAddress.label = MAC Address thing-type.config.plugwise.relay.macAddress.description = The full device MAC address e.g. "000D6F0000A1B2C3" - -thing-type.config.plugwise.relay.powerStateChanging.label = Power state changing +thing-type.config.plugwise.relay.measurementInterval.label = Measurement Interval +thing-type.config.plugwise.relay.measurementInterval.description = The energy measurement interval (in minutes) +thing-type.config.plugwise.relay.powerStateChanging.label = Power State Changing thing-type.config.plugwise.relay.powerStateChanging.description = Controls if the power state can be changed with commands or is always on/off thing-type.config.plugwise.relay.powerStateChanging.option.commandSwitching = Command switching thing-type.config.plugwise.relay.powerStateChanging.option.alwaysOn = Always on thing-type.config.plugwise.relay.powerStateChanging.option.alwaysOff = Always off - -thing-type.config.plugwise.relay.suppliesPower.label = Supplies power +thing-type.config.plugwise.relay.suppliesPower.label = Supplies Power thing-type.config.plugwise.relay.suppliesPower.description = Enables power production measurements - -thing-type.config.plugwise.relay.measurementInterval.label = Measurement interval -thing-type.config.plugwise.relay.measurementInterval.description = The energy measurement interval (in minutes) - -thing-type.config.plugwise.relay.temporarilyNotInNetwork.label = Temporarily not in network -thing-type.config.plugwise.relay.temporarilyNotInNetwork.description = Stops searching for an unplugged device on the Zigbee network - -thing-type.config.plugwise.relay.updateConfiguration.label = Update configuration +thing-type.config.plugwise.relay.temporarilyNotInNetwork.label = Temporarily Not in Network +thing-type.config.plugwise.relay.temporarilyNotInNetwork.description = Stops searching for an unplugged device on the Zigbee network traffic +thing-type.config.plugwise.relay.updateConfiguration.label = Update Configuration thing-type.config.plugwise.relay.updateConfiguration.description = Stores if the device configuration is up to date (automatically enabled/disabled) - - -# Scan thing type configuration parameters -thing-type.config.plugwise.scan.macAddress.label = MAC address +thing-type.config.plugwise.scan.daylightOverride.label = Daylight Override +thing-type.config.plugwise.scan.daylightOverride.description = Disables movement detection when there is daylight +thing-type.config.plugwise.scan.macAddress.label = MAC Address thing-type.config.plugwise.scan.macAddress.description = The full device MAC address e.g. "000D6F0000A1B2C3" - +thing-type.config.plugwise.scan.recalibrate.label = Recalibrate +thing-type.config.plugwise.scan.recalibrate.description = Calculates a new daylight override boundary when the Scan wakes up thing-type.config.plugwise.scan.sensitivity.label = Sensitivity thing-type.config.plugwise.scan.sensitivity.description = The sensitivity of movement detection thing-type.config.plugwise.scan.sensitivity.option.off = Off thing-type.config.plugwise.scan.sensitivity.option.medium = Medium thing-type.config.plugwise.scan.sensitivity.option.high = High - -thing-type.config.plugwise.scan.switchOffDelay.label = Switch off delay +thing-type.config.plugwise.scan.switchOffDelay.label = Switch Off Delay thing-type.config.plugwise.scan.switchOffDelay.description = The delay the Scan waits before sending an off command when motion is no longer detected (in minutes) - -thing-type.config.plugwise.scan.daylightOverride.label = Daylight override -thing-type.config.plugwise.scan.daylightOverride.description = Disables movement detection when there is daylight - -thing-type.config.plugwise.scan.wakeupInterval.label = Wake-up interval -thing-type.config.plugwise.scan.wakeupInterval.description = The interval in which the Scan wakes up at least once (in minutes) - -thing-type.config.plugwise.scan.wakeupDuration.label = Wake-up duration -thing-type.config.plugwise.scan.wakeupDuration.description = The number of seconds the Scan stays awake after it woke up - -thing-type.config.plugwise.scan.recalibrate.label = Recalibrate -thing-type.config.plugwise.scan.recalibrate.description = Calculates a new daylight override boundary when the Scan wakes up - -thing-type.config.plugwise.scan.updateConfiguration.label = Update configuration +thing-type.config.plugwise.scan.updateConfiguration.label = Update Configuration thing-type.config.plugwise.scan.updateConfiguration.description = Stores if the Scan configuration is up to date (automatically enabled/disabled) - - -# Sense thing type configuration parameters -thing-type.config.plugwise.sense.macAddress.label = MAC address -thing-type.config.plugwise.sense.macAddress.description = The full device MAC address e.g. "000D6F0000A1B2C3" - -thing-type.config.plugwise.sense.measurementInterval.label = Measurement interval -thing-type.config.plugwise.sense.measurementInterval.description = The interval in which the Sense measures the temperature and humidity (in minutes) - -thing-type.config.plugwise.sense.boundaryType.label = Boundary type +thing-type.config.plugwise.scan.wakeupDuration.label = Wake-up Duration +thing-type.config.plugwise.scan.wakeupDuration.description = The number of seconds the Scan stays awake after it woke up +thing-type.config.plugwise.scan.wakeupInterval.label = Wake-up Interval +thing-type.config.plugwise.scan.wakeupInterval.description = The interval in which the Scan wakes up at least once (in minutes) +thing-type.config.plugwise.sense.boundaryAction.label = Boundary Action +thing-type.config.plugwise.sense.boundaryAction.description = The boundary switch action when the value is below/above the boundary minimum/maximum +thing-type.config.plugwise.sense.boundaryAction.option.offBelowOnAbove = Off below / On above +thing-type.config.plugwise.sense.boundaryAction.option.onBelowOffAbove = On below / Off above +thing-type.config.plugwise.sense.boundaryType.label = Boundary Type thing-type.config.plugwise.sense.boundaryType.description = The boundary type that is used for switching thing-type.config.plugwise.sense.boundaryType.option.none = None thing-type.config.plugwise.sense.boundaryType.option.temperature = Temperature thing-type.config.plugwise.sense.boundaryType.option.humidity = Humidity - -thing-type.config.plugwise.sense.boundaryAction.label = Boundary action -thing-type.config.plugwise.sense.boundaryAction.description = The boundary switch action when the value is below/above the boundary minimum/maximum -thing-type.config.plugwise.sense.boundaryAction.option.offBelowOnAbove = Off below / On above -thing-type.config.plugwise.sense.boundaryAction.option.onBelowOffAbove = On below / Off above - -thing-type.config.plugwise.sense.temperatureBoundaryMin.label = Temperature minimum -thing-type.config.plugwise.sense.temperatureBoundaryMin.description = The minimum boundary for the temperature boundary action - -thing-type.config.plugwise.sense.temperatureBoundaryMax.label = Temperature maximum -thing-type.config.plugwise.sense.temperatureBoundaryMax.description = The maximum boundary for the temperature boundary action - -thing-type.config.plugwise.sense.humidityBoundaryMin.label = Humidity minimum -thing-type.config.plugwise.sense.humidityBoundaryMin.description = The minimum boundary for the humidity boundary action - -thing-type.config.plugwise.sense.humidityBoundaryMax.label = Humidity maximum +thing-type.config.plugwise.sense.humidityBoundaryMax.label = Humidity Maximum thing-type.config.plugwise.sense.humidityBoundaryMax.description = The maximum boundary for the humidity boundary action - -thing-type.config.plugwise.sense.wakeupInterval.label = Wake-up interval -thing-type.config.plugwise.sense.wakeupInterval.description = The interval in which the Sense wakes up at least once (in minutes) - -thing-type.config.plugwise.sense.wakeupDuration.label = Wake-up duration -thing-type.config.plugwise.sense.wakeupDuration.description = The number of seconds the Sense stays awake after it woke up - -thing-type.config.plugwise.sense.updateConfiguration.label = Update configuration +thing-type.config.plugwise.sense.humidityBoundaryMin.label = Humidity Minimum +thing-type.config.plugwise.sense.humidityBoundaryMin.description = The minimum boundary for the humidity boundary action +thing-type.config.plugwise.sense.macAddress.label = MAC Address +thing-type.config.plugwise.sense.macAddress.description = The full device MAC address e.g. "000D6F0000A1B2C3" +thing-type.config.plugwise.sense.measurementInterval.label = Measurement Interval +thing-type.config.plugwise.sense.measurementInterval.description = The interval in which the Sense measures the temperature and humidity (in minutes) +thing-type.config.plugwise.sense.temperatureBoundaryMax.label = Temperature Maximum +thing-type.config.plugwise.sense.temperatureBoundaryMax.description = The maximum boundary for the temperature boundary action +thing-type.config.plugwise.sense.temperatureBoundaryMin.label = Temperature Minimum +thing-type.config.plugwise.sense.temperatureBoundaryMin.description = The minimum boundary for the temperature boundary action +thing-type.config.plugwise.sense.updateConfiguration.label = Update Configuration thing-type.config.plugwise.sense.updateConfiguration.description = Stores if the Sense configuration is up to date (automatically enabled/disabled) - - -# Switch thing type configuration parameters -thing-type.config.plugwise.switch.macAddress.label = MAC address +thing-type.config.plugwise.sense.wakeupDuration.label = Wake-up Duration +thing-type.config.plugwise.sense.wakeupDuration.description = The number of seconds the Sense stays awake after it woke up +thing-type.config.plugwise.sense.wakeupInterval.label = Wake-up Interval +thing-type.config.plugwise.sense.wakeupInterval.description = The interval in which the Sense wakes up at least once (in minutes) +thing-type.config.plugwise.switch.macAddress.label = MAC Address thing-type.config.plugwise.switch.macAddress.description = The full device MAC address e.g. "000D6F0000A1B2C3" - -thing-type.config.plugwise.switch.wakeupInterval.label = Wake-up interval -thing-type.config.plugwise.switch.wakeupInterval.description = The interval in which the Switch wakes up at least once (in minutes) - -thing-type.config.plugwise.switch.wakeupDuration.label = Wake-up duration -thing-type.config.plugwise.switch.wakeupDuration.description = The number of seconds the Switch stays awake after it woke up - -thing-type.config.plugwise.switch.updateConfiguration.label = Update configuration +thing-type.config.plugwise.switch.updateConfiguration.label = Update Configuration thing-type.config.plugwise.switch.updateConfiguration.description = Stores if the Switch configuration is up to date (automatically enabled/disabled) - +thing-type.config.plugwise.switch.wakeupDuration.label = Wake-up Duration +thing-type.config.plugwise.switch.wakeupDuration.description = The number of seconds the Switch stays awake after it woke up +thing-type.config.plugwise.switch.wakeupInterval.label = Wake-up Interval +thing-type.config.plugwise.switch.wakeupInterval.description = The interval in which the Switch wakes up at least once (in minutes) # channel types + channel-type.plugwise.clock.label = Clock channel-type.plugwise.clock.description = Time as indicated by the internal clock of the device - -channel-type.plugwise.humidity.label = Humidity -channel-type.plugwise.humidity.description = Current relative humidity - channel-type.plugwise.energy.label = Energy channel-type.plugwise.energy.description = Energy consumption/production during the last measurement interval - -channel-type.plugwise.energystamp.label = Energy timestamp +channel-type.plugwise.energystamp.label = Energy Timestamp channel-type.plugwise.energystamp.description = Timestamp of the start of the last energy measurement interval - -channel-type.plugwise.lastseen.label = Last seen +channel-type.plugwise.humidity.label = Humidity +channel-type.plugwise.humidity.description = Current relative humidity +channel-type.plugwise.lastseen.label = Last Seen channel-type.plugwise.lastseen.description = Timestamp of the last received message - -channel-type.plugwise.leftbuttonstate.label = Left button state +channel-type.plugwise.leftbuttonstate.label = Left Button State channel-type.plugwise.leftbuttonstate.description = Current state of the left button - channel-type.plugwise.power.label = Power channel-type.plugwise.power.description = Current power consumption/production - -channel-type.plugwise.realtimeclock.label = Real-time clock +channel-type.plugwise.realtimeclock.label = Real-time Clock channel-type.plugwise.realtimeclock.description = Time as indicated by the real-time internal clock of the Circle+ - -channel-type.plugwise.rightbuttonstate.label = Right button state +channel-type.plugwise.rightbuttonstate.label = Right Button State channel-type.plugwise.rightbuttonstate.description = Current state of the right button - channel-type.plugwise.state.label = State channel-type.plugwise.state.description = Switches the power state on/off - channel-type.plugwise.temperature.label = Temperature channel-type.plugwise.temperature.description = Current temperature - channel-type.plugwise.triggered.label = Triggered channel-type.plugwise.triggered.description = Most recent switch action initiated by the device +# channel types config -# channel type configuration parameters -channel-type.config.plugwise.slowerupdates.updateInterval.label = Update interval -channel-type.config.plugwise.slowerupdates.updateInterval.description = Specifies at what rate the state is updated (in seconds) - -channel-type.config.plugwise.fasterupdates.updateInterval.label = Update interval +channel-type.config.plugwise.fasterupdates.updateInterval.label = Update Interval channel-type.config.plugwise.fasterupdates.updateInterval.description = Specifies at what rate the state is updated (in seconds) +channel-type.config.plugwise.slowerupdates.updateInterval.label = Update Interval +channel-type.config.plugwise.slowerupdates.updateInterval.description = Specifies at what rate the state is updated (in seconds) diff --git a/bundles/org.openhab.binding.plugwiseha/README.md b/bundles/org.openhab.binding.plugwiseha/README.md index 6748bdda4be91..36fc55ed8da38 100644 --- a/bundles/org.openhab.binding.plugwiseha/README.md +++ b/bundles/org.openhab.binding.plugwiseha/README.md @@ -1,16 +1,16 @@ # 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, etc. -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. +Users can manage and control this system via a web app or a mobile app developed by Plugwise. +The app allows users to define heating zones (for example, rooms) and add radiator valves to those zones to manage and control their heating independently of other zones. -Using the Plugwise Home Automation binding you can incorporate the management of these devices and heating zones into openHAB. -The binding uses the same RESTfull API that both the mobile phone app and the web app use. +Using the Plugwise Home Automation binding, you can integrate the management of these devices and heating zones into openHAB. +The binding uses the same RESTful API that both the mobile app and the web app use. -The binding requires users to have a working Plugwise Home Automation setup consisting of at least 1 gateway device (the 'Adam') and preferably 1 radiator valve as a bare minimum. -The 'Adam' (from hereon called the gateway) needs to be accessible from the openHAB instance via a TCP/IP connection. +The binding requires a working Plugwise Home Automation setup consisting of at least one gateway device (the “Adam”) and preferably at least one radiator valve. +The “Adam” (hereafter called the gateway) must be accessible from the openHAB instance via a TCP/IP connection. ## Supported Things @@ -26,9 +26,9 @@ The 'Adam' (from hereon called the gateway) needs to be accessible from the open ## Discovery -After setting up the Plugwise Home Automation bridge you can start a manual scan to find all devices registered on the gateway. -You can also manually add things by entering the corresponding device id as a configuration parameter. -The device IDs can be found be enabling TRACE logging in the Karaf console. +After setting up the Plugwise Home Automation bridge, you can start a manual scan to find all devices registered on the gateway. +You can also manually add things by entering the corresponding device ID as a configuration parameter. +The device IDs can be found by enabling TRACE logging in the Karaf console. ## Thing Configuration @@ -36,12 +36,12 @@ You must define a Plugwise Home Automation gateway (Bridge) before defining zone ### Plugwise Home Automation gateway (Bridge) -| Parameter | Description | Config | Default | -|-----------|-------------------------------------------------------------------------|----------|---------| -| host | The IP address or hostname of the Adam HA gateway | Required | 'adam' | -| username | The username for the Adam HA gateway | Optional | 'smile' | -| smileID | The 8 letter code on the sticker on the back of the Adam boiler gateway | Required | - | -| refresh | The refresh interval in seconds | Optional | 15 | +| Parameter | Description | Config | Default | +|-----------|--------------------------------------------------------------------------|----------|---------| +| host | The IP address or hostname of the Adam HA gateway | Required | 'adam' | +| username | The username for the Adam HA gateway | Optional | 'smile' | +| smileID | The 8-letter code on the sticker on the back of the Adam boiler gateway | Required | - | +| refresh | The refresh interval, in seconds | Optional | 15 | ### Plugwise Home Automation zone (`zone`) @@ -51,17 +51,17 @@ You must define a Plugwise Home Automation gateway (Bridge) before defining zone ### Plugwise Home Automation appliance (`appliance_valve`) -| Parameter | Description | Config | Default | -|----------------------|--------------------------------------------------------------------------------------------------------------------|----------|---------| -| id | The unique ID of the radiator valve appliance | Required | - | -| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (_Only applicable for battery operated devices_) | Optional | 15 | +| Parameter | Description | Config | Default | +|----------------------|---------------------------------------------------------------------------------------------------------------------|----------|---------| +| id | The unique ID of the radiator valve appliance | Required | - | +| lowBatteryPercentage | Battery charge remaining at which to trigger a low-battery warning. (_Only applicable to battery-operated devices_) | Optional | 15 | ### Plugwise Home Automation appliance (`appliance_thermostat`) -| Parameter | Description | Config | Default | -|----------------------|--------------------------------------------------------------------------------------------------------------------|----------|---------| -| id | The unique ID of the room thermostat appliance | Required | - | -| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (_Only applicable for battery operated devices_) | Optional | 15 | +| Parameter | Description | Config | Default | +|----------------------|---------------------------------------------------------------------------------------------------------------------|----------|---------| +| id | The unique ID of the room thermostat appliance | Required | - | +| lowBatteryPercentage | Battery charge remaining at which to trigger a low-battery warning. (_Only applicable to battery-operated devices_) | Optional | 15 | ### Plugwise Home Automation appliance (`appliance_pump`) @@ -77,40 +77,40 @@ You must define a Plugwise Home Automation gateway (Bridge) before defining zone ## Channels -| channel | type | Read-only? | description | -|-----------------------|----------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| temperature | Number:Temperature | Yes | The temperature of an appliance that supports the thermostat functionality | -| setpointTemperature | Number:Temperature | No | The setpoint temperature (read/write) of an appliance that supports the thermostat functionality | -| power | Switch | No | Toggle an appliance ON/OFF that supports the relay functionality | -| lock | Switch | No | Toggle an appliance lock ON/OFF that supports the relay functionality.(_When the lock is ON the gateway will not automatically control the corresponding relay switch depending on thermostat mode_) | -| powerUsage | Number:Power | Yes | The current power usage in Watts of an appliance that supports this | -| batteryLevel | Number | Yes | The current battery level of an appliance that is battery operated | -| batteryLevelLow | Switch | Yes | Switches ON when the battery level of an appliance that is battery operated drops below a certain threshold | -| chState | Switch | Yes | The current central heating state of the boiler | -| dhwState | Switch | Yes | The current domestic hot water state of the boiler | -| waterPressure | Number:Pressure | Yes | The current water pressure of the boiler | -| presetScene | String | No | The current active scene for the zone | -| regulationControl | String | No | Toggle current regulation control (Active, Passive, Off) for the zone | -| coolingAllowed | Switch | No | Toggle the cooling allowed of a zone ON/OFF | -| valvePosition | Number:Dimensionless | Yes | The current position of the valve | -| preHeat | Switch | No | Toggle the pre heating of a zone ON/OFF | -| coolingState | Switch | Yes | The current cooling state of the boiler | -| intendedBoilerTemp | Number:Temperature | Yes | The intended boiler temperature | -| flameState | Switch | Yes | The flame state of the boiler | -| intendedHeatingState | Switch | Yes | The intended heating state of the boiler | -| modulationLevel | Number:Dimensionless | Yes | The current modulation level of the boiler | -| otAppFaultCode | Number | Yes | The Opentherm application fault code of the boiler | -| dhwTemperature | Number:Temperature | Yes | The current central heating state of the boiler | -| otOEMFaultCode | Number | Yes | The Opentherm OEM fault code of the boiler | -| boilerTemperature | Number:Temperature | Yes | The current temperature of the boiler | -| dhwSetpoint | Number:Temperature | Yes | The domestic hot water setpoint | -| maxBoilerTemperature | Number:Temperature | Yes | The maximum temperature of the boiler | -| dhwComfortMode | Switch | Yes | The domestic hot water confortmode | -| burnerStartsFailed | Number | Yes | Total count of failed burner starts | -| burnerStarts | Number | Yes | Total count of burner starts | -| burnerIgnitionsFailed | Number | Yes | Total count of failed burner ignitions | -| burnerOpTime | Number:Time | Yes | Total operation time | -| burnerDHWOpTime | Number:Time | Yes | Total operation time for domestic hot water | +| channel | type | Read-only? | description | +|-----------------------|----------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| temperature | Number:Temperature | Yes | The temperature of an appliance that supports the thermostat functionality | +| setpointTemperature | Number:Temperature | No | The setpoint temperature (read/write) of an appliance that supports the thermostat functionality | +| power | Switch | No | Turn an appliance on or off if it supports relay functionality | +| lock | Switch | No | Toggle an appliance lock on or off if it supports relay functionality. (_When the lock is on, the gateway will not automatically control the corresponding relay switch depending on thermostat mode_) | +| powerUsage | Number:Power | Yes | The current power usage in Watts of an appliance that supports this | +| batteryLevel | Number | Yes | The current battery level of an appliance that is battery operated | +| batteryLevelLow | Switch | Yes | Switches ON when the battery level of an appliance that is battery operated drops below a certain threshold | +| chState | Switch | Yes | The current central heating state of the boiler | +| dhwState | Switch | Yes | The current domestic hot water state of the boiler | +| waterPressure | Number:Pressure | Yes | The current water pressure of the boiler | +| presetScene | String | No | The current active scene for the zone | +| regulationControl | String | No | Toggle current regulation control (Active, Passive, Off) for the zone | +| coolingAllowed | Switch | No | Toggle the cooling allowed of a zone ON/OFF | +| valvePosition | Number:Dimensionless | Yes | The current position of the valve | +| preHeat | Switch | No | Toggle the pre heating of a zone ON/OFF | +| coolingState | Switch | Yes | The current cooling state of the boiler | +| intendedBoilerTemp | Number:Temperature | Yes | The intended boiler temperature | +| flameState | Switch | Yes | The flame state of the boiler | +| intendedHeatingState | Switch | Yes | The intended heating state of the boiler | +| modulationLevel | Number:Dimensionless | Yes | The current modulation level of the boiler | +| otAppFaultCode | Number | Yes | The Opentherm application fault code of the boiler | +| dhwTemperature | Number:Temperature | Yes | The current domestic hot water temperature of the boiler | +| otOEMFaultCode | Number | Yes | The Opentherm OEM fault code of the boiler | +| boilerTemperature | Number:Temperature | Yes | The current temperature of the boiler | +| dhwSetpoint | Number:Temperature | Yes | The domestic hot water setpoint | +| maxBoilerTemperature | Number:Temperature | Yes | The maximum temperature of the boiler | +| dhwComfortMode | Switch | Yes | The domestic hot water comfort mode | +| burnerStartsFailed | Number | Yes | Total count of failed burner starts | +| burnerStarts | Number | Yes | Total count of burner starts | +| burnerIgnitionsFailed | Number | Yes | Total count of failed burner ignitions | +| burnerOpTime | Number:Time | Yes | Total operation time | +| burnerDHWOpTime | Number:Time | Yes | Total operation time for domestic hot water | ## Full Example @@ -142,15 +142,15 @@ Number:Temperature living_room_radiator_temperature "Radiator valve temperature" Number:Temperature living_room_radiator_temperature_setpoint "Radiator valve temperature setpoint" {channel="plugwiseha:appliance_valve:home:living_room_radiator:setpointTemperature"} Number living_room_radiator_valve_position "Radiator valve position" {channel="plugwiseha:appliance_valve:home:living_room_radiator:valvePosition"} -Number:Temperature living_room_thermostat_temperature "Room thermostat temperature" {channel="plugwiseha:appliance_valve:home:living_room_thermostat:temperature"} -Number:Temperature living_room_thermostat_temperature_setpoint "Room thermostat temperature setpoint" {channel="plugwiseha:appliance_valve:home:living_room_thermostat:setpointTemperature"} -Number:Temperature living_room_thermostat_temperature_offset "Room thermostat temperature offset" {channel="plugwiseha:appliance_valve:home:living_room_thermostat:offsetTemperature"} +Number:Temperature living_room_thermostat_temperature "Room thermostat temperature" {channel="plugwiseha:appliance_thermostat:home:living_room_thermostat:temperature"} +Number:Temperature living_room_thermostat_temperature_setpoint "Room thermostat temperature setpoint" {channel="plugwiseha:appliance_thermostat:home:living_room_thermostat:setpointTemperature"} +Number:Temperature living_room_thermostat_temperature_offset "Room thermostat temperature offset" {channel="plugwiseha:appliance_thermostat:home:living_room_thermostat:offsetTemperature"} Switch living_room_pump_power "Floor heating pump power" {channel="plugwiseha:appliance_pump:home:living_room_pump:power"} Switch living_room_pump_lock "Floor heating pump lock [MAP:(plugwiseha.map):%s]" {channel="plugwiseha:appliance_pump:home:living_room_pump:lock"} -Number:Power living_room_pump_power_usage "Floor heating pump power [%0.2fW]" {channel="plugwiseha:appliance_pump:home:living_room_pump:powerUsage"} +Number:Power living_room_pump_power_usage "Floor heating pump power [%0.2f W]" {channel="plugwiseha:appliance_pump:home:living_room_pump:powerUsage"} -Number:Pressure main_boiler_waterpressure "Waterpressure" { channel="plugwiseha:appliance_boiler:home:main_boiler:waterPressure"} +Number:Pressure main_boiler_waterpressure "Water pressure" { channel="plugwiseha:appliance_boiler:home:main_boiler:waterPressure"} Switch main_boiler_chState "Heating active" { channel="plugwiseha:appliance_boiler:home:main_boiler:chState"} Switch main_boiler_dhwState "Domestic hot water active" { channel="plugwiseha:appliance_boiler:home:main_boiler:dhwState"} @@ -159,9 +159,9 @@ Number:Temperature main_boiler_intendedBoilerTemp "Intended boiler temperature" Switch main_boiler_flameState "Flame state" { channel="plugwiseha:appliance_boiler:home:main_boiler:flameState"} Switch main_boiler_intendedHeatingState "Intended heating state" { channel="plugwiseha:appliance_boiler:home:main_boiler:intendedHeatingState"} Number main_boiler_modulationLevel "Modulation level" {channel="plugwiseha:appliance_boiler:home:living_room_radiator:modulationLevel"} -Number main_boiler_otAppFaultCode "Opentherm app. faultcode" {channel="plugwiseha:appliance_boiler:home:living_room_radiator:otAppFaultCode"} +Number main_boiler_otAppFaultCode "OpenTherm application fault code" {channel="plugwiseha:appliance_boiler:home:living_room_radiator:otAppFaultCode"} Number:Temperature main_boiler_dhwTemperature "DHW temperature" {channel="plugwiseha:appliance_boiler:home:main_boiler:dhwTemperature"} -Number main_boiler_otOEMFaultCode "Opentherm OEM faultcode" {channel="plugwiseha:appliance_boiler:home:main_boiler:otOEMFaultCode"} +Number main_boiler_otOEMFaultCode "OpenTherm OEM fault code" {channel="plugwiseha:appliance_boiler:home:main_boiler:otOEMFaultCode"} Number:Temperature main_boiler_boilerTemperature "Boiler temperature" {channel="plugwiseha:appliance_boiler:home:main_boiler:boilerTemperature"} Number:Temperature main_boiler_dhwSetpoint "DHW setpoint" {channel="plugwiseha:appliance_boiler:home:main_boiler:dhwSetpoint"} Number:Temperature main_boiler_maxBoilerTemperature "Max. boiler temperature" {channel="plugwiseha:appliance_boiler:home:main_boiler:maxBoilerTemperature"} diff --git a/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/i18n/plugwiseha.properties b/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/i18n/plugwiseha.properties index 96d763431bd56..72c3d9b4f900d 100644 --- a/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/i18n/plugwiseha.properties +++ b/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/i18n/plugwiseha.properties @@ -10,7 +10,7 @@ thing-type.plugwiseha.appliance_boiler.description = A Plugwise Home Automation thing-type.plugwiseha.appliance_pump.label = Central Heating Pump thing-type.plugwiseha.appliance_pump.description = A Plugwise Home Automation smart plug switch connected to a central heating pump thing-type.plugwiseha.appliance_pump.channel.power.label = Power -thing-type.plugwiseha.appliance_pump.channel.power.description = Switch the Plugwise Smart plug ON or OFF +thing-type.plugwiseha.appliance_pump.channel.power.description = Turn the Plugwise smart plug on or off thing-type.plugwiseha.appliance_pump.channel.powerUsage.label = Power Usage thing-type.plugwiseha.appliance_thermostat.label = Plugwise Room Thermostat thing-type.plugwiseha.appliance_thermostat.description = A Plugwise Home Automation room thermostat @@ -55,7 +55,7 @@ thing-type.config.plugwiseha.zone.id.description = Location ID for the zone # channel types channel-type.plugwiseha.boilerTemperature.label = Boiler Temperature -channel-type.plugwiseha.boilerTemperature.description = Gets the temperature of this boiler +channel-type.plugwiseha.boilerTemperature.description = The temperature of this boiler channel-type.plugwiseha.burnerDHWOpTime.label = DHW Operation Time channel-type.plugwiseha.burnerDHWOpTime.description = Total operation time for domestic hot water channel-type.plugwiseha.burnerIgnitionsFailed.label = Burner Ignitions Failed @@ -67,56 +67,56 @@ channel-type.plugwiseha.burnerStarts.description = Total count of burner starts channel-type.plugwiseha.burnerStartsFailed.label = Burner Starts Failed channel-type.plugwiseha.burnerStartsFailed.description = Total count of failed burner starts channel-type.plugwiseha.chState.label = Central Heating Active -channel-type.plugwiseha.chState.description = Is the boiler active for central heating, On or OFF +channel-type.plugwiseha.chState.description = Whether the boiler is active for central heating (on or off) channel-type.plugwiseha.coolingAllowed.label = Cooling Allowed -channel-type.plugwiseha.coolingAllowed.description = Switch the cooling allowed of a zone ON or OFF +channel-type.plugwiseha.coolingAllowed.description = Turn cooling for a zone on or off channel-type.plugwiseha.coolingState.label = Cooling State -channel-type.plugwiseha.coolingState.description = Is the boiler active for cooling, On or OFF +channel-type.plugwiseha.coolingState.description = Whether the boiler is active for cooling (on or off) channel-type.plugwiseha.dhwComfortMode.label = Domestic Hot Water Comfort Mode -channel-type.plugwiseha.dhwComfortMode.description = Is the boiler's domestic hot water mode set to comfort, On or OFF +channel-type.plugwiseha.dhwComfortMode.description = Whether the boiler's domestic hot water mode is set to comfort (on or off) channel-type.plugwiseha.dhwSetpoint.label = Domestic Hot Water Setpoint Temperature -channel-type.plugwiseha.dhwSetpoint.description = Gets the temperature of the domestic hot water setpoint +channel-type.plugwiseha.dhwSetpoint.description = The domestic hot water setpoint temperature channel-type.plugwiseha.dhwState.label = Domestic Hot Water Active -channel-type.plugwiseha.dhwState.description = Is the boiler active for domestic hot water, On or OFF +channel-type.plugwiseha.dhwState.description = Whether the boiler is active for domestic hot water (on or off) channel-type.plugwiseha.dhwTemperature.label = Domestic Hot Water Temperature -channel-type.plugwiseha.dhwTemperature.description = Gets the temperature of the domestic hot water +channel-type.plugwiseha.dhwTemperature.description = The temperature of the domestic hot water channel-type.plugwiseha.flameState.label = Flame State -channel-type.plugwiseha.flameState.description = Is the boiler's flame active, On or OFF +channel-type.plugwiseha.flameState.description = Whether the boiler's flame is active (on or off) channel-type.plugwiseha.intendedBoilerTemp.label = Intended Boiler Temperature -channel-type.plugwiseha.intendedBoilerTemp.description = Gets the intended temperature of this boiler +channel-type.plugwiseha.intendedBoilerTemp.description = The intended temperature of this boiler channel-type.plugwiseha.intendedHeatingState.label = Intended Heating State -channel-type.plugwiseha.intendedHeatingState.description = Should the boiler be active for central heating, On or OFF +channel-type.plugwiseha.intendedHeatingState.description = Whether the boiler should be active for central heating (on or off) channel-type.plugwiseha.lock.label = Lock -channel-type.plugwiseha.lock.description = Locks the switch state of the Plugwise Smart plug +channel-type.plugwiseha.lock.description = Lock the switch state of the Plugwise smart plug channel-type.plugwiseha.maxBoilerTemperature.label = Max Boiler Temperature -channel-type.plugwiseha.maxBoilerTemperature.description = Gets the maximum temperature of this boiler -channel-type.plugwiseha.modulationLevel.label = Modulelation Level -channel-type.plugwiseha.modulationLevel.description = Gets the modulation level of this boiler +channel-type.plugwiseha.maxBoilerTemperature.description = The maximum temperature of this boiler +channel-type.plugwiseha.modulationLevel.label = Modulation Level +channel-type.plugwiseha.modulationLevel.description = The modulation level of this boiler channel-type.plugwiseha.offsetTemperature.label = Thermostat Temperature Offset -channel-type.plugwiseha.offsetTemperature.description = Gets or sets the temperature offset for this thermostat -channel-type.plugwiseha.otAppFaultCode.label = Opentherm Application Faultcode -channel-type.plugwiseha.otAppFaultCode.description = Gets the Opentherm application fault code of this boiler -channel-type.plugwiseha.otOEMFaultCode.label = OEM Fault Code -channel-type.plugwiseha.otOEMFaultCode.description = Gets the OEM fault code of this boiler +channel-type.plugwiseha.offsetTemperature.description = Get or set the temperature offset for this thermostat +channel-type.plugwiseha.otAppFaultCode.label = OpenTherm Application Fault Code +channel-type.plugwiseha.otAppFaultCode.description = The OpenTherm application fault code of this boiler +channel-type.plugwiseha.otOEMFaultCode.label = OpenTherm OEM Fault Code +channel-type.plugwiseha.otOEMFaultCode.description = The OpenTherm OEM fault code of this boiler channel-type.plugwiseha.preHeat.label = Preheat -channel-type.plugwiseha.preHeat.description = Switch the preheating of a zone ON or OFF +channel-type.plugwiseha.preHeat.description = Turn preheating for a zone on or off channel-type.plugwiseha.presetScene.label = Preset Scene -channel-type.plugwiseha.presetScene.description = Gets or sets the preset scene of the zone +channel-type.plugwiseha.presetScene.description = Get or set the preset scene for the zone channel-type.plugwiseha.presetScene.state.option.home = Home -channel-type.plugwiseha.presetScene.state.option.asleep = A Sleep +channel-type.plugwiseha.presetScene.state.option.asleep = Asleep channel-type.plugwiseha.presetScene.state.option.away = Away channel-type.plugwiseha.presetScene.state.option.vacation = Vacation channel-type.plugwiseha.presetScene.state.option.no_frost = No Frost channel-type.plugwiseha.regulationControl.label = Regulation Control -channel-type.plugwiseha.regulationControl.description = Switch the regulation control of a zone to Active, Passive or Off +channel-type.plugwiseha.regulationControl.description = Set the regulation control of a zone to active, passive, or off channel-type.plugwiseha.regulationControl.state.option.active = Active channel-type.plugwiseha.regulationControl.state.option.passive = Passive channel-type.plugwiseha.regulationControl.state.option.off = Off channel-type.plugwiseha.returnWaterTemperature.label = Return Water Temperature -channel-type.plugwiseha.returnWaterTemperature.description = Gets the temperature of the return water +channel-type.plugwiseha.returnWaterTemperature.description = The temperature of the return water channel-type.plugwiseha.setpointTemperature.label = Setpoint Temperature -channel-type.plugwiseha.setpointTemperature.description = Gets or sets the set point of this zone +channel-type.plugwiseha.setpointTemperature.description = Get or set the setpoint for this zone channel-type.plugwiseha.valvePosition.label = Valve Position channel-type.plugwiseha.valvePosition.description = Gets the position of the valve (0% closed, 100% open) channel-type.plugwiseha.waterPressure.label = Water Pressure -channel-type.plugwiseha.waterPressure.description = Gets the water pressure of the boiler +channel-type.plugwiseha.waterPressure.description = The water pressure of the boiler diff --git a/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/channels.xml b/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/channels.xml index ac0fa48926152..e9c1e569c3e28 100644 --- a/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/channels.xml +++ b/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/channels.xml @@ -7,7 +7,7 @@ Number:Temperature - Gets or sets the set point of this zone + Get or set the setpoint for this zone heating Setpoint @@ -19,7 +19,7 @@ Number:Temperature - Gets or sets the temperature offset for this thermostat + Get or set the temperature offset for this thermostat heating @@ -27,7 +27,7 @@ Switch - Switch the preheating of a zone ON or OFF + Turn preheating for a zone on or off switch Switch @@ -38,7 +38,7 @@ Switch - Switch the cooling allowed of a zone ON or OFF + Turn cooling for a zone on or off switch Switch @@ -49,7 +49,7 @@ String - Switch the regulation control of a zone to Active, Passive or Off + Set the regulation control of a zone to active, passive, or off switch Control @@ -67,14 +67,14 @@ Switch - Locks the switch state of the Plugwise Smart plug + Lock the switch state of the Plugwise smart plug switch Switch - Is the boiler active for central heating, On or OFF + Whether the boiler is active for central heating (on or off) switch Status @@ -86,7 +86,7 @@ Switch - Is the boiler active for domestic hot water, On or OFF + Whether the boiler is active for domestic hot water (on or off) switch Status @@ -98,7 +98,7 @@ Switch - Is the boiler active for cooling, On or OFF + Whether the boiler is active for cooling (on or off) switch Status @@ -110,7 +110,7 @@ Switch - Is the boiler's flame active, On or OFF + Whether the boiler's flame is active (on or off) switch Status @@ -165,7 +165,7 @@ Switch - Should the boiler be active for central heating, On or OFF + Whether the boiler should be active for central heating (on or off) switch @@ -173,7 +173,7 @@ Switch - Is the boiler's domestic hot water mode set to comfort, On or OFF + Whether the boiler's domestic hot water mode is set to comfort (on or off) switch Status @@ -185,7 +185,7 @@ Number:Temperature - Gets the intended temperature of this boiler + The intended temperature of this boiler heating Setpoint @@ -197,15 +197,15 @@ Number:Dimensionless - Gets the modulation level of this boiler + The modulation level of this boiler heating Number - - Gets the Opentherm application fault code of this boiler + + The OpenTherm application fault code of this boiler heating @@ -213,7 +213,7 @@ Number:Temperature - Gets the temperature of the domestic hot water + The temperature of the domestic hot water heating Measurement @@ -224,8 +224,8 @@ Number - - Gets the OEM fault code of this boiler + + The OpenTherm OEM fault code of this boiler heating @@ -233,7 +233,7 @@ Number:Temperature - Gets the temperature of this boiler + The temperature of this boiler heating Measurement @@ -245,7 +245,7 @@ Number:Temperature - Gets the temperature of the return water + The temperature of the return water heating Measurement @@ -257,7 +257,7 @@ Number:Temperature - Gets the temperature of the domestic hot water setpoint + The domestic hot water setpoint temperature heating Setpoint @@ -269,7 +269,7 @@ Number:Temperature - Gets the maximum temperature of this boiler + The maximum temperature of this boiler heating @@ -277,7 +277,7 @@ Number:Pressure - Gets the water pressure of the boiler + The water pressure of the boiler heating Measurement @@ -289,7 +289,7 @@ String - Gets or sets the preset scene of the zone + Get or set the preset scene for the zone heating Control @@ -298,7 +298,7 @@ - + diff --git a/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/thing-types.xml index 145e77c4bba30..a043f08f03109 100644 --- a/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.plugwiseha/src/main/resources/OH-INF/thing/thing-types.xml @@ -128,7 +128,7 @@ - Switch the Plugwise Smart plug ON or OFF + Turn the Plugwise smart plug on or off diff --git a/bundles/org.openhab.binding.powermax/README.md b/bundles/org.openhab.binding.powermax/README.md index fb1c19d2c83ce..d51545d846209 100644 --- a/bundles/org.openhab.binding.powermax/README.md +++ b/bundles/org.openhab.binding.powermax/README.md @@ -1,92 +1,92 @@ # Powermax Binding Visonic produces the Powermax alarm panel series (PowerMax, PowerMax+, PowerMaxExpress, PowerMaxPro and PowerMaxComplete) and the Powermaster alarm series (PowerMaster 10 and PowerMaster 30). -This binding allows you to control the alarm panel (arm/disarm) and allows you to use the Visonic sensors (movement, door contact, ...) within openHAB. +This binding lets you control the alarm panel (arm/disarm) and use Visonic sensors (motion, door contact, etc.) within openHAB. The PowerMax provides support for a serial interface. -This serial interface is not installed by default but can be ordered from any PowerMax vendor (called the Visonic RS-232 Adaptor Kit). +This serial interface is not installed by default but can be ordered from any PowerMax vendor (called the Visonic RS-232 Adapter Kit). -In case your alarm panel is directly connected to a serial port of your openHAB server (or to an USB port through a serial to USB converter), you must setup a serial connection thing type in openHAB. +If your alarm panel is connected directly to a serial port of your openHAB server (or to a USB port through a serial-to-USB converter), you must set up a serial connection Thing type in openHAB. -But you even don't need to have your alarm panel directly connected to your openHAB server. -You can connect it for example to a Raspberry Pi and use [ser2net Linux tool](https://sourceforge.net/projects/ser2net/) to make the serial connection available on LAN (serial over IP). -In this case, you must setup an IP connection thing type in openHAB. +You don't even need to have your alarm panel connected directly to your openHAB server. +For example, you can connect it to a Raspberry Pi and use the [ser2net](https://sourceforge.net/projects/ser2net/) Linux tool to make the serial connection available on the LAN (serial over IP). +In this case, you must set up an IP connection Thing type in openHAB. -Here is an example of ser2net.conf you can use to share your serial port /dev/ttyUSB0 on IP port 4444: +Here is an example ser2net.conf you can use to share your serial port /dev/ttyUSB0 on IP port 4444: ```text 4444:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT ``` -Visonic does not provide a specification of the RS232 protocol and, thus, the binding uses the available protocol specification given at the [​domoticaforum](https://www.domoticaforum.eu/viewtopic.php?f=68&t=6581). +Visonic does not provide a specification of the RS-232 protocol; thus, the binding uses the available protocol specification given at the [domoticaforum](https://www.domoticaforum.eu/viewtopic.php?f=68&t=6581). -The binding implemntation of this protocol is largely inspired by the [Vera plugin](http://code.mios.com/trac/mios_visonic-powermax). +The binding implementation of this protocol is largely inspired by the [Vera plugin](http://code.mios.com/trac/mios_visonic-powermax). ## Supported Things -This binding supports the following thing types: +This binding supports the following Thing types: | Thing | Thing Type | Description | |--------|------------|----------------------------------------------------------------------------------| | ip | Bridge | The IP connection to the alarm system. | | serial | Bridge | The serial connection to the alarm system. | -| x10 | Thing | A X10 device. | +| x10 | Thing | An X10 device. | | zone | Thing | A zone representing a physical device such as a door, window or a motion sensor. | ## Discovery The alarm system is not discovered automatically. -First you have to create manually a bridge thing, either of type ip or serial depending on how your openHAB server is connected to the alarm system. -Then the binding will automatically discover all zones and X10 devices that are setup in your alarm system. +First, manually create a bridge Thing—either of type IP or serial—depending on how your openHAB server is connected to the alarm system. +Then the binding will automatically discover all zones and X10 devices that are set up in your alarm system. ## Binding configuration -There are no overall binding configuration settings that need to be set. -All settings are through thing configuration parameters. +There are no global binding configuration settings that need to be set. +All settings are provided through Thing configuration parameters. ## Thing Configuration ### IP connection -The ip bridge thing requires the following configuration parameters: +The IP bridge Thing requires the following configuration parameters: -| Parameter Label | Parameter ID | Description | Required | Default | -|---------------------|-------------------|---------------------------------------------------------------------|----------|---------| -| IP address | ip | The IP address / The IP address to use for connecting to the Ethernet interface of the alarm system. | true | | -| TCP port | tcpPort | The TCP port to use for connecting to the Ethernet interface of the alarm system. | true | | -| Motion reset delay | motionOffDelay | The delay in minutes to reset a motion detection. | false | 3 | -| Allow arming | allowArming | Enable or disable arming the alarm system from openHAB. | false | false | -| Allow disarming | allowDisarming | Enable or disable disarming the alarm system from openHAB. | false | false | -| PIN code | pinCode | The PIN code to use for arming/disarming the alarm system from openHAB. Not required except when Powerlink mode cannot be used. | false | | -| Force standard mode | forceStandardMode | Force the standard mode rather than trying using the Powerlink mode.| false | false | -| Panel type | panelType | Define the panel type. Only required when forcing the standard mode.| false | PowerMaxPro | -| Sync time | autoSyncTime | Automatic sync time at openHAB startup. | false | true | +| Parameter Label | Parameter ID | Description | Required | Default | +|---------------------|-------------------|---------------------------------------------------------------------------------------------------------------------------|----------|-------------| +| IP address | ip | The IP address to use for connecting to the Ethernet interface of the alarm system | true | | +| TCP port | tcpPort | The TCP port to use for connecting to the Ethernet interface of the alarm system. | true | | +| Motion reset delay | motionOffDelay | The delay, in minutes, to reset a motion detection | false | 3 | +| Allow arming | allowArming | Enable or disable arming the alarm system from openHAB. | false | false | +| Allow disarming | allowDisarming | Enable or disable disarming the alarm system from openHAB. | false | false | +| PIN code | pinCode | The PIN code to use for arming/disarming the alarm system from openHAB. Not required unless Powerlink mode cannot be used | false | | +| Force standard mode | forceStandardMode | Force standard mode rather than trying to use Powerlink mode | false | false | +| Panel type | panelType | The panel type (only required when forcing standard mode) | false | PowerMaxPro | +| Sync time | autoSyncTime | Automatically sync time at openHAB startup | false | true | ### Serial connection -The serial bridge thing requires the following configuration parameters: +The serial bridge Thing requires the following configuration parameters: -| Parameter Label | Parameter ID | Description | Required | Default | -|---------------------|-------------------|---------------------------------------------------------------------|----------|---------| -| Serial port | serialPort | The serial port to use for connecting to the serial interface of the alarm system e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux. | true | | -| Motion reset delay | motionOffDelay | The delay in minutes to reset a motion detection. | false | 3 | -| Allow arming | allowArming | Enable or disable arming the alarm system from openHAB. | false | false | -| Allow disarming | allowDisarming | Enable or disable disarming the alarm system from openHAB. | false | false | -| PIN code | pinCode | The PIN code to use for arming/disarming the alarm system from openHAB. Not required except when Powerlink mode cannot be used. | false | | -| Force standard mode | forceStandardMode | Force the standard mode rather than trying using the Powerlink mode.| false | false | -| Panel type | panelType | Define the panel type. Only required when forcing the standard mode.| false | PowerMaxPro | -| Sync time | autoSyncTime | Automatic sync time at openHAB startup. | false | true | +| Parameter Label | Parameter ID | Description | Required | Default | +|---------------------|-------------------|---------------------------------------------------------------------------------------------------------------------------------|----------|-------------| +| Serial port | serialPort | The serial port used to connect to the alarm system (e.g., COM1 for Windows; /dev/ttyS0 or /dev/ttyUSB0 for Linux) | true | | +| Motion reset delay | motionOffDelay | The delay in minutes to reset a motion detection. | false | 3 | +| Allow arming | allowArming | Enable or disable arming the alarm system from openHAB. | false | false | +| Allow disarming | allowDisarming | Enable or disable disarming the alarm system from openHAB. | false | false | +| PIN code | pinCode | The PIN code to use for arming/disarming the alarm system from openHAB. Not required except when Powerlink mode cannot be used. | false | | +| Force standard mode | forceStandardMode | Force the standard mode rather than trying using the Powerlink mode. | false | false | +| Panel type | panelType | Define the panel type. Only required when forcing the standard mode. | false | PowerMaxPro | +| Sync time | autoSyncTime | Automatic sync time at openHAB startup. | false | true | -Some notes: +Notes: - On Linux, you may get an error stating the serial port cannot be opened when the Powermax binding tries to load. -You can get around this by adding the `openhab` user to the `dialout` group like this: `usermod -a -G dialout openhab`. + You can resolve this by adding the `openhab` user to the `dialout` group, for example: `usermod -a -G dialout openhab`. - Also on Linux you may have issues with the USB if using two serial USB devices e.g. Powermax and RFXcom. See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports. ### X10 device -The x10 thing requires the following configuration parameters: +The X10 Thing requires the following configuration parameters: | Parameter Label | Parameter ID | Description | Required | |-----------------|--------------|--------------------|----------| @@ -94,7 +94,7 @@ The x10 thing requires the following configuration parameters: ### Zone -The zone thing requires the following configuration parameters: +The zone Thing requires the following configuration parameters: | Parameter Label | Parameter ID | Description | Required | |-----------------|--------------|------------------|----------| @@ -104,27 +104,27 @@ The zone thing requires the following configuration parameters: The following channels are available: -| Thing Types | Channel Type ID | Item Type | Access Mode | Description | -|-------------|------------------------------|-----------|-------------|-------------------------------------------------------| -| ip / serial | system_status | String | R | A short status summary of the system | -| ip / serial | system_armed | Switch | RW | Whether or not the system is armed | -| ip / serial | arm_mode | String | RW | System arm mode (accepted values: Disarmed, Stay, Armed, StayInstant, ArmedInstant, Night and NightInstant) | -| ip / serial | alarm_active | Switch | R | Whether or not an alarm is active | -| ip / serial | ready | Switch | R | Whether or not the system is ready for arming | -| ip / serial | with_zones_bypassed | Switch | R | Whether or not at least one zone is bypassed | -| ip / serial | trouble | Switch | R | Whether or not a trouble is detected | -| ip / serial | alert_in_memory | Switch | R | Whether or not an alert is saved in system memory | -| ip / serial | pgm_status | Switch | RW | PGM status | -| ip / serial | mode | String | R | System current mode (Standard, Powerlink or Download) | -| ip / serial | event_log_1 ... event_log_10 | String | R | Event log entry (1 is the most recent) | -| ip / serial | update_event_logs | Switch | W | Switch command to update the event logs | -| ip / serial | download_setup | Switch | W | Switch command to download the setup | -| x10 | x10_status | String | RW | X10 device status (accepted values: OFF, ON, DIM and BRIGHT) | -| zone | tripped | Contact | R | Whether or not the zone is tripped | -| zone | armed | Switch | R | Whether or not the zone is armed | -| zone | last_trip | DateTime | R | Timestamp when the zone was last tripped | -| zone | low_battery | Switch | R | Whether or not the sensor battery is low | -| zone | bypassed | Switch | RW | Whether or not the zone is bypassed | +| Thing Types | Channel Type ID | Item Type | Access Mode | Description | +|-------------|------------------------------|-----------|-------------|----------------------------------------------------------------------------------------------------------| +| ip / serial | system_status | String | R | A short status summary of the system | +| ip / serial | system_armed | Switch | RW | Whether or not the system is armed | +| ip / serial | arm_mode | String | RW | System arm mode (accepted values: Disarmed, Stay, Armed, StayInstant, ArmedInstant, Night, NightInstant) | +| ip / serial | alarm_active | Switch | R | Whether or not an alarm is active | +| ip / serial | ready | Switch | R | Whether or not the system is ready for arming | +| ip / serial | with_zones_bypassed | Switch | R | Whether or not at least one zone is bypassed | +| ip / serial | trouble | Switch | R | Whether or not a trouble is detected | +| ip / serial | alert_in_memory | Switch | R | Whether or not an alert is saved in system memory | +| ip / serial | pgm_status | Switch | RW | PGM status | +| ip / serial | mode | String | R | System current mode (Standard, Powerlink or Download) | +| ip / serial | event_log_1 ... event_log_10 | String | R | Event log entry (1 is the most recent) | +| ip / serial | update_event_logs | Switch | W | Switch command to update the event logs | +| ip / serial | download_setup | Switch | W | Switch command to download the setup | +| x10 | x10_status | String | RW | X10 device status (accepted values: OFF, ON, DIM and BRIGHT) | +| zone | tripped | Contact | R | Whether or not the zone is tripped | +| zone | armed | Switch | R | Whether or not the zone is armed | +| zone | last_trip | DateTime | R | Timestamp when the zone was last tripped | +| zone | low_battery | Switch | R | Whether or not the sensor battery is low | +| zone | bypassed | Switch | RW | Whether or not the zone is bypassed | ## Console Commands @@ -136,22 +136,22 @@ Usage: openhab:powermax info_setup - information on setup Usage: openhab:powermax download_setup - download setup ``` -The command `info_setup` displays in the console information about your current panel setup. +The command `info_setup` displays information about your current panel setup. The command `download_setup` will trigger a new download of the panel setup. -Here is an example of command you can run: `openhab:powermax powermax:serial:home info_setup`. +Example command: `openhab:powermax powermax:serial:home info_setup`. -## Notes & Limitations +## Notes and Limitations -- For Powerlink mode to work, the enrollment procedure has to be followed. -If you don't enroll the Powerlink on the PowerMax the binding will operate in Standard mode, and if enrolled in Powerlink mode. -On the newer software versions of the PowerMax the Powerlink enrollment is automatic, and the binding should only operate in 'Powerlink' mode (if enrollment is successful). -- In Powerlink mode, the binding is downloading the panel setup at startup. -When openHAB is starting, unfortunately this download is often failing on a Raspberry Pi for an unclear reason (maybe too many things running at the same time). -A retry mechanism is implemented in the binding to retry until 3 times with a delay of 1 minute between each try. -My experience is that the download finally succeeds. -In case it fails after all the retries, you still have the option to later trigger the download either by using the channel `download_setup` or the appropriate console command. -- Visonic does not provide a specification of the RS232 protocol and, thus, use this binding at your own risk. +- For Powerlink mode to work, the enrollment procedure must be followed. + If you don't enroll Powerlink on the PowerMax, the binding will operate in Standard mode; if enrolled, it will operate in Powerlink mode. + On newer software versions of the PowerMax, Powerlink enrollment is automatic, and the binding should operate only in Powerlink mode (if enrollment is successful). +- In Powerlink mode, the binding downloads the panel setup at startup. + When openHAB starts, this download may fail on a Raspberry Pi for unclear reasons (possibly because many services start simultaneously). + A retry mechanism will attempt up to three times with a delay of one minute between attempts. + In most cases the download eventually succeeds. + If it still fails, you can trigger the download later by using the `download_setup` channel or the console command. +- Visonic does not provide a specification of the RS-232 protocol; use this binding at your own risk. - The binding is not able to arm/disarm a particular partition. - The compatibility of the binding with the Powermaster alarm panel series is probably only partial. - In order to be able to bypass zones, you must first enable this feature by updating your panel configuration. Look at your installer's manual. @@ -195,8 +195,8 @@ Switch DownloadSetup "Download setup" {channel="powermax:serial:home:download_se Contact WindowKitchenTripped "Tripped [%s]" {channel="powermax:zone:home:kitchen:tripped"} Switch WindowKitchenArmed "Armed" {channel="powermax:zone:home:kitchen:armed"} -DateTime WindowKitcheneLastTrip "Last trip" {channel="powermax:zone:home:kitchen:last_trip"} -Switch WindowKitchenLowBattery "Low bettary" {channel="powermax:zone:home:kitchen:low_battery"} +DateTime WindowKitchenLastTrip "Last trip" {channel="powermax:zone:home:kitchen:last_trip"} +Switch WindowKitchenLowBattery "Low battery" {channel="powermax:zone:home:kitchen:low_battery"} Switch WindowKitchenBypassed "Bypassed" {channel="powermax:zone:home:kitchen:bypassed", autoupdate="false"} String Lamp1 "Lamp 1" {channel="powermax:x10:home:lamp1:x10_status", autoupdate="false"} diff --git a/bundles/org.openhab.binding.proteusecometer/README.md b/bundles/org.openhab.binding.proteusecometer/README.md index fc6d42e9ea6e3..be8ee062d2df2 100644 --- a/bundles/org.openhab.binding.proteusecometer/README.md +++ b/bundles/org.openhab.binding.proteusecometer/README.md @@ -3,10 +3,10 @@ This is the binding for the Proteus EcoMeter S, which is able to report the level of a cistern or tank. Note that this binding currently supports no write channels. -This means you have to configure your sensor by considering the manual of the product (using wireless display). -After doing that the binding comes into play and helps you to get your measured values into openHAB. +This means you have to configure your sensor according to the product manual (using the wireless display). +After that, the binding will help you get your measured values into openHAB. Please be patient while waiting for the first received data. -The sensor reports at an interval of approx. 1h, except when the water level changes relatively fast. +The sensor reports at an interval of approximately one hour, except when the water level changes relatively quickly. ## Supported Things @@ -15,13 +15,13 @@ The binding has been tested with this EcoMeter sensor only. ## Discovery -No auto discovery implemented yet. +Auto-discovery is currently not supported. ## Thing Configuration -Plug the wireless display into an USB port. -Note [openHAB Serial Port documentation](https://www.openhab.org/docs/administration/serial.html) for general serial port configuration. -After that you can add the device as thing and configure the usbPort your OS generated for the display. +Plug the wireless display into a USB port. +See the [openHAB Serial Port documentation](https://www.openhab.org/docs/administration/serial.html) for general serial port configuration. +After that, you can add the device as a Thing and configure the usbPort your OS generated for the display. ```text UID: proteusecometer:EcoMeterS:e90705eaa4 @@ -46,7 +46,7 @@ configuration: Thing proteusecometer:EcoMeterS:e90705eaa4 "Proteus EcoMeter S" [ usbPort="/dev/ttyUSB0" ] Number:Temperature Temperature "Measured temperature [%.1f °C]" { channel="proteusecometer:EcoMeterS:e90705eaa4:temperature" } -Number:Length SensorLevelCm "Sensor Level" { channel="proteusecometer:EcoMeterS:e90705eaa4:sensorLevel" } -Number:Volume UsableLevel "Usable Level" { channel="proteusecometer:EcoMeterS:e90705eaa4:usableLevel" } -Number:Dimensionless UsableLevelinpercent "Usable Level" { channel="proteusecometer:EcoMeterS:e90705eaa4:usableLevelInPercent" } -Number:Volume TotalCapacityinliter "Total Capacity" { channel="proteusecometer:EcoMeterS:e90705eaa4:totalCapacity" } +Number:Length SensorLevelCm "Sensor level" { channel="proteusecometer:EcoMeterS:e90705eaa4:sensorLevel" } +Number:Volume UsableLevel "Usable level" { channel="proteusecometer:EcoMeterS:e90705eaa4:usableLevel" } +Number:Dimensionless UsableLevelPercent "Usable level" { channel="proteusecometer:EcoMeterS:e90705eaa4:usableLevelInPercent" } +Number:Volume TotalCapacityLiters "Total capacity" { channel="proteusecometer:EcoMeterS:e90705eaa4:totalCapacity" } diff --git a/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/i18n/proteusecometer.properties b/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/i18n/proteusecometer.properties index f65fa1baa9b6f..037048a8842f8 100644 --- a/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/i18n/proteusecometer.properties +++ b/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/i18n/proteusecometer.properties @@ -1,24 +1,27 @@ # add-on + addon.proteusecometer.name = Proteus EcoMeter addon.proteusecometer.description = Puts your EcoMeter data into openHAB + # thing types + thing-type.proteusecometer.EcoMeterS.label = Proteus EcoMeter S thing-type.proteusecometer.EcoMeterS.description = Sensor for measuring water level of a cistern. Connected via USB +# thing types config + thing-type.config.proteusecometer.EcoMeterS.usbPort.label = USB Port -thing-type.config.proteusecometer.EcoMeterS.usbPort.description = USB port the device is connected to i.e. /dev/ttyUSB0 +thing-type.config.proteusecometer.EcoMeterS.usbPort.description = USB port the device is connected to, for example /dev/ttyUSB0 + # channel types -channel-type.proteusecometer.Temperature.label = Temperature -channel-type.proteusecometer.Temperature.description = Temperature measured by the sensor channel-type.proteusecometer.SensorLevel.label = Sensor Level channel-type.proteusecometer.SensorLevel.description = The distance between the sensor and the water surface - -channel-type.proteusecometer.UsableLevel.label = Usable Level in litre -channel-type.proteusecometer.UsableLevel.description = The usable level in litre - -channel-type.proteusecometer.UsableLevelInPercent.label = Usable Level in percent -channel-type.proteusecometer.UsableLevelInPercent.description = The usable level in percent - +channel-type.proteusecometer.Temperature.label = Temperature +channel-type.proteusecometer.Temperature.description = Temperature measured by the sensor channel-type.proteusecometer.TotalCapacity.label = Total Capacity channel-type.proteusecometer.TotalCapacity.description = The total capacity of your cistern/tank +channel-type.proteusecometer.UsableLevel.label = Usable Level +channel-type.proteusecometer.UsableLevel.description = The usable level in liters +channel-type.proteusecometer.UsableLevelInPercent.label = Usable Level in percent +channel-type.proteusecometer.UsableLevelInPercent.description = The usable level in percent diff --git a/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/thing/thing-types.xml index d7108ad5208d4..c80a530520797 100644 --- a/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.proteusecometer/src/main/resources/OH-INF/thing/thing-types.xml @@ -22,7 +22,7 @@ serial-port false - USB port the device is connected to i.e. /dev/ttyUSB0 + USB port the device is connected to, for example /dev/ttyUSB0 @@ -51,8 +51,8 @@ Number:Volume - - The usable level in litre + + The usable level in liters Measurement Water diff --git a/bundles/org.openhab.binding.prowl/README.md b/bundles/org.openhab.binding.prowl/README.md index e817b1aec2312..ae2b3c2128339 100644 --- a/bundles/org.openhab.binding.prowl/README.md +++ b/bundles/org.openhab.binding.prowl/README.md @@ -1,28 +1,28 @@ # Prowl Binding -This is the binding for the [Prowl](https://www.prowlapp.com) iOS push service. -It has been written from scratch and therefore it is not based on the original 1.x Prowl binding. -It has no other purpose than sending push messages to iOS devices. +This binding integrates the [Prowl](https://www.prowlapp.com) iOS push service. +It was written from scratch and is not based on the original 1.x Prowl binding. +Its only purpose is to send push messages to iOS devices. ## Binding Configuration -The binding does not require any manual configuration on the binding level. +The binding does not require any manual configuration at the binding level. ## Thing Configuration -This binding has only one thing called _Broker_. -If you want to use this binding, just add a broker instance and configure the API key, which you can generate on the Prowl website. -You can also modify the _application_ property, which identifies the originator of these push messages. -If you want to have specific refresh time for the remaining free push messages channel, you can edit the _refresh_ property. -Anyway beware - every check consumes one free push message you can send in an hour. +This binding has a single Thing called Broker. +To use it, add a broker instance and configure the API key (generate it on the Prowl website). +You can also set the application property, which identifies the originator of these push messages. +If you want a specific refresh interval for the remaining free push-messages channel, set the refresh property. +Be aware: every check consumes one of the free push messages you can send per hour. ## Channels -The broker thing has only one channel keeping the number of free push messages, which can be sent. +The broker Thing has one channel exposing the number of free push messages remaining this hour. | channel | type | description | |------------|--------|--------------------------------------------------------| -| remaining | Number | This channel provides the number of free push messages | +| remaining | Number | The number of free push messages remaining this hour | ## Example @@ -34,10 +34,10 @@ Thing prowl:broker:mybroker "Prowl Broker" [ apiKey="000000000000000000000000000 ### Rules -Once you have created the broker thing with a valid API key, you can use the Prowl service in your rules. -First you need to create an instance of the broker just before any call or on the top rules level. (replace the _mybroker_ with the right name of your instance). -Then you can call method _pushNotification_, which requires two parameters - _event_ and _description_. -There is also an optional third parameter _priority_ which represents the message priority (very low) -2,-1,0,1,2 (emergency). The default priority is 0. +Once you’ve created the broker Thing with a valid API key, you can use the Prowl service in rules. +First, create an instance of the broker before any call or at the top of the rules file (replace mybroker with your Thing ID). +Then call the `pushNotification` method, which requires two parameters: event and description. +An optional third parameter, priority, represents the message priority (very low) -2, -1, 0, 1, 2 (emergency). The default priority is 0. ```java val prowl = getActions("prowl","prowl:broker:mybroker") diff --git a/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/i18n/prowl.properties b/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/i18n/prowl.properties index c5180d75b59cb..27610d07449c9 100644 --- a/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/i18n/prowl.properties +++ b/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/i18n/prowl.properties @@ -6,21 +6,21 @@ addon.prowl.description = This is the binding for Prowl. # thing types thing-type.prowl.broker.label = Broker -thing-type.prowl.broker.description = A broker thing for the Prowl Binding +thing-type.prowl.broker.description = A broker Thing for the Prowl binding # thing types config thing-type.config.prowl.broker.apiKey.label = API key -thing-type.config.prowl.broker.apiKey.description = API key created in the ProwlApp -thing-type.config.prowl.broker.application.label = Application name +thing-type.config.prowl.broker.apiKey.description = API key created on the Prowl website +thing-type.config.prowl.broker.application.label = Application Name thing-type.config.prowl.broker.application.description = Application name used in every push message -thing-type.config.prowl.broker.refresh.label = Refresh -thing-type.config.prowl.broker.refresh.description = Specifies the refresh time in minutes for checking for remaining free messages +thing-type.config.prowl.broker.refresh.label = Refresh Interval +thing-type.config.prowl.broker.refresh.description = Refresh interval, in minutes, for checking remaining free messages # channel types channel-type.prowl.remaining.label = Remaining Messages -channel-type.prowl.remaining.description = Remaining free push messages for Prowl Binding +channel-type.prowl.remaining.description = Remaining free push messages for the Prowl binding # actions diff --git a/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/thing/thing-types.xml index 017950c7a0c5e..981d709adb463 100644 --- a/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.prowl/src/main/resources/OH-INF/thing/thing-types.xml @@ -7,7 +7,7 @@ - A broker thing for the Prowl Binding + A broker Thing for the Prowl binding @@ -15,17 +15,17 @@ - + Application name used in every push message openHAB - API key created in the ProwlApp + API key created on the Prowl website - - Specifies the refresh time in minutes for checking for remaining free messages + + Refresh interval, in minutes, for checking remaining free messages 30 @@ -36,7 +36,7 @@ Number - Remaining free push messages for Prowl Binding + Remaining free push messages for the Prowl binding diff --git a/bundles/org.openhab.binding.publictransportswitzerland/README.md b/bundles/org.openhab.binding.publictransportswitzerland/README.md index c9af6a2e7cc66..c4e51168d9230 100644 --- a/bundles/org.openhab.binding.publictransportswitzerland/README.md +++ b/bundles/org.openhab.binding.publictransportswitzerland/README.md @@ -1,8 +1,8 @@ # Public Transport Switzerland Binding -Connects to the "Swiss public transport API" to provide real-time public transport information. See the [Swiss Public Transport API Documentation website](https://transport.opendata.ch/). +Connects to the Swiss Public Transport API to provide real-time public transport information. See the [Swiss Public Transport API documentation](https://transport.opendata.ch/). -For example, here is a station board in HABPanel. (Download the [HABPanel Departure Board Example from GitHub](https://github.com/StefanieJaeger/HABPanel-departure-board)) +For example, here is a station board in HABPanel. Download the [HABPanel Departure Board example](https://github.com/StefanieJaeger/HABPanel-departure-board). ![Departure board in HABPanel](doc/departure_board_habpanel.png) @@ -10,20 +10,20 @@ For example, here is a station board in HABPanel. (Download the [HABPanel Depart ### Stationboard -Upcoming departures for a single station. This is what you would usually see displayed at the train station. +Upcoming departures for a single station (as displayed on a station departure board). #### Channels | channel | type | description | |----------------|--------|----------------------------------------------------------------------------------------------| | departures#n | String | A dynamic channel for each upcoming departure | -| tsv (advanced) | String | A tsv which contains the fields:
`identifier, departureTime, destination, track, delay` | +| tsv (advanced) | String | A TSV containing the fields:
`identifier, departureTime, destination, track, delay` | -#### UI based Configuration +#### UI-based Configuration `station` is the station name for which to display departures. -The name has to be one that is used by the Swiss Federal Railways. -Please consult the [SBB official website](https://sbb.ch/en). +The name must match the Swiss Federal Railways (SBB) naming. +See the [SBB official website](https://sbb.ch/en). #### Textual configuration diff --git a/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/i18n/publictransportswitzerland.properties b/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/i18n/publictransportswitzerland.properties index 68d799d9ea4d1..8bb7171fc6eee 100644 --- a/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/i18n/publictransportswitzerland.properties +++ b/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/i18n/publictransportswitzerland.properties @@ -17,4 +17,4 @@ thing-type.config.publictransportswitzerland.stationboard.station.description = channel-type.publictransportswitzerland.departure.label = Departure channel-type.publictransportswitzerland.departure.description = A single departure -channel-type.publictransportswitzerland.tsv.label = Tab Separated Time Table +channel-type.publictransportswitzerland.tsv.label = Tab-separated Timetable diff --git a/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/thing/stationboard.xml b/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/thing/stationboard.xml index 664f1da0f0d61..3c1b85a1c433d 100644 --- a/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/thing/stationboard.xml +++ b/bundles/org.openhab.binding.publictransportswitzerland/src/main/resources/OH-INF/thing/stationboard.xml @@ -21,7 +21,7 @@ String - + diff --git a/bundles/org.openhab.binding.pulseaudio/README.md b/bundles/org.openhab.binding.pulseaudio/README.md index 4be9a5769f46f..9f904035960eb 100644 --- a/bundles/org.openhab.binding.pulseaudio/README.md +++ b/bundles/org.openhab.binding.pulseaudio/README.md @@ -1,12 +1,13 @@ -# Pulseaudio Binding +# PulseAudio Binding -This binding integrates pulseaudio devices. +This binding integrates PulseAudio devices. ## Supported Things -The Pulseaudio bridge is required as a "bridge" for accessing any other Pulseaudio devices. +The PulseAudio Bridge is required as a bridge for accessing any other PulseAudio devices. -You need a running pulseaudio server with module **module-cli-protocol-tcp** loaded and accessible by the server which runs your openHAB instance. The following pulseaudio devices are supported: +You need a running PulseAudio server with the **module-cli-protocol-tcp** module loaded and accessible by the server that runs your openHAB instance. +The following PulseAudio devices are supported: - Sink - Source @@ -16,18 +17,20 @@ You need a running pulseaudio server with module **module-cli-protocol-tcp** loa ## Discovery -The Pulseaudio bridge is discovered through mDNS in the local network. +The PulseAudio Bridge is discovered through mDNS on the local network. ## Binding Configuration (optional) -The Pulseaudio binding can be customized to handle different devices. The Sink and Source support is activated by default and you need no further action to use it. If you want to use another type of device, or disable the Sink/Source type, you have to switch the corresponding binding property. +The PulseAudio binding can be customized to handle different devices. +Sink and Source support is enabled by default and requires no further action. +To enable another device type, or disable Sink/Source, change the corresponding binding property. -- **sink:** Allow the binding to parse sink devices from the pulseaudio server -- **source:** Allow the binding to parse source devices from the pulseaudio server -- **sinkInput:** Allow the binding to parse sink-input devices from the pulseaudio server -- **sourceOutput:** Allow the binding to parse source-output devices from the pulseaudio server +- **sink:** Allow the binding to parse sink devices from the PulseAudio server +- **source:** Allow the binding to parse source devices from the PulseAudio server +- **sinkInput:** Allow the binding to parse sink-input devices from the PulseAudio server +- **sourceOutput:** Allow the binding to parse source-output devices from the PulseAudio server -You can use the GUI on the bindings page (click on the pulseaudio binding then "Expand for details"), or create a `/services/pulseaudio.cfg` file and use the above options like this: +You can use the UI on the Add-ons page (click the PulseAudio binding, then "Expand for details"), or create a `/services/pulseaudio.cfg` file and use the options like this: ```ini binding.pulseaudio:sink=true @@ -38,17 +41,18 @@ binding.pulseaudio:sourceOutput=false ## Thing Configuration -The Pulseaudio bridge requires the host (ip address or a hostname) and a port (default: 4712) as a configuration value in order for the binding to know where to access it. -A Pulseaudio device requires at least an identifier. +The PulseAudio Bridge requires the host (IP address or host name) and a port (default: 4712) so the binding knows how to reach it. +A PulseAudio device requires at least an identifier. For sinks and sources, you can use the name or the description. For sink inputs and source outputs, you can use the name or the application name. -To know without hesitation the correct value to use, you should use the command line utility `pactl`. For example, to find the name of a sink: +To determine the correct value to use, you can use the command-line utility `pactl`. For example, to find the name of a sink: ```bash -`pactl -s list sinks | grep "name:"` +pactl -s list sinks | grep "name:" ``` -If you need to narrow the identification of a device (in case name or description are not consistent and sufficient), you can use the `additionalFilters` parameter (optional/advanced parameter), in the form of one or several (separator '###') regular expression(s), each one matching a property value of the pulseaudio device. You can use every properties listed with `pactl`. +If you need to narrow the identification of a device (if name or description are not consistent or sufficient), you can use the `additionalFilters` parameter (optional/advanced), in the form of one or several (separator `###`) regular expressions, each matching a property value of the PulseAudio device. +You can use every property listed with `pactl`. ## Channels @@ -56,7 +60,7 @@ All devices support some of the following channels: | Channel Type ID | Item Type | Description | |-----------------|-----------|-------------------------------------------------------------------------| -| volume | Dimmer | Volume of an audio device in percent | +| volume | Dimmer | Volume of an audio device as a percentage | | mute | Switch | Mutes the device | | state | String | Current state of the device (suspended, idle, running, corked, drained) | | slaves | String | Slave sinks of a combined sink | @@ -64,57 +68,57 @@ All devices support some of the following channels: ## Audio sink -Sink things can register themselves as audio sink in openHAB. MP3 and WAV files are supported. -Use the appropriate parameter in the sink thing to activate this possibility (activateSimpleProtocolSink). -This requires the module **module-simple-protocol-tcp** to be present on the server which runs your openHAB instance. The binding will try to command (if not discovered first) the load of this module on the pulseaudio server. +Sink Things can register themselves as an audio sink in openHAB. MP3 and WAV files are supported. +Use the appropriate parameter in the sink Thing to enable this (activateSimpleProtocolSink). +This requires the **module-simple-protocol-tcp** module to be present on the server that runs your openHAB instance. The binding will try to load this module on the PulseAudio server if needed. ### Thing Configuration -| Config Name | Item Type | Description | +| Config Name | Type | Description | |-----------------------------|-------------|---------------------------------------------------------------------------------------------------| | name | text | The name of one specific device. You can also use the description | | activateSimpleProtocolSink | boolean | Activation of a corresponding sink in openHAB | -| additionalFilters | text | Additional filters to select the proper device on the pulseaudio server, in case of ambiguity | +| additionalFilters | text | Additional filters to select the proper device on the PulseAudio server, in case of ambiguity | | simpleProtocolIdleModules | integer | Number of Simple Protocol TCP Socket modules to keep loaded in the server | -| simpleProtocolMinPort | integer | Min port used by simple protocol module instances created by the binding on the pulseaudio host | -| simpleProtocolMaxPort | integer | Max port used by simple protocol module instances created by the binding on the pulseaudio host | -| simpleProtocolSOTimeout | integer | Socket SO timeout when connecting to pulseaudio server though module-simple-protocol-tcp | +| simpleProtocolMinPort | integer | Min port used by simple protocol module instances created by the binding on the PulseAudio host | +| simpleProtocolMaxPort | integer | Max port used by simple protocol module instances created by the binding on the PulseAudio host | +| simpleProtocolSOTimeout | integer | Socket SO timeout when connecting to the PulseAudio server through module-simple-protocol-tcp | ## Audio source -Source things can register themselves as audio source in openHAB. -WAV input format, rate and channels can be configured on the thing configuration. (defaults to pcm_signed,16000,1) -Use the appropriate parameter in the source thing to activate this possibility (activateSimpleProtocolSource). -This requires the module **module-simple-protocol-tcp** to be present on the target pulseaudio server. The binding will load this module on the pulseaudio server. +Source Things can register themselves as an audio source in openHAB. +WAV input format, rate, and channels can be configured on the Thing (defaults to pcm_signed, 16000, 1). +Use the appropriate parameter in the source Thing to enable this (activateSimpleProtocolSource). +This requires the **module-simple-protocol-tcp** module to be present on the target PulseAudio server. +The binding will try to load this module on the PulseAudio server if needed. ### Thing Configuration -| Config ID | Item Type | Description | +| Config ID | Type | Description | |------------------------------|-------------|---------------------------------------------------------------------------------------------------| | name | text | The name of one specific device. You can also use the description | | activateSimpleProtocolSource | boolean | Activation of a corresponding sink in openHAB | -| additionalFilters | text | Additional filters to select the proper device on the pulseaudio server, in case of ambiguity | +| additionalFilters | text | Additional filters to select the proper device on the PulseAudio server, in case of ambiguity | | simpleProtocolIdleModules | integer | Number of Simple Protocol TCP Socket modules to keep loaded in the server | -| simpleProtocolMinPort | integer | Min port used by simple protocol module instances created by the binding on the pulseaudio host | -| simpleProtocolMaxPort | integer | Max port used by simple protocol module instances created by the binding on the pulseaudio host | -| simpleProtocolSOTimeout | integer | Socket SO timeout when connecting to pulseaudio server though module-simple-protocol-tcp | -| simpleProtocolSourceFormat | text | The audio format to be used by module-simple-protocol-tcp on the pulseaudio server | -| simpleProtocolSourceRate | integer | The audio sample rate to be used by module-simple-protocol-tcp on the pulseaudio server | -| simpleProtocolSourceChannels | integer | The audio channel number to be used by module-simple-protocol-tcp on the pulseaudio server | +| simpleProtocolMinPort | integer | Min port used by simple protocol module instances created by the binding on the PulseAudio host | +| simpleProtocolMaxPort | integer | Max port used by simple protocol module instances created by the binding on the PulseAudio host | +| simpleProtocolSOTimeout | integer | Socket SO timeout when connecting to the PulseAudio server through module-simple-protocol-tcp | +| simpleProtocolSourceFormat | text | The audio format to be used by module-simple-protocol-tcp on the PulseAudio server | +| simpleProtocolSourceRate | integer | The audio sample rate to be used by module-simple-protocol-tcp on the PulseAudio server | +| simpleProtocolSourceChannels | integer | The audio channel number to be used by module-simple-protocol-tcp on the PulseAudio server | ## Full Example ### pulseaudio.things ```java -Bridge pulseaudio:bridge: "" @ "" [ host="", port=4712 ] { - Things: - Thing sink multiroom "Snapcast" @ "Room" [name="alsa_card.pci-0000_00_1f.3", activateSimpleProtocolSink=true, additionalFilters="analog-stereo###internal"] - Thing source microphone "microphone" @ "Room" [name="alsa_input.pci-0000_00_14.2.analog-stereo", activateSimpleProtocolSource=true] - Thing sink-input openhabTTS "OH-Voice" @ "Room" [name="alsa_output.pci-0000_00_1f.3.hdmi-stereo-extra1"] - Thing source-output remotePulseSink "Other Room Speaker" @ "Other Room" [name="alsa_input.pci-0000_00_14.2.analog-stereo"] - Thing combined-sink hdmiAndAnalog "Zone 1+2" @ "Room" [name="combined"] - } +Bridge pulseaudio:bridge: "" @ "" [ host="", port=4712 ] { + Thing sink multiroom "Snapcast" @ "Room" [ name="alsa_card.pci-0000_00_1f.3", activateSimpleProtocolSink=true, additionalFilters="analog-stereo###internal" ] + Thing source microphone "Microphone" @ "Room" [ name="alsa_input.pci-0000_00_14.2.analog-stereo", activateSimpleProtocolSource=true ] + Thing sink-input openhabTTS "OH-Voice" @ "Room" [ name="alsa_output.pci-0000_00_1f.3.hdmi-stereo-extra1" ] + Thing source-output remotePulseSink "Other Room Speaker" @ "Other Room" [ name="alsa_input.pci-0000_00_14.2.analog-stereo" ] + Thing combined-sink hdmiAndAnalog "Zone 1+2" @ "Room" [ name="combined" ] +} ```