Compare commits

..

No commits in common. "a8b5c425a9e5610191cbb4dc9adb90e91d46b1b6" and "f6379fe6873fffb84d299d948bafe438914ac619" have entirely different histories.

98 changed files with 14854 additions and 87826 deletions

View File

@ -1 +1 @@
2022.12.8
2021.1.5

7
.gitignore vendored
View File

@ -3,16 +3,9 @@ __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

View File

@ -1,27 +0,0 @@
[
{
"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
}
]

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -1,44 +1,20 @@
{
"version": 1,
"minor_version": 1,
"key": "core.area_registry",
"data": {
"areas": [
{
"name": "Arbeitszimmer",
"id": "46ebd507f8f348508653f61054f67eb0",
"picture": null
},
{
"name": "Wohnbereich",
"id": "93728f2df4d94517803b87de4d4028bb",
"picture": null
},
{
"name": "Küche",
"id": "e58ae8bf5c7847af89a727d7949016f0",
"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
}
]
}
"data": {
"areas": [
{
"id": "46ebd507f8f348508653f61054f67eb0",
"name": "Arbeitszimmer Martin"
},
{
"id": "93728f2df4d94517803b87de4d4028bb",
"name": "Wohnbereich"
},
{
"id": "e58ae8bf5c7847af89a727d7949016f0",
"name": "K\u00fcche"
}
]
},
"key": "core.area_registry",
"version": 1
}

View File

@ -1,17 +1,14 @@
{
"version": 1,
"minor_version": 3,
"key": "core.config",
"data": {
"elevation": 368,
"external_url": "https://ha.bauer.tech",
"internal_url": null,
"latitude": 49.369477,
"location_name": "MyHome",
"longitude": 10.9831468,
"time_zone": "Europe/Berlin",
"unit_system": "metric",
"unit_system_v2": "metric",
"language": "de"
}
"data": {
"elevation": 368,
"external_url": "https://ha.bauer.tech",
"internal_url": null,
"latitude": 49.369477,
"location_name": "MyHome",
"longitude": 10.9831468,
"time_zone": "Europe/Berlin",
"unit_system": "metric"
},
"key": "core.config",
"version": 1
}

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

@ -1,12 +0,0 @@
{
"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
}
]
}

View File

@ -1,78 +0,0 @@
{
"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": []
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
{
"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

@ -1,65 +0,0 @@
{
"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

@ -1,63 +0,0 @@
{
"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

@ -1,57 +0,0 @@
{
"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

@ -1,55 +0,0 @@
{
"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

@ -1,64 +0,0 @@
{
"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

@ -1,70 +0,0 @@
{
"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
}
}

View File

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

View File

@ -1,115 +0,0 @@
{
"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

@ -1,854 +0,0 @@
{
"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

@ -1 +0,0 @@
{"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"}

View File

@ -1,18 +0,0 @@
{
"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
}
}

View File

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

View File

@ -1,18 +0,0 @@
{
"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,174 +1,575 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace",
"data": {
"config": {
"kiosk_mode": {
"mobile_settings": {
"hide_overflow": true
"version": 1,
"key": "lovelace",
"data": {
"config": {
"title": "\u00dcbersicht",
"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\u00fcche"
},
{
"type": "divider"
},
{
"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"
}
],
"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"
},
{
"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"
},
{
"entity": "switch.tasmota06",
"name": "Kamera Schlafzimmer",
"icon": "mdi:video"
},
{
"entity": "switch.tasmota07",
"name": "F\u00f6n Schlafzimmer",
"icon": "mdi:fan"
}
],
"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"
}
],
"icon": "mdi:star-face",
"panel": false,
"path": "kinderzimmer",
"title": "Kinderzimmer"
},
{
"badges": [],
"cards": [
{
"aspect_ratio": "16x9",
"entities": [
"group.bathroom"
],
"image": "/local/img/bathroom2.jpg",
"scenes": [
{
"color": "#f07a1d",
"name": "Normal",
"scene": "scene.bad_normal"
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.bad_hell"
},
{
"icon": "mdi:duck",
"name": "Baden",
"scene": "scene.bad_baden"
}
],
"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"
}
]
}
},
"title": "Übersicht",
"views": [
{
"title": "Übersicht",
"path": "ubersicht",
"icon": "mdi:home",
"badges": [],
"cards": [
{
"type": "entities",
"entities": [
{
"type": "conditional",
"conditions": [
{
"entity": "light.wohnbereich_lichter",
"state": "on"
}
],
"row": {
"entity": "light.wohnbereich_deckenlampen"
}
},
{
"type": "conditional",
"conditions": [
{
"entity": "sun.sun",
"state": "above_horizon"
},
{
"entity": "cover.wohnzimmer_fenster_rollo",
"state": "open"
}
],
"row": {
"entity": "cover.wohnzimmer_fenster_rollo",
"name": "WZ Fenster Rollo",
"type": "custom:state-card-custom-cover"
}
}
],
"title": "Wohnbereich"
},
{
"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": "cover.kinderzimmer_rollo",
"name": "Kinderzimmer Rollo",
"secondary_info": "none"
},
{
"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 %}"
}
]
},
{
"type": "tile",
"entity": "light.arbeitszimmer_oben_fluter_hinten",
"show_entity_picture": false,
"features": [
{
"type": "light-brightness"
}
]
},
{
"type": "tile",
"entity": "light.arbeitszimmer_oben_fluter_vorne",
"features": [
{
"type": "light-brightness"
}
]
}
]
},
{
"title": "Wetter",
"path": "wetter",
"icon": "mdi:weather-partly-cloudy",
"badges": [],
"cards": [
{
"type": "weather-forecast",
"entity": "weather.openweathermap",
"show_forecast": true,
"name": " "
},
{
"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"
}
]
}
]
}
}
}

View File

@ -1,724 +0,0 @@
{
"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
}
]
}
]
}
}
}

