Commit Graph

74 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
36168c1101 v1.6.2 2026-05-16 23:59:35 +02:00
Adrian Jagielak
ce36669587 v1.6.1 2025-10-16 20:50:41 +02:00
Adrian Jagielak
45182a6416 v1.6.0 2025-10-16 20:16:11 +02:00
Adrian Jagielak
9f2feea8c1 Add setting to always treat all devices as up 2025-10-16 20:15:31 +02:00
Adrian Jagielak
a38e441c9b v1.5.0 2025-10-16 02:07:11 +02:00
Adrian Jagielak
afbfd1d1c7 Revert "Add ability to specify a custom MQTT broker"
This reverts commit b937f90340.
2025-10-16 02:06:06 +02:00
Adrian Jagielak
729c6c839f v1.4.0 2025-10-13 19:03:53 +02:00
Adrian Jagielak
b937f90340 Add ability to specify a custom MQTT broker 2025-10-13 19:03:52 +02:00
Adrian Jagielak
4a3eb07464 v1.3.1 2025-09-28 15:49:27 +02:00
Adrian Jagielak
16a4fb3181 v1.3.0 2025-09-28 14:59:18 +02:00
Adrian Jagielak
6ca05e95b9 v1.2.1 - update version in config.yaml 2025-09-28 12:25:43 +02:00
Adrian Jagielak
653df93807 v1.2.0 2025-09-26 20:00:52 +02:00
Adrian Jagielak
f216f4b719 v1.1.2 2025-09-25 00:41:48 +02:00
Adrian Jagielak
383980d5f8 v1.1.1 2025-09-25 00:41:47 +02:00
Adrian Jagielak
a05e96bae0 v1.1.0 2025-09-25 00:41:47 +02:00
Adrian Jagielak
351274f56e Allow empty Thingsplex credentials (#3) 2025-09-25 00:41:47 +02:00
Andreas
a8e5b00275 Improve GUI security by hiding passwords by default (#5)
Replaced 'str?' with 'password?' for fh_password and tp_password
2025-09-25 00:41:47 +02:00
Adrian Jagielak
0bb82f6d95 Add logging the initial devices response 2025-09-16 12:44:38 +02:00
Adrian Jagielak
a41c599686 Update README.md 2025-07-29 00:48:24 +02:00
Adrian Jagielak
e17a4eaec7 v1.0.0 2025-07-29 00:40:32 +02:00
Adrian Jagielak
9e2aa6999a Add Installation Guide 2025-07-29 00:38:10 +02:00
Adrian Jagielak
986c85c0bf Lint fixes 2025-07-28 23:31:14 +02:00
Adrian Jagielak
c56b9c6fbe Allow unpairing devices using any adapter 2025-07-28 22:38:00 +02:00
Adrian Jagielak
361eaaf1bc Add icon 2025-07-28 17:34:41 +02:00
Adrian Jagielak
b034197a93 Add support for pairing new devices 2025-07-28 14:18:42 +02:00
Adrian Jagielak
15c65850bf Add logo 2025-07-28 13:48:11 +02:00
Adrian Jagielak
aa9cb0f12a Add setting for enabling debug log 2025-07-27 01:50:10 +02:00
Adrian Jagielak
e079b47760 Improve MQTT components interfaces 2025-07-26 20:26:23 +02:00
Adrian Jagielak
5d8ce20bff Add support for 'alarm_*' services 2025-07-26 02:38:22 +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
bceccba572 Update docs 2025-07-25 01:07:19 +02:00
Adrian Jagielak
8dfd40a5d7 Set battery entity categories to 'diagnostic' to hide them from the main view 2025-07-24 20:57:05 +02:00
Adrian Jagielak
7fb4a35a41 v0.1.0 - Initial stable release 2025-07-24 20:54:06 +02:00
Adrian Jagielak
ce5cb110a2 Remove redundant abbreviation mappings 2025-07-24 18:32:16 +02:00
Adrian Jagielak
3cfb31d666 Fix demoMode reference 2025-07-24 16:51:19 +02:00
Adrian Jagielak
cf6914ed49 Override 'optimistic' for entities in demo mode 2025-07-24 16:50:04 +02:00
Adrian Jagielak
d9eca294e3 Handle more state update events (evt.<name>.raport) 2025-07-24 16:48:33 +02:00
Adrian Jagielak
3c56a30d01 Format the codebase using prettier 2025-07-24 16:34:58 +02:00
Adrian Jagielak
7b4309a596 Add automatic abbreviation of all MQTT discovery message keys 2025-07-24 16:29:51 +02:00
Adrian Jagielak
6770d1c0c1 Use full device field names in MQTT discovery messages 2025-07-24 16:13:39 +02:00
Adrian Jagielak
09b98321a1 Remove unnecessary MQTT components interface fields 2025-07-24 16:08:17 +02:00
Adrian Jagielak
1a7ed95c6b Create MQTT components interfaces and documentation 2025-07-24 15:54:47 +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
eaaa823492 v0.0.26 2025-07-24 02:38:27 +02:00
Adrian Jagielak
34c8bd6624 Add support for 'color_ctrl' service 2025-07-24 01:59:56 +02:00
Adrian Jagielak
de14075234 Do not periodically poll in demo mode 2025-07-24 00:36:35 +02:00