@smarthome.exchange/integrations 0.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +171 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/cli/classes.cliruntime.d.ts +1 -1
- package/dist_ts/cli/commands.discover.js +1 -1
- package/dist_ts/cli/commands.setup.d.ts +1 -1
- package/dist_ts/core/classes.configrecord.d.ts +15 -0
- package/dist_ts/core/classes.configrecord.js +93 -0
- package/dist_ts/core/classes.configstore.d.ts +40 -10
- package/dist_ts/core/classes.configstore.js +355 -32
- package/dist_ts/core/classes.discoveryengine.js +12 -2
- package/dist_ts/core/classes.nativehomeadmission.d.ts +19 -0
- package/dist_ts/core/classes.nativehomeadmission.js +84 -0
- package/dist_ts/core/classes.nativeintegrationowner.d.ts +79 -0
- package/dist_ts/core/classes.nativeintegrationowner.js +269 -0
- package/dist_ts/core/classes.runtimemanager.js +1 -1
- package/dist_ts/core/classes.simplelocalintegration.js +1 -1
- package/dist_ts/core/errors.d.ts +2 -2
- package/dist_ts/core/errors.js +1 -1
- package/dist_ts/core/index.d.ts +2 -0
- package/dist_ts/core/index.js +3 -1
- package/dist_ts/core/types.d.ts +27 -4
- package/dist_ts/index.d.ts +4 -1
- package/dist_ts/index.js +7 -1
- package/dist_ts/integrations/adguard/adguard.classes.client.js +1 -1
- package/dist_ts/integrations/adguard/adguard.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/adguard/adguard.classes.integration.js +1 -1
- package/dist_ts/integrations/adguard/adguard.discovery.d.ts +1 -1
- package/dist_ts/integrations/adguard/adguard.mapper.js +1 -1
- package/dist_ts/integrations/agent_dvr/agent_dvr.classes.client.js +1 -1
- package/dist_ts/integrations/agent_dvr/agent_dvr.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/agent_dvr/agent_dvr.classes.integration.js +1 -1
- package/dist_ts/integrations/agent_dvr/agent_dvr.discovery.d.ts +3 -3
- package/dist_ts/integrations/agent_dvr/agent_dvr.mapper.js +1 -1
- package/dist_ts/integrations/agent_dvr/agent_dvr.types.d.ts +1 -1
- package/dist_ts/integrations/airgradient/airgradient.classes.client.js +1 -1
- package/dist_ts/integrations/airgradient/airgradient.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/airgradient/airgradient.classes.integration.js +1 -1
- package/dist_ts/integrations/airgradient/airgradient.discovery.d.ts +2 -2
- package/dist_ts/integrations/airos/airos.classes.client.js +1 -1
- package/dist_ts/integrations/airos/airos.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/airos/airos.classes.integration.js +1 -1
- package/dist_ts/integrations/airos/airos.discovery.d.ts +4 -4
- package/dist_ts/integrations/airos/airos.discovery.js +1 -1
- package/dist_ts/integrations/airos/airos.mapper.js +1 -1
- package/dist_ts/integrations/amcrest/amcrest.classes.client.js +1 -1
- package/dist_ts/integrations/amcrest/amcrest.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/amcrest/amcrest.classes.integration.js +1 -1
- package/dist_ts/integrations/amcrest/amcrest.discovery.d.ts +3 -3
- package/dist_ts/integrations/amcrest/amcrest.types.d.ts +5 -5
- package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.classes.client.js +1 -1
- package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.classes.integration.js +1 -1
- package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.discovery.d.ts +1 -1
- package/dist_ts/integrations/androidtv/androidtv.classes.client.js +1 -1
- package/dist_ts/integrations/androidtv/androidtv.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/androidtv/androidtv.classes.integration.js +1 -1
- package/dist_ts/integrations/androidtv/androidtv.discovery.d.ts +3 -3
- package/dist_ts/integrations/androidtv_remote/androidtv_remote.classes.client.js +1 -1
- package/dist_ts/integrations/androidtv_remote/androidtv_remote.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/androidtv_remote/androidtv_remote.classes.integration.js +1 -1
- package/dist_ts/integrations/androidtv_remote/androidtv_remote.discovery.d.ts +2 -2
- package/dist_ts/integrations/apcupsd/apcupsd.classes.client.js +1 -1
- package/dist_ts/integrations/apcupsd/apcupsd.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/apcupsd/apcupsd.classes.integration.js +1 -1
- package/dist_ts/integrations/apcupsd/apcupsd.discovery.d.ts +1 -1
- package/dist_ts/integrations/apcupsd/apcupsd.mapper.js +1 -1
- package/dist_ts/integrations/arcam_fmj/arcam_fmj.classes.client.js +1 -1
- package/dist_ts/integrations/arcam_fmj/arcam_fmj.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/arcam_fmj/arcam_fmj.classes.integration.js +1 -1
- package/dist_ts/integrations/arcam_fmj/arcam_fmj.discovery.d.ts +2 -2
- package/dist_ts/integrations/asuswrt/asuswrt.classes.client.js +1 -1
- package/dist_ts/integrations/asuswrt/asuswrt.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/asuswrt/asuswrt.classes.integration.js +1 -1
- package/dist_ts/integrations/asuswrt/asuswrt.discovery.d.ts +1 -1
- package/dist_ts/integrations/asuswrt/asuswrt.mapper.js +1 -1
- package/dist_ts/integrations/axis/axis.classes.client.js +1 -1
- package/dist_ts/integrations/axis/axis.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/axis/axis.classes.integration.js +1 -1
- package/dist_ts/integrations/axis/axis.discovery.d.ts +3 -3
- package/dist_ts/integrations/blebox/blebox.classes.client.js +1 -1
- package/dist_ts/integrations/blebox/blebox.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/blebox/blebox.classes.integration.js +1 -1
- package/dist_ts/integrations/blebox/blebox.discovery.d.ts +2 -2
- package/dist_ts/integrations/bluesound/bluesound.classes.client.d.ts +9 -4
- package/dist_ts/integrations/bluesound/bluesound.classes.client.js +1 -1
- package/dist_ts/integrations/bluesound/bluesound.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/bluesound/bluesound.classes.integration.js +1 -1
- package/dist_ts/integrations/bluesound/bluesound.discovery.d.ts +2 -2
- package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.classes.client.js +1 -1
- package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.classes.integration.js +1 -1
- package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.discovery.d.ts +2 -2
- package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.mapper.js +1 -1
- package/dist_ts/integrations/bond/bond.classes.client.js +1 -1
- package/dist_ts/integrations/bond/bond.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/bond/bond.classes.integration.js +1 -1
- package/dist_ts/integrations/bond/bond.discovery.d.ts +3 -3
- package/dist_ts/integrations/bond/bond.mapper.js +1 -1
- package/dist_ts/integrations/bond/bond.types.d.ts +71 -71
- package/dist_ts/integrations/bosch_shc/bosch_shc.classes.client.js +1 -1
- package/dist_ts/integrations/bosch_shc/bosch_shc.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/bosch_shc/bosch_shc.classes.integration.js +1 -1
- package/dist_ts/integrations/bosch_shc/bosch_shc.discovery.d.ts +2 -2
- package/dist_ts/integrations/bosch_shc/bosch_shc.mapper.js +1 -1
- package/dist_ts/integrations/braviatv/braviatv.classes.client.d.ts +23 -72
- package/dist_ts/integrations/braviatv/braviatv.classes.client.js +265 -625
- package/dist_ts/integrations/braviatv/braviatv.classes.configflow.d.ts +7 -7
- package/dist_ts/integrations/braviatv/braviatv.classes.configflow.js +51 -68
- package/dist_ts/integrations/braviatv/braviatv.classes.integration.d.ts +9 -12
- package/dist_ts/integrations/braviatv/braviatv.classes.integration.js +186 -135
- package/dist_ts/integrations/braviatv/braviatv.discovery.d.ts +3 -3
- package/dist_ts/integrations/braviatv/braviatv.discovery.js +12 -11
- package/dist_ts/integrations/braviatv/braviatv.mapper.d.ts +6 -14
- package/dist_ts/integrations/braviatv/braviatv.mapper.js +37 -131
- package/dist_ts/integrations/braviatv/braviatv.types.d.ts +55 -133
- package/dist_ts/integrations/braviatv/braviatv.validation.d.ts +7 -0
- package/dist_ts/integrations/braviatv/braviatv.validation.js +72 -0
- package/dist_ts/integrations/broadlink/broadlink.actions.d.ts +2 -0
- package/dist_ts/integrations/broadlink/broadlink.actions.js +36 -0
- package/dist_ts/integrations/broadlink/broadlink.classes.client.d.ts +21 -19
- package/dist_ts/integrations/broadlink/broadlink.classes.client.js +185 -124
- package/dist_ts/integrations/broadlink/broadlink.classes.configflow.d.ts +5 -4
- package/dist_ts/integrations/broadlink/broadlink.classes.configflow.js +64 -83
- package/dist_ts/integrations/broadlink/broadlink.classes.integration.d.ts +17 -20
- package/dist_ts/integrations/broadlink/broadlink.classes.integration.js +114 -59
- package/dist_ts/integrations/broadlink/broadlink.discovery.d.ts +3 -3
- package/dist_ts/integrations/broadlink/broadlink.mapper.d.ts +3 -2
- package/dist_ts/integrations/broadlink/broadlink.mapper.js +2 -1
- package/dist_ts/integrations/broadlink/broadlink.packet.d.ts +2 -2
- package/dist_ts/integrations/broadlink/broadlink.packet.js +1 -1
- package/dist_ts/integrations/broadlink/broadlink.selected.mapper.d.ts +10 -0
- package/dist_ts/integrations/broadlink/broadlink.selected.mapper.js +41 -0
- package/dist_ts/integrations/broadlink/broadlink.types.d.ts +43 -7
- package/dist_ts/integrations/broadlink/broadlink.validation.d.ts +7 -0
- package/dist_ts/integrations/broadlink/broadlink.validation.js +63 -0
- package/dist_ts/integrations/brother/brother.classes.client.js +1 -1
- package/dist_ts/integrations/brother/brother.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/brother/brother.classes.integration.js +1 -1
- package/dist_ts/integrations/brother/brother.constants.d.ts +12 -12
- package/dist_ts/integrations/brother/brother.discovery.d.ts +2 -2
- package/dist_ts/integrations/brother/brother.mapper.js +1 -1
- package/dist_ts/integrations/cast/cast.classes.client.js +1 -1
- package/dist_ts/integrations/cast/cast.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/cast/cast.classes.integration.js +1 -1
- package/dist_ts/integrations/cast/cast.discovery.d.ts +2 -2
- package/dist_ts/integrations/channels/channels.classes.client.js +1 -1
- package/dist_ts/integrations/channels/channels.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/channels/channels.classes.integration.js +1 -1
- package/dist_ts/integrations/channels/channels.discovery.d.ts +2 -2
- package/dist_ts/integrations/cisco_ios/cisco_ios.classes.client.js +1 -1
- package/dist_ts/integrations/cisco_ios/cisco_ios.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/cisco_ios/cisco_ios.classes.integration.js +1 -1
- package/dist_ts/integrations/cisco_ios/cisco_ios.discovery.d.ts +2 -2
- package/dist_ts/integrations/cisco_ios/cisco_ios.mapper.js +1 -1
- package/dist_ts/integrations/daikin/daikin.classes.client.d.ts +10 -52
- package/dist_ts/integrations/daikin/daikin.classes.client.js +55 -614
- package/dist_ts/integrations/daikin/daikin.classes.configflow.d.ts +8 -12
- package/dist_ts/integrations/daikin/daikin.classes.configflow.js +77 -138
- package/dist_ts/integrations/daikin/daikin.classes.integration.d.ts +8 -25
- package/dist_ts/integrations/daikin/daikin.classes.integration.js +175 -67
- package/dist_ts/integrations/daikin/daikin.discovery.d.ts +11 -24
- package/dist_ts/integrations/daikin/daikin.discovery.js +98 -305
- package/dist_ts/integrations/daikin/daikin.mapper.d.ts +6 -7
- package/dist_ts/integrations/daikin/daikin.mapper.js +95 -155
- package/dist_ts/integrations/daikin/daikin.types.d.ts +24 -44
- package/dist_ts/integrations/daikin/daikin.types.js +1 -1
- package/dist_ts/integrations/daikin/daikin.validation.d.ts +5 -0
- package/dist_ts/integrations/daikin/daikin.validation.js +53 -0
- package/dist_ts/integrations/ddwrt/ddwrt.classes.client.js +1 -1
- package/dist_ts/integrations/ddwrt/ddwrt.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/ddwrt/ddwrt.classes.integration.js +1 -1
- package/dist_ts/integrations/ddwrt/ddwrt.discovery.d.ts +3 -3
- package/dist_ts/integrations/ddwrt/ddwrt.mapper.js +1 -1
- package/dist_ts/integrations/deconz/deconz.classes.client.d.ts +31 -22
- package/dist_ts/integrations/deconz/deconz.classes.client.js +302 -153
- package/dist_ts/integrations/deconz/deconz.classes.configflow.js +43 -26
- package/dist_ts/integrations/deconz/deconz.classes.integration.d.ts +3 -1
- package/dist_ts/integrations/deconz/deconz.classes.integration.js +133 -20
- package/dist_ts/integrations/deconz/deconz.discovery.d.ts +4 -4
- package/dist_ts/integrations/deconz/deconz.mapper.d.ts +2 -1
- package/dist_ts/integrations/deconz/deconz.mapper.js +23 -18
- package/dist_ts/integrations/deconz/deconz.types.d.ts +34 -3
- package/dist_ts/integrations/deconz/deconz.validation.d.ts +14 -0
- package/dist_ts/integrations/deconz/deconz.validation.js +269 -0
- package/dist_ts/integrations/deluge/deluge.classes.client.js +1 -1
- package/dist_ts/integrations/deluge/deluge.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/deluge/deluge.classes.integration.js +1 -1
- package/dist_ts/integrations/deluge/deluge.discovery.d.ts +2 -2
- package/dist_ts/integrations/denon/denon.classes.client.js +1 -1
- package/dist_ts/integrations/denon/denon.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/denon/denon.classes.integration.js +1 -1
- package/dist_ts/integrations/denon/denon.discovery.d.ts +1 -1
- package/dist_ts/integrations/denonavr/denonavr.classes.client.d.ts +31 -40
- package/dist_ts/integrations/denonavr/denonavr.classes.client.js +149 -404
- package/dist_ts/integrations/denonavr/denonavr.classes.configflow.d.ts +7 -2
- package/dist_ts/integrations/denonavr/denonavr.classes.configflow.js +44 -36
- package/dist_ts/integrations/denonavr/denonavr.classes.integration.d.ts +7 -12
- package/dist_ts/integrations/denonavr/denonavr.classes.integration.js +192 -113
- package/dist_ts/integrations/denonavr/denonavr.discovery.d.ts +10 -18
- package/dist_ts/integrations/denonavr/denonavr.discovery.js +71 -193
- package/dist_ts/integrations/denonavr/denonavr.mapper.d.ts +5 -13
- package/dist_ts/integrations/denonavr/denonavr.mapper.js +35 -159
- package/dist_ts/integrations/denonavr/denonavr.types.d.ts +55 -90
- package/dist_ts/integrations/denonavr/denonavr.validation.d.ts +10 -0
- package/dist_ts/integrations/denonavr/denonavr.validation.js +86 -0
- package/dist_ts/integrations/devolo_home_network/devolo_home_network.classes.client.js +1 -1
- package/dist_ts/integrations/devolo_home_network/devolo_home_network.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/devolo_home_network/devolo_home_network.classes.integration.js +1 -1
- package/dist_ts/integrations/devolo_home_network/devolo_home_network.discovery.d.ts +3 -3
- package/dist_ts/integrations/devolo_home_network/devolo_home_network.mapper.js +1 -1
- package/dist_ts/integrations/directv/directv.classes.client.js +1 -1
- package/dist_ts/integrations/directv/directv.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/directv/directv.classes.integration.js +1 -1
- package/dist_ts/integrations/directv/directv.discovery.d.ts +2 -2
- package/dist_ts/integrations/directv/directv.types.d.ts +1 -1
- package/dist_ts/integrations/dlink/dlink.classes.client.d.ts +6 -3
- package/dist_ts/integrations/dlink/dlink.classes.client.js +1 -1
- package/dist_ts/integrations/dlink/dlink.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/dlink/dlink.classes.integration.js +1 -1
- package/dist_ts/integrations/dlink/dlink.discovery.d.ts +2 -2
- package/dist_ts/integrations/dlink/dlink.mapper.js +1 -1
- package/dist_ts/integrations/dlna_dmr/dlna_dmr.classes.client.js +1 -1
- package/dist_ts/integrations/dlna_dmr/dlna_dmr.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/dlna_dmr/dlna_dmr.classes.integration.js +1 -1
- package/dist_ts/integrations/dlna_dmr/dlna_dmr.discovery.d.ts +2 -2
- package/dist_ts/integrations/dlna_dms/dlna_dms.classes.client.js +1 -1
- package/dist_ts/integrations/dlna_dms/dlna_dms.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/dlna_dms/dlna_dms.classes.integration.js +1 -1
- package/dist_ts/integrations/dlna_dms/dlna_dms.discovery.d.ts +2 -2
- package/dist_ts/integrations/doorbird/doorbird.classes.client.js +1 -1
- package/dist_ts/integrations/doorbird/doorbird.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/doorbird/doorbird.classes.integration.js +1 -1
- package/dist_ts/integrations/doorbird/doorbird.discovery.d.ts +2 -2
- package/dist_ts/integrations/dsmr/dsmr.classes.client.js +1 -1
- package/dist_ts/integrations/dsmr/dsmr.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/dsmr/dsmr.classes.integration.js +1 -1
- package/dist_ts/integrations/dsmr/dsmr.discovery.d.ts +1 -1
- package/dist_ts/integrations/dsmr/dsmr.parser.js +1 -1
- package/dist_ts/integrations/dunehd/dunehd.classes.client.js +1 -1
- package/dist_ts/integrations/dunehd/dunehd.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/dunehd/dunehd.classes.integration.js +1 -1
- package/dist_ts/integrations/dunehd/dunehd.discovery.d.ts +3 -3
- package/dist_ts/integrations/edimax/edimax.classes.client.js +1 -1
- package/dist_ts/integrations/edl21/edl21.classes.client.js +1 -1
- package/dist_ts/integrations/egardia/egardia.classes.client.js +1 -1
- package/dist_ts/integrations/elgato/elgato.classes.client.js +1 -1
- package/dist_ts/integrations/elgato/elgato.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/elgato/elgato.classes.integration.js +1 -1
- package/dist_ts/integrations/elgato/elgato.discovery.d.ts +3 -3
- package/dist_ts/integrations/emby/emby.classes.client.js +1 -1
- package/dist_ts/integrations/emby/emby.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/emby/emby.classes.integration.js +1 -1
- package/dist_ts/integrations/emby/emby.discovery.d.ts +3 -3
- package/dist_ts/integrations/emoncms_history/emoncms_history.classes.client.js +1 -1
- package/dist_ts/integrations/emonitor/emonitor.classes.client.js +1 -1
- package/dist_ts/integrations/emulated_hue/emulated_hue.classes.client.js +1 -1
- package/dist_ts/integrations/emulated_kasa/emulated_kasa.classes.client.js +1 -1
- package/dist_ts/integrations/emulated_roku/emulated_roku.classes.client.js +1 -1
- package/dist_ts/integrations/energenie_power_sockets/energenie_power_sockets.classes.client.js +1 -1
- package/dist_ts/integrations/enigma2/enigma2.classes.client.js +1 -1
- package/dist_ts/integrations/enocean/enocean.classes.client.js +1 -1
- package/dist_ts/integrations/esphome/esphome.classes.client.d.ts +35 -18
- package/dist_ts/integrations/esphome/esphome.classes.client.js +267 -77
- package/dist_ts/integrations/esphome/esphome.classes.configflow.js +2 -4
- package/dist_ts/integrations/esphome/esphome.classes.integration.d.ts +22 -11
- package/dist_ts/integrations/esphome/esphome.classes.integration.js +68 -61
- package/dist_ts/integrations/esphome/esphome.discovery.d.ts +2 -2
- package/dist_ts/integrations/esphome/esphome.discovery.js +2 -2
- package/dist_ts/integrations/esphome/esphome.mapper.d.ts +1 -2
- package/dist_ts/integrations/esphome/esphome.mapper.js +79 -36
- package/dist_ts/integrations/esphome/esphome.types.d.ts +2 -0
- package/dist_ts/integrations/fibaro/fibaro.classes.client.js +1 -1
- package/dist_ts/integrations/file/file.classes.client.js +1 -1
- package/dist_ts/integrations/filesize/filesize.classes.client.js +1 -1
- package/dist_ts/integrations/flexit_bacnet/flexit_bacnet.classes.client.js +1 -1
- package/dist_ts/integrations/flic/flic.classes.client.js +1 -1
- package/dist_ts/integrations/flux_led/flux_led.classes.client.js +1 -1
- package/dist_ts/integrations/folder/folder.classes.client.js +1 -1
- package/dist_ts/integrations/folder_watcher/folder_watcher.classes.client.js +1 -1
- package/dist_ts/integrations/forked_daapd/forked_daapd.classes.client.js +1 -1
- package/dist_ts/integrations/forked_daapd/forked_daapd.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/forked_daapd/forked_daapd.classes.integration.js +1 -1
- package/dist_ts/integrations/forked_daapd/forked_daapd.discovery.d.ts +2 -2
- package/dist_ts/integrations/foscam/foscam.classes.client.js +1 -1
- package/dist_ts/integrations/foscam/foscam.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/foscam/foscam.classes.integration.js +1 -1
- package/dist_ts/integrations/foscam/foscam.discovery.d.ts +3 -3
- package/dist_ts/integrations/foscam/foscam.types.d.ts +2 -2
- package/dist_ts/integrations/freebox/freebox.classes.client.js +1 -1
- package/dist_ts/integrations/freebox/freebox.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/freebox/freebox.classes.integration.js +1 -1
- package/dist_ts/integrations/freebox/freebox.discovery.d.ts +2 -2
- package/dist_ts/integrations/freebox/freebox.mapper.js +1 -1
- package/dist_ts/integrations/freebox/freebox.types.d.ts +11 -11
- package/dist_ts/integrations/fritz/fritz.classes.client.js +1 -1
- package/dist_ts/integrations/fritz/fritz.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/fritz/fritz.classes.integration.js +1 -1
- package/dist_ts/integrations/fritz/fritz.discovery.d.ts +3 -3
- package/dist_ts/integrations/fritz/fritz.mapper.js +1 -1
- package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.classes.client.js +1 -1
- package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.classes.integration.js +1 -1
- package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.discovery.d.ts +3 -3
- package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.mapper.js +1 -1
- package/dist_ts/integrations/fronius/fronius.classes.client.js +1 -1
- package/dist_ts/integrations/fronius/fronius.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/fronius/fronius.classes.integration.js +1 -1
- package/dist_ts/integrations/fronius/fronius.discovery.d.ts +2 -2
- package/dist_ts/integrations/fronius/fronius.mapper.js +1 -1
- package/dist_ts/integrations/frontier_silicon/frontier_silicon.classes.client.js +1 -1
- package/dist_ts/integrations/frontier_silicon/frontier_silicon.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/frontier_silicon/frontier_silicon.classes.integration.js +1 -1
- package/dist_ts/integrations/frontier_silicon/frontier_silicon.discovery.d.ts +2 -2
- package/dist_ts/integrations/fully_kiosk/fully_kiosk.classes.client.js +1 -1
- package/dist_ts/integrations/fully_kiosk/fully_kiosk.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/fully_kiosk/fully_kiosk.classes.integration.js +1 -1
- package/dist_ts/integrations/fully_kiosk/fully_kiosk.discovery.d.ts +2 -2
- package/dist_ts/integrations/fully_kiosk/fully_kiosk.mapper.js +1 -1
- package/dist_ts/integrations/generated/index.d.ts +1 -1
- package/dist_ts/integrations/generated/index.js +5 -7
- package/dist_ts/integrations/generic/generic.classes.client.js +1 -1
- package/dist_ts/integrations/geniushub/geniushub.classes.client.js +1 -1
- package/dist_ts/integrations/glances/glances.classes.client.js +1 -1
- package/dist_ts/integrations/glances/glances.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/glances/glances.classes.integration.js +1 -1
- package/dist_ts/integrations/glances/glances.discovery.d.ts +2 -2
- package/dist_ts/integrations/go2rtc/go2rtc.classes.client.js +1 -1
- package/dist_ts/integrations/go2rtc/go2rtc.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/go2rtc/go2rtc.classes.integration.js +1 -1
- package/dist_ts/integrations/go2rtc/go2rtc.discovery.d.ts +2 -2
- package/dist_ts/integrations/go2rtc/go2rtc.mapper.js +1 -1
- package/dist_ts/integrations/goalzero/goalzero.classes.client.js +1 -1
- package/dist_ts/integrations/gogogate2/gogogate2.classes.client.js +1 -1
- package/dist_ts/integrations/goodwe/goodwe.classes.client.js +1 -1
- package/dist_ts/integrations/goodwe/goodwe.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/goodwe/goodwe.classes.integration.js +1 -1
- package/dist_ts/integrations/goodwe/goodwe.discovery.d.ts +1 -1
- package/dist_ts/integrations/goodwe/goodwe.types.d.ts +8 -8
- package/dist_ts/integrations/google_wifi/google_wifi.classes.client.js +1 -1
- package/dist_ts/integrations/govee_ble/govee_ble.classes.client.js +1 -1
- package/dist_ts/integrations/govee_light_local/govee_light_local.classes.client.js +1 -1
- package/dist_ts/integrations/gpsd/gpsd.classes.client.js +1 -1
- package/dist_ts/integrations/graphite/graphite.classes.client.js +1 -1
- package/dist_ts/integrations/gree/gree.classes.client.js +1 -1
- package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.classes.client.js +1 -1
- package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.classes.integration.js +1 -1
- package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.discovery.d.ts +1 -1
- package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.types.d.ts +12 -12
- package/dist_ts/integrations/harmony/harmony.classes.client.js +1 -1
- package/dist_ts/integrations/harmony/harmony.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/harmony/harmony.classes.integration.js +1 -1
- package/dist_ts/integrations/harmony/harmony.discovery.d.ts +2 -2
- package/dist_ts/integrations/hddtemp/hddtemp.classes.client.js +1 -1
- package/dist_ts/integrations/hddtemp/hddtemp.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/hddtemp/hddtemp.classes.integration.js +1 -1
- package/dist_ts/integrations/hddtemp/hddtemp.discovery.d.ts +2 -2
- package/dist_ts/integrations/hdfury/hdfury.classes.client.js +1 -1
- package/dist_ts/integrations/hdmi_cec/hdmi_cec.classes.client.js +1 -1
- package/dist_ts/integrations/heatmiser/heatmiser.classes.client.js +1 -1
- package/dist_ts/integrations/hegel/hegel.classes.client.js +1 -1
- package/dist_ts/integrations/heos/heos.classes.client.js +1 -1
- package/dist_ts/integrations/heos/heos.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/heos/heos.classes.integration.js +1 -1
- package/dist_ts/integrations/heos/heos.discovery.d.ts +3 -3
- package/dist_ts/integrations/hikvision/hikvision.classes.client.js +1 -1
- package/dist_ts/integrations/hikvision/hikvision.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/hikvision/hikvision.classes.integration.js +1 -1
- package/dist_ts/integrations/hikvision/hikvision.discovery.d.ts +3 -3
- package/dist_ts/integrations/hikvisioncam/hikvisioncam.classes.client.js +1 -1
- package/dist_ts/integrations/hisense_aehw4a1/hisense_aehw4a1.classes.client.js +1 -1
- package/dist_ts/integrations/hitron_coda/hitron_coda.classes.client.js +1 -1
- package/dist_ts/integrations/hlk_sw16/hlk_sw16.classes.client.js +1 -1
- package/dist_ts/integrations/holiday/holiday.classes.client.js +1 -1
- package/dist_ts/integrations/homeassistant/homeassistant.classes.client.d.ts +7 -1
- package/dist_ts/integrations/homeassistant/homeassistant.classes.client.js +174 -50
- package/dist_ts/integrations/homeassistant/homeassistant.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/homeassistant/homeassistant.classes.integration.js +1 -1
- package/dist_ts/integrations/homeassistant/homeassistant.classes.runtime.d.ts +2 -0
- package/dist_ts/integrations/homeassistant/homeassistant.classes.runtime.js +35 -3
- package/dist_ts/integrations/homeassistant/homeassistant.mapper.d.ts +4 -4
- package/dist_ts/integrations/homeassistant/homeassistant.mapper.js +25 -36
- package/dist_ts/integrations/homeassistant/homeassistant.types.d.ts +10 -0
- package/dist_ts/integrations/homeassistant/homeassistant.validation.d.ts +9 -0
- package/dist_ts/integrations/homeassistant/homeassistant.validation.js +137 -0
- package/dist_ts/integrations/homee/homee.classes.client.js +1 -1
- package/dist_ts/integrations/homekit_controller/homekit_controller.classes.client.js +1 -1
- package/dist_ts/integrations/homekit_controller/homekit_controller.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/homekit_controller/homekit_controller.classes.integration.js +1 -1
- package/dist_ts/integrations/homekit_controller/homekit_controller.discovery.d.ts +2 -2
- package/dist_ts/integrations/homekit_controller/homekit_controller.mapper.js +1 -1
- package/dist_ts/integrations/homematic/homematic.classes.client.d.ts +2 -2
- package/dist_ts/integrations/homematic/homematic.classes.client.js +1 -1
- package/dist_ts/integrations/homematic/homematic.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/homematic/homematic.classes.integration.js +1 -1
- package/dist_ts/integrations/homematic/homematic.constants.d.ts +2 -2
- package/dist_ts/integrations/homematic/homematic.discovery.d.ts +2 -2
- package/dist_ts/integrations/homewizard/homewizard.classes.client.js +1 -1
- package/dist_ts/integrations/homewizard/homewizard.classes.integration.d.ts +3 -3
- package/dist_ts/integrations/homewizard/homewizard.classes.integration.js +1 -1
- package/dist_ts/integrations/homewizard/homewizard.discovery.d.ts +3 -3
- package/dist_ts/integrations/homewizard/homewizard.mapper.js +1 -1
- package/dist_ts/integrations/homewizard/homewizard.types.d.ts +10 -10
- package/dist_ts/integrations/huawei_lte/huawei_lte.classes.client.js +1 -1
- package/dist_ts/integrations/huawei_lte/huawei_lte.classes.integration.d.ts +2 -2
- package/dist_ts/integrations/huawei_lte/huawei_lte.classes.integration.js +1 -1
- package/dist_ts/integrations/huawei_lte/huawei_lte.discovery.d.ts +3 -3
- package/dist_ts/integrations/huawei_lte/huawei_lte.mapper.js +1 -1
- package/dist_ts/integrations/huawei_lte/huawei_lte.types.d.ts +1 -1
- package/dist_ts/integrations/hue/hue.classes.client.d.ts +13 -5
- package/dist_ts/integrations/hue/hue.classes.client.js +278 -23
- package/dist_ts/integrations/hue/hue.classes.configflow.js +34 -14
- package/dist_ts/integrations/hue/hue.classes.integration.d.ts +2 -1
- package/dist_ts/integrations/hue/hue.classes.integration.js +85 -25
- package/dist_ts/integrations/hue/hue.discovery.d.ts +2 -2
- package/dist_ts/integrations/hue/hue.discovery.js +79 -26
- package/dist_ts/integrations/hue/hue.mapper.d.ts +0 -1
- package/dist_ts/integrations/hue/hue.mapper.js +26 -54
- package/dist_ts/integrations/hue/hue.types.d.ts +14 -7
- package/dist_ts/integrations/hue/hue.validation.d.ts +11 -0
- package/dist_ts/integrations/hue/hue.validation.js +160 -0
- package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.classes.client.js +1 -1
- package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.classes.integration.d.ts +2 -2
- package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.classes.integration.js +1 -1
- package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.discovery.d.ts +3 -3
- package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.types.d.ts +1 -1
- package/dist_ts/integrations/hyperion/hyperion.classes.client.js +1 -1
- package/dist_ts/integrations/hyperion/hyperion.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/hyperion/hyperion.classes.integration.js +1 -1
- package/dist_ts/integrations/hyperion/hyperion.discovery.d.ts +3 -3
- package/dist_ts/integrations/hyperion/hyperion.types.d.ts +1 -1
- package/dist_ts/integrations/imeon_inverter/imeon_inverter.classes.client.js +1 -1
- package/dist_ts/integrations/immich/immich.classes.client.js +1 -1
- package/dist_ts/integrations/incomfort/incomfort.classes.integration.js +1 -1
- package/dist_ts/integrations/indevolt/indevolt.classes.integration.js +1 -1
- package/dist_ts/integrations/index.d.ts +4 -1
- package/dist_ts/integrations/index.js +5 -2
- package/dist_ts/integrations/influxdb/influxdb.classes.client.js +1 -1
- package/dist_ts/integrations/intellifire/intellifire.classes.client.js +1 -1
- package/dist_ts/integrations/intellifire/intellifire.mapper.js +1 -1
- package/dist_ts/integrations/iometer/iometer.classes.client.js +1 -1
- package/dist_ts/integrations/iometer/iometer.mapper.js +1 -1
- package/dist_ts/integrations/iotawatt/iotawatt.classes.client.js +1 -1
- package/dist_ts/integrations/iperf3/iperf3.classes.client.js +1 -1
- package/dist_ts/integrations/ipp/ipp.classes.client.js +1 -1
- package/dist_ts/integrations/ipp/ipp.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/ipp/ipp.classes.integration.js +1 -1
- package/dist_ts/integrations/ipp/ipp.discovery.d.ts +2 -2
- package/dist_ts/integrations/iron_os/iron_os.classes.client.js +1 -1
- package/dist_ts/integrations/iskra/iskra.classes.client.js +1 -1
- package/dist_ts/integrations/iskra/iskra.mapper.js +1 -1
- package/dist_ts/integrations/itunes/itunes.classes.client.js +1 -1
- package/dist_ts/integrations/jellyfin/jellyfin.classes.client.js +1 -1
- package/dist_ts/integrations/jellyfin/jellyfin.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/jellyfin/jellyfin.classes.integration.js +1 -1
- package/dist_ts/integrations/jellyfin/jellyfin.discovery.d.ts +3 -3
- package/dist_ts/integrations/jvc_projector/jvc_projector.classes.client.js +1 -1
- package/dist_ts/integrations/kaleidescape/kaleidescape.classes.client.js +1 -1
- package/dist_ts/integrations/kankun/kankun.classes.client.js +1 -1
- package/dist_ts/integrations/keenetic_ndms2/keenetic_ndms2.classes.client.js +1 -1
- package/dist_ts/integrations/kef/kef.classes.client.js +1 -1
- package/dist_ts/integrations/kiosker/kiosker.classes.client.js +1 -1
- package/dist_ts/integrations/kira/kira.classes.client.js +1 -1
- package/dist_ts/integrations/kmtronic/kmtronic.classes.client.js +1 -1
- package/dist_ts/integrations/knx/knx.classes.client.js +1 -1
- package/dist_ts/integrations/knx/knx.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/knx/knx.classes.integration.js +1 -1
- package/dist_ts/integrations/knx/knx.discovery.d.ts +3 -3
- package/dist_ts/integrations/knx/knx.mapper.d.ts +1 -1
- package/dist_ts/integrations/knx/knx.mapper.js +1 -1
- package/dist_ts/integrations/kodi/kodi.classes.client.d.ts +11 -45
- package/dist_ts/integrations/kodi/kodi.classes.client.js +84 -310
- package/dist_ts/integrations/kodi/kodi.classes.configflow.d.ts +9 -8
- package/dist_ts/integrations/kodi/kodi.classes.configflow.js +53 -48
- package/dist_ts/integrations/kodi/kodi.classes.integration.d.ts +12 -12
- package/dist_ts/integrations/kodi/kodi.classes.integration.js +114 -171
- package/dist_ts/integrations/kodi/kodi.discovery.d.ts +2 -2
- package/dist_ts/integrations/kodi/kodi.discovery.js +53 -29
- package/dist_ts/integrations/kodi/kodi.mapper.d.ts +7 -2
- package/dist_ts/integrations/kodi/kodi.mapper.js +48 -10
- package/dist_ts/integrations/kodi/kodi.types.d.ts +32 -28
- package/dist_ts/integrations/kodi/kodi.validation.d.ts +9 -0
- package/dist_ts/integrations/kodi/kodi.validation.js +62 -0
- package/dist_ts/integrations/konnected/konnected.classes.client.js +1 -1
- package/dist_ts/integrations/kostal_plenticore/kostal_plenticore.classes.client.js +1 -1
- package/dist_ts/integrations/kostal_plenticore/kostal_plenticore.mapper.js +1 -1
- package/dist_ts/integrations/kwb/kwb.classes.client.js +1 -1
- package/dist_ts/integrations/kwb/kwb.mapper.js +1 -1
- package/dist_ts/integrations/lametric/lametric.classes.client.js +1 -1
- package/dist_ts/integrations/landisgyr_heat_meter/landisgyr_heat_meter.mapper.js +1 -1
- package/dist_ts/integrations/lcn/lcn.classes.client.js +1 -1
- package/dist_ts/integrations/lektrico/lektrico.classes.client.js +1 -1
- package/dist_ts/integrations/lektrico/lektrico.types.d.ts +4 -4
- package/dist_ts/integrations/lg_netcast/lg_netcast.classes.client.js +1 -1
- package/dist_ts/integrations/lg_soundbar/lg_soundbar.classes.client.js +1 -1
- package/dist_ts/integrations/libre_hardware_monitor/libre_hardware_monitor.classes.client.js +1 -1
- package/dist_ts/integrations/lidarr/lidarr.classes.client.js +1 -1
- package/dist_ts/integrations/lifx/lifx.classes.client.d.ts +10 -4
- package/dist_ts/integrations/lifx/lifx.classes.client.js +94 -6
- package/dist_ts/integrations/lifx/lifx.classes.configflow.d.ts +3 -3
- package/dist_ts/integrations/lifx/lifx.classes.configflow.js +37 -6
- package/dist_ts/integrations/lifx/lifx.classes.integration.d.ts +19 -4
- package/dist_ts/integrations/lifx/lifx.classes.integration.js +152 -7
- package/dist_ts/integrations/lifx/lifx.discovery.d.ts +2 -1
- package/dist_ts/integrations/lifx/lifx.discovery.js +26 -4
- package/dist_ts/integrations/lifx/lifx.mapper.d.ts +7 -8
- package/dist_ts/integrations/lifx/lifx.mapper.js +42 -12
- package/dist_ts/integrations/lifx/lifx.types.d.ts +61 -9
- package/dist_ts/integrations/lifx/lifx.types.js +9 -116
- package/dist_ts/integrations/lifx/lifx.validation.d.ts +10 -0
- package/dist_ts/integrations/lifx/lifx.validation.js +83 -0
- package/dist_ts/integrations/linkplay/linkplay.classes.client.js +1 -1
- package/dist_ts/integrations/linkplay/linkplay.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/linkplay/linkplay.classes.integration.js +1 -1
- package/dist_ts/integrations/linkplay/linkplay.discovery.d.ts +3 -3
- package/dist_ts/integrations/linksys_smart/linksys_smart.classes.client.js +1 -1
- package/dist_ts/integrations/livisi/livisi.classes.client.js +1 -1
- package/dist_ts/integrations/local_calendar/local_calendar.classes.client.js +1 -1
- package/dist_ts/integrations/local_file/local_file.classes.client.js +1 -1
- package/dist_ts/integrations/local_ip/local_ip.classes.client.js +1 -1
- package/dist_ts/integrations/local_todo/local_todo.classes.client.js +1 -1
- package/dist_ts/integrations/lookin/lookin.classes.client.js +1 -1
- package/dist_ts/integrations/loqed/loqed.classes.client.js +1 -1
- package/dist_ts/integrations/loqed/loqed.mapper.d.ts +1 -1
- package/dist_ts/integrations/loqed/loqed.mapper.js +1 -1
- package/dist_ts/integrations/luci/luci.classes.client.js +1 -1
- package/dist_ts/integrations/luci/luci.mapper.js +1 -1
- package/dist_ts/integrations/lunatone/lunatone.classes.client.js +1 -1
- package/dist_ts/integrations/lunatone/lunatone.mapper.js +1 -1
- package/dist_ts/integrations/madvr/madvr.classes.client.js +1 -1
- package/dist_ts/integrations/madvr/madvr.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/madvr/madvr.classes.integration.js +1 -1
- package/dist_ts/integrations/madvr/madvr.discovery.d.ts +2 -2
- package/dist_ts/integrations/marytts/marytts.classes.client.js +1 -1
- package/dist_ts/integrations/marytts/marytts.classes.integration.js +1 -1
- package/dist_ts/integrations/matter/matter.classes.client.js +1 -1
- package/dist_ts/integrations/matter/matter.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/matter/matter.classes.integration.js +1 -1
- package/dist_ts/integrations/matter/matter.discovery.d.ts +2 -2
- package/dist_ts/integrations/matter/matter.mapper.js +1 -1
- package/dist_ts/integrations/maxcube/maxcube.classes.client.js +1 -1
- package/dist_ts/integrations/mcp/mcp.classes.client.js +1 -1
- package/dist_ts/integrations/mcp_server/mcp_server.classes.client.js +1 -1
- package/dist_ts/integrations/mealie/mealie.classes.client.js +1 -1
- package/dist_ts/integrations/mealie/mealie.mapper.js +1 -1
- package/dist_ts/integrations/medcom_ble/medcom_ble.classes.client.js +1 -1
- package/dist_ts/integrations/medcom_ble/medcom_ble.mapper.js +1 -1
- package/dist_ts/integrations/mediaroom/mediaroom.classes.client.js +1 -1
- package/dist_ts/integrations/mediaroom/mediaroom.mapper.js +1 -1
- package/dist_ts/integrations/mfi/mfi.mapper.js +1 -1
- package/dist_ts/integrations/mikrotik/mikrotik.classes.client.js +1 -1
- package/dist_ts/integrations/mikrotik/mikrotik.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/mikrotik/mikrotik.classes.integration.js +1 -1
- package/dist_ts/integrations/mikrotik/mikrotik.discovery.d.ts +1 -1
- package/dist_ts/integrations/mikrotik/mikrotik.mapper.js +1 -1
- package/dist_ts/integrations/mill/mill.classes.client.js +1 -1
- package/dist_ts/integrations/mill/mill.mapper.js +1 -1
- package/dist_ts/integrations/minecraft_server/minecraft_server.classes.client.js +1 -1
- package/dist_ts/integrations/mjpeg/mjpeg.classes.client.js +1 -1
- package/dist_ts/integrations/mobile_app/mobile_app.classes.client.js +1 -1
- package/dist_ts/integrations/mochad/mochad.classes.client.js +1 -1
- package/dist_ts/integrations/modbus/modbus.classes.client.d.ts +15 -61
- package/dist_ts/integrations/modbus/modbus.classes.client.js +117 -776
- package/dist_ts/integrations/modbus/modbus.classes.configflow.d.ts +9 -5
- package/dist_ts/integrations/modbus/modbus.classes.configflow.js +70 -38
- package/dist_ts/integrations/modbus/modbus.classes.integration.d.ts +7 -18
- package/dist_ts/integrations/modbus/modbus.classes.integration.js +133 -57
- package/dist_ts/integrations/modbus/modbus.discovery.d.ts +5 -8
- package/dist_ts/integrations/modbus/modbus.discovery.js +38 -93
- package/dist_ts/integrations/modbus/modbus.mapper.d.ts +8 -32
- package/dist_ts/integrations/modbus/modbus.mapper.js +71 -431
- package/dist_ts/integrations/modbus/modbus.types.d.ts +82 -332
- package/dist_ts/integrations/modbus/modbus.validation.d.ts +10 -0
- package/dist_ts/integrations/modbus/modbus.validation.js +128 -0
- package/dist_ts/integrations/modern_forms/modern_forms.classes.client.js +1 -1
- package/dist_ts/integrations/moehlenhoff_alpha2/moehlenhoff_alpha2.classes.client.js +1 -1
- package/dist_ts/integrations/monoprice/monoprice.classes.client.js +1 -1
- package/dist_ts/integrations/motioneye/motioneye.classes.client.js +1 -1
- package/dist_ts/integrations/motioneye/motioneye.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/motioneye/motioneye.classes.integration.js +1 -1
- package/dist_ts/integrations/motioneye/motioneye.discovery.d.ts +2 -2
- package/dist_ts/integrations/motioneye/motioneye.types.d.ts +1 -1
- package/dist_ts/integrations/motionmount/motionmount.classes.client.js +1 -1
- package/dist_ts/integrations/mpd/mpd.classes.client.js +1 -1
- package/dist_ts/integrations/mpd/mpd.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/mpd/mpd.classes.integration.js +1 -1
- package/dist_ts/integrations/mpd/mpd.discovery.d.ts +2 -2
- package/dist_ts/integrations/mqtt/mqtt.classes.client.d.ts +54 -9
- package/dist_ts/integrations/mqtt/mqtt.classes.client.js +443 -352
- package/dist_ts/integrations/mqtt/mqtt.classes.configflow.d.ts +0 -1
- package/dist_ts/integrations/mqtt/mqtt.classes.configflow.js +23 -18
- package/dist_ts/integrations/mqtt/mqtt.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/mqtt/mqtt.classes.integration.js +140 -37
- package/dist_ts/integrations/mqtt/mqtt.discovery.d.ts +2 -2
- package/dist_ts/integrations/mqtt/mqtt.mapper.d.ts +7 -1
- package/dist_ts/integrations/mqtt/mqtt.mapper.js +161 -48
- package/dist_ts/integrations/mqtt/mqtt.types.d.ts +17 -0
- package/dist_ts/integrations/mqtt_eventstream/mqtt_eventstream.classes.client.js +1 -1
- package/dist_ts/integrations/mqtt_json/mqtt_json.classes.client.js +1 -1
- package/dist_ts/integrations/mqtt_room/mqtt_room.classes.client.js +1 -1
- package/dist_ts/integrations/music_assistant/music_assistant.classes.client.js +1 -1
- package/dist_ts/integrations/music_assistant/music_assistant.mapper.js +1 -1
- package/dist_ts/integrations/mutesync/mutesync.classes.client.js +1 -1
- package/dist_ts/integrations/mutesync/mutesync.mapper.js +1 -1
- package/dist_ts/integrations/mycroft/mycroft.classes.client.js +1 -1
- package/dist_ts/integrations/mysensors/mysensors.classes.client.js +1 -1
- package/dist_ts/integrations/mystrom/mystrom.classes.client.js +1 -1
- package/dist_ts/integrations/nad/nad.classes.client.js +1 -1
- package/dist_ts/integrations/nam/nam.classes.client.js +1 -1
- package/dist_ts/integrations/nanoleaf/nanoleaf.classes.client.d.ts +12 -34
- package/dist_ts/integrations/nanoleaf/nanoleaf.classes.client.js +143 -231
- package/dist_ts/integrations/nanoleaf/nanoleaf.classes.configflow.d.ts +6 -1
- package/dist_ts/integrations/nanoleaf/nanoleaf.classes.configflow.js +105 -18
- package/dist_ts/integrations/nanoleaf/nanoleaf.classes.integration.d.ts +9 -9
- package/dist_ts/integrations/nanoleaf/nanoleaf.classes.integration.js +141 -155
- package/dist_ts/integrations/nanoleaf/nanoleaf.credentials.d.ts +9 -0
- package/dist_ts/integrations/nanoleaf/nanoleaf.credentials.js +35 -0
- package/dist_ts/integrations/nanoleaf/nanoleaf.discovery.d.ts +3 -3
- package/dist_ts/integrations/nanoleaf/nanoleaf.mapper.d.ts +6 -18
- package/dist_ts/integrations/nanoleaf/nanoleaf.mapper.js +45 -220
- package/dist_ts/integrations/nanoleaf/nanoleaf.types.d.ts +33 -147
- package/dist_ts/integrations/nanoleaf/nanoleaf.validation.d.ts +6 -0
- package/dist_ts/integrations/nanoleaf/nanoleaf.validation.js +82 -0
- package/dist_ts/integrations/nasweb/nasweb.classes.client.js +1 -1
- package/dist_ts/integrations/netdata/netdata.classes.client.js +1 -1
- package/dist_ts/integrations/nibe_heatpump/nibe_heatpump.classes.client.js +1 -1
- package/dist_ts/integrations/niko_home_control/niko_home_control.classes.client.js +1 -1
- package/dist_ts/integrations/nobo_hub/nobo_hub.classes.client.js +1 -1
- package/dist_ts/integrations/nrgkick/nrgkick.classes.client.js +1 -1
- package/dist_ts/integrations/nuki/nuki.classes.client.js +1 -1
- package/dist_ts/integrations/nut/nut.classes.client.js +1 -1
- package/dist_ts/integrations/nut/nut.classes.integration.js +1 -1
- package/dist_ts/integrations/nx584/nx584.classes.client.js +1 -1
- package/dist_ts/integrations/nx584/nx584.classes.integration.js +1 -1
- package/dist_ts/integrations/nzbget/nzbget.classes.client.js +1 -1
- package/dist_ts/integrations/nzbget/nzbget.mapper.js +1 -1
- package/dist_ts/integrations/obihai/obihai.classes.client.js +1 -1
- package/dist_ts/integrations/octoprint/octoprint.classes.client.js +1 -1
- package/dist_ts/integrations/octoprint/octoprint.mapper.js +1 -1
- package/dist_ts/integrations/oem/oem.classes.client.js +1 -1
- package/dist_ts/integrations/ollama/ollama.classes.client.js +1 -1
- package/dist_ts/integrations/ombi/ombi.classes.client.js +1 -1
- package/dist_ts/integrations/onewire/onewire.classes.client.js +1 -1
- package/dist_ts/integrations/onkyo/onkyo.classes.client.d.ts +15 -20
- package/dist_ts/integrations/onkyo/onkyo.classes.client.js +161 -404
- package/dist_ts/integrations/onkyo/onkyo.classes.configflow.d.ts +9 -4
- package/dist_ts/integrations/onkyo/onkyo.classes.configflow.js +51 -6
- package/dist_ts/integrations/onkyo/onkyo.classes.integration.d.ts +22 -6
- package/dist_ts/integrations/onkyo/onkyo.classes.integration.js +144 -11
- package/dist_ts/integrations/onkyo/onkyo.discovery.d.ts +6 -1
- package/dist_ts/integrations/onkyo/onkyo.discovery.js +40 -4
- package/dist_ts/integrations/onkyo/onkyo.mapper.d.ts +7 -8
- package/dist_ts/integrations/onkyo/onkyo.mapper.js +45 -12
- package/dist_ts/integrations/onkyo/onkyo.types.d.ts +58 -8
- package/dist_ts/integrations/onkyo/onkyo.types.js +13 -102
- package/dist_ts/integrations/onkyo/onkyo.validation.d.ts +16 -0
- package/dist_ts/integrations/onkyo/onkyo.validation.js +77 -0
- package/dist_ts/integrations/onvif/onvif.classes.client.js +1 -1
- package/dist_ts/integrations/onvif/onvif.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/onvif/onvif.classes.integration.js +1 -1
- package/dist_ts/integrations/onvif/onvif.discovery.d.ts +3 -3
- package/dist_ts/integrations/onvif/onvif.mapper.js +1 -1
- package/dist_ts/integrations/openevse/openevse.classes.client.js +1 -1
- package/dist_ts/integrations/openevse/openevse.mapper.js +1 -1
- package/dist_ts/integrations/opengarage/opengarage.classes.client.js +1 -1
- package/dist_ts/integrations/opengarage/opengarage.mapper.js +1 -1
- package/dist_ts/integrations/openhardwaremonitor/openhardwaremonitor.classes.client.js +1 -1
- package/dist_ts/integrations/openhome/openhome.classes.client.d.ts +2 -1
- package/dist_ts/integrations/openhome/openhome.classes.client.js +21 -19
- package/dist_ts/integrations/openrgb/openrgb.classes.client.js +1 -1
- package/dist_ts/integrations/openrgb/openrgb.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/openrgb/openrgb.classes.integration.js +1 -1
- package/dist_ts/integrations/openrgb/openrgb.discovery.d.ts +2 -2
- package/dist_ts/integrations/openrgb/openrgb.mapper.js +1 -1
- package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.client.d.ts +1 -1
- package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.client.js +1 -1
- package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.integration.js +1 -1
- package/dist_ts/integrations/opentherm_gw/opentherm_gw.discovery.d.ts +1 -1
- package/dist_ts/integrations/opnsense/opnsense.classes.client.js +1 -1
- package/dist_ts/integrations/opnsense/opnsense.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/opnsense/opnsense.classes.integration.js +1 -1
- package/dist_ts/integrations/opnsense/opnsense.discovery.d.ts +1 -1
- package/dist_ts/integrations/opnsense/opnsense.mapper.js +1 -1
- package/dist_ts/integrations/orvibo/orvibo.classes.client.js +1 -1
- package/dist_ts/integrations/osramlightify/osramlightify.classes.client.js +1 -1
- package/dist_ts/integrations/otbr/otbr.classes.client.js +1 -1
- package/dist_ts/integrations/overkiz/overkiz.classes.client.js +1 -1
- package/dist_ts/integrations/overseerr/overseerr.classes.client.js +1 -1
- package/dist_ts/integrations/owntracks/owntracks.classes.client.js +1 -1
- package/dist_ts/integrations/p1_monitor/p1_monitor.classes.client.js +1 -1
- package/dist_ts/integrations/palazzetti/palazzetti.classes.client.js +1 -1
- package/dist_ts/integrations/panasonic_bluray/panasonic_bluray.classes.client.js +1 -1
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.client.d.ts +25 -25
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.client.js +116 -360
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.d.ts +11 -3
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.js +76 -6
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.integration.d.ts +26 -4
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.integration.js +142 -9
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.discovery.d.ts +2 -1
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.discovery.js +31 -4
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.mapper.d.ts +9 -9
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.mapper.js +31 -149
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.types.d.ts +51 -11
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.types.js +22 -87
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.validation.d.ts +6 -0
- package/dist_ts/integrations/panasonic_viera/panasonic_viera.validation.js +56 -0
- package/dist_ts/integrations/paperless_ngx/paperless_ngx.classes.client.js +1 -1
- package/dist_ts/integrations/paperless_ngx/paperless_ngx.mapper.js +1 -1
- package/dist_ts/integrations/peblar/peblar.classes.client.js +1 -1
- package/dist_ts/integrations/peblar/peblar.mapper.js +1 -1
- package/dist_ts/integrations/pencom/pencom.classes.client.js +1 -1
- package/dist_ts/integrations/philips_js/philips_js.classes.client.js +1 -1
- package/dist_ts/integrations/pi_hole/pi_hole.classes.client.js +1 -1
- package/dist_ts/integrations/pi_hole/pi_hole.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/pi_hole/pi_hole.classes.integration.js +1 -1
- package/dist_ts/integrations/pi_hole/pi_hole.discovery.d.ts +2 -2
- package/dist_ts/integrations/pi_hole/pi_hole.mapper.js +1 -1
- package/dist_ts/integrations/picotts/picotts.classes.client.js +1 -1
- package/dist_ts/integrations/pilight/pilight.classes.client.js +1 -1
- package/dist_ts/integrations/pilight/pilight.classes.integration.js +1 -1
- package/dist_ts/integrations/ping/ping.classes.client.js +1 -1
- package/dist_ts/integrations/pioneer/pioneer.classes.client.d.ts +31 -16
- package/dist_ts/integrations/pioneer/pioneer.classes.client.js +167 -409
- package/dist_ts/integrations/pioneer/pioneer.classes.configflow.d.ts +10 -3
- package/dist_ts/integrations/pioneer/pioneer.classes.configflow.js +66 -6
- package/dist_ts/integrations/pioneer/pioneer.classes.integration.d.ts +13 -5
- package/dist_ts/integrations/pioneer/pioneer.classes.integration.js +239 -11
- package/dist_ts/integrations/pioneer/pioneer.discovery.d.ts +14 -1
- package/dist_ts/integrations/pioneer/pioneer.discovery.js +51 -4
- package/dist_ts/integrations/pioneer/pioneer.mapper.d.ts +14 -8
- package/dist_ts/integrations/pioneer/pioneer.mapper.js +54 -12
- package/dist_ts/integrations/pioneer/pioneer.types.d.ts +79 -12
- package/dist_ts/integrations/pioneer/pioneer.types.js +12 -76
- package/dist_ts/integrations/pioneer/pioneer.validation.d.ts +10 -0
- package/dist_ts/integrations/pioneer/pioneer.validation.js +85 -0
- package/dist_ts/integrations/pjlink/pjlink.classes.client.js +1 -1
- package/dist_ts/integrations/plex/plex.classes.client.d.ts +1 -1
- package/dist_ts/integrations/plex/plex.classes.client.js +1 -1
- package/dist_ts/integrations/plex/plex.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/plex/plex.classes.integration.js +1 -1
- package/dist_ts/integrations/plex/plex.discovery.d.ts +5 -5
- package/dist_ts/integrations/plugwise/plugwise.classes.client.js +1 -1
- package/dist_ts/integrations/prusalink/prusalink.classes.client.js +1 -1
- package/dist_ts/integrations/prusalink/prusalink.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/prusalink/prusalink.classes.integration.js +1 -1
- package/dist_ts/integrations/prusalink/prusalink.discovery.d.ts +2 -2
- package/dist_ts/integrations/rainbird/rainbird.classes.client.js +1 -1
- package/dist_ts/integrations/rainbird/rainbird.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/rainbird/rainbird.classes.integration.js +1 -1
- package/dist_ts/integrations/rainbird/rainbird.discovery.d.ts +1 -1
- package/dist_ts/integrations/rflink/rflink.classes.client.js +1 -1
- package/dist_ts/integrations/rflink/rflink.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/rflink/rflink.classes.integration.js +1 -1
- package/dist_ts/integrations/rflink/rflink.discovery.d.ts +1 -1
- package/dist_ts/integrations/roku/roku.classes.client.d.ts +27 -14
- package/dist_ts/integrations/roku/roku.classes.client.js +213 -132
- package/dist_ts/integrations/roku/roku.classes.configflow.js +23 -14
- package/dist_ts/integrations/roku/roku.classes.integration.d.ts +4 -1
- package/dist_ts/integrations/roku/roku.classes.integration.js +74 -91
- package/dist_ts/integrations/roku/roku.discovery.d.ts +8 -8
- package/dist_ts/integrations/roku/roku.discovery.js +82 -65
- package/dist_ts/integrations/roku/roku.mapper.d.ts +0 -3
- package/dist_ts/integrations/roku/roku.mapper.js +18 -50
- package/dist_ts/integrations/roku/roku.types.d.ts +21 -12
- package/dist_ts/integrations/roku/roku.validation.d.ts +9 -0
- package/dist_ts/integrations/roku/roku.validation.js +74 -0
- package/dist_ts/integrations/samsungtv/samsungtv.classes.client.d.ts +9 -38
- package/dist_ts/integrations/samsungtv/samsungtv.classes.client.js +113 -417
- package/dist_ts/integrations/samsungtv/samsungtv.classes.configflow.js +31 -29
- package/dist_ts/integrations/samsungtv/samsungtv.classes.integration.d.ts +8 -7
- package/dist_ts/integrations/samsungtv/samsungtv.classes.integration.js +122 -117
- package/dist_ts/integrations/samsungtv/samsungtv.discovery.d.ts +11 -11
- package/dist_ts/integrations/samsungtv/samsungtv.discovery.js +120 -143
- package/dist_ts/integrations/samsungtv/samsungtv.mapper.d.ts +3 -11
- package/dist_ts/integrations/samsungtv/samsungtv.mapper.js +18 -117
- package/dist_ts/integrations/samsungtv/samsungtv.types.d.ts +18 -85
- package/dist_ts/integrations/samsungtv/samsungtv.validation.d.ts +7 -0
- package/dist_ts/integrations/samsungtv/samsungtv.validation.js +83 -0
- package/dist_ts/integrations/shelly/shelly.classes.client.d.ts +29 -14
- package/dist_ts/integrations/shelly/shelly.classes.client.js +310 -126
- package/dist_ts/integrations/shelly/shelly.classes.configflow.js +29 -11
- package/dist_ts/integrations/shelly/shelly.classes.integration.d.ts +4 -1
- package/dist_ts/integrations/shelly/shelly.classes.integration.js +120 -27
- package/dist_ts/integrations/shelly/shelly.classes.subscription.d.ts +47 -0
- package/dist_ts/integrations/shelly/shelly.classes.subscription.js +206 -0
- package/dist_ts/integrations/shelly/shelly.discovery.d.ts +2 -2
- package/dist_ts/integrations/shelly/shelly.discovery.js +6 -3
- package/dist_ts/integrations/shelly/shelly.rpc.d.ts +21 -0
- package/dist_ts/integrations/shelly/shelly.rpc.js +210 -0
- package/dist_ts/integrations/shelly/shelly.types.d.ts +26 -4
- package/dist_ts/integrations/snapcast/snapcast.classes.client.js +1 -1
- package/dist_ts/integrations/snapcast/snapcast.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/snapcast/snapcast.classes.integration.js +1 -1
- package/dist_ts/integrations/snapcast/snapcast.discovery.d.ts +2 -2
- package/dist_ts/integrations/sonos/index.d.ts +3 -0
- package/dist_ts/integrations/sonos/index.js +4 -1
- package/dist_ts/integrations/sonos/sonos.classes.client.d.ts +30 -29
- package/dist_ts/integrations/sonos/sonos.classes.client.js +162 -208
- package/dist_ts/integrations/sonos/sonos.classes.configflow.js +27 -9
- package/dist_ts/integrations/sonos/sonos.classes.integration.d.ts +6 -5
- package/dist_ts/integrations/sonos/sonos.classes.integration.js +280 -61
- package/dist_ts/integrations/sonos/sonos.classes.ssdpprobe.d.ts +17 -0
- package/dist_ts/integrations/sonos/sonos.classes.ssdpprobe.js +88 -0
- package/dist_ts/integrations/sonos/sonos.config.d.ts +12 -0
- package/dist_ts/integrations/sonos/sonos.config.js +52 -0
- package/dist_ts/integrations/sonos/sonos.discovery.d.ts +1 -25
- package/dist_ts/integrations/sonos/sonos.discovery.js +6 -114
- package/dist_ts/integrations/sonos/sonos.mapper.d.ts +2 -1
- package/dist_ts/integrations/sonos/sonos.mapper.js +33 -13
- package/dist_ts/integrations/sonos/sonos.matchers.d.ts +25 -0
- package/dist_ts/integrations/sonos/sonos.matchers.js +82 -0
- package/dist_ts/integrations/sonos/sonos.topology.d.ts +2 -0
- package/dist_ts/integrations/sonos/sonos.topology.js +59 -0
- package/dist_ts/integrations/sonos/sonos.types.d.ts +18 -8
- package/dist_ts/integrations/sonos/sonos.xml.d.ts +3 -0
- package/dist_ts/integrations/sonos/sonos.xml.js +21 -0
- package/dist_ts/integrations/soundtouch/soundtouch.classes.client.d.ts +13 -36
- package/dist_ts/integrations/soundtouch/soundtouch.classes.client.js +179 -502
- package/dist_ts/integrations/soundtouch/soundtouch.classes.configflow.d.ts +6 -1
- package/dist_ts/integrations/soundtouch/soundtouch.classes.configflow.js +50 -40
- package/dist_ts/integrations/soundtouch/soundtouch.classes.integration.d.ts +15 -16
- package/dist_ts/integrations/soundtouch/soundtouch.classes.integration.js +108 -128
- package/dist_ts/integrations/soundtouch/soundtouch.discovery.d.ts +2 -20
- package/dist_ts/integrations/soundtouch/soundtouch.discovery.js +23 -113
- package/dist_ts/integrations/soundtouch/soundtouch.mapper.d.ts +3 -12
- package/dist_ts/integrations/soundtouch/soundtouch.mapper.js +35 -189
- package/dist_ts/integrations/soundtouch/soundtouch.types.d.ts +57 -142
- package/dist_ts/integrations/soundtouch/soundtouch.types.js +18 -3
- package/dist_ts/integrations/soundtouch/soundtouch.validation.d.ts +22 -0
- package/dist_ts/integrations/soundtouch/soundtouch.validation.js +65 -0
- package/dist_ts/integrations/squeezebox/squeezebox.classes.client.js +1 -1
- package/dist_ts/integrations/squeezebox/squeezebox.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/squeezebox/squeezebox.classes.integration.js +1 -1
- package/dist_ts/integrations/squeezebox/squeezebox.discovery.d.ts +3 -3
- package/dist_ts/integrations/synology_dsm/synology_dsm.classes.client.js +1 -1
- package/dist_ts/integrations/synology_dsm/synology_dsm.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/synology_dsm/synology_dsm.classes.integration.js +1 -1
- package/dist_ts/integrations/synology_dsm/synology_dsm.discovery.d.ts +4 -4
- package/dist_ts/integrations/synology_dsm/synology_dsm.mapper.js +1 -1
- package/dist_ts/integrations/synology_srm/synology_srm.classes.client.js +1 -1
- package/dist_ts/integrations/synology_srm/synology_srm.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/synology_srm/synology_srm.classes.integration.js +1 -1
- package/dist_ts/integrations/synology_srm/synology_srm.discovery.d.ts +2 -2
- package/dist_ts/integrations/synology_srm/synology_srm.mapper.js +1 -1
- package/dist_ts/integrations/tasmota/index.d.ts +4 -0
- package/dist_ts/integrations/tasmota/index.js +5 -1
- package/dist_ts/integrations/tasmota/tasmota.classes.integration.d.ts +21 -3
- package/dist_ts/integrations/tasmota/tasmota.classes.integration.js +24 -25
- package/dist_ts/integrations/tasmota/tasmota.classes.runtime.d.ts +36 -0
- package/dist_ts/integrations/tasmota/tasmota.classes.runtime.js +292 -0
- package/dist_ts/integrations/tasmota/tasmota.config.d.ts +2 -0
- package/dist_ts/integrations/tasmota/tasmota.config.js +78 -0
- package/dist_ts/integrations/tasmota/tasmota.discovery.d.ts +7 -0
- package/dist_ts/integrations/tasmota/tasmota.discovery.js +85 -0
- package/dist_ts/integrations/tasmota/tasmota.mapper.d.ts +12 -0
- package/dist_ts/integrations/tasmota/tasmota.mapper.js +91 -0
- package/dist_ts/integrations/tasmota/tasmota.types.d.ts +51 -1
- package/dist_ts/integrations/tplink/index.d.ts +3 -0
- package/dist_ts/integrations/tplink/index.js +4 -1
- package/dist_ts/integrations/tplink/tplink.classes.client.d.ts +8 -14
- package/dist_ts/integrations/tplink/tplink.classes.client.js +64 -64
- package/dist_ts/integrations/tplink/tplink.classes.configflow.d.ts +3 -8
- package/dist_ts/integrations/tplink/tplink.classes.configflow.js +53 -89
- package/dist_ts/integrations/tplink/tplink.classes.integration.d.ts +8 -13
- package/dist_ts/integrations/tplink/tplink.classes.integration.js +136 -37
- package/dist_ts/integrations/tplink/tplink.discovery.d.ts +11 -14
- package/dist_ts/integrations/tplink/tplink.discovery.js +125 -210
- package/dist_ts/integrations/tplink/tplink.mapper.js +1 -1
- package/dist_ts/integrations/tplink/tplink.native.mapper.d.ts +11 -0
- package/dist_ts/integrations/tplink/tplink.native.mapper.js +61 -0
- package/dist_ts/integrations/tplink/tplink.native.types.d.ts +32 -0
- package/dist_ts/integrations/tplink/tplink.native.types.js +2 -0
- package/dist_ts/integrations/tplink/tplink.validation.d.ts +4 -0
- package/dist_ts/integrations/tplink/tplink.validation.js +48 -0
- package/dist_ts/integrations/tradfri/tradfri.classes.client.js +1 -1
- package/dist_ts/integrations/tradfri/tradfri.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/tradfri/tradfri.classes.integration.js +1 -1
- package/dist_ts/integrations/tradfri/tradfri.discovery.d.ts +2 -3
- package/dist_ts/integrations/tradfri/tradfri.discovery.js +52 -26
- package/dist_ts/integrations/tradfri/tradfri.mapper.js +1 -1
- package/dist_ts/integrations/tuya/tuya.classes.integration.d.ts +21 -3
- package/dist_ts/integrations/tuya/tuya.classes.integration.js +139 -28
- package/dist_ts/integrations/tuya/tuya.classes.runtime.d.ts +15 -0
- package/dist_ts/integrations/tuya/tuya.classes.runtime.js +189 -0
- package/dist_ts/integrations/tuya/tuya.mapper.d.ts +13 -0
- package/dist_ts/integrations/tuya/tuya.mapper.js +30 -0
- package/dist_ts/integrations/tuya/tuya.types.d.ts +40 -1
- package/dist_ts/integrations/tuya/tuya.validation.d.ts +10 -0
- package/dist_ts/integrations/tuya/tuya.validation.js +122 -0
- package/dist_ts/integrations/unifi/unifi.classes.client.js +1 -1
- package/dist_ts/integrations/unifi/unifi.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/unifi/unifi.classes.integration.js +1 -1
- package/dist_ts/integrations/unifi/unifi.discovery.d.ts +4 -4
- package/dist_ts/integrations/unifi/unifi.mapper.js +6 -6
- package/dist_ts/integrations/velbus/velbus.classes.client.js +1 -1
- package/dist_ts/integrations/velbus/velbus.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/velbus/velbus.classes.integration.js +1 -1
- package/dist_ts/integrations/velbus/velbus.discovery.d.ts +2 -2
- package/dist_ts/integrations/volumio/volumio.classes.client.js +1 -1
- package/dist_ts/integrations/volumio/volumio.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/volumio/volumio.classes.integration.js +1 -1
- package/dist_ts/integrations/volumio/volumio.discovery.d.ts +2 -2
- package/dist_ts/integrations/wake_on_lan/wake_on_lan.classes.client.js +1 -1
- package/dist_ts/integrations/wake_on_lan/wake_on_lan.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/wake_on_lan/wake_on_lan.classes.integration.js +1 -1
- package/dist_ts/integrations/wake_on_lan/wake_on_lan.discovery.d.ts +2 -2
- package/dist_ts/integrations/wake_on_lan/wake_on_lan.mapper.js +1 -1
- package/dist_ts/integrations/wake_on_lan/wake_on_lan.packet.js +1 -1
- package/dist_ts/integrations/webostv/webostv.classes.client.d.ts +10 -4
- package/dist_ts/integrations/webostv/webostv.classes.client.js +370 -6
- package/dist_ts/integrations/webostv/webostv.classes.configflow.d.ts +3 -3
- package/dist_ts/integrations/webostv/webostv.classes.configflow.js +23 -6
- package/dist_ts/integrations/webostv/webostv.classes.integration.d.ts +20 -5
- package/dist_ts/integrations/webostv/webostv.classes.integration.js +138 -7
- package/dist_ts/integrations/webostv/webostv.discovery.d.ts +2 -1
- package/dist_ts/integrations/webostv/webostv.discovery.js +26 -4
- package/dist_ts/integrations/webostv/webostv.mapper.d.ts +6 -8
- package/dist_ts/integrations/webostv/webostv.mapper.js +24 -13
- package/dist_ts/integrations/webostv/webostv.types.d.ts +61 -5
- package/dist_ts/integrations/webostv/webostv.types.js +5 -96
- package/dist_ts/integrations/webostv/webostv.validation.d.ts +6 -0
- package/dist_ts/integrations/webostv/webostv.validation.js +54 -0
- package/dist_ts/integrations/wiz/index.d.ts +1 -0
- package/dist_ts/integrations/wiz/index.js +2 -1
- package/dist_ts/integrations/wiz/wiz.classes.client.d.ts +14 -28
- package/dist_ts/integrations/wiz/wiz.classes.client.js +93 -229
- package/dist_ts/integrations/wiz/wiz.classes.configflow.d.ts +6 -4
- package/dist_ts/integrations/wiz/wiz.classes.configflow.js +38 -67
- package/dist_ts/integrations/wiz/wiz.classes.integration.d.ts +11 -22
- package/dist_ts/integrations/wiz/wiz.classes.integration.js +204 -44
- package/dist_ts/integrations/wiz/wiz.discovery.d.ts +10 -31
- package/dist_ts/integrations/wiz/wiz.discovery.js +48 -249
- package/dist_ts/integrations/wiz/wiz.mapper.d.ts +7 -51
- package/dist_ts/integrations/wiz/wiz.mapper.js +82 -668
- package/dist_ts/integrations/wiz/wiz.types.d.ts +34 -208
- package/dist_ts/integrations/wiz/wiz.validation.d.ts +8 -0
- package/dist_ts/integrations/wiz/wiz.validation.js +72 -0
- package/dist_ts/integrations/wled/index.d.ts +1 -0
- package/dist_ts/integrations/wled/index.js +2 -1
- package/dist_ts/integrations/wled/wled.classes.client.d.ts +27 -4
- package/dist_ts/integrations/wled/wled.classes.client.js +231 -6
- package/dist_ts/integrations/wled/wled.classes.configflow.d.ts +3 -3
- package/dist_ts/integrations/wled/wled.classes.configflow.js +33 -6
- package/dist_ts/integrations/wled/wled.classes.integration.d.ts +24 -4
- package/dist_ts/integrations/wled/wled.classes.integration.js +171 -7
- package/dist_ts/integrations/wled/wled.classes.subscription.d.ts +37 -0
- package/dist_ts/integrations/wled/wled.classes.subscription.js +116 -0
- package/dist_ts/integrations/wled/wled.commands.d.ts +4 -0
- package/dist_ts/integrations/wled/wled.commands.js +65 -0
- package/dist_ts/integrations/wled/wled.discovery.d.ts +17 -1
- package/dist_ts/integrations/wled/wled.discovery.js +68 -4
- package/dist_ts/integrations/wled/wled.errors.d.ts +5 -0
- package/dist_ts/integrations/wled/wled.errors.js +9 -0
- package/dist_ts/integrations/wled/wled.mapper.d.ts +8 -8
- package/dist_ts/integrations/wled/wled.mapper.js +40 -16
- package/dist_ts/integrations/wled/wled.types.d.ts +75 -6
- package/dist_ts/integrations/wled/wled.types.js +12 -82
- package/dist_ts/integrations/wled/wled.validation.d.ts +7 -0
- package/dist_ts/integrations/wled/wled.validation.js +85 -0
- package/dist_ts/integrations/wolf_smartset/wolf_smartset.classes.client.js +1 -1
- package/dist_ts/integrations/wolf_smartset/wolf_smartset.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/wolf_smartset/wolf_smartset.discovery.d.ts +1 -1
- package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.classes.client.js +1 -1
- package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.classes.integration.js +1 -1
- package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.discovery.d.ts +3 -3
- package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.mapper.js +1 -1
- package/dist_ts/integrations/yamaha/index.d.ts +1 -0
- package/dist_ts/integrations/yamaha/index.js +2 -1
- package/dist_ts/integrations/yamaha/yamaha.classes.client.d.ts +30 -4
- package/dist_ts/integrations/yamaha/yamaha.classes.client.js +162 -6
- package/dist_ts/integrations/yamaha/yamaha.classes.configflow.d.ts +10 -3
- package/dist_ts/integrations/yamaha/yamaha.classes.configflow.js +106 -6
- package/dist_ts/integrations/yamaha/yamaha.classes.integration.d.ts +22 -4
- package/dist_ts/integrations/yamaha/yamaha.classes.integration.js +243 -8
- package/dist_ts/integrations/yamaha/yamaha.discovery.d.ts +13 -1
- package/dist_ts/integrations/yamaha/yamaha.discovery.js +57 -4
- package/dist_ts/integrations/yamaha/yamaha.mapper.d.ts +16 -8
- package/dist_ts/integrations/yamaha/yamaha.mapper.js +58 -12
- package/dist_ts/integrations/yamaha/yamaha.types.d.ts +73 -6
- package/dist_ts/integrations/yamaha/yamaha.types.js +8 -94
- package/dist_ts/integrations/yamaha/yamaha.validation.d.ts +12 -0
- package/dist_ts/integrations/yamaha/yamaha.validation.js +89 -0
- package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.classes.client.js +1 -1
- package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.classes.integration.js +1 -1
- package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.discovery.d.ts +3 -3
- package/dist_ts/integrations/yeelight/yeelight.classes.client.d.ts +34 -26
- package/dist_ts/integrations/yeelight/yeelight.classes.client.js +225 -275
- package/dist_ts/integrations/yeelight/yeelight.classes.configflow.d.ts +0 -2
- package/dist_ts/integrations/yeelight/yeelight.classes.configflow.js +29 -30
- package/dist_ts/integrations/yeelight/yeelight.classes.integration.d.ts +11 -5
- package/dist_ts/integrations/yeelight/yeelight.classes.integration.js +140 -80
- package/dist_ts/integrations/yeelight/yeelight.discovery.d.ts +11 -13
- package/dist_ts/integrations/yeelight/yeelight.discovery.js +90 -128
- package/dist_ts/integrations/yeelight/yeelight.mapper.d.ts +2 -10
- package/dist_ts/integrations/yeelight/yeelight.mapper.js +57 -178
- package/dist_ts/integrations/yeelight/yeelight.types.d.ts +37 -139
- package/dist_ts/integrations/yeelight/yeelight.validation.d.ts +10 -0
- package/dist_ts/integrations/yeelight/yeelight.validation.js +111 -0
- package/dist_ts/integrations/zha/zha.classes.client.js +1 -1
- package/dist_ts/integrations/zha/zha.classes.integration.d.ts +1 -1
- package/dist_ts/integrations/zha/zha.classes.integration.js +1 -1
- package/dist_ts/integrations/zha/zha.discovery.d.ts +3 -12
- package/dist_ts/integrations/zha/zha.discovery.js +102 -222
- package/dist_ts/integrations/zha/zha.discoveryvalidation.d.ts +10 -0
- package/dist_ts/integrations/zha/zha.discoveryvalidation.js +71 -0
- package/dist_ts/integrations/zha/zha.mapper.js +1 -1
- package/dist_ts/integrations/zigbee2mqtt/index.d.ts +5 -0
- package/dist_ts/integrations/zigbee2mqtt/index.js +6 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.configflow.d.ts +5 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.configflow.js +27 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.integration.d.ts +19 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.integration.js +19 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.runtime.d.ts +55 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.runtime.js +464 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.mapper.d.ts +15 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.mapper.js +186 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.types.d.ts +57 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.types.js +2 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.validation.d.ts +5 -0
- package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.validation.js +66 -0
- package/dist_ts/integrations/zwave_js/zwave_js.classes.client.d.ts +19 -21
- package/dist_ts/integrations/zwave_js/zwave_js.classes.client.js +303 -134
- package/dist_ts/integrations/zwave_js/zwave_js.classes.configflow.d.ts +0 -3
- package/dist_ts/integrations/zwave_js/zwave_js.classes.configflow.js +31 -26
- package/dist_ts/integrations/zwave_js/zwave_js.classes.integration.d.ts +2 -1
- package/dist_ts/integrations/zwave_js/zwave_js.classes.integration.js +71 -76
- package/dist_ts/integrations/zwave_js/zwave_js.discovery.d.ts +3 -3
- package/dist_ts/integrations/zwave_js/zwave_js.discovery.js +120 -16
- package/dist_ts/integrations/zwave_js/zwave_js.mapper.d.ts +13 -14
- package/dist_ts/integrations/zwave_js/zwave_js.mapper.js +140 -257
- package/dist_ts/integrations/zwave_js/zwave_js.types.d.ts +30 -19
- package/dist_ts/integrations/zwave_js/zwave_js.validation.d.ts +15 -0
- package/dist_ts/integrations/zwave_js/zwave_js.validation.js +191 -0
- package/dist_ts/plugins.d.ts +10 -2
- package/dist_ts/plugins.js +11 -3
- package/dist_ts_migration/001.import-json-config.d.ts +10 -0
- package/dist_ts_migration/001.import-json-config.js +147 -0
- package/dist_ts_migration/index.d.ts +1 -0
- package/dist_ts_migration/index.js +2 -0
- package/package.json +20 -11
- package/readme.md +560 -9
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/core/classes.configrecord.ts +23 -0
- package/ts/core/classes.configstore.ts +381 -25
- package/ts/core/classes.discoveryengine.ts +11 -1
- package/ts/core/classes.nativehomeadmission.ts +96 -0
- package/ts/core/classes.nativeintegrationowner.ts +297 -0
- package/ts/core/index.ts +2 -0
- package/ts/core/types.ts +31 -4
- package/ts/index.ts +6 -0
- package/ts/integrations/braviatv/braviatv.classes.client.ts +245 -709
- package/ts/integrations/braviatv/braviatv.classes.configflow.ts +47 -76
- package/ts/integrations/braviatv/braviatv.classes.integration.ts +167 -147
- package/ts/integrations/braviatv/braviatv.discovery.ts +11 -10
- package/ts/integrations/braviatv/braviatv.mapper.ts +39 -142
- package/ts/integrations/braviatv/braviatv.types.ts +53 -173
- package/ts/integrations/braviatv/braviatv.validation.ts +68 -0
- package/ts/integrations/broadlink/broadlink.actions.ts +31 -0
- package/ts/integrations/broadlink/broadlink.classes.client.ts +170 -144
- package/ts/integrations/broadlink/broadlink.classes.configflow.ts +59 -89
- package/ts/integrations/broadlink/broadlink.classes.integration.ts +110 -64
- package/ts/integrations/broadlink/broadlink.mapper.ts +5 -4
- package/ts/integrations/broadlink/broadlink.selected.mapper.ts +46 -0
- package/ts/integrations/broadlink/broadlink.types.ts +48 -8
- package/ts/integrations/broadlink/broadlink.validation.ts +66 -0
- package/ts/integrations/daikin/daikin.classes.client.ts +52 -661
- package/ts/integrations/daikin/daikin.classes.configflow.ts +72 -152
- package/ts/integrations/daikin/daikin.classes.integration.ts +166 -71
- package/ts/integrations/daikin/daikin.discovery.ts +94 -346
- package/ts/integrations/daikin/daikin.mapper.ts +83 -166
- package/ts/integrations/daikin/daikin.types.ts +27 -48
- package/ts/integrations/daikin/daikin.validation.ts +51 -0
- package/ts/integrations/daikin/readme.md +83 -0
- package/ts/integrations/deconz/deconz.classes.client.ts +243 -190
- package/ts/integrations/deconz/deconz.classes.configflow.ts +34 -25
- package/ts/integrations/deconz/deconz.classes.integration.ts +105 -22
- package/ts/integrations/deconz/deconz.mapper.ts +24 -18
- package/ts/integrations/deconz/deconz.types.ts +38 -3
- package/ts/integrations/deconz/deconz.validation.ts +261 -0
- package/ts/integrations/deconz/readme.md +44 -0
- package/ts/integrations/denonavr/denonavr.classes.client.ts +132 -421
- package/ts/integrations/denonavr/denonavr.classes.configflow.ts +44 -37
- package/ts/integrations/denonavr/denonavr.classes.integration.ts +171 -117
- package/ts/integrations/denonavr/denonavr.discovery.ts +67 -220
- package/ts/integrations/denonavr/denonavr.mapper.ts +36 -182
- package/ts/integrations/denonavr/denonavr.types.ts +48 -111
- package/ts/integrations/denonavr/denonavr.validation.ts +87 -0
- package/ts/integrations/esphome/esphome.classes.client.ts +254 -74
- package/ts/integrations/esphome/esphome.classes.configflow.ts +1 -3
- package/ts/integrations/esphome/esphome.classes.integration.ts +61 -66
- package/ts/integrations/esphome/esphome.discovery.ts +1 -1
- package/ts/integrations/esphome/esphome.mapper.ts +71 -37
- package/ts/integrations/esphome/esphome.types.ts +2 -0
- package/ts/integrations/esphome/readme.md +66 -0
- package/ts/integrations/generated/index.ts +4 -6
- package/ts/integrations/homeassistant/homeassistant.classes.client.ts +166 -63
- package/ts/integrations/homeassistant/homeassistant.classes.runtime.ts +41 -3
- package/ts/integrations/homeassistant/homeassistant.mapper.ts +32 -36
- package/ts/integrations/homeassistant/homeassistant.types.ts +11 -0
- package/ts/integrations/homeassistant/homeassistant.validation.ts +139 -0
- package/ts/integrations/homeassistant/readme.md +40 -0
- package/ts/integrations/hue/hue.classes.client.ts +251 -21
- package/ts/integrations/hue/hue.classes.configflow.ts +26 -13
- package/ts/integrations/hue/hue.classes.integration.ts +76 -30
- package/ts/integrations/hue/hue.discovery.ts +61 -26
- package/ts/integrations/hue/hue.mapper.ts +28 -60
- package/ts/integrations/hue/hue.types.ts +12 -18
- package/ts/integrations/hue/hue.validation.ts +154 -0
- package/ts/integrations/hue/readme.md +71 -0
- package/ts/integrations/index.ts +5 -1
- package/ts/integrations/kodi/kodi.classes.client.ts +72 -352
- package/ts/integrations/kodi/kodi.classes.configflow.ts +52 -55
- package/ts/integrations/kodi/kodi.classes.integration.ts +97 -178
- package/ts/integrations/kodi/kodi.discovery.ts +49 -28
- package/ts/integrations/kodi/kodi.mapper.ts +52 -10
- package/ts/integrations/kodi/kodi.types.ts +33 -58
- package/ts/integrations/kodi/kodi.validation.ts +60 -0
- package/ts/integrations/lifx/lifx.classes.client.ts +95 -6
- package/ts/integrations/lifx/lifx.classes.configflow.ts +32 -5
- package/ts/integrations/lifx/lifx.classes.integration.ts +142 -7
- package/ts/integrations/lifx/lifx.discovery.ts +26 -3
- package/ts/integrations/lifx/lifx.mapper.ts +45 -17
- package/ts/integrations/lifx/lifx.types.ts +51 -125
- package/ts/integrations/lifx/lifx.validation.ts +86 -0
- package/ts/integrations/lifx/readme.md +55 -0
- package/ts/integrations/modbus/modbus.classes.client.ts +100 -842
- package/ts/integrations/modbus/modbus.classes.configflow.ts +70 -41
- package/ts/integrations/modbus/modbus.classes.integration.ts +115 -60
- package/ts/integrations/modbus/modbus.discovery.ts +38 -106
- package/ts/integrations/modbus/modbus.mapper.ts +64 -467
- package/ts/integrations/modbus/modbus.types.ts +64 -381
- package/ts/integrations/modbus/modbus.validation.ts +119 -0
- package/ts/integrations/mqtt/mqtt.classes.client.ts +394 -366
- package/ts/integrations/mqtt/mqtt.classes.configflow.ts +22 -18
- package/ts/integrations/mqtt/mqtt.classes.integration.ts +119 -44
- package/ts/integrations/mqtt/mqtt.mapper.ts +139 -47
- package/ts/integrations/mqtt/mqtt.types.ts +19 -0
- package/ts/integrations/mqtt/readme.md +28 -0
- package/ts/integrations/nanoleaf/nanoleaf.classes.client.ts +115 -249
- package/ts/integrations/nanoleaf/nanoleaf.classes.configflow.ts +90 -19
- package/ts/integrations/nanoleaf/nanoleaf.classes.integration.ts +130 -181
- package/ts/integrations/nanoleaf/nanoleaf.credentials.ts +39 -0
- package/ts/integrations/nanoleaf/nanoleaf.mapper.ts +47 -260
- package/ts/integrations/nanoleaf/nanoleaf.types.ts +29 -147
- package/ts/integrations/nanoleaf/nanoleaf.validation.ts +77 -0
- package/ts/integrations/onkyo/onkyo.classes.client.ts +148 -457
- package/ts/integrations/onkyo/onkyo.classes.configflow.ts +52 -6
- package/ts/integrations/onkyo/onkyo.classes.integration.ts +121 -12
- package/ts/integrations/onkyo/onkyo.discovery.ts +41 -3
- package/ts/integrations/onkyo/onkyo.mapper.ts +46 -19
- package/ts/integrations/onkyo/onkyo.types.ts +55 -110
- package/ts/integrations/onkyo/onkyo.validation.ts +85 -0
- package/ts/integrations/onkyo/readme.md +126 -0
- package/ts/integrations/openhome/openhome.classes.client.ts +22 -18
- package/ts/integrations/panasonic_viera/panasonic_viera.classes.client.ts +101 -398
- package/ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.ts +69 -5
- package/ts/integrations/panasonic_viera/panasonic_viera.classes.integration.ts +141 -9
- package/ts/integrations/panasonic_viera/panasonic_viera.discovery.ts +32 -3
- package/ts/integrations/panasonic_viera/panasonic_viera.mapper.ts +34 -161
- package/ts/integrations/panasonic_viera/panasonic_viera.types.ts +52 -96
- package/ts/integrations/panasonic_viera/panasonic_viera.validation.ts +56 -0
- package/ts/integrations/pioneer/pioneer.classes.client.ts +132 -428
- package/ts/integrations/pioneer/pioneer.classes.configflow.ts +67 -5
- package/ts/integrations/pioneer/pioneer.classes.integration.ts +225 -11
- package/ts/integrations/pioneer/pioneer.discovery.ts +45 -3
- package/ts/integrations/pioneer/pioneer.mapper.ts +57 -13
- package/ts/integrations/pioneer/pioneer.types.ts +87 -85
- package/ts/integrations/pioneer/pioneer.validation.ts +84 -0
- package/ts/integrations/roku/readme.md +95 -0
- package/ts/integrations/roku/roku.classes.client.ts +194 -131
- package/ts/integrations/roku/roku.classes.configflow.ts +20 -13
- package/ts/integrations/roku/roku.classes.integration.ts +69 -98
- package/ts/integrations/roku/roku.discovery.ts +68 -71
- package/ts/integrations/roku/roku.mapper.ts +17 -52
- package/ts/integrations/roku/roku.types.ts +23 -14
- package/ts/integrations/roku/roku.validation.ts +79 -0
- package/ts/integrations/samsungtv/readme.md +30 -0
- package/ts/integrations/samsungtv/samsungtv.classes.client.ts +107 -481
- package/ts/integrations/samsungtv/samsungtv.classes.configflow.ts +28 -29
- package/ts/integrations/samsungtv/samsungtv.classes.integration.ts +108 -132
- package/ts/integrations/samsungtv/samsungtv.discovery.ts +101 -165
- package/ts/integrations/samsungtv/samsungtv.mapper.ts +20 -127
- package/ts/integrations/samsungtv/samsungtv.types.ts +18 -95
- package/ts/integrations/samsungtv/samsungtv.validation.ts +84 -0
- package/ts/integrations/shelly/readme.md +34 -0
- package/ts/integrations/shelly/shelly.classes.client.ts +275 -137
- package/ts/integrations/shelly/shelly.classes.configflow.ts +24 -10
- package/ts/integrations/shelly/shelly.classes.integration.ts +109 -32
- package/ts/integrations/shelly/shelly.classes.subscription.ts +218 -0
- package/ts/integrations/shelly/shelly.discovery.ts +5 -2
- package/ts/integrations/shelly/shelly.rpc.ts +190 -0
- package/ts/integrations/shelly/shelly.types.ts +16 -4
- package/ts/integrations/sonos/index.ts +3 -0
- package/ts/integrations/sonos/readme.md +74 -0
- package/ts/integrations/sonos/sonos.classes.client.ts +153 -225
- package/ts/integrations/sonos/sonos.classes.configflow.ts +21 -8
- package/ts/integrations/sonos/sonos.classes.integration.ts +234 -72
- package/ts/integrations/sonos/sonos.classes.ssdpprobe.ts +85 -0
- package/ts/integrations/sonos/sonos.config.ts +57 -0
- package/ts/integrations/sonos/sonos.discovery.ts +5 -123
- package/ts/integrations/sonos/sonos.mapper.ts +29 -13
- package/ts/integrations/sonos/sonos.matchers.ts +83 -0
- package/ts/integrations/sonos/sonos.topology.ts +54 -0
- package/ts/integrations/sonos/sonos.types.ts +20 -8
- package/ts/integrations/sonos/sonos.xml.ts +19 -0
- package/ts/integrations/soundtouch/soundtouch.classes.client.ts +152 -571
- package/ts/integrations/soundtouch/soundtouch.classes.configflow.ts +47 -42
- package/ts/integrations/soundtouch/soundtouch.classes.integration.ts +95 -150
- package/ts/integrations/soundtouch/soundtouch.discovery.ts +21 -133
- package/ts/integrations/soundtouch/soundtouch.mapper.ts +36 -207
- package/ts/integrations/soundtouch/soundtouch.types.ts +50 -195
- package/ts/integrations/soundtouch/soundtouch.validation.ts +60 -0
- package/ts/integrations/tasmota/index.ts +4 -0
- package/ts/integrations/tasmota/readme.md +33 -0
- package/ts/integrations/tasmota/tasmota.classes.integration.ts +27 -24
- package/ts/integrations/tasmota/tasmota.classes.runtime.ts +274 -0
- package/ts/integrations/tasmota/tasmota.config.ts +69 -0
- package/ts/integrations/tasmota/tasmota.discovery.ts +84 -0
- package/ts/integrations/tasmota/tasmota.mapper.ts +88 -0
- package/ts/integrations/tasmota/tasmota.types.ts +48 -2
- package/ts/integrations/tplink/index.ts +3 -0
- package/ts/integrations/tplink/readme.md +38 -0
- package/ts/integrations/tplink/tplink.classes.client.ts +56 -75
- package/ts/integrations/tplink/tplink.classes.configflow.ts +48 -100
- package/ts/integrations/tplink/tplink.classes.integration.ts +118 -40
- package/ts/integrations/tplink/tplink.discovery.ts +106 -235
- package/ts/integrations/tplink/tplink.native.mapper.ts +67 -0
- package/ts/integrations/tplink/tplink.native.types.ts +32 -0
- package/ts/integrations/tplink/tplink.validation.ts +50 -0
- package/ts/integrations/tradfri/tradfri.discovery.ts +52 -26
- package/ts/integrations/tuya/readme.md +106 -0
- package/ts/integrations/tuya/tuya.classes.integration.ts +127 -28
- package/ts/integrations/tuya/tuya.classes.runtime.ts +166 -0
- package/ts/integrations/tuya/tuya.mapper.ts +47 -0
- package/ts/integrations/tuya/tuya.types.ts +47 -2
- package/ts/integrations/tuya/tuya.validation.ts +118 -0
- package/ts/integrations/unifi/unifi.mapper.ts +8 -5
- package/ts/integrations/webostv/readme.md +48 -0
- package/ts/integrations/webostv/webostv.classes.client.ts +297 -6
- package/ts/integrations/webostv/webostv.classes.configflow.ts +18 -5
- package/ts/integrations/webostv/webostv.classes.integration.ts +92 -7
- package/ts/integrations/webostv/webostv.discovery.ts +22 -3
- package/ts/integrations/webostv/webostv.mapper.ts +27 -18
- package/ts/integrations/webostv/webostv.types.ts +47 -101
- package/ts/integrations/webostv/webostv.validation.ts +48 -0
- package/ts/integrations/wiz/index.ts +1 -0
- package/ts/integrations/wiz/wiz.classes.client.ts +84 -254
- package/ts/integrations/wiz/wiz.classes.configflow.ts +39 -70
- package/ts/integrations/wiz/wiz.classes.integration.ts +189 -45
- package/ts/integrations/wiz/wiz.discovery.ts +48 -291
- package/ts/integrations/wiz/wiz.mapper.ts +81 -754
- package/ts/integrations/wiz/wiz.types.ts +24 -224
- package/ts/integrations/wiz/wiz.validation.ts +73 -0
- package/ts/integrations/wled/index.ts +1 -0
- package/ts/integrations/wled/readme.md +83 -0
- package/ts/integrations/wled/wled.classes.client.ts +208 -6
- package/ts/integrations/wled/wled.classes.configflow.ts +26 -5
- package/ts/integrations/wled/wled.classes.integration.ts +142 -7
- package/ts/integrations/wled/wled.classes.subscription.ts +122 -0
- package/ts/integrations/wled/wled.commands.ts +54 -0
- package/ts/integrations/wled/wled.discovery.ts +52 -3
- package/ts/integrations/wled/wled.errors.ts +9 -0
- package/ts/integrations/wled/wled.mapper.ts +39 -19
- package/ts/integrations/wled/wled.types.ts +59 -87
- package/ts/integrations/wled/wled.validation.ts +72 -0
- package/ts/integrations/yamaha/index.ts +1 -0
- package/ts/integrations/yamaha/yamaha.classes.client.ts +150 -6
- package/ts/integrations/yamaha/yamaha.classes.configflow.ts +100 -5
- package/ts/integrations/yamaha/yamaha.classes.integration.ts +236 -8
- package/ts/integrations/yamaha/yamaha.discovery.ts +52 -3
- package/ts/integrations/yamaha/yamaha.mapper.ts +65 -13
- package/ts/integrations/yamaha/yamaha.types.ts +77 -97
- package/ts/integrations/yamaha/yamaha.validation.ts +86 -0
- package/ts/integrations/yeelight/readme.md +47 -0
- package/ts/integrations/yeelight/yeelight.classes.client.ts +201 -302
- package/ts/integrations/yeelight/yeelight.classes.configflow.ts +23 -32
- package/ts/integrations/yeelight/yeelight.classes.integration.ts +115 -87
- package/ts/integrations/yeelight/yeelight.discovery.ts +78 -140
- package/ts/integrations/yeelight/yeelight.mapper.ts +61 -191
- package/ts/integrations/yeelight/yeelight.types.ts +31 -162
- package/ts/integrations/yeelight/yeelight.validation.ts +112 -0
- package/ts/integrations/zha/readme.md +23 -0
- package/ts/integrations/zha/zha.discovery.ts +92 -232
- package/ts/integrations/zha/zha.discoveryvalidation.ts +67 -0
- package/ts/integrations/zigbee2mqtt/index.ts +5 -0
- package/ts/integrations/zigbee2mqtt/readme.md +40 -0
- package/ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.configflow.ts +26 -0
- package/ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.integration.ts +23 -0
- package/ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.runtime.ts +414 -0
- package/ts/integrations/zigbee2mqtt/zigbee2mqtt.mapper.ts +172 -0
- package/ts/integrations/zigbee2mqtt/zigbee2mqtt.types.ts +63 -0
- package/ts/integrations/zigbee2mqtt/zigbee2mqtt.validation.ts +65 -0
- package/ts/integrations/zwave_js/readme.md +23 -0
- package/ts/integrations/zwave_js/zwave_js.classes.client.ts +256 -136
- package/ts/integrations/zwave_js/zwave_js.classes.configflow.ts +26 -28
- package/ts/integrations/zwave_js/zwave_js.classes.integration.ts +65 -81
- package/ts/integrations/zwave_js/zwave_js.discovery.ts +100 -15
- package/ts/integrations/zwave_js/zwave_js.mapper.ts +129 -256
- package/ts/integrations/zwave_js/zwave_js.types.ts +32 -19
- package/ts/integrations/zwave_js/zwave_js.validation.ts +191 -0
- package/ts/plugins.ts +12 -3
- package/ts_migration/001.import-json-config.ts +81 -0
- package/ts_migration/index.ts +1 -0
- package/ts/integrations/tasmota/.generated-by-smarthome-exchange +0 -1
- package/ts/integrations/tuya/.generated-by-smarthome-exchange +0 -1
|
@@ -794,4 +794,4 @@ export class TplinkMapper {
|
|
|
794
794
|
return Math.max(minArg, Math.min(maxArg, valueArg));
|
|
795
795
|
}
|
|
796
796
|
}
|
|
797
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHBsaW5rLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy90cGxpbmsvdHBsaW5rLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBYzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNwTyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBQ3JRLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQzdQLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0Is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
|
|
797
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHBsaW5rLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy90cGxpbmsvdHBsaW5rLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBYzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNwTyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBQ3JRLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQzdQLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0Is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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { IDeviceFeatureWriteRequest, IIntegrationEntity, IServiceCallRequest } from '../../core/types.js';
|
|
3
|
+
import type { ITplinkNativeSnapshot } from './tplink.native.types.js';
|
|
4
|
+
export declare class TplinkNativeMapper {
|
|
5
|
+
static deviceId(snapshotArg: ITplinkNativeSnapshot): string;
|
|
6
|
+
static entityId(snapshotArg: ITplinkNativeSnapshot): string;
|
|
7
|
+
static toDevices(snapshotArg: ITplinkNativeSnapshot): plugins.shxInterfaces.data.IDeviceDefinition[];
|
|
8
|
+
static toEntities(snapshotArg: ITplinkNativeSnapshot): IIntegrationEntity[];
|
|
9
|
+
static powerForService(snapshotArg: ITplinkNativeSnapshot, requestArg: IServiceCallRequest): boolean;
|
|
10
|
+
static powerForFeature(snapshotArg: ITplinkNativeSnapshot, requestArg: IDeviceFeatureWriteRequest): boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import { tplinkKeys, tplinkObject } from './tplink.validation.js';
|
|
3
|
+
export class TplinkNativeMapper {
|
|
4
|
+
static deviceId(snapshotArg) {
|
|
5
|
+
return `tplink:${encodeURIComponent(snapshotArg.homeId)}:${encodeURIComponent(snapshotArg.deviceId)}`;
|
|
6
|
+
}
|
|
7
|
+
static entityId(snapshotArg) {
|
|
8
|
+
return `${this.deviceId(snapshotArg)}:power`;
|
|
9
|
+
}
|
|
10
|
+
static toDevices(snapshotArg) {
|
|
11
|
+
return [{
|
|
12
|
+
id: this.deviceId(snapshotArg), name: snapshotArg.name || snapshotArg.model,
|
|
13
|
+
integrationDomain: 'tplink', protocol: 'unknown', manufacturer: 'TP-Link', model: snapshotArg.model,
|
|
14
|
+
features: [{ id: 'power', name: 'Power', capability: 'switch', readable: true, writable: true }],
|
|
15
|
+
state: [{ featureId: 'power', value: snapshotArg.power, updatedAt: snapshotArg.observedAt }],
|
|
16
|
+
online: true,
|
|
17
|
+
metadata: {
|
|
18
|
+
homeId: snapshotArg.homeId, protocol: 'legacy-kasa', deviceId: snapshotArg.deviceId,
|
|
19
|
+
macAddress: snapshotArg.macAddress, softwareVersion: snapshotArg.softwareVersion,
|
|
20
|
+
hardwareVersion: snapshotArg.hardwareVersion, observedAt: snapshotArg.observedAt,
|
|
21
|
+
},
|
|
22
|
+
}];
|
|
23
|
+
}
|
|
24
|
+
static toEntities(snapshotArg) {
|
|
25
|
+
return [{
|
|
26
|
+
id: this.entityId(snapshotArg), uniqueId: this.entityId(snapshotArg), integrationDomain: 'tplink',
|
|
27
|
+
deviceId: this.deviceId(snapshotArg), platform: 'switch', name: snapshotArg.name || snapshotArg.model,
|
|
28
|
+
state: snapshotArg.power ? 'on' : 'off', available: true,
|
|
29
|
+
attributes: { homeId: snapshotArg.homeId, protocol: 'legacy-kasa', observedAt: snapshotArg.observedAt },
|
|
30
|
+
}];
|
|
31
|
+
}
|
|
32
|
+
static powerForService(snapshotArg, requestArg) {
|
|
33
|
+
const request = tplinkObject(requestArg, 'TP-Link service');
|
|
34
|
+
tplinkKeys(request, ['domain', 'service', 'target', 'data']);
|
|
35
|
+
if (request.domain !== 'switch' || request.service !== 'turn_on' && request.service !== 'turn_off') {
|
|
36
|
+
throw new TypeError('TP-Link supports switch.turn_on and switch.turn_off.');
|
|
37
|
+
}
|
|
38
|
+
const target = tplinkObject(request.target, 'TP-Link target');
|
|
39
|
+
tplinkKeys(target, ['deviceId', 'entityId']);
|
|
40
|
+
if (target.deviceId === undefined && target.entityId === undefined ||
|
|
41
|
+
target.deviceId !== undefined && target.deviceId !== this.deviceId(snapshotArg) ||
|
|
42
|
+
target.entityId !== undefined && target.entityId !== this.entityId(snapshotArg)) {
|
|
43
|
+
throw new TypeError('TP-Link requires an exact owned relay target.');
|
|
44
|
+
}
|
|
45
|
+
if (request.data !== undefined)
|
|
46
|
+
tplinkKeys(tplinkObject(request.data, 'TP-Link service data'), []);
|
|
47
|
+
return request.service === 'turn_on';
|
|
48
|
+
}
|
|
49
|
+
static powerForFeature(snapshotArg, requestArg) {
|
|
50
|
+
const request = tplinkObject(requestArg, 'TP-Link feature write');
|
|
51
|
+
tplinkKeys(request, ['device', 'feature', 'value']);
|
|
52
|
+
const device = tplinkObject(request.device, 'TP-Link feature device');
|
|
53
|
+
const feature = tplinkObject(request.feature, 'TP-Link feature');
|
|
54
|
+
if (device.id !== this.deviceId(snapshotArg) || device.integrationDomain !== 'tplink' ||
|
|
55
|
+
feature.id !== 'power' || typeof request.value !== 'boolean') {
|
|
56
|
+
throw new TypeError('TP-Link feature writes require the owned power feature and a boolean value.');
|
|
57
|
+
}
|
|
58
|
+
return request.value;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHBsaW5rLm5hdGl2ZS5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9pbnRlZ3JhdGlvbnMvdHBsaW5rL3RwbGluay5uYXRpdmUubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFHNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBa0M7UUFDdkQsT0FBTyxVQUFVLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUN4RyxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFrQztRQUN2RCxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQWtDO1FBQ3hELE9BQU8sQ0FBQztnQkFDTixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSztnQkFDM0UsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7Z0JBQ25HLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ2hHLEtBQUssRUFBRSxDQUFDLEVBQUUs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
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface ITplinkNativeConfig {
|
|
2
|
+
homeId: string;
|
|
3
|
+
transport: 'legacy-kasa';
|
|
4
|
+
host: string;
|
|
5
|
+
expectedDeviceId: string;
|
|
6
|
+
port?: number;
|
|
7
|
+
timeoutMs?: number;
|
|
8
|
+
maxResponseBytes?: number;
|
|
9
|
+
maxPendingOperations?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ITplinkNativeSnapshot {
|
|
12
|
+
readonly homeId: string;
|
|
13
|
+
readonly deviceId: string;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly model: string;
|
|
16
|
+
readonly macAddress: string;
|
|
17
|
+
readonly softwareVersion: string;
|
|
18
|
+
readonly hardwareVersion: string;
|
|
19
|
+
readonly power: boolean;
|
|
20
|
+
readonly observedAt: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ITplinkNativeWriteResult {
|
|
23
|
+
readonly outcome: 'accepted' | 'not-sent' | 'rejected' | 'indeterminate';
|
|
24
|
+
readonly physicalStateConfirmed: false;
|
|
25
|
+
readonly deviceId: string;
|
|
26
|
+
readonly requestedPowerState?: boolean;
|
|
27
|
+
readonly errorCode?: string;
|
|
28
|
+
}
|
|
29
|
+
export type TTplinkNativeEvent = {
|
|
30
|
+
type: 'state';
|
|
31
|
+
snapshot: ITplinkNativeSnapshot;
|
|
32
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ITplinkNativeConfig } from './tplink.native.types.js';
|
|
2
|
+
export declare const tplinkObject: (valueArg: unknown, nameArg: string) => Record<string, unknown>;
|
|
3
|
+
export declare const tplinkKeys: (valueArg: Record<string, unknown>, allowedArg: readonly string[]) => void;
|
|
4
|
+
export declare const normalizeTplinkNativeConfig: (valueArg: ITplinkNativeConfig) => Readonly<ITplinkNativeConfig>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
export const tplinkObject = (valueArg, nameArg) => {
|
|
3
|
+
if (!valueArg || typeof valueArg !== 'object' || Array.isArray(valueArg) || Object.getPrototypeOf(valueArg) !== Object.prototype) {
|
|
4
|
+
throw new TypeError(`${nameArg} must be a plain object.`);
|
|
5
|
+
}
|
|
6
|
+
const result = {};
|
|
7
|
+
for (const key of Reflect.ownKeys(valueArg)) {
|
|
8
|
+
const descriptor = Object.getOwnPropertyDescriptor(valueArg, key);
|
|
9
|
+
if (typeof key !== 'string' || !descriptor || !('value' in descriptor) || !descriptor.enumerable) {
|
|
10
|
+
throw new TypeError(`${nameArg} accepts only enumerable own data fields.`);
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(result, key, { value: descriptor.value, enumerable: true });
|
|
13
|
+
}
|
|
14
|
+
return result;
|
|
15
|
+
};
|
|
16
|
+
export const tplinkKeys = (valueArg, allowedArg) => {
|
|
17
|
+
if (Object.keys(valueArg).some((keyArg) => !allowedArg.includes(keyArg))) {
|
|
18
|
+
throw new TypeError('TP-Link arguments contain unsupported fields.');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const boundedInteger = (valueArg, nameArg, minimumArg, maximumArg) => {
|
|
22
|
+
if (typeof valueArg !== 'number' || !Number.isSafeInteger(valueArg) || valueArg < minimumArg || valueArg > maximumArg) {
|
|
23
|
+
throw new TypeError(`${nameArg} must be an integer from ${minimumArg} through ${maximumArg}.`);
|
|
24
|
+
}
|
|
25
|
+
return valueArg;
|
|
26
|
+
};
|
|
27
|
+
export const normalizeTplinkNativeConfig = (valueArg) => {
|
|
28
|
+
const value = tplinkObject(valueArg, 'TP-Link config');
|
|
29
|
+
tplinkKeys(value, ['homeId', 'transport', 'host', 'expectedDeviceId', 'port', 'timeoutMs', 'maxResponseBytes', 'maxPendingOperations']);
|
|
30
|
+
if (typeof value.homeId !== 'string' || value.homeId.length === 0 || value.homeId.length > 256 || /[\p{Cc}\p{Cs}]/u.test(value.homeId)) {
|
|
31
|
+
throw new TypeError('TP-Link homeId must be a nonempty bounded string without control characters.');
|
|
32
|
+
}
|
|
33
|
+
if (value.transport !== 'legacy-kasa')
|
|
34
|
+
throw new TypeError('TP-Link supports only the explicit legacy-kasa transport.');
|
|
35
|
+
if (typeof value.host !== 'string' || !plugins.net.isIP(value.host))
|
|
36
|
+
throw new TypeError('TP-Link host must be an explicit IP address.');
|
|
37
|
+
if (typeof value.expectedDeviceId !== 'string' || !/^[A-Za-z0-9_-]{1,128}$/.test(value.expectedDeviceId)) {
|
|
38
|
+
throw new TypeError('TP-Link expectedDeviceId must be an explicit legacy device identity.');
|
|
39
|
+
}
|
|
40
|
+
return Object.freeze({
|
|
41
|
+
homeId: value.homeId, transport: value.transport, host: value.host, expectedDeviceId: value.expectedDeviceId,
|
|
42
|
+
port: boundedInteger(value.port === undefined ? 9999 : value.port, 'port', 1, 65535),
|
|
43
|
+
timeoutMs: boundedInteger(value.timeoutMs === undefined ? 5000 : value.timeoutMs, 'timeoutMs', 1, 30000),
|
|
44
|
+
maxResponseBytes: boundedInteger(value.maxResponseBytes === undefined ? 65536 : value.maxResponseBytes, 'maxResponseBytes', 128, 1048576),
|
|
45
|
+
maxPendingOperations: boundedInteger(value.maxPendingOperations === undefined ? 16 : value.maxPendingOperations, 'maxPendingOperations', 1, 128),
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHBsaW5rLnZhbGlkYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9pbnRlZ3JhdGlvbnMvdHBsaW5rL3RwbGluay52YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFHNUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBaUIsRUFBRSxPQUFlLEVBQTJCLEVBQUU7SUFDMUYsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqSSxNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsT0FBTywwQkFBMEIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO0lBQzNDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqRyxNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsT0FBTywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBaUMsRUFBRSxVQUE2QixFQUFRLEVBQUU7SUFDbkcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxNQUFNLElBQUksU0FBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBaUIsRUFBRSxPQUFlLEVBQUUsVUFBa0IsRUFBRSxVQUFrQixFQUFVLEVBQUU7SUFDNUcsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsR0FBRyxVQUFVLElBQUksUUFBUSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3RILE1BQU0sSUFBSSxTQUFTLENBQUMsR0FBRyxPQUFPLDRCQUE0QixVQUFVLFlBQVksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxRQUE2QixFQUFpQyxFQUFFO0lBQzFHLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDeEksSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3ZJLE1BQU0sSUFBSSxTQUFTLENBQUMsOEVBQThFLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLGFBQWE7UUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDeEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUN6SSxJQUFJLE9BQU8sS0FBSyxDQUFDLGdCQUFnQixLQUFLLFFBQVEsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3pHLE1BQU0sSUFBSSxTQUFTLENBQUMsc0VBQXNFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7UUFDNUcsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ3BGLFNBQVMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUN4RyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQztRQUN6SSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLG9CQUFvQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQztLQUNqSixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMifQ==
|
|
@@ -100,4 +100,4 @@ export class TradfriClient {
|
|
|
100
100
|
return 'IKEA Tradfri live writes require CoAP over DTLS, which is not implemented in this dependency-free port. Supply snapshot data or a commandExecutor to handle mapped commands.';
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGZyaS5jbGFzc2VzLmNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy90cmFkZnJpL3RyYWRmcmkuY2xhc3Nlcy5jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJaEUsTUFBTSxPQUFPLGFBQWE7SUFJSyxNQUFNO0lBSGxCLE1BQU0sR0FBb0IsRUFBRSxDQUFDO0lBQzdCLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztJQUVqRSxZQUE2QixNQUFzQjtzQkFBdEIsTUFBTTtJQUFtQixDQUFDO0lBRWhELEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksV0FBVyxFQUFFLElBQUk7WUFDM0QsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksV0FBVyxFQUFFLElBQUksSUFBSSwwQkFBMEI7WUFDekYsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLElBQUksS0FBSztZQUNyQyxPQUFPO1lBQ1AsT0FBTyxFQUFFO2dCQUNQLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUs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
|
|
@@ -5,7 +5,7 @@ import type { ITradfriConfig } from './tradfri.types.js';
|
|
|
5
5
|
export declare class TradfriIntegration extends BaseIntegration<ITradfriConfig> {
|
|
6
6
|
readonly domain = "tradfri";
|
|
7
7
|
readonly displayName = "IKEA TR\u00C5DFRI";
|
|
8
|
-
readonly status:
|
|
8
|
+
readonly status: 'control-runtime';
|
|
9
9
|
readonly discoveryDescriptor: import("../../index.js").DiscoveryDescriptor;
|
|
10
10
|
readonly configFlow: TradfriConfigFlow;
|
|
11
11
|
readonly metadata: {
|
|
@@ -70,4 +70,4 @@ class TradfriRuntime {
|
|
|
70
70
|
await this.client.destroy();
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGZyaS5jbGFzc2VzLmludGVncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaW50ZWdyYXRpb25zL3RyYWRmcmkvdHJhZGZyaS5jbGFzc2VzLmludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3BELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUErQjtJQUNyRCxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ25CLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztJQUNsQyxNQUFNLEdBQUcsaUJBQTBCLENBQUM7SUFDcEMsbUJBQW1CLEdBQUcsZ0NBQWdDLEVBQUUsQ0FBQztJQUN6RCxVQUFVLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQ3JDLFFBQVEsR0FBRztRQUN6QixNQUFNLEVBQUUscUJBQXFCO1FBQzdCLFlBQVksRUFBRSxrQ0FBa0M7UUFDaEQsY0FBYyxFQUFFLFNBQVM7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsUUFBUSxFQUFFLGVBQWU7UUFDekIsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7UUFDekMsWUFBWSxFQUFFLEVBQWM7UUFDNUIsaUJBQWlCLEVBQUUsRUFBYztRQUNqQyxVQUFVLEVBQUUsRUFBYztRQUMxQixhQUFhLEVBQUUsb0RBQW9EO1FBQ25FLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2hDLFVBQVUsRUFBRSxJQUFJO0tBQ2pC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
|
|
@@ -3,17 +3,16 @@ import type { IDiscoveryCandidate, IDiscoveryMatch, IDiscoveryMatcher, IDiscover
|
|
|
3
3
|
import type { ITradfriManualEntry, ITradfriMdnsRecord } from './tradfri.types.js';
|
|
4
4
|
export declare class TradfriMdnsMatcher implements IDiscoveryMatcher<ITradfriMdnsRecord> {
|
|
5
5
|
id: string;
|
|
6
|
-
source:
|
|
6
|
+
source: 'mdns';
|
|
7
7
|
description: string;
|
|
8
8
|
matches(recordArg: ITradfriMdnsRecord): Promise<IDiscoveryMatch>;
|
|
9
9
|
private txt;
|
|
10
10
|
private normalizeType;
|
|
11
|
-
private containsTradfri;
|
|
12
11
|
private cleanName;
|
|
13
12
|
}
|
|
14
13
|
export declare class TradfriManualMatcher implements IDiscoveryMatcher<ITradfriManualEntry> {
|
|
15
14
|
id: string;
|
|
16
|
-
source:
|
|
15
|
+
source: 'manual';
|
|
17
16
|
description: string;
|
|
18
17
|
matches(inputArg: ITradfriManualEntry): Promise<IDiscoveryMatch>;
|
|
19
18
|
}
|