summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--.storage/core.area_registry97
-rw-r--r--.storage/homeassistant.exposed_entities189
-rw-r--r--.storage/input_number12
-rw-r--r--.storage/lovelace.lovelace_control32
-rw-r--r--.storage/lovelace.lovelace_power4
-rw-r--r--.storage/lovelace.lovelace_research485
-rw-r--r--.storage/lovelace.lovelace_status15
-rw-r--r--.storage/lovelace.lovelace_test24
-rw-r--r--.storage/person11
-rw-r--r--automations.yaml363
-rw-r--r--blueprints/automation/lights/light_switch.yaml4
-rw-r--r--blueprints/automation/motion/halabyan24.yaml8
-rw-r--r--configuration.yaml6
-rw-r--r--custom/group.yaml10
-rw-r--r--custom/input_number.yaml5
-rw-r--r--custom/scripts/sleep-and-wake.yaml8
-rw-r--r--custom/scripts/turn-on-office-lights.yaml11
-rw-r--r--custom_components/patch_asyncssh/__init__.py49
-rw-r--r--custom_components/patch_asyncssh/__pycache__/__init__.cpython-312.pycbin0 -> 2002 bytes
-rw-r--r--custom_components/patch_asyncssh/manifest.json9
-rw-r--r--export/automation_states.json194
-rw-r--r--export/extract.sh2
-rw-r--r--hacs-install.sh126
-rw-r--r--scenes.yaml657
-rw-r--r--scripts.yaml2
26 files changed, 1707 insertions, 624 deletions
diff --git a/.gitignore b/.gitignore
index 770aaee..8de1d25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
secrets.yaml
keys
backups
-custom_components
*\.log
*\.log\.*
*\.db
@@ -10,6 +9,7 @@ custom_components
themes
tts
www
+ha_token
.cloud/
.storage/auth
@@ -37,3 +37,9 @@ www
.storage/core.config_entries
.storage/core.device_registry
.storage/sonoff/
+
+# Standard custom components (unpatched)
+custom_components/ble_monitor
+custom_components/hacs
+custom_components/remote_homeassistant
+custom_components/sonoff
diff --git a/.storage/core.area_registry b/.storage/core.area_registry
index a7348bb..f70174f 100644
--- a/.storage/core.area_registry
+++ b/.storage/core.area_registry
@@ -5,85 +5,94 @@
"data": {
"areas": [
{
- "name": "Living Room",
- "id": "living_room",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "living_room",
+ "labels": [],
+ "name": "Living Room",
+ "picture": null
},
{
- "name": "Kitchen",
- "id": "kitchen",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "kitchen",
+ "labels": [],
+ "name": "Kitchen",
+ "picture": null
},
{
- "name": "Bedroom",
- "id": "bedroom",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "bedroom",
+ "labels": [],
+ "name": "Bedroom",
+ "picture": null
},
{
- "name": "Hall",
- "id": "hall",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "hall",
+ "labels": [],
+ "name": "Hall",
+ "picture": null
},
{
- "name": "Virtual",
- "id": "virtual",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "virtual",
+ "labels": [],
+ "name": "Virtual",
+ "picture": null
},
{
- "name": "Bathroom",
- "id": "bathroom",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "bathroom",
+ "labels": [],
+ "name": "Bathroom",
+ "picture": null
},
{
- "name": "Portable",
- "id": "portable",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "portable",
+ "labels": [],
+ "name": "Portable",
+ "picture": null
},
{
- "name": "Guestroom",
- "id": "guestroom",
- "picture": null,
"aliases": [],
- "icon": null,
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "guestroom",
+ "labels": [],
+ "name": "Guestroom",
+ "picture": null
},
{
- "name": "KIT",
- "id": "kit",
- "picture": null,
"aliases": [],
+ "floor_id": null,
"icon": null,
+ "id": "kit",
+ "labels": [],
+ "name": "KIT",
+ "picture": null
+ },
+ {
+ "aliases": [],
"floor_id": null,
- "labels": []
+ "icon": null,
+ "id": "waldstadt",
+ "labels": [],
+ "name": "Waldstadt",
+ "picture": null
}
]
}
diff --git a/.storage/homeassistant.exposed_entities b/.storage/homeassistant.exposed_entities
index 521fdf3..a49a648 100644
--- a/.storage/homeassistant.exposed_entities
+++ b/.storage/homeassistant.exposed_entities
@@ -626,6 +626,195 @@
"should_expose": false
}
}
+ },
+ "switch.0xa4c13895a5fc1187": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "select.0xa4c13895a5fc1187_power_outage_memory": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "select.0xa4c13895a5fc1187_indicator_mode": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.0xa4c13895a5fc1187_power": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.0xa4c13895a5fc1187_energy": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "lock.0xa4c13895a5fc1187_child_lock": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "update.0xa4c13895a5fc1187": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.0x00158d0009465217_battery": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "binary_sensor.0x00158d0009465217_contact": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "sensor.0x00158d0009465217_device_temperature": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "sensor.0x00158d0009465217_power_outage_count": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "event.backup_automatic_backup": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.backup_backup_manager_state": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.backup_next_scheduled_automatic_backup": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.backup_last_successful_automatic_backup": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.backup_last_attempted_automatic_backup": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "binary_sensor.zigbee2mqtt_bridge_connection_state": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "button.zigbee2mqtt_bridge_restart": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "select.zigbee2mqtt_bridge_log_level": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.zigbee2mqtt_bridge_version": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "switch.zigbee2mqtt_bridge_permit_join": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "sensor.0xa4c138f102389c3b_temperature": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "sensor.0xa4c138f102389c3b_humidity": {
+ "assistants": {
+ "conversation": {
+ "should_expose": true
+ }
+ }
+ },
+ "select.0xa4c138f102389c3b_temperature_unit": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "number.0xa4c138f102389c3b_temperature_calibration": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "number.0xa4c138f102389c3b_humidity_calibration": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
+ },
+ "sensor.0xa4c138f102389c3b_battery": {
+ "assistants": {
+ "conversation": {
+ "should_expose": false
+ }
+ }
}
}
}
diff --git a/.storage/input_number b/.storage/input_number
index b5a1496..99a7d57 100644
--- a/.storage/input_number
+++ b/.storage/input_number
@@ -1,8 +1,8 @@
{
- "version": 1,
- "minor_version": 1,
- "key": "input_number",
- "data": {
- "items": []
- }
+ "version": 1,
+ "minor_version": 1,
+ "key": "input_number",
+ "data": {
+ "items": []
+ }
} \ No newline at end of file
diff --git a/.storage/lovelace.lovelace_control b/.storage/lovelace.lovelace_control
index ad27fd3..9f9abc9 100644
--- a/.storage/lovelace.lovelace_control
+++ b/.storage/lovelace.lovelace_control
@@ -102,7 +102,11 @@
},
{
"entity": "switch.hall_camera",
- "name": "Camera"
+ "name": "Hall Camera"
+ },
+ {
+ "entity": "switch.living_livingviewswitch_living_livingviewswitch",
+ "name": "Living Camera"
}
],
"title": "Infrastructure"
@@ -150,13 +154,13 @@
"cards": [
{
"type": "light",
- "entity": "light.yeelight_color_0x7caaf86",
- "name": "Office Bulb"
+ "entity": "light.bedroom_bulb",
+ "name": "Bedroom Bulb"
},
{
"type": "light",
- "entity": "light.smart_light",
- "name": "Bedroom Bulb"
+ "entity": "light.office_bulb_office_bulb",
+ "name": "Office Bulb"
}
]
},
@@ -181,8 +185,20 @@
"name": "Lustre-2"
},
{
- "entity": "light.yeelight_color_0x7caaf86",
- "name": "Bulb"
+ "entity": "light.living_led",
+ "name": "LED"
+ },
+ {
+ "entity": "light.office_led_office_led",
+ "name": "Office LED"
+ },
+ {
+ "entity": "light.office_bulb_office_bulb",
+ "name": "Office Bulb"
+ },
+ {
+ "entity": "light.office_chair_led_office_chair_led",
+ "name": "Chair LED"
},
{
"entity": "switch.living_tablelampsocket",
@@ -280,7 +296,7 @@
"name": "Lustre-2"
},
{
- "entity": "light.smart_light",
+ "entity": "light.bedroom_bulb",
"name": "Bulb"
},
{
diff --git a/.storage/lovelace.lovelace_power b/.storage/lovelace.lovelace_power
index 2046dad..89a53dd 100644
--- a/.storage/lovelace.lovelace_power
+++ b/.storage/lovelace.lovelace_power
@@ -117,6 +117,10 @@
{
"entity": "sensor.hall_camera_power",
"name": "AubergineView"
+ },
+ {
+ "entity": "sensor.living_livingviewswitch_living_livingviewswitch_power",
+ "name": "LivingView"
}
]
},
diff --git a/.storage/lovelace.lovelace_research b/.storage/lovelace.lovelace_research
index c3178a7..40b4df3 100644
--- a/.storage/lovelace.lovelace_research
+++ b/.storage/lovelace.lovelace_research
@@ -1,234 +1,263 @@
{
- "version": 1,
- "minor_version": 1,
- "key": "lovelace.lovelace_research",
- "data": {
- "config": {
- "views": [
+ "version": 1,
+ "minor_version": 1,
+ "key": "lovelace.lovelace_research",
+ "data": {
+ "config": {
+ "views": [
+ {
+ "title": "Home",
+ "cards": [
+ {
+ "type": "vertical-stack",
+ "cards": [
{
- "title": "Home",
- "cards": [
- {
- "type": "vertical-stack",
- "cards": [
- {
- "type": "custom:restriction-card",
- "restrictions": {
- "confirm": {
- "exemptions": null
- }
- },
- "card": {
- "type": "entities",
- "entities": [
- {
- "entity": "input_boolean.mode_away"
- },
- {
- "entity": "input_boolean.mode_production"
- },
- {
- "entity": "select.entrance_vibrations_sensitivity"
- }
- ],
- "title": "Mode"
- }
- },
- {
- "type": "entities",
- "entities": [
- {
- "entity": "binary_sensor.entrance_door_contact"
- },
- {
- "entity": "sensor.entrance_vibrations_action"
- },
- {
- "entity": "binary_sensor.balcony_doors"
- },
- {
- "entity": "binary_sensor.motions_all"
- },
- {
- "entity": "switch.lights_all"
- }
- ],
- "title": "Intrusion"
- },
- {
- "type": "entities",
- "entities": [
- {
- "entity": "binary_sensor.hall_smoke_smoke"
- },
- {
- "entity": "sensor.kitchen_gas_carbon_monoxide"
- },
- {
- "entity": "binary_sensor.bathroom_leak_water_leak"
- }
- ],
- "title": "Safety"
- },
- {
- "type": "entities",
- "entities": [
- {
- "entity": "binary_sensor.living_balcony_contact",
- "name": "Living"
- },
- {
- "entity": "binary_sensor.kitchen_balcony_contact",
- "name": "Kitchen"
- },
- {
- "entity": "binary_sensor.bedroom_balcony_contact",
- "name": "Bedroom"
- },
- {
- "entity": "binary_sensor.guestroom_balcony_contact",
- "name": "Guestroom"
- }
- ],
- "title": "Balcony"
- }
- ]
- },
- {
- "type": "vertical-stack",
- "cards": [
- {
- "type": "history-graph",
- "entities": [
- {
- "entity": "binary_sensor.hall_smoke_smoke",
- "name": "Smoke"
- },
- {
- "entity": "binary_sensor.kitchen_gas",
- "name": "Gas (CO)"
- },
- {
- "entity": "binary_sensor.bathroom_leak_water_leak",
- "name": "Water Leak"
- }
- ],
- "hours_to_show": 48,
- "title": "Safety (Last 48 hours)"
- },
- {
- "type": "history-graph",
- "entities": [
- {
- "entity": "binary_sensor.entrance_door_contact",
- "name": "Entrance Door"
- },
- {
- "entity": "binary_sensor.balcony_doors"
- },
- {
- "entity": "binary_sensor.entrance_vibrations_vibration",
- "name": "Vibrations"
- },
- {
- "entity": "sensor.entrance_vibrations_strength",
- "name": "Strength"
- },
- {
- "entity": "sensor.hall_motions_illuminance_lux",
- "name": "Illumination Hall"
- },
- {
- "entity": "switch.lights_all",
- "name": "All Lights"
- }
- ],
- "hours_to_show": 48,
- "title": "Intrusion (Last 48 hours)"
- },
- {
- "type": "history-graph",
- "entities": [
- {
- "entity": "binary_sensor.hall_motions_occupancy",
- "name": "Hall"
- },
- {
- "entity": "binary_sensor.office_motions_occupancy",
- "name": "Office"
- },
- {
- "entity": "binary_sensor.presence_presence",
- "name": "Living"
- },
- {
- "entity": "binary_sensor.bedroom_motions_occupancy",
- "name": "Bedroom"
- },
- {
- "entity": "binary_sensor.guestroom_motions_occupancy",
- "name": "Guestroom"
- },
- {
- "entity": "binary_sensor.kitchen_motions_occupancy",
- "name": "Kitchen"
- }
- ],
- "hours_to_show": 48,
- "title": "Motions (Last 48 hours)"
- }
- ]
- },
- {
- "type": "vertical-stack",
- "cards": [
- {
- "type": "entities",
- "title": "Doors",
- "entities": [
- {
- "entity": "switch.hall_speakerphone",
- "name": "Building Door"
- }
- ]
- },
- {
- "show_state": true,
- "show_name": true,
- "camera_view": "auto",
- "type": "picture-entity",
- "entity": "camera.192_168_50_132"
- },
- {
- "show_state": true,
- "show_name": true,
- "camera_view": "auto",
- "type": "picture-entity",
- "entity": "camera.192_168_50_51"
- },
- {
- "show_state": true,
- "show_name": true,
- "camera_view": "auto",
- "type": "picture-entity",
- "entity": "camera.ovenview"
- },
- {
- "type": "logbook",
- "entities": [
- "binary_sensor.entrance_door_contact",
- "sensor.entrance_vibrations_strength",
- "binary_sensor.hall_motions_occupancy",
- "sensor.entrance_vibrations_action"
- ],
- "hours_to_show": 24,
- "title": "Logs"
- }
- ]
- }
- ]
+ "type": "custom:restriction-card",
+ "restrictions": {
+ "confirm": {
+ "exemptions": null
+ }
+ },
+ "card": {
+ "type": "entities",
+ "entities": [
+ {
+ "entity": "input_boolean.mode_away"
+ },
+ {
+ "entity": "input_boolean.mode_production"
+ },
+ {
+ "entity": "select.entrance_vibrations_sensitivity"
+ }
+ ],
+ "title": "Mode"
+ }
+ },
+ {
+ "type": "custom:restriction-card",
+ "restrictions": {
+ "confirm": {
+ "exemptions": null
+ }
+ },
+ "card": {
+ "type": "entities",
+ "entities": [
+ {
+ "entity": "switch.hall_camera",
+ "name": "Hall"
+ },
+ {
+ "entity": "switch.living_livingviewswitch_living_livingviewswitch",
+ "name": "Living"
+ }
+ ],
+ "title": "Security Cameras"
+ }
+ },
+ {
+ "type": "entities",
+ "entities": [
+ {
+ "entity": "binary_sensor.entrance_door_contact"
+ },
+ {
+ "entity": "sensor.entrance_vibrations_action"
+ },
+ {
+ "entity": "binary_sensor.balcony_doors"
+ },
+ {
+ "entity": "binary_sensor.motions_all"
+ },
+ {
+ "entity": "switch.lights_all"
+ }
+ ],
+ "title": "Intrusion"
+ },
+ {
+ "type": "entities",
+ "entities": [
+ {
+ "entity": "binary_sensor.hall_smoke_smoke",
+ "name": "Hall/Smoke"
+ },
+ {
+ "entity": "binary_sensor.kitchen_gas_kitchen_gas_gas",
+ "name": "Kitchen/Gas"
+ },
+ {
+ "entity": "sensor.kitchen_gas_carbon_monoxide",
+ "name": "Kitchen/Gas WiFi"
+ },
+ {
+ "entity": "binary_sensor.bathroom_leak_water_leak",
+ "name": "Bathroom Leak"
+ }
+ ],
+ "title": "Safety"
+ },
+ {
+ "type": "entities",
+ "entities": [
+ {
+ "entity": "binary_sensor.living_balcony_contact",
+ "name": "Living"
+ },
+ {
+ "entity": "binary_sensor.kitchen_balcony_contact",
+ "name": "Kitchen"
+ },
+ {
+ "entity": "binary_sensor.bedroom_balcony_contact",
+ "name": "Bedroom"
+ },
+ {
+ "entity": "binary_sensor.guestroom_balcony_contact",
+ "name": "Guestroom"
+ }
+ ],
+ "title": "Balcony"
+ }
+ ]
+ },
+ {
+ "type": "vertical-stack",
+ "cards": [
+ {
+ "type": "history-graph",
+ "entities": [
+ {
+ "entity": "binary_sensor.hall_smoke_smoke",
+ "name": "Smoke"
+ },
+ {
+ "entity": "binary_sensor.kitchen_gas",
+ "name": "Gas (CO)"
+ },
+ {
+ "entity": "binary_sensor.bathroom_leak_water_leak",
+ "name": "Water Leak"
+ }
+ ],
+ "hours_to_show": 48,
+ "title": "Safety (Last 48 hours)"
+ },
+ {
+ "type": "history-graph",
+ "entities": [
+ {
+ "entity": "binary_sensor.entrance_door_contact",
+ "name": "Entrance Door"
+ },
+ {
+ "entity": "binary_sensor.balcony_doors"
+ },
+ {
+ "entity": "binary_sensor.entrance_vibrations_vibration",
+ "name": "Vibrations"
+ },
+ {
+ "entity": "sensor.entrance_vibrations_strength",
+ "name": "Strength"
+ },
+ {
+ "entity": "sensor.hall_motions_illuminance_lux",
+ "name": "Illumination Hall"
+ },
+ {
+ "entity": "switch.lights_all",
+ "name": "All Lights"
+ }
+ ],
+ "hours_to_show": 48,
+ "title": "Intrusion (Last 48 hours)"
+ },
+ {
+ "type": "history-graph",
+ "entities": [
+ {
+ "entity": "binary_sensor.hall_motions_occupancy",
+ "name": "Hall"
+ },
+ {
+ "entity": "binary_sensor.office_motions_occupancy",
+ "name": "Office"
+ },
+ {
+ "entity": "binary_sensor.presence_presence",
+ "name": "Living"
+ },
+ {
+ "entity": "binary_sensor.bedroom_motions_occupancy",
+ "name": "Bedroom"
+ },
+ {
+ "entity": "binary_sensor.guestroom_motions_occupancy",
+ "name": "Guestroom"
+ },
+ {
+ "entity": "binary_sensor.kitchen_motions_occupancy",
+ "name": "Kitchen"
+ }
+ ],
+ "hours_to_show": 48,
+ "title": "Motions (Last 48 hours)"
+ }
+ ]
+ },
+ {
+ "type": "vertical-stack",
+ "cards": [
+ {
+ "type": "entities",
+ "title": "Doors",
+ "entities": [
+ {
+ "entity": "switch.hall_speakerphone",
+ "name": "Building Door"
+ }
+ ]
+ },
+ {
+ "show_state": true,
+ "show_name": true,
+ "camera_view": "auto",
+ "type": "picture-entity",
+ "entity": "camera.192_168_50_132"
+ },
+ {
+ "show_state": true,
+ "show_name": true,
+ "camera_view": "auto",
+ "type": "picture-entity",
+ "entity": "camera.192_168_50_51"
+ },
+ {
+ "show_state": true,
+ "show_name": true,
+ "camera_view": "auto",
+ "type": "picture-entity",
+ "entity": "camera.ovenview"
+ },
+ {
+ "type": "logbook",
+ "entities": [
+ "binary_sensor.entrance_door_contact",
+ "sensor.entrance_vibrations_strength",
+ "binary_sensor.hall_motions_occupancy",
+ "sensor.entrance_vibrations_action"
+ ],
+ "hours_to_show": 24,
+ "title": "Logs"
}
- ]
+ ]
+ }
+ ]
}
+ ]
}
+ }
} \ No newline at end of file
diff --git a/.storage/lovelace.lovelace_status b/.storage/lovelace.lovelace_status
index 202ad33..f91ec45 100644
--- a/.storage/lovelace.lovelace_status
+++ b/.storage/lovelace.lovelace_status
@@ -285,16 +285,19 @@
"name": "Asgard clients"
},
{
- "entity": "device_tracker.legion8",
- "name": "Legion8/Asgard"
+ "entity": "device_tracker.samsa",
+ "name": "Samsa/Asgard"
},
{
- "entity": "device_tracker.lm_g810",
- "name": "Legion8/Hass"
+ "entity": "device_tracker.sm_s926b",
+ "name": "Samsa/Hass"
},
{
- "entity": "device_tracker.nyx",
- "name": "Nyx/Asgard"
+ "entity": "device_tracker.tir",
+ "name": "Tir/Asgard"
+ },
+ {
+ "entity": "device_tracker.xiaomi12"
}
]
}
diff --git a/.storage/lovelace.lovelace_test b/.storage/lovelace.lovelace_test
index 13e6952..2627383 100644
--- a/.storage/lovelace.lovelace_test
+++ b/.storage/lovelace.lovelace_test
@@ -49,6 +49,14 @@
"type": "divider"
},
{
+ "entity": "device_tracker.samsa",
+ "name": "Samsa/Asgard"
+ },
+ {
+ "entity": "device_tracker.sm_s926b",
+ "name": "Samsa/Hass"
+ },
+ {
"entity": "device_tracker.legion8",
"name": "Legion8/Asgard"
},
@@ -57,6 +65,10 @@
"name": "Legion8/Hass"
},
{
+ "entity": "device_tracker.tir",
+ "name": "Tir/Asgard"
+ },
+ {
"entity": "device_tracker.nyx",
"name": "Nyx/Asgard"
}
@@ -74,16 +86,16 @@
"name": "Laptops"
},
{
- "entity": "device_tracker.legion8",
- "name": "Legion8/Asgard"
+ "entity": "device_tracker.samsa",
+ "name": "Samsa/Asgard"
},
{
- "entity": "device_tracker.lm_g810",
- "name": "Legion8/Hass"
+ "entity": "device_tracker.sm_s926b",
+ "name": "Samsa/Hass"
},
{
- "entity": "device_tracker.nyx",
- "name": "Nyx/Asgard"
+ "entity": "device_tracker.tir",
+ "name": "Tir/Asgard"
},
{
"entity": "sensor.192_168_50_1_devices_connected",
diff --git a/.storage/person b/.storage/person
index 4913fd8..0ee0680 100644
--- a/.storage/person
+++ b/.storage/person
@@ -9,9 +9,18 @@
"user_id": "31a296cc30a243089f121cef93b46cc0",
"device_trackers": [
"device_tracker.lm_g810",
- "device_tracker.control"
+ "device_tracker.control",
+ "device_tracker.sm_s926b",
+ "device_tracker.xiaomi12"
],
"id": "suren_a_chilingaryan"
+ },
+ {
+ "id": "tatyana_sinenko",
+ "name": "Tatyana Sinenko",
+ "device_trackers": [],
+ "user_id": "78e6e3c228634732a0ed530e3f87f0da",
+ "picture": null
}
]
}
diff --git a/automations.yaml b/automations.yaml
index 97244a2..f2fa359 100644
--- a/automations.yaml
+++ b/automations.yaml
@@ -119,13 +119,13 @@
default: []
mode: single
- id: '1654901560778'
- alias: 'Living: Office Light'
+ alias: 'Living: LED'
description: ''
use_blueprint:
path: lights/light_switch.yaml
input:
switch: switch.living_lights_right
- light: light.yeelight_color_0x7caaf86
+ light: light.living_led
dblclick:
- parallel:
- service: script.sleep_and_wake
@@ -136,14 +136,11 @@
data: {}
target:
entity_id: switch.lights_living
-- id: '1654986053564'
- alias: 'Hall: Kitchen LED'
- description: ''
- use_blueprint:
- path: lights/light_switch.yaml
- input:
- switch: switch.kitchen_lights_center
- light: switch.kitchen_ledlights
+ - service: light.turn_off
+ metadata: {}
+ data: {}
+ target:
+ entity_id: light.lights_office
- id: '1654986378177'
alias: 'Bedroom: Bulb'
description: ''
@@ -494,7 +491,7 @@
sequence:
- type: toggle
device_id: 95931a9049849e575f2de543adf111eb
- entity_id: light.yeelight_color_0x7caaf86
+ entity_id: light.office_bulb_office_bulb
domain: light
- conditions:
- condition: template
@@ -642,14 +639,6 @@
message: 'Unsupported command: {{ trigger.event.data.command }} with params:
{{ trigger.event.data.args }}'
mode: single
-- id: '1672608894803'
- alias: 'Hall: Hall Camera Switch'
- description: ''
- use_blueprint:
- path: lights/light_switch.yaml
- input:
- switch: switch.hall_lights_center
- light: switch.hall_camera
- id: '1672624569107'
alias: 'Hall: Entrance Combo'
description: ''
@@ -791,7 +780,7 @@
use_blueprint:
path: lights/knob-bulb-control.yaml
input:
- light: light.yeelight_color_0x7caaf86
+ light: light.office_bulb_office_bulb
knob: sensor.office_knob_action
toggle:
- if:
@@ -819,7 +808,7 @@
input:
knob: sensor.office_knob_action
lights:
- - light.yeelight_color_0x7caaf86
+ - light.office_bulb_office_bulb
- light.smart_light
- id: '1672987670623'
alias: 'Office: Dimming Button'
@@ -828,7 +817,7 @@
path: lights/light_button.yaml
input:
button: sensor.office_button_action
- light: light.yeelight_color_0x7caaf86
+ light: light.office_bulb_office_bulb
on_click:
- service: homeassistant.turn_off
data: {}
@@ -852,7 +841,7 @@
hold:
- device_id: 95931a9049849e575f2de543adf111eb
domain: light
- entity_id: light.yeelight_color_0x7caaf86
+ entity_id: light.office_bulb_office_bulb
type: brightness_decrease
- id: '1672989606410'
alias: 'Office: Button'
@@ -861,23 +850,22 @@
path: lights/light_button.yaml
input:
button: sensor.office_button_action
- light: light.yeelight_color_0x7caaf86
+ light: light.office_led_office_led
on_click:
- - if:
+ if:
- condition: state
- entity_id: switch.living_tablelampsocket
+ entity_id: light.office_chair_led_office_chair_led
state: 'on'
then:
- - service: switch.turn_off
- data: {}
+ - service: light.turn_off
target:
- entity_id: switch.living_tablelampsocket
+ entity_id: light.office_chair_led_office_chair_led
else:
- - if:
+ if:
- condition: or
conditions:
- condition: state
- entity_id: switch.smart_power_strip_pro_socket_2
+ entity_id: switch.office_power_strip_socket_2
state: 'off'
- condition: state
entity_id: switch.office_table
@@ -902,10 +890,17 @@
data:
temperature: 4000
off_click:
- - service: switch.turn_on
- data: {}
- target:
- entity_id: switch.living_tablelampsocket
+ - parallel:
+ - service: homeassistant.turn_on
+ target:
+ entity_id:
+ - light.office_chair_led_office_chair_led
+ data: {}
+ - service: homeassistant.turn_off
+ target:
+ entity_id:
+ - light.office_bulb_office_bulb
+ data: {}
dblclick:
- if:
- condition: state
@@ -927,7 +922,7 @@
- condition: or
conditions:
- condition: state
- entity_id: switch.smart_power_strip_pro_socket_2
+ entity_id: switch.office_power_strip_socket_2
state: 'off'
- condition: state
entity_id: switch.office_table
@@ -1012,9 +1007,6 @@
entity_id: input_boolean.mode_away
state: 'off'
- condition: state
- entity_id: input_boolean.mode_alone
- state: 'on'
- - condition: state
entity_id: input_boolean.mode_bright
state: 'on'
then:
@@ -1045,168 +1037,6 @@
domain: light
door_entity:
- binary_sensor.entrance_door_contact
-- id: '1673153262822'
- alias: 'Motions: Global v1'
- description: ''
- trigger:
- - platform: state
- id: home
- entity_id:
- - group.master_phones
- from: not_home
- to: home
- for:
- hours: 0
- minutes: 1
- seconds: 0
- - platform: state
- id: away
- entity_id:
- - group.master_phones
- from: home
- to: not_home
- for:
- hours: 1
- minutes: 0
- seconds: 0
- - type: no_motion
- platform: device
- device_id: 6deb0a6fb7a4a849ba22afc166cf9919
- entity_id: binary_sensor.hall_motions_occupancy
- domain: binary_sensor
- for:
- hours: 24
- minutes: 0
- seconds: 0
- id: empty_day
- - type: no_motion
- platform: device
- device_id: 6deb0a6fb7a4a849ba22afc166cf9919
- entity_id: binary_sensor.hall_motions_occupancy
- domain: binary_sensor
- for:
- hours: 120
- minutes: 0
- seconds: 0
- id: empty_week
- - type: motion
- platform: device
- device_id: 6deb0a6fb7a4a849ba22afc166cf9919
- entity_id: binary_sensor.hall_motions_occupancy
- domain: binary_sensor
- for:
- hours: 0
- minutes: 1
- seconds: 0
- id: motions
- - platform: state
- entity_id:
- - input_boolean.mode_away
- from: 'on'
- to: 'off'
- id: away_gone
- condition: []
- action:
- - choose:
- - conditions:
- - condition: state
- entity_id: input_boolean.mode_house_sleep
- state: 'off'
- - condition: or
- conditions:
- - condition: trigger
- id: empty_day
- - condition: and
- conditions:
- - condition: trigger
- id: away
- - condition: state
- entity_id: input_boolean.mode_alone
- state: 'on'
- - condition: state
- entity_id: binary_sensor.hall_motions_occupancy
- state: 'off'
- for:
- hours: 2
- minutes: 0
- seconds: 0
- sequence:
- - service: script.sleep_and_wake
- data:
- mode: sleep
- target: house
- - service: input_boolean.turn_on
- data: {}
- target:
- entity_id: input_boolean.mode_house_sleep
- - conditions:
- - condition: trigger
- id: empty_week
- - condition: state
- entity_id: input_boolean.mode_house_hibernate
- state: 'off'
- sequence:
- - service: script.sleep_and_wake
- data:
- mode: hibernate
- target: house
- - service: input_boolean.turn_on
- data: {}
- target:
- entity_id: input_boolean.mode_house_hibernate
- - conditions:
- - condition: trigger
- id: home
- sequence:
- - service: switch.turn_off
- data: {}
- target:
- entity_id: switch.hall_lights_right
- - conditions:
- - condition: or
- conditions:
- - condition: state
- entity_id: input_boolean.mode_house_sleep
- state: 'on'
- - condition: state
- entity_id: input_boolean.mode_house_hibernate
- state: 'on'
- - condition: or
- conditions:
- - condition: and
- conditions:
- - condition: trigger
- id: motions
- - condition: state
- entity_id: input_boolean.mode_away
- state: 'off'
- - condition: and
- conditions:
- - condition: trigger
- id: away_gone
- - type: is_motion
- condition: device
- device_id: 6deb0a6fb7a4a849ba22afc166cf9919
- entity_id: binary_sensor.hall_motions_occupancy
- domain: binary_sensor
- sequence:
- - if:
- - condition: state
- entity_id: input_boolean.mode_house_hibernate
- state: 'on'
- then:
- - service: script.sleep_and_wake
- data:
- mode: wake
- target: house
- - service: input_boolean.turn_off
- data: {}
- target:
- entity_id:
- - input_boolean.mode_house_sleep
- - input_boolean.mode_house_hibernate
- default: []
- mode: single
- id: '1673156009695'
alias: 'Motions: Office'
description: ''
@@ -1237,7 +1067,7 @@
- condition: trigger
id: sleep
- condition: state
- entity_id: switch.smart_power_strip_pro_socket_2
+ entity_id: switch.office_power_strip_socket_2
state: 'on'
sequence:
- service: script.sleep_and_wake
@@ -1278,7 +1108,7 @@
trigger:
- platform: state
entity_id:
- - switch.smart_power_strip_pro_socket_4
+ - switch.office_power_strip_socket_4
from: 'off'
to: 'on'
for:
@@ -1309,23 +1139,6 @@
domain: switch
reentry_wait: 10
reentry_timeout: 45
-- id: '1673331563280'
- alias: 'Motions: Bathroom'
- description: ''
- use_blueprint:
- path: motion/occupancy_tracking.yaml
- input:
- entrance: binary_sensor.bathroom_motions_occupancy
- inside: binary_sensor.bathroom_motions_occupancy
- light: switch.bathroom_lights_left
- occupancy: input_boolean.occupancy_bathroom
- on_action:
- - type: turn_on
- device_id: ad2aac96e3377b6e1f336d194b7ba792
- entity_id: switch.bathroom_lights_left
- domain: switch
- reentry_wait: 5
- reentry_timeout: 45
- id: '1674140368136'
alias: 'Office: Sven Scene Switch'
description: ''
@@ -1349,7 +1162,7 @@
input:
knob: sensor.office_knob_action
lights:
- - light.yeelight_color_0x7caaf86
+ - light.office_bulb_office_bulb
media_player: media_player.smartpi
toggle_actions:
- choose:
@@ -1379,39 +1192,14 @@
trigger:
- platform: state
entity_id:
- - binary_sensor.network_route_vivacell
- to: 'on'
+ - binary_sensor.network_route_crd
+ to: 'off'
condition: []
action:
- service: notify.notify
data:
- message: Connected via Vivacell
+ message: CRD net failure
mode: single
-- id: '1680824553612'
- alias: 'Motions: Bedroom'
- description: ''
- use_blueprint:
- path: motion/motion_switch.yaml
- input:
- light_target:
- - switch.bedroom_lights_left
- - switch.bedroom_lights_center
- motion_entity: binary_sensor.bedroom_motions_occupancy
- illumination_test: sun
- illuminance_entity: sensor.kitchen_motions_illuminance_lux
- lux_threshold: 60
- no_motion_wait: 60
- on_cond_should_be_off:
- - switch.lights_bedroom
- on_cond_should_be_on:
- - binary_sensor.hall_motions_occupancy
- off_cond_should_be_off:
- - switch.lights_bedroom
- on_click:
- - service: automation.turn_on
- data: {}
- target:
- entity_id: automation.motions_bedroom_from_hall
- id: '1680827972411'
alias: 'Motions: Guestroom'
description: ''
@@ -1554,49 +1342,6 @@
target:
entity_id:
- automation.motions_bedroom_v2
-- id: '1680923844207'
- alias: 'Motions: Bedroom from Hall'
- description: ''
- trigger:
- - type: no_motion
- platform: device
- device_id: 6deb0a6fb7a4a849ba22afc166cf9919
- entity_id: binary_sensor.hall_motions_occupancy
- domain: binary_sensor
- for:
- hours: 0
- minutes: 0
- seconds: 30
- condition:
- - condition: state
- entity_id: input_boolean.mode_alone
- state: 'on'
- - condition: state
- entity_id:
- - binary_sensor.bedroom_bedsidelamp
- - switch.bedroom_tablelamp
- - switch.bedroom_lights_right
- state: 'off'
- - condition: state
- entity_id:
- - binary_sensor.bedroom_motions_occupancy
- - binary_sensor.bedroom_presence_presence
- state: 'off'
- for:
- hours: 0
- minutes: 0
- seconds: 20
- action:
- - service: homeassistant.turn_off
- data: {}
- target:
- entity_id: switch.lights_bedroom
- - service: automation.turn_off
- data:
- stop_actions: false
- target:
- entity_id: automation.motions_bedroom_from_hall
- mode: single
- id: '1681005500468'
alias: 'Bedroom: Switch3'
description: ''
@@ -1946,7 +1691,7 @@
metadata: {}
mode: single
- id: '1687227285061'
- alias: 'Hall: Hall Camera '
+ alias: 'Hall: Security Cameras'
description: ''
trigger:
- platform: state
@@ -1961,20 +1706,18 @@
state: 'on'
sequence:
- parallel:
- - type: turn_on
- device_id: 26d4f61d01f392350cd4375fcc3dbf50
- entity_id: switch.hall_camera
- domain: switch
+ - service: switch.turn_on
+ target:
+ entity_id: switch.security_cameras
- conditions:
- condition: state
entity_id: input_boolean.mode_away
state: 'off'
sequence:
- parallel:
- - type: turn_off
- device_id: 26d4f61d01f392350cd4375fcc3dbf50
- entity_id: switch.hall_camera
- domain: switch
+ - service: switch.turn_off
+ target:
+ entity_id: switch.security_cameras
mode: single
- id: '1687256985181'
alias: Power Outtage
@@ -1991,7 +1734,7 @@
seconds: 0
- platform: state
entity_id:
- - light.yeelight_color_0x7caaf86
+ - light.office_bulb_office_bulb
from: unavailable
id: office_bulb
for:
@@ -2015,7 +1758,7 @@
entity_id: switch.plugs_infrastructure
- type: turn_off
device_id: 95931a9049849e575f2de543adf111eb
- entity_id: light.yeelight_color_0x7caaf86
+ entity_id: light.office_bulb_office_bulb
domain: light
- type: turn_off
device_id: bf45f1d630db6e2aa1307866603f548a
@@ -2086,7 +1829,7 @@
trigger:
- platform: state
entity_id:
- - switch.smart_power_strip_pro_socket_1
+ - switch.office_power_strip_socket_1
to: unavailable
for:
hours: 0
@@ -2094,7 +1837,7 @@
seconds: 0
- platform: state
entity_id:
- - switch.smart_power_strip_pro_socket_1
+ - switch.office_power_strip_socket_1
to: 'off'
for:
hours: 0
@@ -2110,10 +1853,18 @@
seconds: 0
condition: []
action:
- - service: notify.mobile_app_lm_g810
+ - service: notify.mobile_app_sm_s926b
data:
message: SmartPI out of power
- service: notify.smartpi
data:
message: SmartPI out of power
mode: single
+- id: '1757282812187'
+ alias: 'Guestroom: Lights sync'
+ description: ''
+ use_blueprint:
+ path: lights/light_sync.yaml
+ input:
+ master: switch.guestroom_lights_left
+ slave: switch.guestroom_lights_center
diff --git a/blueprints/automation/lights/light_switch.yaml b/blueprints/automation/lights/light_switch.yaml
index b3a4f81..c50e603 100644
--- a/blueprints/automation/lights/light_switch.yaml
+++ b/blueprints/automation/lights/light_switch.yaml
@@ -106,9 +106,9 @@ action:
- "{{ trigger.entity_id == light_entity }}"
sequence:
- service: >
- {% if trigger.to_state.state == "on" %}
+ {% if trigger.from_state.state == "off" and trigger.to_state.state == "on" %}
switch.turn_on
- {% else %}
+ {% elif trigger.from_state.state == "on" and trigger.to_state.state == "off" %}
switch.turn_off
{% endif %}
target:
diff --git a/blueprints/automation/motion/halabyan24.yaml b/blueprints/automation/motion/halabyan24.yaml
index 03f4ff3..f665303 100644
--- a/blueprints/automation/motion/halabyan24.yaml
+++ b/blueprints/automation/motion/halabyan24.yaml
@@ -32,7 +32,7 @@ trigger:
- platform: state
id: around_home
entity_id:
- - device_tracker.lm_g810
+ - device_tracker.sm_s926b
from: not_home
to: HomeHalabyanExtended
for:
@@ -43,7 +43,7 @@ trigger:
- platform: state
id: around_home2
entity_id:
- - device_tracker.lm_g810
+ - device_tracker.sm_s926b
from: not_home
to: home
for:
@@ -55,7 +55,7 @@ trigger:
- platform: state
id: away_from_home
entity_id:
- - device_tracker.lm_g810
+ - device_tracker.sm_s926b
from: HomeHalabyanExtended
to: not_home
for:
@@ -66,7 +66,7 @@ trigger:
- platform: state
id: away_from_home2
entity_id:
- - device_tracker.lm_g810
+ - device_tracker.sm_s926b
from: home
to: not_home
for:
diff --git a/configuration.yaml b/configuration.yaml
index fb53037..cec4586 100644
--- a/configuration.yaml
+++ b/configuration.yaml
@@ -28,10 +28,10 @@ recorder:
influxdb:
api_version: 2
- host: suren.me
+ host: 192.168.15.25
port: 8086
ssl: true
- verify_ssl: true
+ verify_ssl: false
ssl_ca_cert: /config/certs/ca.crt
token: ldzUdZynt3sPfCC4YetZzD5Z9D3J-WlqKOYeTK9nooMf51ly5wbSzozhyYDII8ROhCLH-eeJuFlPWs83DS_xQg==
organization: SmartPI
@@ -124,6 +124,8 @@ ffmpeg:
wake_on_lan:
+patch_asyncssh:
+
sensor:
- platform: time_date
display_options:
diff --git a/custom/group.yaml b/custom/group.yaml
index 7815cce..cdd954b 100644
--- a/custom/group.yaml
+++ b/custom/group.yaml
@@ -1,10 +1,14 @@
master_phones:
name: "master_phones"
entities:
- - device_tracker.legion8
- - device_tracker.lm_g810
+ - device_tracker.samsa
+ - device_tracker.sm_s926b
+ - device_tracker.xiaomi12
+# - device_tracker.legion8
+# - device_tracker.lm_g810
master_laptops:
name: "master_laptops"
entities:
- - device_tracker.nyx
+ - device_tracker.tir
+# - device_tracker.nyx
diff --git a/custom/input_number.yaml b/custom/input_number.yaml
index 2d7ec1c..9054fe0 100644
--- a/custom/input_number.yaml
+++ b/custom/input_number.yaml
@@ -40,3 +40,8 @@
max: 10.0
step: 1.0
initial: 0.0
+ living_lighting:
+ min: 1.0
+ max: 5.0
+ step: 1.0
+ initial: 1.0
diff --git a/custom/scripts/sleep-and-wake.yaml b/custom/scripts/sleep-and-wake.yaml
index a430515..a5782c1 100644
--- a/custom/scripts/sleep-and-wake.yaml
+++ b/custom/scripts/sleep-and-wake.yaml
@@ -41,7 +41,7 @@ sleep_and_wake:
entity_id: scene.lg_aircon_power_off
- service: switch.turn_off
target:
- entity_id: switch.smart_power_strip_pro_socket_2
+ entity_id: switch.office_power_strip_socket_2
- service: switch.turn_off
target:
entity_id: switch.living_lights_right
@@ -66,7 +66,7 @@ sleep_and_wake:
entity_id: scene.lg_aircon_power_off
- service: switch.turn_off
target:
- entity_id: switch.smart_power_strip_pro_socket_2
+ entity_id: switch.office_power_strip_socket_2
- service: switch.turn_off
target:
entity_id: switch.living_lights_right
@@ -86,7 +86,7 @@ sleep_and_wake:
target:
entity_id:
- switch.plugs_office
- - switch.smart_power_strip_pro_socket_2
+ - switch.office_power_strip_socket_2
- service: wake_on_lan.send_magic_packet
data:
mac: "e8:6a:64:7b:5d:0a"
@@ -128,7 +128,7 @@ sleep_and_wake:
entity_id: media_player.smartpi
- service: switch.turn_off
target:
- entity_id: switch.smart_power_strip_pro_socket_2
+ entity_id: switch.office_power_strip_socket_2
- service: switch.turn_off
target:
entity_id: switch.lights_all
diff --git a/custom/scripts/turn-on-office-lights.yaml b/custom/scripts/turn-on-office-lights.yaml
index f9615a0..9520db0 100644
--- a/custom/scripts/turn-on-office-lights.yaml
+++ b/custom/scripts/turn-on-office-lights.yaml
@@ -23,8 +23,15 @@ turn_on_office_lights:
brightness_pct: 100
kelvin: "{{ temp }}"
target:
- entity_id: light.yeelight_color_0x7caaf86
+ entity_id:
+ - light.office_bulb_office_bulb
+ - light.office_led_office_led
- service: homeassistant.turn_off
data: {}
target:
- entity_id: switch.lights_living_lustre
+ entity_id:
+ - switch.lights_living_lustre
+ - light.office_chair_led_office_chair_led
+ - switch.living_tablelampsocket
+
+
diff --git a/custom_components/patch_asyncssh/__init__.py b/custom_components/patch_asyncssh/__init__.py
new file mode 100644
index 0000000..cdcb095
--- /dev/null
+++ b/custom_components/patch_asyncssh/__init__.py
@@ -0,0 +1,49 @@
+# /config/custom_components/patch_asyncssh/__init__.py
+from __future__ import annotations
+import logging
+
+_LOGGER = logging.getLogger(__name__)
+
+async def async_setup(hass, config):
+ """Patch asyncssh at HA startup, then return True to finish setup."""
+ try:
+ import asyncssh
+
+ # Re-expose ReadHostKeysPolicy at top-level for libs that expect it
+ try:
+ from asyncssh.hostkeys import ReadHostKeysPolicy
+ asyncssh.ReadHostKeysPolicy = ReadHostKeysPolicy # type: ignore[attr-defined]
+ except Exception:
+ pass
+
+ # Patch only once
+ if not getattr(asyncssh, "_ha_patched_connect", False):
+ _real_connect = asyncssh.connect
+
+ def _patched_connect(*args, **kwargs):
+ # Expand allowed *server* host key algorithms to match Dropbear
+ algs = list(
+ kwargs.get("server_host_key_algs")
+ or kwargs.get("host_key_algs")
+ or []
+ )
+ wanted = ["ssh-ed25519", "ecdsa-sha2-nistp256", "rsa-sha2-256"]
+ for a in wanted:
+ if a not in algs:
+ algs.append(a)
+ kwargs["server_host_key_algs"] = algs or wanted
+
+ return _real_connect(*args, **kwargs)
+
+ asyncssh.connect = _patched_connect # type: ignore[assignment]
+ asyncssh._ha_patched_connect = True # type: ignore[attr-defined]
+ _LOGGER.info(
+ "patch_asyncssh: asyncssh.connect patched (added algs %s)",
+ ["ssh-ed25519", "ecdsa-sha2-nistp256", "rsa-sha2-256"],
+ )
+ else:
+ _LOGGER.debug("patch_asyncssh: asyncssh.connect already patched")
+ except Exception:
+ _LOGGER.exception("patch_asyncssh: failed to patch asyncssh")
+
+ return True
diff --git a/custom_components/patch_asyncssh/__pycache__/__init__.cpython-312.pyc b/custom_components/patch_asyncssh/__pycache__/__init__.cpython-312.pyc
new file mode 100644
index 0000000..1788a71
--- /dev/null
+++ b/custom_components/patch_asyncssh/__pycache__/__init__.cpython-312.pyc
Binary files differ
diff --git a/custom_components/patch_asyncssh/manifest.json b/custom_components/patch_asyncssh/manifest.json
new file mode 100644
index 0000000..7017f14
--- /dev/null
+++ b/custom_components/patch_asyncssh/manifest.json
@@ -0,0 +1,9 @@
+{
+ "domain": "patch_asyncssh",
+ "name": "Patch AsyncSSH (host key algs)",
+ "version": "0.0.1",
+ "documentation": "",
+ "requirements": [],
+ "codeowners": [],
+ "iot_class": "local_push"
+}
diff --git a/export/automation_states.json b/export/automation_states.json
new file mode 100644
index 0000000..32f51a2
--- /dev/null
+++ b/export/automation_states.json
@@ -0,0 +1,194 @@
+[
+ {
+ "entity_id": "automation.alarm_power",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.alarms_2",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.alarms_doorbell",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.alarms_safety",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.alarms_wine_notification",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.bedroom",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.bedroom_light_sync",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.bedroom_switch3",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.guestroom_lights_sync",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.guestroom_mode_switch",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.hall_entrance_combo3",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.hall_hall_camera",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.hall_kitchen_combo",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.hall_kitchen_music",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.hall_kitchen_sync",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.hall_manual_mode_switch",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.infrastructure",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.kitchen_motions",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.knob_bulb_control",
+ "state": "off"
+ },
+ {
+ "entity_id": "automation.knob_multi_bulb_control",
+ "state": "off"
+ },
+ {
+ "entity_id": "automation.light_switch",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.living_light_sync",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.modes",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_bathroom_v2",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_bedroom_aircon",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_bedroom_v2",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_global_v2",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_guestroom",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_kitchen_music",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_living",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_living_office_wakeup",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_night_light",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.motions_office",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.network_backup",
+ "state": "off"
+ },
+ {
+ "entity_id": "automation.new_automation",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.new_automation_3",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.night_light_off",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.occupancy_tracking",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.office_button",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.office_dimming_button",
+ "state": "off"
+ },
+ {
+ "entity_id": "automation.office_knob_sound_bulb_control",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.office_sven",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.power_outtage",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.security_camera",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.speakerphone",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.sven_scene_switch",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.telegram",
+ "state": "on"
+ },
+ {
+ "entity_id": "automation.time",
+ "state": "on"
+ }
+]
diff --git a/export/extract.sh b/export/extract.sh
new file mode 100644
index 0000000..b59fc69
--- /dev/null
+++ b/export/extract.sh
@@ -0,0 +1,2 @@
+HA_TOKEN=$(cat ha_token)
+curl -s -H "Authorization: Bearer $HA_TOKEN" http://localhost:8123/api/states | jq '[ .[] | select(.entity_id | startswith("automation.")) | {entity_id, state} ] | sort_by(.entity_id)' > automation_states.json
diff --git a/hacs-install.sh b/hacs-install.sh
new file mode 100644
index 0000000..baf94d0
--- /dev/null
+++ b/hacs-install.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+# wget -O - https://get.hacs.xyz | bash -
+set -e
+
+RED_COLOR='\033[0;31m'
+GREEN_COLOR='\033[0;32m'
+GREEN_YELLOW='\033[1;33m'
+NO_COLOR='\033[0m'
+
+declare haPath
+declare -a paths=(
+ "$PWD"
+ "$PWD/config"
+ "/config"
+ "$HOME/.homeassistant"
+ "/usr/share/hassio/homeassistant"
+)
+declare currentVersion
+declare currentYear
+declare currentMonth
+declare currentPatch
+declare targetVersion
+declare targetYear
+declare targetMonth
+declare targetPatch
+
+function info () { echo -e "${GREEN_COLOR}INFO: $1${NO_COLOR}";}
+function warn () { echo -e "${GREEN_YELLOW}WARN: $1${NO_COLOR}";}
+function error () { echo -e "${RED_COLOR}ERROR: $1${NO_COLOR}"; if [ "$2" != "false" ]; then exit 1;fi; }
+
+function checkRequirement () {
+ if [ -z "$(command -v "$1")" ]; then
+ error "'$1' is not installed"
+ fi
+}
+
+checkRequirement "wget"
+checkRequirement "unzip"
+
+info "Trying to find the correct directory..."
+for path in "${paths[@]}"; do
+ if [ -n "$haPath" ]; then
+ break
+ fi
+
+ if [ -f "$path/.HA_VERSION" ]; then
+ haPath="$path"
+ fi
+done
+
+if [ -n "$haPath" ]; then
+ info "Found Home Assistant configuration directory at '$haPath'"
+ cd "$haPath" || error "Could not change path to $haPath"
+ if [ ! -d "$haPath/custom_components" ]; then
+ info "Creating custom_components directory..."
+ mkdir "$haPath/custom_components"
+ fi
+
+ info "Changing to the custom_components directory..."
+ cd "$haPath/custom_components" || error "Could not change path to $haPath/custom_components"
+
+ info "Downloading HACS"
+ wget "https://github.com/hacs/integration/releases/latest/download/hacs.zip"
+
+ if [ -d "$haPath/custom_components/hacs" ]; then
+ warn "HACS directory already exist, cleaning up..."
+ rm -R "$haPath/custom_components/hacs"
+ fi
+
+ info "Creating HACS directory..."
+ mkdir "$haPath/custom_components/hacs"
+
+ info "Unpacking HACS..."
+ unzip "$haPath/custom_components/hacs.zip" -d "$haPath/custom_components/hacs" >/dev/null 2>&1
+
+
+ echo
+ info "Verifying versions"
+ targetVersion=$(sed -n -e '/^MINIMUM_HA_VERSION/p' "$haPath/custom_components/hacs/const.py" | cut -d '"' -f 2)
+ currentVersion=$(cat "$haPath/.HA_VERSION")
+
+ info "Current version is ${currentVersion}, minimum version is ${targetVersion}"
+
+ targetYear=$(echo "${targetVersion}" | cut -d "." -f 1)
+ currentYear=$(echo "${currentVersion}" | cut -d "." -f 1)
+
+ if [ "${currentYear}" -lt "${targetYear}" ]; then
+ rm -R "$haPath/custom_components/hacs"
+ error "Version ${currentVersion} is not new enough, needs at least ${targetVersion}"
+ fi
+
+ if [ "${currentYear}" == "${targetYear}" ]; then
+ targetMonth=$(echo "${targetVersion}" | cut -d "." -f 2)
+ currentMonth=$(echo "${currentVersion}" | cut -d "." -f 2)
+
+ if [ "${currentMonth}" -lt "${targetMonth}" ]; then
+ rm -R "$haPath/custom_components/hacs"
+ error "Version ${currentVersion} is not new enough, needs at least ${targetVersion}"
+ fi
+
+ if [ "${currentMonth}" == "${targetMonth}" ]; then
+ targetPatch=$(echo "${targetVersion}" | cut -d "." -f 3)
+ currentPatch=$(echo "${currentVersion}" | cut -d "." -f 3)
+
+ if [ "${currentPatch}" -lt "${targetPatch}" ]; then
+ rm -R "$haPath/custom_components/hacs"
+ error "Version ${currentVersion} is not new enough, needs at least ${targetVersion}"
+ fi
+ fi
+ fi
+
+ echo
+ info "Removing HACS zip file..."
+ rm "$haPath/custom_components/hacs.zip"
+ info "Installation complete."
+ echo
+ info "Remember to restart Home Assistant before you configure it"
+
+else
+ echo
+ error "Could not find the directory for Home Assistant" false
+ echo "Manually change the directory to the root of your Home Assistant configuration"
+ echo "With the user that is running Home Assistant"
+ echo "and run the script again"
+ exit 1
+fi
diff --git a/scenes.yaml b/scenes.yaml
index 9c03dd5..f29302c 100644
--- a/scenes.yaml
+++ b/scenes.yaml
@@ -7,3 +7,660 @@
metadata:
scene.hyundai_aircon_cool_18:
entity_only: false
+- id: '1757157111272'
+ name: Living Lights/Office
+ entities:
+ light.office_led_office_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode: color_temp
+ brightness: 255
+ color_temp_kelvin: 6024
+ color_temp: 166
+ hs_color:
+ - 31.007
+ - 6.862
+ rgb_color:
+ - 255
+ - 246
+ - 237
+ xy_color:
+ - 0.339
+ - 0.338
+ friendly_name: Office/LED Office/LED
+ supported_features: 44
+ state: 'on'
+ light.office_bulb_office_bulb:
+ min_color_temp_kelvin: 2000
+ max_color_temp_kelvin: 6535
+ min_mireds: 153
+ max_mireds: 500
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode: color_temp
+ brightness: 255
+ color_temp_kelvin: 5025
+ color_temp: 199
+ hs_color:
+ - 27.028
+ - 18.905
+ rgb_color:
+ - 255
+ - 228
+ - 206
+ xy_color:
+ - 0.371
+ - 0.349
+ friendly_name: Office/Bulb Office/Bulb
+ supported_features: 44
+ state: 'on'
+ light.office_chair_led_office_chair_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Chair LED Office/Chair LED
+ supported_features: 44
+ state: 'off'
+ switch.lights_living_lustre:
+ entity_id:
+ - switch.living_lights_left
+ - switch.living_lights_center
+ friendly_name: Lights Living Lustre
+ state: 'off'
+ switch.living_tablelampsocket:
+ friendly_name: Living/TableLampSocket Living/TableLampSocket
+ state: 'off'
+ switch.living_led_power_switch:
+ friendly_name: Living/LED Power Switch
+ state: 'off'
+ metadata:
+ light.office_led_office_led:
+ entity_only: true
+ light.office_bulb_office_bulb:
+ entity_only: true
+ light.office_chair_led_office_chair_led:
+ entity_only: true
+ switch.lights_living_lustre:
+ entity_only: true
+ switch.living_tablelampsocket:
+ entity_only: true
+ switch.living_led_power_switch:
+ entity_only: true
+- id: '1757157480085'
+ name: Living Lights/Coffee
+ entities:
+ light.office_led_office_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/LED Office/LED
+ supported_features: 44
+ state: 'off'
+ light.office_bulb_office_bulb:
+ min_color_temp_kelvin: 2000
+ max_color_temp_kelvin: 6535
+ min_mireds: 153
+ max_mireds: 500
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Bulb Office/Bulb
+ supported_features: 44
+ state: 'off'
+ light.office_chair_led_office_chair_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode: color_temp
+ brightness: 255
+ color_temp_kelvin: 6329
+ color_temp: 158
+ hs_color:
+ - 37.231
+ - 3.66
+ rgb_color:
+ - 255
+ - 251
+ - 245
+ xy_color:
+ - 0.331
+ - 0.335
+ friendly_name: Office/Chair LED Office/Chair LED
+ supported_features: 44
+ state: 'on'
+ switch.lights_living_lustre:
+ entity_id:
+ - switch.living_lights_left
+ - switch.living_lights_center
+ friendly_name: Lights Living Lustre
+ state: 'off'
+ switch.living_tablelampsocket:
+ friendly_name: Living/TableLampSocket Living/TableLampSocket
+ state: 'off'
+ switch.living_led_power_switch:
+ friendly_name: Living/LED Power Switch
+ state: 'off'
+ metadata:
+ light.office_led_office_led:
+ entity_only: true
+ light.office_bulb_office_bulb:
+ entity_only: true
+ light.office_chair_led_office_chair_led:
+ entity_only: true
+ switch.lights_living_lustre:
+ entity_only: true
+ switch.living_tablelampsocket:
+ entity_only: true
+ switch.living_led_power_switch:
+ entity_only: true
+- id: '1757286334895'
+ name: Living Lights/TV
+ entities:
+ light.office_led_office_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/LED Office/LED
+ supported_features: 44
+ state: 'off'
+ light.office_bulb_office_bulb:
+ min_color_temp_kelvin: 2000
+ max_color_temp_kelvin: 6535
+ min_mireds: 153
+ max_mireds: 500
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Bulb Office/Bulb
+ supported_features: 44
+ state: 'off'
+ light.office_chair_led_office_chair_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Chair LED Office/Chair LED
+ supported_features: 44
+ state: 'off'
+ switch.lights_living_lustre:
+ entity_id:
+ - switch.living_lights_left
+ - switch.living_lights_center
+ friendly_name: Lights Living Lustre
+ state: 'off'
+ switch.living_tablelampsocket:
+ friendly_name: Living/TableLampSocket Living/TableLampSocket
+ state: 'on'
+ switch.living_led_power_switch:
+ friendly_name: Living/LED Power Switch
+ state: 'off'
+ metadata:
+ light.office_led_office_led:
+ entity_only: true
+ light.office_bulb_office_bulb:
+ entity_only: true
+ light.office_chair_led_office_chair_led:
+ entity_only: true
+ switch.lights_living_lustre:
+ entity_only: true
+ switch.living_tablelampsocket:
+ entity_only: true
+ switch.living_led_power_switch:
+ entity_only: true
+- id: '1757329040789'
+ name: Living Lights/Lights
+ entities:
+ light.office_led_office_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/LED Office/LED
+ supported_features: 44
+ state: 'off'
+ light.office_bulb_office_bulb:
+ min_color_temp_kelvin: 2000
+ max_color_temp_kelvin: 6535
+ min_mireds: 153
+ max_mireds: 500
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Bulb Office/Bulb
+ supported_features: 44
+ state: 'off'
+ light.office_chair_led_office_chair_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Chair LED Office/Chair LED
+ supported_features: 44
+ state: 'off'
+ switch.lights_living_lustre:
+ entity_id:
+ - switch.living_lights_left
+ - switch.living_lights_center
+ friendly_name: Lights Living Lustre
+ state: 'on'
+ switch.living_tablelampsocket:
+ friendly_name: Living/TableLampSocket Living/TableLampSocket
+ state: 'off'
+ switch.living_led_power_switch:
+ friendly_name: Living/LED Power Switch
+ state: 'off'
+ metadata:
+ light.office_led_office_led:
+ entity_only: true
+ light.office_bulb_office_bulb:
+ entity_only: true
+ light.office_chair_led_office_chair_led:
+ entity_only: true
+ switch.lights_living_lustre:
+ entity_only: true
+ switch.living_tablelampsocket:
+ entity_only: true
+ switch.living_led_power_switch:
+ entity_only: true
+- id: '1757329097076'
+ name: Living Lights/Lustre
+ entities:
+ light.office_led_office_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/LED Office/LED
+ supported_features: 44
+ state: 'off'
+ light.office_bulb_office_bulb:
+ min_color_temp_kelvin: 2000
+ max_color_temp_kelvin: 6535
+ min_mireds: 153
+ max_mireds: 500
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Bulb Office/Bulb
+ supported_features: 44
+ state: 'off'
+ light.office_chair_led_office_chair_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Chair LED Office/Chair LED
+ supported_features: 44
+ state: 'off'
+ switch.lights_living_lustre:
+ entity_id:
+ - switch.living_lights_left
+ - switch.living_lights_center
+ friendly_name: Lights Living Lustre
+ state: 'on'
+ switch.living_tablelampsocket:
+ friendly_name: Living/TableLampSocket Living/TableLampSocket
+ state: 'off'
+ switch.living_led_power_switch:
+ friendly_name: Living/LED Power Switch
+ state: 'off'
+ metadata:
+ light.office_led_office_led:
+ entity_only: true
+ light.office_bulb_office_bulb:
+ entity_only: true
+ light.office_chair_led_office_chair_led:
+ entity_only: true
+ switch.lights_living_lustre:
+ entity_only: true
+ switch.living_tablelampsocket:
+ entity_only: true
+ switch.living_led_power_switch:
+ entity_only: true
+- id: '1757329178356'
+ name: Living Lights/Romantic
+ entities:
+ light.office_led_office_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/LED Office/LED
+ supported_features: 44
+ state: 'off'
+ light.office_bulb_office_bulb:
+ min_color_temp_kelvin: 2000
+ max_color_temp_kelvin: 6535
+ min_mireds: 153
+ max_mireds: 500
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Bulb Office/Bulb
+ supported_features: 44
+ state: 'off'
+ light.office_chair_led_office_chair_led:
+ min_color_temp_kelvin: 2020
+ max_color_temp_kelvin: 6329
+ min_mireds: 158
+ max_mireds: 495
+ effect_list:
+ - blink
+ - breathe
+ - okay
+ - channel_change
+ - finish_effect
+ - stop_effect
+ supported_color_modes:
+ - color_temp
+ - xy
+ effect:
+ color_mode:
+ brightness:
+ color_temp_kelvin:
+ color_temp:
+ hs_color:
+ rgb_color:
+ xy_color:
+ friendly_name: Office/Chair LED Office/Chair LED
+ supported_features: 44
+ state: 'off'
+ switch.lights_living_lustre:
+ entity_id:
+ - switch.living_lights_left
+ - switch.living_lights_center
+ friendly_name: Lights Living Lustre
+ state: 'off'
+ switch.living_tablelampsocket:
+ friendly_name: Living/TableLampSocket Living/TableLampSocket
+ state: 'off'
+ switch.living_led_power_switch:
+ friendly_name: Living/LED Power Switch
+ state: 'on'
+ metadata:
+ light.office_led_office_led:
+ entity_only: true
+ light.office_bulb_office_bulb:
+ entity_only: true
+ light.office_chair_led_office_chair_led:
+ entity_only: true
+ switch.lights_living_lustre:
+ entity_only: true
+ switch.living_tablelampsocket:
+ entity_only: true
+ switch.living_led_power_switch:
+ entity_only: true
diff --git a/scripts.yaml b/scripts.yaml
index 8011f96..e8be6cf 100644
--- a/scripts.yaml
+++ b/scripts.yaml
@@ -104,7 +104,7 @@ turn_on_office_lights_v1:
brightness_pct: 100
kelvin: 4500
target:
- entity_id: light.yeelight_color_0x7caaf86
+ entity_id: light.office_bulb_office_bulb
- service: homeassistant.turn_off
data: {}
target: