Commit Graph
100 Commits
Author SHA1 Message Date
Cody CutrerandGitHub fda5a9ce1a [mqtt.homeassistant] Fix python packages path on Windows (#19249)
So explicitly add the *nix-style path to the syspath, so that
even on Windows the installed packages can be found.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-08-27 09:19:48 +02:00
Cody CutrerandGitHub 07b11edbbd [tuya] remove dependency on jose4j (#19171)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-08-15 23:04:24 +02:00
Cody CutrerandGitHub 61b4a934ec [mqtt.homeassistant] send GraalPy logging to standard openHAB logging (#18971)
* [mqtt.homeassistant] send GraalPy logging to standard openHAB logging

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-07-16 22:14:12 +02:00
Cody CutrerandGitHub 20748c3d9b [mqtt.homeassistant] add none as an implicit preset for Climate (#18959)
See https://github.com/home-assistant/core/blob/dev/homeassistant/components/mqtt/climate.py#L607.

none is not allowed in the configuration, but is always added as an allowed value

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-07-14 22:38:47 +02:00
Cody CutrerandGitHub 4ee9f781ee [mqtt.homeassistant] correct GPS Accuracy channel type (#18957)
ComponentChannel.Builder automatically adds -advanced to the
type if is an advanced child, so bring the definitions in the XML
inline with that for gps-accuracy.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-07-14 22:36:24 +02:00
Cody CutrerandGitHub 295379769c [mqtt.homeassistant] Import Home Assistant Python validations for config parsing (#18623)
* [mqtt.homeassistant] Import Home Assistant Python validations for config parsing

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-07-12 09:44:07 +02:00
Cody CutrerandGitHub c6c14d91c6 [mqtt.homeassistant] Use GraalPy and import actual Home Assistant templating code (#18857)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-07-08 17:40:57 +02:00
a752eaadea [jsscripting][pythonscripting] Use fully OSGI-ified Graal dependencies (#18795)
* use fully OSGI-ified Graal dependencies
* add js-scriptengine dep
* [jsscripting] Set OSGi DynamicImport-Package header to allow host class loading from JS
* [jsscripting] Remove not-needed feature dependencies, use POM property for version
* [jsscripting] Remove not-needed dependencies from POM, noEmbedDependencies.profile not needed anymore
* [pythonscripting] Use POM property for feature dependency versions
* [pythonscripting] Remove/Change scope of dependencies in POM, noEmbedDependencies.profile not needed anymore
* Upgrade to GraalVM 24.2.1

Signed-off-by: Cody Cutrer <cody@cutrer.us>
Co-authored-by: Florian Hotze <dev@florianhotze.com>
2025-06-19 22:43:19 +02:00
Cody CutrerandGitHub f7713a54f4 [mqtt.homeassistant] Revert "Use GraalPy and import actual Home Assistant templating code (#18601)" (#18788)
This reverts commit 5a2179106e.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-06-11 08:59:32 +02:00
Cody CutrerandGitHub 5a2179106e [mqtt.homeassistant] Use GraalPy and import actual Home Assistant templating code (#18601)
* [mqtt.homeassistant] Use GraalPy and import actual Home Assistant transformation code

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-05-30 18:22:25 +02:00
Cody CutrerandGitHub 97ea270399 [mqtt.homeassistant] Use a thing action for updates, instead of a config action (#18524)
* [mqtt.homeassistant] Use a thing action for updates, instead of a config action

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-05-17 14:10:54 +02:00
Cody CutrerandGitHub 46009bbe7f [mqtt.homeassistant] Clear internal data when stopping (#18584)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-04-21 19:55:41 +02:00
Cody CutrerandGitHub e0956267fd [jrubyscripting] Implement AutoCloseable on JRubyEngineWrapper (#18560)
This now possible since JRuby 10 implements it.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-04-16 11:29:01 +02:00
Cody CutrerandGitHub 98b659d531 [mqtt.homeassistant] fix Fan Only i18n key (#18467)
* [mqtt.homeassistant] fix Fan Only i18n key

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-03-30 10:25:04 +02:00
Cody CutrerandGitHub 53641587b9 [jrubyscripting] Add "dummy" openHAB gem to environment (#18397)
This allows the helper library to have a dependency on the
openHAB version, allowing us to drop support for older
openHAB versions without doing a major version bump (and thus
possibly requiring the user to make changes to their config
to get a new major version).

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-03-26 23:01:06 +01:00
Cody CutrerandGitHub 1608b202ab [mqtt.homeassistant] I18n well known commands and states (#18443)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-03-25 21:39:07 +01:00
Cody CutrerandGitHub 8d9c65c8c3 [mqtt.homeassistant] Use default strings for all commands and states (#18383)
* [mqtt.homeassistant] Use default strings for all commands 

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-03-24 18:53:59 +01:00
4abd965ca4 [tuya] Initial contribution (#17937)
* [tuya] This is a port of the SmartHome/J binding by @J-N-K

Signed-off-by: Cody Cutrer <cody@cutrer.us>
Co-authored-by: Jan N. Klug <github@klug.nrw>
Co-authored-by: jsetton <jeremy.setton@gmail.com>
Co-authored-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-23 11:27:33 +01:00
Cody CutrerandGitHub 321976844e [jrubyscripting] Disallow exec (#18394)
If a script (or a library it calls) accidentally calls Process.exec

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-03-14 20:07:15 +01:00
Cody CutrerandGitHub 80d64ccd06 [homekit] Sort optional characteristics before adding them to the service (#18329)
So that they'll always be added in a consistent order. Otherwise we might
accidentally change the order (and thus the IID) of a characteristic, but
not actually detect that it's different and signal Home to reload accessory
structures.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-02-26 21:33:36 +01:00
d7abc08cfd [amazonechocontrol] Fix push activity handling (#18297)
Port of https://github.com/smarthomej/addons/pull/607

Signed-off-by: Cody Cutrer <cody@cutrer.us>
Co-authored-by: Jan N. Klug <github@klug.nrw>
2025-02-19 20:25:57 +01:00
f2e4492c31 [amazonechocontrol] Import SmartHomeJ fork (#17935)
Both forks have diverged a reasonable amount. 

Signed-off-by: Cody Cutrer <cody@cutrer.us>
Co-authored-by: Jan N. Klug <github@klug.nrw>
Co-authored-by: Tom Blum <trinitus01@googlemail.com>
2025-02-19 10:40:24 +01:00
Cody CutrerandGitHub 1856aa9b3c [mqtt.homeassistant] Use a single channel for all scenes on a device (#18262)
It accepts either object ID, or scene name (assuming the latter doesn't
conflict with the former). 

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-02-18 13:30:51 +01:00
Cody CutrerandGitHub 01cb892fc3 [mqtt.homeassistant] Only subscribe to topics for linked channels (#18239)
* [mqtt.homeassistant] Only subscribe to topics for linked channels

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-02-13 09:19:32 +01:00
Cody CutrerandGitHub 0b13f65580 [homekit] fix unit conversions on step values for temperatures (#18233)
getConfigurationAsQuantity was using toUnitRelative appropriately,
but the final conversion to Celsius was not, resulting in a 1 °F
step being interpreted as a -17.5 °C step!

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-02-09 09:59:51 +01:00
Cody CutrerandGitHub 22c7ca99ad [mqtt.homeassistant] Re-fix null component name (#18021)
Re-fixes #15427, regressed from #17933

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2025-01-02 17:00:35 +01:00
Cody CutrerandGitHub 36802db90e [mqtt.homeassistant] Remove newStyleChannels temporary back-compat (#17908)
This includes removing deprecated channel IDs controlled by the same flag.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-31 21:08:28 +01:00
Cody CutrerandGitHub dcb6d6e2c2 [mqtt.generic] create the proper item type for channels with units (#17929)
* [mqtt.generic] create the proper item type for channels with units

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-29 19:18:36 +01:00
Cody CutrerandGitHub fc9e564a2c [mqtt.homeassistant] Fix components with an empty name (#17933)
As opposed to null name. In either case, it's not usable,
and we need to use our fallbacks.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-20 22:02:28 +01:00
Cody CutrerandGitHub f45f29f920 [mqtt.homeassistant] Implement regex_findall and regex_findall_index filters (#17895)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-18 20:33:12 +01:00
Cody CutrerandGitHub 7fc3d3b685 [mqtt.homeassistant] Document new channels from #17659 (#17880)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-14 00:12:29 +01:00
Cody CutrerandGitHub c6f2fca499 [mqtt.homeassistant] fix unbounded growth of config for device_trigger (#17894)
Because of how it shares a channel, whenever openHAB was rebooted and it
would first restore the device trigger components from the channel configuration,
and then from the MQTT message, it didn't identify it as the same component
as before, and so would merge into another instance of itself. My Things.json
is normally 13MB, and had grown to 545MB, and my openHAB was constantly having
memory issues! So now just make sure we only keep unique information, which
will automatically clean up anyone in a bad state.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-13 10:26:58 +01:00
Cody CutrerandGitHub 8ea703ecd3 [wiz] Correct units for RSSI (#17867)
Number:Power of dBm, instead of Number:Dimensionless of dB.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-11 08:12:06 +01:00
Cody CutrerandGitHub 4a4f5868a0 [wiz] Enable addon finder support (#17856)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-08 12:10:44 +01:00
Cody CutrerandGitHub 5829b9056b [mqtt.homeassistant] Update Jinjava to 2.7.4 (#17858)
* [mqtt.homeassistant] Update Jinjava to 2.7.4

Which includes support for break/continue, which is what Zigbee2MQTT's
new event component uses in their template.

Signed-off-by: Cody Cutrer <cody@cutrer.us>

* update bndrun file

Signed-off-by: Cody Cutrer <cody@cutrer.us>

---------

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-08 00:06:58 +01:00
Cody CutrerandGitHub 5d89c9a885 [mqtt.homeassistant] Implement WaterHeater (#17859)
* [mqtt.homeassistant] Implement WaterHeater

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-07 16:34:05 +01:00
Cody CutrerandGitHub f733c85343 [mqtt.homeassistant] Implement Humidifier (#17853)
* [mqtt.homeassistant] Implement Humidifier

Signed-off-by: Cody Cutrer <cody@cutrer.us>

* remove debug logging from test

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-07 00:39:43 +01:00
Cody CutrerandGitHub 2e7f0e061c [mqtt.homeassistant] Implement Tag Scanner (#17852)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-05 23:27:05 +01:00
Cody CutrerandGitHub 35630e1074 [mqtt.homeassistant] Fix thing consistency for existing things when a device adds or removes components (#17851)
* [mqtt.homeassistant] gracefully handle a component's discovery info being deleted

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-05 22:31:58 +01:00
Cody CutrerandGitHub 044e9a3388 [wiz] Initial contribution (#17681)
Also-by: Joshua Freeman <github@frejos.net>
Also-by: Stefan Fussenegger <stf+git@molindo.at>
Also-by: Sara Damiano <sdamiano@stroudcenter.org>
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-04 17:32:09 +01:00
Cody CutrerandGitHub 156e691d0b [mqtt.homeassistant] fix multi-speed fans (#17813)
* fix step math so that the state description represents the step
   scaled to 0-100%

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-03 19:47:28 +01:00
Cody CutrerandGitHub 3f392ab80a [mqtt.homeassistant] Implement Device Tracker (#17831)
* [mqtt.homeassistant] implement Device Tracker

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-12-03 06:10:44 +01:00
Cody CutrerandGitHub 546bb566e2 [mqtt.homeassistant] Fix duplicate component resolution when unique_id is set (#17803)
* [mqtt.homeassistant] fix duplicate component resolution when unique_id is set

unique_id is only unique per component type. so we need to a) take that into
account, and b) use that when resolving duplicates

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-11-25 22:04:29 +01:00
Cody CutrerandGitHub df365dc9a8 [homekit] Add (partial) Doorbell Service (#17130)
* [homekit] add Doorbell Service 
this is _not_ sufficient for HomeKit to present a doorbell.
it just shows as an unsupported accessory with the house icon,

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-28 21:44:53 +01:00
Cody CutrerandGitHub 8fa3cef797 [mqtt.homie] populate unit hint on dynamic channels (#17649)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-28 19:20:01 +01:00
Cody CutrerandGitHub f52cede9ca [mqtt.homeassistant] document which channels a component might have (#17618)
* [mqtt.homeassistant] document which channels a component might have

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-26 19:24:55 +02:00
Cody CutrerandGitHub 1926847559 [mqtt.homeassistant] Implement Text (#17624)
* [mqtt.homeassistant] Implement Text

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-25 18:51:55 +02:00
Cody CutrerandGitHub df36e79925 [mqtt.homeassistant] bring AlarmControlPanel in line with current documentation (#17607)
* [mqtt.homeassistant] bring AlarmControlPanel in line with current documentation

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-25 17:12:04 +02:00
Cody CutrerandGitHub a1f448eb23 [mqtt.homeassistant] Implement Valve (#17622)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-25 17:10:11 +02:00
Cody CutrerandGitHub 9efbb8137a [mqtt.homeassistant] drop support for legacy schema vacuums (#17617)
Home Assistant dropped it in 2024.2.
See https://github.com/home-assistant/core/pull/107274

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-25 16:53:35 +02:00
Cody CutrerandGitHub c620b527e5 [mqtt.homeassistant] JSON Attributes can exist on BinarySensor (#17608)
also fix the conditional for JSON attributes on other components,
and make the channel read only.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-22 06:28:14 +02:00
Cody CutrerandGitHub ecb1e960d3 [mqtt.homeassistant] JSON Attributes can exist on Climate (#17610)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-22 06:24:32 +02:00
Cody CutrerandGitHub b94ed45076 [mqtt.homeassistant] JSON Attributes can exist on Cover (#17611)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-22 06:20:11 +02:00
Cody CutrerandGitHub 41d306faab [mqtt.homeassistant] JSON Attributes are supported by Scene (#17614)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-22 06:17:31 +02:00
Cody CutrerandGitHub 2952d21e60 [mqtt.homeassistant] JSON Attributes can exist on Number (#17613)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-22 06:15:39 +02:00
Cody CutrerandGitHub 4e5ba15493 [mqtt.homeassistant] JSON Attributes can exist on Lock (#17612)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-22 06:14:02 +02:00
Cody CutrerandGitHub eac49a836f [mqtt.homeassistant] Add support for Event component (#17599)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-21 22:48:01 +02:00
Cody CutrerandGitHub f85da1a9c4 [mqtt.homeassistant] add JSON attributes channel to several components (#17605)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-21 22:12:21 +02:00
Cody CutrerandGitHub f7c14fe9d8 [mqtt.homeassistant] bring channel ids inline with coding standards (#17604)
but only for newStyleChannels, which is already a breaking change of
most channels getting renamed for 4.3 anyway

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-21 22:10:09 +02:00
Cody CutrerandGitHub 722818c30a [mqtt.homeassistant] Use a single channel for all events from a single button (#17598)
Use the `subtype` field to collapse multiple DeviceAutomation components into
a single channel.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-21 21:24:56 +02:00
Cody CutrerandGitHub 5cd76ee6ec [mqtt.homeassistant] avoid improperly delivered triggers (#17584)
if multiple DeviceTrigger components share a topic, and each
has a payload value configured, only messages matching that
payload should be delivered to the corresponding channel

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-18 15:24:50 +02:00
Cody CutrerandGitHub 4cbae6f111 [mqtt.homeassistant] implement non-deprecated color inference for JSON Schema lights (#17529)
In particular, use the color_mode attribute to tell us which color space to parse in,
instead of trying to guess. Some devices will fill out attributes not-pertinent to
the current color mode, and their math might be... less than optimal.
Also sync color temp and color channels when the color_mode is the opposite.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-11 14:56:17 +02:00
Cody CutrerandGitHub ab59bc871d [mqtt.homeassistant] Implement optimistic components with AutoUpdatePolicy.RECOMMEND (#17520)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-08 08:45:11 +02:00
Cody CutrerandGitHub 31f6cda174 [mqtt.homeassistant] fix newStyleChannels (#17491)
* [mqtt.homeassistant] fix newStyleChannels
* further simplify channel IDs

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-10-07 23:28:50 +02:00
Cody CutrerandGitHub f4805eda2b [mqtt.homeassistant] Fix jinja usage in availability templates (#17400)
* [mqtt.homeassistant] Fix jinja usage in availability templates

Use the local Jinjava, instead of implicitly depending on the Jinja
transformation service.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-27 16:52:31 +02:00
Cody CutrerandGitHub 5de73f923a [mqtt.homeassistant] implement iif and is_defined jinja function and filters (#17435)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-26 21:25:36 +02:00
Cody CutrerandGitHub bcfbd6480a [mqtt.homeassistant] Update Jinjava to 2.7.3 (#17412)
* [mqtt.homeassistant] Update Jinjava to 2.7.3

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-23 16:57:21 +02:00
Cody CutrerandGitHub ab2daded4c [mqtt.homeassistant] Include the details of JSON syntax errors when parsing fails (#17452)
While it's useful in general to not have to copy/paste a MQTT message into a JSON
parser to verify syntax, it also includes details about fields that are the wrong
data type that a generic JSON parser won't catch. A la #17375.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-20 20:47:20 +02:00
Cody CutrerandGitHub b77458dca7 [mqtt.homeassistant] remove channels for no-longer-configured components (#17447)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-20 08:52:05 +02:00
Cody CutrerandGitHub 6953c8bc6f [mqtt.homeassistant] Fully implement Fan component (#17402)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-11 22:36:43 +02:00
Cody CutrerandGitHub 436dea619d [mqtt.homeassistant] Implement template schema lights (#17399)
* [mqtt.homeassistant] implement template schema lights

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-10 22:37:05 +02:00
Cody CutrerandGitHub 0252099518 [homekit] Adjust default ranges for some characteristics (#17157)
* [homekit] adjust default ranges for some characteristics

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-09 23:53:27 +02:00
Cody CutrerandGitHub 110fd9b1ca [mqtt.homeassistant] Use Jinjava directly (#17378)
* [mqtt.homeassistant] Use Jinjava directly

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-09-09 14:54:08 +02:00
Cody CutrerandGitHub a03056d30a [homekit] Make Thermostat.CurrentHeatingCoolingMode optional (#17191)
Just default it to OFF if it's not linked. The experience in Home
app is still decent - it says "Cool to X", "Heat to X", or
"Set to X", instead of "Cooling to X", "Heating to X" if it was
actually running. I thought about defaulting it to "HEAT" or "COOL"
depending on the current target mode, but if it's set to "AUTO",
that's not a valid state for the current mode.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-20 15:30:47 +02:00
Cody CutrerandGitHub be0ad1cdce [jpa] Fix restoring quantity types (#17215)
* [jpa] Fix restoring quantity types

Double.parseDouble throws NumberFormatException if the persisted state
includes a unit. So parse it as a QuantityType, and then apply unit
conversions as necessary.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-20 15:27:52 +02:00
Cody CutrerandGitHub 740e44994f [mqtt.homeassistant] Fix color lights that don't specify color_mode: true (#17240)
* [mqtt.homeassistant] Fix color lights that don't specify color_mode: true

See https://github.com/home-assistant/core/pull/111676

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-13 23:22:31 +02:00
Cody CutrerandGitHub 73a3f151c9 [mqtt] Simplify homeassistant thing types, and use AbstractStorageBasedTypeProvider (#16600)
* [mqtt.homeassistant] don't dynamically generate channel types

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-12 21:23:24 +02:00
Cody CutrerandGitHub 01488dd5fb [homekit] Support multiple values per enum mapping (#17144)
* [homekit] Support multiple values per enum mapping

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-06 08:11:41 +02:00
Cody CutrerandGitHub e26116ff8e [lutron] Fix Pico buttons for non-LEAP bridges (#17204)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-04 22:10:33 +02:00
Cody CutrerandGitHub 213a0b7d51 [homekit] allow linking GarageDoorOpener directly to a Rollershutter (#17150)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-08-01 09:31:43 +02:00
Cody CutrerandGitHub 7baec4d651 [mqtt.generic] Add optional stopCommandTopic for rollershutters (#17158)
* [mqtt.generic] Add optional stopCommandTopic for rollershutters

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-30 20:10:50 +02:00
Cody CutrerandGitHub cc6a202034 [homekit] Fix invertedness of GarageDoorOpener characteristics (#17181)
In #17137, CurrentDoorState and TargetDoorState were moved from being part
of the accessory itself, to using the CharacteristicFactory, but they lost the
flag that default-inverts them. So make sure to pass that flag in the new location
that the mapping is created.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-30 15:02:06 +02:00
Cody CutrerandGitHub b39e3a79bc [homekit] Fix duplicate name characteristic errors (#17151)
Depending on how the accessory initializes, optional characteristics
may be added before or after the service. For IrrigationSystem, it's
added before optional characteristics.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-26 09:12:25 +02:00
Cody CutrerandGitHub 9a8baf464b [homekit] Support lock optional characteristics on GarageDoorOpener (#17141)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-25 16:26:32 +02:00
Cody CutrerandGitHub a66495a707 [homekit] don't pre-fill enums from switches if metadata has enum values (#17142)
this is especially important when linking a many-valued enum (such as
CurrentHeatingCoolingState) to a switch, and you want to use a value
beyond 0 and 1 (i.e. OFF (0) and COOL (2)).

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-25 09:16:41 +02:00
Cody CutrerandGitHub 9362fcccdc [homekit] Support UP/DOWN for WindowCoverings (#17138)
* [homekit] Support UP/DOWN for WindowCoverings

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-24 20:45:19 +02:00
Cody CutrerandGitHub bb26e978c2 [homekit] Automatically assume valid enum values when linking to Switch/Contact (#17134)
this allows using switches and contacts for enums without additional configuration
if they already line up well with the first two values (such as they do for a
thermostat, when it represents a simple heater)

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-24 09:22:42 +02:00
Cody CutrerandGitHub e9369b6956 [homekit] fix thermostats with auto mode and only target temperature (#17136)
allow configuring such an accessory, and it's up to the user to be okay
with how the Home app deals with it

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-24 09:10:46 +02:00
Cody CutrerandGitHub 0158befacc [homekit] Fix linking a Lighting to a Group:Dimmer (#17139)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-24 09:08:08 +02:00
Cody CutrerandGitHub 730333193d [homekit] Make GarageDoorOpener.ObstructionStatus optional (#17137)
To simplify linking to "simple" things that don't have it.
It will just always return "not obstructed" if not linked

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-24 09:02:58 +02:00
Cody CutrerandGitHub 0156612c5c [mqtt.generic] Send ON/OFF for dimmer channels when so configured (#15929)
Similar to how UP/DOWN are processed for rollershutters.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-23 21:56:38 +02:00
Cody CutrerandGitHub cbbc36697c [homekit] implement StatelessProgrammableSwitch (#17129)
also supports adding multiple of them in a group, by supporting ServiceIndex
as an optional characteristic

refs #9969

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-23 08:22:27 +02:00
Cody CutrerandGitHub 9a19eaa0fa [homekit] use java, not xtend, for code fences in README (#17128)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-22 21:09:46 +02:00
Cody CutrerandGitHub 48f50aa491 [homekit] alphabetize lists in code (#17127)
Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-22 21:09:03 +02:00
Cody CutrerandGitHub 6b54480dac [homekit] Synthesize Thermostat.TargetTemperature in some cases (#17060)
* [homekit] synthesize Thermostat.TargetTemperature in some cases

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-22 20:16:47 +02:00
Cody CutrerandGitHub 422aaad5f7 [homekit] use characteristic factory for TemperatureSensor (#17084)
so that it automatically gets the proper unit handling

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-21 10:29:05 +02:00
Cody CutrerandGitHub f9c8d049b0 [homekit] Fix temperature unit conversion for min/max/step (#17059)
* [homekit] fix temperature unit conversion for min/max/step
use the item's unit if it has one. or allow explicit units

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-15 22:22:42 +02:00
Cody CutrerandGitHub 3af703cfef [homekit] Allow configuring thermostat modes via metadata (#17056)
* [homekit] allow configuring thermostat modes via metadata

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-15 00:18:10 +02:00
Cody CutrerandGitHub 674e54588b [homekit] fix optional characteristics (#17038)
* [homekit] fix optional characteristics

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-14 19:01:36 +02:00
Cody CutrerandGitHub 826e3b6bfa [homekit] sort characteristics in HomekitCharacteristicFactory (#17033)
there are so many shared characteristics now, and so many accessories they belong
to, there is no longer any groupings that make sense. so just sort solely by
characteristic/method name

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2024-07-10 16:54:29 +02:00