Compare commits

...

10 Commits

Author SHA1 Message Date
Martin Bauer a8b5c425a9 Config changes - kinderzimmer IR 2024-01-06 12:08:11 +01:00
Martin Bauer 4eb59dd8bc new files 2023-01-03 20:43:26 +01:00
Martin Bauer 7f7bb30c3d recent updates 2023-01-03 20:42:39 +01:00
Martin Bauer 0cf621214f removed deprecated mqtt config 2022-09-30 19:21:11 +00:00
Martin Bauer f261b582b0 update 2022-08-28 22:33:35 +02:00
Martin Bauer 91fc9c38ff Frontend config changes 2021-10-05 11:32:39 +00:00
Martin Bauer ab2ab9f9d7 Changed automations to pyscript 2021-10-05 11:22:27 +00:00
Martin Bauer a0e498edeb Full switch from fhem to homematic ccu + frontend cleanup 2021-09-19 08:36:59 +00:00
Martin Bauer 33356fa8ca Started to switch from fhem to ccu 2021-09-18 05:04:51 +00:00
Martin Bauer e063a1303f Removed custom ondilo stuff, since official version available 2021-05-31 16:07:55 +00:00
98 changed files with 87857 additions and 14885 deletions

View File

@ -1 +1 @@
2021.1.5
2022.12.8

7
.gitignore vendored
View File