View File

@ -1,701 +0,0 @@
{
"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,36 +1,706 @@
{
"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": [
{
"color": "#f07a1d",
"name": "Normal",
"scene": "scene.bad_normal"
"entity": "light.haustur_licht",
"icon": "mdi:book",
"name": "Haust\u00fcr"
},
{
"color": "#fdef56",
"name": "Hell",
"scene": "scene.bad_hell"
"entity": "light.garten_spot_birke",
"icon": "mdi:flower",
"name": "Birke"
},
{
"icon": "mdi:duck",
"name": "Baden",
"scene": "scene.bad_baden"
"entity": "light.garten_spot_magnolie",
"icon": "mdi:flower",
"name": "Magnolie"
},
{
"entity": "light.garten_stehleuchte",
"icon": "mdi:flower",
"name": "Stehleuchte"
}
],
"type": "custom:room-glance-card"
"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"
}
],
"icon": "mdi:more",
@ -38,5 +708,7 @@
}
]
}
}
},
"key": "lovelace.lovelace_rebecca",
"version": 1
}

View File

@ -1,35 +1,17 @@
{
"version": 1,
"key": "lovelace_dashboards",
"data": {
"items": [
{
"icon": "mdi:account",
"id": "lovelace_rebecca",
"mode": "storage",
"require_admin": true,
"show_in_sidebar": false,
"require_admin": false,
"show_in_sidebar": true,
"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,94 +1,38 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace_resources",
"data": {
"items": [
{
"id": "2dd231ecf4fa46d1b9ba696f28da7731",
"type": "module",
"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": "55ef5e325ab444d19e15a1183a97fb35",
"type": "module",
"url": "/local/custom_ui/room-glance-card.js?v=1.09"
},
{
"url": "/hacsfiles/scheduler-card/scheduler-card.js?hacstag=286270157239",
"type": "module",
"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"
}
]
}
"version": 1,
"key": "lovelace_resources",
"data": {
"items": [
{
"id": "2dd231ecf4fa46d1b9ba696f28da7731",
"type": "module",
"url": "/local/custom_ui/state-card-custom-cover.js"
},
{
"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"
},
{
"id": "02ac97946bb44092a5f073752a8b6deb",
"type": "module",
"url": "/local/custom_ui/multiple-entity-row.js?v=3.5.1"
}
]
}
}

View File

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

View File

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

View File

@ -1,72 +0,0 @@
{
"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"
}
]
}
}

View File

