Home Assistant (https://www.home-assistant.io/) component for controlling Lightwave (https://lightwaverf.com) devices with use of a Lightwave Link Plus hub.
Controls both generation 1 ("Connect Series") and generation 2 ("Smart Series") devices. Does not work with gen1 hub.
Note: Entities are created differently from the original version of this integration - Lightwave2, in that regard this version is a breaking change
There are two ways to set up:
This component is not yet available directly through the Home Assistant Community Store HACS (https://hacs.netlify.com/), a pull request is pending merge as of 5 February 2024 to have the integration included with HACS by default.
However using HACS it can be installed via "Custom repositories" using the repository url (https://github.com/LightwaveSmartHome/homeassistant-lightwave-smart), setting Category "Integration" - see:
If you use this method, your component will always update to the latest version. But you'll need to set up HACS first.
Copy all files and folders from custom_components/lightwave_smart to a <ha_config_dir>/custom_components/lightwave_smart
directory. (i.e. you should have <ha_config_dir>/custom_components/lightwave_smart/__init__.py
, <ha_config_dir>/custom_components/lightwave_smart/switch.py
, <ha_config_dir>/custom_components/lightwave_smart/translations/en.json
etc)
The latest version is at https://github.com/LightwaveSmartHome/homeassistant-lightwave-smart/releases/latest
If you use this method then you'll need to keep an eye on this repository to check for updates.
In Home Assistant:
- Enter configuration menu
- Select "Integrations"
- Click the "+" in the bottom right
- Choose "Lightwave Smart"
- Enter username and password
- This should automatically find all your devices (note initially only the hub may show, if you navigate back to the overview all your devices should appear there within a few seconds)
Once configured this should then automatically add all switches, lights, thermostats, TRVs, blinds/covers, sensors, wirefrees and energy monitors that are configured in your Lightwave app. If you add a new device you will need to restart Home Assistant, or remove and re-add the integration.
Various sensor entities (including power consumption) and controls for the button lock and status LED are exposed within the corresponding entities.
All other attributes reported by the Lightwave devices are exposed with the names lwrf_*
. These are all read-only.
For gen2 devices, the brightness can be set without turning the light on using lightwave_smart.set_brightness
.
Switches generate events when pressed independently of any other default or mapped behaviour.
For example pressing the down button twice on a dimmer or wirefree will generate the event "Down.Short.2" Whereas pressing a button once on a socket (eg L42) will generate a "Short.1" event as there is no up/down element to these buttons.
Example of how this can be used in an Entity automation:
A gang of an L42 named "Lounge Xmas", will appear as an entity called "Lounge Xmas Smart Switch", which is then used with the condition that the Event type is "Short.2" (the action can be anything)
Legacy - kept for backward compatibility
devices generate lightwave_smart.click
events when the buttons are pressed. The "code" returned is the type of click:
Code | Hex | Meaning |
---|---|---|
257 | 101 | Up button single press |
258 | 102 | Up button double press |
259 | 103 | Up button triple press |
260 | 104 | Up button quad press |
261+ | (and so on - I believe up to 20x click is supported) | |
512 | 200 | Up button press and hold |
768 | 300 | Up button release after long press |
4353 | 1101 | Down button single press |
4354 | 1102 | Down button double press |
4355 | 1103 | Down button triple press |
4356 | 1104 | Down button quad press |
4357+ | (and so on) | |
4608 | 1200 | Down button press and hold |
4864 | 1300 | Down button release after long press |
For sockets the codes are the "up button" versions.
lightwave_smart.reconnect
: Force a reconnect to the Lightwave servers (only for non-public API, has no effect on public API)
lightwave_smart.whdelete
: Delete a webhook registration (use this if you get "Received message for unregistered webhook" log messages)
lightwave_smart.update_states
: Force a read of all states of devices
Credit to Bryan Blunt for the original version https://github.com/bigbadblunt/homeassistant-lightwave2
Original credit to Warren Ashcroft for code used as a base https://github.com/washcroft/LightwaveRF-LinkPlus