Prepare v1.73.0-beta.9

Version fields and generated bundles move to 1.73.0-beta.9; the #506
changelog entry leaves Unreleased for the beta.9 section; release notes and
STATUS describe the startup-regression fix that unblocks the stable
promotion. No product change beyond #506, already reviewed and merged.

Issue: #506
User-Visible: no
Release: v1.73.0-beta.9
This commit is contained in:
Codex
2026-09-09 14:40:28 +03:00
parent 480180290e
commit a9d0cab2dd
54 changed files with 450 additions and 442 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ SCHEDULED_GRACE_S = 30 * 24 * 3600
FILES_DIR = "houseplan/files"
ASSETS_DIR = "houseplan/assets"
CONF_ADMIN_ONLY = "admin_only"
VERSION = "1.73.0"
VERSION = "1.73.0-beta.9"
DECOR_ASSETS_API_VERSION = 1
SUMMARY_PANEL_API_VERSION = 1
@@ -1,89 +1,89 @@
{
"schema": 1,
"fingerprint": "95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74",
"fingerprint": "cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 298891,
"initialViewGzipBytes": 298895,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-card.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 301193,
"initialPanelGzipBytes": 301198,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2302,
"initialPanelOnlyGzipBytes": 2303,
"lazyFiles": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/de-IBWzSVOj.js",
"houseplan-assets/editor-DKd1NGbT.js",
"houseplan-assets/fr-T10CV6-a.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js",
"houseplan-assets/hp-zigbee-topology-overlay-HyXCDpzQ.js",
"houseplan-assets/iso-scene-render-miMf0jvt.js",
"houseplan-assets/live-interaction-runtime-Dahsj-4y.js",
"houseplan-assets/pdf-export-DpHlViMV.js",
"houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js",
"houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/de-CvSUpiON.js",
"houseplan-assets/editor-BrwueONI.js",
"houseplan-assets/fr-roql5w8C.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js",
"houseplan-assets/hp-zigbee-topology-overlay-D_GlijNW.js",
"houseplan-assets/iso-scene-render-BsICko8p.js",
"houseplan-assets/live-interaction-runtime-DMpHBekQ.js",
"houseplan-assets/pdf-export-CpalHpId.js",
"houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js",
"houseplan-assets/zigbee-topology-runtime-Di92Os4E.js"
],
"lazyGzipBytes": 417329,
"lazyGzipBytes": 417346,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/editor-DKd1NGbT.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/editor-BrwueONI.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js"
],
"lazyEditorGzipBytes": 205633,
"lazyEditorGzipBytes": 205646,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js"
],
"lazyOnboardingGzipBytes": 14148,
"lazyLocaleFiles": [
"houseplan-assets/de-IBWzSVOj.js",
"houseplan-assets/fr-T10CV6-a.js"
"houseplan-assets/de-CvSUpiON.js",
"houseplan-assets/fr-roql5w8C.js"
],
"lazyLocaleGzipBytes": 54843,
"lazyLocaleGzipBytes": 54842,
"lazyIsometricFiles": [
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/iso-scene-render-miMf0jvt.js"
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/iso-scene-render-BsICko8p.js"
],
"lazyIsometricGzipBytes": 13452,
"lazyIsometricGzipBytes": 13459,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js"
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js"
],
"lazyFurnitureArtGzipBytes": 10253,
"lazyFurnitureArtGzipBytes": 10255,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/pdf-export-DpHlViMV.js"
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/pdf-export-CpalHpId.js"
],
"lazyPdfGzipBytes": 120367,
"lazyPdfGzipBytes": 120370,
"files": [
{
"path": "houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"sha256": "a4abe8807d8c404a7ce9f65b0a72ca3d8f8d4d5bf38fa8220915818f9238c0db",
"path": "houseplan-assets/backdrop-pick-GaTZtcvi.js",
"sha256": "b11e53d153ed84c18ee81a39da3e38653d059c67cdaaa0e67d72c0f9d2ce23a5",
"rawBytes": 21134,
"gzipBytes": 7144,
"gzipBytes": 7146,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-IBWzSVOj.js",
"sha256": "cf031fb380b4b056c116e14a8cb26729ae4d0b275991b07989917f884f8841ff",
"path": "houseplan-assets/de-CvSUpiON.js",
"sha256": "4362574ee215b60026c14cc019713a4eb359ed4f57abdd623c23626e31e2395b",
"rawBytes": 91441,
"gzipBytes": 27705,
"isEntry": false,
@@ -91,219 +91,219 @@
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-DKd1NGbT.js",
"sha256": "e62e388db3b39eaa5f0e8f9b9676b7a6e30c453f84d22d530740f9be093512d1",
"path": "houseplan-assets/editor-BrwueONI.js",
"sha256": "d1508746754ca9ef9aba46d0b265f8a98f656ebe5c35d59a3844132a402d5b49",
"rawBytes": 3837,
"gzipBytes": 1585,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-T10CV6-a.js",
"sha256": "b602e1137a8395f963be744ed43d2054e472093502f687e40e6bd3e7a25a8794",
"path": "houseplan-assets/fr-roql5w8C.js",
"sha256": "46e00ca8e1e9e209734e5801744e72bd4cf4596a837a9610eb7a9506c2c15b00",
"rawBytes": 93719,
"gzipBytes": 27138,
"gzipBytes": 27137,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"sha256": "1e26cad8d04b459f4b1140e705a02a1d380b8c49a84f92b8ea2ce3e684544800",
"path": "houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"sha256": "46297effd6632aca503cc3dd0413635af991b18ea52512504aa13940a5217e1d",
"rawBytes": 33655,
"gzipBytes": 10253,
"gzipBytes": 10255,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/guard-7S6iRB0N.js",
"sha256": "67f95421a21516a66157d8fdc0129c2d1280cee31a3621a81039c88835d1c0f8",
"path": "houseplan-assets/guard-DC2Nxmxk.js",
"sha256": "5126432ecaaa968c53afc184b6aa61855dbb3ee9e30c340caf27acc5301ef082",
"rawBytes": 518,
"gzipBytes": 368,
"gzipBytes": 369,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-Bj6mVEeM.js",
"sha256": "dea85ab6dfeebcb263bd672270041e34473d40b9db24e69259e55d42e5ff44d4",
"rawBytes": 1076387,
"gzipBytes": 298088,
"path": "houseplan-assets/houseplan-card-BhiF3yc_.js",
"sha256": "7729d83acbb87eff1879f41fdf6a5733448d6815fdf8433345d96793b82d9ea2",
"rawBytes": 1076394,
"gzipBytes": 298093,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-IBWzSVOj.js",
"houseplan-assets/editor-DKd1NGbT.js",
"houseplan-assets/fr-T10CV6-a.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js",
"houseplan-assets/hp-zigbee-topology-overlay-HyXCDpzQ.js",
"houseplan-assets/iso-scene-render-miMf0jvt.js",
"houseplan-assets/live-interaction-runtime-Dahsj-4y.js",
"houseplan-assets/pdf-export-DpHlViMV.js",
"houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js"
"houseplan-assets/de-CvSUpiON.js",
"houseplan-assets/editor-BrwueONI.js",
"houseplan-assets/fr-roql5w8C.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js",
"houseplan-assets/hp-zigbee-topology-overlay-D_GlijNW.js",
"houseplan-assets/iso-scene-render-BsICko8p.js",
"houseplan-assets/live-interaction-runtime-DMpHBekQ.js",
"houseplan-assets/pdf-export-CpalHpId.js",
"houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"sha256": "bc5163222924f68e6279b412b16a53f28a76b5b4d80d4a03e7fe28c4cce77a39",
"rawBytes": 671972,
"gzipBytes": 178859,
"path": "houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"sha256": "7d34386b59eee4cbd5c3945b646668a3c05b67bacb0f39b069b73f0584df0931",
"rawBytes": 671979,
"gzipBytes": 178867,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js"
"houseplan-assets/zigbee-topology-runtime-Di92Os4E.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js",
"sha256": "31ea22267928606938b34c47f1ac8ecc2041048bc8c045a411d7108d353de849",
"path": "houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js",
"sha256": "095e9898c90010df9a79a5ae63a77549eaf81ced3651f49ac5917a4d3174c091",
"rawBytes": 28237,
"gzipBytes": 7004,
"gzipBytes": 7002,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-HyXCDpzQ.js",
"sha256": "0e18deb183cb473c2a96fb689c91c68a3729b8ad56fb8907b01c30810585dbec",
"path": "houseplan-assets/hp-zigbee-topology-overlay-D_GlijNW.js",
"sha256": "4f37429eda63536403db620e5e401e4df3aa9218bc9d2eee13b83764fb6d32f5",
"rawBytes": 11034,
"gzipBytes": 3731,
"gzipBytes": 3729,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js",
"houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js",
"houseplan-assets/zigbee-topology-runtime-Di92Os4E.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-miMf0jvt.js",
"sha256": "00fd101b4e5469f6d289b77eab3056bedf98082520af9139a1afff5823fcb025",
"path": "houseplan-assets/iso-scene-render-BsICko8p.js",
"sha256": "5910d75e39aae9b191077f1d2f9c563e74e631a3cd6f5223b6401c9cc49d64ce",
"rawBytes": 38562,
"gzipBytes": 13084,
"gzipBytes": 13090,
"isEntry": false,
"imports": [
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-Dahsj-4y.js",
"sha256": "631b277aae71d9977fabb3f330c4a9cdf38e47ec51259584540b747d9c9444df",
"path": "houseplan-assets/live-interaction-runtime-DMpHBekQ.js",
"sha256": "4790bb198748522de5573bcd102c5e3b0be0ec16d7a48050928fabfdc7051b3f",
"rawBytes": 5196,
"gzipBytes": 2124,
"gzipBytes": 2125,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-DpHlViMV.js",
"sha256": "48b07b9ecfbbf2c1a8de53edce8bc32b1217e2c2f20eb5ceb24af75999870d8a",
"path": "houseplan-assets/pdf-export-CpalHpId.js",
"sha256": "309b2ff4f9488afea5d26dff1d11d705eee756f740f51e63dd73a3352d281f01",
"rawBytes": 237254,
"gzipBytes": 110114,
"gzipBytes": 110115,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-DOpNDtK_.js",
"sha256": "4ed28cc81b7f0ccac46e0fb6ac37856ddbdf7813040585447089bf4a0a61805f",
"path": "houseplan-assets/summary-panel-editor-Bpx_F2tX.js",
"sha256": "c07a0c8512d4a5c3702dd76f983b92b3bf350a7d4e98e4901452377aa390be36",
"rawBytes": 14811,
"gzipBytes": 3390,
"gzipBytes": 3388,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-DXF83oAy.js",
"sha256": "51953d004b76561a842f67b9455985cceac2663c52499d1e1acc3a3cdfdaded9",
"path": "houseplan-assets/summary-panel-metrics-BZEc18_r.js",
"sha256": "d03fffc5bb6503c690146dfc639b83aaea0382bb07884dc072851d045c15767b",
"rawBytes": 2195,
"gzipBytes": 1121,
"gzipBytes": 1120,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js",
"sha256": "7598bcc5d26d8d2f9a15cc154c32a0b836ba0ac53b7b5f9b65f3c2c2bc0287d1",
"path": "houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js",
"sha256": "2801a9c815d2bc37d078c8bc6856121f948821d25f1274cf2324dd4366d93f2c",
"rawBytes": 69530,
"gzipBytes": 19034,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-DOpNDtK_.js",
"houseplan-assets/summary-panel-metrics-DXF83oAy.js"
"houseplan-assets/summary-panel-editor-Bpx_F2tX.js",
"houseplan-assets/summary-panel-metrics-BZEc18_r.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-DOkBU6gZ.js",
"sha256": "0176688590ae76a8766ee735de892e37f29211a042c27f5a2992eda0cc8ef8d9",
"path": "houseplan-assets/zigbee-topology-CFD7lFb7.js",
"sha256": "dd6aabb733d287a0db78522ce73c145e0dd96f3ea6f46c234616cc9e427c09a7",
"rawBytes": 18961,
"gzipBytes": 7424,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js",
"sha256": "6b43a567d3686249519d43ef6f04bb9596529d99d04f745944c0e561c0e3034e",
"path": "houseplan-assets/zigbee-topology-runtime-Di92Os4E.js",
"sha256": "64275e9dbed8f09f142acd9c22c6ced5ce535a467a0fc5d53a2ed1f22b01c617",
"rawBytes": 3941,
"gzipBytes": 1762,
"gzipBytes": 1763,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "b8095427f52e7413e84d3202953d15765fbd43d4536226beff01ba7ff692ae2e",
"sha256": "e7f1d906b14ac153106e678c9a83e088db4ef318b2b87ec4fedd81e76cadb609",
"rawBytes": 1205,
"gzipBytes": 803,
"gzipBytes": 802,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "f0a1709a58213029c08e73da2ed81b217827c8f5cdbf96e082385cfb608eabcc",
"sha256": "c7d7a68d78b30716413008e57ddb798a5fd5aff49c8d6bdd24d39cae8019e78b",
"rawBytes": 6124,
"gzipBytes": 2302,
"gzipBytes": 2303,
"isEntry": true,
"imports": [
"houseplan-card.js"
@@ -1,14 +1,14 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{t as e,l as o,x as t,e4 as s,A as a,e5 as i,e6 as l,e7 as n,dV as r,b as c}from"./houseplan-card-Bj6mVEeM.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{t as e,l as o,x as t,e4 as s,A as a,e5 as i,e6 as l,e7 as n,dV as r,b as c}from"./houseplan-card-BhiF3yc_.js";class f extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,f={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},h=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
.hass=${this.hass}
.data=${this._formData}
.schema=${e}
.computeLabel=${e=>h[e.name]||e.name}
.computeLabel=${e=>f[e.name]||e.name}
@value-changed=${this._valueChanged}
></ha-form>`;return c`
${d(f.slice(0,3))}
${d(h.slice(0,3))}
${_?c`<div class="default-floor-error" role="alert"
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
${t(s,"editor.default_floor_missing",{id:_})}
</div>`:a}
${d(f.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
${d(h.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}f.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",f);
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{dT as r,dU as e,dV as t}from"./houseplan-card-Bj6mVEeM.js";const s={},a=r(class extends e{constructor(){super(...arguments),this.ot=s}render(r,e){return e()}update(r,[e,s]){if(Array.isArray(e)){if(Array.isArray(this.ot)&&this.ot.length===e.length&&e.every((r,e)=>r===this.ot[e]))return t}else if(this.ot===e)return t;return this.ot=Array.isArray(e)?Array.from(e):e,this.render(e,s)}});export{a as i};
@@ -0,0 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{dT as r,dU as t,dV as e}from"./houseplan-card-BhiF3yc_.js";const s={},a=r(class extends t{constructor(){super(...arguments),this.ot=s}render(r,t){return t()}update(r,[t,s]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return e}else if(this.ot===t)return e;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,s)}});export{a as i};
@@ -1,4 +1,4 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{b as a,A as e}from"./houseplan-card-Bj6mVEeM.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-2X-IAkWu.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{b as a,A as e}from"./houseplan-card-BhiF3yc_.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-DDqq2E4C.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
<span class="summary-switch-caption"><strong>${b("summary.show_local")}</strong>
<small id="summary-local-show-hint">${b("summary.show_local_hint")}</small></span>
<input id="summary-local-show" data-summary-local-show type="checkbox"
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{az as e,ea as t,eb as n,bs as i,ec as r,P as a,a5 as s,M as o,aq as c,N as l,bq as d,bp as u,ed as f}from"./houseplan-card-Bj6mVEeM.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const a=e.binding.slice(0,r),s=e.binding.slice(r+1),o="device"===a?t.registry.devices?.[s]:null,c="entity"===a?t.registry.entities?.[s]:null,l="device"===a?s:c?.device_id,d="device"===a?o?.area_id:c?.area_id||l&&t.registry.devices?.[l]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||d||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;l&&t.registry.devices?.[l]&&t.spaceIds.has(f)&&(!i.devices.has(l)||"entity"===a&&i.liveEntities.has(s))&&n.add(l)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=a(e);if(!t)continue;const n=s(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,l)||t;g=m(g,d(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const a=t(e,i);return a?n(a,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{az as e,ea as t,eb as n,bs as i,ec as r,P as s,a5 as a,M as o,aq as c,N as d,bq as l,bp as u,ed as f}from"./houseplan-card-BhiF3yc_.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const s=e.binding.slice(0,r),a=e.binding.slice(r+1),o="device"===s?t.registry.devices?.[a]:null,c="entity"===s?t.registry.entities?.[a]:null,d="device"===s?a:c?.device_id,l="device"===s?o?.area_id:c?.area_id||d&&t.registry.devices?.[d]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||l||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;d&&t.registry.devices?.[d]&&t.spaceIds.has(f)&&(!i.devices.has(d)||"entity"===s&&i.liveEntities.has(a))&&n.add(d)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=s(e);if(!t)continue;const n=a(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,d)||t;g=m(g,l(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const s=t(e,i);return s?n(s,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{n as t,b as n}from"./zigbee-topology-DOkBU6gZ.js";import{F as e}from"./houseplan-card-Bj6mVEeM.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{n as t,b as n}from"./zigbee-topology-CFD7lFb7.js";import{F as e}from"./houseplan-card-BhiF3yc_.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";try{await import("./houseplan-assets/houseplan-card-Bj6mVEeM.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";try{await import("./houseplan-assets/houseplan-card-BhiF3yc_.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -20,5 +20,5 @@
"issue_tracker": "https://github.com/Matysh/houseplan-card/issues",
"requirements": [],
"single_config_entry": true,
"version": "1.73.0"
"version": "1.73.0-beta.9"
}
+138 -138
View File
@@ -1,89 +1,89 @@
{
"schema": 1,
"fingerprint": "95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74",
"fingerprint": "cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 298891,
"initialViewGzipBytes": 298895,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-card.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 301193,
"initialPanelGzipBytes": 301198,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2302,
"initialPanelOnlyGzipBytes": 2303,
"lazyFiles": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/de-IBWzSVOj.js",
"houseplan-assets/editor-DKd1NGbT.js",
"houseplan-assets/fr-T10CV6-a.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js",
"houseplan-assets/hp-zigbee-topology-overlay-HyXCDpzQ.js",
"houseplan-assets/iso-scene-render-miMf0jvt.js",
"houseplan-assets/live-interaction-runtime-Dahsj-4y.js",
"houseplan-assets/pdf-export-DpHlViMV.js",
"houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js",
"houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/de-CvSUpiON.js",
"houseplan-assets/editor-BrwueONI.js",
"houseplan-assets/fr-roql5w8C.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js",
"houseplan-assets/hp-zigbee-topology-overlay-D_GlijNW.js",
"houseplan-assets/iso-scene-render-BsICko8p.js",
"houseplan-assets/live-interaction-runtime-DMpHBekQ.js",
"houseplan-assets/pdf-export-CpalHpId.js",
"houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js",
"houseplan-assets/zigbee-topology-runtime-Di92Os4E.js"
],
"lazyGzipBytes": 417329,
"lazyGzipBytes": 417346,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/editor-DKd1NGbT.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/editor-BrwueONI.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js"
],
"lazyEditorGzipBytes": 205633,
"lazyEditorGzipBytes": 205646,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js"
],
"lazyOnboardingGzipBytes": 14148,
"lazyLocaleFiles": [
"houseplan-assets/de-IBWzSVOj.js",
"houseplan-assets/fr-T10CV6-a.js"
"houseplan-assets/de-CvSUpiON.js",
"houseplan-assets/fr-roql5w8C.js"
],
"lazyLocaleGzipBytes": 54843,
"lazyLocaleGzipBytes": 54842,
"lazyIsometricFiles": [
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/iso-scene-render-miMf0jvt.js"
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/iso-scene-render-BsICko8p.js"
],
"lazyIsometricGzipBytes": 13452,
"lazyIsometricGzipBytes": 13459,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js"
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js"
],
"lazyFurnitureArtGzipBytes": 10253,
"lazyFurnitureArtGzipBytes": 10255,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/pdf-export-DpHlViMV.js"
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/pdf-export-CpalHpId.js"
],
"lazyPdfGzipBytes": 120367,
"lazyPdfGzipBytes": 120370,
"files": [
{
"path": "houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"sha256": "a4abe8807d8c404a7ce9f65b0a72ca3d8f8d4d5bf38fa8220915818f9238c0db",
"path": "houseplan-assets/backdrop-pick-GaTZtcvi.js",
"sha256": "b11e53d153ed84c18ee81a39da3e38653d059c67cdaaa0e67d72c0f9d2ce23a5",
"rawBytes": 21134,
"gzipBytes": 7144,
"gzipBytes": 7146,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-IBWzSVOj.js",
"sha256": "cf031fb380b4b056c116e14a8cb26729ae4d0b275991b07989917f884f8841ff",
"path": "houseplan-assets/de-CvSUpiON.js",
"sha256": "4362574ee215b60026c14cc019713a4eb359ed4f57abdd623c23626e31e2395b",
"rawBytes": 91441,
"gzipBytes": 27705,
"isEntry": false,
@@ -91,219 +91,219 @@
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-DKd1NGbT.js",
"sha256": "e62e388db3b39eaa5f0e8f9b9676b7a6e30c453f84d22d530740f9be093512d1",
"path": "houseplan-assets/editor-BrwueONI.js",
"sha256": "d1508746754ca9ef9aba46d0b265f8a98f656ebe5c35d59a3844132a402d5b49",
"rawBytes": 3837,
"gzipBytes": 1585,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-T10CV6-a.js",
"sha256": "b602e1137a8395f963be744ed43d2054e472093502f687e40e6bd3e7a25a8794",
"path": "houseplan-assets/fr-roql5w8C.js",
"sha256": "46e00ca8e1e9e209734e5801744e72bd4cf4596a837a9610eb7a9506c2c15b00",
"rawBytes": 93719,
"gzipBytes": 27138,
"gzipBytes": 27137,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"sha256": "1e26cad8d04b459f4b1140e705a02a1d380b8c49a84f92b8ea2ce3e684544800",
"path": "houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"sha256": "46297effd6632aca503cc3dd0413635af991b18ea52512504aa13940a5217e1d",
"rawBytes": 33655,
"gzipBytes": 10253,
"gzipBytes": 10255,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/guard-7S6iRB0N.js",
"sha256": "67f95421a21516a66157d8fdc0129c2d1280cee31a3621a81039c88835d1c0f8",
"path": "houseplan-assets/guard-DC2Nxmxk.js",
"sha256": "5126432ecaaa968c53afc184b6aa61855dbb3ee9e30c340caf27acc5301ef082",
"rawBytes": 518,
"gzipBytes": 368,
"gzipBytes": 369,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-Bj6mVEeM.js",
"sha256": "dea85ab6dfeebcb263bd672270041e34473d40b9db24e69259e55d42e5ff44d4",
"rawBytes": 1076387,
"gzipBytes": 298088,
"path": "houseplan-assets/houseplan-card-BhiF3yc_.js",
"sha256": "7729d83acbb87eff1879f41fdf6a5733448d6815fdf8433345d96793b82d9ea2",
"rawBytes": 1076394,
"gzipBytes": 298093,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-IBWzSVOj.js",
"houseplan-assets/editor-DKd1NGbT.js",
"houseplan-assets/fr-T10CV6-a.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js",
"houseplan-assets/hp-zigbee-topology-overlay-HyXCDpzQ.js",
"houseplan-assets/iso-scene-render-miMf0jvt.js",
"houseplan-assets/live-interaction-runtime-Dahsj-4y.js",
"houseplan-assets/pdf-export-DpHlViMV.js",
"houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js"
"houseplan-assets/de-CvSUpiON.js",
"houseplan-assets/editor-BrwueONI.js",
"houseplan-assets/fr-roql5w8C.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js",
"houseplan-assets/hp-zigbee-topology-overlay-D_GlijNW.js",
"houseplan-assets/iso-scene-render-BsICko8p.js",
"houseplan-assets/live-interaction-runtime-DMpHBekQ.js",
"houseplan-assets/pdf-export-CpalHpId.js",
"houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-DJMGYUqW.js",
"sha256": "bc5163222924f68e6279b412b16a53f28a76b5b4d80d4a03e7fe28c4cce77a39",
"rawBytes": 671972,
"gzipBytes": 178859,
"path": "houseplan-assets/houseplan-editor-runtime-BnAu7DAj.js",
"sha256": "7d34386b59eee4cbd5c3945b646668a3c05b67bacb0f39b069b73f0584df0931",
"rawBytes": 671979,
"gzipBytes": 178867,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js"
"houseplan-assets/zigbee-topology-runtime-Di92Os4E.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-Cdd3N5hN.js",
"sha256": "31ea22267928606938b34c47f1ac8ecc2041048bc8c045a411d7108d353de849",
"path": "houseplan-assets/houseplan-onboarding-runtime-DrmrPQnh.js",
"sha256": "095e9898c90010df9a79a5ae63a77549eaf81ced3651f49ac5917a4d3174c091",
"rawBytes": 28237,
"gzipBytes": 7004,
"gzipBytes": 7002,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-CXOE1u8Z.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/backdrop-pick-GaTZtcvi.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-HyXCDpzQ.js",
"sha256": "0e18deb183cb473c2a96fb689c91c68a3729b8ad56fb8907b01c30810585dbec",
"path": "houseplan-assets/hp-zigbee-topology-overlay-D_GlijNW.js",
"sha256": "4f37429eda63536403db620e5e401e4df3aa9218bc9d2eee13b83764fb6d32f5",
"rawBytes": 11034,
"gzipBytes": 3731,
"gzipBytes": 3729,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js",
"houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js",
"houseplan-assets/zigbee-topology-runtime-Di92Os4E.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-miMf0jvt.js",
"sha256": "00fd101b4e5469f6d289b77eab3056bedf98082520af9139a1afff5823fcb025",
"path": "houseplan-assets/iso-scene-render-BsICko8p.js",
"sha256": "5910d75e39aae9b191077f1d2f9c563e74e631a3cd6f5223b6401c9cc49d64ce",
"rawBytes": 38562,
"gzipBytes": 13084,
"gzipBytes": 13090,
"isEntry": false,
"imports": [
"houseplan-assets/guard-7S6iRB0N.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/guard-DC2Nxmxk.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-Dahsj-4y.js",
"sha256": "631b277aae71d9977fabb3f330c4a9cdf38e47ec51259584540b747d9c9444df",
"path": "houseplan-assets/live-interaction-runtime-DMpHBekQ.js",
"sha256": "4790bb198748522de5573bcd102c5e3b0be0ec16d7a48050928fabfdc7051b3f",
"rawBytes": 5196,
"gzipBytes": 2124,
"gzipBytes": 2125,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-DpHlViMV.js",
"sha256": "48b07b9ecfbbf2c1a8de53edce8bc32b1217e2c2f20eb5ceb24af75999870d8a",
"path": "houseplan-assets/pdf-export-CpalHpId.js",
"sha256": "309b2ff4f9488afea5d26dff1d11d705eee756f740f51e63dd73a3352d281f01",
"rawBytes": 237254,
"gzipBytes": 110114,
"gzipBytes": 110115,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-C-yj8ZTi.js",
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/furniture-plan-art.generated-DcUsS_xr.js",
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-DOpNDtK_.js",
"sha256": "4ed28cc81b7f0ccac46e0fb6ac37856ddbdf7813040585447089bf4a0a61805f",
"path": "houseplan-assets/summary-panel-editor-Bpx_F2tX.js",
"sha256": "c07a0c8512d4a5c3702dd76f983b92b3bf350a7d4e98e4901452377aa390be36",
"rawBytes": 14811,
"gzipBytes": 3390,
"gzipBytes": 3388,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-DXF83oAy.js",
"sha256": "51953d004b76561a842f67b9455985cceac2663c52499d1e1acc3a3cdfdaded9",
"path": "houseplan-assets/summary-panel-metrics-BZEc18_r.js",
"sha256": "d03fffc5bb6503c690146dfc639b83aaea0382bb07884dc072851d045c15767b",
"rawBytes": 2195,
"gzipBytes": 1121,
"gzipBytes": 1120,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-2X-IAkWu.js",
"sha256": "7598bcc5d26d8d2f9a15cc154c32a0b836ba0ac53b7b5f9b65f3c2c2bc0287d1",
"path": "houseplan-assets/summary-panel-runtime-loaded-DDqq2E4C.js",
"sha256": "2801a9c815d2bc37d078c8bc6856121f948821d25f1274cf2324dd4366d93f2c",
"rawBytes": 69530,
"gzipBytes": 19034,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-DOpNDtK_.js",
"houseplan-assets/summary-panel-metrics-DXF83oAy.js"
"houseplan-assets/summary-panel-editor-Bpx_F2tX.js",
"houseplan-assets/summary-panel-metrics-BZEc18_r.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-DOkBU6gZ.js",
"sha256": "0176688590ae76a8766ee735de892e37f29211a042c27f5a2992eda0cc8ef8d9",
"path": "houseplan-assets/zigbee-topology-CFD7lFb7.js",
"sha256": "dd6aabb733d287a0db78522ce73c145e0dd96f3ea6f46c234616cc9e427c09a7",
"rawBytes": 18961,
"gzipBytes": 7424,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-CiDfY5zA.js",
"sha256": "6b43a567d3686249519d43ef6f04bb9596529d99d04f745944c0e561c0e3034e",
"path": "houseplan-assets/zigbee-topology-runtime-Di92Os4E.js",
"sha256": "64275e9dbed8f09f142acd9c22c6ced5ce535a467a0fc5d53a2ed1f22b01c617",
"rawBytes": 3941,
"gzipBytes": 1762,
"gzipBytes": 1763,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js",
"houseplan-assets/zigbee-topology-DOkBU6gZ.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js",
"houseplan-assets/zigbee-topology-CFD7lFb7.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "b8095427f52e7413e84d3202953d15765fbd43d4536226beff01ba7ff692ae2e",
"sha256": "e7f1d906b14ac153106e678c9a83e088db4ef318b2b87ec4fedd81e76cadb609",
"rawBytes": 1205,
"gzipBytes": 803,
"gzipBytes": 802,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-Bj6mVEeM.js"
"houseplan-assets/houseplan-card-BhiF3yc_.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "f0a1709a58213029c08e73da2ed81b217827c8f5cdbf96e082385cfb608eabcc",
"sha256": "c7d7a68d78b30716413008e57ddb798a5fd5aff49c8d6bdd24d39cae8019e78b",
"rawBytes": 6124,
"gzipBytes": 2302,
"gzipBytes": 2303,
"isEntry": true,
"imports": [
"houseplan-card.js"
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,14 +1,14 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{t as e,l as o,x as t,e4 as s,A as a,e5 as i,e6 as l,e7 as n,dV as r,b as c}from"./houseplan-card-Bj6mVEeM.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{t as e,l as o,x as t,e4 as s,A as a,e5 as i,e6 as l,e7 as n,dV as r,b as c}from"./houseplan-card-BhiF3yc_.js";class f extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,f={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},h=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
.hass=${this.hass}
.data=${this._formData}
.schema=${e}
.computeLabel=${e=>h[e.name]||e.name}
.computeLabel=${e=>f[e.name]||e.name}
@value-changed=${this._valueChanged}
></ha-form>`;return c`
${d(f.slice(0,3))}
${d(h.slice(0,3))}
${_?c`<div class="default-floor-error" role="alert"
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
${t(s,"editor.default_floor_missing",{id:_})}
</div>`:a}
${d(f.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
${d(h.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}f.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",f);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{dT as r,dU as e,dV as t}from"./houseplan-card-Bj6mVEeM.js";const s={},a=r(class extends e{constructor(){super(...arguments),this.ot=s}render(r,e){return e()}update(r,[e,s]){if(Array.isArray(e)){if(Array.isArray(this.ot)&&this.ot.length===e.length&&e.every((r,e)=>r===this.ot[e]))return t}else if(this.ot===e)return t;return this.ot=Array.isArray(e)?Array.from(e):e,this.render(e,s)}});export{a as i};
+1
View File
@@ -0,0 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{dT as r,dU as t,dV as e}from"./houseplan-card-BhiF3yc_.js";const s={},a=r(class extends t{constructor(){super(...arguments),this.ot=s}render(r,t){return t()}update(r,[t,s]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return e}else if(this.ot===t)return e;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,s)}});export{a as i};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{b as a,A as e}from"./houseplan-card-Bj6mVEeM.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-2X-IAkWu.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{b as a,A as e}from"./houseplan-card-BhiF3yc_.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-DDqq2E4C.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
<span class="summary-switch-caption"><strong>${b("summary.show_local")}</strong>
<small id="summary-local-show-hint">${b("summary.show_local_hint")}</small></span>
<input id="summary-local-show" data-summary-local-show type="checkbox"
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{az as e,ea as t,eb as n,bs as i,ec as r,P as a,a5 as s,M as o,aq as c,N as l,bq as d,bp as u,ed as f}from"./houseplan-card-Bj6mVEeM.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const a=e.binding.slice(0,r),s=e.binding.slice(r+1),o="device"===a?t.registry.devices?.[s]:null,c="entity"===a?t.registry.entities?.[s]:null,l="device"===a?s:c?.device_id,d="device"===a?o?.area_id:c?.area_id||l&&t.registry.devices?.[l]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||d||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;l&&t.registry.devices?.[l]&&t.spaceIds.has(f)&&(!i.devices.has(l)||"entity"===a&&i.liveEntities.has(s))&&n.add(l)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=a(e);if(!t)continue;const n=s(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,l)||t;g=m(g,d(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const a=t(e,i);return a?n(a,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{az as e,ea as t,eb as n,bs as i,ec as r,P as s,a5 as a,M as o,aq as c,N as d,bq as l,bp as u,ed as f}from"./houseplan-card-BhiF3yc_.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const s=e.binding.slice(0,r),a=e.binding.slice(r+1),o="device"===s?t.registry.devices?.[a]:null,c="entity"===s?t.registry.entities?.[a]:null,d="device"===s?a:c?.device_id,l="device"===s?o?.area_id:c?.area_id||d&&t.registry.devices?.[d]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||l||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;d&&t.registry.devices?.[d]&&t.spaceIds.has(f)&&(!i.devices.has(d)||"entity"===s&&i.liveEntities.has(a))&&n.add(d)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=s(e);if(!t)continue;const n=a(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,d)||t;g=m(g,l(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const s=t(e,i);return s?n(s,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";import{n as t,b as n}from"./zigbee-topology-DOkBU6gZ.js";import{F as e}from"./houseplan-card-Bj6mVEeM.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";import{n as t,b as n}from"./zigbee-topology-CFD7lFb7.js";import{F as e}from"./houseplan-card-BhiF3yc_.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
+1 -1
View File
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="95d32c120d1ca37feb5a930e4a20e5ec2c460f82a52d88a41fe0d143f697ae74";try{await import("./houseplan-assets/houseplan-card-Bj6mVEeM.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="cf22ee0cf6623fd1cb58b51c9d2e05d46552d4b8c9d6b3ffefa919555c03d289";try{await import("./houseplan-assets/houseplan-card-BhiF3yc_.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
+1 -1
View File
File diff suppressed because one or more lines are too long
+8 -6
View File
@@ -2,12 +2,6 @@
## Unreleased
- Reopening the plan on a page that has already loaded the summary panel no
longer triggers a late header re-measurement and an extra round of heavy
redraws right after the first frame: the panel's controls are part of the
first frame, so the first device/glow update lands on a stable stage
([#506](https://github.com/Matysh/houseplan-card/issues/506)).
## v1.73.0 — 2026-09-09
- House Plan opens from its own page in the Home Assistant sidebar, without
@@ -54,6 +48,14 @@
card-mod rules, without depending on private CSS classes
([#489](https://github.com/Matysh/houseplan-card/issues/489)).
## v1.73.0-beta.9 — 2026-09-09
- Reopening the plan on a page that has already loaded the summary panel no
longer triggers a late header re-measurement and an extra round of heavy
redraws right after the first frame: the panel's controls are part of the
first frame, so the first device/glow update lands on a stable stage
([#506](https://github.com/Matysh/houseplan-card/issues/506)).
## v1.73.0-beta.8 — 2026-09-09
- Attachment uploads no longer count their own in-flight file twice against
+8 -6
View File
@@ -8,12 +8,6 @@
## Не выпущено
- Повторное открытие плана на странице, где сводная панель уже загружена,
больше не вызывает позднего перемера шапки и лишнего круга тяжёлых
перерисовок сразу после первого кадра: элементы панели входят в первый кадр,
и первое обновление устройств/свечения ложится на стабильную сцену
([#506](https://github.com/Matysh/houseplan-card/issues/506)).
## v1.73.0 — 2026-09-09
- House Plan открывается с собственной страницы в боковом меню Home Assistant;
@@ -61,6 +55,14 @@
card-mod, без привязки к приватным CSS-классам
([#489](https://github.com/Matysh/houseplan-card/issues/489)).
## v1.73.0-beta.9 — 2026-09-09
- Повторное открытие плана на странице, где сводная панель уже загружена,
больше не вызывает позднего перемера шапки и лишнего круга тяжёлых
перерисовок сразу после первого кадра: элементы панели входят в первый кадр,
и первое обновление устройств/свечения ложится на стабильную сцену
([#506](https://github.com/Matysh/houseplan-card/issues/506)).
## v1.73.0-beta.8 — 2026-09-09
- Загрузка вложений больше не считает собственный ещё не сохранённый файл
+15 -11
View File
@@ -1,20 +1,24 @@
<!-- release: v1.73.0 -->
<!-- release: v1.73.0-beta.9 -->
## Основное
- House Plan теперь открывается отдельной страницей из бокового меню Home Assistant; новая настраиваемая сводная панель показывает состояния и итоги по дому ([#486](https://github.com/Matysh/houseplan-card/issues/486), [#437](https://github.com/Matysh/houseplan-card/issues/437)).
- План можно выгрузить в PDF A4; отрезки цепочек стен сохраняются сразу, а сохранение и восстановление планов стали надёжнее ([#53](https://github.com/Matysh/houseplan-card/issues/53), [#478](https://github.com/Matysh/houseplan-card/issues/478), [#491](https://github.com/Matysh/houseplan-card/issues/491)).
- Радары присутствия получили настройку источников, калибровку и живое отображение на плане — первый этап поддержки; границы комфортной температуры настраиваются отдельно для каждой комнаты ([#485](https://github.com/Matysh/houseplan-card/issues/485), [#487](https://github.com/Matysh/houseplan-card/issues/487)).
- План открывается без лишних тяжёлых перерисовок сразу после первого кадра:
когда сводная панель уже загружена на странице, её элементы входят в
первый кадр, и первое обновление устройств и свечения ложится на
стабильную сцену. Это снимает регресс времени запуска, найденный при
подготовке стабильной v1.73.0
([#506](https://github.com/Matysh/houseplan-card/issues/506)).
- Мелкие исправления и улучшения.
## Highlights
- Open House Plan as a standalone page from the Home Assistant sidebar; a new configurable summary panel shows household states and totals ([#486](https://github.com/Matysh/houseplan-card/issues/486), [#437](https://github.com/Matysh/houseplan-card/issues/437)).
- Export your plan to an A4 PDF; wall-chain segments save immediately, and plan saving and recovery are more reliable ([#53](https://github.com/Matysh/houseplan-card/issues/53), [#478](https://github.com/Matysh/houseplan-card/issues/478), [#491](https://github.com/Matysh/houseplan-card/issues/491)).
- Presence radars gain source setup, calibration and live on-plan observations in this first stage of support; each room can have its own comfort-temperature limits ([#485](https://github.com/Matysh/houseplan-card/issues/485), [#487](https://github.com/Matysh/houseplan-card/issues/487)).
- The plan opens without an extra round of heavy redraws right after the first
frame: when the summary panel is already loaded on the page, its controls
are part of the first frame, so the first device/glow update lands on a
stable stage. This removes the startup-time regression found while
preparing stable v1.73.0
([#506](https://github.com/Matysh/houseplan-card/issues/506)).
- Small fixes and improvements.
Сообщество / Community: [Telegram](https://t.me/ha_houseplan)
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.73.0/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.73.0/docs/CHANGELOG.md)
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.73.0-beta.9/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.73.0-beta.9/docs/CHANGELOG.md)
+2 -2
View File
@@ -21,8 +21,8 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
| Item | State |
|---|---|
| Version | **v1.73.0** everywhere (manifest, const.py, package.json, CARD_VERSION) |
| Current local cycle | Stable promotion of the eight published v1.73.0 betas, through v1.73.0-beta.8. Highlights: the native HA sidebar page (#486), configurable designer-aligned summary panel (#437/#505), PDF export (#53), presence-radar Stage 1 (#485), room comfort limits (#487), wall-chain simplification (#478/#477) and reliability improvements. No new product behaviour is added during promotion. The main-only workflow mirrors were merged without changing the beta.8 tree. Publication requires the complete local gate, reviewed golden frames where version text changes, and green Validate plus Full Performance on the exact release SHA; stable assets also require the compositor-continuity check. |
| Version | **v1.73.0-beta.9** everywhere (manifest, const.py, package.json, CARD_VERSION) |
| Current local cycle | v1.73.0-beta.9 fixes the startup regression that blocked the stable promotion of v1.73.0: a card instance on a page whose summary chunk is already loaded now owns its summary runtime before the first render, so the first header measurement is complete and no late `stage-resize` continuity cascade lands on the first HA tick (#506). Code factory is cached per page, runtime state stays per instance; the summary chunk remains lazy. Stable v1.73.0 follows only after green Validate and Full Performance (all nine profiles against the v1.72.0 product) on the exact release SHA; `main` remains at v1.72.0. |
| Hidden Alpha Stage | #89 Stage 1 ships in v1.63.0-beta.1, #122 Stage 2 in v1.64.0 and #160 Stage 3 in v1.73.0-beta.1. The same hidden `iso` view uses the fixed 4° camera, raised/tethered device-room-lock overlays, deeper openings and bounded theme materials; #471 removes the overlay plates from paint while retaining their safety geometry. Since #448 the experiment is enabled only through the single indefinite browser-local `hp_alpha` gate; it is not expiring and has no per-stage key. Flat remains default; editors, `houseplan-space-card`, floor effects, stored coordinates and HA actions remain unchanged. Stage 3 stays internal and is absent from public changelog/user documentation. |
| Workflow | Superseded 2026-08-12: the pre-1.62 rule of "local edits without tests or commits" is **dead** — since release 1.62 every product change follows `PROCESS.md` (issue in `S5-ready`+, branch `issue/<NN>-slug`, trailers on every commit, review pipeline; `AGENTS.md` is the summary). Release mechanics below remain current. A requested pre-release gets a production build plus the smallest targeted unit/smoke set covering the changed surfaces, one tested `dev` commit/tag and a GitHub Release with `prerelease=true`; `main` stays untouched. The complete local frontend/backend/smoke gate runs only before a stable release, after which `main` is fast-forwarded to the exact tested `dev` SHA and the GitHub Release uses `prerelease=false`. Release bodies are short and bilingual (Russian first); every bullet links its GitHub issue (#NN) so the #328 rules stay machine-checkable. A STABLE body aggregates the changelog since the PREVIOUS STABLE release (never since the last beta): features/fixes described across the line's beta changelogs must appear, while bugs that were introduced and fixed strictly inside the beta line (never shipped in any stable) are excluded — draft with `npm run release:notes -- <tag>`, curate by hand, then `npm run release:notes -- <tag> --verify` must pass. `Мелкие исправления и улучшения` / `Small fixes and improvements` is allowed only when the range really contains user-visible work not itemised in the body; a single-issue hotfix ships without it (the verifier enforces this). Every body ends with separate links to the Russian and English changelogs. Open or partially delivered issues are never presented as shipped. Telegram announcements are sent only for stable releases; beta and RC publication is silent. `docs/RELEASE-NOTES.md` is the current canonical body instance; `npm run release:prerelease -- <tag> --issues=… --yes` is the primary local publication path and the manual `Publish prerelease` workflow is its GitHub-only equivalent once present on `main`. Nothing is copied to the home instance by hand |
| GitHub | https://github.com/Matysh/houseplan-card — [Issues](https://github.com/Matysh/houseplan-card/issues) are the canonical task records; their labels carry priority and workflow status (`PROCESS.md` §9). GitHub Projects is no longer used. `main` carries stable releases; pre-release tags may point directly at `dev`. Work lands on `dev` and is merged into `main` for a stable release, so `dev` is normally equal to or ahead of `main`, never behind. Push via SSH key `ha_jb` (remote git@github.com:…); API releases via the fine-grained PAT in `~/.git-credentials` (Contents R/W, issued 2026-07-23) |
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "houseplan-card",
"version": "1.73.0",
"version": "1.73.0-beta.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "houseplan-card",
"version": "1.73.0",
"version": "1.73.0-beta.9",
"license": "MIT",
"dependencies": {
"lit": "^3.1.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "houseplan-card",
"version": "1.73.0",
"version": "1.73.0-beta.9",
"description": "Interactive house plan Lovelace card for Home Assistant",
"license": "MIT",
"type": "module",
+1 -1
View File
@@ -410,7 +410,7 @@ import { applyOpeningMoves, mergeCollinearPartitions, spaceMergeGeometry } from
import type { MarkerRoomReferenceSnapshot } from './room-reference-transaction';
import { SummaryRuntimeSlot, summaryRuntimeLoader } from './summary-runtime-loader';
const CARD_VERSION = '1.73.0';
const CARD_VERSION = '1.73.0-beta.9';
const ENTRY_BUILD_FINGERPRINT = '__HOUSEPLAN_SOURCE_FINGERPRINT__';
const EDITOR_RETRY_ASSET = '__HOUSEPLAN_EDITOR_RETRY_ASSET__';
const ISO_RETRY_ASSET = '__HOUSEPLAN_ISO_RETRY_ASSET__';
+1 -1
View File
@@ -386,7 +386,7 @@ import {
rewriteMarkerRoomReferences, type MarkerRoomReferenceSnapshot,
} from './room-reference-transaction';
const CARD_VERSION = '1.73.0';
const CARD_VERSION = '1.73.0-beta.9';
// #474: the editor imports the furniture artwork statically and hands it to
// the page runtime the moment this chunk evaluates — before the loader's