@ -1,13 +0,0 @@
{
"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"
}
]
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,373 +0,0 @@
{
"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

@ -1,5 +1,5 @@
- id: '1575130335468'
alias: Fernbedienung Weihnachtslichter Oben
alias: FernbedienungWeihnachtslichterOben
description: ''
trigger:
- event_data:
@ -13,7 +13,6 @@
- data:
entity_id: switch.mobile_steckdose_schalter_2
service: switch.toggle
mode: single
- id: '1575202743482'
alias: Wecker Licht an
description: ''
@ -45,7 +44,7 @@
- 0.414
service: light.turn_on
- id: '1589377976830'
alias: Alarm Martin Handy
alias: AlarmMartinHandy
description: ''
trigger:
- entity_id: binary_sensor.gang_bewegungsmelder_schlafzimmer, binary_sensor.gang_bewegungsmelder_ost,
@ -66,7 +65,7 @@
- delay: '30'
mode: single
- id: '1598594894559'
alias: Klingel Auf Handy
alias: KlingelAufHandy
description: ''
trigger:
- entity_id: switch.klingel_aussentur
@ -85,7 +84,7 @@
service: notify.ios_martins_ipad
mode: single
- id: '1606655282153'
alias: Weihnachtslichter an morgens um 6
alias: _WeihnachtslichterAnUm6
description: ''
trigger:
- platform: time
@ -97,12 +96,10 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
- switch.tasmota03
mode: single
- id: '1607412098745'
alias: Weihnachtslichter aus morgens
alias: _WeihnachtslichterAusMorgens
description: ''
trigger:
- platform: sun
@ -115,18 +112,16 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
- switch.tasmota03
- switch.mobile_steckdose_schalter_1
- switch.mobile_steckdose_schalter_2
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
@ -134,12 +129,12 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
- switch.tasmota03
- switch.mobile_steckdose_schalter_1
- switch.mobile_steckdose_schalter_2
mode: single
- id: '1607412210097'
alias: Weihnachtslichter Aus Abends
alias: _Weihnachtslichter Aus Abends
description: ''
trigger:
- platform: time
@ -151,12 +146,12 @@
entity_id:
- switch.tasmota01
- switch.tasmota02
- switch.tasmota04
- switch.tasmota05
- switch.tasmota07
- switch.tasmota03
- switch.mobile_steckdose_schalter_1
- switch.mobile_steckdose_schalter_2
mode: single
- id: '1612028092169'
alias: Bewegungsmelder Schlafzimmer Nacht
alias: 0_BewegungsmelderSchlafzimmerNacht
description: ''
trigger:
- platform: state
@ -186,152 +181,8 @@
brightness: 6
entity_id: light.bett_martin, light.bett_rebecca
- delay: '1'
- service: light.turn_off
- service: light.turn_on
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

@ -0,0 +1,136 @@
# ------ 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

652
automations/ir_bedroom.yaml Normal file
View File

@ -0,0 +1,652 @@
# 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

@ -0,0 +1,352 @@
# 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

@ -0,0 +1,352 @@
# 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

@ -0,0 +1,440 @@
# 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

@ -0,0 +1,35 @@
- 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

@ -0,0 +1,66 @@
- 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

@ -0,0 +1,156 @@
# ---------------------------------------------------
- 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

@ -0,0 +1,150 @@
# ---------------------------------------------------
- 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

217
automations/oben_licht.yaml Normal file
View File

@ -0,0 +1,217 @@
- 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

@ -0,0 +1,15 @@
# ------ 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

263
config_creation/fhem.cfg Normal file
View File

@ -0,0 +1,263 @@
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

106
config_creation/fhem.yaml Normal file
View File

@ -0,0 +1,106 @@
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,4 +1,8 @@
# Add only entities here that are auto-discovered (not KNX devices)
# Add only entities here that are auto-discovered (not FHEM and KNX devices)
#default_view:
# view: true
# icon: mdi:home
living_area:
name: Wohnbereich
@ -15,13 +19,10 @@ 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
@ -44,24 +45,21 @@ 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

@ -0,0 +1,337 @@
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,6 +3,7 @@ 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()
@ -12,8 +13,8 @@ yaml.preserve_quotes = True
sensor_exclude_list = [
'sensor.fritz_box_7490_bytes_received',
'sensor.fritz_box_7490_bytes_sent',
# 'sensor.fritz_box_7490_kbyte_sec_received',
# 'sensor.fritz_box_7490_kbyte_sec_sent',
#'sensor.fritz_box_7490_kbyte_sec_received',
#'sensor.fritz_box_7490_kbyte_sec_sent',
'sensor.fritz_box_7490_packets_received',
'sensor.fritz_box_7490_packets_sec_received',
'sensor.fritz_box_7490_packets_sec_sent',
@ -50,7 +51,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'),
@ -81,8 +82,7 @@ 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("WCLicht Schalten", "wc_licht_taster"), ]
DeviceInfo("AlarmLEDRechtsUeberlagert", "alarm_led_rechts_ueberlagert"),]
power_plugs = [
# Vorratsraum
@ -161,7 +161,21 @@ def add_knx_devices(devices, groups):
for device_type, devices in [('light', lights), ('cover', shutters), ('switch', switches)]:
for device in devices:
add_to_group(groups, device.groups, device.display_name, device_type)
return template_sensors
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):
@ -254,22 +268,22 @@ def create_config(target_directory, development=False):
manual_config_dict = yaml.load(open(manual_config_path, encoding="utf-8"))
knx_conf = {
#'tunneling': {
# 'host': '192.168.178.65',
# 'port': 3671
#}
'rate_limit': 20,
'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)
@ -295,6 +309,8 @@ 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,34 +2,32 @@
# 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:
timer:
#input_boolean:
#input_datetime:
#input_number:
#input_select:
#input_text:
ondilo:
username: customer_api
password: !secret ondilo_pw
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
http:
use_x_forwarded_for: true
trusted_proxies:
192.168.178.80
base_url: https://ha.bauer.tech
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:
@ -55,8 +53,6 @@ homeassistant:
half_position: 25
pyscript: !include pyscript/config.yaml
# enable configuration editor
config:
@ -110,15 +106,9 @@ 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
@ -156,6 +146,94 @@ 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
@ -172,8 +250,6 @@ 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
@ -182,9 +258,10 @@ long_click:
logger:
default: info
logs:
custom_components: info
# #custom_components.reconnecting_client: debug
#
custom_components.fhem: debug
#custom_components: debug
#custom_components.reconnecting_client: debug
# Sensors
#sensor:
# Weather prediction
@ -359,42 +436,14 @@ google_assistant:
knx: !include knx_conf.yaml
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
fhem:
host: localhost
port: 7072
cul_device_name: CUL_HM
#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:
@ -462,19 +511,24 @@ 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:
@ -550,7 +604,7 @@ light:
- platform: group
name: Garten Lichter
entities:
- light.garten_vorne
- light.garten_spot_birke
- light.garten_spot_magnolie
- light.garten_spot_beet
- light.garten_stehleuchte

View File

@ -1,5 +1,3 @@
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,5 +1,3 @@
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

@ -0,0 +1,78 @@
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

@ -0,0 +1,35 @@
"""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

@ -0,0 +1,4 @@
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

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

View File

@ -0,0 +1,52 @@
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": "sysdweb",
"name": "sysdweg",
"documentation": "",
"dependencies": [],
"codeowners": ["@mabau"],

File diff suppressed because one or more lines are too long

View File

@ -87,12 +87,10 @@ 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 style="color: ${buttonCfg.color || ""};"
icon="${buttonCfg.icon || "mdi:checkbox-blank"}"></ha-icon>
</ha-icon-button>
></ha-icon-button>
`;
}
@ -101,24 +99,18 @@ export class RoomGlanceCard extends LitElement {
<ha-icon-button
icon="mdi:close-circle"
@click=${this.serviceHandler("light", "turn_off")}
>
<ha-icon icon="mdi:close-circle"></ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="mdi:chevron-up"
title="Heller"
@click=${this.serviceHandler("dimmer", "dim", {offset: 30})}
>
<ha-icon icon="mdi:chevron-up"></ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="mdi:chevron-down"
title="Dunkler"
@click=${this.serviceHandler("dimmer", "dim", {offset: -30})}
>
<ha-icon icon="mdi:chevron-down"></ha-icon>
</ha-icon-button>`;
></ha-icon-button>`;
}
private renderCoverControl() {
@ -126,27 +118,19 @@ export class RoomGlanceCard extends LitElement {
<ha-icon-button
icon="hass:menu"
@click=${this.serviceHandler("cover_half", "set_half")}
>
<ha-icon icon="hass:menu"></ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.serviceHandler("cover", "open_cover")}
>
<ha-icon icon="hass:arrow-up"></ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.serviceHandler("cover", "stop_cover")}
>
<ha-icon icon="hass:stop"></ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.serviceHandler("cover", "close_cover")}
>
<ha-icon icon="hass:arrow-down"></ha-icon>
</ha-icon-button>
></ha-icon-button>
`;
}
@ -243,7 +227,9 @@ export class RoomGlanceCard extends LitElement {
}
ha-icon {
height: auto;
cursor: pointer;
padding: 8px;
color: #a9a9a9;
}
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=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"'`<>=]*|"[^"]*|'[^']*))$/;
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"'`<>=]*|"[^"]*|'[^']*))$/;
/**
* @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 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}}
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}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -39,7 +39,7 @@ class y{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=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}}
*/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}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -53,7 +53,7 @@ class y{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 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);
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);
/**
* @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 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`
(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`
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,16 +173,6 @@ 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;
}
@ -193,23 +183,21 @@ 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 icon="hass:menu"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.onOpenTap}
.disabled="${this.computeOpenDisabled(e,this.entityObj)}"
>
<ha-icon icon="hass:arrow-up"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.onStopTap}
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.onCloseTap}
.disabled="${this.computeClosedDisabled(e,t)}"
>
<ha-icon icon="hass:arrow-down"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
</div>
</hui-generic-entity-row>
`:R`

View File

@ -77,16 +77,6 @@ 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;
}
@ -97,23 +87,21 @@ export class StateCardCustomCover extends LitElement {
<ha-icon-button
icon="hass:menu"
@click=${this.onHalfOpenTap}
>
<ha-icon icon="hass:menu"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.onOpenTap}
.disabled="${this.computeOpenDisabled(stateObj, this.entityObj)}"
>
<ha-icon icon="hass:arrow-up"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.onStopTap}
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.onCloseTap}
.disabled="${this.computeClosedDisabled(stateObj, entityObj)}"
>
<ha-icon icon="hass:arrow-down"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
</div>
</hui-generic-entity-row>
`;

View File

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

View File

@ -1,416 +0,0 @@
# 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

Binary file not shown.

View File

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

View File

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

View File

@ -1,14 +0,0 @@
@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

@ -1,44 +0,0 @@
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

@ -1,33 +0,0 @@
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

@ -1,77 +0,0 @@
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

@ -1,72 +0,0 @@
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')

View File

@ -1,119 +0,0 @@
@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

@ -1,30 +0,0 @@
# 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")

View File

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

View File

@ -1,126 +0,0 @@
# ---------------------------------- 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,12 +3,13 @@
entities:
light.kuche_deckenlampe:
state: true
brightness: 10
brightness: 38
light.esszimmer_deckenlampe_west:
state: true
brightness: 10
brightness: 38
light.esszimmer_deckenlampe_mitte:
state: false
state: true
brightness: 38
light.esszimmer_schrankleuchte:
state: false
light.kuche_links:
@ -91,9 +92,6 @@
- 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,15 +3,16 @@
entities:
light.kuche_deckenlampe:
state: true
brightness: 10
brightness: 38
light.wohnzimmer_deckenlampe:
state: true
brightness: 10
brightness: 38
light.esszimmer_deckenlampe_west:
state: true
brightness: 10
brightness: 38
light.esszimmer_deckenlampe_mitte:
state: false
state: true
brightness: 38
light.esszimmer_schrankleuchte:
state: false
light.kuche_links:
@ -67,7 +68,8 @@
state: true
brightness: 38
light.esszimmer_deckenlampe_mitte:
state: false
state: true
brightness: 38
light.esszimmer_schrankleuchte:
state: false
light.kuche_links:
@ -182,9 +184,6 @@
- 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=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"'`<>=]*|"[^"]*|'[^']*))$/;
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"'`<>=]*|"[^"]*|'[^']*))$/;
/**
* @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 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}}
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}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -39,7 +39,7 @@ class y{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=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}}
*/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}}
/**
* @license
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@ -53,7 +53,7 @@ class y{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 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);
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);
/**
* @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 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`
(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`
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,16 +173,6 @@ 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;
}
@ -193,23 +183,21 @@ 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 icon="hass:menu"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-up"
@click=${this.onOpenTap}
.disabled="${this.computeOpenDisabled(e,this.entityObj)}"
>
<ha-icon icon="hass:arrow-up"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
<ha-icon-button
icon="hass:stop"
@click=${this.onStopTap}
></ha-icon-button>
<ha-icon-button
icon="hass:arrow-down"
@click=${this.onCloseTap}
.disabled="${this.computeClosedDisabled(e,t)}"
>
<ha-icon icon="hass:arrow-down"> </ha-icon>
</ha-icon-button>
></ha-icon-button>
</div>
</hui-generic-entity-row>
`:R`

View File

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