From 74a8472eed41fe8ff7277dccf0857defa05e5f8a Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 4 Oct 2022 15:24:55 +0200 Subject: [PATCH] Collect all brands (#79579) --- homeassistant/brands/amazon.json | 5 + homeassistant/brands/apple.json | 7 +- homeassistant/brands/aruba.json | 5 + homeassistant/brands/asterisk.json | 5 + homeassistant/brands/august.json | 5 + homeassistant/brands/cisco.json | 5 + homeassistant/brands/clicksend.json | 5 + homeassistant/brands/devolo.json | 5 + homeassistant/brands/dlna.json | 5 + homeassistant/brands/elgato.json | 5 + homeassistant/brands/emoncms.json | 5 + homeassistant/brands/epson.json | 5 + homeassistant/brands/eq3.json | 5 + homeassistant/brands/ffmpeg.json | 5 + homeassistant/brands/geonet.json | 5 + homeassistant/brands/globalcache.json | 5 + homeassistant/brands/hikvision.json | 5 + homeassistant/brands/homematic.json | 5 + homeassistant/brands/honeywell.json | 5 + homeassistant/brands/ibm.json | 5 + homeassistant/brands/lg.json | 5 + homeassistant/brands/logitech.json | 5 + homeassistant/brands/lutron.json | 5 + homeassistant/brands/melnor.json | 5 + homeassistant/brands/microsoft.json | 16 + homeassistant/brands/mqtt.json | 12 + homeassistant/brands/netgear.json | 5 + homeassistant/brands/openwrt.json | 5 + homeassistant/brands/panasonic.json | 5 + homeassistant/brands/philips.json | 5 + homeassistant/brands/qnap.json | 5 + homeassistant/brands/raspberry.json | 5 + homeassistant/brands/russound.json | 5 + homeassistant/brands/samsung.json | 5 + homeassistant/brands/solaredge.json | 5 + homeassistant/brands/sony.json | 5 + homeassistant/brands/synology.json | 5 + homeassistant/brands/telegram.json | 5 + homeassistant/brands/telldus.json | 5 + homeassistant/brands/tesla.json | 5 + homeassistant/brands/trafikverket.json | 9 + homeassistant/brands/twilio.json | 5 + homeassistant/brands/vlc.json | 5 + homeassistant/brands/xiaomi.json | 11 + homeassistant/brands/yale.json | 5 + homeassistant/brands/yandex.json | 5 + homeassistant/brands/yeelight.json | 5 + homeassistant/generated/integrations.json | 1366 ++++++++++++--------- 48 files changed, 1065 insertions(+), 566 deletions(-) create mode 100644 homeassistant/brands/amazon.json create mode 100644 homeassistant/brands/aruba.json create mode 100644 homeassistant/brands/asterisk.json create mode 100644 homeassistant/brands/august.json create mode 100644 homeassistant/brands/cisco.json create mode 100644 homeassistant/brands/clicksend.json create mode 100644 homeassistant/brands/devolo.json create mode 100644 homeassistant/brands/dlna.json create mode 100644 homeassistant/brands/elgato.json create mode 100644 homeassistant/brands/emoncms.json create mode 100644 homeassistant/brands/epson.json create mode 100644 homeassistant/brands/eq3.json create mode 100644 homeassistant/brands/ffmpeg.json create mode 100644 homeassistant/brands/geonet.json create mode 100644 homeassistant/brands/globalcache.json create mode 100644 homeassistant/brands/hikvision.json create mode 100644 homeassistant/brands/homematic.json create mode 100644 homeassistant/brands/honeywell.json create mode 100644 homeassistant/brands/ibm.json create mode 100644 homeassistant/brands/lg.json create mode 100644 homeassistant/brands/logitech.json create mode 100644 homeassistant/brands/lutron.json create mode 100644 homeassistant/brands/melnor.json create mode 100644 homeassistant/brands/microsoft.json create mode 100644 homeassistant/brands/mqtt.json create mode 100644 homeassistant/brands/netgear.json create mode 100644 homeassistant/brands/openwrt.json create mode 100644 homeassistant/brands/panasonic.json create mode 100644 homeassistant/brands/philips.json create mode 100644 homeassistant/brands/qnap.json create mode 100644 homeassistant/brands/raspberry.json create mode 100644 homeassistant/brands/russound.json create mode 100644 homeassistant/brands/samsung.json create mode 100644 homeassistant/brands/solaredge.json create mode 100644 homeassistant/brands/sony.json create mode 100644 homeassistant/brands/synology.json create mode 100644 homeassistant/brands/telegram.json create mode 100644 homeassistant/brands/telldus.json create mode 100644 homeassistant/brands/tesla.json create mode 100644 homeassistant/brands/trafikverket.json create mode 100644 homeassistant/brands/twilio.json create mode 100644 homeassistant/brands/vlc.json create mode 100644 homeassistant/brands/xiaomi.json create mode 100644 homeassistant/brands/yale.json create mode 100644 homeassistant/brands/yandex.json create mode 100644 homeassistant/brands/yeelight.json diff --git a/homeassistant/brands/amazon.json b/homeassistant/brands/amazon.json new file mode 100644 index 00000000000..e31bb410457 --- /dev/null +++ b/homeassistant/brands/amazon.json @@ -0,0 +1,5 @@ +{ + "domain": "amazon", + "name": "Amazon", + "integrations": ["alexa", "amazon_polly", "aws", "route53"] +} diff --git a/homeassistant/brands/apple.json b/homeassistant/brands/apple.json index 1a782b50900..00f646e435e 100644 --- a/homeassistant/brands/apple.json +++ b/homeassistant/brands/apple.json @@ -2,10 +2,11 @@ "domain": "apple", "name": "Apple", "integrations": [ - "icloud", - "ibeacon", "apple_tv", + "homekit_controller", "homekit", - "homekit_controller" + "ibeacon", + "icloud", + "itunes" ] } diff --git a/homeassistant/brands/aruba.json b/homeassistant/brands/aruba.json new file mode 100644 index 00000000000..512192813e4 --- /dev/null +++ b/homeassistant/brands/aruba.json @@ -0,0 +1,5 @@ +{ + "domain": "aruba", + "name": "Aruba", + "integrations": ["aruba", "cppm_tracker"] +} diff --git a/homeassistant/brands/asterisk.json b/homeassistant/brands/asterisk.json new file mode 100644 index 00000000000..1df3e660afe --- /dev/null +++ b/homeassistant/brands/asterisk.json @@ -0,0 +1,5 @@ +{ + "domain": "asterisk", + "name": "Asterisk", + "integrations": ["asterisk_cdr", "asterisk_mbox"] +} diff --git a/homeassistant/brands/august.json b/homeassistant/brands/august.json new file mode 100644 index 00000000000..ce2f18dc759 --- /dev/null +++ b/homeassistant/brands/august.json @@ -0,0 +1,5 @@ +{ + "domain": "august", + "name": "August Home", + "integrations": ["august", "yalexs_ble"] +} diff --git a/homeassistant/brands/cisco.json b/homeassistant/brands/cisco.json new file mode 100644 index 00000000000..a1885b1af5e --- /dev/null +++ b/homeassistant/brands/cisco.json @@ -0,0 +1,5 @@ +{ + "domain": "cisco", + "name": "Cisco", + "integrations": ["cisco_ios", "cisco_mobility_express", "cisco_webex_teams"] +} diff --git a/homeassistant/brands/clicksend.json b/homeassistant/brands/clicksend.json new file mode 100644 index 00000000000..07de60a99e3 --- /dev/null +++ b/homeassistant/brands/clicksend.json @@ -0,0 +1,5 @@ +{ + "domain": "clicksend", + "name": "ClickSend", + "integrations": ["clicksend", "clicksend_tts"] +} diff --git a/homeassistant/brands/devolo.json b/homeassistant/brands/devolo.json new file mode 100644 index 00000000000..86dc7a3b100 --- /dev/null +++ b/homeassistant/brands/devolo.json @@ -0,0 +1,5 @@ +{ + "domain": "devolo", + "name": "devolo", + "integrations": ["devolo_home_control", "devolo_home_network"] +} diff --git a/homeassistant/brands/dlna.json b/homeassistant/brands/dlna.json new file mode 100644 index 00000000000..f6a648d6895 --- /dev/null +++ b/homeassistant/brands/dlna.json @@ -0,0 +1,5 @@ +{ + "domain": "dlna", + "name": "DLNA", + "integrations": ["dlna_dmr", "dlna_dms"] +} diff --git a/homeassistant/brands/elgato.json b/homeassistant/brands/elgato.json new file mode 100644 index 00000000000..3ca7e07c1bb --- /dev/null +++ b/homeassistant/brands/elgato.json @@ -0,0 +1,5 @@ +{ + "domain": "elgato", + "name": "Elgato", + "integrations": ["avea", "elgato"] +} diff --git a/homeassistant/brands/emoncms.json b/homeassistant/brands/emoncms.json new file mode 100644 index 00000000000..866c7ff18f3 --- /dev/null +++ b/homeassistant/brands/emoncms.json @@ -0,0 +1,5 @@ +{ + "domain": "emoncms", + "name": "emoncms", + "integrations": ["emoncms", "emoncms_history"] +} diff --git a/homeassistant/brands/epson.json b/homeassistant/brands/epson.json new file mode 100644 index 00000000000..80d5db942a2 --- /dev/null +++ b/homeassistant/brands/epson.json @@ -0,0 +1,5 @@ +{ + "domain": "epson", + "name": "Epson", + "integrations": ["epson", "epsonworkforce"] +} diff --git a/homeassistant/brands/eq3.json b/homeassistant/brands/eq3.json new file mode 100644 index 00000000000..4052afac277 --- /dev/null +++ b/homeassistant/brands/eq3.json @@ -0,0 +1,5 @@ +{ + "domain": "eq3", + "name": "eQ-3", + "integrations": ["eq3btsmart", "maxcube"] +} diff --git a/homeassistant/brands/ffmpeg.json b/homeassistant/brands/ffmpeg.json new file mode 100644 index 00000000000..2ec1de4ec03 --- /dev/null +++ b/homeassistant/brands/ffmpeg.json @@ -0,0 +1,5 @@ +{ + "domain": "ffmpeg", + "name": "FFmpeg", + "integrations": ["ffmpeg", "ffmpeg_motion", "ffmpeg_noise"] +} diff --git a/homeassistant/brands/geonet.json b/homeassistant/brands/geonet.json new file mode 100644 index 00000000000..4f09d607f80 --- /dev/null +++ b/homeassistant/brands/geonet.json @@ -0,0 +1,5 @@ +{ + "domain": "geonet", + "name": "GeoNet", + "integrations": ["geonetnz_quakes", "geonetnz_volcano"] +} diff --git a/homeassistant/brands/globalcache.json b/homeassistant/brands/globalcache.json new file mode 100644 index 00000000000..0cba9d65d0d --- /dev/null +++ b/homeassistant/brands/globalcache.json @@ -0,0 +1,5 @@ +{ + "domain": "globalcache", + "name": "Global Caché", + "integrations": ["gc100", "itach"] +} diff --git a/homeassistant/brands/hikvision.json b/homeassistant/brands/hikvision.json new file mode 100644 index 00000000000..b09770bccc5 --- /dev/null +++ b/homeassistant/brands/hikvision.json @@ -0,0 +1,5 @@ +{ + "domain": "hikvision", + "name": "Hikvision", + "integrations": ["hikvision", "hikvisioncam"] +} diff --git a/homeassistant/brands/homematic.json b/homeassistant/brands/homematic.json new file mode 100644 index 00000000000..e7f29c19d67 --- /dev/null +++ b/homeassistant/brands/homematic.json @@ -0,0 +1,5 @@ +{ + "domain": "homematic", + "name": "Homematic", + "integrations": ["homematic", "homematicip_cloud"] +} diff --git a/homeassistant/brands/honeywell.json b/homeassistant/brands/honeywell.json new file mode 100644 index 00000000000..37cd6d8ce73 --- /dev/null +++ b/homeassistant/brands/honeywell.json @@ -0,0 +1,5 @@ +{ + "domain": "honeywell", + "name": "Honeywell", + "integrations": ["lyric", "evohome", "honeywell"] +} diff --git a/homeassistant/brands/ibm.json b/homeassistant/brands/ibm.json new file mode 100644 index 00000000000..42367e899e7 --- /dev/null +++ b/homeassistant/brands/ibm.json @@ -0,0 +1,5 @@ +{ + "domain": "ibm", + "name": "IBM", + "integrations": ["watson_iot", "watson_tts"] +} diff --git a/homeassistant/brands/lg.json b/homeassistant/brands/lg.json new file mode 100644 index 00000000000..350db80b5f3 --- /dev/null +++ b/homeassistant/brands/lg.json @@ -0,0 +1,5 @@ +{ + "domain": "lg", + "name": "LG", + "integrations": ["lg_netcast", "lg_soundbar", "webostv"] +} diff --git a/homeassistant/brands/logitech.json b/homeassistant/brands/logitech.json new file mode 100644 index 00000000000..d4a0dd1bb87 --- /dev/null +++ b/homeassistant/brands/logitech.json @@ -0,0 +1,5 @@ +{ + "domain": "logitech", + "name": "Logitech", + "integrations": ["harmony", "ue_smart_radio", "squeezebox"] +} diff --git a/homeassistant/brands/lutron.json b/homeassistant/brands/lutron.json new file mode 100644 index 00000000000..b891065d819 --- /dev/null +++ b/homeassistant/brands/lutron.json @@ -0,0 +1,5 @@ +{ + "domain": "lutron", + "name": "Lutron", + "integrations": ["lutron", "lutron_caseta", "homeworks"] +} diff --git a/homeassistant/brands/melnor.json b/homeassistant/brands/melnor.json new file mode 100644 index 00000000000..c04db5c4e7c --- /dev/null +++ b/homeassistant/brands/melnor.json @@ -0,0 +1,5 @@ +{ + "domain": "melnor", + "name": "Melnor", + "integrations": ["melnor", "raincloud"] +} diff --git a/homeassistant/brands/microsoft.json b/homeassistant/brands/microsoft.json new file mode 100644 index 00000000000..d28932082a6 --- /dev/null +++ b/homeassistant/brands/microsoft.json @@ -0,0 +1,16 @@ +{ + "domain": "microsoft", + "name": "Microsoft", + "integrations": [ + "azure_devops", + "azure_event_hub", + "azure_service_bus", + "microsoft_face_detect", + "microsoft_face_identify", + "microsoft_face", + "microsoft", + "msteams", + "xbox", + "xbox_live" + ] +} diff --git a/homeassistant/brands/mqtt.json b/homeassistant/brands/mqtt.json new file mode 100644 index 00000000000..c1d58521a7c --- /dev/null +++ b/homeassistant/brands/mqtt.json @@ -0,0 +1,12 @@ +{ + "domain": "mqtt", + "name": "MQTT", + "integrations": [ + "manual_mqtt", + "mqtt", + "mqtt_eventstream", + "mqtt_json", + "mqtt_room", + "mqtt_statestream" + ] +} diff --git a/homeassistant/brands/netgear.json b/homeassistant/brands/netgear.json new file mode 100644 index 00000000000..9a6b6e51da0 --- /dev/null +++ b/homeassistant/brands/netgear.json @@ -0,0 +1,5 @@ +{ + "domain": "netgear", + "name": "NETGEAR", + "integrations": ["netgear", "netgear_lte"] +} diff --git a/homeassistant/brands/openwrt.json b/homeassistant/brands/openwrt.json new file mode 100644 index 00000000000..ff9cd4ca250 --- /dev/null +++ b/homeassistant/brands/openwrt.json @@ -0,0 +1,5 @@ +{ + "domain": "openwrt", + "name": "OpenWrt", + "integrations": ["luci", "ubus"] +} diff --git a/homeassistant/brands/panasonic.json b/homeassistant/brands/panasonic.json new file mode 100644 index 00000000000..2d8f29a3968 --- /dev/null +++ b/homeassistant/brands/panasonic.json @@ -0,0 +1,5 @@ +{ + "domain": "panasonic", + "name": "Panasonic", + "integrations": ["panasonic_bluray", "panasonic_viera"] +} diff --git a/homeassistant/brands/philips.json b/homeassistant/brands/philips.json new file mode 100644 index 00000000000..bfd290eb945 --- /dev/null +++ b/homeassistant/brands/philips.json @@ -0,0 +1,5 @@ +{ + "domain": "philips", + "name": "Philips", + "integrations": ["dynalite", "hue", "philips_js"] +} diff --git a/homeassistant/brands/qnap.json b/homeassistant/brands/qnap.json new file mode 100644 index 00000000000..6464a0ec877 --- /dev/null +++ b/homeassistant/brands/qnap.json @@ -0,0 +1,5 @@ +{ + "domain": "qnap", + "name": "QNAP", + "integrations": ["qnap", "qnap_qsw"] +} diff --git a/homeassistant/brands/raspberry.json b/homeassistant/brands/raspberry.json new file mode 100644 index 00000000000..a0ec6f12699 --- /dev/null +++ b/homeassistant/brands/raspberry.json @@ -0,0 +1,5 @@ +{ + "domain": "raspberry_pi", + "name": "Raspberry Pi", + "integrations": ["rpi_camera", "rpi_power", "remote_rpi_gpio"] +} diff --git a/homeassistant/brands/russound.json b/homeassistant/brands/russound.json new file mode 100644 index 00000000000..70b3de109ca --- /dev/null +++ b/homeassistant/brands/russound.json @@ -0,0 +1,5 @@ +{ + "domain": "russound", + "name": "Russound", + "integrations": ["russound_rio", "russound_rnet"] +} diff --git a/homeassistant/brands/samsung.json b/homeassistant/brands/samsung.json new file mode 100644 index 00000000000..1d5f2522e9e --- /dev/null +++ b/homeassistant/brands/samsung.json @@ -0,0 +1,5 @@ +{ + "domain": "samsung", + "name": "Samsung", + "integrations": ["familyhub", "samsungtv", "syncthru"] +} diff --git a/homeassistant/brands/solaredge.json b/homeassistant/brands/solaredge.json new file mode 100644 index 00000000000..90190f9c786 --- /dev/null +++ b/homeassistant/brands/solaredge.json @@ -0,0 +1,5 @@ +{ + "domain": "solaredge", + "name": "SolarEdge", + "integrations": ["solaredge", "solaredge_local"] +} diff --git a/homeassistant/brands/sony.json b/homeassistant/brands/sony.json new file mode 100644 index 00000000000..e35d5f4723c --- /dev/null +++ b/homeassistant/brands/sony.json @@ -0,0 +1,5 @@ +{ + "domain": "sony", + "name": "Sony", + "integrations": ["braviatv", "ps4", "sony_projector", "songpal"] +} diff --git a/homeassistant/brands/synology.json b/homeassistant/brands/synology.json new file mode 100644 index 00000000000..0387fabffaf --- /dev/null +++ b/homeassistant/brands/synology.json @@ -0,0 +1,5 @@ +{ + "domain": "synology", + "name": "Synology", + "integrations": ["synology_chat", "synology_dsm", "synology_srm"] +} diff --git a/homeassistant/brands/telegram.json b/homeassistant/brands/telegram.json new file mode 100644 index 00000000000..8cb5e202190 --- /dev/null +++ b/homeassistant/brands/telegram.json @@ -0,0 +1,5 @@ +{ + "domain": "telegram", + "name": "Telegram", + "integrations": ["telegram", "telegram_bot"] +} diff --git a/homeassistant/brands/telldus.json b/homeassistant/brands/telldus.json new file mode 100644 index 00000000000..c280832f68e --- /dev/null +++ b/homeassistant/brands/telldus.json @@ -0,0 +1,5 @@ +{ + "domain": "telldus", + "name": "Telldus", + "integrations": ["tellduslive", "tellstick"] +} diff --git a/homeassistant/brands/tesla.json b/homeassistant/brands/tesla.json new file mode 100644 index 00000000000..aeec7982579 --- /dev/null +++ b/homeassistant/brands/tesla.json @@ -0,0 +1,5 @@ +{ + "domain": "tesla", + "name": "Tesla", + "integrations": ["powerwall", "tesla_wall_connector"] +} diff --git a/homeassistant/brands/trafikverket.json b/homeassistant/brands/trafikverket.json new file mode 100644 index 00000000000..df444cbeb60 --- /dev/null +++ b/homeassistant/brands/trafikverket.json @@ -0,0 +1,9 @@ +{ + "domain": "trafikverket", + "name": "Trafikverket", + "integrations": [ + "trafikverket_ferry", + "trafikverket_train", + "trafikverket_weatherstation" + ] +} diff --git a/homeassistant/brands/twilio.json b/homeassistant/brands/twilio.json new file mode 100644 index 00000000000..7ae9162059e --- /dev/null +++ b/homeassistant/brands/twilio.json @@ -0,0 +1,5 @@ +{ + "domain": "twilio", + "name": "Twilio", + "integrations": ["twilio", "twilio_call", "twilio_sms"] +} diff --git a/homeassistant/brands/vlc.json b/homeassistant/brands/vlc.json new file mode 100644 index 00000000000..66c004470d6 --- /dev/null +++ b/homeassistant/brands/vlc.json @@ -0,0 +1,5 @@ +{ + "domain": "vlc", + "name": "VideoLAN", + "integrations": ["vlc", "vlc_telnet"] +} diff --git a/homeassistant/brands/xiaomi.json b/homeassistant/brands/xiaomi.json new file mode 100644 index 00000000000..ebdc99d8c38 --- /dev/null +++ b/homeassistant/brands/xiaomi.json @@ -0,0 +1,11 @@ +{ + "domain": "xiaomi", + "name": "Xiaomi", + "integrations": [ + "xiaomi_aqara", + "xiaomi_ble", + "xiaomi_miio", + "xiaomi_tv", + "xiaomi" + ] +} diff --git a/homeassistant/brands/yale.json b/homeassistant/brands/yale.json new file mode 100644 index 00000000000..87c119fdd40 --- /dev/null +++ b/homeassistant/brands/yale.json @@ -0,0 +1,5 @@ +{ + "domain": "yale", + "name": "Yale", + "integrations": ["august", "yale_smart_alarm", "yalexs_ble"] +} diff --git a/homeassistant/brands/yandex.json b/homeassistant/brands/yandex.json new file mode 100644 index 00000000000..c4a55be8b5e --- /dev/null +++ b/homeassistant/brands/yandex.json @@ -0,0 +1,5 @@ +{ + "domain": "yandex", + "name": "Yandex", + "integrations": ["yandex_transport", "yandextts"] +} diff --git a/homeassistant/brands/yeelight.json b/homeassistant/brands/yeelight.json new file mode 100644 index 00000000000..1ce04a99214 --- /dev/null +++ b/homeassistant/brands/yeelight.json @@ -0,0 +1,5 @@ +{ + "domain": "yeelight", + "name": "Yeelight", + "integrations": ["yeelight", "yeelightsunflower"] +} diff --git a/homeassistant/generated/integrations.json b/homeassistant/generated/integrations.json index eb5c1c8fefb..fe58a793c54 100644 --- a/homeassistant/generated/integrations.json +++ b/homeassistant/generated/integrations.json @@ -119,11 +119,6 @@ "iot_class": "local_push", "name": "Alert" }, - "alexa": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Amazon Alexa" - }, "almond": { "config_flow": true, "iot_class": "local_polling", @@ -134,10 +129,30 @@ "iot_class": "cloud_polling", "name": "Alpha Vantage" }, - "amazon_polly": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Amazon Polly" + "amazon": { + "name": "Amazon", + "integrations": { + "alexa": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Amazon Alexa" + }, + "amazon_polly": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Amazon Polly" + }, + "aws": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Amazon Web Services (AWS)" + }, + "route53": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "AWS Route53" + } + } }, "amberelectric": { "config_flow": true, @@ -202,29 +217,34 @@ "apple": { "name": "Apple", "integrations": { - "icloud": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Apple iCloud" - }, - "ibeacon": { - "config_flow": true, - "iot_class": "local_push", - "name": "iBeacon Tracker" - }, "apple_tv": { "config_flow": true, "iot_class": "local_push", "name": "Apple TV" }, + "homekit_controller": { + "config_flow": true, + "iot_class": "local_push" + }, "homekit": { "config_flow": true, "iot_class": "local_push", "name": "HomeKit" }, - "homekit_controller": { + "ibeacon": { "config_flow": true, - "iot_class": "local_push" + "iot_class": "local_push", + "name": "iBeacon Tracker" + }, + "icloud": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Apple iCloud" + }, + "itunes": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Apple iTunes" } } }, @@ -268,9 +288,19 @@ "name": "Arris TG2492LG" }, "aruba": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Aruba" + "name": "Aruba", + "integrations": { + "aruba": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Aruba" + }, + "cppm_tracker": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Aruba ClearPass" + } + } }, "arwn": { "config_flow": false, @@ -282,15 +312,20 @@ "iot_class": "cloud_polling", "name": "Aseko Pool Live" }, - "asterisk_cdr": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Asterisk Call Detail Records" - }, - "asterisk_mbox": { - "config_flow": false, - "iot_class": "local_push", - "name": "Asterisk Voicemail" + "asterisk": { + "name": "Asterisk", + "integrations": { + "asterisk_cdr": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Asterisk Call Detail Records" + }, + "asterisk_mbox": { + "config_flow": false, + "iot_class": "local_push", + "name": "Asterisk Voicemail" + } + } }, "asuswrt": { "config_flow": true, @@ -313,9 +348,19 @@ "name": "Atome Linky" }, "august": { - "config_flow": true, - "iot_class": "cloud_push", - "name": "August" + "name": "August Home", + "integrations": { + "august": { + "config_flow": true, + "iot_class": "cloud_push", + "name": "August" + }, + "yalexs_ble": { + "config_flow": true, + "iot_class": "local_push", + "name": "Yale Access Bluetooth" + } + } }, "aurora": { "config_flow": true, @@ -340,11 +385,6 @@ "config_flow": false, "iot_class": null }, - "avea": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Elgato Avea" - }, "avion": { "config_flow": false, "iot_class": "assumed_state", @@ -355,31 +395,11 @@ "iot_class": "local_polling", "name": "Awair" }, - "aws": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Amazon Web Services (AWS)" - }, "axis": { "config_flow": true, "iot_class": "local_push", "name": "Axis" }, - "azure_devops": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Azure DevOps" - }, - "azure_event_hub": { - "config_flow": true, - "iot_class": "cloud_push", - "name": "Azure Event Hub" - }, - "azure_service_bus": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Azure Service Bus" - }, "backup": { "config_flow": false, "iot_class": "calculated", @@ -504,11 +524,6 @@ "iot_class": "local_push", "name": "Bosch SHC" }, - "braviatv": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Sony Bravia TV" - }, "broadlink": { "config_flow": true, "iot_class": "local_polling", @@ -595,20 +610,25 @@ "iot_class": "cloud_push", "name": "Unify Circuit" }, - "cisco_ios": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Cisco IOS" - }, - "cisco_mobility_express": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Cisco Mobility Express" - }, - "cisco_webex_teams": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Cisco Webex Teams" + "cisco": { + "name": "Cisco", + "integrations": { + "cisco_ios": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Cisco IOS" + }, + "cisco_mobility_express": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Cisco Mobility Express" + }, + "cisco_webex_teams": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Cisco Webex Teams" + } + } }, "citybikes": { "config_flow": false, @@ -626,14 +646,19 @@ "name": "Clickatell" }, "clicksend": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "ClickSend SMS" - }, - "clicksend_tts": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "ClickSend TTS" + "name": "ClickSend", + "integrations": { + "clicksend": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "ClickSend SMS" + }, + "clicksend_tts": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "ClickSend TTS" + } + } }, "climate": { "config_flow": false, @@ -726,11 +751,6 @@ "config_flow": false, "iot_class": null }, - "cppm_tracker": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Aruba ClearPass" - }, "cpuspeed": { "config_flow": true, "iot_class": "local_push" @@ -853,15 +873,20 @@ "config_flow": false, "iot_class": null }, - "devolo_home_control": { - "config_flow": true, - "iot_class": "local_push", - "name": "devolo Home Control" - }, - "devolo_home_network": { - "config_flow": true, - "iot_class": "local_polling", - "name": "devolo Home Network" + "devolo": { + "name": "devolo", + "integrations": { + "devolo_home_control": { + "config_flow": true, + "iot_class": "local_push", + "name": "devolo Home Control" + }, + "devolo_home_network": { + "config_flow": true, + "iot_class": "local_polling", + "name": "devolo Home Network" + } + } }, "dexcom": { "config_flow": true, @@ -917,15 +942,20 @@ "iot_class": "local_polling", "name": "D-Link Wi-Fi Smart Plugs" }, - "dlna_dmr": { - "config_flow": true, - "iot_class": "local_push", - "name": "DLNA Digital Media Renderer" - }, - "dlna_dms": { - "config_flow": true, - "iot_class": "local_polling", - "name": "DLNA Digital Media Server" + "dlna": { + "name": "DLNA", + "integrations": { + "dlna_dmr": { + "config_flow": true, + "iot_class": "local_push", + "name": "DLNA Digital Media Renderer" + }, + "dlna_dms": { + "config_flow": true, + "iot_class": "local_polling", + "name": "DLNA Digital Media Server" + } + } }, "dnsip": { "config_flow": true, @@ -997,11 +1027,6 @@ "iot_class": "cloud_polling", "name": "dweet.io" }, - "dynalite": { - "config_flow": true, - "iot_class": "local_push", - "name": "Philips Dynalite" - }, "eafm": { "config_flow": true, "iot_class": "cloud_polling", @@ -1073,9 +1098,19 @@ "name": "Eight Sleep" }, "elgato": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Elgato Light" + "name": "Elgato", + "integrations": { + "avea": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Elgato Avea" + }, + "elgato": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Elgato Light" + } + } }, "eliqonline": { "config_flow": false, @@ -1103,14 +1138,19 @@ "name": "Emby" }, "emoncms": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Emoncms" - }, - "emoncms_history": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Emoncms History" + "name": "emoncms", + "integrations": { + "emoncms": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Emoncms" + }, + "emoncms_history": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Emoncms History" + } + } }, "emonitor": { "config_flow": true, @@ -1171,19 +1211,34 @@ "name": "EPH Controls" }, "epson": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Epson" + "name": "Epson", + "integrations": { + "epson": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Epson" + }, + "epsonworkforce": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Epson Workforce" + } + } }, - "epsonworkforce": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Epson Workforce" - }, - "eq3btsmart": { - "config_flow": false, - "iot_class": "local_polling", - "name": "eQ-3 Bluetooth Smart Thermostats" + "eq3": { + "name": "eQ-3", + "integrations": { + "eq3btsmart": { + "config_flow": false, + "iot_class": "local_polling", + "name": "eQ-3 Bluetooth Smart Thermostats" + }, + "maxcube": { + "config_flow": false, + "iot_class": "local_polling", + "name": "eQ-3 MAX!" + } + } }, "escea": { "config_flow": true, @@ -1215,11 +1270,6 @@ "iot_class": "local_polling", "name": "Evil Genius Labs" }, - "evohome": { - "config_flow": false, - "iot_class": "cloud_polling", - "name": "Honeywell Total Connect Comfort (Europe)" - }, "ezviz": { "config_flow": true, "iot_class": "cloud_polling", @@ -1245,11 +1295,6 @@ "iot_class": "local_polling", "name": "Fail2Ban" }, - "familyhub": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Samsung Family Hub" - }, "fan": { "config_flow": false, "iot_class": null @@ -1265,19 +1310,24 @@ "name": "Feedreader" }, "ffmpeg": { - "config_flow": false, - "iot_class": null, - "name": "FFmpeg" - }, - "ffmpeg_motion": { - "config_flow": false, - "iot_class": "calculated", - "name": "FFmpeg Motion" - }, - "ffmpeg_noise": { - "config_flow": false, - "iot_class": "calculated", - "name": "FFmpeg Noise" + "name": "FFmpeg", + "integrations": { + "ffmpeg": { + "config_flow": false, + "iot_class": null, + "name": "FFmpeg" + }, + "ffmpeg_motion": { + "config_flow": false, + "iot_class": "calculated", + "name": "FFmpeg Motion" + }, + "ffmpeg_noise": { + "config_flow": false, + "iot_class": "calculated", + "name": "FFmpeg Noise" + } + } }, "fibaro": { "config_flow": true, @@ -1507,11 +1557,6 @@ "config_flow": true, "iot_class": "cloud_polling" }, - "gc100": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Global Cach\u00e9 GC-100" - }, "gdacs": { "config_flow": true, "iot_class": "cloud_polling", @@ -1562,15 +1607,20 @@ "iot_class": "cloud_push", "name": "Geofency" }, - "geonetnz_quakes": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "GeoNet NZ Quakes" - }, - "geonetnz_volcano": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "GeoNet NZ Volcano" + "geonet": { + "name": "GeoNet", + "integrations": { + "geonetnz_quakes": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "GeoNet NZ Quakes" + }, + "geonetnz_volcano": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "GeoNet NZ Volcano" + } + } }, "gios": { "config_flow": true, @@ -1597,6 +1647,21 @@ "iot_class": "local_polling", "name": "Glances" }, + "globalcache": { + "name": "Global Cach\u00e9", + "integrations": { + "gc100": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Global Cach\u00e9 GC-100" + }, + "itach": { + "config_flow": false, + "iot_class": "assumed_state", + "name": "Global Cach\u00e9 iTach TCP/IP to IR" + } + } + }, "goalfeed": { "config_flow": false, "iot_class": "cloud_push", @@ -1760,11 +1825,6 @@ "iot_class": "local_polling", "name": "Harman Kardon AVR" }, - "harmony": { - "config_flow": true, - "iot_class": "local_push", - "name": "Logitech Harmony Hub" - }, "hassio": { "config_flow": false, "iot_class": "local_polling", @@ -1796,14 +1856,19 @@ "name": "HERE Travel Time" }, "hikvision": { - "config_flow": false, - "iot_class": "local_push", - "name": "Hikvision" - }, - "hikvisioncam": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Hikvision" + "name": "Hikvision", + "integrations": { + "hikvision": { + "config_flow": false, + "iot_class": "local_push", + "name": "Hikvision" + }, + "hikvisioncam": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Hikvision" + } + } }, "hisense_aehw4a1": { "config_flow": true, @@ -1856,29 +1921,44 @@ "name": "Home Assistant Alerts" }, "homematic": { - "config_flow": false, - "iot_class": "local_push", - "name": "Homematic" - }, - "homematicip_cloud": { - "config_flow": true, - "iot_class": "cloud_push", - "name": "HomematicIP Cloud" + "name": "Homematic", + "integrations": { + "homematic": { + "config_flow": false, + "iot_class": "local_push", + "name": "Homematic" + }, + "homematicip_cloud": { + "config_flow": true, + "iot_class": "cloud_push", + "name": "HomematicIP Cloud" + } + } }, "homewizard": { "config_flow": true, "iot_class": "local_polling", "name": "HomeWizard Energy" }, - "homeworks": { - "config_flow": false, - "iot_class": "local_push", - "name": "Lutron Homeworks" - }, "honeywell": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Honeywell Total Connect Comfort (US)" + "name": "Honeywell", + "integrations": { + "lyric": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Honeywell Lyric" + }, + "evohome": { + "config_flow": false, + "iot_class": "cloud_polling", + "name": "Honeywell Total Connect Comfort (Europe)" + }, + "honeywell": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Honeywell Total Connect Comfort (US)" + } + } }, "horizon": { "config_flow": false, @@ -1905,11 +1985,6 @@ "iot_class": "local_polling", "name": "Huawei LTE" }, - "hue": { - "config_flow": true, - "iot_class": "local_push", - "name": "Philips Hue" - }, "huisbaasje": { "config_flow": true, "iot_class": "cloud_polling", @@ -1954,6 +2029,21 @@ "iot_class": "cloud_polling", "name": "Jandy iAqualink" }, + "ibm": { + "name": "IBM", + "integrations": { + "watson_iot": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "IBM Watson IoT Platform" + }, + "watson_tts": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "IBM Watson TTS" + } + } + }, "idteck_prox": { "config_flow": false, "iot_class": "local_push", @@ -2087,16 +2177,6 @@ "iot_class": "local_push", "name": "Universal Devices ISY994" }, - "itach": { - "config_flow": false, - "iot_class": "assumed_state", - "name": "Global Cach\u00e9 iTach TCP/IP to IR" - }, - "itunes": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Apple iTunes" - }, "izone": { "config_flow": true, "iot_class": "local_polling", @@ -2283,15 +2363,25 @@ "zwave" ] }, - "lg_netcast": { - "config_flow": false, - "iot_class": "local_polling", - "name": "LG Netcast" - }, - "lg_soundbar": { - "config_flow": true, - "iot_class": "local_polling", - "name": "LG Soundbars" + "lg": { + "name": "LG", + "integrations": { + "lg_netcast": { + "config_flow": false, + "iot_class": "local_polling", + "name": "LG Netcast" + }, + "lg_soundbar": { + "config_flow": true, + "iot_class": "local_polling", + "name": "LG Soundbars" + }, + "webostv": { + "config_flow": true, + "iot_class": "local_push", + "name": "LG webOS Smart TV" + } + } }, "lidarr": { "config_flow": true, @@ -2400,6 +2490,26 @@ "iot_class": "cloud_polling", "name": "Logi Circle" }, + "logitech": { + "name": "Logitech", + "integrations": { + "harmony": { + "config_flow": true, + "iot_class": "local_push", + "name": "Logitech Harmony Hub" + }, + "ue_smart_radio": { + "config_flow": false, + "iot_class": "cloud_polling", + "name": "Logitech UE Smart Radio" + }, + "squeezebox": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Squeezebox (Logitech Media Server)" + } + } + }, "london_air": { "config_flow": false, "iot_class": "cloud_polling", @@ -2420,11 +2530,6 @@ "iot_class": null, "name": "Dashboards" }, - "luci": { - "config_flow": false, - "iot_class": "local_polling", - "name": "OpenWrt (luci)" - }, "luftdaten": { "config_flow": true, "iot_class": "cloud_polling", @@ -2436,25 +2541,30 @@ "name": "Lupus Electronics LUPUSEC" }, "lutron": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Lutron" - }, - "lutron_caseta": { - "config_flow": true, - "iot_class": "local_push", - "name": "Lutron Cas\u00e9ta" + "name": "Lutron", + "integrations": { + "lutron": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Lutron" + }, + "lutron_caseta": { + "config_flow": true, + "iot_class": "local_push", + "name": "Lutron Cas\u00e9ta" + }, + "homeworks": { + "config_flow": false, + "iot_class": "local_push", + "name": "Lutron Homeworks" + } + } }, "lw12wifi": { "config_flow": false, "iot_class": "local_polling", "name": "LAGUTE LW-12" }, - "lyric": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Honeywell Lyric" - }, "magicseaweed": { "config_flow": false, "iot_class": "cloud_polling", @@ -2474,11 +2584,6 @@ "iot_class": "calculated", "name": "Manual Alarm Control Panel" }, - "manual_mqtt": { - "config_flow": false, - "iot_class": "local_push", - "name": "Manual MQTT Alarm Control Panel" - }, "map": { "config_flow": false, "iot_class": null, @@ -2499,11 +2604,6 @@ "iot_class": "cloud_push", "name": "Matrix" }, - "maxcube": { - "config_flow": false, - "iot_class": "local_polling", - "name": "eQ-3 MAX!" - }, "mazda": { "config_flow": true, "iot_class": "cloud_polling", @@ -2544,9 +2644,19 @@ "name": "Melissa" }, "melnor": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Melnor Bluetooth" + "name": "Melnor", + "integrations": { + "melnor": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Melnor Bluetooth" + }, + "raincloud": { + "config_flow": false, + "iot_class": "cloud_polling", + "name": "Melnor RainCloud" + } + } }, "meraki": { "config_flow": false, @@ -2594,24 +2704,59 @@ "name": "Ubiquiti mFi mPort" }, "microsoft": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Microsoft Text-to-Speech (TTS)" - }, - "microsoft_face": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Microsoft Face" - }, - "microsoft_face_detect": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Microsoft Face Detect" - }, - "microsoft_face_identify": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Microsoft Face Identify" + "name": "Microsoft", + "integrations": { + "azure_devops": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Azure DevOps" + }, + "azure_event_hub": { + "config_flow": true, + "iot_class": "cloud_push", + "name": "Azure Event Hub" + }, + "azure_service_bus": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Azure Service Bus" + }, + "microsoft_face_detect": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Microsoft Face Detect" + }, + "microsoft_face_identify": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Microsoft Face Identify" + }, + "microsoft_face": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Microsoft Face" + }, + "microsoft": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Microsoft Text-to-Speech (TTS)" + }, + "msteams": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Microsoft Teams" + }, + "xbox": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Xbox" + }, + "xbox_live": { + "config_flow": false, + "iot_class": "cloud_polling", + "name": "Xbox Live" + } + } }, "miflora": { "config_flow": false, @@ -2711,34 +2856,39 @@ "name": "Music Player Daemon (MPD)" }, "mqtt": { - "config_flow": true, - "iot_class": "local_push", - "name": "MQTT" - }, - "mqtt_eventstream": { - "config_flow": false, - "iot_class": "local_polling", - "name": "MQTT Eventstream" - }, - "mqtt_json": { - "config_flow": false, - "iot_class": "local_push", - "name": "MQTT JSON" - }, - "mqtt_room": { - "config_flow": false, - "iot_class": "local_push", - "name": "MQTT Room Presence" - }, - "mqtt_statestream": { - "config_flow": false, - "iot_class": "local_push", - "name": "MQTT Statestream" - }, - "msteams": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Microsoft Teams" + "name": "MQTT", + "integrations": { + "manual_mqtt": { + "config_flow": false, + "iot_class": "local_push", + "name": "Manual MQTT Alarm Control Panel" + }, + "mqtt": { + "config_flow": true, + "iot_class": "local_push", + "name": "MQTT" + }, + "mqtt_eventstream": { + "config_flow": false, + "iot_class": "local_polling", + "name": "MQTT Eventstream" + }, + "mqtt_json": { + "config_flow": false, + "iot_class": "local_push", + "name": "MQTT JSON" + }, + "mqtt_room": { + "config_flow": false, + "iot_class": "local_push", + "name": "MQTT Room Presence" + }, + "mqtt_statestream": { + "config_flow": false, + "iot_class": "local_push", + "name": "MQTT Statestream" + } + } }, "mullvad": { "config_flow": true, @@ -2831,14 +2981,19 @@ "name": "Netdata" }, "netgear": { - "config_flow": true, - "iot_class": "local_polling", - "name": "NETGEAR" - }, - "netgear_lte": { - "config_flow": false, - "iot_class": "local_polling", - "name": "NETGEAR LTE" + "name": "NETGEAR", + "integrations": { + "netgear": { + "config_flow": true, + "iot_class": "local_polling", + "name": "NETGEAR" + }, + "netgear_lte": { + "config_flow": false, + "iot_class": "local_polling", + "name": "NETGEAR LTE" + } + } }, "netio": { "config_flow": false, @@ -3142,6 +3297,21 @@ "iot_class": "cloud_polling", "name": "OpenWeatherMap" }, + "openwrt": { + "name": "OpenWrt", + "integrations": { + "luci": { + "config_flow": false, + "iot_class": "local_polling", + "name": "OpenWrt (luci)" + }, + "ubus": { + "config_flow": false, + "iot_class": "local_polling", + "name": "OpenWrt (ubus)" + } + } + }, "opnsense": { "config_flow": false, "iot_class": "local_polling", @@ -3192,15 +3362,20 @@ "iot_class": "local_polling", "name": "P1 Monitor" }, - "panasonic_bluray": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Panasonic Blu-Ray Player" - }, - "panasonic_viera": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Panasonic Viera" + "panasonic": { + "name": "Panasonic", + "integrations": { + "panasonic_bluray": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Panasonic Blu-Ray Player" + }, + "panasonic_viera": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Panasonic Viera" + } + } }, "pandora": { "config_flow": false, @@ -3236,10 +3411,25 @@ "config_flow": false, "iot_class": "calculated" }, - "philips_js": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Philips TV" + "philips": { + "name": "Philips", + "integrations": { + "dynalite": { + "config_flow": true, + "iot_class": "local_push", + "name": "Philips Dynalite" + }, + "hue": { + "config_flow": true, + "iot_class": "local_push", + "name": "Philips Hue" + }, + "philips_js": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Philips TV" + } + } }, "pi_hole": { "config_flow": true, @@ -3315,11 +3505,6 @@ "iot_class": "cloud_polling", "name": "PoolSense" }, - "powerwall": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Tesla Powerwall" - }, "profiler": { "config_flow": true, "iot_class": null, @@ -3369,11 +3554,6 @@ "iot_class": "local_polling", "name": "PrusaLink" }, - "ps4": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Sony PlayStation 4" - }, "pulseaudio_loopback": { "config_flow": false, "iot_class": "local_polling", @@ -3440,14 +3620,19 @@ "name": "Queensland Bushfire Alert" }, "qnap": { - "config_flow": false, - "iot_class": "local_polling", - "name": "QNAP" - }, - "qnap_qsw": { - "config_flow": true, - "iot_class": "local_polling", - "name": "QNAP QSW" + "name": "QNAP", + "integrations": { + "qnap": { + "config_flow": false, + "iot_class": "local_polling", + "name": "QNAP" + }, + "qnap_qsw": { + "config_flow": true, + "iot_class": "local_polling", + "name": "QNAP QSW" + } + } }, "qrcode": { "config_flow": false, @@ -3494,11 +3679,6 @@ "iot_class": "local_polling", "name": "Rain Bird" }, - "raincloud": { - "config_flow": false, - "iot_class": "cloud_polling", - "name": "Melnor RainCloud" - }, "rainforest_eagle": { "config_flow": true, "iot_class": "local_polling", @@ -3514,6 +3694,25 @@ "iot_class": "local_polling", "name": "Random" }, + "raspberry": { + "name": "Raspberry Pi", + "integrations": { + "rpi_camera": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Raspberry Pi Camera" + }, + "rpi_power": { + "config_flow": true, + "iot_class": "local_polling" + }, + "remote_rpi_gpio": { + "config_flow": false, + "iot_class": "local_push", + "name": "remote_rpi_gpio" + } + } + }, "raspyrfm": { "config_flow": false, "iot_class": "assumed_state", @@ -3558,11 +3757,6 @@ "config_flow": false, "iot_class": null }, - "remote_rpi_gpio": { - "config_flow": false, - "iot_class": "local_push", - "name": "remote_rpi_gpio" - }, "renault": { "config_flow": true, "iot_class": "cloud_polling", @@ -3653,25 +3847,11 @@ "iot_class": "local_push", "name": "RoonLabs music player" }, - "route53": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "AWS Route53" - }, "rova": { "config_flow": false, "iot_class": "cloud_polling", "name": "ROVA" }, - "rpi_camera": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Raspberry Pi Camera" - }, - "rpi_power": { - "config_flow": true, - "iot_class": "local_polling" - }, "rss_feed_template": { "config_flow": false, "iot_class": "local_push", @@ -3692,15 +3872,20 @@ "iot_class": "local_polling", "name": "Ruckus Unleashed" }, - "russound_rio": { - "config_flow": false, - "iot_class": "local_push", - "name": "Russound RIO" - }, - "russound_rnet": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Russound RNET" + "russound": { + "name": "Russound", + "integrations": { + "russound_rio": { + "config_flow": false, + "iot_class": "local_push", + "name": "Russound RIO" + }, + "russound_rnet": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Russound RNET" + } + } }, "sabnzbd": { "config_flow": true, @@ -3717,10 +3902,25 @@ "iot_class": "local_polling", "name": "SAJ Solar Inverter" }, - "samsungtv": { - "config_flow": true, - "iot_class": "local_push", - "name": "Samsung Smart TV" + "samsung": { + "name": "Samsung", + "integrations": { + "familyhub": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Samsung Family Hub" + }, + "samsungtv": { + "config_flow": true, + "iot_class": "local_push", + "name": "Samsung Smart TV" + }, + "syncthru": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Samsung SyncThru Printer" + } + } }, "satel_integra": { "config_flow": false, @@ -4012,14 +4212,19 @@ "name": "SNMP" }, "solaredge": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "SolarEdge" - }, - "solaredge_local": { - "config_flow": false, - "iot_class": "local_polling", - "name": "SolarEdge Local" + "name": "SolarEdge", + "integrations": { + "solaredge": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "SolarEdge" + }, + "solaredge_local": { + "config_flow": false, + "iot_class": "local_polling", + "name": "SolarEdge Local" + } + } }, "solarlog": { "config_flow": true, @@ -4046,20 +4251,35 @@ "iot_class": "local_polling", "name": "Sonarr" }, - "songpal": { - "config_flow": true, - "iot_class": "local_push", - "name": "Sony Songpal" - }, "sonos": { "config_flow": true, "iot_class": "local_push", "name": "Sonos" }, - "sony_projector": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Sony Projector" + "sony": { + "name": "Sony", + "integrations": { + "braviatv": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Sony Bravia TV" + }, + "ps4": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Sony PlayStation 4" + }, + "sony_projector": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Sony Projector" + }, + "songpal": { + "config_flow": true, + "iot_class": "local_push", + "name": "Sony Songpal" + } + } }, "soundtouch": { "config_flow": true, @@ -4101,11 +4321,6 @@ "iot_class": "local_polling", "name": "SQL" }, - "squeezebox": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Squeezebox (Logitech Media Server)" - }, "srp_energy": { "config_flow": true, "iot_class": "cloud_polling", @@ -4249,25 +4464,25 @@ "iot_class": "local_polling", "name": "Syncthing" }, - "syncthru": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Samsung SyncThru Printer" - }, - "synology_chat": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Synology Chat" - }, - "synology_dsm": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Synology DSM" - }, - "synology_srm": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Synology SRM" + "synology": { + "name": "Synology", + "integrations": { + "synology_chat": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Synology Chat" + }, + "synology_dsm": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Synology DSM" + }, + "synology_srm": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Synology SRM" + } + } }, "syslog": { "config_flow": false, @@ -4343,24 +4558,34 @@ "name": "The Energy Detective TED5000" }, "telegram": { - "config_flow": false, - "iot_class": "cloud_polling", - "name": "Telegram" + "name": "Telegram", + "integrations": { + "telegram": { + "config_flow": false, + "iot_class": "cloud_polling", + "name": "Telegram" + }, + "telegram_bot": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Telegram bot" + } + } }, - "telegram_bot": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Telegram bot" - }, - "tellduslive": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Telldus Live" - }, - "tellstick": { - "config_flow": false, - "iot_class": "assumed_state", - "name": "TellStick" + "telldus": { + "name": "Telldus", + "integrations": { + "tellduslive": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Telldus Live" + }, + "tellstick": { + "config_flow": false, + "iot_class": "assumed_state", + "name": "TellStick" + } + } }, "telnet": { "config_flow": false, @@ -4382,10 +4607,20 @@ "iot_class": "local_polling", "name": "TensorFlow" }, - "tesla_wall_connector": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Tesla Wall Connector" + "tesla": { + "name": "Tesla", + "integrations": { + "powerwall": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Tesla Powerwall" + }, + "tesla_wall_connector": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Tesla Wall Connector" + } + } }, "tfiac": { "config_flow": false, @@ -4533,20 +4768,25 @@ "iot_class": "local_polling", "name": "IKEA TR\u00c5DFRI" }, - "trafikverket_ferry": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Trafikverket Ferry" - }, - "trafikverket_train": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Trafikverket Train" - }, - "trafikverket_weatherstation": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Trafikverket Weather Station" + "trafikverket": { + "name": "Trafikverket", + "integrations": { + "trafikverket_ferry": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Trafikverket Ferry" + }, + "trafikverket_train": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Trafikverket Train" + }, + "trafikverket_weatherstation": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Trafikverket Weather Station" + } + } }, "transmission": { "config_flow": true, @@ -4584,19 +4824,24 @@ "name": "Twente Milieu" }, "twilio": { - "config_flow": true, - "iot_class": "cloud_push", - "name": "Twilio" - }, - "twilio_call": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Twilio Call" - }, - "twilio_sms": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Twilio SMS" + "name": "Twilio", + "integrations": { + "twilio": { + "config_flow": true, + "iot_class": "cloud_push", + "name": "Twilio" + }, + "twilio_call": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Twilio Call" + }, + "twilio_sms": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Twilio SMS" + } + } }, "twinkly": { "config_flow": true, @@ -4638,16 +4883,6 @@ } } }, - "ubus": { - "config_flow": false, - "iot_class": "local_polling", - "name": "OpenWrt (ubus)" - }, - "ue_smart_radio": { - "config_flow": false, - "iot_class": "cloud_polling", - "name": "Logitech UE Smart Radio" - }, "uk_transport": { "config_flow": false, "iot_class": "cloud_polling", @@ -4791,14 +5026,19 @@ "name": "VIZIO SmartCast" }, "vlc": { - "config_flow": false, - "iot_class": "local_polling", - "name": "VLC media player" - }, - "vlc_telnet": { - "config_flow": true, - "iot_class": "local_polling", - "name": "VLC media player via Telnet" + "name": "VideoLAN", + "integrations": { + "vlc": { + "config_flow": false, + "iot_class": "local_polling", + "name": "VLC media player" + }, + "vlc_telnet": { + "config_flow": true, + "iot_class": "local_polling", + "name": "VLC media player via Telnet" + } + } }, "voicerss": { "config_flow": false, @@ -4860,16 +5100,6 @@ "iot_class": "cloud_polling", "name": "WaterFurnace" }, - "watson_iot": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "IBM Watson IoT Platform" - }, - "watson_tts": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "IBM Watson TTS" - }, "watttime": { "config_flow": true, "iot_class": "cloud_polling", @@ -4889,11 +5119,6 @@ "iot_class": null, "name": "Webhook" }, - "webostv": { - "config_flow": true, - "iot_class": "local_push", - "name": "LG webOS Smart TV" - }, "websocket_api": { "config_flow": false, "iot_class": null, @@ -4984,45 +5209,40 @@ "iot_class": "local_polling", "name": "Heyu X10" }, - "xbox": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Xbox" - }, - "xbox_live": { - "config_flow": false, - "iot_class": "cloud_polling", - "name": "Xbox Live" - }, "xeoma": { "config_flow": false, "iot_class": "local_polling", "name": "Xeoma" }, "xiaomi": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Xiaomi" - }, - "xiaomi_aqara": { - "config_flow": true, - "iot_class": "local_push", - "name": "Xiaomi Gateway (Aqara)" - }, - "xiaomi_ble": { - "config_flow": true, - "iot_class": "local_push", - "name": "Xiaomi BLE" - }, - "xiaomi_miio": { - "config_flow": true, - "iot_class": "local_polling", - "name": "Xiaomi Miio" - }, - "xiaomi_tv": { - "config_flow": false, - "iot_class": "assumed_state", - "name": "Xiaomi TV" + "name": "Xiaomi", + "integrations": { + "xiaomi_aqara": { + "config_flow": true, + "iot_class": "local_push", + "name": "Xiaomi Gateway (Aqara)" + }, + "xiaomi_ble": { + "config_flow": true, + "iot_class": "local_push", + "name": "Xiaomi BLE" + }, + "xiaomi_miio": { + "config_flow": true, + "iot_class": "local_polling", + "name": "Xiaomi Miio" + }, + "xiaomi_tv": { + "config_flow": false, + "iot_class": "assumed_state", + "name": "Xiaomi TV" + }, + "xiaomi": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Xiaomi" + } + } }, "xmpp": { "config_flow": false, @@ -5034,15 +5254,25 @@ "iot_class": "local_polling", "name": "EZcontrol XS1" }, - "yale_smart_alarm": { - "config_flow": true, - "iot_class": "cloud_polling", - "name": "Yale Smart Living" - }, - "yalexs_ble": { - "config_flow": true, - "iot_class": "local_push", - "name": "Yale Access Bluetooth" + "yale": { + "name": "Yale", + "integrations": { + "august": { + "config_flow": true, + "iot_class": "cloud_push", + "name": "August" + }, + "yale_smart_alarm": { + "config_flow": true, + "iot_class": "cloud_polling", + "name": "Yale Smart Living" + }, + "yalexs_ble": { + "config_flow": true, + "iot_class": "local_push", + "name": "Yale Access Bluetooth" + } + } }, "yamaha": { "config_flow": false, @@ -5054,25 +5284,35 @@ "iot_class": "local_push", "name": "MusicCast" }, - "yandex_transport": { - "config_flow": false, - "iot_class": "cloud_polling", - "name": "Yandex Transport" - }, - "yandextts": { - "config_flow": false, - "iot_class": "cloud_push", - "name": "Yandex TTS" + "yandex": { + "name": "Yandex", + "integrations": { + "yandex_transport": { + "config_flow": false, + "iot_class": "cloud_polling", + "name": "Yandex Transport" + }, + "yandextts": { + "config_flow": false, + "iot_class": "cloud_push", + "name": "Yandex TTS" + } + } }, "yeelight": { - "config_flow": true, - "iot_class": "local_push", - "name": "Yeelight" - }, - "yeelightsunflower": { - "config_flow": false, - "iot_class": "local_polling", - "name": "Yeelight Sunflower" + "name": "Yeelight", + "integrations": { + "yeelight": { + "config_flow": true, + "iot_class": "local_push", + "name": "Yeelight" + }, + "yeelightsunflower": { + "config_flow": false, + "iot_class": "local_polling", + "name": "Yeelight Sunflower" + } + } }, "yi": { "config_flow": false,