@ -3,9 +3,16 @@ __pycache__
node_modules
/tts
/deps
/blueprints
/home-assistant.log
# Generated files
/groups.yaml
/configuration.yaml
/home-assistant_v2.db
/secrets.yaml
/www/community/
/custom_components/hacs
/custom_components/scheduler
/custom_components/pyscript
/themes
/.storage/hacs/*.hacs

27
.shopping_list.json Normal file
View File

@ -0,0 +1,27 @@
[
{
"complete": false,
"id": "1593f9c74a054764a96d924c66771f18",
"name": "rasierschaum"
},
{
"name": "Entwicklerwerkzeuge",
"id": "527ee67903de4f8b9f963ab5f79ecf81",
"complete": false
},
{
"name": "test",
"id": "3578c4df110a442f82a27c0049fc3cef",
"complete": false
},
{
"name": "",
"id": "e882172545a048bb9367c63b8f64a3cc",
"complete": false
},
{
"name": "Sirites",
"id": "b2028f9edc7d4e1ea4b5f324d2d26ebc",
"complete": false
}
]

8
.storage/alexa Normal file
View File

@ -0,0 +1,8 @@
{
"version": 1,
"minor_version": 1,
"key": "alexa",
"data": {
"authorized": true
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,11 @@
{
"version": 1,
"minor_version": 1,
"key": "auth_module.totp",
"data": {
"users": {
"2ffcb10d3db745b396789364fdef72ec": "VSSLF24TFVBBITYM"
"2ffcb10d3db745b396789364fdef72ec": "VSSLF24TFVBBITYM",
"bd0f10a32b324e85998881cb5b748d0f": "BUFHT7N5LWOYLARK2NPWFPTFN6FP6Z2D"
}
}
},
"key": "auth_module.totp",
"version": 1
}

14
.storage/core.analytics Normal file
View File

@ -0,0 +1,14 @@
{
"version": 1,
"key": "core.analytics",
"data": {
"preferences": {
"base": true,
"diagnostics": false,
"usage": true,
"statistics": false
},
"onboarded": true,
"uuid": "1a941b94815249978a4977f6518e14da"
}
}

View File

@ -1,20 +1,44 @@
{
"version": 1,
"minor_version": 1,
"key": "core.area_registry",
"data": {
"areas": [
{
"name": "Arbeitszimmer",
"id": "46ebd507f8f348508653f61054f67eb0",
"name": "Arbeitszimmer Martin"
"picture": null
},
{
"name": "Wohnbereich",
"id": "93728f2df4d94517803b87de4d4028bb",
"name": "Wohnbereich"
"picture": null
},
{
"name": "Küche",
"id": "e58ae8bf5c7847af89a727d7949016f0",
"name": "K\u00fcche"
"picture": null
},
{
"name": "Rest",
"id": "rest",
"picture": null
},
{
"name": "Schlafzimmer",
"id": "schlafzimmer",
"picture": null
},
{
"name": "Garten",
"id": "garten",
"picture": null
},
{
"name": "Dachgeschoss",
"id": "dachgeschoss",
"picture": null
}
]
},
"key": "core.area_registry",
"version": 1
}
}

View File

@ -1,4 +1,7 @@
{
"version": 1,
"minor_version": 3,
"key": "core.config",
"data": {
"elevation": 368,
"external_url": "https://ha.bauer.tech",
@ -7,8 +10,8 @@
"location_name": "MyHome",
"longitude": 10.9831468,
"time_zone": "Europe/Berlin",
"unit_system": "metric"
},
"key": "core.config",
"version": 1
"unit_system": "metric",
"unit_system_v2": "metric",
"language": "de"
}
}

View File

@ -1,5 +1,6 @@
{
"version": 1,
"minor_version": 1,
"key": "core.config_entries",
"data": {
"entries": [
@ -11,15 +12,17 @@
"data": {
"bridge_id": "001788FFFE284411",
"host": "192.168.178.20",
"username": "dElg-A-1TtbLThgrsNxEn5FoBcB9pUFSA7JDGXls"
"api_key": "dElg-A-1TtbLThgrsNxEn5FoBcB9pUFSA7JDGXls",
"api_version": 2
},
"options": {},
"system_options": {
"disable_new_entities": false
"options": {
"ignore_availability": []
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "discovery",
"connection_class": "local_poll",
"unique_id": "001788284411"
"unique_id": "001788284411",
"disabled_by": null
},
{
"entry_id": "c4adbdd188db4f34ad27d14ba2d71abe",
@ -27,16 +30,20 @@
"domain": "upnp",
"title": "UPnP/IGD",
"data": {
"hostname": "192.168.178.1",
"st": "urn:schemas-upnp-org:device:InternetGatewayDevice:1",
"udn": "uuid:75802409-bccb-40e7-8e6c-3431C416294A"
"udn": "uuid:75802409-bccb-40e7-8e6c-3431C416294A",
"original_udn": "uuid:75802409-bccb-40e7-8e6c-3431C416294A",
"mac_address": "34:31:c4:16:29:4a",
"location": "http://192.168.178.1:49000/igddesc.xml",
"host": "192.168.178.1"
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "discovery",
"connection_class": "local_poll",
"unique_id": "uuid:75802409-bccb-40e7-8e6c-3431C416294A::urn:schemas-upnp-org:device:InternetGatewayDevice:1"
"unique_id": "uuid:75802409-bccb-40e7-8e6c-3431C416294A::urn:schemas-upnp-org:device:InternetGatewayDevice:1",
"disabled_by": null
},
{
"entry_id": "663be35bc88343568ce876c17f04d781",
@ -49,12 +56,11 @@
"webhook_id": "6a1bb2901d9de0766b306c697bbeea3969a17a974fcc97e7bbd63d61b5efd0cb"
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"connection_class": "unknown",
"unique_id": null
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "c07d023c89d248198b049d2e29edf01d",
@ -63,12 +69,11 @@
"title": "Home Assistant iOS",
"data": {},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "import",
"connection_class": "cloud_push",
"unique_id": null
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "5939b357c7df412a8393a2dad15b684c",
@ -80,12 +85,11 @@
"usb_path": "/dev/zwave-stick"
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"connection_class": "local_push",
"unique_id": null
"unique_id": null,
"disabled_by": "user"
},
{
"entry_id": "e1101f79ce9b41a28359a95f85e57b63",
@ -94,7 +98,7 @@
"title": "BauerHome:51827",
"data": {
"name": "BauerHome",
"port": 51827
"port": 21063
},
"options": {
"filter": {
@ -167,23 +171,20 @@
"light.kinderzimmer_deckenlampe",
"cover.kinderzimmer_rollo"
],
"include_entity_globs": [],
"exclude_entity_globs": [],
"exclude_domains": [],
"exclude_entities": [],
"include_domains": [],
"exclude_domains": []
"exclude_entity_globs": [],
"include_entity_globs": []
},
"auto_start": true,
"safe_mode": false,
"entity_config": {},
"mode": "bridge"
},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "import",
"connection_class": "local_push",
"unique_id": null
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "2a43c64e3cef45f0b86f47557ed60e97",
@ -192,12 +193,11 @@
"title": "Shopping List",
"data": {},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "import",
"connection_class": "local_push",
"unique_id": "shopping_list"
"unique_id": "shopping_list",
"disabled_by": null
},
{
"entry_id": "4fe874f0bdd44d0a906e76428d63b87a",
@ -206,19 +206,30 @@
"title": "Mosquitto broker",
"data": {
"broker": "core-mosquitto",
"discovery": false,
"password": "zoocaa2tai6laaGeeVooShohdeefiLeequoophahwa0oobahnaeghaidait2ahPh",
"port": 1883,
"protocol": "3.1.1",
"username": "homeassistant"
"username": "homeassistant",
"password": "zoocaa2tai6laaGeeVooShohdeefiLeequoophahwa0oobahnaeghaidait2ahPh",
"birth_message": {
"topic": "homeassistant/status",
"payload": "online",
"qos": 0,
"retain": false
},
"will_message": {
"topic": "homeassistant/status",
"payload": "offline",
"qos": 0,
"retain": false
},
"discovery": true,
"discovery_prefix": "homeassistant"
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "hassio",
"connection_class": "local_push",
"unique_id": null
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "3af1e592e74341f8bdb3aa8c9f43ae3d",
@ -227,12 +238,11 @@
"title": "Ignored",
"data": {},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"connection_class": "local_poll",
"unique_id": "25b48604-fbf3-418c-91c5-321c6c2553f7"
"unique_id": "25b48604-fbf3-418c-91c5-321c6c2553f7",
"disabled_by": null
},
{
"entry_id": "edc09884ed7f4473999d4e58f7268ba3",
@ -241,12 +251,11 @@
"title": "Ignored",
"data": {},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"connection_class": "local_poll",
"unique_id": "f13994e3-7c03-4cb1-b020-d7ef3ad798cc"
"unique_id": "f13994e3-7c03-4cb1-b020-d7ef3ad798cc",
"disabled_by": null
},
{
"entry_id": "13d3c92b3262435e965ed1064e2a0d59",
@ -257,12 +266,11 @@
"host": "192.168.178.20"
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"connection_class": "local_poll",
"unique_id": "41937324e002"
"unique_id": "41937324e002",
"disabled_by": null
},
{
"entry_id": "e4a47914ce604433a857d9100241bdf3",
@ -279,12 +287,11 @@
"verify_ssl": false
},
"options": {},
"system_options": {
"disable_new_entities": true
},
"pref_disable_new_entities": true,
"pref_disable_polling": false,
"source": "zeroconf",
"connection_class": "local_poll",
"unique_id": "1c852a4d-b800-1f08-abcd-9457a59b7880"
"unique_id": "1c852a4d-b800-1f08-abcd-9457a59b7880",
"disabled_by": null
},
{
"entry_id": "043eba930fc74b1699b91532ce83c490",
@ -303,12 +310,11 @@
"extra_arguments": "-pred 1",
"rtsp_transport": "tcp"
},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"connection_class": "local_poll",
"unique_id": "D8:07:B6:25:E0:E4"
"unique_id": "D8:07:B6:25:E0:E4",
"disabled_by": null
},
{
"entry_id": "d1c945fcb5b44a069d53586985da8e9b",
@ -317,12 +323,13 @@
"title": "MartinHandyP30",
"data": {
"app_data": {
"push_websocket_channel": true,
"push_url": "https://mobile-apps.home-assistant.io/api/sendPush/android/v1",
"push_token": "ckSTknpJRqyUSbSvM_zr9Q:APA91bE79K_wlJfkLAQwkKU4qK6aTFahehG3RBfk06bEdZGcJTeO3Qfk9XAezXaFmSfj2-65JoIeBb5s-Xztio1Kc2miqaovquePASnz6WZoGPVfnDqlwjkp9fGR46o58uPRzz6g0tkr"
},
"app_id": "io.homeassistant.companion.android",
"app_name": "Home Assistant",
"app_version": "2021.1.1-full (555)",
"app_version": "2022.11.0-full (2948)",
"device_id": "3889c45a8d9e2c62",
"device_name": "MartinHandy",
"manufacturer": "HUAWEI",
@ -334,26 +341,25 @@
"webhook_id": "cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e"
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "registration",
"connection_class": "cloud_push",
"unique_id": "io.homeassistant.companion.android-3889c45a8d9e2c62"
"unique_id": "io.homeassistant.companion.android-3889c45a8d9e2c62",
"disabled_by": null
},
{
"entry_id": "c41bc99e068311eb93f751000202d9b1",
"version": 1,
"domain": "mobile_app",
"title": "Martin\u2019s iPad",
"title": "Martins iPad",
"data": {
"device_id": "8191AC71-330B-4784-8634-E6F4F0C2DFA2",
"app_version": "2021.1.1 (9)",
"app_version": "2022.10.1 (2022.424)",
"app_name": "Home Assistant",
"manufacturer": "Apple",
"os_version": "14.4",
"os_version": "16.2",
"supports_encryption": true,
"device_name": "Martin\u2019s iPad",
"device_name": "Martins iPad",
"os_name": "iOS",
"app_id": "io.robbie.HomeAssistant",
"model": "iPad7,4",
@ -363,15 +369,626 @@
},
"webhook_id": "2c1e087aa21f2de29ea717b0af4d5de61621ba42229d570cb93181e61c6dc72a",
"secret": "923e6bce56d69c3bff64277187aaeb439ed0eb2c65ff7e4df39e6809504cf3b4",
"user_id": "2ffcb10d3db745b396789364fdef72ec"
"user_id": "2ffcb10d3db745b396789364fdef72ec",
"no_legacy_encryption": true
},
"options": {},
"system_options": {
"disable_new_entities": false
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "registration",
"connection_class": "cloud_push",
"unique_id": "io.robbie.HomeAssistant-8191AC71-330B-4784-8634-E6F4F0C2DFA2"
"unique_id": "io.robbie.HomeAssistant-8191AC71-330B-4784-8634-E6F4F0C2DFA2",
"disabled_by": null
},
{
"entry_id": "5d920f4309e77398f77a9b8f06bef68e",
"version": 1,
"domain": "hassio",
"title": "Supervisor",
"data": {},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "system",
"unique_id": "hassio",
"disabled_by": null
},
{
"entry_id": "f81b059f666659e27e2101ddc3bfbba9",
"version": 1,
"domain": "ondilo_ico",
"title": "Ondilo",
"data": {
"auth_implementation": "ondilo_ico",
"token": {
"access_token": "6401fca4e4d905f8d5c434027756dd72bfffdbdb",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "api",
"refresh_token": "f62890374741a79a967502decf42a71f7428a5d2",
"expires_at": 1672776436.4435086
}
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "ondilo_ico",
"disabled_by": null
},
{
"entry_id": "de6f277823780413eb04deca60ca6889",
"version": 1,
"domain": "fritzbox",
"title": "AVM FRITZ!Box: FRITZ!Box 7490",
"data": {
"host": "192.168.178.1"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-3431C416294A",
"disabled_by": null
},
{
"entry_id": "4d6c8a93eb60a8d89bf2d73132c33746",
"version": 1,
"domain": "fritzbox",
"title": "AVM FRITZ!Box: RepeaterAZMartin",
"data": {
"host": "192.168.178.54"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-7CFF4D052E8A",
"disabled_by": null
},
{
"entry_id": "f877688fbeaf9268b82e94a242117ddd",
"version": 1,
"domain": "fritzbox",
"title": "AVM FRITZ!Box: FRITZ!Repeater 2400",
"data": {
"host": "192.168.178.109"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-3CA62F4DAF57",
"disabled_by": null
},
{
"entry_id": "48f976ca46efc22b604b04b149416743",
"version": 1,
"domain": "fritz",
"title": "FRITZ!Box Tools: FRITZ!Repeater 2400",
"data": {
"host": "192.168.178.109"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-3CA62F4DAF57",
"disabled_by": null
},
{
"entry_id": "f3c8883470cfcc57450ba35ed09c8470",
"version": 1,
"domain": "denonavr",
"title": "Denon AVR-X1200W",
"data": {
"host": "192.168.178.45",
"type": "avr-x",
"model": "AVR-X1200W",
"manufacturer": "Denon",
"serial_number": "0005CD94A18C"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ssdp",
"unique_id": "AVR-X1200W-0005CD94A18C",
"disabled_by": null
},
{
"entry_id": "ff28c5ba60ce570a780084bec8e9706b",
"version": 1,
"domain": "fritz",
"title": "FRITZ!Box Tools: RepeaterAZGeorg",
"data": {
"host": "192.168.178.27"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-7CFF4D04D7A4",
"disabled_by": null
},
{
"entry_id": "81d7a84b29531239778d919442880fdb",
"version": 1,
"domain": "fritzbox",
"title": "AVM FRITZ!Box: RepeaterAZGeorg",
"data": {
"host": "192.168.178.27"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-7CFF4D04D7A4",
"disabled_by": null
},
{
"entry_id": "20a6db9c438e44658ae1264f18a95026",
"version": 1,
"domain": "fritz",
"title": "FRITZ!Box Tools: RepeaterAZMartin",
"data": {
"host": "192.168.178.54"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "123402409-bccb-40e7-8e6c-7CFF4D052E8A",
"disabled_by": null
},
{
"entry_id": "9406611205c8c979aff8f619b45d0853",
"version": 1,
"domain": "hacs",
"title": "",
"data": {
"token": "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"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "b274d909b9c66bd3257856c592b651ba",
"version": 1,
"domain": "fritz",
"title": "FRITZ!Box 7490",
"data": {
"host": "192.168.178.1",
"password": "1yBhlx8dp3aB",
"port": 49000,
"username": "martin"
},
"options": {
"consider_home": 180.0
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ssdp",
"unique_id": "123402409-bccb-40e7-8e6c-3431C416294A",
"disabled_by": null
},
{
"entry_id": "515ed507839833c24405194a10ae2db4",
"version": 2,
"domain": "scheduler",
"title": "Scheduler",
"data": {},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "1923a10d943e",
"disabled_by": null
},
{
"entry_id": "91e12b01c2cd2e93dab5129106dc7379",
"version": 2,
"domain": "samsungtv",
"title": "UE32ES5700",
"data": {
"host": "192.168.178.30"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "0c845880-00d2-1000-9369-c4731e320fc6",
"disabled_by": null
},
{
"entry_id": "bda2acac11e9f25954e7ac0f3b31a9dd",
"version": 1,
"domain": "accuweather",
"title": "MyHome",
"data": {
"latitude": 49.369477,
"longitude": 10.9831468,
"name": "MyHome",
"api_key": "kr97ne4Ub2KDlFU94GnsMhrKQDA4WEQN"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "1006287",
"disabled_by": "user"
},
{
"entry_id": "1fb392bfa095e0190b76d430c6027366",
"version": 2,
"domain": "openweathermap",
"title": "OpenWeatherMap",
"data": {
"name": "OpenWeatherMap",
"latitude": 49.369477,
"longitude": 10.9831468,
"mode": "onecall_daily",
"language": "de",
"api_key": "4cc4e47c6b4215dbc87eacf1976093a8"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "49.369477-10.9831468",
"disabled_by": null
},
{
"entry_id": "d910373e59f29e18843427fa5fd38f49",
"version": 1,
"domain": "pyscript",
"title": "pyscript",
"data": {
"allow_all_imports": true,
"hass_is_global": true,
"apps": "bad_luefter ir_remote_kitchenpi ir_remote_oben ir_remote_schlafzimmer herd knx_buttons licht_schlafzimmer licht_gang_bogen licht_wc"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "pyscript",
"disabled_by": null
},
{
"entry_id": "68dac67fca42e3b520f58b928904557d",
"version": 1,
"domain": "mobile_app",
"title": "HandyRebecca",
"data": {
"app_id": "io.homeassistant.companion.android",
"app_name": "Home Assistant",
"app_version": "2021.10.0-full (761)",
"device_name": "HandyRebecca",
"manufacturer": "HUAWEI",
"model": "VTR-L29",
"os_name": "Android",
"os_version": "28",
"supports_encryption": false,
"app_data": {
"push_url": "https://mobile-apps.home-assistant.io/api/sendPush/android/v1",
"push_token": "f7daqutLSZqFEUqQUrN434:APA91bGZpsNoeTPB5racwHMFkKfiqj0KdQIBu-ZyfF5Xn_RQZNxRW-eREnSUsR4w7Ds8fj7wzWQofLMWzxgDw9gMq_SQiMd9OmvYmlEvyfbuMQJtnt8FQlAoSyRkWS2qquBM1Cl5D0aX"
},
"device_id": "83979e8c7b4d63c9",
"webhook_id": "3d073a453d690c5b9d839b39059b8bee4b83915c3bb0f1ed9c97b60615f6bcee",
"user_id": "bd0f10a32b324e85998881cb5b748d0f"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "registration",
"unique_id": "io.homeassistant.companion.android-83979e8c7b4d63c9",
"disabled_by": null
},
{
"entry_id": "1157109c70e265697c8485bd021b4ef7",
"version": 1,
"domain": "mobile_app",
"title": "rebeccahandyP10",
"data": {
"app_id": "io.homeassistant.companion.android",
"app_name": "Home Assistant",
"app_version": "2022.3.0-full (2164)",
"device_name": "rebeccahandyP10",
"manufacturer": "HUAWEI",
"model": "VTR-L09",
"os_name": "Android",
"os_version": "28",
"supports_encryption": false,
"app_data": {
"push_websocket_channel": true,
"push_url": "https://mobile-apps.home-assistant.io/api/sendPush/android/v1",
"push_token": "fcSoa8coRh2HJnUZ7GREwy:APA91bFQn37UopTFO6iRriVjjvjK22Hl6spsYW0zhI-qaK1eVo4LLBzxvUoWzoAehbCkVF_7Q76vLzxBD3PSQEdkRc_v8Ym8YoDecKSOc80HG1M1U6CYdhm7xlBg9EzrNjNVD-s2nPU0"
},
"device_id": "733ffd986b7cf20c",
"webhook_id": "6ac83c5eb5688a11675c22ffa8ab8e86f9bae9289dd935da897c98fbb195ee5e",
"user_id": "bd0f10a32b324e85998881cb5b748d0f"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "registration",
"unique_id": "io.homeassistant.companion.android-733ffd986b7cf20c",
"disabled_by": null
},
{
"entry_id": "4830ccb844609ea7b35926a816864705",
"version": 1,
"domain": "tasmota",
"title": "Tasmota",
"data": {
"discovery_prefix": "tasmota/discovery"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "mqtt",
"unique_id": "tasmota",
"disabled_by": null
},
{
"entry_id": "7eabb28baad4fb90a58994ed508af867",
"version": 1,
"domain": "dlna_dmr",
"title": "[TV]UE32ES5700",
"data": {},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "uuid:0d1cef01-00dc-1000-94a2-c4731e320fc6",
"disabled_by": null
},
{
"entry_id": "b372f6dd997ac90c32c904052af4ab9e",
"version": 1,
"domain": "dlna_dmr",
"title": "VIERA E30 Series",
"data": {
"url": "http://192.168.178.103:55000/dmr/ddd.xml"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "uuid:4D454930-0100-1000-8001-04209A35F601",
"disabled_by": null
},
{
"entry_id": "100d58ea4abe89dd019b9e1894d38402",
"version": 1,
"domain": "octoprint",
"title": "192.168.178.134",
"data": {
"username": "martin",
"host": "192.168.178.134",
"port": 80,
"path": "/",
"ssl": false,
"api_key": "42C1C71877E04292BFD636E020DA9B6E",
"verify_ssl": true
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "zeroconf",
"unique_id": "de90f088-68ce-4563-8110-e97ba956bc34",
"disabled_by": null
},
{
"entry_id": "6cc9d82efad072e33506e3fd32d5c456",
"version": 1,
"domain": "knx",
"title": "Tunneling @ 192.168.178.65",
"data": {
"state_updater": true,
"rate_limit": 20,
"individual_address": "15.15.250",
"multicast_group": "224.0.23.12",
"multicast_port": 3671,
"host": "192.168.178.65",
"port": 3671,
"local_ip": null,
"route_back": false,
"connection_type": "tunneling"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "import",
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "221428ba9e0f0d5b3240bd2162be99f4",
"version": 1,
"domain": "zwave_js",
"title": "Z-Wave JS",
"data": {
"url": "ws://core-zwave-js:3000",
"usb_path": "/dev/serial/by-id/usb-0658_0200-if00",
"s0_legacy_key": "2C9F874C34673C796DEF53EBB588E88D",
"s2_access_control_key": "382392B2D342CA84EA67115CAE77EB11",
"s2_authenticated_key": "48EC46EAB7CE57061F161B95E0783F1B",
"s2_unauthenticated_key": "FA1F53A264806AD260D964C4E1AEF924",
"use_addon": true,
"integration_created_addon": false
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "usb",
"unique_id": "4231470061",
"disabled_by": null
},
{
"entry_id": "7c5dfbab8e35dceb22447cabf1021451",
"version": 1,
"domain": "dlna_dms",
"title": "MartinUndRebeccasServer",
"data": {
"url": "http://192.168.178.80:8200/rootDesc.xml"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "uuid:4d696e69-444c-164e-9d41-0001c00caf87::urn:schemas-upnp-org:device:MediaServer:1",
"disabled_by": null
},
{
"entry_id": "95743dccec403bb3a97ecdb19e8657e3",
"version": 1,
"domain": "dlna_dms",
"title": "MedienServer",
"data": {
"url": "http://192.168.178.1:49000/MediaServerDevDesc.xml",
"device_id": "uuid:fa095ecc-e13e-40e7-8e6c-3431c416294a::urn:schemas-upnp-org:device:MediaServer:1"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ssdp",
"unique_id": "uuid:fa095ecc-e13e-40e7-8e6c-3431c416294a::urn:schemas-upnp-org:device:MediaServer:1",
"disabled_by": "user"
},
{
"entry_id": "21bd00d5cf8b8af55a9e1598aa1081da",
"version": 1,
"domain": "apple_tv",
"title": "Zoom-MBR32 (Apple TV 3)",
"data": {
"address": "192.168.178.99"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "02:05:85:7F:EB:80",
"disabled_by": null
},
{
"entry_id": "bb1c03069ffe5adc68e1c6ba9411b1ac",
"version": 1,
"domain": "mobile_app",
"title": "rebeccaHandySamsung",
"data": {
"app_id": "io.homeassistant.companion.android",
"app_name": "Home Assistant",
"app_version": "2022.12.0-full (3026)",
"device_name": "rebeccaHandySamsung",
"manufacturer": "samsung",
"model": "SM-A528B",
"os_name": "Android",
"os_version": "33",
"supports_encryption": false,
"app_data": {
"push_websocket_channel": true,
"push_url": "https://mobile-apps.home-assistant.io/api/sendPush/android/v1",
"push_token": "d-q78MAnRemXJeTbXpzLjZ:APA91bHCzxH_wR-ozW0Ih5MUFmJ17u0R6MCSPoATMVA_6mzrJLJAWDbdVQI8qA3JgySUMEoP2PdtgE1xiLXKCMmbLRa9UFDbvnFF-wkHewCfRiy3_gmLlBgMFczZ1BKLOSK1QztxxSzX"
},
"device_id": "80efeec78207e1d5",
"webhook_id": "45dccd41b61bc14f6404403a92fdfb30d255d2cf690da417aab4bc8004600837",
"user_id": "bd0f10a32b324e85998881cb5b748d0f"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "registration",
"unique_id": "io.homeassistant.companion.android-80efeec78207e1d5",
"disabled_by": null
},
{
"entry_id": "ac86e47d17add433f0cedd3f6bc02d41",
"version": 1,
"domain": "sun",
"title": "Sun",
"data": {},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "import",
"unique_id": null,
"disabled_by": null
},
{
"entry_id": "e8d393e7209027e19dc79d238d4296b8",
"version": 1,
"domain": "google_assistant",
"title": "homeassistant-d3afc",
"data": {
"project_id": "homeassistant-d3afc"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "import",
"unique_id": "homeassistant-d3afc",
"disabled_by": null
},
{
"entry_id": "2173ab6aa2063de5460e0122250ae87d",
"version": 1,
"domain": "bluetooth",
"title": "DC:A6:32:4C:0D:D6",
"data": {},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "integration_discovery",
"unique_id": "DC:A6:32:4C:0D:D6",
"disabled_by": null
},
{
"entry_id": "616e070fbd30cd97be16e758cd420268",
"version": 1,
"domain": "upnp",
"title": "InternetGatewayDeviceV2 - FRITZ!Box 7490",
"data": {
"mac_address": "34:31:c4:16:29:4a",
"location": "http://192.168.178.1:49000/igd2desc.xml",
"host": "192.168.178.1",
"st": "urn:schemas-upnp-org:device:InternetGatewayDevice:2"
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "ignore",
"unique_id": "uuid:75802409-bccb-40e7-9f6c-3431C416294A::urn:schemas-upnp-org:device:InternetGatewayDevice:2",
"disabled_by": null
},
{
"entry_id": "62ca1e8c80a721f915812ef4063dbf13",
"version": 1,
"domain": "nina",
"title": "NINA",
"data": {
"slots": 5,
"corona_filter": true,
"_m_to_q": [
"095640000000"
],
"_r_to_u": [
"095760000000_10"
],
"regions": {
"095640000000": "Nürnberg",
"095760000000": "Rohr (Roth - Bayern)"
}
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": null,
"disabled_by": null
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

7
.storage/core.uuid Normal file
View File

@ -0,0 +1,7 @@
{
"data": {
"uuid": "dbfa2dc8b3aa4f03a3230c64d4faa7a4"
},
"key": "core.uuid",
"version": 1
}

View File

@ -1,12 +1,16 @@
{
"version": 1,
"minor_version": 1,
"key": "frontend.user_data_2ffcb10d3db745b396789364fdef72ec",
"data": {
"core": {
"showAdvanced": true
},
"language": {
"language": "de"
"language": "de",
"number_format": "language",
"time_format": "language",
"first_weekday": "language"
}
}
},
"key": "frontend.user_data_2ffcb10d3db745b396789364fdef72ec",
"version": 1
}

View File

@ -0,0 +1,15 @@
{
"version": 1,
"minor_version": 1,
"key": "frontend.user_data_bd0f10a32b324e85998881cb5b748d0f",
"data": {
"core": {
"showAdvanced": true
},
"language": {
"language": "de",
"number_format": "language",
"time_format": "language"
}
}
}

12
.storage/google_assistant Normal file
View File

@ -0,0 +1,12 @@
{
"version": 1,
"minor_version": 1,
"key": "google_assistant",
"data": {
"agent_user_ids": {
"2ffcb10d3db745b396789364fdef72ec": {
"local_webhook_id": "7f9f90ea0609767552e3c86e6b4629b30ccf378e57084c5d3a3d461c909102f5"
}
}
}
}

12
.storage/hacs.critical Normal file
View File

@ -0,0 +1,12 @@
{
"version": "6",
"key": "hacs.critical",
"data": [
{
"repository": "test/test",
"reason": "Security issues, known to steal auth tokens.",
"link": "https://github.com/hacs/default/pull/2",
"acknowledged": true
}
]
}

78
.storage/hacs.hacs Normal file
View File

@ -0,0 +1,78 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs.hacs",
"data": {
"archived_repositories": [
"atomic7777/atomic_calendar",
"mampfes/hacs_wiffi",
"PTST/O365-HomeAssistant",
"pilotak/homeassistant-mikrotik",
"estevez-dev/extended-banner-card",
"custom-components/custom_components",
"custom-components/sensor.custom_components",
"Michsior14/ha-laser-egg",
"custom-components/sensor.tautulli",
"ppanagiotis/pymusiccast",
"Kraineff/philips-airpurifier",
"jensweimann/awb",
"briis/smartweather",
"KoljaWindeler/kaco",
"dr1rrb/ha-twinkly",
"heinoldenhuis/home_assistant_omnik_solar",
"DSorlov/hasl-platform",
"iantrich/aftership-card",
"nagyrobi/home-assistant-custom-components-pfsense-gateways",
"pippyn/Home-Assistant-Sensor-Groningen-Afvalwijzer",
"maykar/kiosk-mode",
"custom-cards/upcoming-media-card",
"maykar/lovelace-swipe-navigation",
"custom-components/sensor.plex_recently_added",
"custom-components/sensor.sonarr_upcoming_media",
"custom-components/sensor.radarr_upcoming_media",
"maykar/plex_assistant",
"custom-components/wienerlinien",
"GeorgeSG/lovelace-folder-card",
"KTibow/lovelace-dark-soft-ui-theme",
"KTibow/lovelace-light-soft-ui-theme",
"DCSBL/ha-homewizard-energy",
"eavanvalkenburg/sia",
"Cyr-ius/hass-hue-service-advanced",
"Cyr-ius/hass-cozytouch",
"georgezhao2010/climate_ewelink",
"custom-components/sensor.custom_aftership",
"marcomow/ble-bulb-card",
"ThomasPrior/EthermineInfo",
"spycle/microbot_push",
"DavidMStraub/homeassistant-homeconnect",
"Sholofly/arrisdcx960",
"lukich48/hass_mqtt_template_switch",
"marrobHD/firetv-card",
"clayauld/lovelace-darksky-card",
"NemesisRE/lovelace-swipe-navigation"
],
"renamed_repositories": {
"xMrVizzy/Minecraft-Version": "kraineff/minecraft-version",
"xMrVizzy/Philips-AirPurifier": "kraineff/philips-airpurifier",
"scottyphillips/mitsubishi_hass": "scottyphillips/echonetlite_homeassistant",
"idittansikte/bootstrap-grid-card": "ownbee/bootstrap-grid-card",
"marksie1988/atomic-calendar-revive": "totaldebug/atomic-calendar-revive",
"PepegaBruh/CryptoTracker": "BigNocciolino/CryptoTracker",
"custom-components/blueprint": "custom-components/integration_blueprint",
"9a4gl/hass-peltec": "9a4gl/hass-centrometal-boiler",
"78wesley/Darkish-Theme": "78wesley/Home-Assistant-Darkish-Theme",
"KartoffelToby/ai_thermostat": "KartoffelToby/better_thermostat",
"nbogojevic/homeassistant-midea-dehumidifier-lan": "nbogojevic/homeassistant-midea-air-appliances-lan",
"nikrolls/homeassistant-goldair-climate": "nicole-ashley/homeassistant-goldair-climate",
"ulic75/power-distribution-card": "ulic75/power-flow-card",
"wills106/homsassistant-solax-modbus": "wills106/homeassistant-solax-modbus",
"dmitry-k/yandex_smart_home": "dext0r/yandex_smart_home",
"uvjustin/alarmdotcom": "pyalarmdotcom/alarmdotcom",
"wernerhp/ha_integration_load_shedding": "wernerhp/ha.integration.load_shedding",
"TheLastProject/lovelace-valetudo-map-card": "Hypfer/lovelace-valetudo-map-card",
"fuatakgun/kia_uvo": "Hyundai-Kia-Connect/kia_uvo",
"jadson179/consul": "gtjadsonsantos/consul"
},
"ignored_repositories": []
}
}

25665
.storage/hacs.repositories Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,55 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/144899700.hacs",
"data": {
"archived": false,
"authors": [],
"category": "plugin",
"content_in_root": false,
"country": [],
"config_flow": false,
"default_branch": "master",
"description": "\ud83d\udd39 Add sliders to entity cards",
"domain": "",
"domains": [],
"downloads": 0,
"etag_repository": "W/\"dcee04e155a6f214619452084692a69a604122200203c448889608db87867fa8\"",
"file_name": "slider-entity-row.js",
"filename": null,
"first_install": false,
"fork": false,
"full_name": "thomasloven/lovelace-slider-entity-row",
"hacs": null,
"hide": false,
"hide_default_branch": false,
"homeassistant": null,
"id": "144899700",
"iot_class": null,
"installed": true,
"installed_commit": "3587bef",
"installed_version": "17.2.1",
"open_issues": 27,
"last_commit": "c84a0ad",
"last_version": "17.2.1",
"last_updated": "2022-08-13T19:01:37Z",
"manifest_name": null,
"new": false,
"persistent_directory": null,
"pushed_at": "2022-08-13T19:01:37",
"releases": true,
"render_readme": true,
"published_tags": [
"17.2.1",
"17.2.0",
"17.1.0",
"17.0.1",
"17.0.0"
],
"selected_tag": null,
"show_beta": false,
"stargazers_count": 648,
"topics": [],
"zip_release": false
}
}

View File

@ -0,0 +1,65 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/172733314.hacs",
"data": {
"archived": false,
"authors": [
"@ludeeus"
],
"category": "integration",
"content_in_root": false,
"country": [],
"config_flow": true,
"default_branch": "main",
"description": "HACS gives you a powerful UI to handle downloads of all your custom needs.",
"domain": "hacs",
"domains": [],
"downloads": 7257,
"etag_repository": "W/\"711c9f5308bfaed56466dbb84dc11ce170e3abaf8bed0ee5cb0b4c189afc1f1c\"",
"file_name": "",
"filename": "hacs.zip",
"first_install": false,
"fork": false,
"full_name": "hacs/integration",
"hacs": "0.19.0",
"hide": false,
"hide_default_branch": true,
"homeassistant": "2022.8.0",
"id": "172733314",
"iot_class": null,
"installed": true,
"installed_commit": "8fa59ee",
"installed_version": "1.27.0",
"open_issues": 0,
"last_commit": "8fa59ee",
"last_version": "1.27.1",
"last_updated": "2022-08-28T08:21:31Z",
"manifest_name": "HACS",
"new": false,
"persistent_directory": null,
"pushed_at": "2022-08-28T08:21:31",
"releases": true,
"render_readme": false,
"published_tags": [
"1.27.1",
"1.27.0",
"1.26.2",
"1.26.1",
"1.26.0"
],
"selected_tag": "1.27.0",
"show_beta": false,
"stargazers_count": 2860,
"topics": [
"community",
"hacktoberfest",
"hacs",
"home-assistant",
"integration",
"package-manager",
"python"
],
"zip_release": true
}
}

View File

@ -0,0 +1,63 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/215327195.hacs",
"data": {
"archived": false,
"authors": [],
"category": "plugin",
"content_in_root": true,
"country": [],
"config_flow": false,
"default_branch": "master",
"description": "💡 A Lovelace custom card for RGB lights",
"domain": "",
"domains": [
"light"
],
"downloads": 12380,
"etag_repository": "W/\"b5f74cfb36458239d165665039ad8868468ef47299c90d6095e79f2e48ecc5e2\"",
"file_name": "card.js",
"filename": "card.js",
"first_install": false,
"fork": false,
"full_name": "bokub/rgb-light-card",
"hacs": null,
"hide": false,
"hide_default_branch": false,
"homeassistant": null,
"id": "215327195",
"iot_class": null,
"installed": true,
"installed_commit": "abb7c78",
"installed_version": "1.11.0",
"open_issues": 6,
"last_commit": "abb7c78",
"last_version": "1.11.0",
"last_updated": "2022-07-02T09:17:13Z",
"manifest_name": null,
"new": false,
"persistent_directory": null,
"pushed_at": "2022-07-02T09:17:13",
"releases": true,
"render_readme": true,
"published_tags": [
"1.11.0",
"1.10.0",
"1.9.0",
"1.8.0",
"1.7.1"
],
"selected_tag": null,
"show_beta": false,
"stargazers_count": 311,
"topics": [
"hacktoberfest",
"home-assistant",
"lovelace",
"lovelace-custom-card",
"rgb-lights"
],
"zip_release": false
}
}

View File

@ -0,0 +1,57 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/222422187.hacs",
"data": {
"archived": false,
"authors": [],
"category": "theme",
"content_in_root": false,
"country": [],
"config_flow": false,
"default_branch": "master",
"description": "\ud83c\udfe0\ud83e\udd16 Theme by @basnijholt based on iOS Dark Mode for Lovelace Home Assistant ",
"domain": "",
"domains": [],
"downloads": 0,
"etag_repository": "W/\"cecf357175700b3cc1db9c4389607d4d10ef7369436b93d42529460c5e1dd05c\"",
"file_name": "ios-dark-mode.yaml",
"filename": null,
"first_install": false,
"fork": false,
"full_name": "basnijholt/lovelace-ios-dark-mode-theme",
"hacs": null,
"hide": false,
"hide_default_branch": false,
"homeassistant": null,
"id": "222422187",
"iot_class": null,
"installed": true,
"installed_commit": "9c012f7",
"installed_version": null,
"open_issues": 29,
"last_commit": "9c012f7",
"last_version": null,
"last_updated": "2022-05-27T18:41:09Z",
"manifest_name": null,
"new": false,
"persistent_directory": null,
"pushed_at": "2022-05-27T18:41:09",
"releases": false,
"render_readme": true,
"published_tags": [],
"selected_tag": null,
"show_beta": false,
"stargazers_count": 375,
"topics": [
"dark-mode",
"darkmode",
"hacs",
"home-assistant",
"ios",
"lovelace",
"theme"
],
"zip_release": false
}
}

View File

@ -0,0 +1,55 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/231674882.hacs",
"data": {
"archived": false,
"authors": [],
"category": "plugin",
"content_in_root": false,
"country": [],
"config_flow": false,
"default_branch": "master",
"description": "\ud83d\udd39 Display whatever you want in an entities card row.",
"domain": "",
"domains": [],
"downloads": 0,
"etag_repository": "W/\"d9e5ddb563c27cbe6f0cc04e78ed92c7517cd7e1f3c872746eb5bfad4fa3ef87\"",
"file_name": "template-entity-row.js",
"filename": null,
"first_install": false,
"fork": false,
"full_name": "thomasloven/lovelace-template-entity-row",
"hacs": null,
"hide": false,
"hide_default_branch": false,
"homeassistant": "0.107.0b1",
"id": "231674882",
"iot_class": null,
"installed": true,
"installed_commit": "3c7d493",
"installed_version": "1.3.0",
"open_issues": 14,
"last_commit": "e3da7ba",
"last_version": "1.3.0",
"last_updated": "2022-08-24T08:27:00Z",
"manifest_name": null,
"new": false,
"persistent_directory": null,
"pushed_at": "2022-08-24T08:27:00",
"releases": true,
"render_readme": true,
"published_tags": [
"1.3.0",
"1.2.3",
"1.2.2",
"1.2.1",
"1.2.0"
],
"selected_tag": null,
"show_beta": false,
"stargazers_count": 118,
"topics": [],
"zip_release": false
}
}

View File

@ -0,0 +1,64 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/286186485.hacs",
"data": {
"archived": false,
"authors": [
"@nielsfaber"
],
"category": "integration",
"content_in_root": false,
"country": [],
"config_flow": true,
"default_branch": "main",
"description": "Custom component for HA that enables the creation of scheduler entities",
"domain": "scheduler",
"domains": [],
"downloads": 173,
"etag_repository": "W/\"64b7c6bf6cebec946299473fb7ec1abfcdf1d3d69a65cc0dbfea133ed5b06360\"",
"file_name": "",
"filename": null,
"first_install": false,
"fork": false,
"full_name": "nielsfaber/scheduler-component",
"hacs": null,
"hide": false,
"hide_default_branch": false,
"homeassistant": null,
"id": "286186485",
"iot_class": null,
"installed": true,
"installed_commit": "b683d53",
"installed_version": "v3.2.10",
"open_issues": 5,
"last_commit": "b683d53",
"last_version": "v3.2.10",
"last_updated": "2022-06-02T06:36:20Z",
"manifest_name": "Scheduler integration",
"new": false,
"persistent_directory": null,
"pushed_at": "2022-06-02T06:36:20",
"releases": true,
"render_readme": true,
"published_tags": [
"v3.2.10",
"v3.2.9",
"v3.2.8",
"v3.2.7",
"v3.2.6"
],
"selected_tag": null,
"show_beta": false,
"stargazers_count": 292,
"topics": [
"custom-component",
"hacs",
"homeassistant",
"integration",
"python",
"scheduler"
],
"zip_release": false
}
}

View File

@ -0,0 +1,70 @@
{
"version": "6",
"minor_version": 1,
"key": "hacs/286270157.hacs",
"data": {
"archived": false,
"authors": [],
"category": "plugin",
"content_in_root": false,
"country": [],
"config_flow": false,
"default_branch": "main",
"description": "HA Lovelace card for control of scheduler entities",
"domain": "",
"domains": [],
"downloads": 4124,
"etag_repository": "W/\"ae9399bf823de6e5d633fc8e5c539f19b44ee94baa4d2c29a92686279538b91a\"",
"file_name": "scheduler-card.js",
"filename": "scheduler-card.js",
"first_install": false,
"fork": false,
"full_name": "nielsfaber/scheduler-card",
"hacs": null,
"hide": false,
"hide_default_branch": false,
"homeassistant": null,
"id": "286270157",
"iot_class": null,
"installed": true,
"installed_commit": "5b7d19b",
"installed_version": "v2.3.6",
"open_issues": 9,
"last_commit": "5b7d19b",
"last_version": "v2.3.6",
"last_updated": "2022-08-23T19:00:00Z",
"manifest_name": null,
"new": false,
"persistent_directory": null,
"pushed_at": "2022-08-23T19:00:00",
"releases": true,
"render_readme": true,
"published_tags": [
"v2.3.6",
"v2.3.5",
"v2.3.4",
"v2.3.3",
"v2.3.2"
],
"selected_tag": null,
"show_beta": false,
"stargazers_count": 440,
"topics": [
"assistant",
"automation",
"card",
"custom-card",
"home",
"home-assistant",
"homeassistant",
"lovelace",
"schedule",
"scheduler",
"sunrise",
"sunset",
"week",
"weekly"
],
"zip_release": false
}
}

7
.storage/hassio Normal file
View File

@ -0,0 +1,7 @@
{
"data": {
"hassio_user": "508c7e7c70da41dcb39e2a6e23d6fac1"
},
"key": "hassio",
"version": 1
}

View File

@ -0,0 +1,115 @@
{
"version": 1,
"minor_version": 1,
"key": "homekit.e1101f79ce9b41a28359a95f85e57b63.aids",
"data": {
"allocations": {
"homeassistant.scene.arbeitszimmer_blau_grun": 2317157230,
"homeassistant.scene.arbeitszimmer_hell": 3215372892,
"homeassistant.scene.arbeitszimmer_martin_blau_grun": 3700062852,
"homeassistant.scene.arbeitszimmer_martin_hell": 2595314010,
"homeassistant.scene.arbeitszimmer_martin_orange": 3991166903,
"homeassistant.scene.arbeitszimmer_orange": 982016353,
"homeassistant.scene.bad_baden": 1402562114,
"homeassistant.scene.bad_hell": 165560953,
"homeassistant.scene.bad_normal": 128283673,
"homeassistant.scene.garten_savanna": 3224549740,
"homeassistant.scene.kinderzimmer_hell": 1060540279,
"homeassistant.scene.kinderzimmer_normal": 441609939,
"homeassistant.scene.kinderzimmer_orange": 2343533594,
"homeassistant.scene.kinderzimmer_wickeln_nachts": 1707572019,
"homeassistant.scene.kueche_essbereich_blau_grun": 3803762149,
"homeassistant.scene.kueche_essbereich_grun": 3486046132,
"homeassistant.scene.kueche_essbereich_hell": 4039341725,
"homeassistant.scene.kueche_essbereich_orange": 14587584,
"homeassistant.scene.schlafzimmer_bettlich_dunkel": 4138950599,
"homeassistant.scene.schlafzimmer_blau": 3000736384,
"homeassistant.scene.schlafzimmer_einschlaflicht": 4090447399,
"homeassistant.scene.schlafzimmer_ganz_hell": 3216392962,
"homeassistant.scene.schlafzimmer_orange": 3610510258,
"homeassistant.scene.schlafzimmer_rot": 44459589,
"homeassistant.scene.schlafzimmer_stillen": 257166545,
"homeassistant.scene.wohnberech_blau_grun": 243992313,
"homeassistant.scene.wohnbereich_grun": 1045353045,
"homeassistant.scene.wohnbereich_hell": 978395200,
"homeassistant.scene.wohnbereich_kuscheln": 384753228,
"homeassistant.scene.wohnbereich_meditation": 3264580691,
"homeassistant.scene.wohnbereich_orange": 688806765,
"homeassistant.scene.wohnzimmer_blau_grun": 4000943698,
"homeassistant.scene.wohnzimmer_dunkel": 1371653238,
"homeassistant.scene.wohnzimmer_grun": 2534588597,
"homeassistant.scene.wohnzimmer_hell": 2467733920,
"homeassistant.scene.wohnzimmer_orange": 3462548685,
"light.arbeitszimmer_deckenlampe": 3626140425,
"cover.arbeitszimmer_rollo": 339823541,
"cover.wohnzimmer_fenster_rollo": 3756587471,
"cover.wohnzimmer_terrassentur_rollo": 230856714,
"cover.kuche_fenster_rollo": 2724296497,
"cover.esszimmer_fenster_rollo": 3842095442,
"light.gang_licht": 3695130407,
"light.gang_einganglicht": 2780319252,
"hue.light.00:17:88:01:00:cb:65:11-0b": 705329781,
"hue.light.00:17:88:01:10:37:b3:58-0b": 785486930,
"hue.light.00:17:88:01:02:07:a2:e7-0b": 2399142839,
"hue.light.00:17:88:01:02:07:a1:f7-0b": 1099356099,
"light.essbereich_lichter": 2392126668,
"light.wohnzimmer_lichter": 1964405263,
"light.wohnbereich_deckenlampen": 4102254641,
"hue.light.00:17:88:01:00:cb:8b:3d-0b": 3955885029,
"hue.light.00:17:88:01:00:cb:65:3c-0b": 3112281005,
"hue.light.00:17:88:01:01:1b:4f:25-0b": 4206129946,
"hue.light.00:12:4b:00:02:5f:c0:44-0b": 2992723811,
"hue.light.00:17:88:01:00:cd:c7:fe-0b": 3666810401,
"hue.light.00:17:88:01:00:cd:c7:fa-0b": 4276113061,
"hue.light.00:17:88:01:00:b5:39:23-0b": 781520107,
"hue.light.00:17:88:01:10:4e:75:a8-0b": 1456959566,
"cover.schlafzimmer_rollo_klein": 2213360758,
"cover.schlafzimmer_rollo_gross": 3660329119,
"cover.kinderzimmer_rollo": 1574429360,
"light.schlafzimmer_deckenlampe": 4086191374,
"light.kinderzimmer_deckenlampe": 1357007410,
"switch.bad_lufter": 2108832927,
"light.wohnzimmer_deckenlampe": 1245031287,
"light.esszimmer_deckenlampe_west": 460794150,
"light.esszimmer_deckenlampe_mitte": 1545120842,
"light.kuche_deckenlampe": 2326514259,
"light.aussen_terassenlicht": 3235466278,
"light.bad_licht": 1272095113,
"light.garten_lichter": 1632988290,
"hue.light.00:17:88:01:10:4e:5e:ff-0b": 523075551,
"hue.light.00:17:88:01:06:25:80:c9-0b": 1543867072,
"hue.light.00:17:88:01:06:25:94:0c-0b": 131117266,
"hue.light.00:17:88:01:04:f9:c3:32-0b": 3928279087,
"hue.light.00:17:88:01:04:4b:41:7f-0b": 3725059807,
"hue.light.00:17:88:01:04:98:e6:60-0b": 657349039,
"hue.light.00:17:88:01:04:05:22:c6-0b": 1662526083,
"script.bedroom_music_off_20": 2357725677,
"script.bedroom_music_off_30": 109377636,
"script.bedroom_music_off_45": 58897684,
"script.bedroom_music_off_60": 4101906505,
"script.bedroom_waves": 3287422185,
"script.bedroom_rain": 2176118223,
"script.bedroom_sleep_music_long": 2167838011,
"script.bedroom_sleep_music_short": 2422372189,
"hue.light.3ae16067-778e-47d9-86c5-d75d28b7f01b": 1762055787,
"hue.light.d6c3f683-2a24-4fc4-8055-eec68b3bb2f5": 4252871793,
"hue.light.22ffd26f-a76f-4c88-b2d8-2220ef7f8537": 1463708737,
"hue.light.a07ffc61-1d40-406b-b699-eb25c70d9cc4": 2276656891,
"hue.light.2e84b76c-748f-4375-82ab-05e15f4b7223": 2014439809,
"hue.light.58c1bf6f-844e-4690-a21e-f543ae544478": 363823799,
"hue.light.652b0901-18b3-4172-9c06-ca11a9cde172": 1710044888,
"hue.light.0aa6b6e3-7835-44bd-b1fe-06e7d38357bd": 3764471800,
"hue.light.8780e8b9-f420-4679-b434-3a3a02a32d17": 2802754275,
"hue.light.06259ccb-4b42-4f43-b33f-73b6fa5088c8": 3008706353,
"hue.light.56174d32-5767-458d-b3bf-f18fee04e33b": 3899854062,
"hue.light.c720f6e9-2444-4b36-be7a-b08cc4eed965": 1758205815,
"hue.light.de928995-bdc2-40d3-94a4-8aaee26a730f": 1173734377,
"hue.light.0d5d67e0-1f5b-4fe6-aae7-ac6f1f37fcaf": 2788850002,
"hue.light.78da0de5-c611-4b7e-8dc1-5d66347bed9b": 2202441427,
"hue.light.91b4abd8-c147-4b27-86ae-de083b6e860b": 2105360777,
"hue.light.d00eeb4b-0aa8-494f-aa64-1f84faa38213": 4065476362,
"hue.light.67247d33-bc41-4308-b2bb-144abd298001": 700545104,
"hue.light.515b9513-f060-4955-9dad-3e41e16f89ca": 2146599903
}
}
}

View File

@ -0,0 +1,854 @@
{
"version": 2,
"minor_version": 1,
"key": "homekit.e1101f79ce9b41a28359a95f85e57b63.iids",
"data": {
"allocations": {
"1": {
"3E___": 1,
"3E__14_": 2,
"3E__20_": 3,
"3E__21_": 4,
"3E__23_": 5,
"3E__30_": 6,
"3E__52_": 7,
"A2___": 8,
"A2__37_": 9
},
"982016353": {
"3E___": 1,
"3E__14_": 11,
"3E__20_": 12,
"3E__21_": 13,
"3E__23_": 14,
"3E__30_": 15,
"3E__52_": 16,
"49___": 17,
"49__25_": 18
},
"2317157230": {
"3E___": 1,
"3E__14_": 20,
"3E__20_": 21,
"3E__21_": 22,
"3E__23_": 23,
"3E__30_": 24,
"3E__52_": 25,
"49___": 26,
"49__25_": 27
},
"3215372892": {
"3E___": 1,
"3E__14_": 29,
"3E__20_": 30,
"3E__21_": 31,
"3E__23_": 32,
"3E__30_": 33,
"3E__52_": 34,
"49___": 35,
"49__25_": 36
},
"4138950599": {
"3E___": 1,
"3E__14_": 38,
"3E__20_": 39,
"3E__21_": 40,
"3E__23_": 41,
"3E__30_": 42,
"3E__52_": 43,
"49___": 44,
"49__25_": 45
},
"257166545": {
"3E___": 1,
"3E__14_": 47,
"3E__20_": 48,
"3E__21_": 49,
"3E__23_": 50,
"3E__30_": 51,
"3E__52_": 52,
"49___": 53,
"49__25_": 54
},
"4090447399": {
"3E___": 1,
"3E__14_": 56,
"3E__20_": 57,
"3E__21_": 58,
"3E__23_": 59,
"3E__30_": 60,
"3E__52_": 61,
"49___": 62,
"49__25_": 63
},
"3610510258": {
"3E___": 1,
"3E__14_": 65,
"3E__20_": 66,
"3E__21_": 67,
"3E__23_": 68,
"3E__30_": 69,
"3E__52_": 70,
"49___": 71,
"49__25_": 72
},
"44459589": {
"3E___": 1,
"3E__14_": 74,
"3E__20_": 75,
"3E__21_": 76,
"3E__23_": 77,
"3E__30_": 78,
"3E__52_": 79,
"49___": 80,
"49__25_": 81
},
"3000736384": {
"3E___": 1,
"3E__14_": 83,
"3E__20_": 84,
"3E__21_": 85,
"3E__23_": 86,
"3E__30_": 87,
"3E__52_": 88,
"49___": 89,
"49__25_": 90
},
"3216392962": {
"3E___": 1,
"3E__14_": 92,
"3E__20_": 93,
"3E__21_": 94,
"3E__23_": 95,
"3E__30_": 96,
"3E__52_": 97,
"49___": 98,
"49__25_": 99
},
"688806765": {
"3E___": 1,
"3E__14_": 101,
"3E__20_": 102,
"3E__21_": 103,
"3E__23_": 104,
"3E__30_": 105,
"3E__52_": 106,
"49___": 107,
"49__25_": 108
},
"243992313": {
"3E___": 1,
"3E__14_": 110,
"3E__20_": 111,
"3E__21_": 112,
"3E__23_": 113,
"3E__30_": 114,
"3E__52_": 115,
"49___": 116,
"49__25_": 117
},
"1045353045": {
"3E___": 1,
"3E__14_": 119,
"3E__20_": 120,
"3E__21_": 121,
"3E__23_": 122,
"3E__30_": 123,
"3E__52_": 124,
"49___": 125,
"49__25_": 126
},
"978395200": {
"3E___": 1,
"3E__14_": 128,
"3E__20_": 129,
"3E__21_": 130,
"3E__23_": 131,
"3E__30_": 132,
"3E__52_": 133,
"49___": 134,
"49__25_": 135
},
"384753228": {
"3E___": 1,
"3E__14_": 137,
"3E__20_": 138,
"3E__21_": 139,
"3E__23_": 140,
"3E__30_": 141,
"3E__52_": 142,
"49___": 143,
"49__25_": 144
},
"1245031287": {
"3E___": 1,
"3E__14_": 146,
"3E__20_": 147,
"3E__21_": 148,
"3E__23_": 149,
"3E__30_": 150,
"3E__52_": 151,
"43___": 152,
"43__25_": 153,
"43__8_": 154
},
"460794150": {
"3E___": 1,
"3E__14_": 156,
"3E__20_": 157,
"3E__21_": 158,
"3E__23_": 159,
"3E__30_": 160,
"3E__52_": 161,
"43___": 162,
"43__25_": 163,
"43__8_": 164
},
"1545120842": {
"3E___": 1,
"3E__14_": 166,
"3E__20_": 167,
"3E__21_": 168,
"3E__23_": 169,
"3E__30_": 170,
"3E__52_": 171,
"43___": 172,
"43__25_": 173,
"43__8_": 174
},
"2326514259": {
"3E___": 1,
"3E__14_": 176,
"3E__20_": 177,
"3E__21_": 178,
"3E__23_": 179,
"3E__30_": 180,
"3E__52_": 181,
"43___": 182,
"43__25_": 183,
"43__8_": 184
},
"3235466278": {
"3E___": 1,
"3E__14_": 186,
"3E__20_": 187,
"3E__21_": 188,
"3E__23_": 189,
"3E__30_": 190,
"3E__52_": 191,
"43___": 192,
"43__25_": 193,
"43__8_": 194
},
"3695130407": {
"3E___": 1,
"3E__14_": 196,
"3E__20_": 197,
"3E__21_": 198,
"3E__23_": 199,
"3E__30_": 200,
"3E__52_": 201,
"43___": 202,
"43__25_": 203,
"43__8_": 204
},
"1272095113": {
"3E___": 1,
"3E__14_": 206,
"3E__20_": 207,
"3E__21_": 208,
"3E__23_": 209,
"3E__30_": 210,
"3E__52_": 211,
"43___": 212,
"43__25_": 213,
"43__8_": 214
},
"2780319252": {
"3E___": 1,
"3E__14_": 216,
"3E__20_": 217,
"3E__21_": 218,
"3E__23_": 219,
"3E__30_": 220,
"3E__52_": 221,
"43___": 222,
"43__25_": 223,
"43__8_": 224
},
"2392126668": {
"3E___": 1,
"3E__14_": 226,
"3E__20_": 227,
"3E__21_": 228,
"3E__23_": 229,
"3E__30_": 230,
"3E__52_": 231,
"43___": 232,
"43__25_": 233,
"43__8_": 234,
"43__13_": 235,
"43__2F_": 236,
"43__CE_": 237
},
"1964405263": {
"3E___": 1,
"3E__14_": 239,
"3E__20_": 240,
"3E__21_": 241,
"3E__23_": 242,
"3E__30_": 243,
"3E__52_": 244,
"43___": 245,
"43__25_": 246,
"43__8_": 247,
"43__13_": 248,
"43__2F_": 249,
"43__CE_": 250
},
"4102254641": {
"3E___": 1,
"3E__14_": 252,
"3E__20_": 253,
"3E__21_": 254,
"3E__23_": 255,
"3E__30_": 256,
"3E__52_": 257,
"43___": 258,
"43__25_": 259,
"43__8_": 260
},
"1632988290": {
"3E___": 1,
"3E__14_": 262,
"3E__20_": 263,
"3E__21_": 264,
"3E__23_": 265,
"3E__30_": 266,
"3E__52_": 267,
"43___": 268,
"43__25_": 269,
"43__8_": 270,
"43__13_": 271,
"43__2F_": 272,
"43__CE_": 273
},
"3756587471": {
"3E___": 1,
"3E__14_": 275,
"3E__20_": 276,
"3E__21_": 277,
"3E__23_": 278,
"3E__30_": 279,
"3E__52_": 280,
"8C___": 281,
"8C__6D_": 282,
"8C__7C_": 283,
"8C__72_": 284,
"8C__6F_": 285
},
"230856714": {
"3E___": 1,
"3E__14_": 287,
"3E__20_": 288,
"3E__21_": 289,
"3E__23_": 290,
"3E__30_": 291,
"3E__52_": 292,
"8C___": 293,
"8C__6D_": 294,
"8C__7C_": 295,
"8C__72_": 296,
"8C__6F_": 297
},
"2724296497": {
"3E___": 1,
"3E__14_": 299,
"3E__20_": 300,
"3E__21_": 301,
"3E__23_": 302,
"3E__30_": 303,
"3E__52_": 304,
"8C___": 305,
"8C__6D_": 306,
"8C__7C_": 307,
"8C__72_": 308,
"8C__6F_": 309
},
"3842095442": {
"3E___": 1,
"3E__14_": 311,
"3E__20_": 312,
"3E__21_": 313,
"3E__23_": 314,
"3E__30_": 315,
"3E__52_": 316,
"8C___": 317,
"8C__6D_": 318,
"8C__7C_": 319,
"8C__72_": 320,
"8C__6F_": 321
},
"2357725677": {
"3E___": 1,
"3E__14_": 323,
"3E__20_": 324,
"3E__21_": 325,
"3E__23_": 326,
"3E__30_": 327,
"3E__52_": 328,
"49___": 329,
"49__25_": 330
},
"109377636": {
"3E___": 1,
"3E__14_": 332,
"3E__20_": 333,
"3E__21_": 334,
"3E__23_": 335,
"3E__30_": 336,
"3E__52_": 337,
"49___": 338,
"49__25_": 339
},
"58897684": {
"3E___": 1,
"3E__14_": 341,
"3E__20_": 342,
"3E__21_": 343,
"3E__23_": 344,
"3E__30_": 345,
"3E__52_": 346,
"49___": 347,
"49__25_": 348
},
"4101906505": {
"3E___": 1,
"3E__14_": 350,
"3E__20_": 351,
"3E__21_": 352,
"3E__23_": 353,
"3E__30_": 354,
"3E__52_": 355,
"49___": 356,
"49__25_": 357
},
"3287422185": {
"3E___": 1,
"3E__14_": 359,
"3E__20_": 360,
"3E__21_": 361,
"3E__23_": 362,
"3E__30_": 363,
"3E__52_": 364,
"49___": 365,
"49__25_": 366
},
"2176118223": {
"3E___": 1,
"3E__14_": 368,
"3E__20_": 369,
"3E__21_": 370,
"3E__23_": 371,
"3E__30_": 372,
"3E__52_": 373,
"49___": 374,
"49__25_": 375
},
"2167838011": {
"3E___": 1,
"3E__14_": 377,
"3E__20_": 378,
"3E__21_": 379,
"3E__23_": 380,
"3E__30_": 381,
"3E__52_": 382,
"49___": 383,
"49__25_": 384
},
"2422372189": {
"3E___": 1,
"3E__14_": 386,
"3E__20_": 387,
"3E__21_": 388,
"3E__23_": 389,
"3E__30_": 390,
"3E__52_": 391,
"49___": 392,
"49__25_": 393
},
"1357007410": {
"3E___": 1,
"3E__14_": 395,
"3E__20_": 396,
"3E__21_": 397,
"3E__23_": 398,
"3E__30_": 399,
"3E__52_": 400,
"43___": 401,
"43__25_": 402,
"43__8_": 403
},
"2213360758": {
"3E___": 1,
"3E__14_": 405,
"3E__20_": 406,
"3E__21_": 407,
"3E__23_": 408,
"3E__30_": 409,
"3E__52_": 410,
"8C___": 411,
"8C__6D_": 412,
"8C__7C_": 413,
"8C__72_": 414,
"8C__6F_": 415
},
"3626140425": {
"3E___": 1,
"3E__14_": 417,
"3E__20_": 418,
"3E__21_": 419,
"3E__23_": 420,
"3E__30_": 421,
"3E__52_": 422,
"43___": 423,
"43__25_": 424,
"43__8_": 425
},
"3660329119": {
"3E___": 1,
"3E__14_": 427,
"3E__20_": 428,
"3E__21_": 429,
"3E__23_": 430,
"3E__30_": 431,
"3E__52_": 432,
"8C___": 433,
"8C__6D_": 434,
"8C__7C_": 435,
"8C__72_": 436,
"8C__6F_": 437
},
"4086191374": {
"3E___": 1,
"3E__14_": 439,
"3E__20_": 440,
"3E__21_": 441,
"3E__23_": 442,
"3E__30_": 443,
"3E__52_": 444,
"43___": 445,
"43__25_": 446,
"43__8_": 447
},
"1762055787": {
"3E___": 1,
"3E__14_": 449,
"3E__20_": 450,
"3E__21_": 451,
"3E__23_": 452,
"3E__30_": 453,
"3E__52_": 454,
"43___": 455,
"43__25_": 456,
"43__8_": 457,
"43__13_": 458,
"43__2F_": 459,
"43__CE_": 460
},
"4252871793": {
"3E___": 1,
"3E__14_": 462,
"3E__20_": 463,
"3E__21_": 464,
"3E__23_": 465,
"3E__30_": 466,
"3E__52_": 467,
"43___": 468,
"43__25_": 469,
"43__8_": 470,
"43__13_": 471,
"43__2F_": 472,
"43__CE_": 473
},
"1463708737": {
"3E___": 1,
"3E__14_": 475,
"3E__20_": 476,
"3E__21_": 477,
"3E__23_": 478,
"3E__30_": 479,
"3E__52_": 480,
"43___": 481,
"43__25_": 482,
"43__8_": 483,
"43__13_": 484,
"43__2F_": 485
},
"2276656891": {
"3E___": 1,
"3E__14_": 487,
"3E__20_": 488,
"3E__21_": 489,
"3E__23_": 490,
"3E__30_": 491,
"3E__52_": 492,
"43___": 493,
"43__25_": 494,
"43__8_": 495,
"43__13_": 496,
"43__2F_": 497,
"43__CE_": 498
},
"2014439809": {
"3E___": 1,
"3E__14_": 500,
"3E__20_": 501,
"3E__21_": 502,
"3E__23_": 503,
"3E__30_": 504,
"3E__52_": 505,
"43___": 506,
"43__25_": 507,
"43__8_": 508,
"43__13_": 509,
"43__2F_": 510,
"43__CE_": 511
},
"363823799": {
"3E___": 1,
"3E__14_": 513,
"3E__20_": 514,
"3E__21_": 515,
"3E__23_": 516,
"3E__30_": 517,
"3E__52_": 518,
"43___": 519,
"43__25_": 520,
"43__8_": 521,
"43__13_": 522,
"43__2F_": 523,
"43__CE_": 524
},
"1710044888": {
"3E___": 1,
"3E__14_": 526,
"3E__20_": 527,
"3E__21_": 528,
"3E__23_": 529,
"3E__30_": 530,
"3E__52_": 531,
"43___": 532,
"43__25_": 533,
"43__8_": 534,
"43__13_": 535,
"43__2F_": 536,
"43__CE_": 537
},
"3764471800": {
"3E___": 1,
"3E__14_": 539,
"3E__20_": 540,
"3E__21_": 541,
"3E__23_": 542,
"3E__30_": 543,
"3E__52_": 544,
"43___": 545,
"43__25_": 546,
"43__8_": 547,
"43__13_": 548,
"43__2F_": 549,
"43__CE_": 550
},
"2802754275": {
"3E___": 1,
"3E__14_": 552,
"3E__20_": 553,
"3E__21_": 554,
"3E__23_": 555,
"3E__30_": 556,
"3E__52_": 557,
"43___": 558,
"43__25_": 559,
"43__8_": 560,
"43__13_": 561,
"43__2F_": 562
},
"3008706353": {
"3E___": 1,
"3E__14_": 564,
"3E__20_": 565,
"3E__21_": 566,
"3E__23_": 567,
"3E__30_": 568,
"3E__52_": 569,
"43___": 570,
"43__25_": 571,
"43__8_": 572,
"43__13_": 573,
"43__2F_": 574,
"43__CE_": 575
},
"3899854062": {
"3E___": 1,
"3E__14_": 577,
"3E__20_": 578,
"3E__21_": 579,
"3E__23_": 580,
"3E__30_": 581,
"3E__52_": 582,
"43___": 583,
"43__25_": 584,
"43__8_": 585,
"43__13_": 586,
"43__2F_": 587
},
"1758205815": {
"3E___": 1,
"3E__14_": 589,
"3E__20_": 590,
"3E__21_": 591,
"3E__23_": 592,
"3E__30_": 593,
"3E__52_": 594,
"43___": 595,
"43__25_": 596,
"43__8_": 597,
"43__13_": 598,
"43__2F_": 599,
"43__CE_": 600
},
"1173734377": {
"3E___": 1,
"3E__14_": 602,
"3E__20_": 603,
"3E__21_": 604,
"3E__23_": 605,
"3E__30_": 606,
"3E__52_": 607,
"43___": 608,
"43__25_": 609,
"43__8_": 610,
"43__13_": 611,
"43__2F_": 612,
"43__CE_": 613
},
"2788850002": {
"3E___": 1,
"3E__14_": 615,
"3E__20_": 616,
"3E__21_": 617,
"3E__23_": 618,
"3E__30_": 619,
"3E__52_": 620,
"43___": 621,
"43__25_": 622,
"43__8_": 623,
"43__13_": 624,
"43__2F_": 625,
"43__CE_": 626
},
"2202441427": {
"3E___": 1,
"3E__14_": 628,
"3E__20_": 629,
"3E__21_": 630,
"3E__23_": 631,
"3E__30_": 632,
"3E__52_": 633,
"43___": 634,
"43__25_": 635,
"43__8_": 636,
"43__13_": 637,
"43__2F_": 638
},
"2105360777": {
"3E___": 1,
"3E__14_": 640,
"3E__20_": 641,
"3E__21_": 642,
"3E__23_": 643,
"3E__30_": 644,
"3E__52_": 645,
"43___": 646,
"43__25_": 647,
"43__8_": 648,
"43__13_": 649,
"43__2F_": 650
},
"4065476362": {
"3E___": 1,
"3E__14_": 652,
"3E__20_": 653,
"3E__21_": 654,
"3E__23_": 655,
"3E__30_": 656,
"3E__52_": 657,
"43___": 658,
"43__25_": 659,
"43__8_": 660,
"43__13_": 661,
"43__2F_": 662,
"43__CE_": 663
},
"700545104": {
"3E___": 1,
"3E__14_": 665,
"3E__20_": 666,
"3E__21_": 667,
"3E__23_": 668,
"3E__30_": 669,
"3E__52_": 670,
"43___": 671,
"43__25_": 672,
"43__8_": 673,
"43__13_": 674,
"43__2F_": 675,
"43__CE_": 676
},
"2146599903": {
"3E___": 1,
"3E__14_": 678,
"3E__20_": 679,
"3E__21_": 680,
"3E__23_": 681,
"3E__30_": 682,
"3E__52_": 683,
"43___": 684,
"43__25_": 685,
"43__8_": 686,
"43__13_": 687,
"43__2F_": 688,
"43__CE_": 689
},
"339823541": {
"3E___": 1,
"3E__14_": 691,
"3E__20_": 692,
"3E__21_": 693,
"3E__23_": 694,
"3E__30_": 695,
"3E__52_": 696,
"8C___": 697,
"8C__6D_": 698,
"8C__7C_": 699,
"8C__72_": 700,
"8C__6F_": 701
},
"1574429360": {
"3E___": 1,
"3E__14_": 703,
"3E__20_": 704,
"3E__21_": 705,
"3E__23_": 706,
"3E__30_": 707,
"3E__52_": 708,
"8C___": 709,
"8C__6D_": 710,
"8C__7C_": 711,
"8C__72_": 712,
"8C__6F_": 713
}
}
}
}

View File

@ -0,0 +1 @@
{"mac": "2C:5F:45:B9:36:2A", "config_version": 127, "paired_clients": {"6ae4feba-9725-4653-8a32-bfae21591972": "4463182fbace66328d3e534cf78b6f81ccfd0e4250bdb1d954418e3eed738269"}, "client_properties": {"6ae4feba-9725-4653-8a32-bfae21591972": {"permissions": 1}}, "accessories_hash": "34ae9175218d7e54ea3281ab1907168c22703667083d4c0ca1bf4725e3e9df9533697ac5bc8500201b2cff6f7dfe25789aa7a2d3cdd0eb5b9fce054ca1c0bf6a", "private_key": "03d847a9e20598ee99c5b47cfc64c07ce83c7aebc6720e26e83fdd4c359e33c7", "public_key": "f4de2e4b9a98f38d27af5914310f92b861f6cdbc02e22945554c07bbc3868f70"}

18
.storage/http Normal file
View File

@ -0,0 +1,18 @@
{
"version": 1,
"minor_version": 1,
"key": "http",
"data": {
"use_x_forwarded_for": true,
"trusted_proxies": [
"192.168.178.80"
],
"cors_allowed_origins": [
"https://cast.home-assistant.io"
],
"server_port": 8123,
"ssl_profile": "modern",
"ip_ban_enabled": true,
"login_attempts_threshold": -1
}
}

8
.storage/http.auth Normal file
View File

@ -0,0 +1,8 @@
{
"version": 1,
"minor_version": 1,
"key": "http.auth",
"data": {
"content_user": "66ee14e588ef4a7bbd019a46eb9a3e29"
}
}

18
.storage/input_number Normal file
View File

@ -0,0 +1,18 @@
{
"version": 1,
"key": "input_number",
"data": {
"items": [
{
"min": 1.0,
"max": 60.0,
"name": "F\u00f6n aus in ",
"unit_of_measurement": "Minuten",
"icon": "mdi:time",
"step": 1.0,
"mode": "slider",
"id": "fon_aus_in"
}
]
}
}

View File

@ -1,573 +1,172 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace",
"data": {
"config": {
"title": "\u00dcbersicht",
"kiosk_mode": {
"mobile_settings": {
"hide_overflow": true
}
},
"title": "Übersicht",
"views": [
{
"title": "Übersicht",
"path": "ubersicht",
"icon": "mdi:home",
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"type": "entities",
"entities": [
"group.living_area"
],
"image": "/local/img/living_area_16_9.jpg",
"scenes": [
{
"color": "#f07a1d",
"name": "Orange",
"scene": "scene.wohnbereich_orange"
},
"type": "conditional",
"conditions": [
{
"color": "#f2e616",
"name": "Hell",
"scene": "scene.wohnbereich_hell"
},
{
"color": "#0050ff",
"name": "Blau",
"scene": "scene.wohnbereich_blau_grun"
"entity": "light.wohnbereich_lichter",
"state": "on"
}
],
"type": "custom:room-glance-card"
"row": {
"entity": "light.wohnbereich_deckenlampen"
}
},
{
"entities": [
"type": "conditional",
"conditions": [
{
"entity": "light.wohnzimmer_deckenlampe",
"name": "Wohnzimmer Decke"
},
{
"entity": "light.esszimmer_deckenlampe_west",
"name": "Esstisch"
},
{
"entity": "light.esszimmer_deckenlampe_mitte",
"name": "Esszimmer Mitte"
},
{
"entity": "light.kuche_deckenlampe",
"name": "K\u00fcche"
},
{
"type": "divider"
"entity": "sun.sun",
"state": "above_horizon"
},
{
"entity": "cover.wohnzimmer_fenster_rollo",
"name": "WZ Fenster",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.wohnzimmer_terrassentur_rollo",
"name": "Terrassent\u00fcr",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.kuche_fenster_rollo",
"name": "K\u00fcche",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.esszimmer_fenster_rollo",
"name": "Esszimmer",
"type": "custom:state-card-custom-cover"
},
{
"type": "divider"
},
{
"entity": "light.gang_licht",
"name": "Gang Licht"
},
{
"entity": "light.gang_bogen",
"name": "Gang Bogen"
"state": "open"
}
],
"show_header_toggle": false,
"type": "entities"
},
{
"entity": "media_player.kitchenpi",
"hide": {
"power_state": false,
"shuffle": false,
"source": true,
"volume": false
},
"idle_view": {
"when_idle": true,
"when_paused": true,
"when_standby": true
},
"shortcuts": {
"columns": 4,
"label": "Playlists",
"list": [
{
"icon": "mdi:alpha-r",
"id": "http://dg-br-http-dus-dtag-cdn.cast.addradio.de/br/b5aktuell/live/mp3/128/stream.mp3?ar-distributor=f0a1",
"name": "B5",
"type": "music"
},
{
"icon": "mdi:alpha-b",
"id": "spotify:playlist:37i9dQZF1DX6G7arXBXa3A",
"name": "BigBand",
"type": "music"
},
{
"icon": "mdi:alpha-j",
"id": "spotify:playlist:37i9dQZF1DX4wta20PHgwo",
"name": "LateNightJazz",
"type": "music"
"row": {
"entity": "cover.wohnzimmer_fenster_rollo",
"name": "WZ Fenster Rollo",
"type": "custom:state-card-custom-cover"
}
]
}
],
"title": "Wohnbereich"
},
"type": "custom:mini-media-player"
{
"type": "entity-filter",
"entities": [
{
"entity": "binary_sensor.sysdweb_kitchenpi_lircd"
},
{
"entity": "binary_sensor.sysdweb_kitchenpi_squeezelite"
},
{
"entity": "binary_sensor.sysdweb_kitchenpi_shairport_sync"
},
{
"entity": "binary_sensor.sysdweb_kitchenpi_dht22_sensing"
},
{
"entity": "binary_sensor.sysdweb_bedroompi_lircd"
},
{
"entity": "binary_sensor.sysdweb_bedroompi_squeezelite"
},
{
"entity": "binary_sensor.sysdweb_bedroompi_shairport_sync"
},
{
"entity": "binary_sensor.sysdweb_bedroompi_dht22_sensing"
},
{
"entity": "binary_sensor.sysdweb_esszimmerradio_lircd"
},
{
"entity": "binary_sensor.sysdweb_esszimmerradio_squeezelite"
},
{
"entity": "binary_sensor.sysdweb_esszimmerradio_shairport_sync"
},
{
"entity": "binary_sensor.sysdweb_esszimmerradio_sispmctl"
},
{
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_irserver"
},
{
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_squeezelite"
},
{
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_shairport_sync"
},
{
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_logitechmediaserver"
}
],
"state_filter": [
"off"
],
"show_empty": false,
"card": {
"title": "Non-running services"
}
},
{
"type": "entities",
"entities": [
{
"entity": "switch.tasmota01",
"icon": "mdi:led-strip-variant",
"name": "Balkon Lichterkette"
},
{
"entity": "switch.tasmota02",
"icon": "mdi:star-face",
"name": "Arbeitszimmer Stern"
},
{
"entity": "switch.tasmota03",
"icon": "mdi:star-four-points",
"name": "Eingang Stern"
},
{
"entity": "switch.mobile_steckdose_schalter_1",
"icon": "mdi:star",
"name": "K\u00fcche Stern"
},
{
"entity": "switch.mobile_steckdose_schalter_2",
"icon": "mdi:candle",
"name": "Wohnzimmer"
}
],
"title": "Weihnachten",
"state_color": true,
"icon": "mdi:pine-tree"
}
],
"icon": "mdi:sofa",
"title": "Wohnbereich"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.bedroom"
],
"image": "/local/img/bedroom.jpg",
"scenes": [
{
"color": "#eee",
"icon": "mdi:shoe-print",
"name": "Bettlicht Dunkel",
"scene": "scene.schlafzimmer_bettlicht_dunkel"
},
{
"color": "#f07a1d",
"name": "Orange",
"scene": "scene.schlafzimmer_orange"
},
{
"color": "#f35421",
"name": "Rot",
"scene": "scene.schlafzimmer_rot"
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.schlafzimmer_ganz_hell"
},
{
"color": "#2eacd7",
"name": "Blau",
"scene": "scene.schlafzimmer_blau"
}
],
"type": "custom:room-glance-card"
},
{
"artwork": "cover",
"entity": "media_player.bedroompi",
"hide": {
"power_state": false,
"shuffle": false,
"source": true,
"volume": false
},
"icon": "mdi:music",
"shortcuts": {
"buttons": [
{
"icon": "mdi:sleep",
"id": "Good Night",
"type": "music"
},
{
"icon": "mdi:power-sleep",
"id": "Good Night Long",
"type": "music"
},
{
"icon": "mdi:heart",
"id": "Bar Classics",
"type": "music"
},
{
"icon": "mdi:weather-lightning-rainy",
"id": "spotify:playlist:37i9dQZF1DXbcPC6Vvqudd",
"type": "music"
}
],
"columns": 4,
"label": "Playlists",
"list": [
{
"icon": "mdi:waves",
"id": "spotify:playlist:37i9dQZF1DX9if5QDLdzCa",
"name": "Wellen",
"type": "music"
},
{
"icon": "mdi:library-music-outline",
"id": "spotify:playlist:37i9dQZF1DX7heGeZ10YDi",
"name": "Different Sleeping List",
"type": "music"
},
{
"icon": "mdi:saxophone",
"id": "spotify:playlist:37i9dQZF1DX4wta20PHgwo",
"name": "Late NightJazz",
"type": "music"
},
{
"icon": "mdi:account-heart",
"id": "spotify:playlist:2AmjhSAm6iI0qrXXhQyHgk",
"name": "Romantic Jazz",
"type": "music"
},
{
"icon": "mdi:violin",
"id": "spotify:playlist:37i9dQZF1DX8Dd9bxD1WYH",
"name": "Klassik zum Entspannen",
"type": "music"
}
]
},
"type": "custom:mini-media-player"
},
{
"entities": [
{
"entity": "scene.schlafzimmer_stillen",
"icon": "mdi:baby-bottle",
"name": "Stillen"
},
{
"entity": "light.schlafzimmer_deckenlampe",
"name": "Deckenlampe"
},
{
"entity": "light.schlafzimmer_fluter",
"name": "Fluter"
},
{
"entity": "light.bett_martin",
"icon": "mdi:sleep",
"name": "Bett Martin"
},
{
"entity": "light.bett_rebecca",
"icon": "mdi:sleep",
"name": "Bett Rebecca"
},
{
"entity": "light.schlafzimmer_schrank",
"icon": "mdi:trello",
"name": "Schrank"
},
{
"entity": "cover.schlafzimmer_rollo_gross",
"name": "Rollo Gro\u00df",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.schlafzimmer_rollo_klein",
"name": "Rollo Klein",
"type": "custom:state-card-custom-cover"
},
{
"entity": "automation.wecker_licht_an",
"name": "Martin Wecker Licht an"
},
{
"entity": "sensor.martin_handy_alarm_sensor",
"format": "relative",
"name": "Wecker"
},
{
"entity": "sensor.schlafzimmer_dht22_temperatur",
"name": "Temperatur"
},
{
"entity": "sensor.schlafzimmer_dht22_luftfeuchtigkeit",
"name": "Luftfeuchtigkeit"
}
],
"show_header_toggle": false,
"type": "entities"
},
{
"card": {
"title": "Lichter die noch an sind",
"type": "entities"
},
"entities": [
{
"entity": "group.hallway",
"icon": "mdi:door-closed",
"name": "Gang"
},
{
"entity": "group.living_area",
"icon": "mdi:sofa",
"name": "Wohnzimmer/Esszimmer"
},
{
"entity": "group.office_martin",
"icon": "mdi:monitor-multiple",
"name": "Martins B\u00fcro"
},
{
"entity": "switch.mobile_steckdose_schalter_1",
"icon": "mdi:palm-tree",
"name": "Palmenlicht"
},
{
"entity": "group.outside",
"icon": "mdi:flower",
"name": "Drau\u00dfen"
},
{
"entity": "switch.mobile_steckdose_schalter_2",
"name": "Balkon"
}
],
"show_empty": false,
"state_filter": [
"on"
],
"type": "entity-filter"
}
],
"icon": "mdi:bed-empty",
"path": "schlafzimmer",
"title": "Schlafzimmer"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.office"
],
"image": "/local/img/office_martin_16_9.jpg",
"name": "Arbeitszimmer",
"scenes": [
{
"color": "#f07a1d",
"name": "Orange",
"scene": "scene.arbeitszimmer_orange"
},
{
"color": "#2eacd7",
"name": "Blau",
"scene": "scene.arbeitszimmer_blau_grun"
},
{
"color": "#fff",
"name": "Hell",
"scene": "scene.arbeitszimmer_hell"
}
],
"type": "custom:room-glance-card"
},
{
"entities": [
{
"entity": "light.arbeitszimmer_deckenlampe",
"name": "Deckenlampe"
},
{
"entity": "light.arbeitszimmer_fluter",
"name": "Fluter"
},
{
"entity": "light.arbeitszimmer_stehlampe_oben",
"name": "Stehlampe Oben"
},
{
"entity": "light.arbeitszimmer_stehlampe_unten",
"name": "Stehlampe Unten"
},
{
"entity": "cover.arbeitszimmer_rollo",
"name": "Rollo",
"type": "custom:state-card-custom-cover"
},
{
"entity": "binary_sensor.arbeitszimmer_bewegungsmelder_bewegung",
"format": "relative",
"name": "Bewegung",
"secondary_info": "last-changed"
}
],
"show_header_toggle": false,
"type": "entities"
}
],
"icon": "mdi:monitor-multiple",
"path": "arbeitszimmer",
"title": "Arbeitszimmer"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.kids_room"
],
"image": "/local/img/kinderzimmer.jpg",
"scenes": [
{
"color": "#ffffff",
"icon": "mdi:weather-night",
"name": "Wickel nachts",
"scene": "scene.kinderzimmer_wickeln_nachts"
},
{
"color": "#f07a1d",
"name": "Normal",
"scene": "scene.kinderzimmer_normal"
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.kinderzimmer_hell"
}
],
"type": "custom:room-glance-card"
},
{
"entities": [
{
"entity": "light.kinderzimmer_deckenlampe",
"name": "Deckenlampe"
},
{
"entity": "light.kinderzimmer_fluter",
"name": "Fluter"
},
{
"entity": "cover.kinderzimmer_rollo",
"name": "Rollo Klein",
"type": "custom:state-card-custom-cover"
"name": "Kinderzimmer Rollo",
"secondary_info": "none"
},
{
"entity": "switch.tasmota06",
"name": "Kamera Schlafzimmer",
"icon": "mdi:video"
},
{
"entity": "switch.tasmota07",
"name": "F\u00f6n Schlafzimmer",
"icon": "mdi:fan"
"type": "custom:template-entity-row",
"name": "{% set level = state_attr(\"cover.kinderzimmer_rollo\",\"current_position\") %} {% if level < 20 %}Kinderzimmer Rollo ist zu seit: {{ (as_timestamp(now()) - as_timestamp(states.cover.kinderzimmer_rollo.last_changed)) | timestamp_custom(\"%H:%M\", false) }} {% else %}Kinderzimmer Rollo ist {%if level < 100 %} ({{level}}/100) {%endif%} offen {% endif %}"
}
],
"show_header_toggle": false,
"type": "entities"
]
},
{
"aspect_ratio": "0%",
"camera_image": "camera.babycamera_mainstream",
"entity": "camera.babycamera_mainstream",
"image": "https://demo.home-assistant.io/stub_config/bedroom.png",
"name": "BabyCam",
"type": "picture-entity"
"type": "tile",
"entity": "light.arbeitszimmer_oben_fluter_hinten",
"show_entity_picture": false,
"features": [
{
"type": "light-brightness"
}
],
"icon": "mdi:star-face",
"panel": false,
"path": "kinderzimmer",
"title": "Kinderzimmer"
]
},
{
"type": "tile",
"entity": "light.arbeitszimmer_oben_fluter_vorne",
"features": [
{
"type": "light-brightness"
}
]
}
]
},
{
"title": "Wetter",
"path": "wetter",
"icon": "mdi:weather-partly-cloudy",
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.bathroom"
],
"image": "/local/img/bathroom2.jpg",
"scenes": [
{
"color": "#f07a1d",
"name": "Normal",
"scene": "scene.bad_normal"
"type": "weather-forecast",
"entity": "weather.openweathermap",
"show_forecast": true,
"name": " "
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.bad_hell"
},
{
"icon": "mdi:duck",
"name": "Baden",
"scene": "scene.bad_baden"
"type": "iframe",
"url": "https://embed.windy.com/embed2.html?lat=49.369&lon=10.984&detailLat=49.369&detailLon=10.984&width=650&height=450&zoom=11&level=surface&overlay=rain&product=ecmwf&menu=&message=true&marker=true&calendar=now&pressure=&type=map&location=coordinates&detail=&metricWind=km%2Fh&metricTemp=%C2%B0C&radarRange=-1",
"aspect_ratio": "80%",
"title": "Regenradar"
}
],
"type": "custom:room-glance-card"
},
{
"entities": [
{
"entity": "light.bad_licht",
"name": "Deckenlampe"
},
{
"entity": "switch.bad_lufter",
"icon": "mdi:emoticon-poop",
"name": "L\u00fcfter"
}
],
"show_header_toggle": false,
"type": "entities"
}
],
"icon": "mdi:fish",
"path": "bad-and-co",
"title": "Bad & Co"
]
}
]
}

724
.storage/lovelace.01_areas Normal file
View File

@ -0,0 +1,724 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace.01_areas",
"data": {
"config": {
"kiosk_mode": {
"mobile_settings": {
"hide_overflow": true
}
},
"title": "Bereiche",
"views": [
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.living_area"
],
"image": "/local/img/living_area_16_9.jpg",
"scenes": [
{
"color": "#f07a1d",
"name": "Orange",
"scene": "scene.wohnbereich_orange"
},
{
"color": "#f2e616",
"name": "Hell",
"scene": "scene.wohnbereich_hell"
},
{
"color": "#0050ff",
"name": "Blau",
"scene": "scene.wohnbereich_blau_grun"
}
],
"type": "custom:room-glance-card"
},
{
"entities": [
{
"entity": "light.wohnzimmer_deckenlampe",
"name": "Wohnzimmer Decke"
},
{
"entity": "light.esszimmer_deckenlampe_west",
"name": "Esstisch"
},
{
"entity": "light.esszimmer_deckenlampe_mitte",
"name": "Esszimmer Mitte"
},
{
"entity": "light.kuche_deckenlampe",
"name": "Küche"
},
{
"type": "section",
"label": "Rollos"
},
{
"entity": "cover.wohnzimmer_fenster_rollo",
"name": "WZ Fenster",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.wohnzimmer_terrassentur_rollo",
"name": "Terrassentür",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.kuche_fenster_rollo",
"name": "Küche",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.esszimmer_fenster_rollo",
"name": "Esszimmer",
"type": "custom:state-card-custom-cover"
},
{
"type": "section",
"label": "Gang"
},
{
"entity": "light.gang_licht",
"name": "Gang Licht"
},
{
"entity": "light.gang_bogen",
"name": "Gang Bogen"
},
{
"entity": "automation.gang_bogen_nachtlicht",
"name": "Autom. Bogenlicht"
}
],
"show_header_toggle": false,
"type": "entities"
},
{
"entity": "media_player.kitchenpi",
"hide": {
"power_state": false,
"shuffle": false,
"source": true,
"volume": false
},
"idle_view": {
"when_idle": true,
"when_paused": true,
"when_standby": true
},
"shortcuts": {
"columns": 4,
"label": "Playlists",
"list": [
{
"icon": "mdi:alpha-r",
"id": "http://dg-br-http-dus-dtag-cdn.cast.addradio.de/br/b5aktuell/live/mp3/128/stream.mp3?ar-distributor=f0a1",
"name": "B5",
"type": "music"
},
{
"icon": "mdi:alpha-b",
"id": "spotify:playlist:37i9dQZF1DX6G7arXBXa3A",
"name": "BigBand",
"type": "music"
},
{
"icon": "mdi:alpha-j",
"id": "spotify:playlist:37i9dQZF1DX4wta20PHgwo",
"name": "LateNightJazz",
"type": "music"
}
]
},
"type": "custom:mini-media-player",
"name": "Küche Radio"
},
{
"type": "entities",
"entities": [
{
"entity": "light.wohnzimmer_deckenlampe",
"name": "Deckenlampe",
"icon": "mdi:ceiling-light"
},
{
"entity": "light.wohnzimmer_kugel",
"name": "Kugel",
"icon": "mdi:circle-slice-8"
},
{
"entity": "light.wohnzimmer_stehlampe",
"name": "Stehlampe Unten",
"icon": "hue:dimmer-switch"
},
{
"entity": "light.wohnzimmer_stehlampe_oben",
"icon": "hue:dimmer-switch",
"name": "Stehlampe Oben"
},
{
"entity": "light.wohnzimmer_regal_links",
"name": "Regal links",
"icon": "hue:lightstrip"
},
{
"entity": "light.wohnzimmer_regal_rechts",
"name": "Regal rechts",
"icon": "hue:lightstrip"
},
{
"entity": "cover.wohnzimmer_fenster_rollo",
"name": "Rollo Fenster",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.wohnzimmer_terrassentur_rollo",
"name": "Tür Rollo",
"icon": "hass:door",
"type": "custom:state-card-custom-cover"
},
{
"entity": "sensor.wohnzimmer_terassentur_temperatur",
"name": "Terassentür"
}
],
"title": "Wohnzimmer",
"state_color": true
},
{
"type": "entities",
"entities": [
{
"entity": "light.esszimmer_deckenlampe_mitte",
"name": "Mitte Deckenlampe",
"icon": "mdi:ceiling-light"
},
{
"entity": "light.esszimmer_deckenlampe_west",
"name": "Tisch Deckenlampe",
"icon": "mdi:ceiling-light"
},
{
"entity": "light.kuche_vorne",
"name": "Anrichte unten",
"icon": "hue:lightstrip"
},
{
"entity": "cover.esszimmer_fenster_rollo",
"name": "Rollo Esszimmer",
"type": "custom:state-card-custom-cover"
},
{
"entity": "sensor.esszimmer_temperatur",
"name": "Gangtür"
}
],
"title": "Esszimmer"
},
{
"type": "entities",
"entities": [
{
"entity": "light.kuche_deckenlampe",
"name": "Deckenlampe",
"icon": "mdi:ceiling-light"
},
{
"entity": "light.kuche_links",
"name": "LED links",
"icon": "hue:lightstrip"
},
{
"entity": "light.kuche_rechts",
"name": "LED rechts",
"icon": "hue:lightstrip"
},
{
"entity": "cover.kuche_fenster_rollo",
"name": "Rollo Küche",
"type": "custom:state-card-custom-cover"
},
{
"entity": "sensor.kueche_dht22_temperatur",
"name": "Raspi"
}
],
"title": "Küche"
}
],
"icon": "mdi:sofa",
"title": "Wohnbereich"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.bedroom"
],
"image": "/local/img/bedroom.jpg",
"scenes": [
{
"color": "#eee",
"icon": "mdi:shoe-print",
"name": "Bettlicht Dunkel",
"scene": "scene.schlafzimmer_bettlicht_dunkel"
},
{
"color": "#f07a1d",
"name": "Orange",
"scene": "scene.schlafzimmer_orange"
},
{
"color": "#f35421",
"name": "Rot",
"scene": "scene.schlafzimmer_rot"
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.schlafzimmer_ganz_hell"
},
{
"color": "#2eacd7",
"name": "Blau",
"scene": "scene.schlafzimmer_blau"
}
],
"type": "custom:room-glance-card"
},
{
"card": {
"title": "Lichter die noch an sind",
"type": "entities"
},
"entities": [
{
"entity": "group.hallway",
"icon": "mdi:door-closed",
"name": "Gang"
},
{
"entity": "light.essbereich_lichter",
"icon": "mdi:sofa",
"name": "Esszimmer/Küche"
},
{
"entity": "light.wohnzimmer_lichter",
"icon": "mdi:sofa",
"name": "Wohnzimmer"
},
{
"entity": "light.arbeitszimmer_lichter",
"icon": "mdi:monitor-multiple",
"name": "Arbeitszimmer"
},
{
"entity": "group.outside",
"icon": "mdi:flower",
"name": "Draußen"
},
{
"entity": "switch.mobile_steckdose_schalter_2",
"name": "Balkon"
}
],
"show_empty": false,
"state_filter": [
"on"
],
"type": "entity-filter"
},
{
"artwork": "cover",
"entity": "media_player.bedroompi",
"hide": {
"power_state": false,
"shuffle": false,
"source": true,
"volume": false
},
"icon": "mdi:music",
"shortcuts": {
"buttons": [
{
"icon": "mdi:sleep",
"id": "Good Night",
"type": "music"
},
{
"icon": "mdi:power-sleep",
"id": "Good Night Long",
"type": "music"
},
{
"icon": "mdi:heart",
"id": "Bar Classics",
"type": "music"
},
{
"icon": "mdi:weather-lightning-rainy",
"id": "spotify:playlist:37i9dQZF1DXbcPC6Vvqudd",
"type": "music"
}
],
"columns": 4,
"label": "Playlists",
"list": [
{
"icon": "mdi:waves",
"id": "spotify:playlist:37i9dQZF1DX9if5QDLdzCa",
"name": "Wellen",
"type": "music"
},
{
"icon": "mdi:playlist-music",
"id": "spotify:playlist:37i9dQZF1DX7heGeZ10YDi",
"name": "Different Sleeping List",
"type": "music"
},
{
"icon": "mdi:saxophone",
"id": "spotify:playlist:37i9dQZF1DX4wta20PHgwo",
"name": "Late NightJazz",
"type": "music"
},
{
"icon": "mdi:account-heart",
"id": "spotify:playlist:2AmjhSAm6iI0qrXXhQyHgk",
"name": "Romantic Jazz",
"type": "music"
},
{
"icon": "mdi:violin",
"id": "spotify:playlist:37i9dQZF1DX8Dd9bxD1WYH",
"name": "Klassik zum Entspannen",
"type": "music"
}
]
},
"type": "custom:mini-media-player"
},
{
"entities": [
{
"entity": "scene.schlafzimmer_stillen",
"icon": "mdi:baby-bottle",
"name": "Stillen"
},
{
"entity": "light.schlafzimmer_deckenlampe",
"name": "Deckenlampe",
"icon": "mdi:ceiling-light"
},
{
"entity": "light.schlafzimmer_fluter",
"name": "Fluter",
"icon": "hue:floor-shade"
},
{
"entity": "light.bett_martin",
"icon": "mdi:bed",
"name": "Bett Martin"
},
{
"entity": "light.bett_rebecca",
"icon": "mdi:bed",
"name": "Bett Rebecca"
},
{
"entity": "light.schlafzimmer_schrank",
"icon": "mdi:trello",
"name": "Schrank"
},
{
"entity": "cover.schlafzimmer_rollo_gross",
"name": "Rollo Groß",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.schlafzimmer_rollo_klein",
"name": "Rollo Klein",
"type": "custom:state-card-custom-cover"
},
{
"entity": "automation.wecker_licht_an",
"name": "Martin Wecker Licht an"
},
{
"entity": "sensor.schlafzimmer_dht22_temperatur",
"name": "Temperatur"
},
{
"entity": "sensor.schlafzimmer_dht22_luftfeuchtigkeit",
"name": "Luftfeuchtigkeit"
}
],
"show_header_toggle": false,
"type": "entities"
}
],
"icon": "mdi:bed-empty",
"path": "schlafzimmer",
"title": "Schlafzimmer"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.office"
],
"image": "/local/img/office_martin_16_9.jpg",
"name": "Arbeitszimmer",
"scenes": [
{
"color": "#f07a1d",
"name": "Orange",
"scene": "scene.arbeitszimmer_orange"
},
{
"color": "#2eacd7",
"name": "Blau",
"scene": "scene.arbeitszimmer_blau_grun"
},
{
"color": "#fff",
"name": "Hell",
"scene": "scene.arbeitszimmer_hell"
}
],
"type": "custom:room-glance-card"
},
{
"entities": [
{
"entity": "light.arbeitszimmer_deckenlampe",
"name": "Deckenlampe"
},
{
"entity": "light.arbeitszimmer_fluter",
"name": "Fluter"
},
{
"entity": "light.arbeitszimmer_stehlampe_oben",
"name": "Stehlampe Oben"
},
{
"entity": "light.arbeitszimmer_stehlampe_unten",
"name": "Stehlampe Unten"
},
{
"entity": "cover.arbeitszimmer_rollo",
"name": "Rollo",
"type": "custom:state-card-custom-cover"
},
{
"type": "divider"
},
{
"entity": "light.arbeitszimmer_oben_fluter_hinten"
},
{
"entity": "light.arbeitszimmer_oben_fluter_vorne"
}
],
"show_header_toggle": false,
"type": "entities"
}
],
"icon": "mdi:monitor-multiple",
"path": "arbeitszimmer",
"title": "Arbeitszimmer"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.kids_room"
],
"image": "/local/img/kinderzimmer.jpg",
"scenes": [
{
"color": "#ffffff",
"icon": "mdi:weather-night",
"name": "Wickel nachts",
"scene": "scene.kinderzimmer_wickeln_nachts"
},
{
"color": "#f07a1d",
"name": "Normal",
"scene": "scene.kinderzimmer_normal"
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.kinderzimmer_hell"
}
],
"type": "custom:room-glance-card"
},
{
"entities": [
{
"entity": "light.kinderzimmer_deckenlampe",
"name": "Deckenlampe"
},
{
"entity": "light.music_mouse_regal_licht",
"name": "Regal",
"icon": "hue:bulb-group-lightstrip"
},
{
"entity": "light.kinderzimmer_fluter",
"name": "Fluter",
"icon": "hue:floor-shade"
},
{
"entity": "cover.kinderzimmer_rollo_2",
"name": "Rollo Klein",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.kinderzimmer_rollo",
"name": "Rollo",
"type": "custom:state-card-custom-cover"
}
],
"show_header_toggle": false,
"type": "entities"
},
{
"aspect_ratio": "0%",
"camera_image": "camera.babycamera_mainstream",
"entity": "camera.babycamera_mainstream",
"image": "https://demo.home-assistant.io/stub_config/bedroom.png",
"name": "BabyCam",
"type": "picture-entity"
},
{
"type": "entities",
"entities": [
{
"entity": "timer.fon_timer"
},
{
"type": "button",
"name": "Aus in 10 min",
"action_name": "Los",
"tap_action": {
"action": "call-service",
"service": "timer.start",
"service_data": {
"entity_id": "timer.fon_timer",
"duration": "00:10:00"
}
}
},
{
"type": "button",
"name": "Aus in 15 min",
"action_name": "Los",
"tap_action": {
"action": "call-service",
"service": "timer.start",
"service_data": {
"entity_id": "timer.fon_timer",
"duration": "00:15:00"
}
}
}
]
}
],
"icon": "mdi:star-face",
"panel": false,
"path": "kinderzimmer",
"title": "Kinderzimmer"
},
{
"title": "Draussen",
"path": "draussen",
"icon": "mdi:tree",
"badges": [],
"cards": [
{
"type": "entities",
"entities": [
{
"entity": "light.haustur_licht",
"icon": "hue:wall-lantern",
"name": "Haustür"
},
{
"entity": "light.aussen_terassenlicht",
"icon": "hue:wall-lantern",
"name": "Terrasse"
},
{
"type": "divider"
},
{
"entity": "light.haustur_licht_nw",
"name": "Ecklicht oben (NW)",
"icon": "hue:wall-lantern"
}
],
"title": "Licht",
"state_color": true
},
{
"type": "entities",
"entities": [
{
"entity": "switch.tasmota07",
"name": "Balkon",
"icon": "mdi:balcony"
},
{
"entity": "switch.tasmota01",
"name": "Eingang",
"icon": "mdi:window-closed-variant"
},
{
"entity": "switch.tasmota04",
"name": "Esszimmer",
"icon": "mdi:window-closed-variant"
},
{
"entity": "switch.tasmota02",
"name": "Wohnzimmer",
"icon": "mdi:string-lights"
},
{
"entity": "switch.tasmota05",
"name": "Arbeitszimmer",
"icon": "mdi:star-four-points"
},
{
"entity": "switch.tasmota06",
"name": "Treppe",
"icon": "mdi:stairs"
}
],
"title": "Weihnachten",
"show_header_toggle": false
}
]
}
]
}
}
}

701
.storage/lovelace.05_detail Normal file
View File

@ -0,0 +1,701 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace.05_detail",
"data": {
"config": {
"views": [
{
"title": "Sicherheit",
"icon": "mdi:security",
"badges": [],
"cards": [
{
"entities": [
{
"entity": "switch.trockner",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.waschmaschine",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.spulmaschine",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.backofen",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.herd_phase_1",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.herd_phase_2",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.herd_phase_3",
"type": "custom:toggle-lock-entity-row"
}
],
"show_header_toggle": false,
"title": "Sicherheitsabschaltung",
"type": "entities"
},
{
"entities": [
{
"entity": "binary_sensor.rauchmelder_schlafzimmer_smoke_alarm_smoke_detected"
},
{
"entity": "binary_sensor.rauchmelder_unten_gang_smoke_alarm_smoke_detected"
},
{
"entity": "binary_sensor.smoke_detector_and_siren_smoke_alarm_smoke_detected"
}
],
"show_header_toggle": false,
"title": "Rauchmelder",
"type": "entities"
},
{
"entities": [
{
"entity": "sensor.motion_combined",
"format": "relative",
"name": "Bewegung",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_ost",
"name": "Eingang",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_mitte",
"name": "Mitte",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_wohnzimmer",
"name": "Zum Wohnzimmer",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_schlafzimmer",
"name": "Zum Schlafzimmer",
"secondary_info": "last-changed"
},
{
"type": "divider"
},
{
"entity": "light.bewegungsmelder_west_led",
"name": "LED Westen (Schlafzimmer)"
},
{
"entity": "light.bewegungsmelder_ost_led",
"name": "LED Vorne (Ost)"
},
{
"entity": "light.bewegungsmelder_mitte_led",
"name": "LED Mitte"
}
],
"show_header_toggle": false,
"title": "Bewegungsmelder",
"type": "entities"
},
{
"entities": [
"switch.klingel_innentur",
"switch.klingel_aussentur",
"switch.klingel_oben"
],
"icon": "mdi:bell",
"title": "Klingel",
"type": "entities"
},
{
"type": "custom:valetudo-map-card",
"entity": "camera.map_data",
"title": "Staubsauger",
"vacuum_entity": "vacuum.vacuum",
"rotate": 0,
"crop": {
"top": 0,
"bottom": 0,
"left": 80,
"right": 0
},
"min_height": 0
}
]
},
{
"title": "Admin",
"path": "admin",
"icon": "mdi:keyboard",
"badges": [],
"cards": [
{
"entities": [
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_lircd",
"icon": "mdi:remote",
"name": "KitchenPi lirc",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_squeezelite",
"icon": "mdi:music",
"name": "KitchenPi squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_shairport_sync",
"icon": "mdi:tablet",
"name": "KitchenPi shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "dht22_sensing"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_dht22_sensing",
"icon": "mdi:thermometer",
"name": "KitchenPi dht22_sensing",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"type": "divider"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_lircd",
"icon": "mdi:remote",
"name": "bedroompi lirc",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_squeezelite",
"icon": "mdi:music",
"name": "bedroompi squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_shairport_sync",
"icon": "mdi:tablet",
"name": "bedroompi shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "dht22_sensing"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_dht22_sensing",
"icon": "mdi:thermometer",
"name": "bedroompi dht22_sensing",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"type": "divider"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_lircd",
"icon": "mdi:remote",
"name": "esszimmerradio lirc",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_squeezelite",
"icon": "mdi:music",
"name": "esszimmerradio squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_shairport_sync",
"icon": "mdi:tablet",
"name": "esszimmerradio shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "sispmctl"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_sispmctl",
"icon": "mdi:power",
"name": "esszimmerradio sispmctl",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"type": "divider"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_irserver",
"icon": "mdi:remote",
"name": "MusikServerWohnzimmerOben irserver",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_squeezelite",
"icon": "mdi:music",
"name": "MusikServerWohnzimmerOben squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_shairport_sync",
"icon": "mdi:tablet",
"name": "MusikServerWohnzimmerOben shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "dht22_sensing"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_dht22_sensing",
"icon": "mdi:thermometer",
"name": "MusikServerWohnzimmerOben dht22_sensing",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "logitechmediaserver"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_logitechmediaserver",
"icon": "mdi:music",
"name": "MusikServerWohnzimmerOben media server",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
}
],
"icon": "mdi:raspberry-pi",
"show_header_toggle": false,
"title": "Pi Services",
"type": "entities"
},
{
"type": "custom:scheduler-card",
"include": [
"cover",
"light"
]
}
]
},
{
"icon": "mdi:chart-line",
"title": "Statistik",
"path": "statistik",
"badges": [],
"cards": [
{
"animate": true,
"entities": [
{
"entity": "sensor.waschmaschine_verbrauch",
"name": "Waschmaschine"
},
{
"entity": "sensor.trockner_verbrauch",
"name": "Trockner"
}
],
"hours_to_show": 24,
"name": "Waschen Trocknen",
"points_per_hour": 1,
"type": "custom:mini-graph-card",
"upper_bound": 1200
},
{
"animate": true,
"entities": [
{
"entity": "sensor.spulmaschine_verbrauch",
"name": "Spühlmaschine"
},
{
"entity": "sensor.backofen_verbrauch",
"name": "Backofen"
},
{
"entity": "sensor.herd_phase_1_verbrauch",
"name": "Herd P1"
},
{
"entity": "sensor.herd_phase_2_verbrauch",
"name": "Herd P2"
},
{
"entity": "sensor.herd_phase_3_verbrauch",
"name": "Herd P3"
}
],
"hours_to_show": 8,
"name": "Küche",
"points_per_hour": 4,
"type": "custom:mini-graph-card",
"upper_bound": 1800
},
{
"entities": [
"sensor.esszimmer_temperatur",
"sensor.wohnzimmer_gang_temperatur",
"sensor.wohnzimmer_terassentur_temperatur",
"sensor.eingangsbereich_temperatur",
"sensor.treppenhaus_oben_temperatur"
],
"show_header_toggle": false,
"title": "Temperatur",
"type": "entities"
}
]
},
{
"title": "3D Printer",
"icon": "mdi:printer-3d-nozzle-outline",
"badges": [],
"cards": [
{
"type": "picture",
"image": "http://192.168.178.135:81/stream",
"tap_action": {
"action": "none"
},
"hold_action": {
"action": "none"
}
},
{
"type": "entities",
"entities": [
{
"entity": "light.prusabox_licht_alle",
"name": "Licht",
"type": "custom:slider-entity-row",
"toggle": true
},
{
"entity": "light.prusabox_licht_oben",
"icon": "mdi:led-strip",
"secondary_info": "brightness",
"name": "Oben"
},
{
"entity": "light.prusabox_licht_seiten",
"name": "Seiten",
"icon": "mdi:led-strip"
}
],
"title": "Licht",
"show_header_toggle": false,
"state_color": true
},
{
"type": "entities",
"entities": [
{
"entity": "fan.prusabox_lufter_draussen",
"name": "Lüfter nach aussen",
"secondary_info": "last-changed",
"type": "custom:slider-entity-row",
"toggle": true
},
{
"entity": "fan.prusabox_filter_lufter",
"name": "Filter Lüfter",
"icon": "mdi:filter",
"secondary_info": "last-changed",
"type": "custom:slider-entity-row",
"toggle": true
}
],
"title": "Lüfter",
"show_header_toggle": false
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.octoprint_current_state",
"name": "Status",
"secondary_info": "last-changed"
},
{
"type": "custom:template-entity-row",
"icon": "mdi:clock",
"name": "Fertig in",
"state": "{{ states('sensor.octoprint_time_remaining') | int // 3600}}h {{ states('sensor.octoprint_time_remaining') | int // 60 % 60}}min",
"secondary": "Druckt seit {{ states('sensor.octoprint_time_elapsed') | int // 3600}}h {{ states('sensor.octoprint_time_elapsed') | int // 60 % 60}}min",
"active": "{{ is_state('light.bed_light', 'off') }}"
},
{
"entity": "sensor.octoprint_actual_bed_temp",
"name": "Print Bed",
"icon": "mdi:card"
},
{
"entity": "sensor.octoprint_actual_tool0_temp",
"name": "Nozzle",
"icon": "mdi:printer-3d-nozzle"
},
{
"entity": "sensor.prusaprinter_dht22_temperatur",
"name": "Gehäuse",
"icon": "hass:cube"
},
{
"entity": "sensor.prusaprinter_dht22_luftfeuchtigkeit",
"name": "Luftfeuchtigkeit"
}
],
"title": "Status"
}
]
}
],
"title": "Details"
}
}
}

View File

@ -1,706 +1,36 @@
{
"version": 1,
"key": "lovelace.lovelace_rebecca",
"data": {
"config": {
"title": "Alt",
"views": [
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.bathroom"
],
"image": "/local/img/bathroom2.jpg",
"scenes": [
{
"entity": "light.haustur_licht",
"icon": "mdi:book",
"name": "Haust\u00fcr"
"color": "#f07a1d",
"name": "Normal",
"scene": "scene.bad_normal"
},
{
"entity": "light.garten_spot_birke",
"icon": "mdi:flower",
"name": "Birke"
"color": "#fdef56",
"name": "Hell",
"scene": "scene.bad_hell"
},
{
"entity": "light.garten_spot_magnolie",
"icon": "mdi:flower",
"name": "Magnolie"
},
{
"entity": "light.garten_stehleuchte",
"icon": "mdi:flower",
"name": "Stehleuchte"
"icon": "mdi:duck",
"name": "Baden",
"scene": "scene.bad_baden"
}
],
"title": "Au\u00dfen",
"type": "entities"
},
{
"entities": [
{
"entity": "switch.mobile_steckdose_schalter_2",
"name": "Balkon"
}
],
"icon": "mdi:pine-tree",
"show_header_toggle": true,
"title": "Weihnachten",
"type": "entities"
},
{
"entities": [
"switch.klingel_innentur",
"switch.klingel_aussentur",
"switch.klingel_oben"
],
"icon": "mdi:bell",
"title": "Klingel",
"type": "entities"
}
],
"icon": "mdi:tree",
"title": "Au\u00dfen"
},
{
"cards": [
{
"entities": [
{
"entity": "sensor.motion_combined",
"format": "relative",
"name": "Bewegung",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_ost",
"name": "Eingang",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_mitte",
"name": "Mitte",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_wohnzimmer",
"name": "Zum Wohnzimmer",
"secondary_info": "last-changed"
},
{
"entity": "binary_sensor.gang_bewegungsmelder_schlafzimmer",
"name": "Zum Schlafzimmer",
"secondary_info": "last-changed"
}
],
"show_header_toggle": false,
"title": "Bewegungsmelder",
"type": "entities"
},
{
"entities": [
"light.bewegungsmelder_west_led",
"light.bewegungsmelder_ost_led",
"light.bewegungsmelder_mitte_led"
],
"title": "Bewegungsmelder LEDs",
"type": "entities"
},
{
"animate": true,
"entities": [
{
"entity": "sensor.waschmaschine_verbrauch",
"name": "Waschmaschine"
},
{
"entity": "sensor.trockner_verbrauch",
"name": "Trockner"
}
],
"hours_to_show": 24,
"name": "Waschen Trocknen",
"points_per_hour": 1,
"type": "custom:mini-graph-card",
"upper_bound": 1200
},
{
"animate": true,
"entities": [
{
"entity": "sensor.spulmaschine_verbrauch",
"name": "Sp\u00fchlmaschine"
},
{
"entity": "sensor.backofen_verbrauch",
"name": "Backofen"
},
{
"entity": "sensor.herd_phase_1_verbrauch",
"name": "Herd P1"
},
{
"entity": "sensor.herd_phase_2_verbrauch",
"name": "Herd P2"
},
{
"entity": "sensor.herd_phase_3_verbrauch",
"name": "Herd P3"
}
],
"hours_to_show": 8,
"name": "K\u00fcche",
"points_per_hour": 4,
"type": "custom:mini-graph-card",
"upper_bound": 1800
},
{
"animate": true,
"entities": [
{
"entity": "sensor.fritz_box_7490_kbyte_sec_received",
"name": "Down"
},
{
"entity": "sensor.fritz_box_7490_kbyte_sec_sent",
"name": "Up"
}
],
"hours_to_show": 2,
"name": "Internet",
"points_per_hour": 30,
"type": "custom:mini-graph-card"
},
{
"entities": [
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_lircd",
"icon": "mdi:remote",
"name": "KitchenPi lirc",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_squeezelite",
"icon": "mdi:music",
"name": "KitchenPi squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_shairport_sync",
"icon": "mdi:tablet",
"name": "KitchenPi shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "kitchenpi.fritz.box",
"service_name": "dht22_sensing"
}
}
}
],
"entity": "binary_sensor.sysdweb_kitchenpi_dht22_sensing",
"icon": "mdi:thermometer",
"name": "KitchenPi dht22_sensing",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"type": "divider"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_lircd",
"icon": "mdi:remote",
"name": "bedroompi lirc",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_squeezelite",
"icon": "mdi:music",
"name": "bedroompi squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_shairport_sync",
"icon": "mdi:tablet",
"name": "bedroompi shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "bedroompi.fritz.box",
"service_name": "dht22_sensing"
}
}
}
],
"entity": "binary_sensor.sysdweb_bedroompi_dht22_sensing",
"icon": "mdi:thermometer",
"name": "bedroompi dht22_sensing",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"type": "divider"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_lircd",
"icon": "mdi:remote",
"name": "esszimmerradio lirc",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_squeezelite",
"icon": "mdi:music",
"name": "esszimmerradio squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_shairport_sync",
"icon": "mdi:tablet",
"name": "esszimmerradio shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "esszimmerradio.fritz.box",
"service_name": "sispmctl"
}
}
}
],
"entity": "binary_sensor.sysdweb_esszimmerradio_sispmctl",
"icon": "mdi:power",
"name": "esszimmerradio sispmctl",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"type": "divider"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "lircd"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_irserver",
"icon": "mdi:remote",
"name": "MusikServerWohnzimmerOben irserver",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "squeezelite"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_squeezelite",
"icon": "mdi:music",
"name": "MusikServerWohnzimmerOben squeezelite",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "shairport-sync"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_shairport_sync",
"icon": "mdi:tablet",
"name": "MusikServerWohnzimmerOben shairport-sync",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "dht22_sensing"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_dht22_sensing",
"icon": "mdi:thermometer",
"name": "MusikServerWohnzimmerOben dht22_sensing",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
},
{
"entities": [
{
"icon": "mdi:twitter-retweet",
"tap_action": {
"action": "call-service",
"confirmation": "Wirklich neu starten?",
"service": "sysdweb.restart",
"service_data": {
"hostname": "musikserverwohnzimmeroben.fritz.box",
"service_name": "logitechmediaserver"
}
}
}
],
"entity": "binary_sensor.sysdweb_musikserverwohnzimmeroben_logitechmediaserver",
"icon": "mdi:music",
"name": "MusikServerWohnzimmerOben media server",
"secondary_info": "last-changed",
"type": "custom:multiple-entity-row"
}
],
"icon": "mdi:raspberry-pi",
"show_header_toggle": false,
"title": "Pi Services",
"type": "entities"
}
],
"icon": "mdi:key",
"title": "Admin"
},
{
"cards": [
{
"entities": [
{
"entity": "light.kuche_deckenlampe",
"name": "Decke K\u00fcche"
},
{
"entity": "light.esszimmer_deckenlampe_mitte",
"name": "Decke Esszimmer Mitte"
},
{
"entity": "light.esszimmer_deckenlampe_west",
"name": "Decke Esszimmer"
},
{
"type": "divider"
},
{
"entity": "light.kuche_links",
"name": "K\u00fcche LED links"
},
{
"entity": "light.kuche_rechts",
"name": "K\u00fcche LED rechts"
},
{
"entity": "light.kuche_vorne",
"name": "K\u00fcche LED vorne"
},
{
"type": "divider"
},
{
"entity": "cover.kuche_fenster_rollo",
"name": "K\u00fcche",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.esszimmer_fenster_rollo",
"name": "Esszimmer",
"type": "custom:state-card-custom-cover"
}
],
"show_header_toggle": true,
"title": "K\u00fcche/Esszimmer",
"type": "entities"
},
{
"entities": [
{
"entity": "light.wohnzimmer_deckenlampe",
"name": "Decke"
},
{
"type": "divider"
},
{
"entity": "light.wohnzimmer_kugel",
"name": "Kugel"
},
{
"entity": "light.wohnzimmer_regal_links",
"name": "Regal links"
},
{
"entity": "light.wohnzimmer_regal_rechts",
"name": "Regal rechts"
},
{
"type": "divider"
},
{
"entity": "light.wohnzimmer_stehlampe_oben",
"name": "Stehlampe oben"
},
{
"entity": "light.wohnzimmer_stehlampe",
"name": "Stehlampe unten"
},
{
"type": "divider"
},
{
"entity": "cover.wohnzimmer_fenster_rollo",
"name": "Fenster",
"type": "custom:state-card-custom-cover"
},
{
"entity": "cover.wohnzimmer_terrassentur_rollo",
"name": "T\u00fcr",
"type": "custom:state-card-custom-cover"
}
],
"show_header_toggle": true,
"title": "Wohnzimmer",
"type": "entities"
},
{
"entities": [
{
"entity": "switch.trockner",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.waschmaschine",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.spulmaschine",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.backofen",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.herd_phase_1",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.herd_phase_2",
"type": "custom:toggle-lock-entity-row"
},
{
"entity": "switch.herd_phase_3",
"type": "custom:toggle-lock-entity-row"
}
],
"show_header_toggle": false,
"title": "Sicherheitsabschaltung",
"type": "entities"
},
{
"entities": [
"sensor.esszimmer_temperatur",
"sensor.wohnzimmer_gang_temperatur",
"sensor.wohnzimmer_terassentur_temperatur",
"sensor.eingangsbereich_temperatur",
"sensor.treppenhaus_oben_temperatur"
],
"show_header_toggle": false,
"title": "Temperatur",
"type": "entities"
},
{
"entities": [
"binary_sensor.rauchmelder_gang_oben_sensor",
"binary_sensor.rauchmelder_gang_sensor",
"binary_sensor.rauchmelder_schlafzimmer_sensor",
"binary_sensor.rauchmelder_wohnzimmer_sensor"
],
"show_header_toggle": false,
"title": "Rauchmelder",
"type": "entities"
"type": "custom:room-glance-card"
}
],
"icon": "mdi:more",
@ -708,7 +38,5 @@
}
]
}
},
"key": "lovelace.lovelace_rebecca",
"version": 1
}
}

View File

@ -1,17 +1,35 @@
{
"version": 1,
"key": "lovelace_dashboards",
"data": {
"items": [
{
"icon": "mdi:account",
"id": "lovelace_rebecca",
"mode": "storage",
"require_admin": false,
"show_in_sidebar": true,
"require_admin": true,
"show_in_sidebar": false,
"title": "Alt",
"url_path": "lovelace-rebecca"
},
{
"require_admin": false,
"show_in_sidebar": true,
"icon": "mdi:texture-box",
"title": "Bereiche",
"url_path": "01-areas",
"mode": "storage",
"id": "01_areas"
},
{
"require_admin": false,
"show_in_sidebar": true,
"icon": "mdi:format-list-checkbox",
"title": "Detail",
"url_path": "05-detail",
"mode": "storage",
"id": "05_detail"
}
]
},
"key": "lovelace_dashboards",
"version": 1
}
}

View File

@ -1,37 +1,93 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace_resources",
"data": {
"items": [
{
"id": "2dd231ecf4fa46d1b9ba696f28da7731",
"type": "module",
"url": "/local/custom_ui/state-card-custom-cover.js"
"url": "/local/custom_ui/state-card-custom-cover.js?v=1.09"
},
{
"id": "526c1c7115cd4bb396cf02a83b884365",
"type": "js",
"url": "/local/custom_ui/toggle-lock-entity-row.js"
},
{
"id": "7a6c43fa1538436da6459843fd217667",
"type": "module",
"url": "/local/custom_ui/mini-graph-card-bundle.js?v=0.4.3"
},
{
"id": "3527ae66772544dfb09c5246ba4882c0",
"type": "module",
"url": "/local/custom_ui/mini-media-player-bundle.js?v=1.5.1"
},
{
"id": "55ef5e325ab444d19e15a1183a97fb35",
"type": "module",
"url": "/local/custom_ui/room-glance-card.js?v=1.0"
"url": "/local/custom_ui/room-glance-card.js?v=1.09"
},
{
"id": "02ac97946bb44092a5f073752a8b6deb",
"url": "/hacsfiles/scheduler-card/scheduler-card.js?hacstag=286270157239",
"type": "module",
"url": "/local/custom_ui/multiple-entity-row.js?v=3.5.1"
"id": "af379618bd83489a9f2f15a0be498eaf"
},
{
"url": "/hacsfiles/lovelace-slider-entity-row/slider-entity-row.js?hacstag=1448997001721",
"type": "module",
"id": "7067680a3f314af285c5ebe1605e0451"
},
{
"url": "/hacsfiles/lovelace-template-entity-row/template-entity-row.js?hacstag=231674882130",
"type": "module",
"id": "aa48cd5ffa8a4e0883ce06e64391cf46"
},
{
"url": "/hacsfiles/rgb-light-card/card.js?hacstag=2153271951110",
"type": "module",
"id": "9fa16ed42d0c480ab9dc711cb98790e7"
},
{
"url": "/hacsfiles/mini-graph-card/mini-graph-card-bundle.js?hacstag=1512800620110",
"type": "module",
"id": "5fb0764a8bb54c4aaf4a4be15022095b"
},
{
"url": "/hacsfiles/mini-media-player/mini-media-player-bundle.js?hacstag=1485208381165",
"type": "module",
"id": "9f7ce776f265476f89246c9926a933a8"
},
{
"url": "/hacsfiles/lovelace-multiple-entity-row/multiple-entity-row.js?hacstag=178921037441",
"type": "module",
"id": "295d5e67ee594e31935e535c2c4b7bd4"
},
{
"url": "/hacsfiles/hass-hue-icons/hass-hue-icons.js?hacstag=3844345221248",
"type": "module",
"id": "59ab7764b5724e75ac5ff57fdcd54e2c"
},
{
"url": "/hacsfiles/spotify-card/spotify-card.js?hacstag=173955605240",
"type": "module",
"id": "caffec3aea214ea7a0b32f943c8b63ff"
},
{
"url": "/hacsfiles/slider-button-card/slider-button-card.js?hacstag=3754399611103",
"type": "module",
"id": "c5461acbb2e742e4b06cebf73181ffc7"
},
{
"url": "/hacsfiles/apexcharts-card/apexcharts-card.js?hacstag=331701152202",
"type": "module",
"id": "322b6b5391e84fd1bb126c8448db1ebb"
},
{
"url": "/hacsfiles/kiosk-mode/kiosk-mode.js?hacstag=303101606172",
"type": "module",
"id": "58eff8b61ebf463b86570a8c975adda3"
},
{
"url": "/hacsfiles/lovelace-valetudo-map-card/valetudo-map-card.js?hacstag=20303610820211205",
"type": "module",
"id": "44c1654a1a8b4e078c2d69bf52ba2ce5"
},
{
"url": "/hacsfiles/lovelace-plotly-graph-card/plotly-graph-card.js?hacstag=413812496182",
"type": "module",
"id": "32657eeee53441558557757278d7e135"
}
]
}

View File

@ -602,7 +602,7 @@
"device_class": "battery",
"icon": "mdi:battery-70",
"name": "Battery Level",
"state": 74,
"state": 73,
"type": "sensor",
"unique_id": "battery_level",
"unit_of_measurement": "%",
@ -647,7 +647,9 @@
"cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e_detected_activity": {
"added": true,
"attributes": {
"still": 100
"in_vehicle": 2,
"still": 97,
"unknown": 1
},
"icon": "mdi:sleep",
"name": "Erkannte Aktivit\u00e4t",
@ -691,13 +693,13 @@
"cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e_last_reboot": {
"added": true,
"attributes": {
"Local Time": "Mon Jan 25 02:51:06 GMT+01:00 2021",
"Time in Milliseconds": 1611539466409
"Local Time": "Wed Mar 03 14:23:12 GMT+01:00 2021",
"Time in Milliseconds": 1614777792390
},
"device_class": "timestamp",
"icon": "mdi:restart",
"name": "Last Reboot",
"state": "2021-01-25T01:51:06Z",
"state": "2021-03-03T13:23:12Z",
"type": "sensor",
"unique_id": "last_reboot",
"webhook_id": "cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e"
@ -717,14 +719,14 @@
"cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e_next_alarm": {
"added": true,
"attributes": {
"Local Time": "Tue Feb 02 06:45:00 GMT+01:00 2021",
"Local Time": "Fri Apr 02 07:30:00 GMT+02:00 2021",
"Package": "Unknown",
"Time in Milliseconds": 1612244700000
"Time in Milliseconds": 1617341400000
},
"device_class": "timestamp",
"icon": "mdi:alarm",
"name": "Next Alarm",
"state": "2021-02-02T05:45:00.000Z",
"state": "2021-04-02T05:30:00.000Z",
"type": "sensor",
"unique_id": "next_alarm",
"webhook_id": "cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e"
@ -754,7 +756,7 @@
"attributes": {},
"icon": "mdi:walk",
"name": "Schrittsensor",
"state": "19916",
"state": "106021",
"type": "sensor",
"unique_id": "steps_sensor",
"unit_of_measurement": "steps",
@ -762,10 +764,13 @@
},
"cf6ed33d60ed7470befdf2ec4bd12feecf0be745491431fe61cf57fe91cf400e_storage_sensor": {
"added": true,
"attributes": {},
"attributes": {
"Free internal storage": "84GB",
"Total internal storage": "110GB"
},
"icon": "mdi:harddisk",
"name": "Storage Sensor",
"state": 78,
"state": 76,
"type": "sensor",
"unique_id": "storage_sensor",
"unit_of_measurement": "%",
@ -810,14 +815,14 @@
},
"2c1e087aa21f2de29ea717b0af4d5de61621ba42229d570cb93181e61c6dc72a_storage": {
"attributes": {
"Available": "109,76 GB",
"Available (Important)": "119,30 GB",
"Available (Opportunistic)": "118,01 GB",
"Available": "103,52 GB",
"Available (Important)": "113,35 GB",
"Available (Opportunistic)": "112,07 GB",
"Total": "255,98 GB"
},
"icon": "mdi:database",
"name": "Storage",
"state": "46.10",
"state": "43.78",
"type": "sensor",
"unique_id": "storage",
"unit_of_measurement": "% available",
@ -825,14 +830,11 @@
"added": true
},
"2c1e087aa21f2de29ea717b0af4d5de61621ba42229d570cb93181e61c6dc72a_battery_level": {
"attributes": {
"Battery State": "Not Charging",
"Low Power Mode": false
},
"attributes": {},
"device_class": "battery",
"icon": "mdi:battery-50",
"icon": "mdi:battery-90",
"name": "Battery Level",
"state": 58,
"state": 96,
"type": "sensor",
"unique_id": "battery_level",
"unit_of_measurement": "%",
@ -841,11 +843,10 @@
},
"2c1e087aa21f2de29ea717b0af4d5de61621ba42229d570cb93181e61c6dc72a_battery_state": {
"attributes": {
"Battery Level": 58,
"Low Power Mode": false
},
"device_class": "battery",
"icon": "mdi:battery-50",
"icon": "mdi:battery-90",
"name": "Battery State",
"state": "Not Charging",
"type": "sensor",
@ -856,7 +857,7 @@
"2c1e087aa21f2de29ea717b0af4d5de61621ba42229d570cb93181e61c6dc72a_connectivity_bssid": {
"icon": "mdi:wifi-star",
"name": "BSSID",
"state": "7c:ff:4d:4:d7:a6",
"state": "7c:ff:4d:4:d7:a7",
"type": "sensor",
"unique_id": "connectivity_bssid",
"attributes": {},
@ -898,7 +899,7 @@
"Locality": "Rohr",
"Location": [
49.369293212890625,
10.983685522613598
10.983692880866485
],
"Name": "Dietersdorfer Stra\u00dfe 19",
"Ocean": "N/A",
@ -909,7 +910,7 @@
"Thoroughfare": "Dietersdorfer Stra\u00dfe",
"Time Zone": "Europe/Berlin",
"Zones": [
"Home"
"MyHome"
]
},
"webhook_id": "2c1e087aa21f2de29ea717b0af4d5de61621ba42229d570cb93181e61c6dc72a",

View File

@ -1,11 +1,13 @@
{
"version": 4,
"minor_version": 1,
"key": "onboarding",
"data": {
"done": [
"user",
"core_config",
"integration"
"integration",
"analytics"
]
},
"key": "onboarding",
"version": 3
}
}

View File

@ -0,0 +1,72 @@
{
"version": 1,
"minor_version": 2,
"key": "repairs.issue_registry",
"data": {
"issues": [
{
"created": "2022-09-09T06:33:43.505471+00:00",
"dismissed_version": null,
"domain": "mqtt",
"is_persistent": false,
"issue_id": "deprecated_yaml_sensor"
},
{
"created": "2022-11-05T08:38:01.629065+00:00",
"dismissed_version": "2022.11.1",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_docker_configuration"
},
{
"created": "2022-11-24T14:51:54.848806+00:00",
"dismissed_version": "2022.11.4",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_software"
},
{
"created": "2022-12-28T16:35:01.348212+00:00",
"dismissed_version": "2022.12.8",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_apparmor"
},
{
"created": "2022-12-28T16:35:15.646313+00:00",
"dismissed_version": "2022.12.8",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_os"
},
{
"created": "2022-12-28T16:35:15.664932+00:00",
"dismissed_version": "2022.12.8",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_os_agent"
},
{
"created": "2022-12-28T16:35:15.665512+00:00",
"dismissed_version": "2022.12.8",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_systemd_journal"
},
{
"created": "2022-12-28T16:35:15.716611+00:00",
"dismissed_version": "2022.12.8",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_systemd_resolved"
},
{
"created": "2022-12-28T16:35:18.109568+00:00",
"dismissed_version": "2022.12.8",
"domain": "hassio",
"is_persistent": false,
"issue_id": "unsupported_system_connectivity_check"
}
]
}
}

13
.storage/tag Normal file
View File

@ -0,0 +1,13 @@
{
"version": 1,
"key": "tag",
"data": {
"items": [
{
"tag_id": "71357caa-1234-4d94-a2f1-1bbeebc8b65b",
"last_scanned": "2021-12-08T21:49:53.096053+00:00",
"id": "71357caa-1234-4d94-a2f1-1bbeebc8b65b"
}
]
}
}

14
.storage/timer Normal file
View File

@ -0,0 +1,14 @@
{
"version": 1,
"key": "timer",
"data": {
"items": [
{
"duration": "0:10:00",
"name": "F\u00f6n Timer",
"icon": "mdi:hair-dryer",
"id": "fon_timer"
}
]
}
}

6616
.storage/trace.saved_traces Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,373 @@
{
"version": 1,
"minor_version": 1,
"key": "zwave_js.legacy_zwave_migration",
"data": {
"221428ba9e0f0d5b3240bd2162be99f4": {
"sensor.smoke_detector_and_siren_battery_level": {
"node_id": 3,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "3-128-0-level",
"device_id": "a47da225a9cdc8ad25afcef0a26fa228",
"domain": "sensor",
"entity_id": "sensor.smoke_detector_and_siren_battery_level",
"unique_id": "4231470061.3-128-0-level",
"unit_of_measurement": "%"
},
"switch.smoke_detector_and_siren": {
"node_id": 5,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "5-37-0-currentValue",
"device_id": "8f66617492092699396e382a0cde04e4",
"domain": "switch",
"entity_id": "switch.smoke_detector_and_siren",
"unique_id": "4231470061.5-37-0-currentValue",
"unit_of_measurement": null
},
"binary_sensor.smoke_detector_and_siren_smoke_alarm_smoke_detected": {
"node_id": 5,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "5-113-0-Smoke Alarm-Sensor status",
"device_id": "8f66617492092699396e382a0cde04e4",
"domain": "binary_sensor",
"entity_id": "binary_sensor.smoke_detector_and_siren_smoke_alarm_smoke_detected",
"unique_id": "4231470061.5-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
},
"binary_sensor.smoke_detector_and_siren_low_battery_level": {
"node_id": 5,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "5-128-0-isLow",
"device_id": "8f66617492092699396e382a0cde04e4",
"domain": "binary_sensor",
"entity_id": "binary_sensor.smoke_detector_and_siren_low_battery_level",
"unique_id": "4231470061.5-128-0-isLow",
"unit_of_measurement": null
},
"switch.feuermelder_unten_gang": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "2-37-0-currentValue",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "switch",
"entity_id": "switch.feuermelder_unten_gang",
"unique_id": "4231470061.2-37-0-currentValue",
"unit_of_measurement": null
},
"sensor.feuermelder_unten_gang_battery_level": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "2-128-0-level",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "sensor",
"entity_id": "sensor.feuermelder_unten_gang_battery_level",
"unique_id": "4231470061.2-128-0-level",
"unit_of_measurement": "%"
},
"binary_sensor.feuermelder_unten_gang_low_battery_level": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "2-128-0-isLow",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.feuermelder_unten_gang_low_battery_level",
"unique_id": "4231470061.2-128-0-isLow",
"unit_of_measurement": null
},
"binary_sensor.feuermelder_unten_gang_smoke_alarm_smoke_detected": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "2-113-0-Smoke Alarm-Sensor status",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.feuermelder_unten_gang_smoke_alarm_smoke_detected",
"unique_id": "4231470061.2-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
},
"switch.rauchmelder_schlafzimmer": {
"node_id": 3,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "3-37-0-currentValue",
"device_id": "a47da225a9cdc8ad25afcef0a26fa228",
"domain": "switch",
"entity_id": "switch.rauchmelder_schlafzimmer",
"unique_id": "4231470061.3-37-0-currentValue",
"unit_of_measurement": null
},
"binary_sensor.rauchmelder_schlafzimmer_low_battery_level": {
"node_id": 3,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "3-128-0-isLow",
"device_id": "a47da225a9cdc8ad25afcef0a26fa228",
"domain": "binary_sensor",
"entity_id": "binary_sensor.rauchmelder_schlafzimmer_low_battery_level",
"unique_id": "4231470061.3-128-0-isLow",
"unit_of_measurement": null
},
"binary_sensor.rauchmelder_schlafzimmer_smoke_alarm_smoke_detected": {
"node_id": 3,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "3-113-0-Smoke Alarm-Sensor status",
"device_id": "a47da225a9cdc8ad25afcef0a26fa228",
"domain": "binary_sensor",
"entity_id": "binary_sensor.rauchmelder_schlafzimmer_smoke_alarm_smoke_detected",
"unique_id": "4231470061.3-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
},
"sensor.smoke_detector_and_siren_battery_level_2": {
"node_id": 5,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "5-128-0-level",
"device_id": "8f66617492092699396e382a0cde04e4",
"domain": "sensor",
"entity_id": "sensor.smoke_detector_and_siren_battery_level_2",
"unique_id": "4231470061.5-128-0-level",
"unit_of_measurement": "%"
},
"switch.rauchmelder_wohnzimmer": {
"node_id": 4,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "4-37-0-currentValue",
"device_id": "b0b662a15d6545d3cc87c0ba62ec7f3c",
"domain": "switch",
"entity_id": "switch.rauchmelder_wohnzimmer",
"unique_id": "4231470061.4-37-0-currentValue",
"unit_of_measurement": null
},
"sensor.rauchmelder_wohnzimmer_battery_level_2": {
"node_id": 4,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "4-128-0-level",
"device_id": "b0b662a15d6545d3cc87c0ba62ec7f3c",
"domain": "sensor",
"entity_id": "sensor.rauchmelder_wohnzimmer_battery_level_2",
"unique_id": "4231470061.4-128-0-level",
"unit_of_measurement": "%"
},
"binary_sensor.rauchmelder_wohnzimmer_low_battery_level": {
"node_id": 4,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "4-128-0-isLow",
"device_id": "b0b662a15d6545d3cc87c0ba62ec7f3c",
"domain": "binary_sensor",
"entity_id": "binary_sensor.rauchmelder_wohnzimmer_low_battery_level",
"unique_id": "4231470061.4-128-0-isLow",
"unit_of_measurement": null
},
"binary_sensor.rauchmelder_wohnzimmer_smoke_alarm_smoke_detected": {
"node_id": 4,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "4-113-0-Smoke Alarm-Sensor status",
"device_id": "b0b662a15d6545d3cc87c0ba62ec7f3c",
"domain": "binary_sensor",
"entity_id": "binary_sensor.rauchmelder_wohnzimmer_smoke_alarm_smoke_detected",
"unique_id": "4231470061.4-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
},
"switch.rauchmelder_unten_gang": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "2-37-0-currentValue",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "switch",
"entity_id": "switch.rauchmelder_unten_gang",
"unique_id": "4231470061.2-37-0-currentValue",
"unit_of_measurement": null
},
"sensor.rauchmelder_unten_gang_battery_level": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "2-128-0-level",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "sensor",
"entity_id": "sensor.rauchmelder_unten_gang_battery_level",
"unique_id": "4231470061.2-128-0-level",
"unit_of_measurement": "%"
},
"binary_sensor.rauchmelder_unten_gang_low_battery_level": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "2-128-0-isLow",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.rauchmelder_unten_gang_low_battery_level",
"unique_id": "4231470061.2-128-0-isLow",
"unit_of_measurement": null
},
"binary_sensor.rauchmelder_unten_gang_smoke_alarm_smoke_detected": {
"node_id": 2,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "2-113-0-Smoke Alarm-Sensor status",
"device_id": "38639142e27318c914264b87eadd15c1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.rauchmelder_unten_gang_smoke_alarm_smoke_detected",
"unique_id": "4231470061.2-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
},
"switch.smoke_detector_and_siren_2": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "6-37-0-currentValue",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "switch",
"entity_id": "switch.smoke_detector_and_siren_2",
"unique_id": "4231470061.6-37-0-currentValue",
"unit_of_measurement": null
},
"binary_sensor.smoke_detector_and_siren_smoke_alarm_smoke_detected_2": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "6-113-0-Smoke Alarm-Sensor status",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.smoke_detector_and_siren_smoke_alarm_smoke_detected_2",
"unique_id": "4231470061.6-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
},
"sensor.smoke_detector_and_siren_battery_level_3": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "6-128-0-level",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "sensor",
"entity_id": "sensor.smoke_detector_and_siren_battery_level_3",
"unique_id": "4231470061.6-128-0-level",
"unit_of_measurement": "%"
},
"binary_sensor.smoke_detector_and_siren_low_battery_level_2": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "6-128-0-isLow",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.smoke_detector_and_siren_low_battery_level_2",
"unique_id": "4231470061.6-128-0-isLow",
"unit_of_measurement": null
},
"switch.raichmelder_dachgeschoss_2": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 37,
"value_property_name": "currentValue",
"value_property_key_name": null,
"value_id": "6-37-0-currentValue",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "switch",
"entity_id": "switch.raichmelder_dachgeschoss_2",
"unique_id": "4231470061.6-37-0-currentValue",
"unit_of_measurement": null
},
"sensor.raichmelder_dachgeschoss_battery_level_3": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "level",
"value_property_key_name": null,
"value_id": "6-128-0-level",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "sensor",
"entity_id": "sensor.raichmelder_dachgeschoss_battery_level_3",
"unique_id": "4231470061.6-128-0-level",
"unit_of_measurement": "%"
},
"binary_sensor.raichmelder_dachgeschoss_low_battery_level_2": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 128,
"value_property_name": "isLow",
"value_property_key_name": null,
"value_id": "6-128-0-isLow",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.raichmelder_dachgeschoss_low_battery_level_2",
"unique_id": "4231470061.6-128-0-isLow",
"unit_of_measurement": null
},
"binary_sensor.raichmelder_dachgeschoss_smoke_alarm_smoke_detected_2": {
"node_id": 6,
"endpoint_index": 0,
"command_class": 113,
"value_property_name": "Smoke Alarm",
"value_property_key_name": "Sensor status",
"value_id": "6-113-0-Smoke Alarm-Sensor status",
"device_id": "c8bd25813d48353df122d228c661afe1",
"domain": "binary_sensor",
"entity_id": "binary_sensor.raichmelder_dachgeschoss_smoke_alarm_smoke_detected_2",
"unique_id": "4231470061.6-113-0-Smoke Alarm-Sensor status.2",
"unit_of_measurement": null
}
}
}
}

View File

@ -13,6 +13,7 @@
- data:
entity_id: switch.mobile_steckdose_schalter_2
service: switch.toggle
mode: single
- id: '1575202743482'
alias: Wecker Licht an
description: ''
@ -84,7 +85,7 @@
service: notify.ios_martins_ipad
mode: single
- id: '1606655282153'
alias: _WeihnachtslichterAnUm6
alias: Weihnachtslichter an morgens um 6
description: ''
trigger:
- platform: time
@ -96,10 +97,12 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota03
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
mode: single
- id: '1607412098745'
alias: _WeihnachtslichterAusMorgens
alias: Weihnachtslichter aus morgens
description: ''
trigger:
- platform: sun
@ -112,16 +115,18 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota03
- switch.mobile_steckdose_schalter_1
- switch.mobile_steckdose_schalter_2
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
mode: single
- id: '1607412144113'
alias: _Weihnachtslichter An Abends
alias: Weihnachtslichter An Abends
description: ''
trigger:
- platform: sun
event: sunset
- platform: time
at: '15:30:00'
condition: []
action:
- service: switch.turn_on
@ -129,12 +134,12 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota03
- switch.mobile_steckdose_schalter_1
- switch.mobile_steckdose_schalter_2
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
mode: single
- id: '1607412210097'
alias: _Weihnachtslichter Aus Abends
alias: Weihnachtslichter Aus Abends
description: ''
trigger:
- platform: time
@ -146,12 +151,12 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota03
- switch.mobile_steckdose_schalter_1
- switch.mobile_steckdose_schalter_2
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
mode: single
- id: '1612028092169'
alias: 0_BewegungsmelderSchlafzimmerNacht
alias: Bewegungsmelder Schlafzimmer Nacht
description: ''
trigger:
- platform: state
@ -181,8 +186,152 @@
brightness: 6
entity_id: light.bett_martin, light.bett_rebecca
- delay: '1'
- service: light.turn_on
- service: light.turn_off
data:
transition: 120
entity_id: light.bett_martin, light.bett_rebecca
mode: single
- id: '1626815190256'
alias: Foen Timer
description: ''
trigger:
- platform: event
event_type: timer.finished
condition: []
action:
- service: switch.turn_off
target:
entity_id: switch.tasmota07
mode: single
- id: '1632393568599'
alias: Herd vorgeheizt -> iPad
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.backofen_verbrauch
below: '20'
for:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
condition: []
action:
- service: notify.mobile_app_martins_ipad
data:
title: Herd vorgeheizt
message: herd ist heiss :)
mode: single
- id: '1633435293611'
alias: Gang Bogen Nachtlicht
description: ''
trigger:
- platform: state
entity_id:
- binary_sensor.gang_bewegungsmelder_schlafzimmer
- binary_sensor.gang_bewegungsmelder_wohnzimmer
from: 'off'
to: 'on'
condition:
- condition: template
value_template: '{{ state_attr(''sun.sun'', ''elevation'') < 5 }}'
action:
- service: light.turn_on
target:
entity_id: light.gang_bogen
data:
brightness_pct: 50
xy_color:
- 0.607
- 0.378
- delay:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
- service: light.turn_off
target:
entity_id: light.gang_bogen
data:
transition: 5
mode: restart
- id: '1634461079797'
alias: 3D Drucker State Change
description: ''
trigger:
- platform: state
entity_id: binary_sensor.octoprint_printing
condition: []
action:
- service: notify.telegram_martin
data:
title: 3D Drucker
message: 3D Drucker hat Zustand gewechselt
mode: single
- id: '1656971839915'
alias: Rollos zu nachts
description: ''
trigger:
- platform: time
at: 04:00:00
condition: []
action:
- service: cover.close_cover
data: {}
target:
entity_id:
- cover.schlafzimmer_rollo_klein
- cover.schlafzimmer_rollo_gross
mode: single
- id: '1669014477577'
alias: Weihnachtslichter oben 01 morgens an um 7
description: ''
trigger:
- platform: time
at: 07:00:00
condition: []
action:
- service: switch.turn_on
data: {}
target:
entity_id: switch.tasmota06
mode: single
- id: '1669014568292'
alias: Weihnachtslichter oben 02 morgens aus um 9
description: ''
trigger:
- platform: time
at: 09:00:00
condition: []
action:
- service: switch.turn_off
data: {}
target:
entity_id: switch.tasmota06
mode: single
- id: '1669014612655'
alias: Weihnachtslichter oben 03 abends an 16:30
description: ''
trigger:
- platform: time
at: '16:30:00'
condition: []
action:
- service: switch.turn_on
data: {}
target:
entity_id: switch.tasmota06
mode: single
- id: '1669014682496'
alias: Weihnachtslichter oben 04 abends aus 22:00
description: ''
trigger:
- platform: time
at: '22:00:00'
condition: []
action:
- service: switch.turn_off
data: {}
target:
entity_id: switch.tasmota06
mode: single

View File

@ -1,136 +0,0 @@
# ------ Einschalten ---------------
- alias: EsszimmerRadio Oben an
trigger:
# Switch on when pushing play or power
- platform: event
event_type: ir_command_received
event_data:
button_name: key_play
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_power
repeat_counter: 0
host: esszimmerradio.fritz.box
# Switch on when pressing any number button
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_1
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_2
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_3
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_4
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_5
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_6
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_7
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_8
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: btn_9
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: switch.turn_on
data:
entity_id: switch.esszimmer_oben_radio_steckdose1
# ------ Ausschalten ---------------
- alias: EsszimmerRadio Oben aus
trigger:
# Switch off when pushing goto or pause
- platform: event
event_type: ir_command_received
event_data:
button_name: key_goto
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_pause
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: switch.turn_off
data:
entity_id: switch.esszimmer_oben_radio_steckdose1
- service: media_player.media_stop
data:
entity_id: media_player.esszimmer
- alias: Radio Stop
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_stop
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_pause
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.turn_off
data:
entity_id: media_player.esszimmer
# ------ Squeezelite neustart ---------------
- alias: EsszimmerRadio oben squeezelite neustart
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_record
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: sysdweb.restart
data:
hostname: esszimmerradio.fritz.box
service_name: squeezelite

View File

@ -1,652 +0,0 @@
# Dont' edit manually! this is generated!
- alias: IR bedroompi.fritz.box btn_1
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_1
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Good Morning
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_2
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_2
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Good Night Long
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_3
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_3
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Good Night
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_4
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_4
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Bar Classics
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_5
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_5
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Sentimental Moods
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_6
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_6
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Pop
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_7
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_7
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: B 5 aktuell
media_content_type: channel
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_8
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_8
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: BR-Klassik
media_content_type: channel
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_9
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_9
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3
media_content_type: music
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box key_numeric_star
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_star
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.repeat_set
data:
repeat: one
entity_id: media_player.bedroompi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 1
entity_id: media_player.bedroompi
- service: media_player.play_media
data:
media_content_id: Foen
media_content_type: music
entity_id: media_player.bedroompi
- service: media_player.volume_set
data:
volume_level: 60
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box btn_0
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_0
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 3
media_content_type: channel
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box key_numeric_pound
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_pound
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 2
media_content_type: channel
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box key_red
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_red
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.schlafzimmer_stillen
- alias: IR bedroompi.fritz.box key_green
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_green
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.schlafzimmer_orange
- alias: IR bedroompi.fritz.box key_yellow
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_yellow
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.schlafzimmer_ganz_hell
- alias: IR bedroompi.fritz.box key_blue
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_blue
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.nachtswennallelieberschlafen
- alias: IR bedroompi.fritz.box key_tv
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_tv
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: script.turn_on
data:
variables:
media_content_id: spotify:playlist:37i9dQZF1DXbcPC6Vvqudd
light_off_secs: 900
music_off_secs: 2700
shuffle: 1
entity_id: script.timed_sleep
- alias: IR bedroompi.fritz.box key_video
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_video
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: script.turn_on
data:
variables:
media_content_id: Good Night
light_off_secs: 900
music_off_secs: 2700
shuffle: 0
entity_id: script.timed_sleep
- alias: IR bedroompi.fritz.box key_music
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_music
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: script.turn_on
data:
variables:
media_content_id: spotify:playlist:37i9dQZF1DXbcPC6Vvqudd
light_off_secs: 300
music_off_secs: 1200
shuffle: 1
entity_id: script.timed_sleep
- alias: IR bedroompi.fritz.box key_pictures
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_pictures
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: script.turn_on
data:
variables:
media_content_id: Good Night
light_off_secs: 300
music_off_secs: 1200
shuffle: 0
entity_id: script.timed_sleep
- alias: IR bedroompi.fritz.box key_power
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_power
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: media_player.media_pause
data:
entity_id: media_player.bedroompi
- service: light.turn_off
data:
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box key_ok
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_ok
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: cover.close_cover
data:
entity_id: cover.schlafzimmer_rollo_gross
- service: cover_half.set_half
data:
entity_id: cover.schlafzimmer_rollo_klein
- alias: IR bedroompi.fritz.box key_mute
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_mute
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: light.turn_off
data:
entity_id: group.all_downstairs_but_bedroom_and_outside
- alias: IR bedroompi.fritz.box key_channel
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channel
repeat_counter: 0
host: bedroompi.fritz.box
action:
- service: light.turn_off
data:
entity_id: group.all_downstairs_but_bedroom
- alias: IR bedroompi.fritz.box Rollo auf
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_up
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: cover.open_cover
data:
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Rollo zu
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_down
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: cover.close_cover
data:
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Rollo halb
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_left
repeat_counter: 0
host: bedroompi.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_right
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: cover_half.set_half
data:
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Licht heller
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channelup
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: dimmer.dim
data:
offset: 30
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Licht dunkler
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channeldown
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: dimmer.dim
data:
offset: -30
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Licht viel heller
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_menu
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: dimmer.dim
data:
offset: 130
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Licht viel dunkler
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_stop
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: dimmer.dim
data:
offset: -130
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Licht aus
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_goto
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: light.turn_off
data:
entity_id: group.bedroom
- alias: IR bedroompi.fritz.box Musik Play
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_play
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.media_play_pause
data:
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Musik Pause
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_pause
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.turn_off
data:
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Musik Next
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_forward
repeat_counter: 0
host: bedroompi.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_fastforward
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Musik Prev
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_previous
repeat_counter: 0
host: bedroompi.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_rewind
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Vol Up
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumeup
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.volume_up
data:
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Vol Down
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumedown
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.volume_down
data:
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Shuffle On
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_menu
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: true
entity_id: media_player.bedroompi
- alias: IR bedroompi.fritz.box Shuffle Off
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_exit
repeat_counter: 0
host: bedroompi.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.bedroompi

View File

@ -1,352 +0,0 @@
# Dont' edit manually! this is generated!
- alias: IR esszimmerradio.fritz.box btn_1
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_1
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 1
media_content_type: channel
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_2
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_2
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 2
media_content_type: channel
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_3
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_3
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.play_media
data:
media_content_id: BR Heimat
media_content_type: channel
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_4
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_4
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern+
media_content_type: channel
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_5
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_5
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.play_media
data:
media_content_id: B 5 Aktuell
media_content_type: channel
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_6
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_6
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.play_media
data:
media_content_id: BR-Klassik
media_content_type: channel
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_7
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_7
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.esszimmer
- service: media_player.play_media
data:
media_content_id: Gesammelte Weihnachtslieder
media_content_type: music
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_8
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_8
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.esszimmer
- service: media_player.play_media
data:
media_content_id: Harmonic Brass Christmas
media_content_type: music
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_9
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_9
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.esszimmer
- service: media_player.play_media
data:
media_content_id: German Brass Christmas
media_content_type: music
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box key_numeric_star
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_star
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.esszimmer
- service: media_player.play_media
data:
media_content_id: Weihnachten mit den Wiener Sängerknaben
media_content_type: music
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box btn_0
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_0
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.esszimmer
- service: media_player.play_media
data:
media_content_id: Weihnachten mit den Wiener Sängerknaben
media_content_type: music
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box key_numeric_pound
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_pound
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.esszimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.esszimmer
- service: media_player.play_media
data:
media_content_id: SammlungGeorg
media_content_type: music
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Musik Play
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_play
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.media_play_pause
data:
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Musik Pause
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_pause
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.turn_off
data:
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Musik Next
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_forward
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_fastforward
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Musik Prev
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_previous
repeat_counter: 0
host: esszimmerradio.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_rewind
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Vol Up
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumeup
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.volume_up
data:
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Vol Down
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumedown
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.volume_down
data:
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Shuffle On
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_menu
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: true
entity_id: media_player.esszimmer
- alias: IR esszimmerradio.fritz.box Shuffle Off
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_exit
repeat_counter: 0
host: esszimmerradio.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.esszimmer

View File

@ -1,352 +0,0 @@
# Dont' edit manually! this is generated!
- alias: IR musikserverWohnzimmerOben.fritz.box btn_1
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_1
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 1
media_content_type: channel
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_2
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_2
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 2
media_content_type: channel
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_3
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_3
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.play_media
data:
media_content_id: BR Heimat
media_content_type: channel
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_4
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_4
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern+
media_content_type: channel
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_5
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_5
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.play_media
data:
media_content_id: B 5 Aktuell
media_content_type: channel
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_6
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_6
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.play_media
data:
media_content_id: BR-Klassik
media_content_type: channel
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_7
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_7
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.wohnzimmer
- service: media_player.play_media
data:
media_content_id: Gesammelte Weihnachtslieder
media_content_type: music
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_8
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_8
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.wohnzimmer
- service: media_player.play_media
data:
media_content_id: Harmonic Brass Christmas
media_content_type: music
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_9
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_9
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.wohnzimmer
- service: media_player.play_media
data:
media_content_id: German Brass Christmas
media_content_type: music
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box key_numeric_star
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_star
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.wohnzimmer
- service: media_player.play_media
data:
media_content_id: Weihnachten mit den Wiener Sängerknaben
media_content_type: music
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box btn_0
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_0
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.wohnzimmer
- service: media_player.play_media
data:
media_content_id: Weihnachten mit den Wiener Sängerknaben
media_content_type: music
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box key_numeric_pound
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_pound
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.wohnzimmer
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.wohnzimmer
- service: media_player.play_media
data:
media_content_id: SammlungGeorg
media_content_type: music
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Musik Play
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_play
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.media_play_pause
data:
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Musik Pause
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_pause
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.turn_off
data:
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Musik Next
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_forward
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_fastforward
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Musik Prev
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_previous
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_rewind
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Vol Up
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumeup
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.volume_up
data:
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Vol Down
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumedown
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.volume_down
data:
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Shuffle On
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_menu
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: true
entity_id: media_player.wohnzimmer
- alias: IR musikserverWohnzimmerOben.fritz.box Shuffle Off
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_exit
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.wohnzimmer

View File

@ -1,440 +0,0 @@
# Dont' edit manually! this is generated!
- alias: IR kitchenpi.fritz.box btn_4
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_4
repeat_counter: 0
host: kitchenpi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.kitchenpi
- service: media_player.play_media
data:
media_content_id: Bar Classics
media_content_type: music
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box btn_5
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_5
repeat_counter: 0
host: kitchenpi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.kitchenpi
- service: media_player.play_media
data:
media_content_id: Sentimental Moods
media_content_type: music
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box btn_6
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_6
repeat_counter: 0
host: kitchenpi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.kitchenpi
- service: media_player.play_media
data:
media_content_id: Pop
media_content_type: music
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box btn_7
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_7
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: B 5 aktuell
media_content_type: channel
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box btn_8
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_8
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: BR-Klassik
media_content_type: channel
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box btn_9
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_9
repeat_counter: 0
host: kitchenpi.fritz.box
action:
- service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playlist repeat 0
entity_id: media_player.kitchenpi
- service: media_player.squeezebox_call_method
data:
command: playerpref transitionType 0
entity_id: media_player.kitchenpi
- service: media_player.play_media
data:
media_content_id: http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3
media_content_type: music
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box key_numeric_star
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_star
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Antenne Bayern
media_content_type: channel
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box btn_0
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: btn_0
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 3
media_content_type: channel
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box key_numeric_pound
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_numeric_pound
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.play_media
data:
media_content_id: Bayern 2
media_content_type: channel
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box key_red
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_red
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_orange
- alias: IR kitchenpi.fritz.box key_green
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_green
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_grun
- alias: IR kitchenpi.fritz.box key_yellow
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_yellow
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_hell
- alias: IR kitchenpi.fritz.box key_blue
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_blue
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_blau_grun
- alias: IR kitchenpi.fritz.box Rollo auf
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_up
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: cover.open_cover
data:
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Rollo zu
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_down
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: cover.close_cover
data:
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Rollo halb
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_left
repeat_counter: 0
host: kitchenpi.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_right
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: cover_half.set_half
data:
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Licht heller
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channelup
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: dimmer.dim
data:
offset: 30
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Licht dunkler
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channeldown
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: dimmer.dim
data:
offset: -30
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Licht viel heller
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_menu
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: dimmer.dim
data:
offset: 130
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Licht viel dunkler
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_stop
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: dimmer.dim
data:
offset: -130
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Licht aus
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_goto
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: light.turn_off
data:
entity_id: group.living_area
- alias: IR kitchenpi.fritz.box Musik Play
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_play
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.media_play_pause
data:
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Musik Pause
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_pause
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.turn_off
data:
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Musik Next
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_forward
repeat_counter: 0
host: kitchenpi.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_fastforward
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Musik Prev
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_previous
repeat_counter: 0
host: kitchenpi.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_rewind
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.media_next_track
data:
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Vol Up
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumeup
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.volume_up
data:
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Vol Down
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_volumedown
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.volume_down
data:
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Shuffle On
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_menu
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: true
entity_id: media_player.kitchenpi
- alias: IR kitchenpi.fritz.box Shuffle Off
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_exit
repeat_counter: 0
host: kitchenpi.fritz.box
action:
service: media_player.shuffle_set
data:
shuffle: false
entity_id: media_player.kitchenpi

View File

@ -1,35 +0,0 @@
- alias: KNX Button WohnzimmerTerrassentür Teddy mitte links kurz
trigger:
- entity_id: switch.wohnzimmer_terrassentur_szene_2
from: 'off'
to: 'on'
platform: state
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_kuscheln
# ===
- alias: KNX Button WohnzimmerTerrassentür Garten mitte rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_terrassentur_szene_3
action:
service: scene.turn_on
data:
entity_id: scene.garten_savanna
- alias: KNX Button WohnzimmerTerrassentür Garten mitte rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_terrassentur_szene_3
action:
service: lights.turn_off
data:
entity_id: light.garten_lichter

View File

@ -1,66 +0,0 @@
- alias: KNX Button Eingangstür mitte links kurz - alles an
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.eingang_szene_2
action:
- service: light.turn_on
data:
entity_id:
- light.gang_licht
- light.gang_einganglicht
- alias: KNX Button Eingangstür mitte links lang - alles an hell
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.eingang_szene_2
action:
- service: light.turn_on
data:
entity_id:
- light.gang_licht
- light.gang_einganglicht
- service: scene.turn_on
data:
entity_id:
- scene.wohnbereich_hell
# -----------
- alias: KNX Button Eingangstür mitte rechts kurz - alles aus innen
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.eingang_szene_3
action:
service: light.turn_off
data:
entity_id:
- all_downstairs_but_outside
- alias: KNX Button Eingangstür mitte rechts lang - alles aus innen und aussen
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.eingang_szene_3
action:
service: light.turn_off
data:
entity_id:
- all_downstairs
# --------------------------------- Alarm Buttons -----------------------------------
# Alarm
#switch.eingang_szene_4 # key
#switch.eingang_szene_5 # dog

View File

@ -1,156 +0,0 @@
# ---------------------------------------------------
- alias: KNX Button Esszimmertür oben links kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.esszimmer_szene_0
action:
service: cover_half.set_half
data:
entity_id: group.living_area
- alias: KNX Button Esszimmertür oben links lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.esszimmer_szene_0
action:
service: cover_half.set_half
data:
entity_id:
- cover.kuche_fenster_rollo
- cover.esszimmer_fenster_rollo
# ===
- alias: KNX Button Esszimmertür oben rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.esszimmer_szene_1
action:
service: cover.open_cover
data:
entity_id: group.living_area
- alias: KNX Button Esszimmertür oben rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.esszimmer_szene_1
action:
service: cover.open_cover
data:
entity_id:
- cover.kuche_fenster_rollo
- cover.esszimmer_fenster_rollo
# ---------------------------------------------------
- alias: KNX Button Esszimmertür mitte links kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.esszimmer_szene_2
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_orange
- alias: KNX Button Esszimmertür mitte links lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.esszimmer_szene_2
action:
service: scene.turn_on
data:
entity_id: scene.kuche_essbereich_orange
# ===
- alias: KNX Button Esszimmertür mitte rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.esszimmer_szene_3
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_hell
- alias: KNX Button Esszimmertür mitte rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.esszimmer_szene_3
action:
service: scene.turn_on
data:
entity_id: scene.kuche_essbereich_hell
# ---------------------------------------------------
- alias: KNX Button Esszimmertür unten links ein
trigger:
- entity_id: switch.esszimmer_szene_4
from: 'off'
to: 'on'
platform: state
action:
service: switch.turn_on
data:
entity_id:
- switch.herd_phase_1
- switch.herd_phase_2
- switch.herd_phase_3
- alias: KNX Button Esszimmertür unten links aus
trigger:
- entity_id: switch.esszimmer_szene_4
from: 'on'
to: 'off'
platform: state
action:
service: switch.turn_off
data:
entity_id:
- switch.herd_phase_1
- switch.herd_phase_2
- switch.herd_phase_3
# ===
- alias: KNX Button Esszimmertür unten rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.esszimmer_szene_5
action:
service: light.turn_off
data:
entity_id: group.living_area
- alias: KNX Button Esszimmertür unten rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.esszimmer_szene_5
action:
service: light.turn_off
data:
entity_id: light.kuche_esszimmer_lichter

View File

@ -1,150 +0,0 @@
# ---------------------------------------------------
- alias: KNX Button WohnzimmerGangTür oben links kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_szene_0
action:
service: cover_half.set_half
data:
entity_id: group.living_area
- alias: KNX Button WohnzimmerGangTür oben links lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_szene_0
action:
service: cover_half.set_half
data:
entity_id:
- cover.wohnzimmer_fenster_rollo
- cover.wohnzimmer_terrassentur_rollo
# ===
- alias: KNX Button WohnzimmerGangTür oben rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_szene_1
action:
service: cover.open_cover
data:
entity_id: group.living_area
- alias: KNX Button WohnzimmerGangTür oben rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_szene_1
action:
service: cover.open_cover
data:
entity_id:
- cover.wohnzimmer_fenster_rollo
- cover.wohnzimmer_terrassentur_rollo
# ---------------------------------------------------
- alias: KNX Button WohnzimmerGangTür mitte links kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_szene_2
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_orange
- alias: KNX Button WohnzimmerGangTür mitte links lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_szene_2
action:
service: scene.turn_on
data:
entity_id: scene.wohnzimmer_orange
# ===
- alias: KNX Button WohnzimmerGangTür mitte rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_szene_3
action:
service: scene.turn_on
data:
entity_id: scene.wohnbereich_hell
- alias: KNX Button WohnzimmerGangTür mitte rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_szene_3
action:
service: scene.turn_on
data:
entity_id: scene.wohnzimmer_hell
# ---------------------------------------------------
- alias: KNX Button WohnzimmerGangTür unten links kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_szene_4
action:
service: scene.turn_on
data:
entity_id: scene.wohnzimmer_dunkel
- alias: KNX Button WohnzimmerGangTür unten links lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_szene_4
action:
service: scene.turn_on
data:
entity_id: scene.wohnzimmer_dunkel
# ===
- alias: KNX Button WohnzimmerGangTür unten rechts kurz
trigger:
platform: event
event_type: short_click
event_data:
entity_id: switch.wohnzimmer_szene_5
action:
service: light.turn_off
data:
entity_id: group.living_area
- alias: KNX Button WohnzimmerGangTür unten rechts lang
trigger:
platform: event
event_type: long_click
event_data:
entity_id: switch.wohnzimmer_szene_5
action:
service: light.turn_off
data:
entity_id: light.kuche_wohnzimmer_lichter

View File

@ -1,217 +0,0 @@
- alias: Oben Wohnzimmer IR key_red next scene
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_red
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: counter.increment
entity_id: counter.licht_szene_oben_counter
- alias: Oben Wohnzimmer IR key_green prev scene
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_green
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: counter.decrement
entity_id: counter.licht_szene_oben_counter
- alias: Oben Wohnzimmer IR Licht heller
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channelup
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: dimmer.dim
data:
offset: 30
entity_id: light.lampe_ersterstock
- alias: Oben Wohnzimmer IR Licht dunkler
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: key_channeldown
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: dimmer.dim
data:
offset: -30
entity_id: light.lampe_ersterstock
- alias: Oben Wohnzimmer IR Licht aus
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_green
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_blue
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
- platform: event
event_type: ir_command_received
event_data:
button_name: key_yellow
repeat_counter: 0
host: musikserverWohnzimmerOben.fritz.box
action:
service: light.turn_off
data:
entity_id: light.lampe_ersterstock
# --------------------------------- Szenen -------------------
- alias: Oben Szene 0
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 0 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
color_temp: 492
- alias: Oben Szene 1
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 1 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.5794
- 0.3752
- alias: Oben Szene 2
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 2 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.5535
- 0.4104
- alias: Oben Szene 3
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 3 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.4662
- 0.3252
- alias: Oben Szene 4
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 4 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.3423
- 0.2252
- alias: Oben Szene 5
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 5 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.346
- 0.394
- alias: Oben Szene 6
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 6 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.4119
- 0.3671
- alias: Oben Szene 7
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 7 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
xy_color:
- 0.408
- 0.517
- alias: Oben Szene 8
trigger:
platform: state
entity_id: counter.licht_szene_oben_counter
condition:
condition: template
value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 8 }}"
action:
service: light.turn_on
data:
entity_id: light.lampe_ersterstock
color_temp: 202

View File

@ -1,15 +0,0 @@
# ------ Squeezelite neustart ---------------
- alias: Wohnzimmer oben squeezelite neustart
trigger:
- platform: event
event_type: ir_command_received
event_data:
button_name: key_record
repeat_counter: 0
host: musikserverwohnzimmeroben.fritz.box
action:
service: sysdweb.restart
data:
hostname: musikserverwohnzimmeroben.fritz.box
service_name: squeezelite

View File

@ -1,263 +0,0 @@
attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile -
attr global modpath .
attr global motd Error messages while initializing FHEM:\
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3
attr global genericDeviceType:switch,light,blind,thermostat
define telnetPort telnet 7072 global
#define WEB FHEMWEB 8083 global
#define WEBphone FHEMWEB 8084 global
#attr WEBphone stylesheetPrefix smallscreen
#define WEBtablet FHEMWEB 8085 global
#attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
#define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate autosave 1
#attr autocreate filelog ./log/%NAME-%Y.log
#define eventTypes eventTypes ./log/eventTypes.txt
# Disable this to avoid looking for new USB devices on startup
#define initialUsbCheck notify global:INITIALIZED usb create
define CUL_0 CUL __device_placeholder__@9600 1034
attr CUL_0 hmId 62a77d
attr CUL_0 rfmode HomeMatic
define Arbeitszimmer_Rollo CUL_HM 339336
attr Arbeitszimmer_Rollo IODev CUL_0
attr Arbeitszimmer_Rollo autoReadReg 4_reqStatus
attr Arbeitszimmer_Rollo expert 2_full
attr Arbeitszimmer_Rollo firmware 2.3
attr Arbeitszimmer_Rollo model HM-LC-Bl1PBU-FM
attr Arbeitszimmer_Rollo room CUL_HM
attr Arbeitszimmer_Rollo serialNr LEQ1440417
attr Arbeitszimmer_Rollo subType blindActuator
attr Arbeitszimmer_Rollo webCmd statusRequest:toggleDir:on:off:up:down:stop
attr Arbeitszimmer_Rollo room Homekit
define Arbeitszimmer_Deckenlampe CUL_HM 1AA382
attr Arbeitszimmer_Deckenlampe IODev CUL_0
attr Arbeitszimmer_Deckenlampe autoReadReg 4_reqStatus
attr Arbeitszimmer_Deckenlampe expert 2_full
attr Arbeitszimmer_Deckenlampe firmware 2.2
attr Arbeitszimmer_Deckenlampe model HM-LC-Dim1TPBU-FM
attr Arbeitszimmer_Deckenlampe room CUL_HM
attr Arbeitszimmer_Deckenlampe serialNr JEQ0201891
attr Arbeitszimmer_Deckenlampe subType dimmer
attr Arbeitszimmer_Deckenlampe webCmd getConfig:clear msgEvents
define Arbeitszimmer_Deckenlampe_Sw CUL_HM 1AA38201
attr Arbeitszimmer_Deckenlampe_Sw model HM-LC-Dim1TPBU-FM
attr Arbeitszimmer_Deckenlampe_Sw peerIDs
attr Arbeitszimmer_Deckenlampe_Sw webCmd statusRequest:toggle:on:off:up:down
define Arbeitszimmer_Deckenlampe_Sw1_V_01 CUL_HM 1AA38202
attr Arbeitszimmer_Deckenlampe_Sw1_V_01 model HM-LC-Dim1TPBU-FM
attr Arbeitszimmer_Deckenlampe_Sw1_V_01 webCmd statusRequest:toggle:on:off:up:down
define Arbeitszimmer_Deckenlampe_Sw1_V_02 CUL_HM 1AA38203
attr Arbeitszimmer_Deckenlampe_Sw1_V_02 model HM-LC-Dim1TPBU-FM
attr Arbeitszimmer_Deckenlampe_Sw1_V_02 webCmd statusRequest:toggle:on:off:up:down
attr Arbeitszimmer_Deckenlampe room Homekit
define Schlafzimmer_Deckenlampe CUL_HM 1AA1C7
attr Schlafzimmer_Deckenlampe IODev CUL_0
attr Schlafzimmer_Deckenlampe autoReadReg 4_reqStatus
attr Schlafzimmer_Deckenlampe expert 2_full
attr Schlafzimmer_Deckenlampe firmware 2.2
attr Schlafzimmer_Deckenlampe model HM-LC-Dim1TPBU-FM
attr Schlafzimmer_Deckenlampe room CUL_HM
attr Schlafzimmer_Deckenlampe serialNr JEQ0201456
attr Schlafzimmer_Deckenlampe subType dimmer
attr Schlafzimmer_Deckenlampe webCmd getConfig:clear msgEvents
define Schlafzimmer_Deckenlampe_Sw CUL_HM 1AA1C701
attr Schlafzimmer_Deckenlampe_Sw model HM-LC-Dim1TPBU-FM
attr Schlafzimmer_Deckenlampe_Sw peerIDs
attr Schlafzimmer_Deckenlampe_Sw webCmd statusRequest:toggle:on:off:up:down
define Schlafzimmer_Deckenlampe_Sw1_V_01 CUL_HM 1AA1C702
attr Schlafzimmer_Deckenlampe_Sw1_V_01 model HM-LC-Dim1TPBU-FM
attr Schlafzimmer_Deckenlampe_Sw1_V_01 webCmd statusRequest:toggle:on:off:up:down
define Schlafzimmer_Deckenlampe_Sw1_V_02 CUL_HM 1AA1C703
attr Schlafzimmer_Deckenlampe_Sw1_V_02 model HM-LC-Dim1TPBU-FM
attr Schlafzimmer_Deckenlampe_Sw1_V_02 webCmd statusRequest:toggle:on:off:up:down
attr Schlafzimmer_Deckenlampe room Homekit
define Schlafzimmer_RolloKlein CUL_HM 338C2A
attr Schlafzimmer_RolloKlein IODev CUL_0
attr Schlafzimmer_RolloKlein autoReadReg 4_reqStatus
attr Schlafzimmer_RolloKlein expert 2_full
attr Schlafzimmer_RolloKlein firmware 2.3
attr Schlafzimmer_RolloKlein model HM-LC-Bl1PBU-FM
attr Schlafzimmer_RolloKlein room CUL_HM
attr Schlafzimmer_RolloKlein serialNr LEQ1439693
attr Schlafzimmer_RolloKlein subType blindActuator
attr Schlafzimmer_RolloKlein webCmd statusRequest:toggleDir:on:off:up:down:stop
attr Schlafzimmer_RolloKlein room Homekit
define Schlafzimmer_RolloGross CUL_HM 338C33
attr Schlafzimmer_RolloGross IODev CUL_0
attr Schlafzimmer_RolloGross autoReadReg 4_reqStatus
attr Schlafzimmer_RolloGross expert 2_full
attr Schlafzimmer_RolloGross firmware 2.3
attr Schlafzimmer_RolloGross model HM-LC-Bl1PBU-FM
attr Schlafzimmer_RolloGross room CUL_HM
attr Schlafzimmer_RolloGross serialNr LEQ1439702
attr Schlafzimmer_RolloGross subType blindActuator
attr Schlafzimmer_RolloGross webCmd statusRequest:toggleDir:on:off:up:down:stop
attr Schlafzimmer_RolloGross room Homekit
define Kinderzimmer_Deckenlampe CUL_HM 1B5305
attr Kinderzimmer_Deckenlampe IODev CUL_0
attr Kinderzimmer_Deckenlampe autoReadReg 4_reqStatus
attr Kinderzimmer_Deckenlampe expert 2_full
attr Kinderzimmer_Deckenlampe firmware 2.2
attr Kinderzimmer_Deckenlampe model HM-LC-Dim1TPBU-FM
attr Kinderzimmer_Deckenlampe room CUL_HM
attr Kinderzimmer_Deckenlampe serialNr JEQ0199674
attr Kinderzimmer_Deckenlampe subType dimmer
attr Kinderzimmer_Deckenlampe webCmd getConfig:clear msgEvents
define Kinderzimmer_Deckenlampe_Sw CUL_HM 1B530501
attr Kinderzimmer_Deckenlampe_Sw model HM-LC-Dim1TPBU-FM
attr Kinderzimmer_Deckenlampe_Sw peerIDs
attr Kinderzimmer_Deckenlampe_Sw webCmd statusRequest:toggle:on:off:up:down
define Kinderzimmer_Deckenlampe_Sw1_V_01 CUL_HM 1B530502
attr Kinderzimmer_Deckenlampe_Sw1_V_01 model HM-LC-Dim1TPBU-FM
attr Kinderzimmer_Deckenlampe_Sw1_V_01 webCmd statusRequest:toggle:on:off:up:down
define Kinderzimmer_Deckenlampe_Sw1_V_02 CUL_HM 1B530503
attr Kinderzimmer_Deckenlampe_Sw1_V_02 model HM-LC-Dim1TPBU-FM
attr Kinderzimmer_Deckenlampe_Sw1_V_02 webCmd statusRequest:toggle:on:off:up:down
attr Kinderzimmer_Deckenlampe room Homekit
define Kinderzimmer_Rollo CUL_HM 1AF5DD
attr Kinderzimmer_Rollo IODev CUL_0
attr Kinderzimmer_Rollo autoReadReg 4_reqStatus
attr Kinderzimmer_Rollo expert 2_full
attr Kinderzimmer_Rollo firmware 2.1
attr Kinderzimmer_Rollo model HM-LC-Bl1PBU-FM
attr Kinderzimmer_Rollo room CUL_HM
attr Kinderzimmer_Rollo serialNr JEQ0109195
attr Kinderzimmer_Rollo subType blindActuator
attr Kinderzimmer_Rollo webCmd statusRequest:toggleDir:on:off:up:down:stop
attr Kinderzimmer_Rollo room Homekit
define Steckdose_Dimmer CUL_HM 20E8F1
attr Steckdose_Dimmer IODev CUL_0
attr Steckdose_Dimmer autoReadReg 4_reqStatus
attr Steckdose_Dimmer expert 2_full
attr Steckdose_Dimmer firmware 2.3
attr Steckdose_Dimmer model HM-LC-Dim1T-Pl-2
attr Steckdose_Dimmer room CUL_HM
attr Steckdose_Dimmer serialNr KEQ0124588
attr Steckdose_Dimmer subType dimmer
attr Steckdose_Dimmer webCmd statusRequest:toggle:on:off:up:down
attr Steckdose_Dimmer room Homekit
define Bad_Luefter CUL_HM 1B7501
attr Bad_Luefter IODev CUL_0
attr Bad_Luefter autoReadReg 4_reqStatus
attr Bad_Luefter expert 2_full
attr Bad_Luefter firmware 2.1
attr Bad_Luefter model HM-LC-Sw1PBU-FM
attr Bad_Luefter room CUL_HM
attr Bad_Luefter serialNr JEQ0099033
attr Bad_Luefter subType switch
attr Bad_Luefter webCmd statusRequest:toggle:on:off
attr Bad_Luefter room Homekit
define Arbeitszimmer_Bewegungsmelder CUL_HM 2F2A4B
attr Arbeitszimmer_Bewegungsmelder IODev CUL_0
attr Arbeitszimmer_Bewegungsmelder actCycle 000:20
attr Arbeitszimmer_Bewegungsmelder actStatus alive
attr Arbeitszimmer_Bewegungsmelder autoReadReg 4_reqStatus
attr Arbeitszimmer_Bewegungsmelder expert 2_full
attr Arbeitszimmer_Bewegungsmelder firmware 1.6
attr Arbeitszimmer_Bewegungsmelder model HM-SEC-MDIR-2
attr Arbeitszimmer_Bewegungsmelder room CUL_HM
attr Arbeitszimmer_Bewegungsmelder serialNr LEQ0797237
attr Arbeitszimmer_Bewegungsmelder subType motionDetector
attr Arbeitszimmer_Bewegungsmelder room Homekit
define ActionDetector CUL_HM 000000
attr ActionDetector event-on-change-reading .*
attr ActionDetector model ActionDetector
define MobileSteckdoseSchalter1 CUL_HM 453335
attr MobileSteckdoseSchalter1 IODev CUL_0
attr MobileSteckdoseSchalter1 actCycle 000:10
attr MobileSteckdoseSchalter1 actStatus dead
attr MobileSteckdoseSchalter1 autoReadReg 4_reqStatus
attr MobileSteckdoseSchalter1 expert 2_full
attr MobileSteckdoseSchalter1 firmware 1.6
attr MobileSteckdoseSchalter1 model HM-ES-PMSw1-Pl
attr MobileSteckdoseSchalter1 room CUL_HM
attr MobileSteckdoseSchalter1 serialNr NEQ0153825
attr MobileSteckdoseSchalter1 subType powerMeter
attr MobileSteckdoseSchalter1 webCmd getConfig:clear msgEvents
define MobileSteckdoseSchalter1_Sw CUL_HM 45333501
attr MobileSteckdoseSchalter1_Sw model HM-ES-PMSw1-Pl
attr MobileSteckdoseSchalter1_Sw peerIDs
define MobileSteckdoseSchalter1_Pwr CUL_HM 45333502
attr MobileSteckdoseSchalter1_Pwr model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter1_SenPwr CUL_HM 45333503
attr MobileSteckdoseSchalter1_SenPwr model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter1_SenI CUL_HM 45333504
attr MobileSteckdoseSchalter1_SenI model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter1_SenU CUL_HM 45333505
attr MobileSteckdoseSchalter1_SenU model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter1_SenF CUL_HM 45333506
attr MobileSteckdoseSchalter1_SenF model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter2 CUL_HM 338E72
attr MobileSteckdoseSchalter2 IODev CUL_0
attr MobileSteckdoseSchalter2 actCycle 000:10
attr MobileSteckdoseSchalter2 actStatus dead
attr MobileSteckdoseSchalter2 autoReadReg 4_reqStatus
attr MobileSteckdoseSchalter2 expert 2_full
attr MobileSteckdoseSchalter2 firmware 1.6
attr MobileSteckdoseSchalter2 model HM-ES-PMSw1-Pl
attr MobileSteckdoseSchalter2 room CUL_HM
attr MobileSteckdoseSchalter2 serialNr LEQ1345055
attr MobileSteckdoseSchalter2 subType powerMeter
attr MobileSteckdoseSchalter2 webCmd getConfig:clear msgEvents
define MobileSteckdoseSchalter2_Sw CUL_HM 338E7201
attr MobileSteckdoseSchalter2_Sw model HM-ES-PMSw1-Pl
attr MobileSteckdoseSchalter2_Sw peerIDs
define MobileSteckdoseSchalter2_Pwr CUL_HM 338E7202
attr MobileSteckdoseSchalter2_Pwr model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter2_SenPwr CUL_HM 338E7203
attr MobileSteckdoseSchalter2_SenPwr model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter2_SenI CUL_HM 338E7204
attr MobileSteckdoseSchalter2_SenI model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter2_SenU CUL_HM 338E7205
attr MobileSteckdoseSchalter2_SenU model HM-ES-PMSw1-Pl
define MobileSteckdoseSchalter2_SenF CUL_HM 338E7206
attr MobileSteckdoseSchalter2_SenF model HM-ES-PMSw1-Pl

View File

@ -1,106 +0,0 @@
light:
- name: Schlafzimmer Deckenlampe
dimmer: True
fhem_ids:
- Schlafzimmer_Deckenlampe_Sw
- Schlafzimmer_Deckenlampe
- Schlafzimmer_Deckenlampe_Sw1_V_01
- Schlafzimmer_Deckenlampe_Sw1_V_02
groups:
- bedroom
- name: Arbeitszimmer Deckenlampe
dimmer: True
fhem_ids:
- Arbeitszimmer_Deckenlampe_Sw
- Arbeitszimmer_Deckenlampe
- Arbeitszimmer_Deckenlampe_Sw1_V_01
- Arbeitszimmer_Deckenlampe_Sw1_V_02
groups:
- office
- name: Kinderzimmer Deckenlampe
dimmer: True
fhem_ids:
- Kinderzimmer_Deckenlampe_Sw
- Kinderzimmer_Deckenlampe
- Kinderzimmer_Deckenlampe_Sw1_V_01
- Kinderzimmer_Deckenlampe_Sw1_V_02
groups:
- kids_room
- name: Mobile Steckdosen Dimmer
dimmer: True
fhem_ids:
- Steckdose_Dimmer
cover:
- name: Arbeitszimmer Rollo
fhem_ids:
- Arbeitszimmer_Rollo
groups:
- office
- name: Schlafzimmer Rollo klein
fhem_ids:
- Schlafzimmer_RolloKlein
groups:
- bedroom
- name: Schlafzimmer Rollo groß
fhem_ids:
- Schlafzimmer_RolloGross
groups:
- bedroom
- name: Kinderzimmer Rollo
fhem_ids:
- Kinderzimmer_Rollo
groups:
- kids_room
switch:
- name: Bad Lüfter
fhem_ids:
- Bad_Luefter
- name: Mobile Steckdose Schalter 1
fhem_ids:
- MobileSteckdoseSchalter1_Sw
- MobileSteckdoseSchalter1
- name: Mobile Steckdose Schalter 2
fhem_ids:
- MobileSteckdoseSchalter2_Sw
- MobileSteckdoseSchalter2
binary_sensor:
- name: Arbeitszimmer Bewegungsmelder Batterie
fhem_ids:
- Arbeitszimmer_Bewegungsmelder
fhem_sensor_type: battery
- name: Arbeitszimmer Bewegungsmelder Bewegung
fhem_ids:
- Arbeitszimmer_Bewegungsmelder
fhem_sensor_type: motion
sensor:
- name: Arbeitszimmer Bewegungsmelder Helligkeit
fhem_ids:
- Arbeitszimmer_Bewegungsmelder
fhem_sensor_type: brightness
#- name: Pool Pumpe Verbrauch
# fhem_sensor_type: power
# fhem_ids:
# - SteckdosenSchalter_Pwr
# - SteckdosenSchalter

View File

@ -1,8 +1,4 @@
# Add only entities here that are auto-discovered (not FHEM and KNX devices)
#default_view:
# view: true
# icon: mdi:home
# Add only entities here that are auto-discovered (not KNX devices)
living_area:
name: Wohnbereich
@ -19,10 +15,13 @@ living_area:
bedroom:
name: Schlafzimmer
entities:
- light.schlafzimmer_deckenlampe
- light.schlafzimmer_fluter
- light.bett_martin
- light.bett_rebecca
- light.schlafzimmer_schrank
- cover.schlafzimmer_rollo_gross
- cover.schlafzimmer_rollo_klein
hallway:
name: Gang
@ -45,21 +44,24 @@ outside:
office:
name: Arbeitszimmer
entities:
- light.arbeitszimmer_deckenlampe
- light.arbeitszimmer_stehlampe_oben
- light.arbeitszimmer_stehlampe_unten
- light.arbeitszimmer_fluter
- cover.arbeitszimmer_rollo
kids_room:
name: Kinderzimmer
entities:
- light.kinderzimmer_fluter
- cover.kinderzimmer_rollo
bathroom:
name: Bad
other:
name: Rest

View File

@ -1,337 +0,0 @@
import re
import os
from ruamel.yaml import YAML
yaml = YAML()
# -------------------------------------- put the config here -----------------------------------------------------------
def get_config():
return {
'bedroom': {
'ir_host': 'bedroompi.fritz.box',
'media_player': 'media_player.bedroompi',
'group': 'group.bedroom',
'mapping': {
'btn_1': '[playlist] Good Morning',
'btn_2': '[playlist] Good Night Long',
'btn_3': '[playlist] Good Night',
'btn_4': '[playlist] Bar Classics',
'btn_5': '[playlist] Sentimental Moods',
'btn_6': '[playlist] Pop',
'btn_7': '[radio] B 5 aktuell',
'btn_8': '[radio] BR-Klassik',
'btn_9': '[playlist] http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3', # Klassik Radio
'key_numeric_star': [
*repeat_one_crossfade('media_player.bedroompi'),
service('media_player.play_media', 'media_player.bedroompi',
media_content_id='Foen', media_content_type='music'),
service('media_player.volume_set', 'media_player.bedroompi', volume_level=60),
],
'btn_0': '[radio] Bayern 3',
'key_numeric_pound': '[radio] Bayern 2',
'key_red': '[scene] schlafzimmer_stillen',
'key_green': '[scene] schlafzimmer_orange',
'key_yellow': '[scene] schlafzimmer_ganz_hell',
'key_blue': '[scene] nachtswennallelieberschlafen',
'key_tv': [service('script.turn_on', 'script.timed_sleep',
variables={'media_content_id': 'spotify:playlist:37i9dQZF1DXbcPC6Vvqudd', # Regen
'light_off_secs': 15 * 60,
'music_off_secs': 45 * 60,
'shuffle': 1,
})],
'key_video': [service('script.turn_on', 'script.timed_sleep',
variables={'media_content_id': 'Good Night',
'light_off_secs': 15 * 60,
'music_off_secs': 45 * 60,
'shuffle': 0,
})],
'key_music': [service('script.turn_on', 'script.timed_sleep',
variables={'media_content_id': 'spotify:playlist:37i9dQZF1DXbcPC6Vvqudd', # Regen
'light_off_secs': 5 * 60,
'music_off_secs': 20 * 60,
'shuffle': 1,
})],
'key_pictures': [service('script.turn_on', 'script.timed_sleep',
variables={'media_content_id': 'Good Night',
'light_off_secs': 5 * 60,
'music_off_secs': 20 * 60,
'shuffle': 0,
})],
'key_power': [ # Music & Lights off
service('media_player.media_pause', 'media_player.bedroompi'),
service('light.turn_off', 'group.bedroom'),
],
'key_ok': [ # Grosser Rollo zu, kleiner halb zu
service('cover.close_cover', 'cover.schlafzimmer_rollo_gross'),
service('cover_half.set_half', 'cover.schlafzimmer_rollo_klein'),
],
'key_mute': [service('light.turn_off', 'group.all_downstairs_but_bedroom_and_outside')],
'key_channel': [service('light.turn_off', 'group.all_downstairs_but_bedroom')],
}
},
'living_area': {
'ir_host': 'kitchenpi.fritz.box',
'media_player': 'media_player.kitchenpi',
'group': 'group.living_area',
'mapping': {
'btn_4': '[playlist] Bar Classics',
'btn_5': '[playlist] Sentimental Moods',
'btn_6': '[playlist] Pop',
'btn_7': '[radio] B 5 aktuell',
'btn_8': '[radio] BR-Klassik',
'btn_9': '[playlist] http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3', # Klassik Radio
'key_numeric_star': '[radio] Antenne Bayern',
'btn_0': '[radio] Bayern 3',
'key_numeric_pound': '[radio] Bayern 2',
'key_red': '[scene] wohnbereich_orange',
'key_green': '[scene] wohnbereich_grun',
'key_yellow': '[scene] wohnbereich_hell',
'key_blue': '[scene] wohnbereich_blau_grun',
}
},
'first_floor_dining_room': {
'ir_host': 'esszimmerradio.fritz.box',
'media_player': 'media_player.esszimmer',
'mapping': {
'btn_1': '[radio] Bayern 1',
'btn_2': '[radio] Bayern 2',
'btn_3': '[radio] BR Heimat',
'btn_4': '[radio] Bayern+',
'btn_5': '[radio] B 5 Aktuell',
'btn_6': '[radio] BR-Klassik',
'btn_7': '[playlist] Gesammelte Weihnachtslieder',
'btn_8': '[playlist] Harmonic Brass Christmas',
'btn_9': '[playlist] German Brass Christmas',
'key_numeric_star': '[playlist] Weihnachten mit den Wiener Sängerknaben',
'btn_0': '[playlist] Weihnachten mit den Wiener Sängerknaben',
'key_numeric_pound': '[playlist] SammlungGeorg',
}
},
'first_floor_living_room': {
'ir_host': 'musikserverWohnzimmerOben.fritz.box',
'media_player': 'media_player.wohnzimmer',
'mapping': {
'btn_1': '[radio] Bayern 1',
'btn_2': '[radio] Bayern 2',
'btn_3': '[radio] BR Heimat',
'btn_4': '[radio] Bayern+',
'btn_5': '[radio] B 5 Aktuell',
'btn_6': '[radio] BR-Klassik',
'btn_7': '[playlist] Gesammelte Weihnachtslieder',
'btn_8': '[playlist] Harmonic Brass Christmas',
'btn_9': '[playlist] German Brass Christmas',
'key_numeric_star': '[playlist] Weihnachten mit den Wiener Sängerknaben',
'btn_0': '[playlist] Weihnachten mit den Wiener Sängerknaben',
'key_numeric_pound': '[playlist] SammlungGeorg',
}
},
}
# ----------------------------------------------------------------------------------------------------------------------
description_regex = re.compile(r'\[\s*(.*)\s*\](.*)')
def split_description(d):
res = description_regex.match(d)
return res.group(1).strip(), res.group(2).strip()
def default_music_settings(media_player):
return [
service('media_player.shuffle_set', media_player, shuffle=False),
service('media_player.squeezebox_call_method', media_player, command='playlist repeat 0'),
service('media_player.squeezebox_call_method', media_player, command="playerpref transitionType 0"),
]
def repeat_one_crossfade(media_player):
return [
service('media_player.repeat_set', media_player, repeat='one'),
service('media_player.squeezebox_call_method', media_player, command="playerpref transitionType 1"),
]
def automation_from_config(ir_description):
ir_host = ir_description['ir_host']
result = []
for key, description in ir_description['mapping'].items():
automation = {'alias': f'IR {ir_host} {key}',
'trigger': ir_trigger(ir_host, key)}
if isinstance(description, list):
action = description
elif isinstance(description, str):
function, value = split_description(description)
if function == 'playlist':
media_player = ir_description['media_player']
action = [*default_music_settings(media_player),
service('media_player.play_media', media_player,
media_content_id=value, media_content_type='music')]
elif function == 'radio':
media_player = ir_description['media_player']
action = service('media_player.play_media', media_player,
media_content_id=value, media_content_type='channel')
elif function == 'scene':
action = service('scene.turn_on', 'scene.' + value)
elif function == 'timed_light_off':
group = ir_description['group']
action = service('light.turn_off', group, transition=str(60 * int(value)))
else:
raise ValueError("Invalid prefix " + function)
else:
raise ValueError("Invalid type for entry " + key)
automation['action'] = action
result.append(automation)
return result
def ir_trigger(ir_host, button_name):
return {
'platform': 'event',
'event_type': 'ir_command_received',
'event_data': {
'button_name': button_name,
'repeat_counter': 0,
'host': ir_host,
}
}
def service(service_name, entity_id, **kwargs):
kwargs['entity_id'] = entity_id
return {
'service': service_name,
'data': kwargs
}
def default_shutter_controls(device_group, ir_host):
"""Default rules for Hauppauge IR for Shutter control with up, down, left, right buttons"""
return [
{
'alias': f'IR {ir_host} Rollo auf',
'trigger': ir_trigger(ir_host, 'key_up'),
'action': service('cover.open_cover', device_group),
},
{
'alias': f'IR {ir_host} Rollo zu',
'trigger': ir_trigger(ir_host, 'key_down'),
'action': service('cover.close_cover', device_group),
},
{
'alias': f'IR {ir_host} Rollo halb',
'trigger': [ir_trigger(ir_host, 'key_left'), ir_trigger(ir_host, 'key_right')],
'action': service('cover_half.set_half', device_group),
},
]
def default_light_controls(device_group, ir_host):
"""Default light rules for Hauppauge IR for light dimming with channel up/down and light off with stop button"""
return [
{
'alias': f'IR {ir_host} Licht heller',
'trigger': ir_trigger(ir_host, 'key_channelup'),
'action': service('dimmer.dim', device_group, offset=30),
},
{
'alias': f'IR {ir_host} Licht dunkler',
'trigger': ir_trigger(ir_host, 'key_channeldown'),
'action': service('dimmer.dim', device_group, offset=-30),
},
{
'alias': f'IR {ir_host} Licht viel heller',
'trigger': ir_trigger(ir_host, 'key_menu'),
'action': service('dimmer.dim', device_group, offset=130),
},
{
'alias': f'IR {ir_host} Licht viel dunkler',
'trigger': ir_trigger(ir_host, 'key_stop'),
'action': service('dimmer.dim', device_group, offset=-130),
},
{
'alias': f'IR {ir_host} Licht aus',
'trigger': ir_trigger(ir_host, 'key_goto'),
'action': service('light.turn_off', device_group),
},
]
def default_music_controls(device_group, ir_host):
"""Default music control (play, pause, next) for Hauppauge IR"""
return [
{
'alias': f'IR {ir_host} Musik Play',
'trigger': ir_trigger(ir_host, 'key_play'),
'action': service('media_player.media_play_pause', device_group),
},
{
'alias': f'IR {ir_host} Musik Pause',
'trigger': ir_trigger(ir_host, 'key_pause'),
'action': service('media_player.turn_off', device_group),
},
{
'alias': f'IR {ir_host} Musik Next',
'trigger': [ir_trigger(ir_host, 'key_forward'), ir_trigger(ir_host, 'key_fastforward')],
'action': service('media_player.media_next_track', device_group),
},
{
'alias': f'IR {ir_host} Musik Prev',
'trigger': [ir_trigger(ir_host, 'key_previous'), ir_trigger(ir_host, 'key_rewind')],
'action': service('media_player.media_next_track', device_group),
},
{
'alias': f'IR {ir_host} Vol Up',
'trigger': ir_trigger(ir_host, 'key_volumeup'),
'action': service('media_player.volume_up', device_group),
},
{
'alias': f'IR {ir_host} Vol Down',
'trigger': ir_trigger(ir_host, 'key_volumedown'),
'action': service('media_player.volume_down', device_group),
},
{
'alias': f'IR {ir_host} Shuffle On',
'trigger': ir_trigger(ir_host, 'key_menu'),
'action': service('media_player.shuffle_set', device_group, shuffle=True),
},
{
'alias': f'IR {ir_host} Shuffle Off',
'trigger': ir_trigger(ir_host, 'key_exit'),
'action': service('media_player.shuffle_set', device_group, shuffle=False),
},
]
def create_rules(folder):
for name, data in get_config().items():
rules = []
rules += automation_from_config(data)
if 'group' in data:
rules += default_shutter_controls(data['group'], data['ir_host'])
rules += default_light_controls(data['group'], data['ir_host'])
if 'media_player' in data:
rules += default_music_controls(data['media_player'], data['ir_host'])
file_name = os.path.join(folder, "ir_" + name + '.yaml')
with open(file_name, 'w') as f:
f.write("# Dont' edit manually! this is generated!\n\n")
yaml.dump(rules, f)

View File

@ -3,7 +3,6 @@ import argparse
from util import DeviceInfo, add_to_group, name_to_id
from ruamel.yaml import YAML
import knx_conf as knx
from ir_automations import create_rules as create_automation_rules
script_path = os.path.dirname(os.path.realpath(__file__))
yaml = YAML()
@ -51,7 +50,7 @@ def add_knx_devices(devices, groups):
DeviceInfo('AussenleuchteHaustüren', 'Haustür Licht', 'outside'),
DeviceInfo('AussenleuchteObenNW', 'Haustür Licht NW', 'first_floor'),
DeviceInfo('TreppenhausLicht', "Treppenhaus Licht", 'first_floor'),
DeviceInfo('WCLicht', "WC Licht", 'other'),
#DeviceInfo('WCLicht', "WC Licht", 'other'),
DeviceInfo('LampeVorratsraum', "Vorratsraum Licht", 'other'),
# Bewegungsmelder LEDs
DeviceInfo("BewegungsmelderMitte LED", "Bewegungsmelder Mitte LED", 'hallway'),
@ -82,7 +81,8 @@ def add_knx_devices(devices, groups):
switches += [DeviceInfo("AlarmLEDLinksNormal", "alarm_led_links_normal"),
DeviceInfo("AlarmLEDLinksUeberlagert", "alarm_led_links_ueberlagert"),
DeviceInfo("AlarmLEDRechtsNormal", "alarm_led_rechts_normal"),
DeviceInfo("AlarmLEDRechtsUeberlagert", "alarm_led_rechts_ueberlagert"),]
DeviceInfo("AlarmLEDRechtsUeberlagert", "alarm_led_rechts_ueberlagert"),
DeviceInfo("WCLicht Schalten", "wc_licht_taster"), ]
power_plugs = [
# Vorratsraum
@ -164,20 +164,6 @@ def add_knx_devices(devices, groups):
return template_sensors
def add_fhem_devices(devices, groups):
fhem_yaml_path = os.path.join(script_path, 'fhem.yaml')
fhem_yaml = yaml.load(open(fhem_yaml_path, encoding="utf-8"))
for device_type, device_list in fhem_yaml.items():
if device_type not in devices:
devices[device_type] = []
for device in device_list:
device['platform'] = 'fhem'
if 'groups' in device:
add_to_group(groups, device['groups'], device['name'], device_type)
del device['groups']
devices[device_type].append(device)
def add_meta_groups(groups):
all_devices = set()
for group in groups.values():
@ -268,22 +254,22 @@ def create_config(target_directory, development=False):
manual_config_dict = yaml.load(open(manual_config_path, encoding="utf-8"))
knx_conf = {
'rate_limit': 20,
'tunneling': {
'host': '192.168.178.65',
'port': 3671
}
#'tunneling': {
# 'host': '192.168.178.65',
# 'port': 3671
#}
}
template_sensors = add_knx_devices(knx_conf, group_dict)
all_devices = {}
all_devices.update(template_sensors)
add_fhem_devices(all_devices, group_dict)
with open(os.path.join(target_directory, 'configuration.yaml'), 'w', encoding="utf-8") as output:
output.write("# Dont' edit manually! this is generated!\n\n")
for key in ['sensor', 'switch', 'light', 'cover', 'binary_sensor']:
if key in manual_config_dict:
if key not in all_devices:
all_devices[key] = []
all_devices[key].extend(manual_config_dict[key])
del manual_config_dict[key]
yaml.dump(manual_config_dict, output)
@ -309,8 +295,6 @@ def create_config(target_directory, development=False):
additional_file = 'secrets_development.yaml' if development else 'secrets_deploy.yaml'
output.write(open(os.path.join(script_path, additional_file), 'r').read())
create_automation_rules(os.path.join(target_directory, 'automations'))
if __name__ == '__main__':
parser = argparse.ArgumentParser()

View File

@ -2,32 +2,34 @@
# Configure a default setup of Home Assistant (frontend, api, etc)
#default_config:
frontend:
themes: !include_dir_merge_named themes
mobile_app:
person:
sun:
system_health:
updater:
#logbook:
#input_boolean:
#input_datetime:
#input_number:
#input_select:
#input_text:
ondilo:
username: customer_api
password: !secret ondilo_pw
input_boolean:
input_datetime:
input_number:
input_select:
input_text:
timer:
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
http:
base_url: https://ha.bauer.tech
use_x_forwarded_for: true
trusted_proxies:
192.168.178.80
homeassistant:
name: MyHome
latitude: 49.369477
longitude: 10.9831468
country: DE
currency: EUR
external_url: https://ha.bauer.tech
internal_url: https://ha.bauer.tech
auth_mfa_modules:
@ -53,6 +55,8 @@ homeassistant:
half_position: 25
pyscript: !include pyscript/config.yaml
# enable configuration editor
config:
@ -106,9 +110,15 @@ influxdb:
ios:
shopping_list:
octoprint:
- host: 192.168.178.134
api_key: !secret octopi_api_key
name: PrusaPrinter
number_of_tools: 1
bed: true
telegram_bot:
- platform: webhooks
parse_mode: html
@ -146,94 +156,6 @@ switch:
name: esszimmer_oben_radio_steckdose
host: esszimmerradio.fritz.box
num_power_plugs: 4
- platform: mqtt
name: PoolPumpeSteckdose
state_topic: "stat/poolpumpesteckdose/POWER"
command_topic: "cmnd/poolpumpesteckdose/POWER"
availability_topic: "tele/poolpumpesteckdose/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota01
state_topic: "stat/tasmota01/POWER"
command_topic: "cmnd/tasmota01/POWER"
availability_topic: "tele/tasmota01/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota02
state_topic: "stat/tasmota02/POWER"
command_topic: "cmnd/tasmota02/POWER"
availability_topic: "tele/tasmota02/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota03
state_topic: "stat/tasmota03/POWER"
command_topic: "cmnd/tasmota03/POWER"
availability_topic: "tele/tasmota03/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota04
state_topic: "stat/tasmota04/POWER"
command_topic: "cmnd/tasmota04/POWER"
availability_topic: "tele/tasmota04/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota05
state_topic: "stat/tasmota05/POWER"
command_topic: "cmnd/tasmota05/POWER"
availability_topic: "tele/tasmota05/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota06
state_topic: "stat/tasmota06/POWER"
command_topic: "cmnd/tasmota06/POWER"
availability_topic: "tele/tasmota06/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
- platform: mqtt
name: Tasmota07
state_topic: "stat/tasmota07/POWER"
command_topic: "cmnd/tasmota07/POWER"
availability_topic: "tele/tasmota07/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
long_click:
duration: 0.6
@ -250,6 +172,8 @@ long_click:
- switch.wohnzimmer_szene_3
- switch.wohnzimmer_szene_4
- switch.wohnzimmer_szene_5
- switch.wohnzimmer_terrassentur_szene_2
- switch.wohnzimmer_terrassentur_szene_3
- switch.eingang_szene_2
- switch.eingang_szene_3
- switch.eingang_szene_4
@ -258,10 +182,9 @@ long_click:
logger:
default: info
logs:
custom_components.fhem: debug
#custom_components: debug
#custom_components.reconnecting_client: debug
custom_components: info
# #custom_components.reconnecting_client: debug
#
# Sensors
#sensor:
# Weather prediction
@ -436,14 +359,42 @@ google_assistant:
knx: !include knx_conf.yaml
fhem:
host: localhost
port: 7072
cul_device_name: CUL_HM
homematic:
interfaces:
rf:
host: de838cd8-raspberrymatic
port: 2001
resolvenames: json
username: homeassistant
password: !secret homematic_pw
wired:
host: de838cd8-raspberrymatic
port: 2000
resolvenames: json
username: homeassistant
password: !secret homematic_pw
hmip:
host: de838cd8-raspberrymatic
port: 2010
resolvenames: json
username: homeassistant
password: !secret homematic_pw
groups:
host: de838cd8-raspberrymatic
port: 9292
resolvenames: json
username: homeassistant
password: !secret homematic_pw
path: /groups
hosts:
raspberrymatic:
host: de838cd8-raspberrymatic
username: homeassistant
password: !secret homematic_pw
zwave:
usb_path: /dev/serial/by-id/usb-0658_0200-if00
network_key: "0xE0, 0x64, 0x50, 0x55, 0x20, 0x63, 0xC7, 0x05, 0x62, 0xD3, 0xEA, 0x91, 0x87, 0xE0, 0x1E, 0x74"
#zwave:
# usb_path: /dev/serial/by-id/usb-0658_0200-if00
# network_key: "0xE0, 0x64, 0x50, 0x55, 0x20, 0x63, 0xC7, 0x05, 0x62, 0xD3, 0xEA, 0x91, 0x87, 0xE0, 0x1E, 0x74"
sysdweb:
@ -511,24 +462,19 @@ media_player:
- platform: squeezebox_telnet
host: musikserverWohnzimmerOben.fritz.box
# set up via frontend :(
#vacuum:
# - platform: xiaomi_miio
# host: vacuum.fritz.box
# token: !secret vacuum_token
#mqtt:
# sensor:
# - state_topic: 'monitor/kitchen/martin_handy'
# value_template: '{{ value_json.confidence }}'
# unit_of_measurement: '%'
# name: 'bluetooth_martin_handy_kitchen'
# - state_topic: 'monitor/kitchen/martin_ipad'
# value_template: '{{ value_json.confidence }}'
# unit_of_measurement: '%'
# name: 'bluetooth_martin_ipad_kitchen'
sensor:
- platform: mqtt
state_topic: 'monitor/kitchen/martin_handy'
value_template: '{{ value_json.confidence }}'
unit_of_measurement: '%'
name: 'bluetooth_martin_handy_kitchen'
- platform: mqtt
state_topic: 'monitor/kitchen/martin_ipad'
value_template: '{{ value_json.confidence }}'
unit_of_measurement: '%'
name: 'bluetooth_martin_ipad_kitchen'
- platform: template
sensors:
motion_combined:
@ -604,7 +550,7 @@ light:
- platform: group
name: Garten Lichter
entities:
- light.garten_spot_birke
- light.garten_vorne
- light.garten_spot_magnolie
- light.garten_spot_beet
- light.garten_stehleuchte

View File

@ -1,3 +1,5 @@
local_ip: 127.0.0.1
knxd_host: 127.0.0.1 #directly the network bridge: 192.168.178.65
homekit_name: BauerHome
octopi_api_key: B5E3F837799448449BB5FF2E22116504
homematic_pw: T3wKLzoGUzIX2yb2VEgH

View File

@ -1,3 +1,5 @@
local_ip: 192.168.178.78
knxd_host: 192.168.178.80 #directly the network bridge: 192.168.178.65
homekit_name: BauerHomeDev
octopi_api_key: B5E3F837799448449BB5FF2E22116504
homematic_pw: T3wKLzoGUzIX2yb2VEgH

View File

@ -1,78 +0,0 @@
import asyncio
import logging
import voluptuous as vol
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_USERNAME, CONF_PASSWORD
from homeassistant.core import HomeAssistant
from homeassistant.helpers import config_entry_oauth2_flow, config_validation as cv
from . import config_flow
from .const import DOMAIN, OAUTH2_AUTHORIZE, OAUTH2_TOKEN
_LOGGER = logging.getLogger(__name__)
CONFIG_SCHEMA = vol.Schema(
{
DOMAIN: vol.Schema(
{
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
}
)
},
extra=vol.ALLOW_EXTRA,
)
PLATFORMS = ["sensor"]
async def async_setup(hass: HomeAssistant, config: dict):
"""Set up the ondilo component."""
hass.data[DOMAIN] = {}
print("Init1")
if DOMAIN not in config:
print("Init early out")
return True
config_flow.OndiloFlowHandler.async_register_implementation(
hass,
config_entry_oauth2_flow.LocalOAuth2Implementation(
hass,
DOMAIN,
config[DOMAIN][CONF_USERNAME],
config[DOMAIN][CONF_PASSWORD],
OAUTH2_AUTHORIZE,
OAUTH2_TOKEN,
),
)
print("init finish")
return True
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
"""Set up ondilo from a config entry."""
implementation = await config_entry_oauth2_flow.async_get_config_entry_implementation(
hass, entry
)
session = config_entry_oauth2_flow.OAuth2Session(hass, entry, implementation)
hass.data[DOMAIN] = {"session": session}
hass.async_create_task(hass.config_entries.async_forward_entry_setup(entry, "sensor"))
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
"""Unload a config entry."""
unload_ok = all(
await asyncio.gather(
*[
hass.config_entries.async_forward_entry_unload(entry, component)
for component in PLATFORMS
]
)
)
if unload_ok:
hass.data[DOMAIN] = {}
return unload_ok

View File

@ -1,35 +0,0 @@
"""Config flow for Ondilo."""
import logging
from homeassistant import config_entries
from homeassistant.helpers import config_entry_oauth2_flow
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
class OndiloFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
"""Config flow to handle Ondilo OAuth2 authentication."""
DOMAIN = DOMAIN
CONNECTION_CLASS = config_entries.CONN_CLASS_CLOUD_POLL
@property
def logger(self) -> logging.Logger:
"""Return logger."""
return logging.getLogger(__name__)
async def async_step_user(self, user_input=None):
"""Handle a flow start."""
print("async_step_user!!")
if self.hass.config_entries.async_entries(DOMAIN):
print("abort because already setup")
return self.async_abort(reason="already_setup")
print("works!")
return await super().async_step_user(user_input)
async def async_step_homekit(self, homekit_info):
"""Handle HomeKit discovery."""
print("async_step_homekit!!")
return await self.async_step_user()

View File

@ -1,4 +0,0 @@
DOMAIN = "ondilo"
OAUTH2_AUTHORIZE = "https://interop.ondilo.com/oauth2/authorize"
OAUTH2_TOKEN = "https://interop.ondilo.com/oauth2/token"
URL_API_PREFIX = "https://interop.ondilo.com/api/customer/v1"

View File

@ -1,10 +0,0 @@
{
"domain": "ondilo",
"name": "Ondilo Pool Monitor",
"documentation": "",
"requirements": [],
"dependencies": [],
"codeowners": ["@mabau"],
"config_flow": true,
"version": "0.1"
}

View File

@ -1,52 +0,0 @@
from .const import DOMAIN, URL_API_PREFIX
from datetime import timedelta
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import logging
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)
_LOGGER = logging.getLogger(__name__)
async def api_call(session, url, data={}):
return await session.async_request(method="GET",
url=f"{URL_API_PREFIX}/{url}",
json=data).json()
class OndiloData:
def __init__(self, session):
self._session = session
@Throttle(MIN_TIME_BETWEEN_UPDATES)
async def async_update(self):
pass
class PHSensor(Entity):
def __init__(self, data):
self._data = data
async def async_update(self):
self._data.async_update()
class ORPSensor(Entity):
def __init__(self, data):
self._data = data
async def async_update(self):
self._data.async_update()
async def async_setup_entry(hass, entry, async_add_entities):
session = hass.data[DOMAIN]['session']
res = await api_call(session, "pools")
print(res)
_LOGGER.warn(res)
# data = OndiloData(session)
# get pools
# sensors = [PHSensor(data), ORPSensor(data)]
# async_add_entities(sensors)

View File

@ -1,7 +1,7 @@
{
"domain": "sysdweb",
"name": "sysdweg",
"name": "sysdweb",
"documentation": "",
"dependencies": [],
"codeowners": ["@mabau"],

File diff suppressed because one or more lines are too long

View File

@ -87,10 +87,12 @@ export class RoomGlanceCard extends LitElement {
return html`
<ha-icon-button
icon="${buttonCfg.icon || "mdi:checkbox-blank"}"
style="color: ${buttonCfg.color || ""};"
title="${buttonCfg.name}"
@click=${this.serviceHandler("scene", "turn_on", {entity_id: buttonCfg.scene})}
></ha-icon-button>
>
<ha-icon style="color: ${buttonCfg.color || ""};"
icon="${buttonCfg.icon || "mdi:checkbox-blank"}"></ha-icon>
</ha-icon-button>
`;
}
@ -99,18 +101,24 @@ export class RoomGlanceCard extends LitElement {
<ha-icon-button
icon="mdi:close-circle"
@click=${this.serviceHandler("light", "turn_off")}
></ha-icon-button>
>
<ha-icon icon="mdi:close-circle"></ha-icon>
</ha-icon-button>
<ha-icon-button
icon="mdi:chevron-up"
title="Heller"
@click=${this.serviceHandler("dimmer", "dim", {offset: 30})}
></ha-icon-button>
>
<ha-icon icon="mdi:chevron-up"></ha-icon>
</ha-icon-button>
<ha-icon-button
icon="mdi:chevron-down"
title="Dunkler"
@click=${this.serviceHandler("dimmer", "dim", {offset: -30})}
></ha-icon-button>`;
>
<ha-icon icon="mdi:chevron-down"></ha-icon>
</ha-icon-button>`;
}
private renderCoverControl() {
@ -118,19 +126,27 @@ export class RoomGlanceCard extends LitElement {
<ha-icon-button
icon="hass:menu"
@click=${this.serviceHandler("cover_half", "set_half")}
></ha-icon-button>
>
<ha-icon icon="hass:menu"></ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.serviceHandler("cover", "open_cover")}
></ha-icon-button>
>
<ha-icon icon="hass:arrow-up"></ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.serviceHandler("cover", "stop_cover")}
></ha-icon-button>
>
<ha-icon icon="hass:stop"></ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.serviceHandler("cover", "close_cover")}
></ha-icon-button>
>
<ha-icon icon="hass:arrow-down"></ha-icon>
</ha-icon-button>
`;
}
@ -227,9 +243,7 @@ export class RoomGlanceCard extends LitElement {
}
ha-icon {
cursor: pointer;
padding: 8px;
color: #a9a9a9;
height: auto;
}
ha-icon.state-on {

View File

@ -12,7 +12,7 @@
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
const i=new WeakMap,n=t=>"function"==typeof t&&i.has(t),r=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,o=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},a={},l={},h=`{{lit-${String(Math.random()).slice(2)}}}`,c=`\x3c!--${h}--\x3e`,p=new RegExp(`${h}|${c}`),u="$lit$";class d{constructor(t,e){this.parts=[],this.element=e;const s=[],i=[],n=document.createTreeWalker(e.content,133,null,!1);let r=0,o=-1,a=0;const{strings:l,values:{length:c}}=t;for(;a<c;){const t=n.nextNode();if(null!==t){if(o++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let i=0;for(let t=0;t<s;t++)_(e[t].name,u)&&i++;for(;i-- >0;){const e=l[a],s=y.exec(e)[2],i=s.toLowerCase()+u,n=t.getAttribute(i);t.removeAttribute(i);const r=n.split(p);this.parts.push({type:"attribute",index:o,name:s,strings:r}),a+=r.length-1}}"TEMPLATE"===t.tagName&&(i.push(t),n.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(h)>=0){const i=t.parentNode,n=e.split(p),r=n.length-1;for(let e=0;e<r;e++){let s,r=n[e];if(""===r)s=m();else{const t=y.exec(r);null!==t&&_(t[2],u)&&(r=r.slice(0,t.index)+t[1]+t[2].slice(0,-u.length)+t[3]),s=document.createTextNode(r)}i.insertBefore(s,t),this.parts.push({type:"node",index:++o})}""===n[r]?(i.insertBefore(m(),t),s.push(t)):t.data=n[r],a+=r}}else if(8===t.nodeType)if(t.data===h){const e=t.parentNode;null!==t.previousSibling&&o!==r||(o++,e.insertBefore(m(),t)),r=o,this.parts.push({type:"node",index:o}),null===t.nextSibling?t.data="":(s.push(t),o--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(h,e+1));)this.parts.push({type:"node",index:-1}),a++}}else n.currentNode=i.pop()}for(const t of s)t.parentNode.removeChild(t)}}const _=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},f=t=>-1!==t.index,m=()=>document.createComment(""),y=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;
const i=new WeakMap,n=t=>"function"==typeof t&&i.has(t),r=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,o=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},a={},l={},h=`{{lit-${String(Math.random()).slice(2)}}}`,c=`\x3c!--${h}--\x3e`,p=new RegExp(`${h}|${c}`),u="$lit$";class d{constructor(t,e){this.parts=[],this.element=e;const s=[],i=[],n=document.createTreeWalker(e.content,133,null,!1);let r=0,o=-1,a=0;const{strings:l,values:{length:c}}=t;for(;a<c;){const t=n.nextNode();if(null!==t){if(o++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let i=0;for(let t=0;t<s;t++)_(e[t].name,u)&&i++;for(;i-- >0;){const e=l[a],s=g.exec(e)[2],i=s.toLowerCase()+u,n=t.getAttribute(i);t.removeAttribute(i);const r=n.split(p);this.parts.push({type:"attribute",index:o,name:s,strings:r}),a+=r.length-1}}"TEMPLATE"===t.tagName&&(i.push(t),n.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(h)>=0){const i=t.parentNode,n=e.split(p),r=n.length-1;for(let e=0;e<r;e++){let s,r=n[e];if(""===r)s=m();else{const t=g.exec(r);null!==t&&_(t[2],u)&&(r=r.slice(0,t.index)+t[1]+t[2].slice(0,-u.length)+t[3]),s=document.createTextNode(r)}i.insertBefore(s,t),this.parts.push({type:"node",index:++o})}""===n[r]?(i.insertBefore(m(),t),s.push(t)):t.data=n[r],a+=r}}else if(8===t.nodeType)if(t.data===h){const e=t.parentNode;null!==t.previousSibling&&o!==r||(o++,e.insertBefore(m(),t)),r=o,this.parts.push({type:"node",index:o}),null===t.nextSibling?t.data="":(s.push(t),o--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(h,e+1));)this.parts.push({type:"node",index:-1}),a++}}else n.currentNode=i.pop()}for(const t of s)t.parentNode.removeChild(t)}}const _=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},f=t=>-1!==t.index,m=()=>document.createComment(""),g=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -26,7 +26,7 @@ const i=new WeakMap,n=t=>"function"==typeof t&&i.has(t),r=void 0!==window.custom
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=r?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],s=this.template.parts,i=document.createTreeWalker(t,133,null,!1);let n,o=0,a=0,l=i.nextNode();for(;o<s.length;)if(n=s[o],f(n)){for(;a<n.index;)a++,"TEMPLATE"===l.nodeName&&(e.push(l),i.currentNode=l.content),null===(l=i.nextNode())&&(i.currentNode=e.pop(),l=i.nextNode());if("node"===n.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(l.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,n.name,n.strings,this.options));o++}else this.__parts.push(void 0),o++;return r&&(document.adoptNode(t),customElements.upgrade(t)),t}}
class y{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=r?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],s=this.template.parts,i=document.createTreeWalker(t,133,null,!1);let n,o=0,a=0,l=i.nextNode();for(;o<s.length;)if(n=s[o],f(n)){for(;a<n.index;)a++,"TEMPLATE"===l.nodeName&&(e.push(l),i.currentNode=l.content),null===(l=i.nextNode())&&(i.currentNode=e.pop(),l=i.nextNode());if("node"===n.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(l.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,n.name,n.strings,this.options));o++}else this.__parts.push(void 0),o++;return r&&(document.adoptNode(t),customElements.upgrade(t)),t}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -39,7 +39,7 @@ class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/class v{constructor(t,e,s,i){this.strings=t,this.values=e,this.type=s,this.processor=i}getHTML(){const t=this.strings.length-1;let e="",s=!1;for(let i=0;i<t;i++){const t=this.strings[i],n=t.lastIndexOf("\x3c!--");s=(n>-1||s)&&-1===t.indexOf("--\x3e",n+1);const r=y.exec(t);e+=null===r?t+(s?h:c):t.substr(0,r.index)+r[1]+r[2]+u+r[3]+h}return e+=this.strings[t]}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}
*/class v{constructor(t,e,s,i){this.strings=t,this.values=e,this.type=s,this.processor=i}getHTML(){const t=this.strings.length-1;let e="",s=!1;for(let i=0;i<t;i++){const t=this.strings[i],n=t.lastIndexOf("\x3c!--");s=(n>-1||s)&&-1===t.indexOf("--\x3e",n+1);const r=g.exec(t);e+=null===r?t+(s?h:c):t.substr(0,r.index)+r[1]+r[2]+u+r[3]+h}return e+=this.strings[t]}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -53,7 +53,7 @@ class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
const S=t=>null===t||!("object"==typeof t||"function"==typeof t),b=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class w{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new P(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let i=0;i<e;i++){s+=t[i];const e=this.parts[i];if(void 0!==e){const t=e.value;if(S(t)||!b(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e]}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class P{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===a||S(t)&&t===this.value||(this.value=t,n(t)||(this.committer.dirty=!0))}commit(){for(;n(this.value);){const t=this.value;this.value=a,t(this)}this.value!==a&&this.committer.commit()}}class C{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(m()),this.endNode=t.appendChild(m())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=m()),t.__insert(this.endNode=m())}insertAfterPart(t){t.__insert(this.startNode=m()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}const t=this.__pendingValue;t!==a&&(S(t)?t!==this.value&&this.__commitText(t):t instanceof v?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):b(t)?this.__commitIterable(t):t===l?(this.value=l,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling;t=null==t?"":t,e===this.endNode.previousSibling&&3===e.nodeType?e.data=t:this.__commitNode(document.createTextNode("string"==typeof t?t:String(t))),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof g&&this.value.template===e)this.value.update(t.values);else{const s=new g(e,t.processor,this.options),i=s._clone();s.update(t.values),this.__commitNode(i),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,i=0;for(const n of t)void 0===(s=e[i])&&(s=new C(this.options),e.push(s),0===i?s.appendIntoPart(this):s.insertAfterPart(e[i-1])),s.setValue(n),s.commit(),i++;i<e.length&&(e.length=i,this.clear(s&&s.endNode))}clear(t=this.startNode){o(this.startNode.parentNode,t.nextSibling,this.endNode)}}class x{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=a}}class O extends w{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new T(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class T extends P{}let N=!1;try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class A{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),i=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),i&&(this.__options=j(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=a}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const j=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);
const S=t=>null===t||!("object"==typeof t||"function"==typeof t),b=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class w{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new P(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let i=0;i<e;i++){s+=t[i];const e=this.parts[i];if(void 0!==e){const t=e.value;if(S(t)||!b(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e]}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class P{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===a||S(t)&&t===this.value||(this.value=t,n(t)||(this.committer.dirty=!0))}commit(){for(;n(this.value);){const t=this.value;this.value=a,t(this)}this.value!==a&&this.committer.commit()}}class C{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(m()),this.endNode=t.appendChild(m())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=m()),t.__insert(this.endNode=m())}insertAfterPart(t){t.__insert(this.startNode=m()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}const t=this.__pendingValue;t!==a&&(S(t)?t!==this.value&&this.__commitText(t):t instanceof v?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):b(t)?this.__commitIterable(t):t===l?(this.value=l,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling;t=null==t?"":t,e===this.endNode.previousSibling&&3===e.nodeType?e.data=t:this.__commitNode(document.createTextNode("string"==typeof t?t:String(t))),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof y&&this.value.template===e)this.value.update(t.values);else{const s=new y(e,t.processor,this.options),i=s._clone();s.update(t.values),this.__commitNode(i),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,i=0;for(const n of t)void 0===(s=e[i])&&(s=new C(this.options),e.push(s),0===i?s.appendIntoPart(this):s.insertAfterPart(e[i-1])),s.setValue(n),s.commit(),i++;i<e.length&&(e.length=i,this.clear(s&&s.endNode))}clear(t=this.startNode){o(this.startNode.parentNode,t.nextSibling,this.endNode)}}class x{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=a}}class O extends w{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new T(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class T extends P{}let N=!1;try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class A{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),i=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),i&&(this.__options=j(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=a}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const j=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -162,7 +162,7 @@ const st=(t,e)=>"method"!==e.kind||!e.descriptor||"value"in e.descriptor?{kind:"
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
(window.litElementVersions||(window.litElementVersions=[])).push("2.0.1");const ot=t=>t.flat?t.flat(1/0):function t(e,s=[]){for(let i=0,n=e.length;i<n;i++){const n=e[i];Array.isArray(n)?t(n,s):s.push(n)}return s}(t);class at extends et{static finalize(){super.finalize(),this._styles=this.hasOwnProperty(JSCompiler_renameProperty("styles",this))?this._getUniqueStyles():this._styles||[]}static _getUniqueStyles(){const t=this.styles,e=[];if(Array.isArray(t)){ot(t).reduceRight((t,e)=>(t.add(e),t),new Set).forEach(t=>e.unshift(t))}else t&&e.push(t);return e}initialize(){super.initialize(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?rt?this.renderRoot.adoptedStyleSheets=t.map(t=>t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){super.update(t);const e=this.render();e instanceof v&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){}}at.finalized=!0,at.render=(t,e,s)=>{const i=s.scopeName,n=M.has(e),r=I&&11===e.nodeType&&!!e.host&&t instanceof v,a=r&&!L.has(i),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let i=M.get(e);void 0===i&&(o(e,e.firstChild),M.set(e,i=new C(Object.assign({templateFactory:V},s))),i.appendInto(e)),i.setValue(t),i.commit()})(t,l,Object.assign({templateFactory:H(i)},s)),a){const t=M.get(l);M.delete(l),t.value instanceof g&&B(l,t.value.template,i),o(e,e.firstChild),e.appendChild(l),M.set(e,t)}!n&&r&&window.ShadyCSS.styleElement(e.host)};const lt=(t,e)=>0!=(t.attributes.supported_features&e);class ht{constructor(t,e){this.hass=t,this.stateObj=e,this._attr=e.attributes,this._feat=this._attr.supported_features}get isFullyOpen(){return void 0!==this._attr.current_position?100===this._attr.current_position:"open"===this.stateObj.state}get isFullyClosed(){return void 0!==this._attr.current_position?0===this._attr.current_position:"closed"===this.stateObj.state}get isFullyOpenTilt(){return 100===this._attr.current_tilt_position}get isFullyClosedTilt(){return 0===this._attr.current_tilt_position}get isOpening(){return"opening"===this.stateObj.state}get isClosing(){return"closing"===this.stateObj.state}get supportsOpen(){return lt(this.stateObj,1)}get supportsClose(){return lt(this.stateObj,2)}get supportsSetPosition(){return lt(this.stateObj,4)}get supportsStop(){return lt(this.stateObj,8)}get supportsOpenTilt(){return lt(this.stateObj,16)}get supportsCloseTilt(){return lt(this.stateObj,32)}get supportsStopTilt(){return lt(this.stateObj,64)}get supportsSetTiltPosition(){return lt(this.stateObj,128)}get isTiltOnly(){const t=this.supportsOpen||this.supportsClose||this.supportsStop;return(this.supportsOpenTilt||this.supportsCloseTilt||this.supportsStopTilt)&&!t}openCover(){this.callService("open_cover")}closeCover(){this.callService("close_cover")}stopCover(){this.callService("stop_cover")}openCoverTilt(){this.callService("open_cover_tilt")}closeCoverTilt(){this.callService("close_cover_tilt")}stopCoverTilt(){this.callService("stop_cover_tilt")}setCoverPosition(t){this.callService("set_cover_position",{position:t})}setCoverTiltPosition(t){this.callService("set_cover_tilt_position",{tilt_position:t})}callService(t,e={}){e.entity_id=this.stateObj.entity_id,this.hass.callService("cover",t,e)}}s.d(e,"StateCardCustomCover",function(){return pt});var ct=function(t,e,s,i){var n,r=arguments.length,o=r<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,i);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,s,o):n(e,s))||o);return r>3&&o&&Object.defineProperty(e,s,o),o};let pt=class extends at{constructor(){super(...arguments),this.inDialog=!1}get stateObj(){return this.hass&&this._config?this.hass.states[this._config.entity]:null}setConfig(t){if(!t||!t.entity)throw new Error("Invalid configuration");this._config=t}get entityObj(){if(this.hass&&this.stateObj)return new ht(this.hass,this.stateObj);throw new Error("Trying to get entityObj before setting hass & config")}static getCardSize(){return 1}stateInfoTemplate(){return R`
(window.litElementVersions||(window.litElementVersions=[])).push("2.0.1");const ot=t=>t.flat?t.flat(1/0):function t(e,s=[]){for(let i=0,n=e.length;i<n;i++){const n=e[i];Array.isArray(n)?t(n,s):s.push(n)}return s}(t);class at extends et{static finalize(){super.finalize(),this._styles=this.hasOwnProperty(JSCompiler_renameProperty("styles",this))?this._getUniqueStyles():this._styles||[]}static _getUniqueStyles(){const t=this.styles,e=[];if(Array.isArray(t)){ot(t).reduceRight((t,e)=>(t.add(e),t),new Set).forEach(t=>e.unshift(t))}else t&&e.push(t);return e}initialize(){super.initialize(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?rt?this.renderRoot.adoptedStyleSheets=t.map(t=>t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){super.update(t);const e=this.render();e instanceof v&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){}}at.finalized=!0,at.render=(t,e,s)=>{const i=s.scopeName,n=M.has(e),r=I&&11===e.nodeType&&!!e.host&&t instanceof v,a=r&&!L.has(i),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let i=M.get(e);void 0===i&&(o(e,e.firstChild),M.set(e,i=new C(Object.assign({templateFactory:V},s))),i.appendInto(e)),i.setValue(t),i.commit()})(t,l,Object.assign({templateFactory:H(i)},s)),a){const t=M.get(l);M.delete(l),t.value instanceof y&&B(l,t.value.template,i),o(e,e.firstChild),e.appendChild(l),M.set(e,t)}!n&&r&&window.ShadyCSS.styleElement(e.host)};const lt=(t,e)=>0!=(t.attributes.supported_features&e);class ht{constructor(t,e){this.hass=t,this.stateObj=e,this._attr=e.attributes,this._feat=this._attr.supported_features}get isFullyOpen(){return void 0!==this._attr.current_position?100===this._attr.current_position:"open"===this.stateObj.state}get isFullyClosed(){return void 0!==this._attr.current_position?0===this._attr.current_position:"closed"===this.stateObj.state}get isFullyOpenTilt(){return 100===this._attr.current_tilt_position}get isFullyClosedTilt(){return 0===this._attr.current_tilt_position}get isOpening(){return"opening"===this.stateObj.state}get isClosing(){return"closing"===this.stateObj.state}get supportsOpen(){return lt(this.stateObj,1)}get supportsClose(){return lt(this.stateObj,2)}get supportsSetPosition(){return lt(this.stateObj,4)}get supportsStop(){return lt(this.stateObj,8)}get supportsOpenTilt(){return lt(this.stateObj,16)}get supportsCloseTilt(){return lt(this.stateObj,32)}get supportsStopTilt(){return lt(this.stateObj,64)}get supportsSetTiltPosition(){return lt(this.stateObj,128)}get isTiltOnly(){const t=this.supportsOpen||this.supportsClose||this.supportsStop;return(this.supportsOpenTilt||this.supportsCloseTilt||this.supportsStopTilt)&&!t}openCover(){this.callService("open_cover")}closeCover(){this.callService("close_cover")}stopCover(){this.callService("stop_cover")}openCoverTilt(){this.callService("open_cover_tilt")}closeCoverTilt(){this.callService("close_cover_tilt")}stopCoverTilt(){this.callService("stop_cover_tilt")}setCoverPosition(t){this.callService("set_cover_position",{position:t})}setCoverTiltPosition(t){this.callService("set_cover_tilt_position",{tilt_position:t})}callService(t,e={}){e.entity_id=this.stateObj.entity_id,this.hass.callService("cover",t,e)}}s.d(e,"StateCardCustomCover",function(){return pt});var ct=function(t,e,s,i){var n,r=arguments.length,o=r<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,i);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,s,o):n(e,s))||o);return r>3&&o&&Object.defineProperty(e,s,o),o};let pt=class extends at{constructor(){super(...arguments),this.inDialog=!1}get stateObj(){return this.hass&&this._config?this.hass.states[this._config.entity]:null}setConfig(t){if(!t||!t.entity)throw new Error("Invalid configuration");this._config=t}get entityObj(){if(this.hass&&this.stateObj)return new ht(this.hass,this.stateObj);throw new Error("Trying to get entityObj before setting hass & config")}static getCardSize(){return 1}stateInfoTemplate(){return R`
State info template
`}render(){if(!this._config||!this.hass)return R``;const t=this.entityObj,e=this.hass.states[this._config.entity];return e?R`
<style include="iron-flex iron-flex-alignment"></style>
@ -173,6 +173,16 @@ const st=(t,e)=>"method"!==e.kind||!e.descriptor||"value"in e.descriptor?{kind:"
.state {
white-space: nowrap;
}
ha-icon-button {
width: 35px;
--mdc-icon-size: 25px;
}
ha-icon {
height: auto;
}
[invisible] {
visibility: hidden !important;
}
@ -183,21 +193,23 @@ const st=(t,e)=>"method"!==e.kind||!e.descriptor||"value"in e.descriptor?{kind:"
<ha-icon-button
icon="hass:menu"
@click=${this.onHalfOpenTap}
></ha-icon-button>
>
<ha-icon icon="hass:menu"> </ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.onOpenTap}
.disabled="${this.computeOpenDisabled(e,this.entityObj)}"
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.onStopTap}
></ha-icon-button>
>
<ha-icon icon="hass:arrow-up"> </ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.onCloseTap}
.disabled="${this.computeClosedDisabled(e,t)}"
></ha-icon-button>
>
<ha-icon icon="hass:arrow-down"> </ha-icon>
</ha-icon-button>
</div>
</hui-generic-entity-row>
`:R`

View File

@ -77,6 +77,16 @@ export class StateCardCustomCover extends LitElement {
.state {
white-space: nowrap;
}
ha-icon-button {
width: 35px;
--mdc-icon-size: 25px;
}
ha-icon {
height: auto;
}
[invisible] {
visibility: hidden !important;
}
@ -87,21 +97,23 @@ export class StateCardCustomCover extends LitElement {
<ha-icon-button
icon="hass:menu"
@click=${this.onHalfOpenTap}
></ha-icon-button>
>
<ha-icon icon="hass:menu"> </ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.onOpenTap}
.disabled="${this.computeOpenDisabled(stateObj, this.entityObj)}"
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.onStopTap}
></ha-icon-button>
>
<ha-icon icon="hass:arrow-up"> </ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.onCloseTap}
.disabled="${this.computeClosedDisabled(stateObj, entityObj)}"
></ha-icon-button>
>
<ha-icon icon="hass:arrow-down"> </ha-icon>
</ha-icon-button>
</div>
</hui-generic-entity-row>
`;

8
known_devices.yaml Normal file
View File

@ -0,0 +1,8 @@
martins_ipad:
hide_if_away: false
icon:
mac:
name: Martins iPad
picture:
track: true

416
knx_conf.yaml Normal file
View File

@ -0,0 +1,416 @@
# Dont' edit manually! this is generated!
sensor:
- name: Gang Bewegungsmelder West Helligkeit
state_address: 0/0/42
type: illuminance
- name: Gang Bewegungsmelder Mitte Helligkeit
state_address: 0/0/45
type: illuminance
- name: Gang Bewegungsmelder Ost Helligkeit
state_address: 0/0/48
type: illuminance
- name: Esszimmer Temperatur
state_address: 0/0/6
type: temperature
- name: Treppenhaus Oben Temperatur
state_address: 0/0/5
type: temperature
- name: Eingangsbereich Temperatur
state_address: 0/0/24
type: temperature
- name: Wohnzimmer Gang Temperatur
state_address: 0/0/25
type: temperature
- name: Wohnzimmer Terassentür Temperatur
state_address: 0/0/26
type: temperature
- name: Vorratsraum Steckdose 1 Betriebsstunden
state_address: 0/5/62
type: 2byte_unsigned
- name: Vorratsraum Steckdose 1 Verbrauch mA
state_address: 0/5/65
type: DPT-9
- name: Vorratsraum Steckdose 1 Verbrauch Summe
state_address: 0/5/70
type: 4byte_unsigned
- name: Vorratsraum Steckdose 2 Betriebsstunden
state_address: 0/5/80
type: 2byte_unsigned
- name: Vorratsraum Steckdose 2 Verbrauch mA
state_address: 0/5/83
type: DPT-9
- name: Vorratsraum Steckdose 2 Verbrauch Summe
state_address: 0/5/88
type: 4byte_unsigned
- name: Gefrierschrank Betriebsstunden
state_address: 0/5/98
type: 2byte_unsigned
- name: Gefrierschrank Verbrauch mA
state_address: 0/5/101
type: DPT-9
- name: Gefrierschrank Verbrauch Summe
state_address: 0/5/106
type: 4byte_unsigned
- name: Trockner Betriebsstunden
state_address: 0/5/26
type: 2byte_unsigned
- name: Trockner Verbrauch mA
state_address: 0/5/29
type: DPT-9
- name: Trockner Verbrauch Summe
state_address: 0/5/34
type: 4byte_unsigned
- name: Waschmaschine Betriebsstunden
state_address: 0/5/8
type: 2byte_unsigned
- name: Waschmaschine Verbrauch mA
state_address: 0/5/11
type: DPT-9
- name: Waschmaschine Verbrauch Summe
state_address: 0/5/16
type: 4byte_unsigned
- name: Küche Steckdosen rechts Betriebsstunden
state_address: 0/4/98
type: 2byte_unsigned
- name: Küche Steckdosen rechts Verbrauch mA
state_address: 0/4/101
type: DPT-9
- name: Küche Steckdosen rechts Verbrauch Summe
state_address: 0/4/106
type: 4byte_unsigned
- name: Dunstabzug Betriebsstunden
state_address: 0/4/116
type: 2byte_unsigned
- name: Dunstabzug Verbrauch mA
state_address: 0/4/119
type: DPT-9
- name: Dunstabzug Verbrauch Summe
state_address: 0/4/124
type: 4byte_unsigned
- name: Spülmaschine Betriebsstunden
state_address: 0/4/8
type: 2byte_unsigned
- name: Spülmaschine Verbrauch mA
state_address: 0/4/11
type: DPT-9
- name: Backofen Betriebsstunden
state_address: 0/4/26
type: 2byte_unsigned
- name: Backofen Verbrauch mA
state_address: 0/4/29
type: DPT-9
- name: Backofen Verbrauch Summe
state_address: 0/4/34
type: 4byte_unsigned
- name: Herd Phase 1 Betriebsstunden
state_address: 0/4/44
type: 2byte_unsigned
- name: Herd Phase 1 Verbrauch mA
state_address: 0/4/47
type: DPT-9
- name: Herd Phase 1 Verbrauch Summe
state_address: 0/4/52
type: 4byte_unsigned
- name: Herd Phase 2 Betriebsstunden
state_address: 0/4/62
type: 2byte_unsigned
- name: Herd Phase 2 Verbrauch mA
state_address: 0/4/65
type: DPT-9
- name: Herd Phase 2 Verbrauch Summe
state_address: 0/4/70
type: 4byte_unsigned
- name: Herd Phase 3 Betriebsstunden
state_address: 0/4/80
type: 2byte_unsigned
- name: Herd Phase 3 Verbrauch mA
state_address: 0/4/83
type: DPT-9
- name: Herd Phase 3 Verbrauch Summe
state_address: 0/4/88
type: 4byte_unsigned
- name: Arbeitszimmer Steckdose Betriebsstunden
state_address: 0/4/134
type: 2byte_unsigned
- name: Arbeitszimmer Steckdose Verbrauch mA
state_address: 0/4/137
type: DPT-9
- name: Arbeitszimmer Steckdose Verbrauch Summe
state_address: 0/4/142
type: 4byte_unsigned
- name: Wohnzimmer Steckdose 1 Betriebsstunden
state_address: 0/4/152
type: 2byte_unsigned
- name: Wohnzimmer Steckdose 1 Verbrauch mA
state_address: 0/4/155
type: DPT-9
- name: Wohnzimmer Steckdose 1 Verbrauch Summe
state_address: 0/4/160
type: 4byte_unsigned
- name: Wohnzimmer Steckdose 2 Betriebsstunden
state_address: 0/4/170
type: 2byte_unsigned
- name: Wohnzimmer Steckdose 2 Verbrauch mA
state_address: 0/4/173
type: DPT-9
- name: Wohnzimmer Steckdose 2 Verbrauch Summe
state_address: 0/4/178
type: 4byte_unsigned
binary_sensor:
- name: Gang Bewegungsmelder Schlafzimmer
state_address: 0/0/40
device_class: motion
- name: Gang Bewegungsmelder Wohnzimmer
state_address: 0/0/41
device_class: motion
- name: Gang Bewegungsmelder Mitte
state_address: 0/0/44
device_class: motion
- name: Gang Bewegungsmelder Ost
state_address: 0/0/47
device_class: motion
light:
- name: Wohnzimmer Deckenlampe
address: 0/1/3
state_address: 0/1/8
brightness_address: 0/1/7
brightness_state_address: 0/1/9
- name: Esszimmer Deckenlampe West
address: 0/1/21
state_address: 0/1/26
brightness_address: 0/1/25
brightness_state_address: 0/1/27
- name: Esszimmer Deckenlampe Mitte
address: 0/1/39
state_address: 0/1/44
brightness_address: 0/1/43
brightness_state_address: 0/1/45
- name: Esszimmer Schrankleuchte
address: 0/2/39
state_address: 0/2/44
brightness_address: 0/2/43
brightness_state_address: 0/2/45
- name: Küche Deckenlampe
address: 0/1/57
state_address: 0/1/62
brightness_address: 0/1/61
brightness_state_address: 0/1/63
- name: Aussen Terassenlicht
address: 0/2/21
state_address: 0/2/26
brightness_address: 0/2/25
brightness_state_address: 0/2/27
- name: Gang Licht
address: 0/3/3
state_address: 0/3/8
brightness_address: 0/3/7
brightness_state_address: 0/3/9
- name: Bad Licht
address: 0/3/21
state_address: 0/3/26
brightness_address: 0/3/25
brightness_state_address: 0/3/27
- name: Gang Einganglicht
address: 0/3/39
state_address: 0/3/44
brightness_address: 0/3/43
brightness_state_address: 0/3/45
- name: Waschküche Licht
address: 0/3/57
state_address: 0/3/62
brightness_address: 0/3/61
brightness_state_address: 0/3/63
- name: Haustür Licht
address: 0/0/1
state_address: 0/0/2
- name: Haustür Licht NW
address: 0/0/3
state_address: 0/0/4
- name: Treppenhaus Licht
address: 0/5/180
state_address: 0/5/185
- name: Vorratsraum Licht
address: 0/5/36
state_address: 0/5/41
- name: Bewegungsmelder Mitte LED
address: 0/0/46
- name: Bewegungsmelder West LED
address: 0/0/43
- name: Bewegungsmelder Ost LED
address: 0/0/49
cover:
- name: Wohnzimmer Fenster Rollo
move_long_address: 0/7/10
move_short_address: 0/7/11
position_address: 0/7/28
position_state_address: 0/7/24
- name: Wohnzimmer Terrassentür Rollo
move_long_address: 0/7/36
move_short_address: 0/7/37
position_address: 0/7/54
position_state_address: 0/7/50
- name: Küche Fenster Rollo
move_long_address: 0/7/62
move_short_address: 0/7/63
position_address: 0/7/80
position_state_address: 0/7/76
- name: Esszimmer Fenster Rollo
move_long_address: 0/7/88
move_short_address: 0/7/89
position_address: 0/7/106
position_state_address: 0/7/102
switch:
- name: Klingel Oben
address: 0/0/15
state_address: 0/0/15
- name: Klingel Innentür
address: 0/5/108
state_address: 0/5/113
- name: Klingel Außentür
address: 0/5/126
state_address: 0/5/131
- name: Esszimmer Szene 0
address: 0/0/11
state_address: 0/0/11
- name: Esszimmer Szene 1
address: 0/0/12
state_address: 0/0/12
- name: Esszimmer Szene 2
address: 0/0/9
state_address: 0/0/9
- name: Esszimmer Szene 3
address: 0/0/10
state_address: 0/0/10
- name: Esszimmer Szene 4
address: 0/0/8
state_address: 0/0/8
- name: Esszimmer Szene 5
address: 0/0/19
state_address: 0/0/19
- name: Wohnzimmer Szene 0
address: 0/0/27
state_address: 0/0/27
- name: Wohnzimmer Szene 1
address: 0/0/28
state_address: 0/0/28
- name: Wohnzimmer Szene 2
address: 0/0/29
state_address: 0/0/29
- name: Wohnzimmer Szene 3
address: 0/0/30
state_address: 0/0/30
- name: Wohnzimmer Szene 4
address: 0/0/31
state_address: 0/0/31
- name: Wohnzimmer Szene 5
address: 0/0/32
state_address: 0/0/32
- name: Eingang Szene 2
address: 0/0/20
state_address: 0/0/20
- name: Eingang Szene 3
address: 0/0/21
state_address: 0/0/21
- name: Eingang Szene 4
address: 0/0/22
state_address: 0/0/22
- name: Eingang Szene 5
address: 0/0/23
state_address: 0/0/23
- name: Wohnzimmer Terrassentür Szene 2
address: 0/0/17
state_address: 0/0/17
- name: Wohnzimmer Terrassentür Szene 3
address: 0/0/18
state_address: 0/0/18
- name: alarm_led_links_normal
address: 0/0/7
state_address: 0/0/7
- name: alarm_led_links_ueberlagert
address: 0/0/13
state_address: 0/0/13
- name: alarm_led_rechts_normal
address: 0/0/14
state_address: 0/0/14
- name: alarm_led_rechts_ueberlagert
address: 0/0/16
state_address: 0/0/16
- name: wc_licht_taster
address: 0/5/198
state_address: 0/5/198
- name: Vorratsraum Steckdose 1
address: 0/5/54
state_address: 0/5/59
- name: Vorratsraum Steckdose 1 Betriebsstunden Reset
address: 0/5/63
- name: Vorratsraum Steckdose 2
address: 0/5/72
state_address: 0/5/77
- name: Vorratsraum Steckdose 2 Betriebsstunden Reset
address: 0/5/81
- name: Gefrierschrank
address: 0/5/90
state_address: 0/5/95
- name: Gefrierschrank Betriebsstunden Reset
address: 0/5/99
- name: Trockner
address: 0/5/18
state_address: 0/5/23
- name: Trockner Betriebsstunden Reset
address: 0/5/27
- name: Waschmaschine
address: 0/5/0
state_address: 0/5/5
- name: Waschmaschine Betriebsstunden Reset
address: 0/5/9
- name: Küche Steckdosen rechts
address: 0/4/90
state_address: 0/4/95
- name: Küche Steckdosen rechts Betriebsstunden Reset
address: 0/4/99
- name: Dunstabzug
address: 0/4/108
state_address: 0/4/113
- name: Dunstabzug Betriebsstunden Reset
address: 0/4/117
- name: Spülmaschine
address: 0/4/0
state_address: 0/4/5
- name: Spülmaschine Betriebsstunden Reset
address: 0/4/9
- name: Backofen
address: 0/4/18
state_address: 0/4/23
- name: Backofen Betriebsstunden Reset
address: 0/4/27
- name: Herd Phase 1
address: 0/4/36
state_address: 0/4/41
- name: Herd Phase 1 Betriebsstunden Reset
address: 0/4/45
- name: Herd Phase 2
address: 0/4/54
state_address: 0/4/59
- name: Herd Phase 2 Betriebsstunden Reset
address: 0/4/63
- name: Herd Phase 3
address: 0/4/72
state_address: 0/4/77
- name: Herd Phase 3 Betriebsstunden Reset
address: 0/4/81
- name: Arbeitszimmer Steckdose
address: 0/4/126
state_address: 0/4/131
- name: Arbeitszimmer Steckdose Betriebsstunden Reset
address: 0/4/135
- name: Wohnzimmer Steckdose 1
address: 0/4/144
state_address: 0/4/149
- name: Wohnzimmer Steckdose 1 Betriebsstunden Reset
address: 0/4/153
- name: Wohnzimmer Steckdose 2
address: 0/4/162
state_address: 0/4/167
- name: Wohnzimmer Steckdose 2 Betriebsstunden Reset
address: 0/4/171

BIN
pyozw.sqlite Normal file

Binary file not shown.

3
pyscript/bad_luefter.py Normal file
View File

@ -0,0 +1,3 @@
@state_trigger("switch.bad_luefter == 'on'", state_hold=60 * 15)
def luefter_auto_off():
switch.bad_luefter.turn_off()

10
pyscript/config.yaml Normal file
View File

@ -0,0 +1,10 @@
apps:
bad_luefter
ir_remote_kitchenpi
ir_remote_oben
ir_remote_schlafzimmer
herd
knx_buttons
licht_schlafzimmer
licht_gang_bogen
licht_wc

14
pyscript/herd.py Normal file
View File

@ -0,0 +1,14 @@
@state_trigger("switch.esszimmer_szene_4")
def esszimmer_gangtuer_herd(value=None):
entity_id = [f"switch.herd_phase_{i}" for i in range(1, 4)]
if value == "on":
switch.turn_on(entity_id=entity_id)
elif value == "off":
switch.turn_off(entity_id=entity_id)
@state_trigger("float(sensor.herd_phase_1_verbrauch) + float(sensor.herd_phase_2_verbrauch) + float(sensor.herd_phase_3_verbrauch) < 100", state_hold=30 * 60)
def herd_auto_aus():
switch.esszimmer_szene_4.turn_off()

View File

@ -0,0 +1,44 @@
from ir_helpers import *
async def regal_licht_f(**kwargs):
async def f():
await hass.services.async_call('light', 'turn_on', {'entity_id': "light.music_mouse_regal_licht", 'effect': 'static', **kwargs})
return f
@event_trigger("ir_command_received", "host == 'musicmouse.fritz.box' and repeat_counter == 0 and remote == 'ir_led3'")
def ir_remote_kinderzimmer(button_name=None, **kwargs):
mapping = {
'key_on': scene_f('kinderzimmer_hell'),
'key_off': light_f("turn_off", entity_id="group.kids_room"),
'key_brightnessup': cover_f('open_cover', 'cover.kinderzimmer_rollo'),
'key_brightnessdown': cover_f('close_cover', 'cover.kinderzimmer_rollo'),
'key_white': scene_f('kinderzimmer_hell'),
'key_red': scene_f('kinderzimmer_wickeln_nachts'),
'key_pound': regal_licht_f(rgbw_color=[255, 30, 60, 0]),
'key_1': regal_licht_f(rgbw_color=[255, 30, 60, 0]),
'key_2': regal_licht_f(rgbw_color=[28, 255, 35, 0]),
'key_3': regal_licht_f(rgbw_color=[0, 0, 255, 0]),
'key_4': regal_licht_f(rgbw_color=[255, 156, 17, 0]),
'key_5': regal_licht_f(rgbw_color=[12, 166, 255, 0]),
'key_6': regal_licht_f(rgbw_color=[185, 10, 255, 0]),
'key_7': regal_licht_f(rgbw_color=[255, 156, 17, 0], brightness=50, effect="side_0.2_inc8"),
'key_8': regal_licht_f(rgbw_color=[0, 0, 255, 0], brightness=50, effect="side_0.2_inc8"),
'key_9': regal_licht_f(rgbw_color=[255, 30, 60, 0], brightness=50, effect="side_0.2_inc8"),
}
if button_name in mapping:
mapping[button_name]()
elif button_name == 'key_smooth':
dimmer.dim(entity_id="light.music_mouse_regal_licht", offset=-30)
elif button_name == 'key_fade':
dimmer.dim(entity_id="light.music_mouse_regal_licht", offset=+30)
@event_trigger("ir_command_received", "host == 'musicmouse.fritz.box' and repeat_counter == 0 and remote == 'Hauppauge'")
def ir_remote_hauppauge_kinderzimmer(button_name=None, **kwargs):
p = {'player': 'media_player.musicmouse'}
mapping = {
**default_ir_light_control('group.kids_room'),
**default_ir_cover_control('group.kids_room'),
**default_ir_music_control(**p),
}
if button_name in mapping:
mapping[button_name]()

View File

@ -0,0 +1,33 @@
from ir_helpers import *
@event_trigger("ir_command_received", "host == 'kitchenpi.fritz.box' and repeat_counter == 0")
def ir_remote_kitchenpi(button_name=None, **kwargs):
player = {'player': 'media_player.kitchenpi'}
mapping = {
**default_ir_light_control('group.living_area'),
**default_ir_cover_control('group.living_area'),
**default_ir_music_control(**player),
'btn_1': playlist_f('Fast Jazz', shuffle=True, **player),
'btn_2': playlist_f('Favorite Brass', shuffle=True, **player),
'btn_3': playlist_f("Pop", shuffle=True, **player),
'btn_4': playlist_f('Bar Classics', **player),
'btn_5': playlist_f('Sentimental Moods', **player),
'btn_6': playlist_f(URLS['spotify_merkliste'], **player),
'btn_7': radio_f('BR24', **player),
'btn_8': radio_f('BR-Klassik', **player),
'btn_9': playlist_f(URLS['klassik_radio'], **player),
'btn_0': radio_f('Bayern 3', **player),
'key_numeric_pound': radio_f('Bayern 2', **player),
'key_numeric_star': radio_f('Antenne Bayern', **player),
'key_red': scene_f('wohnbereich_orange'),
'key_green': scene_f('wohnbereich_grun'),
'key_yellow': scene_f('wohnbereich_hell'),
'key_blue': scene_f('wohnbereich_blau_grun'),
}
if button_name in mapping:
mapping[button_name]()

View File

@ -0,0 +1,77 @@
from ir_helpers import *
light_counter = CyclicCounter(
lambda v: light.lampe_ersterstock.turn_on(**v),
[
{'color_temp': 492},
{'xy_color': [0.5794, 0.3752]},
{'xy_color': [0.5535, 0.4104]},
{'xy_color': [0.4662, 0.3252]},
{'xy_color': [0.3423, 0.2252]},
{'xy_color': [0.346, 0.394]},
{'xy_color': [0.4119, 0.3671]},
{'xy_color': [0.408, 0.517]},
{'color_temp': 202},
],
)
def music_mapping(player):
player = {'player': player}
return {
'btn_1': radio_f('Bayern 1', **player),
'btn_2': radio_f('Bayern 2', **player),
'btn_3': radio_f('BR Heimat', **player),
'btn_4': radio_f('Bayern+', **player),
'btn_5': radio_f('BR24', **player),
'btn_6': radio_f('BR-Klassik', **player),
'btn_7': playlist_f('Gesammelte Weihnachtslieder', **player),
'btn_8': playlist_f('Harmonic Brass Christmas', **player),
'btn_9': playlist_f('German Brass Christmas', **player),
'key_numeric_star': playlist_f('Weihnachten mit den Wiener Sängerknaben', **player),
'btn_0': playlist_f('Weihnachten mit den Wiener Sängerknaben', **player),
'key_numeric_pound': playlist_f('SammlungGeorg', **player),
}
def light_mapping():
return {
'key_red': light_counter.next,
'key_green': light_counter.prev,
'key_blue': light.lampe_ersterstock.turn_off,
'key_yellow': light.lampe_ersterstock.turn_off,
'key_channelup': lambda: dimmer.dim(entity_id='light.lampe_ersterstock', offset=+30),
'key_channeldown': lambda: dimmer.dim(entity_id='light.lampe_ersterstock', offset=-30),
}
# -------------------------------------------------------------------------------------------------
@event_trigger("ir_command_received", "host == 'esszimmerradio.fritz.box' and repeat_counter == 0")
def ir_remote_esszimmer_oben(button_name=None, **kwargs):
mapping = {
**music_mapping('media_player.esszimmer'),
**light_mapping(),
}
buttons_to_switch_on = ['key_play', 'key_power'] + [f'btn_{i}' for i in range(10)]
buttons_to_switch_off = ['key_goto', 'key_pause']
if button_name in buttons_to_switch_on:
switch.esszimmer_oben_radio_steckdose1.turn_on()
elif button_name in buttons_to_switch_off:
switch.esszimmer_oben_radio_steckdose1.turn_off()
elif button_name == 'key_record':
sysdweb.restart(service_name="squeezelite", hostname="esszimmerradio.fritz.box")
if button_name in mapping:
mapping[button_name]()
@event_trigger("ir_command_received", "host == 'musikserverWohnzimmerOben.fritz.box' and repeat_counter==0")
def ir_remote_wohnzimmer_oben(button_name=None, **kwargs):
mapping = {
**music_mapping('media_player.wohnzimmer'),
**light_mapping(),
}
if button_name in mapping:
mapping[button_name]()

View File

@ -0,0 +1,72 @@
from ir_helpers import *
@pyscript_compile
def timed_sleep_f(content, light_off_mins, music_off_mins, shuffle):
variables = {
'media_content_id': content,
'light_off_secs': light_off_mins * 60,
'music_off_secs': music_off_mins * 60,
'shuffle': shuffle,
}
async def f():
await hass.services.async_call('script', 'timed_sleep', variables)
return f
@state_trigger("switch.tasmota07 == 'on'")
def foen_auto_off():
timer.fon_timer.start(duration="00:45:00")
@event_trigger("ir_command_received", "host == 'bedroompi.fritz.box' and repeat_counter == 0")
def ir_remote_schlafzimmer(button_name=None, **kwargs):
p = {'player': 'media_player.bedroompi'}
mapping = {
**default_ir_light_control('group.bedroom'),
**default_ir_cover_control('group.bedroom'),
**default_ir_music_control(**p),
'btn_1': playlist_f('Good Morning', **p),
'btn_2': playlist_f('Good Night Long', **p),
'btn_3': playlist_f('Good Night', **p),
'btn_4': playlist_f('Bar Classics', **p),
'btn_5': playlist_f('Sentimental Moods', **p),
'btn_6': playlist_f(URLS['spotify_merkliste'], **p),
'btn_7': radio_f('BR24', **p),
'btn_8': radio_f('BR-Klassik', **p),
'btn_9': playlist_f(URLS['klassik_radio'], **p),
'btn_0': radio_f('Bayern 3', **p),
'key_numeric_pound': radio_f('Bayern 2', **p),
#'key_numeric_star': lambda: timer.fon_timer.start(duration="00:10:00"),
'key_red': scene_f('schlafzimmer_stillen'),
'key_green': scene_f('schlafzimmer_orange'),
'key_yellow': scene_f('schlafzimmer_ganz_hell'),
'key_blue': scene_f('nachtswennallelieberschlafen'),
'key_tv': timed_sleep_f(URLS['spotify_rain'], light_off_mins=15, music_off_mins=45, shuffle=True),
'key_video': timed_sleep_f('Good Night', light_off_mins=15, music_off_mins=45, shuffle=False),
'key_music': timed_sleep_f(URLS['spotify_rain'], light_off_mins=5, music_off_mins=20, shuffle=True),
'key_picture': timed_sleep_f('Good Night', light_off_mins=5, music_off_mins=20, shuffle=False)
}
if button_name in mapping:
mapping[button_name]()
elif button_name == "key_numeric_star": # Foen
#repeat_one_crossfade(**p)
#media_player.play_media(media_content_id='Foen', media_content_type='music', entity_id=p['player'])
#media_player.volume_set(volume_level=60, entity_id=p['player'])
timer.fon_timer.start(duration="00:10:00")
elif button_name == 'key_power': # Music & Lights off
media_player.media_pause(entity_id=p['player'])
light.turn_off(entity_id='group.bedroom')
elif button_name == 'key_ok': # Grosser Rollo zu, kleiner halb zu
cover.schlafzimmer_rollo_gross.close_cover()
cover_half.set_half(entity_id="cover.schlafzimmer_rollo_klein")
elif button_name == 'key_mute': # Alles aus ohne draussen & schlafzimmer
light.turn_off(entity_id='group.all_downstairs_but_bedroom_and_outside')
elif button_name == 'key_channel': # alles aus ausser schlafzimmer
light.turn_off(entity_id='group.all_downstairs_but_bedroom')

119
pyscript/knx_buttons.py Normal file
View File

@ -0,0 +1,119 @@
@pyscript_compile
def in_room(room):
return f"entity_id.startswith('switch.{room}_szene_')"
@event_trigger("short_click", in_room("eingang"))
@event_trigger("long_click", in_room("eingang"))
def eingang(entity_id=None, event_type=None):
long_click = (event_type == "long_click")
key = {'switch.eingang_szene_2': 'bulb_orange',
'switch.eingang_szene_3': 'bulb_black',
'switch.eingang_szene_4': 'key',
'switch.eingang_szene_5': 'dog'}[entity_id]
if key == "bulb_orange":
light.gang_licht.turn_on()
light.gang_einganglicht.turn_on()
if long_click:
scene.wohnbereich_hell.turn_on()
elif key == "bulb_black":
if long_click:
light.turn_off(entity_id="group.all_downstairs")
else:
light.turn_off(entity_id="group.all_downstairs_but_outside")
@event_trigger("short_click", in_room("esszimmer"))
@event_trigger("long_click", in_room("esszimmer"))
def esszimmer_gangtuer(entity_id=None, event_type=None):
key = {'switch.esszimmer_szene_0': 'arrow_down',
'switch.esszimmer_szene_1': 'arrow_up',
'switch.esszimmer_szene_2': 'bulb_orange',
'switch.esszimmer_szene_3': 'bulb_yellow',
'switch.esszimmer_szene_4': 'cooking_pot', # Herd an/aus in separater Datei
'switch.esszimmer_szene_5': 'bulb_black'}[entity_id]
long_click = (event_type == "long_click")
if long_click:
covers = ['cover.kuche_fenster_rollo', 'cover.esszimmer_fenster_rollo']
else:
covers = ['group.living_area']
if key == "arrow_down":
cover_half.set_half(entity_id=covers)
elif key == "arrow_up":
cover.open_cover(entity_id=covers)
elif key == "bulb_orange":
if long_click:
scene.kuche_essbereich_orange.turn_on()
else:
scene.wohnbereich_orange.turn_on()
elif key == "bulb_yellow":
if long_click:
scene.kuche_essbereich_hell.turn_on()
else:
scene.wohnbereich_hell.turn_on()
elif key == "bulb_black":
if long_click:
light.essbereich_lichter.turn_off()
else:
light.turn_off(entity_id="group.living_area")
@event_trigger("short_click", in_room("wohnzimmer"))
@event_trigger("long_click", in_room("wohnzimmer"))
def wohnzimmer_gangtur(entity_id=None, event_type=None):
long_click = (event_type == "long_click")
key = {'switch.wohnzimmer_szene_0': 'arrow_down',
'switch.wohnzimmer_szene_1': 'arrow_up',
'switch.wohnzimmer_szene_2': 'bulb_orange',
'switch.wohnzimmer_szene_3': 'bulb_yellow',
'switch.wohnzimmer_szene_4': 'bulb_blue',
'switch.wohnzimmer_szene_5': 'bulb_black'}[entity_id]
if long_click:
covers = ['cover.wohnzimmer_fenster_rollo', 'cover.wohnzimmer_terrassentur_rollo']
else:
covers = ['group.living_area']
if key == "arrow_down":
cover_half.set_half(entity_id=covers)
elif key == "arrow_up":
cover.open_cover(entity_id=covers)
elif key == "bulb_orange":
if long_click:
scene.wohnzimmer_orange.turn_on()
else:
scene.wohnbereich_orange.turn_on()
elif key == "bulb_yellow":
if long_click:
scene.wohnzimmer_hell.turn_on()
else:
scene.wohnbereich_hell.turn_on()
elif key == "bulb_blue":
if long_click:
scene.wohnzimmer_dunkel.turn_on()
else:
scene.wohnbereich_blau_grun.turn_on()
elif key == "bulb_black":
if long_click:
light.wohnzimmer_lichter.turn_off()
else:
light.turn_off(entity_id="group.living_area")
@event_trigger("short_click", in_room("wohnzimmer_terrassentur"))
@event_trigger("long_click", in_room("wohnzimmer_terrassentur"))
def wohnzimmer_terassentuer(entity_id=None, event_type=None):
long_click = (event_type == "long_click")
key = {'switch.wohnzimmer_terrassentur_szene_2': 'teddy',
'switch.wohnzimmer_terrassentur_szene_3': 'flowers'}[entity_id]
if key == "teddy":
if long_click:
scene.wohnbereich_kuscheln.turn_on()
elif key == "flowers":
if long_click:
light.turn_off(entity_id="light.garten_lichter")
else:
scene.garten_savanna.turn_on()

View File

View File

@ -0,0 +1,30 @@
# oben: kurz: orange szene
# lang: helle szene
# unten: kurz: off, but 1 min bedlight
# lang: rollos zu: nur tagsueber wenn komplett offen
@event_trigger("homematic.keypress", "name == 'schlafzimmer_deckenlampe'")
def schlafzimmer_licht(channel=None, param=None, **kwargs):
up = (channel == 2)
down = (channel == 1)
long = (param == "PRESS_LONG")
short = not long
log.info(f"Schlafzimmer knopf up {up}, long {long}")
if up and short:
scene.schlafzimmer_orange.turn_on()
elif up and long:
scene.schlafzimmer_ganz_hell.turn_on()
elif down and short:
light.turn_off(entity_id='group.bedroom')
scene.schlafzimmer_bettlicht_dunkel.turn_on()
task.wait_until(timeout=60)
light.bett_martin.turn_off()
light.bett_rebecca.turn_off()
elif down and long:
during_day = float(sun.sun.elevation) > 5
covers_fully_open = (int(cover.schlafzimmer_rollo_gross.current_position) > 95 or
int(cover.schlafzimmer_rollo_klein.current_position) > 95)
if during_day and covers_fully_open:
cover.schlafzimmer_rollo_gross.close_cover()
cover_half.set_half(entity_id="cover.schlafzimmer_rollo_klein")

4
pyscript/licht_wc.py Normal file
View File

@ -0,0 +1,4 @@
@state_trigger("switch.wc_licht_taster == 'on'")
def wc_licht():
switch.wc_licht.toggle()

View File

@ -0,0 +1,126 @@
# ---------------------------------- Music ---------------------------------------------
URLS = {
'klassik_radio': "http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3",
'spotify_rain': "spotify:playlist:37i9dQZF1DXbcPC6Vvqudd",
'spotify_merkliste': "spotify:playlist:43wCckw3P4WKdy06Rd7eYO",
}
async def media_player_s(service_name, entity_id, **kwargs):
await hass.services.async_call('media_player', service_name, {'entity_id': entity_id, **kwargs})
async def media_player_f(service_name, entity_id, **kwargs):
async def f():
hass.services.async_call('media_player', service_name, {'entity_id': entity_id, **kwargs})
return f
async def default_music_settings(player, shuffle=False):
await media_player_s('shuffle_set', player, shuffle=shuffle)
await media_player_s('squeezebox_call_method', player, command="playlist repeat 0")
await media_player_s('squeezebox_call_method', player, command="playerpref transitionType 0")
async def repeat_one_crossfade(player):
await media_player_s('repeat_set', player, repeat='one')
await media_player_s('squeezebox_call_method', player, command='playerpref transitionType 1')
def playlist_f(name, player, shuffle=False):
async def f():
await default_music_settings(player, shuffle=shuffle)
await media_player_s('play_media', player, media_content_id=name, media_content_type='music')
return f
def radio_f(name, player):
async def f():
await media_player_s('play_media', player, media_content_id=name, media_content_type='channel')
return f
def scene_f(name):
async def f():
await hass.services.async_call('scene', 'turn_on', {'entity_id': 'scene.' + name})
return f
def cover_f(name, entity_id, **kwargs):
async def f():
await hass.services.async_call('cover', name, {'entity_id': entity_id, **kwargs})
return f
def cover_half_f(entity_id):
async def f():
await hass.services.async_call('cover_half', 'set_half', {'entity_id': entity_id})
return f
def light_f(name, entity_id, **kwargs):
async def f():
await hass.services.async_call('light', name, {'entity_id': entity_id, **kwargs})
return f
def default_ir_music_control(player):
return {
'key_play': media_player_f("media_play_pause", player),
'key_pause': media_player_f("turn_off", player),
'key_forward': media_player_f('media_next_track', player),
'key_fastforward': media_player_f('media_next_track', player),
'key_previous': media_player_f('media_previous_track', player),
'key_rewind': media_player_f('media_previous_track', player),
'key_volumeup': media_player_f('volume_up', player),
'key_volumedown': media_player_f('volume_down', player),
'key_menu': media_player_f('shuffle_set', player, shuffle=True),
'key_exit': media_player_f('shuffle_set', player, shuffle=False),
}
# ---------------------------------- Covers --------------------------------------------
def default_ir_cover_control(device_group):
return {
'key_up': cover_f('open_cover', device_group),
'key_down': cover_f('close_cover', device_group),
'key_left': cover_half_f(device_group),
'key_right': cover_half_f(device_group),
}
# ---------------------------------- Lights ---------------------------------------------
def default_ir_light_control(device_group):
def dim_offset_f(offset):
async def f():
await hass.services.async_call('dimmer', 'dim', {'entity_id': device_group, 'offset': offset})
return f
return {
'key_channelup': dim_offset_f(+30),
'key_channeldown': dim_offset_f(-30),
'key_menu': dim_offset_f(130),
'key_stop': dim_offset_f(-130),
'key_goto': light_f('turn_off', device_group)
}
class CyclicCounter:
def __init__(self, func, values):
self.idx = 0
self.values = values
self.func = func
def next(self):
self.idx = (self.idx + 1) % len(self.values)
self.func(self.values[self.idx])
def prev(self):
self.idx = (self.idx - 1) % len(self.values)
self.func(self.values[self.idx])

View File

@ -3,13 +3,12 @@
entities:
light.kuche_deckenlampe:
state: true
brightness: 38
brightness: 10
light.esszimmer_deckenlampe_west:
state: true
brightness: 38
brightness: 10
light.esszimmer_deckenlampe_mitte:
state: true
brightness: 38
state: false
light.esszimmer_schrankleuchte:
state: false
light.kuche_links:
@ -92,6 +91,9 @@
- name: Küche Essbereich Hell
id: kueche_essbereich_hell
entities:
light.esszimmer_deckenlampe_mitte:
state: true
brightness: 255
light.esszimmer_deckenlampe_west:
state: true
brightness: 255

View File

@ -3,16 +3,15 @@
entities:
light.kuche_deckenlampe:
state: true
brightness: 38
brightness: 10
light.wohnzimmer_deckenlampe:
state: true
brightness: 38
brightness: 10
light.esszimmer_deckenlampe_west:
state: true
brightness: 38
brightness: 10
light.esszimmer_deckenlampe_mitte:
state: true
brightness: 38
state: false
light.esszimmer_schrankleuchte:
state: false
light.kuche_links:
@ -68,8 +67,7 @@
state: true
brightness: 38
light.esszimmer_deckenlampe_mitte:
state: true
brightness: 38
state: false
light.esszimmer_schrankleuchte:
state: false
light.kuche_links:
@ -184,6 +182,9 @@
- name: Wohnbereich Hell
id: wohnbereich_hell
entities:
light.esszimmer_deckenlampe_mitte:
state: true
brightness: 255
light.esszimmer_deckenlampe_west:
state: true
brightness: 255

File diff suppressed because one or more lines are too long

View File

@ -12,7 +12,7 @@
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
const i=new WeakMap,n=t=>"function"==typeof t&&i.has(t),r=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,o=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},a={},l={},h=`{{lit-${String(Math.random()).slice(2)}}}`,c=`\x3c!--${h}--\x3e`,p=new RegExp(`${h}|${c}`),u="$lit$";class d{constructor(t,e){this.parts=[],this.element=e;const s=[],i=[],n=document.createTreeWalker(e.content,133,null,!1);let r=0,o=-1,a=0;const{strings:l,values:{length:c}}=t;for(;a<c;){const t=n.nextNode();if(null!==t){if(o++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let i=0;for(let t=0;t<s;t++)_(e[t].name,u)&&i++;for(;i-- >0;){const e=l[a],s=y.exec(e)[2],i=s.toLowerCase()+u,n=t.getAttribute(i);t.removeAttribute(i);const r=n.split(p);this.parts.push({type:"attribute",index:o,name:s,strings:r}),a+=r.length-1}}"TEMPLATE"===t.tagName&&(i.push(t),n.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(h)>=0){const i=t.parentNode,n=e.split(p),r=n.length-1;for(let e=0;e<r;e++){let s,r=n[e];if(""===r)s=m();else{const t=y.exec(r);null!==t&&_(t[2],u)&&(r=r.slice(0,t.index)+t[1]+t[2].slice(0,-u.length)+t[3]),s=document.createTextNode(r)}i.insertBefore(s,t),this.parts.push({type:"node",index:++o})}""===n[r]?(i.insertBefore(m(),t),s.push(t)):t.data=n[r],a+=r}}else if(8===t.nodeType)if(t.data===h){const e=t.parentNode;null!==t.previousSibling&&o!==r||(o++,e.insertBefore(m(),t)),r=o,this.parts.push({type:"node",index:o}),null===t.nextSibling?t.data="":(s.push(t),o--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(h,e+1));)this.parts.push({type:"node",index:-1}),a++}}else n.currentNode=i.pop()}for(const t of s)t.parentNode.removeChild(t)}}const _=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},f=t=>-1!==t.index,m=()=>document.createComment(""),y=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;
const i=new WeakMap,n=t=>"function"==typeof t&&i.has(t),r=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,o=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},a={},l={},h=`{{lit-${String(Math.random()).slice(2)}}}`,c=`\x3c!--${h}--\x3e`,p=new RegExp(`${h}|${c}`),u="$lit$";class d{constructor(t,e){this.parts=[],this.element=e;const s=[],i=[],n=document.createTreeWalker(e.content,133,null,!1);let r=0,o=-1,a=0;const{strings:l,values:{length:c}}=t;for(;a<c;){const t=n.nextNode();if(null!==t){if(o++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let i=0;for(let t=0;t<s;t++)_(e[t].name,u)&&i++;for(;i-- >0;){const e=l[a],s=g.exec(e)[2],i=s.toLowerCase()+u,n=t.getAttribute(i);t.removeAttribute(i);const r=n.split(p);this.parts.push({type:"attribute",index:o,name:s,strings:r}),a+=r.length-1}}"TEMPLATE"===t.tagName&&(i.push(t),n.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(h)>=0){const i=t.parentNode,n=e.split(p),r=n.length-1;for(let e=0;e<r;e++){let s,r=n[e];if(""===r)s=m();else{const t=g.exec(r);null!==t&&_(t[2],u)&&(r=r.slice(0,t.index)+t[1]+t[2].slice(0,-u.length)+t[3]),s=document.createTextNode(r)}i.insertBefore(s,t),this.parts.push({type:"node",index:++o})}""===n[r]?(i.insertBefore(m(),t),s.push(t)):t.data=n[r],a+=r}}else if(8===t.nodeType)if(t.data===h){const e=t.parentNode;null!==t.previousSibling&&o!==r||(o++,e.insertBefore(m(),t)),r=o,this.parts.push({type:"node",index:o}),null===t.nextSibling?t.data="":(s.push(t),o--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(h,e+1));)this.parts.push({type:"node",index:-1}),a++}}else n.currentNode=i.pop()}for(const t of s)t.parentNode.removeChild(t)}}const _=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},f=t=>-1!==t.index,m=()=>document.createComment(""),g=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -26,7 +26,7 @@ const i=new WeakMap,n=t=>"function"==typeof t&&i.has(t),r=void 0!==window.custom
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=r?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],s=this.template.parts,i=document.createTreeWalker(t,133,null,!1);let n,o=0,a=0,l=i.nextNode();for(;o<s.length;)if(n=s[o],f(n)){for(;a<n.index;)a++,"TEMPLATE"===l.nodeName&&(e.push(l),i.currentNode=l.content),null===(l=i.nextNode())&&(i.currentNode=e.pop(),l=i.nextNode());if("node"===n.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(l.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,n.name,n.strings,this.options));o++}else this.__parts.push(void 0),o++;return r&&(document.adoptNode(t),customElements.upgrade(t)),t}}
class y{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=r?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],s=this.template.parts,i=document.createTreeWalker(t,133,null,!1);let n,o=0,a=0,l=i.nextNode();for(;o<s.length;)if(n=s[o],f(n)){for(;a<n.index;)a++,"TEMPLATE"===l.nodeName&&(e.push(l),i.currentNode=l.content),null===(l=i.nextNode())&&(i.currentNode=e.pop(),l=i.nextNode());if("node"===n.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(l.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,n.name,n.strings,this.options));o++}else this.__parts.push(void 0),o++;return r&&(document.adoptNode(t),customElements.upgrade(t)),t}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -39,7 +39,7 @@ class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/class v{constructor(t,e,s,i){this.strings=t,this.values=e,this.type=s,this.processor=i}getHTML(){const t=this.strings.length-1;let e="",s=!1;for(let i=0;i<t;i++){const t=this.strings[i],n=t.lastIndexOf("\x3c!--");s=(n>-1||s)&&-1===t.indexOf("--\x3e",n+1);const r=y.exec(t);e+=null===r?t+(s?h:c):t.substr(0,r.index)+r[1]+r[2]+u+r[3]+h}return e+=this.strings[t]}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}
*/class v{constructor(t,e,s,i){this.strings=t,this.values=e,this.type=s,this.processor=i}getHTML(){const t=this.strings.length-1;let e="",s=!1;for(let i=0;i<t;i++){const t=this.strings[i],n=t.lastIndexOf("\x3c!--");s=(n>-1||s)&&-1===t.indexOf("--\x3e",n+1);const r=g.exec(t);e+=null===r?t+(s?h:c):t.substr(0,r.index)+r[1]+r[2]+u+r[3]+h}return e+=this.strings[t]}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -53,7 +53,7 @@ class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
const S=t=>null===t||!("object"==typeof t||"function"==typeof t),b=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class w{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new P(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let i=0;i<e;i++){s+=t[i];const e=this.parts[i];if(void 0!==e){const t=e.value;if(S(t)||!b(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e]}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class P{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===a||S(t)&&t===this.value||(this.value=t,n(t)||(this.committer.dirty=!0))}commit(){for(;n(this.value);){const t=this.value;this.value=a,t(this)}this.value!==a&&this.committer.commit()}}class C{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(m()),this.endNode=t.appendChild(m())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=m()),t.__insert(this.endNode=m())}insertAfterPart(t){t.__insert(this.startNode=m()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}const t=this.__pendingValue;t!==a&&(S(t)?t!==this.value&&this.__commitText(t):t instanceof v?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):b(t)?this.__commitIterable(t):t===l?(this.value=l,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling;t=null==t?"":t,e===this.endNode.previousSibling&&3===e.nodeType?e.data=t:this.__commitNode(document.createTextNode("string"==typeof t?t:String(t))),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof g&&this.value.template===e)this.value.update(t.values);else{const s=new g(e,t.processor,this.options),i=s._clone();s.update(t.values),this.__commitNode(i),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,i=0;for(const n of t)void 0===(s=e[i])&&(s=new C(this.options),e.push(s),0===i?s.appendIntoPart(this):s.insertAfterPart(e[i-1])),s.setValue(n),s.commit(),i++;i<e.length&&(e.length=i,this.clear(s&&s.endNode))}clear(t=this.startNode){o(this.startNode.parentNode,t.nextSibling,this.endNode)}}class x{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=a}}class O extends w{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new T(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class T extends P{}let N=!1;try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class A{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),i=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),i&&(this.__options=j(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=a}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const j=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);
const S=t=>null===t||!("object"==typeof t||"function"==typeof t),b=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class w{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new P(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let i=0;i<e;i++){s+=t[i];const e=this.parts[i];if(void 0!==e){const t=e.value;if(S(t)||!b(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e]}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class P{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===a||S(t)&&t===this.value||(this.value=t,n(t)||(this.committer.dirty=!0))}commit(){for(;n(this.value);){const t=this.value;this.value=a,t(this)}this.value!==a&&this.committer.commit()}}class C{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(m()),this.endNode=t.appendChild(m())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=m()),t.__insert(this.endNode=m())}insertAfterPart(t){t.__insert(this.startNode=m()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}const t=this.__pendingValue;t!==a&&(S(t)?t!==this.value&&this.__commitText(t):t instanceof v?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):b(t)?this.__commitIterable(t):t===l?(this.value=l,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling;t=null==t?"":t,e===this.endNode.previousSibling&&3===e.nodeType?e.data=t:this.__commitNode(document.createTextNode("string"==typeof t?t:String(t))),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof y&&this.value.template===e)this.value.update(t.values);else{const s=new y(e,t.processor,this.options),i=s._clone();s.update(t.values),this.__commitNode(i),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,i=0;for(const n of t)void 0===(s=e[i])&&(s=new C(this.options),e.push(s),0===i?s.appendIntoPart(this):s.insertAfterPart(e[i-1])),s.setValue(n),s.commit(),i++;i<e.length&&(e.length=i,this.clear(s&&s.endNode))}clear(t=this.startNode){o(this.startNode.parentNode,t.nextSibling,this.endNode)}}class x{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=a}}class O extends w{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new T(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class T extends P{}let N=!1;try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class A{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;n(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=a,t(this)}if(this.__pendingValue===a)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),i=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),i&&(this.__options=j(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=a}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const j=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -162,7 +162,7 @@ const st=(t,e)=>"method"!==e.kind||!e.descriptor||"value"in e.descriptor?{kind:"
* subject to an additional IP rights grant found at
* http://polymer.github.io/PATENTS.txt
*/
(window.litElementVersions||(window.litElementVersions=[])).push("2.0.1");const ot=t=>t.flat?t.flat(1/0):function t(e,s=[]){for(let i=0,n=e.length;i<n;i++){const n=e[i];Array.isArray(n)?t(n,s):s.push(n)}return s}(t);class at extends et{static finalize(){super.finalize(),this._styles=this.hasOwnProperty(JSCompiler_renameProperty("styles",this))?this._getUniqueStyles():this._styles||[]}static _getUniqueStyles(){const t=this.styles,e=[];if(Array.isArray(t)){ot(t).reduceRight((t,e)=>(t.add(e),t),new Set).forEach(t=>e.unshift(t))}else t&&e.push(t);return e}initialize(){super.initialize(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?rt?this.renderRoot.adoptedStyleSheets=t.map(t=>t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){super.update(t);const e=this.render();e instanceof v&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){}}at.finalized=!0,at.render=(t,e,s)=>{const i=s.scopeName,n=M.has(e),r=I&&11===e.nodeType&&!!e.host&&t instanceof v,a=r&&!L.has(i),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let i=M.get(e);void 0===i&&(o(e,e.firstChild),M.set(e,i=new C(Object.assign({templateFactory:V},s))),i.appendInto(e)),i.setValue(t),i.commit()})(t,l,Object.assign({templateFactory:H(i)},s)),a){const t=M.get(l);M.delete(l),t.value instanceof g&&B(l,t.value.template,i),o(e,e.firstChild),e.appendChild(l),M.set(e,t)}!n&&r&&window.ShadyCSS.styleElement(e.host)};const lt=(t,e)=>0!=(t.attributes.supported_features&e);class ht{constructor(t,e){this.hass=t,this.stateObj=e,this._attr=e.attributes,this._feat=this._attr.supported_features}get isFullyOpen(){return void 0!==this._attr.current_position?100===this._attr.current_position:"open"===this.stateObj.state}get isFullyClosed(){return void 0!==this._attr.current_position?0===this._attr.current_position:"closed"===this.stateObj.state}get isFullyOpenTilt(){return 100===this._attr.current_tilt_position}get isFullyClosedTilt(){return 0===this._attr.current_tilt_position}get isOpening(){return"opening"===this.stateObj.state}get isClosing(){return"closing"===this.stateObj.state}get supportsOpen(){return lt(this.stateObj,1)}get supportsClose(){return lt(this.stateObj,2)}get supportsSetPosition(){return lt(this.stateObj,4)}get supportsStop(){return lt(this.stateObj,8)}get supportsOpenTilt(){return lt(this.stateObj,16)}get supportsCloseTilt(){return lt(this.stateObj,32)}get supportsStopTilt(){return lt(this.stateObj,64)}get supportsSetTiltPosition(){return lt(this.stateObj,128)}get isTiltOnly(){const t=this.supportsOpen||this.supportsClose||this.supportsStop;return(this.supportsOpenTilt||this.supportsCloseTilt||this.supportsStopTilt)&&!t}openCover(){this.callService("open_cover")}closeCover(){this.callService("close_cover")}stopCover(){this.callService("stop_cover")}openCoverTilt(){this.callService("open_cover_tilt")}closeCoverTilt(){this.callService("close_cover_tilt")}stopCoverTilt(){this.callService("stop_cover_tilt")}setCoverPosition(t){this.callService("set_cover_position",{position:t})}setCoverTiltPosition(t){this.callService("set_cover_tilt_position",{tilt_position:t})}callService(t,e={}){e.entity_id=this.stateObj.entity_id,this.hass.callService("cover",t,e)}}s.d(e,"StateCardCustomCover",function(){return pt});var ct=function(t,e,s,i){var n,r=arguments.length,o=r<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,i);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,s,o):n(e,s))||o);return r>3&&o&&Object.defineProperty(e,s,o),o};let pt=class extends at{constructor(){super(...arguments),this.inDialog=!1}get stateObj(){return this.hass&&this._config?this.hass.states[this._config.entity]:null}setConfig(t){if(!t||!t.entity)throw new Error("Invalid configuration");this._config=t}get entityObj(){if(this.hass&&this.stateObj)return new ht(this.hass,this.stateObj);throw new Error("Trying to get entityObj before setting hass & config")}static getCardSize(){return 1}stateInfoTemplate(){return R`
(window.litElementVersions||(window.litElementVersions=[])).push("2.0.1");const ot=t=>t.flat?t.flat(1/0):function t(e,s=[]){for(let i=0,n=e.length;i<n;i++){const n=e[i];Array.isArray(n)?t(n,s):s.push(n)}return s}(t);class at extends et{static finalize(){super.finalize(),this._styles=this.hasOwnProperty(JSCompiler_renameProperty("styles",this))?this._getUniqueStyles():this._styles||[]}static _getUniqueStyles(){const t=this.styles,e=[];if(Array.isArray(t)){ot(t).reduceRight((t,e)=>(t.add(e),t),new Set).forEach(t=>e.unshift(t))}else t&&e.push(t);return e}initialize(){super.initialize(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?rt?this.renderRoot.adoptedStyleSheets=t.map(t=>t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){super.update(t);const e=this.render();e instanceof v&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){}}at.finalized=!0,at.render=(t,e,s)=>{const i=s.scopeName,n=M.has(e),r=I&&11===e.nodeType&&!!e.host&&t instanceof v,a=r&&!L.has(i),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let i=M.get(e);void 0===i&&(o(e,e.firstChild),M.set(e,i=new C(Object.assign({templateFactory:V},s))),i.appendInto(e)),i.setValue(t),i.commit()})(t,l,Object.assign({templateFactory:H(i)},s)),a){const t=M.get(l);M.delete(l),t.value instanceof y&&B(l,t.value.template,i),o(e,e.firstChild),e.appendChild(l),M.set(e,t)}!n&&r&&window.ShadyCSS.styleElement(e.host)};const lt=(t,e)=>0!=(t.attributes.supported_features&e);class ht{constructor(t,e){this.hass=t,this.stateObj=e,this._attr=e.attributes,this._feat=this._attr.supported_features}get isFullyOpen(){return void 0!==this._attr.current_position?100===this._attr.current_position:"open"===this.stateObj.state}get isFullyClosed(){return void 0!==this._attr.current_position?0===this._attr.current_position:"closed"===this.stateObj.state}get isFullyOpenTilt(){return 100===this._attr.current_tilt_position}get isFullyClosedTilt(){return 0===this._attr.current_tilt_position}get isOpening(){return"opening"===this.stateObj.state}get isClosing(){return"closing"===this.stateObj.state}get supportsOpen(){return lt(this.stateObj,1)}get supportsClose(){return lt(this.stateObj,2)}get supportsSetPosition(){return lt(this.stateObj,4)}get supportsStop(){return lt(this.stateObj,8)}get supportsOpenTilt(){return lt(this.stateObj,16)}get supportsCloseTilt(){return lt(this.stateObj,32)}get supportsStopTilt(){return lt(this.stateObj,64)}get supportsSetTiltPosition(){return lt(this.stateObj,128)}get isTiltOnly(){const t=this.supportsOpen||this.supportsClose||this.supportsStop;return(this.supportsOpenTilt||this.supportsCloseTilt||this.supportsStopTilt)&&!t}openCover(){this.callService("open_cover")}closeCover(){this.callService("close_cover")}stopCover(){this.callService("stop_cover")}openCoverTilt(){this.callService("open_cover_tilt")}closeCoverTilt(){this.callService("close_cover_tilt")}stopCoverTilt(){this.callService("stop_cover_tilt")}setCoverPosition(t){this.callService("set_cover_position",{position:t})}setCoverTiltPosition(t){this.callService("set_cover_tilt_position",{tilt_position:t})}callService(t,e={}){e.entity_id=this.stateObj.entity_id,this.hass.callService("cover",t,e)}}s.d(e,"StateCardCustomCover",function(){return pt});var ct=function(t,e,s,i){var n,r=arguments.length,o=r<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,i);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,s,o):n(e,s))||o);return r>3&&o&&Object.defineProperty(e,s,o),o};let pt=class extends at{constructor(){super(...arguments),this.inDialog=!1}get stateObj(){return this.hass&&this._config?this.hass.states[this._config.entity]:null}setConfig(t){if(!t||!t.entity)throw new Error("Invalid configuration");this._config=t}get entityObj(){if(this.hass&&this.stateObj)return new ht(this.hass,this.stateObj);throw new Error("Trying to get entityObj before setting hass & config")}static getCardSize(){return 1}stateInfoTemplate(){return R`
State info template
`}render(){if(!this._config||!this.hass)return R``;const t=this.entityObj,e=this.hass.states[this._config.entity];return e?R`
<style include="iron-flex iron-flex-alignment"></style>
@ -173,6 +173,16 @@ const st=(t,e)=>"method"!==e.kind||!e.descriptor||"value"in e.descriptor?{kind:"
.state {
white-space: nowrap;
}
ha-icon-button {
width: 35px;
--mdc-icon-size: 25px;
}
ha-icon {
height: auto;
}
[invisible] {
visibility: hidden !important;
}
@ -183,21 +193,23 @@ const st=(t,e)=>"method"!==e.kind||!e.descriptor||"value"in e.descriptor?{kind:"
<ha-icon-button
icon="hass:menu"
@click=${this.onHalfOpenTap}
></ha-icon-button>
>
<ha-icon icon="hass:menu"> </ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.onOpenTap}
.disabled="${this.computeOpenDisabled(e,this.entityObj)}"
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.onStopTap}
></ha-icon-button>
>
<ha-icon icon="hass:arrow-up"> </ha-icon>
</ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.onCloseTap}
.disabled="${this.computeClosedDisabled(e,t)}"
></ha-icon-button>
>
<ha-icon icon="hass:arrow-down"> </ha-icon>
</ha-icon-button>
</div>
</hui-generic-entity-row>
`:R`

2
zwscene.xml Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
<Scenes xmlns="http://code.google.com/p/open-zwave/" version="1" />