1 """Insteon API interface for the frontend."""
3 from insteon_frontend
import get_build_id, locate_dir
9 from ..const
import CONF_DEV_PATH, DOMAIN
11 websocket_add_default_links,
12 websocket_change_aldb_record,
13 websocket_create_aldb_record,
16 websocket_notify_on_aldb_status,
17 websocket_notify_on_aldb_status_all,
22 websocket_add_device_override,
23 websocket_get_broken_links,
25 websocket_get_modem_schema,
26 websocket_get_unknown_devices,
27 websocket_remove_device_override,
28 websocket_update_modem_config,
32 websocket_add_x10_device,
33 websocket_cancel_add_device,
35 websocket_remove_device,
37 from .properties
import (
38 websocket_change_properties_record,
39 websocket_get_properties,
40 websocket_load_properties,
41 websocket_reset_properties,
42 websocket_write_properties,
45 websocket_delete_scene,
51 URL_BASE =
"/insteon_static"
56 """Set up the web socket API."""
57 websocket_api.async_register_command(hass, websocket_get_device)
58 websocket_api.async_register_command(hass, websocket_add_device)
59 websocket_api.async_register_command(hass, websocket_cancel_add_device)
61 websocket_api.async_register_command(hass, websocket_get_scenes)
62 websocket_api.async_register_command(hass, websocket_get_scene)
63 websocket_api.async_register_command(hass, websocket_save_scene)
64 websocket_api.async_register_command(hass, websocket_delete_scene)
66 websocket_api.async_register_command(hass, websocket_get_aldb)
67 websocket_api.async_register_command(hass, websocket_change_aldb_record)
68 websocket_api.async_register_command(hass, websocket_create_aldb_record)
69 websocket_api.async_register_command(hass, websocket_write_aldb)
70 websocket_api.async_register_command(hass, websocket_load_aldb)
71 websocket_api.async_register_command(hass, websocket_reset_aldb)
72 websocket_api.async_register_command(hass, websocket_add_default_links)
73 websocket_api.async_register_command(hass, websocket_notify_on_aldb_status)
74 websocket_api.async_register_command(hass, websocket_add_x10_device)
75 websocket_api.async_register_command(hass, websocket_remove_device)
76 websocket_api.async_register_command(hass, websocket_notify_on_aldb_status_all)
78 websocket_api.async_register_command(hass, websocket_get_properties)
79 websocket_api.async_register_command(hass, websocket_change_properties_record)
80 websocket_api.async_register_command(hass, websocket_write_properties)
81 websocket_api.async_register_command(hass, websocket_load_properties)
82 websocket_api.async_register_command(hass, websocket_reset_properties)
84 websocket_api.async_register_command(hass, websocket_get_config)
85 websocket_api.async_register_command(hass, websocket_get_modem_schema)
86 websocket_api.async_register_command(hass, websocket_update_modem_config)
87 websocket_api.async_register_command(hass, websocket_add_device_override)
88 websocket_api.async_register_command(hass, websocket_remove_device_override)
89 websocket_api.async_register_command(hass, websocket_get_broken_links)
90 websocket_api.async_register_command(hass, websocket_get_unknown_devices)
94 """Register the Insteon frontend configuration panel."""
96 if DOMAIN
not in hass.data.get(
"frontend_panels", {}):
97 dev_path = hass.data.get(DOMAIN, {}).
get(CONF_DEV_PATH)
98 is_dev = dev_path
is not None
99 path = dev_path
if dev_path
else locate_dir()
100 build_id = get_build_id(is_dev)
101 await hass.http.async_register_static_paths(
105 await panel_custom.async_register_panel(
107 frontend_url_path=DOMAIN,
108 webcomponent_name=
"insteon-frontend",
109 config_panel_domain=DOMAIN,
110 module_url=f
"{URL_BASE}/entrypoint-{build_id}.js",
web.Response get(self, web.Request request, str config_key)
def async_register_insteon_frontend(HomeAssistant hass)