Commit Graph

71 Commits

Author SHA1 Message Date
Cody Cutrer
0aa28e5d40
[homekit] get min/max/step values from state description if possible (#13510)
this helps to auto-configure if the binding is providing the necessary info

metadata config still overrides

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-10-09 10:55:32 +02:00
Cody Cutrer
ccc199f429
[homekit] Allow Long type in configuration for numbers (#13509)
I.e. if it's set from a Ruby script

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-10-09 09:04:06 +02:00
Hans-Jörg Merk
31820ad740
Update README.md (#13497) 2022-10-06 23:15:55 +02:00
Cody Cutrer
64d97374ad
[homekit] allow NumberItems for BatteryLowStatus (#13449)
* [homekit] allow NumberItems for BatteryLowStatus

use a lowThreshold metadata config to infer if it's low

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-10-03 12:13:39 +02:00
Cody Cutrer
e4fe6889d0
[homekit] allow group items of the correct type anywhere that type is needed (#13236)
this is a theme, and I've extracted a helper method and applied it to several
other locations as well

example, I have a double-sliding door, with two contact sensors
in the alarm system, defined as:

```
Group:Contact:AND(CLOSED,OPEN) DeckDoor_Contact "Deck Door [%s]" <door> (gExteriorDoors, gWarningVisibility_Contact, gDoor, lMainFloor, gInflux) { homekit="ContactSensor" [instance=2] }
Contact DeckNDoor_Contact "Deck Door North" <door> (gInflux, DeckDoor_Contact, gGreatContacts) { channel="dscalarm:zone:46c52f35:zone11:zone_status" }
Switch DeckNDoor_Tamper "Deck Door North Tamper [%s]" <warning> (gTamper, gWarningVisibility_Switch) { channel="dscalarm:zone:46c52f35:zone11:zone_tamper" }
Contact DeckSDoor_Contact "Deck Door South" <door> (gInflux, DeckDoor_Contact, gGreatContacts) { channel="dscalarm:zone:46c52f35:zone12:zone_status" }
Switch DeckSDoor_Tamper "Deck Door South Tamper [%s]" <warning> (gTamper, gWarningVisibility_Switch) { channel="dscalarm:zone:46c52f35:zone12:zone_tamper" }
```

This allows the Group:Contact to be used for the ContactSensor.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-09-26 18:58:59 +02:00
Cody Cutrer
e4c9a40d03
[homekit] allow multiple bridge instances to break the 150 limit (#13226)
fixes #11508, #12927

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-08-12 09:55:39 +02:00
Cody Cutrer
f4fef5f6df
[homekit] support actual booleans in metadata config (#13228)
as well as strings, too.

reduces confusion, if someone doesn't know it needed to be a string

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-08-08 20:50:42 +02:00
Cody Cutrer
581a04b72d
[homekit] fix collecting characteristics that don't belong to a complex accessory (#13233)
given:

```
Group eThermostat { homekit="Thermostat" }
Number:Temperature Thermostat_AmbTemp (eThermostat) { homekit="CurrentTemperature" }
Number:Temperature Thermostat_SetTemp (eThermostat) { homekit="TargetTemperature" }

Group gThermostatZoneContacts
// in reality there are multiple thermostats and multiple of these groups,
// so that a rule on members of gThermostatZoneContacts can find the related
// thermostat to turn it off when a window is open
Group:Contact:OR(OPEN,CLOSED) gWindows (eThermostat, gThermostatZoneContacts)

Contact Window_Contact (gWindows) { homekit="ContactSensor" }
```

When constructing the Thermostat accessory for eThermostat, detects the
Window_Contact as a mandatory characteristic, because it's a base accessory
in a nested group. This leads to lots of warnings about the temperature
value of a contact item being out of range.

The fix is two-fold - first of all, there's no reason to search nested
groups for characteristics of a complex accessory. Second of all,
even if for some reason you were to nest an accessory in an accessory,
the nested accessory does not actually belong to the outer accessory,
so don't add it as a mandatory characteristic of the outer.

I suspect there's still one more bug, because AbstractHomekitAccessoryImpl.
getCharacteristic(HomekitCharacteristicType.CURRENT_TEMPERATURE) was
returning Window_Contact, which is only tagged as a ContactSensor. But
after fixing the above two bugs, it was no longer reproducible, and I
didn't continue digging.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-08-08 09:47:26 +02:00
Cody Cutrer
a191c16f50
[homekit] fix window coverings based on groups of rollershutters (#13232)
it was getting the state as a decimal type, not a percent type, so
it was getting 1 instead of 100.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-08-08 09:43:54 +02:00
eugen
6f3cb286d9
[homekit] Target Fan state - add support for Switch Item (#12985)
* add support for SwitchItem for target fan state

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-07-25 21:47:21 +02:00
eugen
94615b7728
[homekit] fix potential null pointer exceptions (#13122)
* fix potential null pointer exceptions
* use contains key

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-07-13 17:01:02 +02:00
Kai Kreuzer
440f603e88
Apply spotless and resolver (#13027)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2022-06-27 16:00:37 +02:00
openhab-bot
ed4858ebbb [unleash-maven-plugin] Preparation for next development cycle. 2022-06-26 18:18:40 +00:00
eugen
565dc19508
[homekit] fix for battery charging state (#12959)
* fix for battery charging state

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-06-22 11:20:36 +02:00
eugen
cddd2daae2
[homekit] fix issue with some hue lights, e.g. xiaomi (#12931)
* fix for hue

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-06-13 19:16:13 +02:00
eugen
97b423b273
update configuration revision on start (#12854)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-06-01 22:44:05 +02:00
eugen
f310cf7ca0
[homekit] add support for additional homekit accessories (#12536)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-04-26 19:37:54 +02:00
JacekKac
cc2cde2ace
typo in valve accessorie (#12616) 2022-04-18 13:50:22 +02:00
eugen
a2a5c2e6ff
add support for dimmer (#12540)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-03-29 18:57:52 +02:00
eugen
f1176a062b
[homekit] add support for complex accessories (#12346)
* Add complex accessories

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-03-28 00:11:44 +02:00
Cody Cutrer
d06cc6a60a
[homekit] do unit conversion for min/max heating/cooling temps (#12450)
this is especially important if you use the same item for both
TargetTemperature and HeatingThresholdTemperature characteristics,
since the former was already doing unit conversion for min/max.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-03-09 08:53:01 +01:00
eugen
9e6b952b66
fix storage usage (#12305)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-02-22 06:50:19 +01:00
eugen
f29034fe87
[homekit] mark item dirty only if it has homekit metadata (#12293)
* mark item dirty only if it has homekit metadata

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-02-19 09:21:52 +01:00
eugen
5901479f0e
[homekit] update java hap library (#12267)
* update hap
* correction for categories

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-02-12 15:07:58 +01:00
eugen
fde78b3fea
make onChange synchronized (#12205)
Signed-off-by: Eugen Freiter <freiter@gmx.de>

Co-authored-by: Eugen Freiter <freiter@gmx.de>
2022-02-05 08:39:17 +01:00
Cody Cutrer
8794ff860e
[homekit] handle NULL/UNDEF for temperature characteristics (#12172)
recent regression from handling QuantityType

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-01-30 18:46:56 +01:00
eugen
ec93c3600e
[homekit] quick restart on network changes (#12072)
* quick restart on network changes

* only restart if needed
* add null check

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-01-26 20:19:03 +01:00
Cody Cutrer
d4fb20d529
[homekit] use quantity type conversions for temperature characteristics (#12083)
if an Item associated with a temperature characteristic has a QuantityType
(of dimension Temperature) as its state, regardless of current unit,
use that to convert to celsius instead of any other configuration.

Note that this is only for supply values to HomeKit; commands coming from
HomeKit will still send a DecimalType with units according to the HomeKit-wide
useFahrenheit configuration.

Signed-off-by: Cody Cutrer <cody@cutrer.us>
2022-01-23 13:40:14 +01:00
eugen
843ca55c68
fix Fahrenheit conversion (#12024)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2022-01-14 22:56:50 +01:00
Hilbrand Bouwkamp
da59cdd255
Update license headers to 2022 (#11973)
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
2022-01-06 18:14:47 +01:00
eugen
b6af3aba9f
return min value instead of 0 (#11803)
Signed-off-by: Eugen Freiter <freiter@gmx.de>

Co-authored-by: Eugen Freiter <freiter@gmx.de>
2021-12-28 13:19:55 +01:00
Marcel
cc47ef7f3e
pom update from http to https reference (#11833)
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
2021-12-23 19:40:44 +01:00
Kai Kreuzer
48746f5e3f Apply spotless
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2021-12-20 09:07:55 +01:00
openhab-bot
6dc031e6cf [unleash-maven-plugin] Preparation for next development cycle. 2021-12-20 00:30:46 +00:00
Wouter Born
e752b51662
Add default translations for io add-ons (#11753)
* Add default translations for io add-ons

This makes the texts used by these add-ons translatable with Crowdin.

Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-12 19:32:51 +01:00
eugen
b89ae048e2
[homekit] make min/max values for Color Temperature configurable (#11717)
* make min/max values for ColorTemprature configurable

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-12-10 00:20:28 +01:00
eugen
1d65e10bba
[homekit] add setting to block homekit user/pairing deletion (#11731)
* add setting to block homekit user deletion and unpairing
* add logging
* remove . from settings label

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-12-08 12:14:44 +01:00
eugen
4f26c65c0c
restart HomeKit bridge on network changes (#11720)
Signed-off-by: Eugen Freiter <freiter@gmx.de>

Co-authored-by: Eugen Freiter <freiter@gmx.de>
2021-12-06 19:11:36 +01:00
eugen
66d6a3f0a3
[homekit] switch to official Java HAP lib release (#11671)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-12-01 09:43:41 +01:00
Colin
ff617aceae
Add support for group item type to window covering (#10936)
Add support for setting TARGET_POSITION of Window Covering accessories from groups with a baseItem type

Closes #10812

Signed-off-by: Colin Keehan <github@colin.xyz>
2021-07-17 08:51:44 +02:00
Kai Kreuzer
bebab9ce29 applied spotless
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2021-06-27 23:25:35 +02:00
jenkins
8c5c81e256 [unleash-maven-plugin] Preparation for next development cycle. 2021-06-27 17:35:01 +00:00
Wouter Born
f5f922eaf4
Fix or suppress SAT CompareObjectsWithEquals findings (#10631)
* Fix or suppress SAT CompareObjectsWithEquals findings

Signed-off-by: Wouter Born <github@maindrain.net>
2021-05-05 21:06:04 +02:00
Wouter Born
aaeddc8119
Update Netty dependencies to 4.1.63.Final (#10606)
Signed-off-by: Wouter Born <github@maindrain.net>
2021-04-28 12:22:11 +02:00
Christoph Weitkamp
a04cfd3389
Fixed SAT findings for new SAT 0.11.1 release (#10518)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2021-04-14 15:11:31 +02:00
eugen
e7950ddbd1
[homekit] make usage of mDNS configurable (#10286)
* make usage of mDNS configurable

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-03-12 17:18:09 +01:00
eugen
23ff9a0221
[homekit] make use of openHAB mDNS service (#10076)
* make use of openHAB mdns service
* remove unnecessary null check
* add network configuration back

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-02-25 15:51:07 -08:00
eugen
50a01b439d
[homekit] extend support of inverted flag to other accessories (#10212)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-02-25 10:28:34 -08:00
eugen
e828baccca
[homekit] add support for flag "inverted" to lock accessory (#10169)
* add support for inverted to lock
* run spotless

Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-02-16 10:19:37 -08:00
eugen
8a2ac82b07
[homekit] make min and max temperature units depedent on useFahrenheitTemperature setting (#10074)
Signed-off-by: Eugen Freiter <freiter@gmx.de>
2021-02-06 23:04:32 -08:00