Commit Graph

41 Commits

Author SHA1 Message Date
Jagi ᯅ
93a036c4f7 Add Futurehome house mode support (Modeswitch) + scene event entities (#33)
* Add Futurehome house mode support (Modeswitch) + scene event entities

The Futurehome Modeswitch (Modusbryter) is a house-mode switch: its buttons
change the hub's mode (Home/Away/Sleep/Vacation), which is a hub-level Vinculum
concept broadcast via `evt.pd7.notify` (component "mode") — not a device
`scene_ctrl` event. That is why tapping it produced nothing in the device
message stream and the mapped scene sensor was stuck on `unknown`.

The add-on had no house-mode support at all. This adds it:

- Expose the current house mode as a `Mode` select on the Smarthub device.
  It reflects the current mode, updates in real time via `evt.pd7.notify`
  (with a 30s house-poll fallback), and can change the mode from Home Assistant
  via `cmd.pd7.request {cmd:"set", component:"mode", id:<mode>}` (matching the
  reference primefimp `ChangeMode`).
- Always publish the Smarthub hub device so the Mode select is available even
  without Thingsplex credentials; inclusion/exclusion tooling stays gated.
- Discover available modes from the Vinculum `mode` component, falling back to
  home/away/sleep/vacation.

Also improve genuine scene controllers: `scene_ctrl` now additionally exposes a
Home Assistant `event` entity so momentary button presses can drive automations
(the previous `Scene` sensor latched and could not react to repeated presses).
The sensor is kept for backwards compatibility (renamed "Scene (last value)").

Includes demo-mode support, README/CHANGELOG updates, and a version bump to
1.7.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FuQAyPde4K57P2XMCKbFek

* Fix real-time house-mode updates: hub-mode notify uses component "hub"

A house-mode-change evt.pd7.notify is broadcast on the hub component
(component "hub", id "mode"), not component "mode". The previous guard
`notify.component !== 'mode'` discarded every real mode-change notification, so
the Mode select only updated via the 30s poll fallback instead of in real time.

Gate on component "hub" (and, defensively, "mode") and extract the new mode
from either param.mode.current (primefimp Hub/HubMode) or param.current
(edge-iqcontrols/tpflow references), publishing only when a mode string is
found.
2026-07-01 23:36:36 +02:00
Adrian Jagielak
fdc65a0bd5 Use light entity for out_lvl_switch if the device type is "light" 2025-09-28 14:57:37 +02:00
Adrian Jagielak
a05e96bae0 v1.1.0 2025-09-25 00:41:47 +02:00
Adrian Jagielak
a41c599686 Update README.md 2025-07-29 00:48:24 +02:00
Adrian Jagielak
69c2d7de4b Update README.md 2025-07-29 00:46:35 +02:00
Adrian Jagielak
9e2aa6999a Add Installation Guide 2025-07-29 00:38:10 +02:00
Adrian Jagielak
57d7773a27 Update README.md 2025-07-28 17:34:23 +02:00
Adrian Jagielak
4d599a5e1a Update README.md 2025-07-28 17:32:28 +02:00
Adrian Jagielak
850fc7fc57 Add support for unpairing devices 2025-07-28 16:12:12 +02:00
Adrian Jagielak
b034197a93 Add support for pairing new devices 2025-07-28 14:18:42 +02:00
Adrian Jagielak
44addcd589 Update README.md 2025-07-27 02:51:47 +02:00
Adrian Jagielak
2a7f27a81f Update README.md 2025-07-27 01:38:18 +02:00
Adrian Jagielak
ef4bd2b342 Hide the fallback 'basic' Z-Wave service unless it’s the only one 2025-07-27 01:31:02 +02:00
Adrian Jagielak
b882cbab91 Add support for 'parameters' service 2025-07-27 01:14:54 +02:00
Adrian Jagielak
9aac6c489f Add support for 'dev_sys' service 2025-07-27 00:31:18 +02:00
Adrian Jagielak
cfe51c6e71 Add support for 'complex_alarm_system' service 2025-07-27 00:14:09 +02:00
Adrian Jagielak
ac435719a5 Add support for 'doorman' service 2025-07-27 00:02:49 +02:00
Adrian Jagielak
f01494caa8 Add support for 'schedule_entry' service 2025-07-26 23:53:49 +02:00
Adrian Jagielak
5264f84fbf Add support for 'user_code' service 2025-07-26 23:39:39 +02:00
Adrian Jagielak
77096d6732 Add support for 'door_lock' service 2025-07-26 23:37:48 +02:00
Adrian Jagielak
3939b37d88 Add support for 'sound_switch' service 2025-07-26 23:06:00 +02:00
Adrian Jagielak
a41b75da83 Add support for 'meter_*' services 2025-07-26 22:48:06 +02:00
Adrian Jagielak
a39f2d5928 Refactor sensors 2025-07-26 21:28:23 +02:00
Adrian Jagielak
b9a37a3775 Update README.md 2025-07-26 20:55:19 +02:00
Adrian Jagielak
5d8ce20bff Add support for 'alarm_*' services 2025-07-26 02:38:22 +02:00
Adrian Jagielak
dc4e676d38 Add support for 'siren_ctrl' service 2025-07-25 21:10:57 +02:00
Adrian Jagielak
3c82daf6e9 Update the list of all services 2025-07-25 16:33:13 +02:00
Adrian Jagielak
1807b5157b Add support for 'media_player' service 2025-07-25 15:40:28 +02:00
Adrian Jagielak
ece156db35 Add support for 'chargepoint' service 2025-07-25 13:32:50 +02:00
Adrian Jagielak
bf59106953 Update README.md 2025-07-25 02:13:42 +02:00
Adrian Jagielak
bceccba572 Update docs 2025-07-25 01:07:19 +02:00
Adrian Jagielak
ae10c2fb5f Add support for 'water_heater' service 2025-07-25 01:03:19 +02:00
Adrian Jagielak
58e4ea228c Add support for 'barrier_ctrl' service 2025-07-24 23:14:34 +02:00
Adrian Jagielak
dcab7a7112 Add support for 'indicator_ctrl' service 2025-07-24 22:50:34 +02:00
Adrian Jagielak
7fb4a35a41 v0.1.0 - Initial stable release 2025-07-24 20:54:06 +02:00
Adrian Jagielak
d5cf42899e Update README.md 2025-07-24 02:53:11 +02:00
Adrian Jagielak
f6275aad93 Update README.md 2025-07-24 02:51:26 +02:00
Adrian Jagielak
f5a218ffa5 Update README.md 2025-07-24 02:46:20 +02:00
Adrian Jagielak
0818afaa9a Update docs 2025-07-23 21:20:05 +02:00
Adrian Jagielak
ff38146ac4 Finish most of the basic features, add few services 2025-07-23 12:55:49 +02:00
Jagi ᯅ
876cfb61e1 Add repository 2025-07-21 15:44:14 +02:00