Compare commits

...
Author SHA1 Message Date
Paulus Schoutsen f2773821eb Revert accidental added draft changes 2022-09-03 22:41:19 -04:00
Philip AllgaierandGitHub 81cc745c0a Align wording in automation and script editor overflow menus (#13575) 2022-09-03 13:22:42 -04:00
Michel van de WeteringandGitHub 43f9c9ebc9 Add mediadescription for channel media type (#13434) 2022-09-03 11:44:02 +02:00
Michel van de WeteringandGitHub a9d1feb196 Hide soundmode when mediaplayer is off or unavailable (#13347) 2022-09-03 11:41:24 +02:00
Paulus Schoutsen 72aea57105 Bumped version to 20220902.0 2022-09-02 16:14:53 -04:00
Philip AllgaierandGitHub 031ecf5be8 Align visuals of automation and script editor after redesign (#13567) 2022-09-02 13:03:53 -04:00
Paul BotteinandGitHub 93e7927686 Fix automation trace link (#13563) 2022-09-02 13:02:50 -04:00
Paul BotteinandGitHub 320d8e6190 Improve blueprint editor layout (#13564) 2022-09-02 13:02:36 -04:00
Paul BotteinandGitHub efa4f65686 Add information in overflow menu (#13570) 2022-09-02 13:02:01 -04:00
Paul BotteinandGitHub ec257710ff Add overflow menu to automation picker (#13569) 2022-09-02 13:01:05 -04:00
Paulus SchoutsenandGitHub ffad6f340f Fix some descriptions (#13562) 2022-09-01 21:43:30 -05:00
Zack BarettandGitHub 9f9b0b6457 Bumped version to 20220901.0 (#13560) 2022-09-01 20:11:10 +00:00
Zack BarettandGitHub a4227680de Fix Unable to select last slot (#13559) 2022-09-01 19:54:32 +00:00
Zack BarettandGitHub 5cfd263617 Fix Sunday issue and add minutes to events (#13556) 2022-09-01 16:06:51 +00:00
Bram KragtenandGitHub 430e671901 unique-id -> id (#13552) 2022-09-01 11:51:38 -04:00
Ernst KlamerandGitHub 8fcd396445 Add icon for device class moisture (#13553) 2022-09-01 11:48:04 -04:00
Erik MontnemeryandGitHub e273b6b659 Improve delete device button and confirmation dialog (#13500) 2022-09-01 10:38:56 -05:00
Bram KragtenandGitHub 2751adf440 remove duplicate controls blueprint automation (#13554) 2022-09-01 10:37:22 -05:00
Matthias de BaatandGitHub d661450121 Typo on dialogs page (#13555) 2022-09-01 10:36:56 -05:00
Steve RepsherandGitHub 4511ded205 Add semantic heading to script editor (#13546) 2022-09-01 16:19:08 +02:00
Erik MontnemeryandGitHub 2bf0c5d72d Only update device class if changed by user (#13551) 2022-09-01 12:25:32 +00:00
604e5d5e09 Add semantic headings to automation editor (#13542)
Co-authored-by: Bram Kragten <[email protected]>
2022-08-31 14:15:14 -05:00
Bram KragtenandGitHub 774aee406c Fix tag trigger (#13540)
* Fix tag trigger

* Fix
2022-08-31 12:28:50 -04:00
Zack BarettandGitHub 775837b60f Bumped version to 20220831.0 (#13539) 2022-08-31 18:28:31 +02:00
Bram KragtenandGitHub 030b2b921a Format duration object (#13538) 2022-08-31 16:24:24 +00:00
Bram KragtenandGitHub 229bc26327 Don't fire change on tag picker when not changed (#13537) 2022-08-31 16:08:35 +00:00
Bram KragtenandGitHub 99e85173eb Change padding buttons entity settings (#13536) 2022-08-31 15:48:54 +00:00
Bram KragtenandGitHub be0c22d7ae Fix header mobile automation editor (#13534) 2022-08-31 15:42:00 +00:00
Zack BarettandGitHub fee1092a08 Fix Selection on IOS (#13533) 2022-08-31 15:40:03 +00:00
Bram KragtenandGitHub d041bd9fd3 use device and area names in service call description (#13532) 2022-08-31 15:30:44 +00:00
Matthias de BaatandGitHub 93debac19a Add dialogs guidelines (#13526)
* Add dialogs guidelines

* Updated the Buttons and X-icon text
2022-08-31 11:00:19 -04:00
Bram KragtenandGitHub 3fc94106b8 Add entities, devices and areas to hass (#13530) 2022-08-31 13:15:21 +00:00
Bram KragtenandGitHub e976f9c119 Simplify action descriptions (#13529) 2022-08-31 12:48:28 +00:00
Bram KragtenandGitHub be4dcbe405 Fix dialog placement and overflow (#13527) 2022-08-31 07:55:26 -04:00
Paul BotteinandGitHub c116ad67ed Fix multiple sortable (#13522) 2022-08-31 12:01:36 +02:00
Erik MontnemeryandGitHub 1e19799da9 Improve handling of units in energy dashboard (#13454) 2022-08-31 11:30:50 +02:00
Paulus Schoutsen 9b2dcbdb59 Fix script/size_stats 2022-08-30 21:53:17 -04:00
Steve RepsherandGitHub ae4a37f23a Combo-box accessibility and other fixes (#13496) 2022-08-30 21:50:04 -04:00
puddlyandGitHub e463a997c1 Add a button for launching the ZHA options flow to reconfigure the radio (#13506)
* Add a button for launching the ZHA options flow to reconfigure the radio

* Remove unnecessary whitespace

* Rename `Reconfigure` to `Migrate Radio`

* Rename `Download Network Backup` to `Download Backup`
2022-08-30 21:46:20 -04:00
Zack BarettandGitHub 92c8de307d Add CPU and Memory Graphs to hardware page (#13399)
* CPU and Memory Graphs

* localize

* Comments

* Always show the graphs

* Use Subscribe Mixin
2022-08-30 21:45:37 -04:00
Zack BarettandGitHub c751b0b759 Fix schedule bug (#13521) 2022-08-30 21:45:00 -04:00
Erik MontnemeryandGitHub cb5621032d Allow controlling an input_select in unknown state (#13524) 2022-08-30 14:24:05 -04:00
Paul BotteinandGitHub e861460318 Fix drag and drop entities on firefox (#13518) 2022-08-30 11:34:18 -04:00
Zack BarettandGitHub 8fd99fcb15 Fix Schedule Helper UI (#13515) 2022-08-29 21:51:07 -04:00
Bram KragtenandGitHub 260855abbb fix buttons at bottom of entity settings dialog (#13517) 2022-08-29 15:56:57 -05:00
Paulus SchoutsenandGitHub 3648c8c07a Revert "Add redirect_uri to each interaction with login flow (#13389)" (#13504) 2022-08-29 20:23:40 +02:00
Yosi LevyandGitHub e74fd5fcdc Fix RTL issue on date selector in lower resolutions & color slider (#13326) 2022-08-29 20:23:06 +02:00
uvjustinandGitHub 2e46b04204 Bump hls.js to v1.2.1 (#13497) 2022-08-29 20:22:05 +02:00
Franck NijhofandGitHub 989a0b9173 Fix media players with unknown state not being able to browse media (#13502) 2022-08-29 12:14:56 -04:00
Joakim SørensenandGitHub 80a2a7b989 Adds fixed schedule entity icon (#13514) 2022-08-29 11:19:14 -04:00
Franck NijhofandGitHub 2547a975f6 Always show description field in automation editor (#13503) 2022-08-26 13:25:01 +00:00
Franck NijhofandGitHub 35fa763086 Automation icon tweaks (#13495) 2022-08-25 20:39:21 -04:00
Franck NijhofandGitHub 44e38cd24e Redesign automation editor main settings (#13488) 2022-08-25 19:34:39 +00:00
Franck NijhofandGitHub ad58d16dfa Move condition test button into overflow menu (#13478) 2022-08-25 18:57:29 +00:00
Franck NijhofandGitHub 98352ae7b7 Replace service call icon (#13491) 2022-08-25 14:23:23 -04:00
J. Nick KostonandGitHub b9fbad663d Bump home-assistant-js-websocket to 8.0.0 (#13492) 2022-08-25 18:03:34 +00:00
fd166fa89e Show when an integration is being setup in the UI (#13446)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-08-25 14:01:06 -04:00
Franck NijhofandGitHub 88decba851 Move all destructive device actions to the bottom of the overflow menu (#13490) 2022-08-25 18:33:09 +02:00
Franck NijhofandGitHub 8db1881a93 Hide else/default in if/choose actions (#13480) 2022-08-25 10:49:32 -05:00
Franck NijhofandGitHub 0038f54cea Add missing icon to ZHA device remove action (#13489) 2022-08-25 10:43:54 -05:00
Yosi LevyandGitHub a3d80f1280 RTL heater+state fixes (#13366) 2022-08-25 14:20:04 +00:00
Joakim SørensenandGitHub 1c05bc6380 Catch reload issues (#13487) 2022-08-25 15:02:30 +02:00
Erik MontnemeryandGitHub 5d1536030a Refactor getStatisticLabel (#13486) 2022-08-25 12:53:16 +00:00
Erik MontnemeryandGitHub a8833a5ec1 Use name from statistics metadata in energy config panel (#13474) 2022-08-25 13:47:44 +02:00
Erik MontnemeryandGitHub 6446534e0b Use name from statistics metadata in energy dashboard (#13469) 2022-08-25 13:47:32 +02:00
Erik MontnemeryandGitHub d64c81a123 Use name from metadata in statistics card (#13451)
* Use name from metadata in statistics card

* Refactor to use getStatisticLabel
2022-08-25 13:47:16 +02:00
Paulus SchoutsenandGitHub 80e7993923 Move restored entity warning up and use ha-alert (#13477) 2022-08-25 13:09:31 +02:00
Franck NijhofandGitHub 700af72303 Add icon to trigger/condition/action editor rows (#13481) 2022-08-25 13:04:40 +02:00
Joakim SørensenandGitHub 255cb23c7d Show homeassistant when creating partial backup (#13482) 2022-08-25 11:26:56 +02:00
Florian RüchelandGitHub 669f7efa97 Fix scripts docs link (#13484)
In home-assistant/home-assistant.io#22391 the editor docs were removed
making the current link invalid. This points the docs link to the syntax
docs one level up.
2022-08-25 11:01:52 +02:00
Paulus SchoutsenandGitHub 166d6f1c88 Show graph for zone in more info (#13475) 2022-08-24 09:18:45 -05:00
Paulus SchoutsenandGitHub d64ade3848 Scroll to new added trigger/condition/row (#13473) 2022-08-24 08:58:29 -05:00
Franck NijhofandGitHub c2542a3baa Use yarn to resolve lint-staged in pre-commit (#13470) 2022-08-24 09:27:35 -04:00
Franck NijhofandGitHub 6b7c00edbc Change integration enable/disable icons to match automations (#13472) 2022-08-24 08:00:33 -05:00
Franck NijhofandGitHub 89c6fa7383 Conditionally add extra divider in integration card overflow menu (#13468) 2022-08-24 08:00:13 -05:00
Franck NijhofandGitHub ca91f71d2e Remove default actions/conditions from parallel and if actions (#13467) 2022-08-24 07:58:12 -05:00
Bram KragtenandGitHub 25e0c05723 Fix padding navigation list (#13466) 2022-08-24 11:53:51 +02:00
Steve RepsherandGitHub 8fd5273fae Fix various issues in time/duration input (#13462) 2022-08-24 11:25:29 +02:00
807bb10199 Add some Trigger Descriptions (#13460)
Co-authored-by: Franck Nijhof <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2022-08-24 09:18:50 +00:00
Franck NijhofandGitHub 5ce81232b5 Fix automation/script conditions editor (#13465) 2022-08-24 10:59:27 +02:00
Steve RepsherandGitHub a1bc748bc1 Fix accessibility of settings and system navigation (#12845) 2022-08-23 23:45:44 -04:00
Franck NijhofandGitHub be169f9c83 Redesign trigger/condition/action overflow menus (#13453)
* Redesign trigger/condition/action overflow menus

* Reorder items, changed enable/disable icons, cleanup aria

* Simplify menu item names
2022-08-23 18:26:38 -04:00
Franck NijhofandGitHub ed82ae9f68 Add config entry selector (#13432)
* Add config entry selector

* Let backend filter by integration

* Add to gallery

* Adjust translation

* Fix imports

* Rename in gallery as well

* Fix typo in localize key

* Prettier
2022-08-23 18:26:15 -04:00
Franck NijhofandGitHub 8bcbeb299b Add icons to integration action overflow menu (#13457) 2022-08-23 21:37:37 +02:00
fc1481d365 Add icons to device action overflow menu (#13455)
* Add icons to device action overflow menu

* Update size of meta icon

* Tweak naming as suggest by Paulus

* Missed on suggestion, also adjusted

* Delete device -> Delete

* View network

* Rename key

* Prettier

Co-authored-by: Zack <[email protected]>
2022-08-23 19:13:22 +00:00
Paulus SchoutsenandGitHub 2475f6bd41 Glue percent sign (#13458) 2022-08-23 15:45:08 +00:00
Franck NijhofandGitHub dff3ffe935 Add support for renaming actions, conditions and triggers (#13444) 2022-08-23 17:21:16 +02:00
puddlyandGitHub 1616911ba9 Display ZHA network settings and allow downloading backups (#13415) 2022-08-23 10:24:38 -04:00
Franck NijhofandGitHub 8d18fb79fb Use icons in add trigger/condition/action menus (#13452) 2022-08-23 09:13:39 -05:00
Zack BarettandGitHub f5b44656cf Update a few Condition Descriptions (#13404)
* Update a few Describe-conditions

* Update to multiple states
2022-08-23 10:12:55 -04:00
Zack BarettandGitHub c82782fa1b Update Automation Picker Table (#13405) 2022-08-23 09:47:15 -04:00
Franck NijhofandGitHub ab14cf9e9b Use trigger alias in trace timelines (#13447) 2022-08-23 08:58:05 -04:00
Franck NijhofandGitHub c0051aeb68 Tweak displayed action/condition/trigger names (#13445) 2022-08-22 20:25:27 -05:00
Franck NijhofandGitHub 44422086d7 Add alias support to all triggers (#13442) 2022-08-22 16:08:32 -05:00
Franck NijhofandGitHub 738367a7c7 Use alias instead of description in case set in actions/conditions (#13441) 2022-08-22 13:27:13 -05:00
Franck NijhofandGitHub 5fb2e3316a Use number selector for above & below in numeric trigger/condition (#13422) 2022-08-22 11:16:11 -05:00
Franck NijhofandGitHub 82f48d106f Use template selector in numeric state templates (#13428) 2022-08-22 12:04:36 -04:00
Steve RepsherandGitHub bbc5b02a22 Tighten UI localize key exceptions (#13430) 2022-08-22 12:04:02 -04:00
Paulus SchoutsenandGitHub dfface6904 Merge more info "info" and "history" like before (#13425) 2022-08-22 13:56:48 +00:00
Franck NijhofandGitHub 9ed0cb3011 Use duration input for timeout in wait_for_trigger action (#13426)
* Use duration input for timeout in wait_for_trigger action

* Specify event type
2022-08-22 08:55:26 -04:00
Franck NijhofandGitHub 4b54cb4a35 Make updates more distinct recognizable by device name (#13433) 2022-08-22 08:17:52 -04:00
Franck NijhofandGitHub 1b5c30712e Rename exclude_attributes to hide_attributes for clarity (#13436) 2022-08-22 11:25:17 +02:00
Joakim SørensenandGitHub 7d3d800d4c Fix progressbar margins (#13435) 2022-08-22 10:46:07 +02:00
Franck NijhofandGitHub d4262ecb09 Use dropdown mode for script mode selector (#13429) 2022-08-20 22:00:20 -04:00
Franck NijhofandGitHub ec7dea93a0 Allow days in calendar trigger offset (#13427) 2022-08-20 18:38:44 -04:00
aa2641d5c9 Add exclude attributes support to attribute selector (#13421)
* Add exclude attribute support to attribute selector

* Fix typing

* Fix rebase f-up

* Revert const removal

* Make exclude_attributes readonly and fix some propert mismatches

Co-authored-by: Zack <[email protected]>
Co-authored-by: Steve Repsher <[email protected]>
2022-08-20 14:54:42 -04:00
Paulus SchoutsenandGitHub 5ecde44243 Do not hide overflow in expansion panel when expanded (#13423) 2022-08-20 18:38:03 +00:00
Paulus SchoutsenandGitHub 209ba79823 Expand trigger/condition/row when menu item changes editor (#13424) 2022-08-20 14:29:43 -04:00
Steve RepsherandGitHub 52a1594969 Remove all exceptions from supervisor localize keys (#13402) 2022-08-20 13:37:57 -04:00
Steve RepsherandGitHub 24509425ca Fix some localize key type errors in lovelace editors (#13403) 2022-08-20 13:36:58 -04:00
ildar170975andGitHub 7e5cd9a1c8 Logbook card: place a gap between an icon/image & a text (#13348) 2022-08-20 14:29:29 +00:00
Franck NijhofandGitHub 8b13a9ff2e Add attribute support to state selector (#13420) 2022-08-20 09:24:11 -05:00
Paulus SchoutsenandGitHub b33c546610 Combine more info and entity registry editor (#13416) 2022-08-19 21:27:07 -05:00
Franck NijhofandGitHub 38fd6108b4 Keep formatted attribute name in attribute selector (#13413) 2022-08-19 08:44:42 -05:00
Franck NijhofandGitHub 57fdea19fd Fix trigger state attribute selector (#13410) 2022-08-19 08:44:02 -05:00
Franck NijhofandGitHub d2a19e04ef Add state selector (#13411) 2022-08-19 09:20:13 -04:00
Steve RepsherandGitHub 196456d0c4 Add translations to nightly artifacts (#13409) 2022-08-19 08:57:58 -04:00
Paulus SchoutsenandGitHub 5c16447eed Fix DOM reuse for trigger/condition/action (#13407) 2022-08-19 08:05:15 -04:00
Paulus SchoutsenandGitHub f3d92ba0e0 Fix Gallery menu expansion (#13408) 2022-08-18 23:32:56 -04:00
Steve RepsherandGitHub 088b3587e0 Remove string exception for localize keys (#13354) 2022-08-18 12:43:15 -04:00
Paulus SchoutsenandGitHub ede9d8a073 Add back learn more labels to automation editor (#13401) 2022-08-18 16:17:19 +00:00
Paulus SchoutsenandGitHub 8c71885b4c Add support for the file selector (#13382) 2022-08-18 11:43:43 -04:00
Paulus SchoutsenandGitHub 47b820d28f Collapse automation/script editor sections by default (#13390) 2022-08-18 14:04:35 +00:00
Steve RepsherandGitHub d7b888f761 Fix localize key types related to form schemas (Group 3) (#13400)
* Fix key type errors for card editors (Round 4)

* Fix key type errors for remaining form schemas
2022-08-17 23:57:26 -04:00
Paulus SchoutsenandGitHub 12e57dfcae Allow testing describe functionality in the gallery (#13398) 2022-08-17 13:20:35 -05:00
Steve RepsherandGitHub 9a1fc02755 Fix localize key types related to form schemas (Group 2) (#13342) 2022-08-17 11:01:05 -05:00
Steve RepsherandGitHub eb4dbef610 Bump husky & lint-staged and prevent translation edits (#13392) 2022-08-17 08:09:07 -04:00
Paulus Schoutsen 33ce27de02 Bumped version to 20220816.0 2022-08-16 17:18:38 -04:00
Paulus SchoutsenandGitHub 089f531492 Add redirect_uri to each interaction with login flow (#13389) 2022-08-16 17:17:18 -04:00
uvjustinandGitHub 3aa813e391 Bump hls.js to v1.2.0 (#13383) 2022-08-16 09:10:18 -05:00
Zack BarettandGitHub a989eb1c66 Fix Target Selector (#13380) 2022-08-13 20:56:15 -05:00
alvinchen1andGitHub e0448be24d Add initial field to the helper input_number in UI (#13378) 2022-08-13 17:29:33 -04:00
651cafc464 Allow Markdown and description placeholder usage in data field descriptions (#13377)
Co-authored-by: Zack Barett <[email protected]>
2022-08-13 18:57:28 +00:00
Zack BarettandGitHub 38607a6410 Add UI for Schedule Helper (#13375) 2022-08-12 13:58:08 +00:00
Steve RepsherandGitHub 9046c0d0bf Merge pull request #13372 from steverep/fix-more-keys
Fix more bad or missing localize keys
2022-08-10 16:48:12 -04:00
Steve Repsher 589cec10f6 Fix bad key for quick bar hint
Also fixed a bunch of lit plugin errors.
2022-08-10 16:25:01 -04:00
Steve Repsher dba9658658 Fix bad key for add entities to view 2022-08-10 15:59:15 -04:00
Steve Repsher d21bdf2807 Add missing key in logbook card 2022-08-10 15:30:58 -04:00
Steve Repsher 3fe5075ad4 Add missing key in input_select helper dialog 2022-08-10 12:32:46 -04:00
Steve RepsherandGitHub f76a3ea2ce Merge pull request #13364 from steverep/fix-random-bad-keys 2022-08-09 12:50:50 -04:00
Steve Repsher e95a5ebbbf Merge changes in repair flow header 2022-08-09 12:22:47 -04:00
Steve Repsher ae28eb3813 Fix bad key in system information 2022-08-09 12:04:06 -04:00
Steve Repsher b0807cb80c Fix bad keys in repair flow dialog 2022-08-09 11:55:10 -04:00
Steve Repsher 95231554d5 Add missing key for required tag name 2022-08-09 11:01:51 -04:00
Steve Repsher f3b543f46c Fix bad key on error screen 2022-08-08 18:21:39 -04:00
Steve Repsher 9eb81e2211 Add missing key for area not found 2022-08-08 17:59:15 -04:00
Franck NijhofandGitHub 1322ff9295 Process description placeholders in titles for repairs flows (#13362) 2022-08-08 17:36:46 -04:00
Zack BarettandGitHub 5f169b48d9 Merge pull request #13360 from steverep/fix-blueprint-target-types 2022-08-08 12:27:03 -05:00
Steve Repsher 75d05cdb0e Fix key type errors in target picker 2022-08-08 12:12:13 -04:00
Steve Repsher b444d0030f Fix key type errors for blueprints 2022-08-08 12:10:56 -04:00
Zack BarettandGitHub e241b20378 Merge pull request #13357 from steverep/fix-some-card-keys 2022-08-08 09:38:27 -05:00
Joakim SørensenandGitHub ca28feca80 Missing import and refresh correct collection (#13358) 2022-08-08 10:16:13 +02:00
Zack BarettandGitHub f5d9a7d662 Merge pull request #13353 from home-assistant/Make-sure-we-have-supervisor.addon 2022-08-07 16:56:33 -05:00
Steve Repsher 3d236a8f49 Fix key type errors for cloud TTS 2022-08-07 15:34:26 -04:00
Steve Repsher 0ebeec0db6 Fix key type errors for media player 2022-08-07 15:33:08 -04:00
Steve Repsher d23d774ec1 Fix some key type errors in cards 2022-08-07 15:28:22 -04:00
Joakim SørensenandGitHub 0d5b86e2b6 Check store for addons when using my link (#13352) 2022-08-07 12:56:44 -04:00
ludeeus 825558c8db Make sure we have supervisor.addon 2022-08-07 16:53:09 +00:00
Zack BarettandGitHub 12239d7fe3 Merge pull request #13344 from steverep/update-vaadin 2022-08-05 13:52:56 -05:00
Zack BarettandGitHub 6eac6aef18 Merge pull request #13284 from raman325/ws_api 2022-08-05 12:56:47 -05:00
Steve Repsher a79d6b6a4d Upgrade vaadin to 23.1.5 for combobox accessibility 2022-08-05 12:31:07 -04:00
Steve RepsherandGitHub 1d47303127 Separate supervisor localize key exceptions and disallow string (#13317) 2022-08-05 15:39:19 +02:00
Steve RepsherandGitHub 150bc00c31 Fix localize key types related to form schemas (Group 1) (#13258) 2022-08-05 15:37:54 +02:00
Zack BarettandGitHub d4232a2256 Bumped version to 20220802.0 (#13328) 2022-08-02 17:06:00 +02:00
Zack BarettandGitHub f7e348c19b Fix Automation Creation Dialog (#13322) 2022-08-02 13:48:22 +00:00
Zack BarettandGitHub f44fd35b90 Fix input and number more info dialog (#13321) 2022-08-02 15:26:17 +02:00
Erik MontnemeryandGitHub dac1d76bd2 Offer to remove statistics for entities with unsupported state class (#13325) 2022-08-02 11:12:05 +00:00
Franck NijhofandGitHub 0ab823bcf5 Adjust MDI icon for Repairs menu (#13324) 2022-08-02 09:33:36 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
65e952aaeb Bump actions/stale from 5.1.0 to 5.1.1 (#13313)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 09:25:58 +02:00
Zack BarettandGitHub cfdf043444 Add ability to auto open system health with params (#13303)
* Add ability to auto open system health with params

* Update my link

* Update url when opening dialog

* comment
2022-08-02 09:23:30 +02:00
Zack BarettandGitHub ecc1bf5206 Merge pull request #13319 from home-assistant/fix-device-page-strip 2022-08-01 16:03:50 -05:00
Zack BarettandGitHub 57d664d87d Merge pull request #13318 from home-assistant/fix-create-helper 2022-08-01 15:47:11 -05:00
Zack cf2cd4043d Fix Device Page name stripping 2022-08-01 15:41:01 -05:00
Bram Kragten 98761cab3f Fix create helper dialog
Fixes #13274
2022-08-01 22:05:52 +02:00
Erik MontnemeryandGitHub 4a622f9424 Tweak suggested_value in HA-form (#13316) 2022-08-01 09:25:33 +00:00
Zack BarettandGitHub c27e3325d9 Bumped version to 20220728.0 (#13300) 2022-07-28 10:10:28 -05:00
Zack BarettandGitHub 08efc2fdd1 Update dialog with status line and other stuff (#13293) 2022-07-28 15:10:05 +00:00
Zack BarettandGitHub 53519ae8ab Fix Dark Mode Map when set in Dashboard card (#13297) 2022-07-28 10:00:37 -05:00
Zack BarettandGitHub 9baeabed19 Add integration dialog Scroll bar styles (#13299) 2022-07-28 09:54:41 -05:00
Zack BarettandGitHub f3229bb8a7 Update Show Skipped/ignored in updates/repairs, update dialog of integration startup time (#13296) 2022-07-28 10:39:16 +02:00
Franck NijhofandGitHub 86c971b76a Add My support for Repairs (#13294) 2022-07-28 02:07:07 +02:00
Paulus SchoutsenandGitHub afc69cb270 Render brand icon for repairs based on issue_domain (#13290) 2022-07-27 22:53:59 +02:00
Paulus SchoutsenandGitHub a379d29a6c Remove non fixable from repair dialog (#13292) 2022-07-27 15:50:07 -05:00
Franck NijhofandGitHub 0769b14566 Add Bluetooth as discovery source (#13291) 2022-07-27 20:30:51 +00:00
Paulus SchoutsenandGitHub 1dc68b72da Pass translation placeholders to repair title translations (#13289) 2022-07-27 19:30:22 +00:00
Bram KragtenandGitHub c08be957ce Merge branch 'master' into dev 2022-07-27 12:23:47 +02:00
Bram Kragten 140e269697 Bumped version to 20220727.0 2022-07-27 12:22:43 +02:00
Bram KragtenandGitHub 7c18d5aa0e Use subscribe to fetch repair issues (#13285) 2022-07-27 12:15:31 +02:00
Yosi LevyandGitHub 1acdc9cd6c Various RTL fixes (#13268) 2022-07-27 11:40:50 +02:00
Yosi LevyandGitHub 7501849044 Fix conversation RTL + text-alignment (#13264) 2022-07-27 11:39:44 +02:00
Yosi LevyandGitHub 26ed13e548 RTL - Humidifier more info location (#13253) 2022-07-27 11:38:35 +02:00
Steve RepsherandGitHub 086c33d8b3 Fix localize key types to remove user groups exception (#13259) 2022-07-27 11:37:52 +02:00
c73677f15d Move System Information to Repairs (#13281)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-27 09:23:55 +00:00
f7090583ac Update Repairs to new design (#13276)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-27 09:06:38 +00:00
68517018cc Add IP Information Dialog (#13283)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-27 08:47:03 +00:00
Raman Gupta 62a0a64554 Update zwave_js WS API commands 2022-07-27 00:08:06 -04:00
Zack BarettandGitHub adf3fa6a0e Use new subscribe mixin for the sidebar to show counts of repairs (#13282)
* Use new subscribe mixin for the sidebar

* spelling
2022-07-26 15:43:46 -05:00
Bram KragtenandGitHub b443ec0af5 Repair issue fixes (#13272) 2022-07-25 15:37:33 +02:00
Zack BarettandGitHub b9ae0e72b1 Add Ignore Action + dialog updates (#13254) 2022-07-25 11:36:00 +02:00
Zack BarettandGitHub 63ea8e6568 Allows for My to support Supported Brands (#13256) 2022-07-25 11:35:13 +02:00
Steve RepsherandGitHub 5be624f45d Fix localize key types to remove config_entry exception (#13257) 2022-07-22 11:01:44 +02:00
Bram KragtenandGitHub 38f19b6180 Repair: load translations for all integrations with issues (#13252) 2022-07-21 09:52:44 -05:00
Steve RepsherandGitHub c99f00ba50 Setup stronger type for localize key (#13244) 2022-07-21 13:13:11 +00:00
ce5776f59d Add Repairs to Settings (#13249)
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2022-07-21 14:48:37 +02:00
Steve RepsherandGitHub 12ff70020a Fix more bad localize keys (#13250) 2022-07-21 12:17:29 +02:00
5d605447a5 Support more icons for media players (#12997)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-21 12:16:00 +02:00
Michael IrigoyenandGitHub 6d88d46ce4 Update Material Design Icons to v7.0.96 (#13175)
* Update Material Design Icons to v7.0.96

* Fetch updated MDI packages
2022-07-21 11:43:48 +02:00
Bram KragtenandGitHub cbe2643146 Use translation_key for repairs (#13246) 2022-07-20 11:52:55 -05:00
d332b8ab14 Fix bad localize keys (#13245)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-20 18:34:09 +02:00
Bram KragtenandGitHub adfef05110 Bump contrast and brightness of dark mode map (#13243) 2022-07-20 14:15:34 +00:00
Yosi LevyandGitHub ca6a7bfbe2 Additional RTL energy fixes (#13182) 2022-07-20 14:37:48 +02:00
Franck NijhofandGitHub a22f96a481 Migrate repairs to repairs API (#13242) 2022-07-20 14:34:57 +02:00
Yosi LevyandGitHub 688109524d RTL fixes - media, attributes (#13241) 2022-07-20 11:14:50 +02:00
62dd7111ce Update design.home-assistant.io (#13240)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-20 08:24:52 +00:00
Zack BarettandGitHub 1267575f62 Merge pull request #13235 from home-assistant/fix-builds
Stringify Python version to use 3.10 vs 3.1
2022-07-19 23:25:39 -05:00
Paulus Schoutsen b7da4dc68f Stringify Python version to use 3.10 vs 3.1 2022-07-19 21:11:21 -07:00
Zack BarettandGitHub 826474518f Merge pull request #13228 from voydz/lovelace-map-autofit 2022-07-19 16:44:48 -05:00
Maximilian ErtlandGitHub a4b92fef3a Correctly set "allow-downloads" flag on iframes (#13218) 2022-07-19 20:59:45 +02:00
Bram KragtenandGitHub d41159591c Change map styles to "Voyager" (#13227) 2022-07-19 20:56:50 +02:00
Felix Rudat cb256bc386 Add auto_fit config option to lovelace map card 2022-07-19 17:45:48 +02:00
bd50d6a6a3 Start the Repairs dashboard (#13192)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-19 14:25:47 +00:00
Bram KragtenandGitHub 05418fc83b Fix dev tools event (#13225) 2022-07-19 11:17:13 +00:00
Franck NijhofandGitHub 8b675cdbba Remove unused mypy config from pyproject (#13224) 2022-07-19 13:14:20 +02:00
Franck NijhofandGitHub 36b4909950 Bump Python to 3.10 (#13223) 2022-07-19 12:28:57 +02:00
Raman GuptaandGitHub 157b3ba5f2 Clean up zwave_js device actions logic (#13185) 2022-07-19 12:11:05 +02:00
Yosi LevyandGitHub 72443b4f24 RTL card fixes (#13207) 2022-07-19 12:09:50 +02:00
J. Nick KostonandGitHub 1c7d3fe610 Sync frontend recoverable states with core (#13197) 2022-07-19 12:09:20 +02:00
Franck NijhofandGitHub 6ac4560b36 Use YAML in developer tools events (#13222) 2022-07-19 12:07:51 +02:00
Zack BarettandGitHub 9309a4c7bc Update language when ZHA or Zwave arent installed (re: supported brands) (#13191) 2022-07-19 11:44:02 +02:00
Franck NijhofandGitHub b582a4d014 Bump node to 16 (#13221) 2022-07-19 11:39:08 +02:00
Zack BarettandGitHub e4d233afa8 Filter Integration in Target and Area selectors + clean up some code (#13202) 2022-07-18 22:07:55 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
b131b255ec Bump actions/stale from 3.0.13 to 5.1.0 (#13212)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-18 17:09:37 +02:00
Kendell RandGitHub 20bdb9ff35 Use theme default font for charts (#13210)
* Use theme default font for charts

* Prettier
2022-07-18 15:35:51 +02:00
Zack BarettandGitHub 666ef7a978 Merge pull request #13199 from home-assistant/2022.7-hotfix 2022-07-14 17:26:04 -05:00
Zack 24a97347df Version Bump 2022-07-14 17:13:02 -05:00
Zack Barett 0825d5c64e Fix Suggested Value in HA-Form (#13173) 2022-07-14 17:11:53 -05:00
Erik MontnemeryandZack 535e752ec7 Correct display of barometric pressure and rain (#13183) 2022-07-14 17:11:39 -05:00
Zack BarettandGitHub b611a58fce Add support for Supported Brands (#13184) 2022-07-13 17:51:17 +02:00
Zack BarettandGitHub 24e54554ad Fix History Graph Name not being friendly (#13179) 2022-07-13 11:48:52 +02:00
Erik MontnemeryandGitHub d23fca4dd1 Correct display of barometric pressure and rain (#13183) 2022-07-12 16:13:29 -05:00
729e2f5248 Use entity name in device info page (#13165)
* Use entity name in device info page

* Adjust to new format

* Use latest API

* Fix types

* Fix CI?

Co-authored-by: Zack <[email protected]>
2022-07-11 19:07:07 -07:00
Zack BarettandGitHub 437723c6a6 Fix Number Selector Label (#13178) 2022-07-12 01:05:47 +00:00
Bram KragtenandGitHub a30c8205b1 Update dialog styles (#13132) 2022-07-11 15:07:10 -05:00
c50cf78bb4 Allow stale ZHA coordinator entries to be deleted (#13154)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-11 13:14:37 -05:00
Zack BarettandGitHub be52ba0ea9 Fix Suggested Value in HA-Form (#13173) 2022-07-11 09:46:32 -05:00
Yosi LevyandGitHub 55e9ebc4d2 Energy panel/cards - RTL fixes (#13171) 2022-07-11 15:47:22 +02:00
Bram KragtenandGitHub 29c3fb0f92 Fix energy demo (#13172) 2022-07-11 08:44:34 -05:00
Erik MontnemeryandGitHub 7c3cd9d88d Merge pull request #13170 from home-assistant/number_customize_units
Allow customizing number unit of measurement
2022-07-11 14:49:47 +02:00
Erik 4881d699e3 Allow customizing number unit of measurement 2022-07-11 14:05:23 +02:00
Joakim SørensenandGitHub 414db83359 Hide homeassistant from partial restore if no version (#13168) 2022-07-11 12:55:43 +02:00
Joakim SørensenandGitHub cd4f6e19f4 Await backup restore (#13167) 2022-07-11 12:50:37 +02:00
Joakim SørensenandGitHub da709cbbd1 Add hacs_repository my redirect (#13153) 2022-07-11 09:06:45 +02:00
Bram KragtenandGitHub ee9ca16eb5 Merge pull request #13138 from home-assistant/dev 2022-07-07 15:29:24 +02:00
Raman GuptaandGitHub 399efca411 Only show firmware update warning if no firmware update is in progress (#13068) 2022-07-07 15:03:11 +02:00
Bram Kragten f8bccf9e79 Bumped version to 20220707.0 2022-07-07 15:02:08 +02:00
Bram Kragten 87aab72b63 opti search params history 2022-07-07 15:01:29 +02:00
Bram KragtenandGitHub 24688ba18e fix reload history when no selection made (#13137) 2022-07-07 14:58:51 +02:00
e8086b6a6f Refactor History Panel Code a bit (#13129)
Co-authored-by: D3v01dZA <[email protected]>
2022-07-07 14:27:28 +02:00
Bram KragtenandGitHub 4358437278 Merge pull request #13126 from home-assistant/dev
20220706.0
2022-07-06 18:56:12 +02:00
Zack BarettandGitHub e0a9c57a54 Bumped version to 20220706.0 (#13125) 2022-07-06 18:55:52 +02:00
Bram KragtenandGitHub e63953ecbc Fix scene editor (#13123) 2022-07-06 13:50:37 +00:00
Bram KragtenandGitHub 72af200190 Remove localstorage from history, use url (#13122) 2022-07-06 08:44:28 -05:00
Zack BarettandGitHub 2094ae534b Fix History Panel when no entities are found (#13103) 2022-07-06 01:05:40 +02:00
Bram KragtenandGitHub f6d6fd179f Merge pull request #13099 from home-assistant/dev
Bump to 20220705.0
2022-07-05 18:55:51 +02:00
Zack BarettandGitHub 153ebb2a20 Bumped version to 20220705.0 (#13098) 2022-07-05 18:40:26 +02:00
Michael IrigoyenandGitHub 5d58e52eea Update MDI to v6.9.96 (#13096) 2022-07-05 18:38:24 +02:00
Zack BarettandGitHub 5038f9c3c6 Some Updates to the History Panel (#13095) 2022-07-05 15:31:17 +00:00
Zack BarettandGitHub b285fda61b Move Sign out back to Account Card for Cloud (#13094) 2022-07-05 17:15:09 +02:00
6cd38472cd Multiple entities on history panel bugfix and additional improvements (#13045)
Co-authored-by: Zack Barett <[email protected]>
2022-07-05 09:23:38 -05:00
8fd5f53f96 Exclude config and diagnostic entities from scenes (#13072)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-05 08:49:05 -05:00
b70eee77ef Remove config Path from about (#13049)
Co-authored-by: Bram Kragten <[email protected]>
2022-07-05 09:41:40 +00:00
Raman GuptaandGitHub 4148b8c7aa Get rid of dupe HTML in zwave_js firmware upload dialog (#13067) 2022-07-05 11:26:38 +02:00
Zack BarettandGitHub e22dd0c49d Fix Energy Compare Translations (#13055)
* Fix Energy Compare Translations

* Fix alert
2022-07-05 11:23:46 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
30a254f98f Bump actions/checkout from 2 to 3 (#13075)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 10:45:41 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
8fcb3a017b Bump actions/setup-python from 2 to 4 (#13078)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 10:28:53 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5e29c7efa9 Bump dessant/lock-threads from 2.0.1 to 3.0.0 (#13077)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 10:26:46 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
b6cc3e3ef0 Bump actions/setup-node from 2 to 3 (#13080)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 10:04:22 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
184bdc0c85 Bump github/codeql-action from 1 to 2 (#13081)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 10:04:02 +02:00
f7fb731dc8 Add dependabot (#13073)
Co-authored-by: Franck Nijhof <[email protected]>
2022-07-05 09:40:57 +02:00
Raman GuptaandGitHub 77977f64a3 Don't check zwave_js node firmware update capabilities (#13066) 2022-07-03 13:45:19 -07:00
Franck NijhofandGitHub e8da573ba2 Only upload nighlty wheel build artifact (#13064) 2022-07-02 08:49:27 -05:00
Franck NijhofandGitHub 07332bf155 Fix version detection in build env to allow for nightly builds (#13062) 2022-07-02 00:22:54 +02:00
Franck NijhofandGitHub f3c7583bf7 Add nightly frontend builds (#13061) 2022-07-01 14:30:40 -07:00
Paulus SchoutsenandGitHub 1cc02415d3 Fix rendering config entry titles (#13060)
* Fix rendering config entry titles

* Fix location height

* Only fetch installation type when user not created yet
2022-07-01 13:52:56 -05:00
Paulus SchoutsenandGitHub 6ca3f06ea0 Merge pull request #13057 from home-assistant/hide-sun-onboarding
Do not show the sun during onboarding
2022-07-01 11:05:45 -07:00
Paulus Schoutsen 198e2b7bdf Do not show the sun during onboarding 2022-07-01 10:23:23 -07:00
Zack BarettandGitHub 5a68e2c977 Merge pull request #13053 from home-assistant/improve-autocompletion
improve autocompletion
2022-06-30 14:57:42 -05:00
Sven SerlierandGitHub d9d29db560 Fix demo labels (#13033) 2022-06-30 21:51:23 +02:00
Zack BarettandGitHub 124c6dc2b8 Merge pull request #13048 from emufan/patch-1 2022-06-30 14:49:52 -05:00
Bram Kragten 0f3886e053 improve autocompletion 2022-06-30 21:41:58 +02:00
Paulus SchoutsenandGitHub 68bb3558b4 Merge pull request #13051 from home-assistant/dev 2022-06-30 10:22:17 -07:00
Zack BarettandGitHub b8bd15aa33 Bumped version to 20220630.0 (#13050) 2022-06-30 10:17:43 -07:00
Zack BarettandGitHub ed39aa6a7c Merge pull request #13046 from Nardol/no_fix_em_dash 2022-06-30 08:20:41 -05:00
Zack BarettandGitHub 405cae9b5f Merge pull request #13047 from piitaya/feat/ha-code-editor-autocomplete-icon-option 2022-06-30 08:19:54 -05:00
emufanandGitHub 3ca2cbb3f9 Update ha-config-integrations.ts 2022-06-30 15:03:34 +02:00
piitaya c295ae56ab separate autocomplete options in ha-code-editor 2022-06-30 11:27:04 +02:00
piitaya 830364721b separate autocomplete options in ha-code-editor 2022-06-30 11:22:30 +02:00
Patrick ZAJDA 19089213e3 Add em dash instead of blank when no fix is needed in statistics
Signed-off-by: Patrick ZAJDA <[email protected]>
2022-06-30 11:12:35 +02:00
Zack BarettandGitHub b633067e5c Merge pull request #13041 from home-assistant/Fix-About-Page 2022-06-29 17:50:43 -05:00
Zack 1b8874cbd4 Fix Translation on About Page 2022-06-29 15:27:54 -05:00
Zack BarettandGitHub a5f8ce85ba Merge pull request #13032 from home-assistant/dev 2022-06-29 11:25:03 -05:00
+21 56eacf5733 20220629.0 (#13030)
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: ImgBotApp <[email protected]>
Co-authored-by: foreign-sub <[email protected]>
Co-authored-by: Martin Hjelmare <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: J. Nick Koston <[email protected]>
Co-authored-by: Raman Gupta <[email protected]>
Co-authored-by: wizmo2 <[email protected]>
Co-authored-by: Yosi Levy <[email protected]>
Co-authored-by: RoboMagus <[email protected]>
Co-authored-by: loeffelpan <[email protected]>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Allen Porter <[email protected]>
Co-authored-by: Erik Montnemery <[email protected]>
Co-authored-by: Josh McCarty <[email protected]>
Co-authored-by: imgbot[bot] <31301654+imgbot[bot]@users.noreply.github.com>
Co-authored-by: Brandon Rothweiler <[email protected]>
Co-authored-by: James Baker <[email protected]>
Co-authored-by: Sven Serlier <[email protected]>
Co-authored-by: Alessandro Ghedini <[email protected]>
Co-authored-by: Emanuele <[email protected]>
Co-authored-by: Pascal Vizeli <[email protected]>
Co-authored-by: Marc Mueller <[email protected]>
Co-authored-by: Kristján Bjarni <[email protected]>
Co-authored-by: D3v01dZA <[email protected]>
2022-06-29 11:22:17 -05:00
9324061d05 Add auto completion for mdi icons to code editor (#13022)
Co-authored-by: Zack Barett <[email protected]>
2022-06-29 16:12:16 +00:00
Bram KragtenandGitHub eafcbdc65b Merge branch 'master' into dev 2022-06-29 18:02:42 +02:00
Zack BarettandGitHub 0175522c17 Bumped version to 20220629.0 (#13029) 2022-06-29 18:00:50 +02:00
cff3f51d34 Multiple entities on history panel (#9946)
Co-authored-by: Zack Barett <[email protected]>
2022-06-29 10:39:38 -05:00
0f580a91c9 Add optional label for gauge segment (#12960)
Co-authored-by: Zack Barett <[email protected]>
2022-06-29 10:36:18 -05:00
Erik MontnemeryandGitHub 389f50b29a Merge pull request #13028 from home-assistant/add_wind_speed_units
Support knots and ft/s in weather wind speed
2022-06-29 16:34:53 +02:00
J. Nick KostonandGitHub b689bb8fcf Pause the logbook stream when scrolled (#13026) 2022-06-29 13:49:44 +00:00
Erik 36f067ede4 Support knots and ft/s in weather wind speed 2022-06-29 15:47:28 +02:00
Zack BarettandGitHub c2178622dd Add Switch as X Icon and Threshold Icon (#13024) 2022-06-29 09:03:04 +02:00
014448e7ea Update about page (#12653)
Co-authored-by: Philip Allgaier <[email protected]>
2022-06-29 08:56:30 +02:00
08eff0509a Fix General Config Zone update on Mobile (#13011)
Co-authored-by: Bram Kragten <[email protected]>
2022-06-29 08:54:19 +02:00
Marc MuellerandGitHub 62d0882e82 Support editable installs (#12838)
* Support editable installs

* Update setup.cfg
2022-06-28 17:25:21 -07:00
Sven SerlierandGitHub 86a574dbbd Fix demo labes (#13025) 2022-06-28 18:22:31 +00:00
Yosi LevyandGitHub 71ac4620c5 RTL Fixes (#13023) 2022-06-28 09:28:34 -05:00
Zack BarettandGitHub f611049517 Remove Restart Moved Tip (#13009) 2022-06-27 10:55:12 +02:00
Zack BarettandGitHub 45fa8c272f Remove TTS moved Tip (#13010) 2022-06-27 10:54:49 +02:00
Yosi LevyandGitHub 28a1c97571 Various card RTL fixes (#13006) 2022-06-24 10:18:39 -05:00
Zack BarettandGitHub d9a5ae0cf1 Bumped version to 20220624.0 (#13008) 2022-06-24 03:10:20 +00:00
Raman GuptaandGitHub c03849d30b Only show zwave_js firmware action if no other updates in progress (#13002)
* Only show zwave_js firmware update action if no other updates in progress

* readability
2022-06-23 19:19:20 -05:00
Pascal VizeliandGitHub 535fe2686b Use new wheels builder (#13001) 2022-06-23 14:11:06 +02:00
709bc87a36 Fix missing translatable energy texts (#12877)
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
2022-06-23 11:02:02 +02:00
2812b467ec Add manual firmware update support for zwave-js devices (#12910)
* Subscribe to zwave_js node status updates in device panel

* Add typing for message

* Add manual firmware update support for zwave-js devices

* Tweaks based on upstream changes

* Tweaks

* remove unused CSS

* Update zwave_js.ts

* Tweaks after somet esting

* Bold device name instead of italic, catch abort errors and show the message

* Incorporate new commands tweak the UI and messaging

* Add a warning about firmware updates potentially bricking a device, and use Promise.all where possible

* Better typing so we can clean up code

* Additional tweaks

* Remove commented out code

* change style a bit

* prettier

* Be more precise with progress because it always helps the user if they can see progress

* nit

* Update src/translations/en.json

Co-authored-by: Martin Hjelmare <[email protected]>

* Bram's review

* Only ask for firmware target if there is more than one available

* Only offer another firmware update if the original firmware update failed

* Only offer firmware upgrade if node is ready and pass firmware capabilities into dialog so we don't have to make call again

* Use ha-form

* Add comment

* Switch schema name

* Import icon

Co-authored-by: Martin Hjelmare <[email protected]>
2022-06-23 10:51:52 +02:00
7d118a5715 Allow customizing weather units (#12947)
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: foreign-sub <[email protected]>
2022-06-23 10:48:39 +02:00
Alessandro GhediniandGitHub 8bd7370a02 Show moisture/flood alerts in the Area card (#12978) 2022-06-22 19:26:32 -05:00
Alessandro GhediniandGitHub 9fa8a96d09 Show humidity sensor values in Area card (#12976) 2022-06-22 10:45:38 -05:00
Alessandro GhediniandGitHub 508d1fffef Show icon for temperature values in Area card (#12977) 2022-06-22 10:42:39 -05:00
J. Nick KostonandGitHub 3633daa814 Use websocket endpoint to fetch config entries (#12964) 2022-06-21 13:10:39 -05:00
Sven SerlierandGitHub 05346ae9fc Fix demo labels (#12984) 2022-06-21 10:36:42 -05:00
Yosi LevyandGitHub ea667cf0b9 RTL safari fix (#12963) 2022-06-21 11:03:22 +02:00
James BakerandGitHub 048ac3965e Fix grammar in NFC settings tab description (#12979) 2022-06-20 17:24:07 +00:00
Brandon RothweilerandGitHub 276b6f4d1f Fix a bug in the climate entity more info card (#12973) 2022-06-20 14:29:42 +02:00
Paulus SchoutsenandGitHub e765d7749c Update text around updating cloud entity exposed defaults (#12954) 2022-06-20 14:28:32 +02:00
9a3b4d6df2 [ImgBot] Optimize images (#12985)
*Total -- 298.28kb -> 241.37kb (19.08%)

/gallery/public/images/logo-with-text.png -- 66.64kb -> 46.13kb (30.79%)
/gallery/public/images/clearspace.png -- 43.46kb -> 31.99kb (26.39%)
/gallery/public/images/using-our-logo.png -- 32.47kb -> 24.92kb (23.24%)
/gallery/public/images/logo-variants.png -- 34.86kb -> 26.78kb (23.18%)
/gallery/public/images/logo.png -- 27.30kb -> 21.50kb (21.25%)
/gallery/public/images/sunflowers.jpg -- 93.54kb -> 90.05kb (3.73%)

Signed-off-by: ImgBotApp <[email protected]>

Co-authored-by: ImgBotApp <[email protected]>
2022-06-20 14:27:18 +02:00
529e27992e Subscribe to zwave_js node status updates in device panel (#12916)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-06-19 14:22:02 -05:00
Bram KragtenandGitHub 6c5cf2a0ec Fix energy panel in Demo (#12906) 2022-06-16 10:00:52 -05:00
Josh McCartyandGitHub a4cb270f09 Ensures inputmode is set properly for alarm code inputs (#12953) 2022-06-16 09:58:29 -05:00
Bram KragtenandGitHub 5160a1f55c Don't make dialog boxes fullscreen on mobile (#12928) 2022-06-14 11:04:09 -07:00
Allen PorterandGitHub 6a3a0db338 Fix application credentials description when loaded from config flow (#12940) 2022-06-14 11:03:40 -07:00
Erik MontnemeryandGitHub 765d4eb3b4 Revert Use unit system definitions for weather units (#10657) (#12946) 2022-06-14 11:03:05 -07:00
Erik MontnemeryandGitHub cc09e24d66 Fix customizing sensor units (#12948) 2022-06-14 11:02:15 -07:00
Joakim SørensenandGitHub e7848262ea Split store and installed calls (#12921)
* Split store and installed calls

* Fix issue when installing

* Remove supervisor.addons usage

* one more

* Update core

* Comments
2022-06-11 11:04:54 +02:00
Paulus SchoutsenandGitHub 0926202eca Clean up unused var (#12930) 2022-06-10 21:10:33 -07:00
Yosi LevyandGitHub e83af02410 Use ha-list-item in config updates (#12922) 2022-06-10 16:43:31 +02:00
Raman GuptaandGitHub 74d6a52fa9 Remove unused zwave_js functions (#12915) 2022-06-10 16:43:04 +02:00
Allen PorterandGitHub 5baa975632 Add application credentials description placeholder (#12869) 2022-06-10 16:42:20 +02:00
Joakim SørensenandGitHub 4ad49ef07f Move to supervisor store API (#12911)
* Move to supervisor store API

* Add supervisorApiCall helper to simplify functions

* Do not consider ESPHome as custom repository

* Home Assistant Community Add-ons is not custom
2022-06-08 15:28:40 +02:00
Yosi LevyandGitHub bc47ecaa57 Various RTL fixes (#12857) 2022-06-08 10:46:39 +02:00
Steve RepsherandGitHub 2bd617ce6e Add container list and ARIA to create helper listbox (#12885) 2022-06-07 19:52:48 +02:00
loeffelpanandGitHub dbaf955525 Fix extra space in energy-dist-card (#12905) 2022-06-07 15:18:52 +00:00
578ff5b53f Energy Dashboard: Align total cost with 'previous cost' column. (#12883)
Co-authored-by: Bram Kragten <[email protected]>
2022-06-07 15:11:47 +00:00
Yosi LevyandGitHub e386942ea7 Quick bar keyboard shortcut international support (#12892) 2022-06-07 17:07:22 +02:00
Paulus SchoutsenandGitHub 2fdd50f45f Add announce: true when sending TTS from media browser (#12866) 2022-06-07 16:43:34 +02:00
wizmo2andGitHub 4b36770adf Fix overlapped tiles and hidden title for 2:3 aspect ratio media classes (#12853) 2022-06-07 16:42:37 +02:00
54377225ec Add zwave_js device statistics (#12794)
Co-authored-by: Bram Kragten <[email protected]>
2022-06-07 16:40:28 +02:00
Philip AllgaierandGitHub f020add6be Make translation README a bit clearer (#12901) 2022-06-07 16:36:19 +02:00
b1a3996cf1 Fix multiple races in logbook subscriptions (#12878)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-06-06 22:23:56 -07:00
J. Nick KostonandGitHub a47a0ed716 Fix history charts not auto refreshing with cached history (#12873)
* Fix history charts refreshing with cached history

Fixes #12859

* return a new array

* Revert "return a new array"

This reverts commit 2b0e265185.
2022-06-06 16:05:22 -07:00
J. Nick KostonandGitHub 91cd584b4b Request tiny thumbnails for cameras in the entity selector to reduce memory pressure (#12880) 2022-06-05 22:12:54 -07:00
J. Nick KostonandGitHub 75562efb79 Add counter to logbook continuous domains (#12888) 2022-06-05 21:46:56 -07:00
J. Nick KostonandGitHub f464bcfc14 Filter entities that will never have entries in the logbook card editor (#12876) 2022-06-05 21:45:58 -07:00
Bram KragtenandGitHub f8af66d310 20220601.0 (#12843) 2022-06-01 21:57:23 +02:00
Bram Kragten 4922e575f8 Bumped version to 20220601.0 2022-06-01 21:43:38 +02:00
Bram KragtenandGitHub ac08daa64e Don't fix width of label when not virtualized (#12842)
Don't fix width of label when not virtualized
2022-06-01 21:42:27 +02:00
Bram KragtenandGitHub 97f082a384 Merge pull request #12835 from home-assistant/dev 2022-05-31 16:09:03 +02:00
Bram Kragten ced37aab4c Make hardware item non interactive 2022-05-31 15:57:19 +02:00
Bram Kragten 1938fb89e6 Bumped version to 20220531.0 2022-05-31 15:51:20 +02:00
Bram KragtenandGitHub 6842c479d6 Add compare data to individual devices graph (#12829) 2022-05-31 08:36:04 -05:00
Bram KragtenandGitHub 881f6b0531 Use icon button for compare on narrow (#12831) 2022-05-31 08:29:32 -05:00
a564ceb9e3 Add proper label for gas energy stats (#12828)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-31 08:51:27 +00:00
J. Nick KostonandGitHub 077fa3f6b2 Fix live logbook starting empty (#12833) 2022-05-30 22:03:51 -07:00
J. Nick KostonandGitHub ceda911670 Virtualize history panel (#12824) 2022-05-30 10:30:04 -10:00
Bram KragtenandGitHub afd41e79f0 Make blueprint picker wider (#12830) 2022-05-30 12:53:39 -05:00
Yosi LevyandGitHub 10f63180eb RTL Auth fix (#12746) 2022-05-30 17:57:37 +02:00
Zack BarettandGitHub e54802bd87 Actually add Cloud URL Translation.... (#12813) 2022-05-30 17:56:24 +02:00
wizmo2andGitHub c1d6b51065 Scale oversized brand thumbnails in media browser (#12820)
* resize brand icons

* add newline JIC

* Now Prettier

* created brand-image style
2022-05-30 17:19:48 +02:00
Joakim SørensenandGitHub ab65ce819f Fallback to 0 for undefined offsets (#12823) 2022-05-30 09:57:28 -05:00
XorandGitHub 1e011bfe34 Fix color of plant entity when state is problem (#12821) 2022-05-30 09:57:00 -05:00
Joakim SørensenandGitHub 5951f5c5c4 Prefer CSS variables in custom panel entrypoint (#12818) 2022-05-30 09:56:13 -05:00
Joakim SørensenandGitHub 0183e32267 Use supervisor envs instead of hassio (#12812) 2022-05-30 12:46:43 +02:00
Raman GuptaandGitHub 588fd87654 Update style of zwave_js controller statistics (#12810) 2022-05-27 15:33:07 -05:00
Philip AllgaierandGitHub e2944b098d Align "Browse Media" button while being wrapped (#12800) 2022-05-27 00:37:43 +00:00
Bram KragtenandGitHub cbb962f084 Fix width of application creds page (#12806) 2022-05-26 23:59:26 +02:00
Paulus SchoutsenandGitHub 93f4ae1bea Add redirects to cast to catch some common mistakes in custom cards (#12808) 2022-05-26 23:58:54 +02:00
+13 d810cae194 20220526.0 (#12807)
* Fix setting _externalAccess (#12584)

* Fix enter key support for generic dialog box (#12600)

* Revert #10991 (#12618)

* Replace host-context with css properties

* Remove "Lovelace" from Github issue templates (#12614)

* Remove "Lovelace" from Github issue templates

* Changes from review

* Get full core logs from core (#12639)

* Move YAML to first tab of Developer Tools (#12589)

* Add configuration panel for Application Credentials (#12344)

Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Zack <[email protected]>

* Add label for Fix issue column header in statistics developer tools (#12597)

Signed-off-by: Patrick ZAJDA <[email protected]>

* RTL settings clickable list item fix (#12595)

* Update src/state/translations-mixin.ts

Co-authored-by: Bram Kragten <[email protected]>

* Update following review

* Update Translations to create helper (#12656)

* Hide Cloud URL - Add Copy Icon (#12655)

Co-authored-by: Bram Kragten <[email protected]>

* Show script traces in logbook (#12643)

* Rtl menu fix (#12561)

Co-authored-by: Bram Kragten <[email protected]>

* Use  /

* Update var name

* Use FabBase

* Update ha-fab.ts

* Switch logbook calls to use the new websocket (#12665)

* Add calendar trigger offsets in automation editor (#12486)

* Add calendar trigger offsets in automation editor

* Use duration selector for offset

* Fix typing for offsets/duratons

* Fix strict error handling in Markdown card templates (#12661)

* Add missing label to search icon (#12671)

* Update Lokalise URL (#12684)

* Teach logbook about additional context data (#12667)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Guard for missing backup integration (#12696)

* Rtl changes (#12693)

* Return focus after dialogs close (#11999)

* Bumped version to 20220516.0

* Fix float-end for LTR (#12707)

* Add my support for Application Credentials (#12709)

* Show manage cloud link to config (#12673)

* Add guard logic from PR home-assistant#12181 to input select row (#12703)

* Refactor logbook data fetch logic into reusable class (#12701)

* Add logbook to device info page (#12714)

* Add logbook to area info page (#12715)

* Add missing labels in energy dashboard settings (#12722)

Signed-off-by: Patrick ZAJDA <[email protected]>

* Delete focus targets for replaced dialogs (#12724)

* Convert history calls to use new websocket endpoint (#12662)

* Add support for OAuth2 callback via My (#12718)

* Support requesting translations for multiple integrations in one request (#12704)

* Support requesting translations for multiple integrations in one request

- Requires https://github.com/home-assistant/core/pull/71979

* onboarding as well

* integrations -> integration

* fix cache

* short return if they are all loaded

* reduce

* reduce

* reduce

* Show the integration brand icon when there is no entity in logbook (#12713)

* Support requesting multiple integration manifests in a single request (#12706)

* Support requesting multiple integration manifests in a single request

* only fetch if there are some to actually fetch

* handle empty

* not truthy, wrong language

* Do not copy params

Co-authored-by: Paulus Schoutsen <[email protected]>

* Import all date-fns from modules (#12717)

* Fix 'loading_log' string (#12712)

* Bumped version to 20220518.0

* Fix python to js timestamp conversions in logbook traces (#12677)

- The websocket version needs the time converted from
  where python stores the decimal

* Update Material Design Icons to v6.7.96 (#12111)

* Various RTL fixes (#12721)

* Select + target picker Rtl fixes (#12711)

* Add error handling for application credentials removal (#12686)

* Update zwave_js data collection URL (#12666)

* Use device_id instead of config entry id and node id for zwave_js (#12658)

* Use device_id instead of config entry id and node id for zwave_js

* Add additional cleanup from #12642

* Revert removal of multiple config entries check

* Update src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-actions-zwave_js.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* Update src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

Co-authored-by: Paulus Schoutsen <[email protected]>

* Get attributes from first state when using minimal responses (#12732)

* Pass device ID to logbook if available (#12728)

* Compute the icon based on the logbook state and not the current state (#12725)

Co-authored-by: Bram Kragten <[email protected]>

* Add option to compare energy graphs with previous period (#12723)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Add an application credentials display name (#12720)

Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Fixes logbook (#12740)

* Bumped version to 20220521.0

* Stop closed event when selecting datadisk (#12749)

* Use logbook livestream when requesting a time window that includes the future (#12744)

* Fetch supervisor info directly (#12751)

* Remove kernel and agent versions from about page (#12750)

* Move `preload_stream` setting to entity settings (#12730)

Co-authored-by: Zack <[email protected]>

* Use new localized context state and source in logbook (#12742)

* Use new logbook streaming websocket api for cases where we need end_time (#12753)

* Open Application Credentials from integration configuration flow (#12708)

* Make entities and devices independent in the scene editor (#11046)

Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Erik <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Allow setting `device_class` "outlet" again through entity settings (#12669)

* Allow setting `device_class` "outlet" again through UI

* Fixes

* Null check deviceClass and adjust used translation

* Bumped version to 20220523.0 (#12756)

* Adjust logbook stream consumer to handle new metadata (#12755)

* Adjust path to version info in issue template (#12760)

* Add My HA link to about page to Github issue template (#12761)

* RTL updates (#12745)

* Add compare to energy sources table (#12762)

* Fix (#12764)

* Change service_data to just data (#12628)

* Simplify OAuth2 authorize callback URL (#12765)

* Hide hidden media player entities in media panel (#12766)

* Add integration filter to Device Selector (#12680)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Integration filter for Area Selector (#12682)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Bump Version to 20220524.0 (#12769)

* Move zwave_js node comments from device config to info page (#12625)

Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>

* Various RTL fixes

* Add controller statistics to zwave_js config dashboard (#12668)

* Move Logbook and make device page better (#12763)

Co-authored-by: Bram Kragten <[email protected]>

* Move metadata to pyproject.toml (#12770)

* Add aria-haspopup to button menus (#12758)

Co-authored-by: Zack Barett <[email protected]>

* Hardware MVP (#12773)

* Fix "unavailable" handling for climate state rendering (#12778)

* Ensure state is vertically centered in more-info (#12780)

* Update zwave_js/network_status WS API (#12735)

* Bumped version to 20220525.0 (#12779)

* Use dynamic weather domain icon + icon alignment fix weather more-info (#12781)

* Fix typo in credentials removal dialog (#12784)

* Handle history api being passed entity ids as CSV (#12787)

* Fix history cache when there is cacheConfig (#12788)

* Use Hardware Integration for System Menu (#12789)

* Fix Media Player More info cramped controls (#12790)

* Fix Switch as X unable to change to a new type (#12797)

* Fix Zwave Alerts on device page (#12785)

Co-authored-by: Bram Kragten <[email protected]>

* Set Error if entity is unavailable (#12791)

* Dynamically determine the correct action config struct (#12798)

* Remove import

* Hide Cloud information a bit more (#12802)

* Add dynamic header/footer config determination and update struct (#12795)

* Bump HAWS to 7.1.0 (#12804)

* Update Narrow Order on Device Page (#12801)

Co-authored-by: Bram Kragten <[email protected]>

* Fix combo box inside dialog (#12805)

* Bumped version to 20220526.0

Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Yosi Levy <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Allen Porter <[email protected]>
Co-authored-by: Patrick ZAJDA <[email protected]>
Co-authored-by: Yosi Levy <[email protected]>
Co-authored-by: J. Nick Koston <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
Co-authored-by: Sven <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: breakthestatic <[email protected]>
Co-authored-by: RoboMagus <[email protected]>
Co-authored-by: Michael Irigoyen <[email protected]>
Co-authored-by: Raman Gupta <[email protected]>
Co-authored-by: David F. Mulcahey <[email protected]>
Co-authored-by: Erik <[email protected]>
Co-authored-by: Thomas Lovén <[email protected]>
Co-authored-by: Marc Mueller <[email protected]>
2022-05-26 23:41:27 +02:00
Bram Kragten 6797e17fc8 Merge branch 'master' into dev 2022-05-26 23:23:54 +02:00
Bram Kragten 6e58cd5d12 Bumped version to 20220526.0 2022-05-26 23:21:56 +02:00
Bram KragtenandGitHub a72fd19b73 Fix combo box inside dialog (#12805) 2022-05-26 20:28:05 +00:00
41c61a2895 Update Narrow Order on Device Page (#12801)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-26 22:05:17 +02:00
Paulus SchoutsenandGitHub f35af9ed98 Bump HAWS to 7.1.0 (#12804) 2022-05-26 22:03:07 +02:00
Philip AllgaierandGitHub abf7cb7a74 Add dynamic header/footer config determination and update struct (#12795) 2022-05-26 21:02:44 +02:00
Zack BarettandGitHub 6ec2e32241 Hide Cloud information a bit more (#12802) 2022-05-26 11:33:37 -07:00
Yosi LevyandGitHub b7cdd9a22f Merge pull request #12772 from yosilevy/RTL-switch
Various RTL fixes
2022-05-26 21:04:50 +03:00
Yosi Levy 6278eefc5d Remove import 2022-05-26 20:50:52 +03:00
Philip AllgaierandGitHub 73cf0b54c9 Dynamically determine the correct action config struct (#12798) 2022-05-26 19:26:25 +02:00
Zack BarettandGitHub 00dcecabb7 Set Error if entity is unavailable (#12791) 2022-05-26 19:25:00 +02:00
c9df93bc54 Fix Zwave Alerts on device page (#12785)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-26 10:15:24 -05:00
Zack BarettandGitHub 3550a8c263 Fix Switch as X unable to change to a new type (#12797) 2022-05-26 10:15:14 -05:00
Zack BarettandGitHub c0d30c56d6 Fix Media Player More info cramped controls (#12790) 2022-05-26 16:59:59 +02:00
Zack BarettandGitHub 10813d06b6 Use Hardware Integration for System Menu (#12789) 2022-05-26 12:57:14 +02:00
J. Nick KostonandGitHub d0ead1fdb8 Fix history cache when there is cacheConfig (#12788) 2022-05-25 20:39:55 -05:00
J. Nick KostonandGitHub b0e6c41238 Handle history api being passed entity ids as CSV (#12787) 2022-05-25 23:05:56 +00:00
Philip AllgaierandGitHub 2c1550b10f Fix typo in credentials removal dialog (#12784) 2022-05-25 18:09:15 +00:00
Philip AllgaierandGitHub ffc4ca5b56 Use dynamic weather domain icon + icon alignment fix weather more-info (#12781) 2022-05-25 19:39:34 +02:00
Zack BarettandGitHub 85ad6619b7 Bumped version to 20220525.0 (#12779) 2022-05-25 11:49:40 -05:00
Raman GuptaandGitHub 7358faf88e Update zwave_js/network_status WS API (#12735) 2022-05-25 11:49:25 -05:00
Philip AllgaierandGitHub 19d014307a Ensure state is vertically centered in more-info (#12780) 2022-05-25 11:40:04 -05:00
Philip AllgaierandGitHub 5217f5c50c Fix "unavailable" handling for climate state rendering (#12778) 2022-05-25 15:47:11 +00:00
Zack BarettandGitHub c4624faa71 Hardware MVP (#12773) 2022-05-25 17:11:15 +02:00
b35ba4d673 Add aria-haspopup to button menus (#12758)
Co-authored-by: Zack Barett <[email protected]>
2022-05-25 16:05:43 +02:00
Marc MuellerandGitHub f8303bff76 Move metadata to pyproject.toml (#12770) 2022-05-25 08:16:09 -05:00
e61aa266a6 Move Logbook and make device page better (#12763)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-25 12:55:08 +00:00
Raman GuptaandGitHub d7971c69ad Add controller statistics to zwave_js config dashboard (#12668) 2022-05-25 11:36:27 +02:00
Yosi Levy d65e45ecfd Various RTL fixes 2022-05-25 06:01:40 +03:00
966a624ef6 Move zwave_js node comments from device config to info page (#12625)
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2022-05-24 21:16:07 -05:00
Zack BarettandGitHub 7cc576a616 Bump Version to 20220524.0 (#12769) 2022-05-24 19:08:56 -05:00
2dec8e70ec Integration filter for Area Selector (#12682)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-24 23:26:14 +00:00
97663aef42 Add integration filter to Device Selector (#12680)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-24 23:25:09 +00:00
Paulus SchoutsenandGitHub 3f1a2526b3 Hide hidden media player entities in media panel (#12766) 2022-05-24 21:07:22 +00:00
Franck NijhofandGitHub e7517a8b61 Simplify OAuth2 authorize callback URL (#12765) 2022-05-24 13:32:33 -07:00
Thomas LovénandGitHub e3d394eb32 Change service_data to just data (#12628) 2022-05-24 10:49:07 -05:00
Yosi LevyandGitHub 536ea822b3 Fix (#12764) 2022-05-24 15:25:50 +00:00
Bram KragtenandGitHub 8e4e22b6f8 Add compare to energy sources table (#12762) 2022-05-24 17:20:16 +02:00
Yosi LevyandGitHub 2eaa246a03 RTL updates (#12745) 2022-05-24 15:14:11 +00:00
Philip AllgaierandGitHub e841bf89be Add My HA link to about page to Github issue template (#12761) 2022-05-24 08:42:34 -05:00
Philip AllgaierandGitHub 36e1203fb1 Adjust path to version info in issue template (#12760) 2022-05-24 13:10:26 +00:00
J. Nick KostonandGitHub 3acab5a39c Adjust logbook stream consumer to handle new metadata (#12755) 2022-05-23 22:37:45 -07:00
Zack BarettandGitHub 49cfde1fe7 Bumped version to 20220523.0 (#12756) 2022-05-23 16:26:00 -07:00
Philip AllgaierandGitHub 49c018c000 Allow setting device_class "outlet" again through entity settings (#12669)
* Allow setting `device_class` "outlet" again through UI

* Fixes

* Null check deviceClass and adjust used translation
2022-05-23 18:18:08 -05:00
b71b230bfd Make entities and devices independent in the scene editor (#11046)
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Erik <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-23 23:08:44 +00:00
Allen PorterandGitHub e1fd7244a5 Open Application Credentials from integration configuration flow (#12708) 2022-05-23 15:46:34 -07:00
J. Nick KostonandGitHub 067c2fdfa8 Use new logbook streaming websocket api for cases where we need end_time (#12753) 2022-05-23 15:40:05 -07:00
J. Nick KostonandGitHub a02b817d7f Use new localized context state and source in logbook (#12742) 2022-05-23 14:32:11 -05:00
7db6e0b779 Move preload_stream setting to entity settings (#12730)
Co-authored-by: Zack <[email protected]>
2022-05-23 18:30:57 +00:00
Joakim SørensenandGitHub 1d5cc91a2d Remove kernel and agent versions from about page (#12750) 2022-05-23 13:01:59 -05:00
Joakim SørensenandGitHub 0623e7dce4 Fetch supervisor info directly (#12751) 2022-05-23 13:00:16 -05:00
J. Nick KostonandGitHub da106d278c Use logbook livestream when requesting a time window that includes the future (#12744) 2022-05-23 12:58:50 -05:00
Joakim SørensenandGitHub 51c5ab33f0 Stop closed event when selecting datadisk (#12749) 2022-05-23 12:58:36 +02:00
Paulus Schoutsen 8ac4a6d900 Bumped version to 20220521.0 2022-05-20 17:28:06 -07:00
Paulus SchoutsenandGitHub fae1bcf0e0 Fixes logbook (#12740) 2022-05-20 11:25:19 -07:00
9a9eec40b2 Add an application credentials display name (#12720)
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-19 21:27:43 -07:00
6ab19d66d5 Add option to compare energy graphs with previous period (#12723)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-20 04:20:18 +00:00
a0a7ce014f Compute the icon based on the logbook state and not the current state (#12725)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-19 21:12:17 -07:00
Paulus SchoutsenandGitHub bfeb90780f Pass device ID to logbook if available (#12728) 2022-05-20 04:09:33 +00:00
J. Nick KostonandGitHub 1f105b6c15 Get attributes from first state when using minimal responses (#12732) 2022-05-19 20:56:11 -07:00
5b7b0ea326 Use device_id instead of config entry id and node id for zwave_js (#12658)
* Use device_id instead of config entry id and node id for zwave_js

* Add additional cleanup from #12642

* Revert removal of multiple config entries check

* Update src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-actions-zwave_js.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* Update src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-19 10:23:16 -07:00
Raman GuptaandGitHub 32a991989f Update zwave_js data collection URL (#12666) 2022-05-19 17:05:31 +02:00
Allen PorterandGitHub 788f76ab9c Add error handling for application credentials removal (#12686) 2022-05-19 16:51:33 +02:00
Yosi LevyandGitHub f6411dce66 Select + target picker Rtl fixes (#12711) 2022-05-19 16:28:56 +02:00
Yosi LevyandGitHub 6f19ea1d84 Various RTL fixes (#12721) 2022-05-19 16:25:30 +02:00
Michael IrigoyenandGitHub 448609533f Update Material Design Icons to v6.7.96 (#12111) 2022-05-19 16:21:00 +02:00
J. Nick KostonandGitHub 6c48ace41e Fix python to js timestamp conversions in logbook traces (#12677)
- The websocket version needs the time converted from
  where python stores the decimal
2022-05-18 12:36:08 -07:00
Paulus Schoutsen c41e100c1c Bumped version to 20220518.0 2022-05-18 12:10:42 -07:00
RoboMagusandGitHub 8216b522c2 Fix 'loading_log' string (#12712) 2022-05-18 12:09:31 -07:00
Paulus SchoutsenandGitHub 82035d587a Import all date-fns from modules (#12717) 2022-05-18 12:09:25 -07:00
2796c3570a Support requesting multiple integration manifests in a single request (#12706)
* Support requesting multiple integration manifests in a single request

* only fetch if there are some to actually fetch

* handle empty

* not truthy, wrong language

* Do not copy params

Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-18 12:09:09 -07:00
J. Nick KostonandGitHub f4f51e1de5 Show the integration brand icon when there is no entity in logbook (#12713) 2022-05-18 12:01:09 -07:00
J. Nick KostonandGitHub af6b0d3266 Support requesting translations for multiple integrations in one request (#12704)
* Support requesting translations for multiple integrations in one request

- Requires https://github.com/home-assistant/core/pull/71979

* onboarding as well

* integrations -> integration

* fix cache

* short return if they are all loaded

* reduce

* reduce

* reduce
2022-05-18 11:37:47 -07:00
Paulus SchoutsenandGitHub 7d1c77a38f Add support for OAuth2 callback via My (#12718) 2022-05-18 11:18:43 -07:00
J. Nick KostonandGitHub f807618f75 Convert history calls to use new websocket endpoint (#12662) 2022-05-18 10:20:38 -07:00
Steve RepsherandGitHub 4cfb6713cb Delete focus targets for replaced dialogs (#12724) 2022-05-18 16:18:22 +00:00
Patrick ZAJDAandGitHub d32f84f28d Add missing labels in energy dashboard settings (#12722)
Signed-off-by: Patrick ZAJDA <[email protected]>
2022-05-18 18:17:31 +02:00
Paulus SchoutsenandGitHub 5fb1504211 Add logbook to area info page (#12715) 2022-05-17 12:20:49 -07:00
Paulus SchoutsenandGitHub c37e1f0c9d Add logbook to device info page (#12714) 2022-05-17 11:02:23 -07:00
Paulus SchoutsenandGitHub 90c234ffad Refactor logbook data fetch logic into reusable class (#12701) 2022-05-17 08:53:22 -07:00
breakthestaticandGitHub dd3a3ec586 Add guard logic from PR home-assistant#12181 to input select row (#12703) 2022-05-17 10:25:32 +00:00
Zack BarettandGitHub 6f67da09c0 Show manage cloud link to config (#12673) 2022-05-17 12:14:43 +02:00
Franck NijhofandGitHub ba27c184f6 Add my support for Application Credentials (#12709) 2022-05-17 12:13:46 +02:00
Paulus SchoutsenandGitHub b37f97128a Fix float-end for LTR (#12707) 2022-05-17 08:20:19 +02:00
Bram Kragten ee0de942f7 Bumped version to 20220516.0 2022-05-16 20:37:50 +02:00
Steve RepsherandGitHub ae2d48f2f4 Return focus after dialogs close (#11999) 2022-05-16 17:10:41 +02:00
Yosi LevyandGitHub 1bd760b455 Rtl changes (#12693) 2022-05-16 15:57:14 +02:00
Joakim SørensenandGitHub 3d66a68791 Guard for missing backup integration (#12696) 2022-05-16 13:39:41 +02:00
01a53439c4 Teach logbook about additional context data (#12667)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-15 21:25:55 -07:00
SvenandGitHub 09ee8dbeb6 Update Lokalise URL (#12684) 2022-05-15 17:59:31 +02:00
Philip AllgaierandGitHub f36c91550d Add missing label to search icon (#12671) 2022-05-13 18:58:01 -04:00
Franck NijhofandGitHub 6be6c711d0 Fix strict error handling in Markdown card templates (#12661) 2022-05-13 13:17:56 +02:00
Allen PorterandGitHub 72a36fb1cd Add calendar trigger offsets in automation editor (#12486)
* Add calendar trigger offsets in automation editor

* Use duration selector for offset

* Fix typing for offsets/duratons
2022-05-12 07:42:15 -05:00
J. Nick KostonandGitHub 4c982b3323 Switch logbook calls to use the new websocket (#12665) 2022-05-11 22:28:18 -05:00
Yosi LevyandGitHub c9c3be71cc Merge pull request #12620 from yosilevy/RTL-no-host-context
Replace host-context with css properties - after session with Bram
2022-05-11 16:30:21 +03:00
Bram Kragten f1b965dcc5 Update ha-fab.ts 2022-05-11 15:19:03 +02:00
Bram Kragten a08a23a93d Use FabBase 2022-05-11 14:25:43 +02:00
Bram Kragten 2040a49458 Update var name 2022-05-11 14:21:02 +02:00
Bram KragtenandGitHub df94f4f907 Merge branch 'dev' into RTL-no-host-context 2022-05-11 14:18:26 +02:00
Bram Kragten 96d375cb84 Use / 2022-05-11 14:16:44 +02:00
7a9c2f56c5 Rtl menu fix (#12561)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-11 11:01:45 +02:00
J. Nick KostonandGitHub 5ec7193e5c Show script traces in logbook (#12643) 2022-05-10 23:32:09 +02:00
d89e4337f2 Hide Cloud URL - Add Copy Icon (#12655)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-10 19:37:31 +00:00
Zack BarettandGitHub 2e192d5021 Update Translations to create helper (#12656) 2022-05-10 21:25:03 +02:00
Yosi Levy 7db28c0156 Update following review 2022-05-10 19:31:23 +03:00
f09c842981 Update src/state/translations-mixin.ts
Co-authored-by: Bram Kragten <[email protected]>
2022-05-10 18:25:28 +03:00
Yosi LevyandGitHub b295bbd706 RTL settings clickable list item fix (#12595) 2022-05-10 16:57:18 +02:00
Patrick ZAJDAandGitHub 8d3132fefc Add label for Fix issue column header in statistics developer tools (#12597)
Signed-off-by: Patrick ZAJDA <[email protected]>
2022-05-09 17:14:59 +02:00
00c5d3dbbb Add configuration panel for Application Credentials (#12344)
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Zack <[email protected]>
2022-05-09 17:03:59 +02:00
Zack BarettandGitHub ca37aff47d Move YAML to first tab of Developer Tools (#12589) 2022-05-09 08:07:17 -05:00
Joakim SørensenandGitHub 9ed069ef6a Get full core logs from core (#12639) 2022-05-09 08:07:01 -05:00
Philip AllgaierandGitHub 6faa3eb848 Remove "Lovelace" from Github issue templates (#12614)
* Remove "Lovelace" from Github issue templates

* Changes from review
2022-05-09 09:47:39 +02:00
Paulus SchoutsenandGitHub 1b158d8310 Merge pull request #12619 from home-assistant/cherry-pick-search
20220504.1
2022-05-07 14:14:39 -07:00
Yosi Levy 6c73ae5bf7 Replace host-context with css properties 2022-05-07 06:39:39 +03:00
Zack 9d2fcec458 Version Bump 2022-05-06 22:30:34 -05:00
Zack Barett 60cd6c65f0 Revert #10991 (#12618) 2022-05-06 22:00:01 -05:00
Zack BarettandGitHub ce77ddf365 Revert #10991 (#12618) 2022-05-07 02:48:57 +00:00
Steve RepsherandGitHub cf05fbaa9d Fix enter key support for generic dialog box (#12600) 2022-05-06 13:32:44 +02:00
Joakim SørensenandGitHub 552c474feb Fix setting _externalAccess (#12584) 2022-05-04 08:17:09 -05:00
Bram KragtenandGitHub a39af9c307 Merge pull request #12582 from home-assistant/dev 2022-05-04 13:28:04 +02:00
Bram Kragten a4f8e886bc Bumped version to 20220504.0 2022-05-04 13:14:25 +02:00
Bram KragtenandGitHub cc0c96b8b4 Make update notification better, add progress (#12581) 2022-05-04 11:09:54 +00:00
Philip AllgaierandGitHub 445f0e23fe System menu description tweaks (#12578) 2022-05-04 11:07:41 +00:00
Bram KragtenandGitHub 6f240297d1 Remove hassio config panel (#12580) 2022-05-04 10:20:41 +00:00
Paulus SchoutsenandGitHub 6da4981b70 Clone on duplicate (#12574) 2022-05-04 12:04:59 +02:00
Zack BarettandGitHub cfadf4d700 Fixes issue where the grid cards wouldnt be sized correctly (#12571) 2022-05-04 12:04:24 +02:00
Zack BarettandGitHub 7e60de0531 Add padding when no updates (#12575) 2022-05-04 11:59:24 +02:00
Zack BarettandGitHub aaef6d7b91 Fix Overlapping Media List items (#12569) 2022-05-03 23:10:40 +02:00
+14 02af4c2156 Bump Master to 20220503.0 (#12567)
* Use selectors for add-on configurations (#12234)

* replace ToggleSwitch with new LightSwitch (#12218)

* Fix statistics chart for sum stat without state (#12238)

* Use selectors for add-on network configuration (#12235)

* Use selectors for add-on network configuration

* Show container port as UOM if advanced user

* adjust

* Only show "required" indicator if we have a selector label (#12241)

* Lineup sidebar badges

* Exclude hidden entities from area card

* Fix entity and device selector with `multiple: true`

* Adjust import

* Guard for partial translations (#12296)

* Fix add-on security rating range (#12300)

* Use more text selector types for add-on configuration (#12303)

* Prevent empty brackets if no manufacturer during config entry creation (#12288)

* Fix endless loading screen in zwave-js config (#12295)

* Update cloud text (#12305)

* Select default mode if none set (#12306)

* Decode view path URL (#12310)

* Always render title field (#12319)

* Use new mdi icons for smoke and co detection (#12323)

* Split only on first comma in media browser (#12331)

* Allow tapping on the name on a picture entity card (#12332)

* RTL calendar fix - arrows fix and views fix (#12314)

* RTL calendar fix - arrows fix and views fix

* Removed path attributes

* Quickly search for entities from the Overview Dashboard (#12324)

* Allow selecting multiple entities for state trigger (#12334)

Co-authored-by: Zack Barett <[email protected]>

* Add Template selector (#12348)

* Add basic frontend support for siren (#12345)

* Fix strict error handling in developer tools templates (#12352)

* Bump HAWS to 7.0.3 (#12358)

* Add clear skipped to update more-info dialog (#12361)

* Adding blueprint input description markdown/multi-line support (#12291)

* Github no longer supports the (insecure) git protocol (#12359)

* Add if/else automation/script action (#12301)

Co-authored-by: Zack Barett <[email protected]>

* Add stop script/automation action (#12299)

* Getting started on Configuration Changes (#12309)

Co-authored-by: Bram Kragten <[email protected]>

* Config menu updates to get it ready for nightly (#12368)

* Bumped version to 20220420.0 (#12369)

* Use template selector in wait_template (#12366)

* Add jinja2 editor to template triggers/conditions (#12365)

Co-authored-by: Zack <[email protected]>

* Fix for monetary entities (#12378)

* Add entity search tip to dev-tools set state (#12355)

* Added ability to retry on initialization errors. (#12103)

* RTL fixes (#12367)

* zwave_js: Add title tag to config box heading (#12387)

* Accept new value when hitting ENTER to close a prompt dialog (#12360)

Co-authored-by: Zack Barett <[email protected]>

* RTL reading orders and alignments in system log (#12388)

* Add automation editor for calendar trigger (#12343)

* Add calendar event end trigger to automation editor (#12389)

* Show vacuum state in more-info dialog for StateVacuumEntity (#12391)

* Add Empty list item for None (#12356)

* Force LTR on time & number inputs (#12393)

* Fix Dashboard URLs (#12394)

* Update zwavejs controller model (#12390)

* Configuration Menu Updates 3 (#12377)

* Bumped version to 20220424.0

* Config Menu: Addressing Comments in #12377 (#12399)

* Add shorthand condition to the gallery (#12400)

* Virtualize Media Player Grid (#11898)

* Hide supervisor only config, fix backup config page (#12401)

* Fix broken cards being able to crash entire view (#11440)

* Add supervisor network interface settings (#12403)

* Fix zones (#12409)

* Add supervisor hostname config (#12407)

* Add Hardware Page to Configuration System Menu (#12405)

* Add Supervisor logs to core page (#12410)

* Allow Showing Skipped Updates on Updates Page (#12415)

* Configuration Menu Cleanup items (#12413)

* Backup Page - Will load which is available (#12414)

* Move System Health to a page (#12412)

* Show what updates are skipped (#12418)

* Don't show tabs in supervisor (#12417)

* Better gauge segment coloring (#11570)

* Move Data Disk Moving to Storage (#12416)

* Add supervisor, OS version info to about page (#12421)

* Add supervisor, OS version info to about page

* description

* description

* Allow for checking for updates (#12422)

* Fix title and description for menu step in options flow (#12420)

* link to updates page (#12423)

* Show usage stats in System Health (#12424)

* Bumped version to 20220425.0 (#12425)

* Format sensors with state class duration (#12426)

* Guard against non OS installation (#12427)

* Typo in en.json (#12428)

* Move unsupported and unhealthy alerts (#12431)

* Fix log syntax highlight when fetching logs from supervisor (#12430)

* Resources lovelace should just go back (#12432)

* Redirect hassio system my links to new locations (#12429)

* Fix backup back path (#12435)

* Add join/leave beta to updates panel (#12436)

* Fix settings row width (#12438)

* Dont show tabs when less than 2 (#12439)

* Set border radius in config to 8px (#12437)

* Fix incorrect text if no backups are found (#12441)

* Add header to supervisor backups page (#12444)

* Fix content display for `ha-network` after #12438 (#12445)

* Fix content display for `ha-network` after #12438

* Add var default

* Add title to backups config page (#12442)

* Fix integration page on mobile (#12447)

* Add "m" keyboard shortcut to get to the create my link page (#12451)

* Terms based entities search (#10991)

* Small edits on config menu (#12440)

* Fix for backup overflow (#12454)

* Update the hint for key C (#12458)

* Fix when creating new area in picker #11392 (#12457)

* Fix more info input number #12396 (#12456)

* Update Configuration badge color to be accent color to match (#12455)

* Move Provider Selection to Menu on top header (#12443)

* Move the analytics link (#12459)

* Fix Updates Page Toast - Move to overflow (#12453)

* Move Zones Edit to General config + add general config page (#12452)

* Move Zones Edit to General config + add general

* Update src/translations/en.json

Co-authored-by: Paulus Schoutsen <[email protected]>

* add paper tooltip back for yaml

Co-authored-by: Paulus Schoutsen <[email protected]>

* Tweak menu descriptions (#12460)

* Fix my link for config dashboard and profile (#12461)

* Fix my link for config dashboard and profile

* add server control redirect

Co-authored-by: Zack <[email protected]>

* Fix icon alignment in nav list (#12463)

* Add a tip for my shortcut (#12462)

* Move Restart to Overflow and yaml config advanced (#12446)

* Move Restart to Overflow and yaml config advanced

* Move around YAML Config page

* Move to developer tools

* Make card actions

* Update Translations

* Bumped version to 20220427.0

* Use correct label for update config menu (#12465)

* Make helper option button more user friendly (#12468)

* Add hass-quick-bar-trigger event to trigger quickbar from supervisor (#12467)

* Use startsWith for m shortcut for partial match (#12464)

* Add supervisor redirects to m keyboard shortcut (#12466)

* Safeguard against non-existant area in device handling (#12475)

* RTL fix for log buttons (#12474)

* Fix YAML Config Invalid button (#12476)

* Small config fixes (#12472)

* Visual tweaks to YAML validation results (#12479)

* Add some bottom padding to YAML conf dev tools page (#12477)

Co-authored-by: Zack Barett <[email protected]>

* Fix Restarting Home Assistant (#12480)

* Fix Restarting Home ASsistant

* Update src/panels/config/core/ha-config-system-navigation.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* Update src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* reviews

Co-authored-by: Paulus Schoutsen <[email protected]>

* Move General Up in the system menu (#12483)

* Media panel fix (#12485)

* add my redirects for new config pages (#12481)

* Add template editor to Markdown card editor (#12490)

* Address minor comments about config menu (#12492)

* Hide and sort secondary device automations (#12496)

* Evaluate condition shorthands in editors (#12473)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Add support for enabling/disabling trigger/condition/action (#12493)

* Add support for enabling/disabling trigger/condition/action

* Add more visual indication of disabled

* review

* margin

* Dont make overflow transparent

* Change color of bar

* Add parallel automation/script action (#12491)

* Add Board Names, Move All Hardware (#12484)

Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Change Restart to be a button, update dialogs (#12499)

* Bumped version to 20220428.0 (#12501)

* Fix Wrap menu and remove menu title (#12505)

* form-string password fix (#12507)

* Use media query for config menu mobile (#12510)

* Fix incorrect 3-dot menu labels (config hardware & storage) (#12512)

* Media browser RTL fixes (#12506)

* Fix `continue_on_timeout` default on `wait_template` automation visual editor (#12511)

* Support shorthand logical operators in script sequences (#12509)

* Only show Card Content if OS exist (#12513)

* Add condition shorthand to action types (#12514)

* Fix for external url not logged into cloud (#12516)

* Restart Home ASsistant button - Make less red and less big (#12515)

* Add actions to design gallery (#12518)

* Add actions to design gallery

* Update describe-action.ts

* Move integrations to System Health (#12504)

* Add if, parallel and stop action to trace graph (#12520)

* Bumped version to 20220429.0 (#12521)

* Change color of persons for real this time (#12527)

* Ignore modifier keys when forwarding events to quickbar (#12525)

* Add optional repository_url to supervisor_addon my link (#12524)

* Calendar-card fix (#12532)

* Handle condition shorthands in trace graphs (#12533)

* Make the "Aborted: Reauthentication successful" more user friendly (#12530)

Replace the "Aborted" in the title with the integration name to make the user error
messages more user friendly. The message itself ("Reauthentication successful" or "Missing configuraiton, etc) error
message is descriptive enought that we can replace the title with the integration
name and still preserve the meeting. The advance is that this doesn't confuse users
who are surprised by it saying "Aborted" when things were successful

https://github.com/home-assistant/core/issues/47135

* Prevent color temp selector mired exception (#12536)

* Fix some issues and feedback with About and system health (#12537)

* Add descriptions for actions (#12541)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Add repeat to trace timeline (#12547)

* Change name to Settings (#12548)

* Add trace timeline for if (#12543)

* Fix script graph parallel (#12545)

* Handle if in repeat (#12544)

* Add parallel action to trace timeline (#12549)

* Indicate things are disabled in trace graph (#12550)

* Indicate things are disabled in trace graph

* Update hat-script-graph.ts

* Bumped version to 20220502.0

* Add add-on logs to log selector (#12556)

* Fix Webhook Overflow (#12551)

* Search in Overflow on Mobile (#12552)

* Use ha-tip for yaml move tip (#12559)

* Update Quickbar Section Logic to include all (#12553)

* Use outline for cards on config pages (#12558)

* Add supervisor redirects to quickbar (#12557)

Co-authored-by: Bram Kragten <[email protected]>

* Fix searching in hassio logs (#12560)

* Add disabled support to trace timeline and step details (#12555)

* Add new system menu descriptions (#12564)

* Add missing outlined to supervisor panel (#12565)

* Bumped version to 20220503.0 (#12566)

Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Marius <[email protected]>
Co-authored-by: Erik Montnemery <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
Co-authored-by: Kuba Wolanin <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: J. Nick Koston <[email protected]>
Co-authored-by: Yosi Levy <[email protected]>
Co-authored-by: Raman Gupta <[email protected]>
Co-authored-by: Simon Vallières <[email protected]>
Co-authored-by: Eric Stern <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Wesley Vos <[email protected]>
Co-authored-by: Mark Lopez <[email protected]>
Co-authored-by: Allen Porter <[email protected]>
Co-authored-by: yangqian <[email protected]>
Co-authored-by: Thomas Lovén <[email protected]>
Co-authored-by: Netzwerkfehler <[email protected]>
Co-authored-by: Artem Sorokin <[email protected]>
Co-authored-by: Jaroslav Hanslík <[email protected]>
Co-authored-by: Johann Vanackere <[email protected]>
Co-authored-by: Bruno Maia <[email protected]>
2022-05-03 11:14:32 -07:00
Zack BarettandGitHub 58c5ce2638 Bumped version to 20220503.0 (#12566) 2022-05-03 11:14:12 -07:00
Joakim SørensenandGitHub a9d01c7b55 Add missing outlined to supervisor panel (#12565) 2022-05-03 17:06:21 +00:00
Zack BarettandGitHub c5de8a4361 Add new system menu descriptions (#12564) 2022-05-03 16:44:43 +00:00
Bram KragtenandGitHub b53645ce92 Add disabled support to trace timeline and step details (#12555) 2022-05-03 09:50:33 -05:00
Bram KragtenandGitHub de34a5a597 Fix searching in hassio logs (#12560) 2022-05-03 07:30:01 -05:00
bd8e15bdd1 Add supervisor redirects to quickbar (#12557)
Co-authored-by: Bram Kragten <[email protected]>
2022-05-03 11:57:09 +00:00
Bram KragtenandGitHub 45c7e0eeeb Use outline for cards on config pages (#12558) 2022-05-03 06:44:55 -05:00
Zack BarettandGitHub a35a380ec7 Update Quickbar Section Logic to include all (#12553) 2022-05-03 13:25:46 +02:00
Bram KragtenandGitHub 02e67d1146 Use ha-tip for yaml move tip (#12559) 2022-05-03 11:22:48 +00:00
Zack BarettandGitHub a5411f7ac4 Search in Overflow on Mobile (#12552) 2022-05-03 13:17:47 +02:00
Zack BarettandGitHub e8da203fe1 Fix Webhook Overflow (#12551) 2022-05-03 13:17:02 +02:00
Joakim SørensenandGitHub 10aa0a8829 Add add-on logs to log selector (#12556) 2022-05-03 13:13:20 +02:00
Paulus Schoutsen 85a37e2d2f Bumped version to 20220502.0 2022-05-02 15:08:01 -07:00
Bram KragtenandGitHub ba8621fa2c Indicate things are disabled in trace graph (#12550)
* Indicate things are disabled in trace graph

* Update hat-script-graph.ts
2022-05-02 15:07:36 -07:00
Bram KragtenandGitHub 43e80f1a2e Add parallel action to trace timeline (#12549) 2022-05-02 15:07:01 -07:00
Bram KragtenandGitHub 3a305a44b6 Handle if in repeat (#12544) 2022-05-02 14:48:28 -07:00
Bram KragtenandGitHub e99143139e Fix script graph parallel (#12545) 2022-05-02 14:47:43 -07:00
Bram KragtenandGitHub f0c7232704 Add trace timeline for if (#12543) 2022-05-02 14:47:17 -07:00
Zack BarettandGitHub b2186592df Change name to Settings (#12548) 2022-05-02 23:29:06 +02:00
Bram KragtenandGitHub e51e3e79d5 Add repeat to trace timeline (#12547) 2022-05-02 17:16:32 +00:00
3b6b4d7664 Add descriptions for actions (#12541)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-05-02 15:06:55 +00:00
Zack BarettandGitHub 239e71b414 Fix some issues and feedback with About and system health (#12537) 2022-05-02 12:54:55 +02:00
Philip AllgaierandGitHub 080cad0ccd Prevent color temp selector mired exception (#12536) 2022-05-01 22:21:25 +00:00
Allen PorterandGitHub dd49fd2788 Make the "Aborted: Reauthentication successful" more user friendly (#12530)
Replace the "Aborted" in the title with the integration name to make the user error
messages more user friendly. The message itself ("Reauthentication successful" or "Missing configuraiton, etc) error
message is descriptive enought that we can replace the title with the integration
name and still preserve the meeting. The advance is that this doesn't confuse users
who are surprised by it saying "Aborted" when things were successful

https://github.com/home-assistant/core/issues/47135
2022-05-01 11:02:32 -05:00
Thomas LovénandGitHub a571fb5528 Handle condition shorthands in trace graphs (#12533) 2022-05-01 10:59:46 -05:00
Yosi LevyandGitHub 1369c1ae8c Calendar-card fix (#12532) 2022-05-01 10:59:12 -05:00
Joakim SørensenandGitHub f5864181af Add optional repository_url to supervisor_addon my link (#12524) 2022-04-30 16:53:43 -05:00
Joakim SørensenandGitHub a4a0d7cf19 Ignore modifier keys when forwarding events to quickbar (#12525) 2022-04-30 16:52:14 -05:00
Bram KragtenandGitHub 092dfd1e87 Change color of persons for real this time (#12527) 2022-04-30 14:31:43 -05:00
Zack BarettandGitHub a29ac33810 Bumped version to 20220429.0 (#12521) 2022-04-29 15:37:42 -07:00
Bram KragtenandGitHub 1421df2a5a Add if, parallel and stop action to trace graph (#12520) 2022-04-29 16:30:40 -05:00
Zack BarettandGitHub 591b8cc503 Move integrations to System Health (#12504) 2022-04-29 20:53:24 +02:00
Bram KragtenandGitHub 011467ece0 Add actions to design gallery (#12518)
* Add actions to design gallery

* Update describe-action.ts
2022-04-29 20:51:44 +02:00
Zack BarettandGitHub f52e8c3392 Restart Home ASsistant button - Make less red and less big (#12515) 2022-04-29 19:15:43 +02:00
Zack BarettandGitHub c8b87b65bd Fix for external url not logged into cloud (#12516) 2022-04-29 16:19:53 +00:00
Thomas LovénandGitHub 98cc82db44 Add condition shorthand to action types (#12514) 2022-04-29 15:40:03 +00:00
Zack BarettandGitHub f510e2a8e0 Only show Card Content if OS exist (#12513) 2022-04-29 16:49:47 +02:00
Franck NijhofandGitHub 3438912ba5 Support shorthand logical operators in script sequences (#12509) 2022-04-29 09:47:44 -05:00
Bruno MaiaandGitHub 671c8e387f Fix continue_on_timeout default on wait_template automation visual editor (#12511) 2022-04-29 14:37:35 +00:00
Yosi LevyandGitHub 0108ec65cf Media browser RTL fixes (#12506) 2022-04-29 09:27:06 -05:00
Philip AllgaierandGitHub 39f7034578 Fix incorrect 3-dot menu labels (config hardware & storage) (#12512) 2022-04-29 09:24:37 -05:00
Bram KragtenandGitHub bf8affaf2b Use media query for config menu mobile (#12510) 2022-04-29 07:41:27 -05:00
Yosi LevyandGitHub e16a61eb53 form-string password fix (#12507) 2022-04-29 11:50:19 +02:00
Zack BarettandGitHub cadbe45bab Fix Wrap menu and remove menu title (#12505) 2022-04-28 19:23:23 -07:00
Zack BarettandGitHub 51f971337d Bumped version to 20220428.0 (#12501) 2022-04-28 13:50:08 -07:00
Zack BarettandGitHub 1f3c23de29 Change Restart to be a button, update dialogs (#12499) 2022-04-28 13:43:00 -07:00
bdfb17d957 Add Board Names, Move All Hardware (#12484)
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-04-28 20:42:18 +00:00
Franck NijhofandGitHub 8c97aee1fe Add parallel automation/script action (#12491) 2022-04-28 15:09:03 -05:00
Bram KragtenandGitHub 38b4090daa Add support for enabling/disabling trigger/condition/action (#12493)
* Add support for enabling/disabling trigger/condition/action

* Add more visual indication of disabled

* review

* margin

* Dont make overflow transparent

* Change color of bar
2022-04-28 18:37:58 +02:00
b8c55f2f65 Evaluate condition shorthands in editors (#12473)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-04-28 08:36:17 -07:00
Bram KragtenandGitHub 7ca379e0a1 Hide and sort secondary device automations (#12496) 2022-04-28 08:53:56 -05:00
Bram KragtenandGitHub 1617a9dfed Address minor comments about config menu (#12492) 2022-04-28 08:44:01 -05:00
Franck NijhofandGitHub 2c9411c6c3 Add template editor to Markdown card editor (#12490) 2022-04-28 12:40:39 +02:00
Zack BarettandGitHub 67626d4a06 add my redirects for new config pages (#12481) 2022-04-28 12:39:35 +02:00
Yosi LevyandGitHub 8135611688 Media panel fix (#12485) 2022-04-28 05:16:18 +00:00
Zack BarettandGitHub 3ccbf6983e Move General Up in the system menu (#12483) 2022-04-27 22:08:21 -07:00
e4f91195d8 Fix Restarting Home Assistant (#12480)
* Fix Restarting Home ASsistant

* Update src/panels/config/core/ha-config-system-navigation.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* Update src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* reviews

Co-authored-by: Paulus Schoutsen <[email protected]>
2022-04-27 15:55:04 -07:00
2751f8f33b Add some bottom padding to YAML conf dev tools page (#12477)
Co-authored-by: Zack Barett <[email protected]>
2022-04-27 22:18:25 +02:00
Philip AllgaierandGitHub 57f2df3b3e Visual tweaks to YAML validation results (#12479) 2022-04-27 19:57:41 +00:00
Zack BarettandGitHub 6822f0d067 Small config fixes (#12472) 2022-04-27 12:22:57 -07:00
Zack BarettandGitHub cfba957313 Fix YAML Config Invalid button (#12476) 2022-04-27 13:57:57 -05:00
Yosi LevyandGitHub 3149ffbf19 RTL fix for log buttons (#12474) 2022-04-27 12:26:19 -05:00
Philip AllgaierandGitHub 4cd8b76d7e Safeguard against non-existant area in device handling (#12475) 2022-04-27 12:25:13 -05:00
Joakim SørensenandGitHub 4b644d8bc5 Add supervisor redirects to m keyboard shortcut (#12466) 2022-04-27 13:36:47 +00:00
Joakim SørensenandGitHub 307cd5ad8c Use startsWith for m shortcut for partial match (#12464) 2022-04-27 08:10:38 -05:00
Joakim SørensenandGitHub ebc807a6a4 Add hass-quick-bar-trigger event to trigger quickbar from supervisor (#12467) 2022-04-27 08:08:45 -05:00
Philip AllgaierandGitHub 66adecdfc9 Make helper option button more user friendly (#12468) 2022-04-27 08:07:57 -05:00
Philip AllgaierandGitHub 2cc6432a0f Use correct label for update config menu (#12465) 2022-04-27 06:37:50 -05:00
Paulus Schoutsen a2c0c0474a Bumped version to 20220427.0 2022-04-26 22:13:16 -07:00
Zack BarettandGitHub 27884b9a54 Move Restart to Overflow and yaml config advanced (#12446)
* Move Restart to Overflow and yaml config advanced

* Move around YAML Config page

* Move to developer tools

* Make card actions

* Update Translations
2022-04-26 22:12:44 -07:00
Paulus SchoutsenandGitHub 293df61872 Add a tip for my shortcut (#12462) 2022-04-27 05:01:40 +00:00
Paulus SchoutsenandGitHub f82dada3e5 Fix icon alignment in nav list (#12463) 2022-04-26 21:58:26 -07:00
e5824c4794 Fix my link for config dashboard and profile (#12461)
* Fix my link for config dashboard and profile

* add server control redirect

Co-authored-by: Zack <[email protected]>
2022-04-27 04:58:18 +00:00
Paulus SchoutsenandGitHub 186550229c Tweak menu descriptions (#12460) 2022-04-27 04:53:42 +00:00
7877dd8e6b Move Zones Edit to General config + add general config page (#12452)
* Move Zones Edit to General config + add general

* Update src/translations/en.json

Co-authored-by: Paulus Schoutsen <[email protected]>

* add paper tooltip back for yaml

Co-authored-by: Paulus Schoutsen <[email protected]>
2022-04-26 21:53:29 -07:00
Zack BarettandGitHub b03abc249b Fix Updates Page Toast - Move to overflow (#12453) 2022-04-26 21:52:22 -07:00
Paulus SchoutsenandGitHub fda03918b9 Move the analytics link (#12459) 2022-04-27 04:40:01 +00:00
Zack BarettandGitHub 6747375a1b Move Provider Selection to Menu on top header (#12443) 2022-04-26 23:27:15 -05:00
Zack BarettandGitHub 53b6e31881 Update Configuration badge color to be accent color to match (#12455) 2022-04-26 21:12:09 -07:00
Zack BarettandGitHub fa004de2d1 Fix more info input number #12396 (#12456) 2022-04-26 21:11:54 -07:00
Zack BarettandGitHub 3605f7b70f Fix when creating new area in picker #11392 (#12457) 2022-04-26 21:11:38 -07:00
Zack BarettandGitHub 5348c54c91 Update the hint for key C (#12458) 2022-04-26 21:11:18 -07:00
Zack BarettandGitHub 684e4421bc Fix for backup overflow (#12454) 2022-04-26 21:10:35 -07:00
Zack BarettandGitHub 28f5611df5 Small edits on config menu (#12440) 2022-04-26 21:07:53 -07:00
Johann VanackereandGitHub 8da73d49d7 Terms based entities search (#10991) 2022-04-26 19:39:58 -05:00
Joakim SørensenandGitHub 049ddd5f84 Add "m" keyboard shortcut to get to the create my link page (#12451) 2022-04-27 00:11:09 +02:00
Bram KragtenandGitHub 8ae2d4e93a Fix integration page on mobile (#12447) 2022-04-26 14:38:59 -05:00
Philip AllgaierandGitHub 824bb9ba35 Add title to backups config page (#12442) 2022-04-26 21:04:32 +02:00
Philip AllgaierandGitHub d550b1a18e Fix content display for ha-network after #12438 (#12445)
* Fix content display for `ha-network` after #12438

* Add var default
2022-04-26 20:41:19 +02:00
Bram KragtenandGitHub dea6c0e761 Add header to supervisor backups page (#12444) 2022-04-26 17:53:32 +00:00
Philip AllgaierandGitHub 9caee357c0 Fix incorrect text if no backups are found (#12441) 2022-04-26 12:32:04 -05:00
Bram KragtenandGitHub 35d892c418 Set border radius in config to 8px (#12437) 2022-04-26 11:50:36 -05:00
Bram KragtenandGitHub 9572a2a46b Dont show tabs when less than 2 (#12439) 2022-04-26 15:39:50 +00:00
Bram KragtenandGitHub 8996361b26 Fix settings row width (#12438) 2022-04-26 15:17:00 +00:00
Joakim SørensenandGitHub 02ee731602 Add join/leave beta to updates panel (#12436) 2022-04-26 16:39:37 +02:00
Joakim SørensenandGitHub bb1e6bf35b Fix backup back path (#12435) 2022-04-26 15:29:56 +02:00
Joakim SørensenandGitHub c1b65285c1 Redirect hassio system my links to new locations (#12429) 2022-04-26 13:15:29 +02:00
Bram KragtenandGitHub 8b8d6e5fa3 Resources lovelace should just go back (#12432) 2022-04-26 11:12:14 +00:00
Joakim SørensenandGitHub c34fe184e8 Fix log syntax highlight when fetching logs from supervisor (#12430) 2022-04-26 06:09:39 -05:00
Joakim SørensenandGitHub 7363838f86 Move unsupported and unhealthy alerts (#12431) 2022-04-26 12:24:55 +02:00
Jaroslav HanslíkandGitHub 3081425ccd Typo in en.json (#12428) 2022-04-26 12:20:26 +02:00
Joakim SørensenandGitHub 95d494a54c Guard against non OS installation (#12427) 2022-04-26 12:18:43 +02:00
J. Nick KostonandGitHub 145e5d7bc6 Format sensors with state class duration (#12426) 2022-04-26 02:07:11 +00:00
Zack BarettandGitHub 876fd9e85a Bumped version to 20220425.0 (#12425) 2022-04-25 18:25:07 -05:00
Zack BarettandGitHub e8c30cabca Show usage stats in System Health (#12424) 2022-04-25 23:24:58 +00:00
Bram KragtenandGitHub 490f84a7b1 link to updates page (#12423) 2022-04-25 15:56:34 -05:00
Artem SorokinandGitHub ca28178b86 Fix title and description for menu step in options flow (#12420) 2022-04-25 20:26:05 +00:00
Zack BarettandGitHub 2fceb0aeee Allow for checking for updates (#12422) 2022-04-25 22:15:26 +02:00
Bram KragtenandGitHub 86f39d1d43 Add supervisor, OS version info to about page (#12421)
* Add supervisor, OS version info to about page

* description

* description
2022-04-25 22:14:32 +02:00
Zack BarettandGitHub 1faf60444d Move Data Disk Moving to Storage (#12416) 2022-04-25 20:49:44 +02:00
NetzwerkfehlerandGitHub e927091d21 Better gauge segment coloring (#11570) 2022-04-25 13:43:53 -05:00
Bram KragtenandGitHub cff2f856b3 Don't show tabs in supervisor (#12417) 2022-04-25 13:37:48 -05:00
Bram KragtenandGitHub a743e3bbba Show what updates are skipped (#12418) 2022-04-25 18:37:24 +00:00
Zack BarettandGitHub f8a52d250e Move System Health to a page (#12412) 2022-04-25 20:26:53 +02:00
Zack BarettandGitHub b70a523bdf Backup Page - Will load which is available (#12414) 2022-04-25 19:54:11 +02:00
Zack BarettandGitHub 8f2ed747e6 Configuration Menu Cleanup items (#12413) 2022-04-25 19:53:02 +02:00
Zack BarettandGitHub 5deccefb15 Allow Showing Skipped Updates on Updates Page (#12415) 2022-04-25 19:50:30 +02:00
Zack BarettandGitHub 3f04abfa9d Add Supervisor logs to core page (#12410) 2022-04-25 15:35:03 +00:00
Zack BarettandGitHub 8e55c83996 Add Hardware Page to Configuration System Menu (#12405) 2022-04-25 17:30:53 +02:00
Bram KragtenandGitHub dee59486ba Add supervisor hostname config (#12407) 2022-04-25 10:27:38 -05:00
Bram KragtenandGitHub 77ef509aea Fix zones (#12409) 2022-04-25 15:13:31 +00:00
Bram KragtenandGitHub bfa7bccfa6 Add supervisor network interface settings (#12403) 2022-04-25 16:21:03 +02:00
Thomas LovénandGitHub a8c365edc8 Fix broken cards being able to crash entire view (#11440) 2022-04-25 14:37:32 +02:00
Bram KragtenandGitHub 94953ddf6c Hide supervisor only config, fix backup config page (#12401) 2022-04-25 07:09:23 -05:00
Zack BarettandGitHub 6b67546daf Virtualize Media Player Grid (#11898) 2022-04-25 12:32:50 +02:00
Paulus SchoutsenandGitHub 3e188d1f87 Add shorthand condition to the gallery (#12400) 2022-04-25 10:00:28 +02:00
Zack BarettandGitHub f69eb15a90 Config Menu: Addressing Comments in #12377 (#12399) 2022-04-24 20:25:47 -07:00
Paulus Schoutsen dfe348187f Bumped version to 20220424.0 2022-04-24 15:26:42 -07:00
Zack BarettandGitHub 9706c56c5c Configuration Menu Updates 3 (#12377) 2022-04-24 15:26:01 -07:00
Raman GuptaandGitHub 3677c5be2c Update zwavejs controller model (#12390) 2022-04-24 14:55:31 -07:00
Zack BarettandGitHub bd339fa963 Fix Dashboard URLs (#12394) 2022-04-24 14:55:04 -07:00
Yosi LevyandGitHub 28f1b6bdf4 Force LTR on time & number inputs (#12393) 2022-04-23 19:48:17 -05:00
Zack BarettandGitHub c5aac3b81d Add Empty list item for None (#12356) 2022-04-23 10:11:44 -05:00
yangqianandGitHub 70836597e9 Show vacuum state in more-info dialog for StateVacuumEntity (#12391) 2022-04-23 06:32:59 +00:00
Allen PorterandGitHub 958a1de2fd Add calendar event end trigger to automation editor (#12389) 2022-04-23 00:19:23 -05:00
Allen PorterandGitHub 36d30266e3 Add automation editor for calendar trigger (#12343) 2022-04-22 16:53:45 -05:00
Yosi LevyandGitHub 558ab9761d RTL reading orders and alignments in system log (#12388) 2022-04-22 20:19:38 +00:00
269ef370e4 Accept new value when hitting ENTER to close a prompt dialog (#12360)
Co-authored-by: Zack Barett <[email protected]>
2022-04-22 14:23:34 -05:00
Kuba WolaninandGitHub ba2958ecd2 zwave_js: Add title tag to config box heading (#12387) 2022-04-22 13:17:42 -05:00
Yosi LevyandGitHub 3b8b6eb315 RTL fixes (#12367) 2022-04-22 10:27:49 -05:00
Mark LopezandGitHub 4f13db3178 Added ability to retry on initialization errors. (#12103) 2022-04-21 21:11:32 -05:00
Joakim SørensenandGitHub ee7aa54ab4 Add entity search tip to dev-tools set state (#12355) 2022-04-21 21:06:35 -05:00
Wesley VosandGitHub c305dd4cd5 Fix for monetary entities (#12378) 2022-04-21 21:01:09 -05:00
6865791596 Add jinja2 editor to template triggers/conditions (#12365)
Co-authored-by: Zack <[email protected]>
2022-04-22 01:42:28 +00:00
Franck NijhofandGitHub 2099259393 Use template selector in wait_template (#12366) 2022-04-21 20:32:25 -05:00
Zack BarettandGitHub 27ca45dc70 Bumped version to 20220420.0 (#12369) 2022-04-20 22:43:40 +00:00
Zack BarettandGitHub d290c11219 Config menu updates to get it ready for nightly (#12368) 2022-04-20 22:38:35 +00:00
cabe10ffdb Getting started on Configuration Changes (#12309)
Co-authored-by: Bram Kragten <[email protected]>
2022-04-20 16:57:51 -05:00
Franck NijhofandGitHub aa562c21a8 Add stop script/automation action (#12299) 2022-04-20 16:50:09 -05:00
22175a7271 Add if/else automation/script action (#12301)
Co-authored-by: Zack Barett <[email protected]>
2022-04-20 11:27:16 -05:00
Eric SternandGitHub 1e0647c0d1 Github no longer supports the (insecure) git protocol (#12359) 2022-04-20 13:52:12 +00:00
Simon VallièresandGitHub 58d94da8b3 Adding blueprint input description markdown/multi-line support (#12291) 2022-04-20 08:36:18 -05:00
Joakim SørensenandGitHub d97763a3e8 Add clear skipped to update more-info dialog (#12361) 2022-04-20 08:17:56 -05:00
Paulus SchoutsenandGitHub aa129aa123 Bump HAWS to 7.0.3 (#12358) 2022-04-19 12:50:18 -05:00
Franck NijhofandGitHub f648317206 Fix strict error handling in developer tools templates (#12352) 2022-04-19 07:28:07 -05:00
Raman GuptaandGitHub 0685fdf7c6 Add basic frontend support for siren (#12345) 2022-04-18 11:19:01 -05:00
Franck NijhofandGitHub 6fd4cda534 Add Template selector (#12348) 2022-04-18 11:17:44 -05:00
511368da13 Allow selecting multiple entities for state trigger (#12334)
Co-authored-by: Zack Barett <[email protected]>
2022-04-15 19:03:14 +00:00
J. Nick KostonandGitHub 76e1721c58 Quickly search for entities from the Overview Dashboard (#12324) 2022-04-15 13:54:57 -05:00
Yosi LevyandGitHub bad5a389b5 RTL calendar fix - arrows fix and views fix (#12314)
* RTL calendar fix - arrows fix and views fix

* Removed path attributes
2022-04-15 13:47:46 -05:00
Paulus SchoutsenandGitHub 85d1f49763 Allow tapping on the name on a picture entity card (#12332) 2022-04-15 08:55:22 -05:00
Paulus SchoutsenandGitHub 7723d47ac1 Split only on first comma in media browser (#12331) 2022-04-14 17:52:49 -05:00
J. Nick KostonandGitHub 30b130ca74 Use new mdi icons for smoke and co detection (#12323) 2022-04-14 15:42:54 -07:00
Joakim SørensenandGitHub a124ec0717 Always render title field (#12319) 2022-04-13 07:20:00 -05:00
Joakim SørensenandGitHub 323d98ecf7 Decode view path URL (#12310) 2022-04-12 06:52:17 -05:00
Paulus SchoutsenandGitHub 125a601ae3 Select default mode if none set (#12306) 2022-04-11 12:08:37 -05:00
Paulus SchoutsenandGitHub 3c549c6b31 Update cloud text (#12305) 2022-04-11 09:47:31 -07:00
Kuba WolaninandGitHub 9c1494c74d Fix endless loading screen in zwave-js config (#12295) 2022-04-11 16:56:03 +02:00
Philip AllgaierandGitHub e751abd775 Prevent empty brackets if no manufacturer during config entry creation (#12288) 2022-04-11 09:06:29 -05:00
Joakim SørensenandGitHub 714f2447b7 Use more text selector types for add-on configuration (#12303) 2022-04-11 16:01:30 +02:00
Franck NijhofandGitHub d900e40d04 Fix add-on security rating range (#12300) 2022-04-11 14:04:54 +02:00
Joakim SørensenandGitHub 8b82383790 Guard for partial translations (#12296) 2022-04-11 13:03:41 +02:00
Zack BarettandGitHub 5a2cc2646c Merge pull request #12252 from spacegaier/issue-12246 2022-04-07 16:40:08 -05:00
Philip Allgaier 16a0902989 Adjust import 2022-04-07 22:41:37 +02:00
Philip Allgaier 8f67aa38af Fix entity and device selector with multiple: true 2022-04-07 21:39:04 +02:00
Zack BarettandGitHub 34184cf2ab Merge pull request #12250 from spacegaier/issue-12248 2022-04-07 14:11:29 -05:00
Philip Allgaier 611cd2818e Exclude hidden entities from area card 2022-04-07 20:58:21 +02:00
Zack BarettandGitHub 0a4e8fd5d0 Merge pull request #12244 from home-assistant/lineup-badges 2022-04-07 13:19:48 -05:00
Ludeeus 11f0361f48 Lineup sidebar badges 2022-04-07 06:54:24 +00:00
Philip AllgaierandGitHub cfa048ea4e Only show "required" indicator if we have a selector label (#12241) 2022-04-06 22:11:12 +00:00
Joakim SørensenandGitHub bbca7b762b Use selectors for add-on network configuration (#12235)
* Use selectors for add-on network configuration

* Show container port as UOM if advanced user

* adjust
2022-04-06 22:21:06 +02:00
Erik MontnemeryandGitHub 1dba849567 Fix statistics chart for sum stat without state (#12238) 2022-04-06 20:54:11 +02:00
MariusandGitHub aff1ec10bf replace ToggleSwitch with new LightSwitch (#12218) 2022-04-06 16:26:34 +02:00
Joakim SørensenandGitHub 351ec08a71 Use selectors for add-on configurations (#12234) 2022-04-06 09:57:17 +02:00
d02cd122a9 Merge pull request #12233 from home-assistant/dev
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Zack Barett <[email protected]>
2022-04-05 18:02:02 -05:00
Paulus Schoutsen a1a6a2cd30 Bumped version to 20220405.0 2022-04-05 15:49:13 -07:00
Joakim SørensenandGitHub 4e82c23b29 Fixes for flow help icon (#12224) 2022-04-05 15:47:24 -07:00
Paulus SchoutsenandGitHub 59595aabde Add helpers to all selectors (#12230) 2022-04-05 15:26:52 -05:00
Paulus SchoutsenandGitHub 358f91c2a9 Add statistic name to adjust dialog (#12229) 2022-04-05 17:25:23 +00:00
Joakim SørensenandGitHub e0e01e68b4 Use change instead of click when selecting home assistant in backup (#12226) 2022-04-05 10:48:45 -05:00
Paulus SchoutsenandGitHub 61dc4eaaea Throttle counting updates (#12223) 2022-04-05 09:55:01 +02:00
Paulus SchoutsenandGitHub 65c4d02452 Fix Safari dates (#12222) 2022-04-04 21:54:35 -07:00
Philip AllgaierandGitHub f78ce2c844 Sort "Switch as" domains and add separator (#12216) 2022-04-04 18:47:26 -05:00
Philip AllgaierandGitHub 4d1ab83b30 Hide "Show as" separator if there is nothing above/below it (#12219) 2022-04-04 18:44:21 -05:00
Zack BarettandGitHub fb4b40b828 Fix Entity Settings missing (#12221) 2022-04-04 22:49:11 +00:00
Philip AllgaierandGitHub db0c4ef941 Fix "Show as" in entity registry (#12215) 2022-04-04 14:16:03 -05:00
Philip AllgaierandGitHub c5b60b826b Enable <ha-form> overflow overriding via part (#12204) 2022-04-04 08:41:12 -05:00
Philip AllgaierandGitHub 718f0330a7 Fix button card behavior to toggle scenes (#12203) 2022-04-04 08:40:10 -05:00
Philip AllgaierandGitHub 89e31486c5 Ensure history entity picker wraps to next line on mobile (#12201) 2022-04-04 08:39:45 -05:00
Philip AllgaierandGitHub 717eec1860 Allow "none" again as secondary entity information (#12199) 2022-04-04 08:39:28 -05:00
Philip AllgaierandGitHub b6e51352e3 Fan more-info: Add margin to sections (#12202) 2022-04-04 08:38:53 -05:00
Joakim SørensenandGitHub 2ade728bc3 Make the progress bar not jump the dialog (#12212) 2022-04-04 08:20:37 +02:00
Joakim SørensenandBram Kragten 8e962fdecb Use installed_version for update entities (#12194) 2022-04-01 19:29:26 +02:00
Joakim SørensenandGitHub 62f227da83 Use installed_version for update entities (#12194) 2022-04-01 19:28:39 +02:00
Bram KragtenandGitHub 1f65193a97 Merge pull request #12193 from home-assistant/dev 2022-04-01 18:56:12 +02:00
Bram Kragten 9557b604da Bumped version to 20220401.0 2022-04-01 18:35:08 +02:00
Zack BarettandGitHub b45c355c9f Fix for Mult enabled selectors when required (#12191) 2022-04-01 18:34:32 +02:00
Joakim SørensenandGitHub 0b47d2c687 Redirect old backup links to backup integration for non supervised (#12183) 2022-04-01 08:05:53 -07:00
Joakim SørensenandGitHub 8baa0b2a9b Hide skip when auto_update is true for updates (#12184) 2022-04-01 14:37:47 +02:00
Joakim SørensenandGitHub c68a1d21ff Do not offer to partially backup homeassistant configuration (#12188) 2022-04-01 14:37:18 +02:00
Paulus SchoutsenandGitHub 419d659311 Guard calling input select row with bad option (#12181) 2022-03-31 20:32:10 -05:00
Bram KragtenandGitHub ba8b20d877 Fix url config when not logged in to cloud (#12176) 2022-03-31 10:59:44 -05:00
Bram KragtenandGitHub 8de542388f Show hidden entities on device page (#12177) 2022-03-31 10:59:20 -05:00
e6c580aadc Add zwave-js node alerts to device configuration page (#12173)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-31 09:06:47 -05:00
Joakim SørensenandGitHub 11696c566a Add support for my backup links (#12172) 2022-03-31 09:05:39 -05:00
Joakim SørensenandGitHub edc15940a2 Add icon to add-on picker (#12174) 2022-03-31 15:16:19 +02:00
Joakim SørensenandGitHub bf35ee549d Only use the state to mark updates as pending (#12171) 2022-03-31 15:15:21 +02:00
Philip AllgaierandGitHub 4c3baa678c Bump caniuse-lite (#12168) 2022-03-30 17:12:22 -05:00
Philip AllgaierandGitHub 0bb2767696 Add missing labels to media player volume buttons (#12170) 2022-03-30 17:11:50 -05:00
Philip AllgaierandGitHub 80a4852325 Add missing label for new statistics "adjust sum" button (#12169) 2022-03-30 17:11:23 -05:00
+16 24484d0e74 20220330.0 (#12165)
* Add a docs icon to the config flow dialog

* Use same help icon everywhere

* Fix quickbar overlaying, fix click handling (#11900)

* Supervisor mobile click accessibility (#11915)

* Convert objects to string in config flow error (#11908)

* Fix datepicker triangle (#11920)

* Always show tab labels (#11919)

* Remove zwave and ozw panels (#11911)

Remove zwave and ozw panels

* Convert lovelace config dialogs to ha-form (#11910)

* Guard setting up config flow for an unsupported domain (#11937)

* Show triggered vars on click (#11924)

* Allow marking YAML editor as read only (#11960)

* Convert inputs (#11907)

* Convert inputs

* Update dialog-thingtalk.ts

* imports

* Remove some additional old zwave code (#11941)

* Correct media upload error + add file name (#11949)

Co-authored-by: Bram Kragten <[email protected]>

* Fix humidifier more info mode dropdown (#11964)

* Make min width of select configurable (#11965)

* Fix for Statistics Editor (#11942)

Co-authored-by: Bram Kragten <[email protected]>

* A11y expansion panel (#11967)

* Convert file upload to mdc (#11906)

* Add location selector, convert zone editor (#11902)

* Add systemd_resolved unsupported reason (#11971)

* replace default switch icon 

to  make it stand out against a power entity which uses the same mdiFlash https://github.com/home-assistant/core/issues/67620#issuecomment-1061949527

suggest the Outline version, so create a subtle difference with the on/off icons.

* Allow selecting multiple entities (#11986)

* Fix theme setting (#11977)

* Update Style of Design Page (#11982)

* change icon to mimic physical device

and follow comments

* Use entities-picker in entity selector (#11990)

* #11971 Change order of alarm panel buttons (#11998)

* Fix zwave_js 'add/remove device' disabled bug (#12000)

* Fix zwave_js 'add/remove device' disabled bug

* revert extra change

* Fix zwave_js set config dropdown default value (#11974)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Fix changing cost number in energy settings (#12009)

* Fix Dashboard Editing (#12011)

* Fix For Selecting Device Class (#12010)

* Fix: Allow for deleting Input_select options (#12007)

* Script ID update with Alias (#12008)

* HAWS 6.1 (#12016)

* Bumped version to 20220301.1

* Bumped version to 20220301.2

* Bumped version to 20220312.0

* Add shade to device class overrides (#11874)

* Fix: Changing Blueprint Automation Name (#12036)

* Fix @changed where using ev.detail (#12043)

* Add all cover device classes (#12042)

* Rename Lovelace Dashboard to just Dashboard (#12044)

Co-authored-by: Zack Barett <[email protected]>

* Add Color Temp Selector (#12041)

* Utilize Hide Hidden Entities

* Reviews

* add to demo

* Add `Brand` folder and `Our story` page (#11978)

Co-authored-by: Zack Barett <[email protected]>

* Add HA to public folder and show in markdown

* Update Translations

* Disabled by

* remove 1

* Add Description of chosen

* Add icons and buttons

* Add Color RGB Selector (#12039)

* Add Date Selector

* Add ha-form context (#12062)

* test condition (#11925)

* Revamp URL form (#12060)

* Add support for menu data entry flow option (#12055)

* Add translation

* add to basic editor and update advanced style

* clean up

* Entity Status

* Add Devices Picker (#12056)

* Remvoe redunency

* Bumped version to 20220316.0

* Bump HAWS to 7.0.0 (#12067)

* Create new Logo page

* Add files via upload

* Ignore diagnostics not found exceptions (#12066)

* Bump HAWS to 7.0.1

* Update lock

* Add Date Time Selector (#12070)

* Add radio Form Logic to Select Selector (#12063)

* Bumped version to 20220317.0 (#12074)

* Update gallery/src/pages/brand/logo.markdown

Co-authored-by: Zack Barett <[email protected]>

* Update gallery/src/pages/brand/logo.markdown

Co-authored-by: Zack Barett <[email protected]>

* Update logo.markdown

* Fetch history with `no_attributes` for entities that do not need them (#12082)

* Update required version of MDI to 6.6.95

* Upload release assets (#11566)

Co-authored-by: Joakim Sørensen <[email protected]>

* Update styles for hui-editor

Update the background-color and text-color of the app-toolbar in
hui-editor to match the styles of hui-root while in edit-mode.

Previously, these properties were set using undefined css variables that
could not be changed via themes (--dark-background-color and
--dark-text-color).

* Fix gas energy graph units if stats added by external source (#11892)

* Change Netlify preview URL (#12095)

* Update src/dialogs/config-flow/dialog-data-entry-flow.ts

* Stack Action Inputs in the Button Editor (#12076)

* Stack Action Inputs in the Button Editor

* update style

* Update for other editors

* Add support for update entities (#12059)

* Add support for update entities

* Apply suggestions from code review

Co-authored-by: Zack Barett <[email protected]>

* Add to gallery

* implement xx%

* Adjustments for skipped

* Add progress bar

* Add UPDATE_SUPPORT_INSTALL

* Allow skipping without install support

* Add version to service call if supported

* Adjust changelog link

* Use Installing

* adjustments

* Use unavailable

Co-authored-by: Zack Barett <[email protected]>

* Add support for integration type (#12077)

* Update When entity can change enabled or hidden (#12096)

* Add entity include and exclude to selector (#12078)

Co-authored-by: Paulus Schoutsen <[email protected]>

* change from hidden to not shown (#12097)

* Add statistic adjust dialog (#12101)

Co-authored-by: Zack Barett <[email protected]>

* Fix Duration Selector Default (#12098)

* Fix Duration Default

* USe initial form data function

* Bumped version to 20220322.0 (#12102)

* Create user types page and rename the category (#12089)

Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Remove `setup.py` (#11593)

* Fix selecting 0 with number selector

* Update lock file with MDI updates

* Use update entities for showing updates on configuration panel (#12100)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Fix loading traces for automation with custom id (#12112)

* Only show docs link when showing a form

* Exclude restored automations from dashboard (#12113)

* Support descriptions in flow menu steps (#12108)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Sort selectors (#12120)

* Update type for backend (#12122)

* Fix issue where theme select does not appear when user's theme is deleted (#12104)

* Fix possibility to enable entity disabled by integration (#12121)

Co-authored-by: Zack Barett <[email protected]>

* Allow rendering helper text from strings.json (#12119)

* Allow rendering helper text from strings.json

* Persistent helpers

* Update src/components/ha-base-time-input.ts

Co-authored-by: Zack Barett <[email protected]>

* Update src/components/ha-base-time-input.ts

Co-authored-by: Zack Barett <[email protected]>

* Add Day to duration selector (#12125)

* Add variables to automation trigger type

* Fix z-index map, always set icon for location selector (#12137)

* Make padding on settings row content consistent (#12139)

* Add Area Multiple Selector option (#12138)

* break theme picker out of lovelace (#12140)

* Allow binary sensor device class updates (#12124)

* Add selector initial values (#12142)

* Add badge to configuration sidebar to indicate pending updates (#12146)

* Bumped version to 20220329.0 (#12152)

* Add entity source API (#12149)

* Update adjust statistic dialog (#12118)

* Update text for adjust statistic dialog

* Change everything

* Import type

* Max show 5

* Revert back the API change

* Hide adjust button if no sum

* Adjustments

* Update src/panels/developer-tools/statistics/developer-tools-statistics.ts

* Render optional

Co-authored-by: Zack <[email protected]>

* Fetch release notes for update entities that provides it (#12148)

* Fetch release notes for update entities that provides it

* lint

* Add support for new timer properties (#11940)

* Fix theme settings on design page (#12154)

* Allow ha-alert to be used in our markdown render (#12153)

* Allow device_tracker entities to use state_color (#12127)

* Automation description text overflow (#12040)

Co-authored-by: Bram Kragten <[email protected]>

* Update Pickers and selectors with required (#12151)

* Update Pickers and selectors with required

* Use native * for device and entity

* Add support for my links to create a helper config entry (#12155)

* Use brand icon instead of domain icon for helpers (#12157)

* Import components that are allowed to be defined in markdown (#12158)

* Add options to selectors gallery (#12156)

* Add helpers to list when searching in add integration (#12159)

* List Selector (#12099)

Co-authored-by: Bram Kragten <[email protected]>

* Add shuffle and repeat-mode of media_player to UI (#12052)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Add panel to Backup integration (#11671)

Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Fix for Mobile View of Entities Table (#12160)

* Allow Sensor Units to be updated via Entity Registry (#12143)

* Add switch as x to entity settings (#12161)

Co-authored-by: Zack <[email protected]>

* Bumped version to 20220330.0 (#12164)

Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Robin Wittebol <[email protected]>
Co-authored-by: Raman Gupta <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Marius <[email protected]>
Co-authored-by: Emil Stjerneman <[email protected]>
Co-authored-by: Charles Garwood <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: jpearl <[email protected]>
Co-authored-by: Matthias de Baat <[email protected]>
Co-authored-by: Matthias de Baat <[email protected]>
Co-authored-by: J. Nick Koston <[email protected]>
Co-authored-by: Michael Irigoyen <[email protected]>
Co-authored-by: Marc Mueller <[email protected]>
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Nick Iacullo <[email protected]>
Co-authored-by: Pawel <[email protected]>
Co-authored-by: Erik <[email protected]>
Co-authored-by: Brynley McDonald <[email protected]>
Co-authored-by: blair <[email protected]>
Co-authored-by: NachtaktiverHalbaffe <[email protected]>
2022-03-30 20:49:00 +02:00
Bram KragtenandGitHub 9c3e0fc997 Merge branch 'master' into dev 2022-03-30 20:48:37 +02:00
Zack BarettandGitHub 9e4bee123f Bumped version to 20220330.0 (#12164) 2022-03-30 11:33:59 -07:00
c2c09b1284 Add switch as x to entity settings (#12161)
Co-authored-by: Zack <[email protected]>
2022-03-30 18:19:26 +00:00
Zack BarettandGitHub bad776b979 Allow Sensor Units to be updated via Entity Registry (#12143) 2022-03-30 13:03:19 -05:00
Zack BarettandGitHub 396791b805 Fix for Mobile View of Entities Table (#12160) 2022-03-30 19:52:05 +02:00
2b1457e1cd Add panel to Backup integration (#11671)
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-30 17:22:15 +00:00
b5861869e3 Add shuffle and repeat-mode of media_player to UI (#12052)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-30 17:16:27 +00:00
9444228907 List Selector (#12099)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-30 09:14:39 -07:00
Bram KragtenandGitHub 86afd883a5 Add helpers to list when searching in add integration (#12159) 2022-03-30 13:55:54 +00:00
Bram KragtenandGitHub 062f21aa91 Add options to selectors gallery (#12156) 2022-03-30 12:34:37 +00:00
Joakim SørensenandGitHub ba235ac797 Import components that are allowed to be defined in markdown (#12158) 2022-03-30 14:22:24 +02:00
Bram KragtenandGitHub 505c22248b Use brand icon instead of domain icon for helpers (#12157) 2022-03-30 13:53:37 +02:00
Bram KragtenandGitHub 624cb48f78 Add support for my links to create a helper config entry (#12155) 2022-03-30 13:53:28 +02:00
Zack BarettandGitHub 7ab54ee5ce Update Pickers and selectors with required (#12151)
* Update Pickers and selectors with required

* Use native * for device and entity
2022-03-30 06:48:56 -05:00
f5af63a50e Automation description text overflow (#12040)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-30 10:22:26 +00:00
MariusandGitHub ff80ab34ee Allow device_tracker entities to use state_color (#12127) 2022-03-30 11:35:37 +02:00
Joakim SørensenandGitHub cfc1999a28 Allow ha-alert to be used in our markdown render (#12153) 2022-03-30 11:22:36 +02:00
Joakim SørensenandGitHub 7ca28469b7 Fix theme settings on design page (#12154) 2022-03-30 11:21:00 +02:00
Raman GuptaandGitHub ac670614b4 Add support for new timer properties (#11940) 2022-03-30 00:00:36 -07:00
Joakim SørensenandGitHub e263b57296 Fetch release notes for update entities that provides it (#12148)
* Fetch release notes for update entities that provides it

* lint
2022-03-30 07:22:12 +02:00
c7050e4676 Update adjust statistic dialog (#12118)
* Update text for adjust statistic dialog

* Change everything

* Import type

* Max show 5

* Revert back the API change

* Hide adjust button if no sum

* Adjustments

* Update src/panels/developer-tools/statistics/developer-tools-statistics.ts

* Render optional

Co-authored-by: Zack <[email protected]>
2022-03-29 20:40:17 -07:00
Paulus SchoutsenandGitHub 00cbd1d9e6 Add entity source API (#12149) 2022-03-29 17:09:51 -07:00
Zack BarettandGitHub 2a12172eeb Bumped version to 20220329.0 (#12152) 2022-03-29 22:25:56 +00:00
Joakim SørensenandGitHub 85d3011625 Add badge to configuration sidebar to indicate pending updates (#12146) 2022-03-29 07:35:05 -05:00
Zack BarettandGitHub ca22ec6340 Add selector initial values (#12142) 2022-03-28 10:38:58 -07:00
Zack BarettandGitHub 61f6e8855b Allow binary sensor device class updates (#12124) 2022-03-28 10:44:21 -05:00
Bram KragtenandGitHub a44b8981e1 break theme picker out of lovelace (#12140) 2022-03-28 08:21:16 -07:00
Zack BarettandGitHub b080bca9ce Add Area Multiple Selector option (#12138) 2022-03-28 09:07:00 -05:00
Bram KragtenandGitHub d30e8ee9d8 Make padding on settings row content consistent (#12139) 2022-03-28 08:50:07 -05:00
Bram KragtenandGitHub 637e4203e5 Fix z-index map, always set icon for location selector (#12137) 2022-03-28 13:14:24 +00:00
Zack BarettandGitHub 2648a53bbc Merge pull request #12135 from home-assistant/update-automation-type 2022-03-28 07:43:21 -05:00
Paulus Schoutsen b3fa0cccb4 Add variables to automation trigger type 2022-03-27 20:33:22 -07:00
Zack BarettandGitHub dd963be723 Add Day to duration selector (#12125) 2022-03-24 17:57:20 -07:00
224df896a1 Allow rendering helper text from strings.json (#12119)
* Allow rendering helper text from strings.json

* Persistent helpers

* Update src/components/ha-base-time-input.ts

Co-authored-by: Zack Barett <[email protected]>

* Update src/components/ha-base-time-input.ts

Co-authored-by: Zack Barett <[email protected]>
2022-03-24 17:50:38 -07:00
a58b4fb262 Fix possibility to enable entity disabled by integration (#12121)
Co-authored-by: Zack Barett <[email protected]>
2022-03-24 20:10:49 +01:00
Brynley McDonaldandGitHub 27ca61ec85 Fix issue where theme select does not appear when user's theme is deleted (#12104) 2022-03-24 16:31:55 +01:00
Zack BarettandGitHub 859f49f3eb Update type for backend (#12122) 2022-03-24 13:47:07 +00:00
Erik MontnemeryandGitHub 40d878689f Sort selectors (#12120) 2022-03-24 11:53:32 +01:00
Zack BarettandGitHub 420e8fe1ff Merge pull request #12116 from home-assistant/docs-only-form 2022-03-23 17:40:40 -05:00
df96199433 Support descriptions in flow menu steps (#12108)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-23 22:14:57 +00:00
Erik MontnemeryandGitHub f493280f0a Exclude restored automations from dashboard (#12113) 2022-03-23 15:05:41 -07:00
Paulus Schoutsen cbd030a379 Only show docs link when showing a form 2022-03-23 14:53:02 -07:00
Zack BarettandGitHub 95b80accc9 Merge pull request #12085 from goyney/update-mdi-to-6-6-95 2022-03-23 15:17:31 -05:00
Erik MontnemeryandGitHub c522670815 Fix loading traces for automation with custom id (#12112) 2022-03-23 13:11:46 -07:00
7b6d3c0e36 Use update entities for showing updates on configuration panel (#12100)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-23 13:04:29 -07:00
Michael Irigoyen 504b043159 Update lock file with MDI updates 2022-03-23 08:46:22 -05:00
Michael Irigoyen dffc66ccc3 Merge branch 'dev' of github.com:goyney/frontend into update-mdi-to-6-6-95 2022-03-23 08:43:46 -05:00
Zack BarettandGitHub c7e9ee785d Merge pull request #12109 from home-assistant/number_selector_allow_0 2022-03-23 08:42:00 -05:00
Erik 079cc39a6e Fix selecting 0 with number selector 2022-03-23 14:24:55 +01:00
Marc MuellerandGitHub d6a1d5af79 Remove setup.py (#11593) 2022-03-23 09:22:12 +01:00
c0dce08e19 Create user types page and rename the category (#12089)
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-23 03:51:35 +00:00
Zack BarettandGitHub a7a347ed05 Bumped version to 20220322.0 (#12102) 2022-03-22 17:08:30 -07:00
Zack BarettandGitHub 2d9b50defc Fix Duration Selector Default (#12098)
* Fix Duration Default

* USe initial form data function
2022-03-22 23:33:16 +00:00
840858b18c Add statistic adjust dialog (#12101)
Co-authored-by: Zack Barett <[email protected]>
2022-03-22 22:40:00 +00:00
Zack BarettandGitHub afd2e71f6c change from hidden to not shown (#12097) 2022-03-22 15:39:22 -07:00
88af0aa788 Add entity include and exclude to selector (#12078)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-22 19:58:03 +00:00
Zack BarettandGitHub 49124f6f09 Update When entity can change enabled or hidden (#12096) 2022-03-22 19:53:22 +00:00
Paulus SchoutsenandGitHub 73f5580555 Add support for integration type (#12077) 2022-03-22 14:47:12 -05:00
bdde5268c6 Add support for update entities (#12059)
* Add support for update entities

* Apply suggestions from code review

Co-authored-by: Zack Barett <[email protected]>

* Add to gallery

* implement xx%

* Adjustments for skipped

* Add progress bar

* Add UPDATE_SUPPORT_INSTALL

* Allow skipping without install support

* Add version to service call if supported

* Adjust changelog link

* Use Installing

* adjustments

* Use unavailable

Co-authored-by: Zack Barett <[email protected]>
2022-03-22 10:23:54 -07:00
Zack BarettandGitHub 15e972c158 Stack Action Inputs in the Button Editor (#12076)
* Stack Action Inputs in the Button Editor

* update style

* Update for other editors
2022-03-22 08:57:09 -07:00
Zack BarettandGitHub 0fc4c24f5a Merge pull request #12087 from DuckyCrayfish/fix-toolbar-styles 2022-03-22 10:29:11 -05:00
Zack BarettandGitHub 9eba50df0c Merge pull request #11651 from home-assistant/add-docs-icon-config-flow 2022-03-22 10:23:43 -05:00
Zack BarettandGitHub 0e0e07437f Update src/dialogs/config-flow/dialog-data-entry-flow.ts 2022-03-22 10:08:43 -05:00
Joakim SørensenandGitHub 6ac51ede52 Change Netlify preview URL (#12095) 2022-03-22 16:00:43 +01:00
PawelandGitHub ccf1fb573a Fix gas energy graph units if stats added by external source (#11892) 2022-03-21 21:15:28 -07:00
Nick Iacullo fa537968c4 Update styles for hui-editor
Update the background-color and text-color of the app-toolbar in
hui-editor to match the styles of hui-root while in edit-mode.

Previously, these properties were set using undefined css variables that
could not be changed via themes (--dark-background-color and
--dark-text-color).
2022-03-21 10:28:24 +00:00
6bf2111a3c Upload release assets (#11566)
Co-authored-by: Joakim Sørensen <[email protected]>
2022-03-21 08:23:05 +01:00
Michael Irigoyen f5f8be8276 Update required version of MDI to 6.6.95 2022-03-20 23:32:21 -05:00
J. Nick KostonandGitHub ddf1cc0733 Fetch history with no_attributes for entities that do not need them (#12082) 2022-03-20 15:47:13 -10:00
Zack BarettandGitHub 9c1d1cb6f6 Merge pull request #12069 from matthiasdebaat/patch-2 2022-03-18 07:32:14 -05:00
Matthias de BaatandGitHub 470225abde Update logo.markdown 2022-03-18 11:26:19 +01:00
ee230b86c1 Update gallery/src/pages/brand/logo.markdown
Co-authored-by: Zack Barett <[email protected]>
2022-03-18 11:25:41 +01:00
f927fc64a9 Update gallery/src/pages/brand/logo.markdown
Co-authored-by: Zack Barett <[email protected]>
2022-03-18 11:25:34 +01:00
Zack BarettandGitHub 03677c33f7 Bumped version to 20220317.0 (#12074) 2022-03-17 15:27:27 -07:00
Zack BarettandGitHub bc36a206da Merge pull request #11984 from Mariusthvdb/patch-4 2022-03-17 17:15:41 -05:00
Zack BarettandGitHub af06ab1e2d Merge pull request #12073 from home-assistant/bump-haws-701 2022-03-17 17:11:53 -05:00
Zack BarettandGitHub 3e2135a485 Add radio Form Logic to Select Selector (#12063) 2022-03-17 15:04:59 -07:00
Zack BarettandGitHub 2e7f8fb46f Add Date Time Selector (#12070) 2022-03-17 15:01:08 -07:00
Paulus Schoutsen 102568c4bd Update lock 2022-03-17 14:58:45 -07:00
Paulus Schoutsen 4fcdae842e Bump HAWS to 7.0.1 2022-03-17 14:50:16 -07:00
Paulus SchoutsenandGitHub ea19740f5a Ignore diagnostics not found exceptions (#12066) 2022-03-17 13:44:06 -07:00
Matthias de BaatandGitHub 3e0942b631 Add files via upload 2022-03-17 14:19:28 +01:00
Matthias de BaatandGitHub 0261cea796 Create new Logo page 2022-03-17 14:14:13 +01:00
Paulus SchoutsenandGitHub 5247b2813f Bump HAWS to 7.0.0 (#12067) 2022-03-16 19:54:25 -10:00
Zack BarettandGitHub 8a5090684e Merge pull request #12064 from home-assistant/20220316.0 2022-03-16 17:59:26 -05:00
Zack BarettandGitHub 1784ba5e68 Merge pull request #12061 from home-assistant/Add-Date-Selector 2022-03-16 17:52:40 -05:00
Zack BarettandGitHub 4fbe9a7b10 Merge pull request #12049 from home-assistant/hide-hidden-entities 2022-03-16 17:49:20 -05:00
Zack 1ca9c7838a Bumped version to 20220316.0 2022-03-16 17:46:32 -05:00
Zack 4fc2c3ef05 Remvoe redunency 2022-03-16 17:42:11 -05:00
Zack BarettandGitHub 73ff8e28a8 Add Devices Picker (#12056) 2022-03-16 15:40:34 -07:00
Zack dde1c5e03c Entity Status 2022-03-16 17:38:38 -05:00
Zack 01eed22592 clean up 2022-03-16 17:34:09 -05:00
Zack 94ebb63589 add to basic editor and update advanced style 2022-03-16 17:25:08 -05:00
Zack 29119db5ce Add translation 2022-03-16 17:05:52 -05:00
Paulus SchoutsenandGitHub 9908162ac2 Add support for menu data entry flow option (#12055) 2022-03-16 14:14:38 -07:00
Paulus SchoutsenandGitHub 1e929ae78a Revamp URL form (#12060) 2022-03-16 14:14:25 -07:00
Paulus SchoutsenandGitHub ab5df0fe6e test condition (#11925) 2022-03-16 14:13:13 -07:00
Paulus SchoutsenandGitHub d5010dda9e Add ha-form context (#12062) 2022-03-16 14:12:10 -07:00
Zack 4ac097f32b Add Date Selector 2022-03-16 14:20:45 -05:00
Zack BarettandGitHub 5d3d15072f Merge pull request #12054 from home-assistant/Add-image-to-design-docs 2022-03-16 13:24:03 -05:00
Zack BarettandGitHub 5c53bc4225 Add Color RGB Selector (#12039) 2022-03-15 15:34:02 -07:00
Zack d5a307f8f4 Add icons and buttons 2022-03-15 15:00:35 -05:00
Zack a27dd1e7f1 Add Description of chosen 2022-03-15 14:47:15 -05:00
Zack c86ed1fb3e remove 1 2022-03-15 14:33:11 -05:00
Zack 7fa7a48072 Disabled by 2022-03-15 14:32:49 -05:00
Zack 4e0fc8ee08 Update Translations 2022-03-15 14:26:21 -05:00
Zack 5f6490e54e Add HA to public folder and show in markdown 2022-03-15 14:17:24 -05:00
db78b046a2 Add Brand folder and Our story page (#11978)
Co-authored-by: Zack Barett <[email protected]>
2022-03-15 09:01:42 -05:00
Zack c37fe1e7ff add to demo 2022-03-14 20:39:03 -05:00
Zack f1ec479d41 Reviews 2022-03-14 20:37:37 -05:00
Zack e01cb3ca82 Utilize Hide Hidden Entities 2022-03-14 14:22:45 -05:00
Zack BarettandGitHub b8d3c68a7a Add Color Temp Selector (#12041) 2022-03-14 11:07:15 -07:00
641003bb2a Rename Lovelace Dashboard to just Dashboard (#12044)
Co-authored-by: Zack Barett <[email protected]>
2022-03-14 11:05:44 -07:00
Zack BarettandGitHub 3358fc2b18 Add all cover device classes (#12042) 2022-03-14 10:45:12 -07:00
Zack BarettandGitHub f9ccfa00a2 Merge pull request #12045 from home-assistant/hot-fix-03142022 2022-03-14 11:31:11 -05:00
Zack Barett 070e11a2db Fix @changed where using ev.detail (#12043) 2022-03-14 11:13:05 -05:00
Zack BarettandGitHub dcf50e055b Fix @changed where using ev.detail (#12043) 2022-03-14 16:11:46 +00:00
Zack Barett fc1c6cea24 Fix: Changing Blueprint Automation Name (#12036) 2022-03-14 10:35:18 -05:00
Zack BarettandGitHub 1fa04baa16 Fix: Changing Blueprint Automation Name (#12036) 2022-03-14 08:33:49 -07:00
Zack c6a103bd30 Minor Version whoops 2022-03-14 10:27:59 -05:00
jpearlandGitHub 84ffa2369a Add shade to device class overrides (#11874) 2022-03-14 10:19:43 -05:00
Zack 9d1618024e Bumped version to 20220314.0 2022-03-14 07:52:06 -05:00
Zack Barett 307aa161a6 Script ID update with Alias (#12008) 2022-03-14 07:46:40 -05:00
Zack Barett affa6a92e7 Fix: Allow for deleting Input_select options (#12007) 2022-03-14 07:46:40 -05:00
Zack Barett 1e5ec241d5 Fix For Selecting Device Class (#12010) 2022-03-14 07:46:40 -05:00
Zack Barett 27a98a32fc Fix Dashboard Editing (#12011) 2022-03-14 07:46:40 -05:00
Zack Barett 2c8ac58f97 Fix changing cost number in energy settings (#12009) 2022-03-14 07:46:40 -05:00
6b995969b1 Fix zwave_js set config dropdown default value (#11974)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-14 07:46:40 -05:00
Raman GuptaandZack 72c107484a Fix zwave_js 'add/remove device' disabled bug (#12000)
* Fix zwave_js 'add/remove device' disabled bug

* revert extra change
2022-03-14 07:46:39 -05:00
Bram KragtenandZack d1085b6657 Fix theme setting (#11977) 2022-03-14 07:45:23 -05:00
Paulus Schoutsen cc27ddb362 Bumped version to 20220312.0 2022-03-12 13:47:05 -08:00
Paulus Schoutsen c4dc6bfb0d Bumped version to 20220301.2 2022-03-12 13:45:34 -08:00
Paulus Schoutsen 4fbcc30a37 Merge remote-tracking branch 'origin/master' into dev 2022-03-12 13:43:33 -08:00
Paulus Schoutsen 4916527e5f Bumped version to 20220301.1 2022-03-12 13:42:42 -08:00
Paulus SchoutsenandGitHub fad8a27232 HAWS 6.1 (#12016) 2022-03-12 09:56:25 -10:00
Zack BarettandGitHub a993d3a753 Script ID update with Alias (#12008) 2022-03-11 21:25:09 -08:00
Zack BarettandGitHub 5dfe17a43a Fix: Allow for deleting Input_select options (#12007) 2022-03-11 17:07:56 -08:00
Zack BarettandGitHub 9b6c935ffb Fix For Selecting Device Class (#12010) 2022-03-11 09:39:04 -08:00
Zack BarettandGitHub f4e28da0a3 Fix Dashboard Editing (#12011) 2022-03-11 09:38:18 -08:00
Zack BarettandGitHub 294a69d7e4 Fix changing cost number in energy settings (#12009) 2022-03-11 09:37:22 -08:00
f89b8cffcf Fix zwave_js set config dropdown default value (#11974)
Co-authored-by: Paulus Schoutsen <[email protected]>
2022-03-10 09:21:04 -06:00
Raman GuptaandGitHub 99fd3a1b6f Fix zwave_js 'add/remove device' disabled bug (#12000)
* Fix zwave_js 'add/remove device' disabled bug

* revert extra change
2022-03-10 08:45:12 -05:00
Emil StjernemanandGitHub 246e426182 #11971 Change order of alarm panel buttons (#11998) 2022-03-09 19:54:40 -06:00
Paulus SchoutsenandGitHub 9f1e9b43fe Use entities-picker in entity selector (#11990) 2022-03-08 21:33:23 -06:00
MariusandGitHub 8301ae262c change icon to mimic physical device
and follow comments
2022-03-08 21:40:42 +01:00
Zack BarettandGitHub d968fe41ee Update Style of Design Page (#11982) 2022-03-08 10:19:18 -08:00
Bram KragtenandGitHub db830e9014 Fix theme setting (#11977) 2022-03-08 10:13:08 -08:00
Paulus SchoutsenandGitHub fc6b594a27 Allow selecting multiple entities (#11986) 2022-03-08 10:09:45 -08:00
MariusandGitHub 86dbf99ebe replace default switch icon
to  make it stand out against a power entity which uses the same mdiFlash https://github.com/home-assistant/core/issues/67620#issuecomment-1061949527

suggest the Outline version, so create a subtle difference with the on/off icons.
2022-03-08 17:41:32 +01:00
Joakim SørensenandGitHub 68e7ce1883 Add systemd_resolved unsupported reason (#11971) 2022-03-07 17:42:49 +01:00
Bram KragtenandGitHub e9003ac35e Merge pull request #11969 from home-assistant/patch-release 2022-03-07 17:08:58 +01:00
Bram Kragten 1dd5214b42 Bumped version to 20220301.1 2022-03-07 16:51:41 +01:00
Bram Kragten 96738350bb Add location selector, convert zone editor (#11902) 2022-03-07 16:51:20 +01:00
Bram Kragten 5bdecf57cf Convert file upload to mdc (#11906) 2022-03-07 16:51:02 +01:00
Bram Kragten ec12282f8c A11y expansion panel (#11967) 2022-03-07 16:50:42 +01:00
Zack BarettandBram Kragten 552dbca201 Fix for Statistics Editor (#11942)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-07 16:50:29 +01:00
Bram Kragten 0bbc0ebb3c Make min width of select configurable (#11965) 2022-03-07 16:50:14 +01:00
Bram Kragten ac7acc5802 Fix humidifier more info mode dropdown (#11964) 2022-03-07 16:49:59 +01:00
Philip AllgaierandBram Kragten 64e1d160d1 Correct media upload error + add file name (#11949)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-07 16:49:40 +01:00
Bram Kragten 8e51878b6d Convert inputs (#11907)
* Convert inputs

* Update dialog-thingtalk.ts

* imports
2022-03-07 16:49:20 +01:00
Paulus SchoutsenandBram Kragten 7c94ced303 Guard setting up config flow for an unsupported domain (#11937) 2022-03-07 16:48:57 +01:00
Bram Kragten a040e1d5e0 Convert lovelace config dialogs to ha-form (#11910) 2022-03-07 16:48:36 +01:00
Bram Kragten 87c7407857 Convert objects to string in config flow error (#11908) 2022-03-07 16:48:16 +01:00
Bram Kragten d0d0c44ec7 Fix quickbar overlaying, fix click handling (#11900) 2022-03-07 16:47:56 +01:00
Bram KragtenandGitHub 4cdff3faea Add location selector, convert zone editor (#11902) 2022-03-07 08:47:20 -06:00
Bram KragtenandGitHub 0dac10aa23 Convert file upload to mdc (#11906) 2022-03-07 08:42:40 -06:00
Bram KragtenandGitHub 4b8b14a69d A11y expansion panel (#11967) 2022-03-07 08:40:19 -06:00
9d28df31bd Fix for Statistics Editor (#11942)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-07 15:29:00 +01:00
Bram KragtenandGitHub 8258641443 Make min width of select configurable (#11965) 2022-03-07 14:55:44 +01:00
Bram KragtenandGitHub dfcb0f6ba0 Fix humidifier more info mode dropdown (#11964) 2022-03-07 07:25:38 -06:00
2e10eb04b6 Correct media upload error + add file name (#11949)
Co-authored-by: Bram Kragten <[email protected]>
2022-03-07 12:08:54 +00:00
Raman GuptaandGitHub b4b52d3872 Remove some additional old zwave code (#11941) 2022-03-07 12:49:51 +01:00
Bram KragtenandGitHub 3873203721 Convert inputs (#11907)
* Convert inputs

* Update dialog-thingtalk.ts

* imports
2022-03-07 12:45:39 +01:00
Paulus SchoutsenandGitHub ccb91e0b49 Allow marking YAML editor as read only (#11960) 2022-03-07 12:39:16 +01:00
Paulus SchoutsenandGitHub bd20c15a55 Show triggered vars on click (#11924) 2022-03-04 23:24:31 -08:00
Paulus SchoutsenandGitHub 0936fd9ae4 Guard setting up config flow for an unsupported domain (#11937) 2022-03-04 14:31:11 -08:00
Bram KragtenandGitHub adefc7a4e2 Convert lovelace config dialogs to ha-form (#11910) 2022-03-04 23:15:10 +01:00
Bram KragtenandGitHub 8f8017ecff Remove zwave and ozw panels (#11911)
Remove zwave and ozw panels
2022-03-04 14:10:44 -08:00
Robin WittebolandGitHub 604b79696e Always show tab labels (#11919) 2022-03-03 19:46:14 +01:00
Robin WittebolandGitHub 8c445f6409 Fix datepicker triangle (#11920) 2022-03-03 19:45:03 +01:00
Bram KragtenandGitHub 797c871137 Convert objects to string in config flow error (#11908) 2022-03-03 13:55:40 +01:00
Steve RepsherandGitHub 24829bd903 Supervisor mobile click accessibility (#11915) 2022-03-03 10:15:22 +01:00
Bram KragtenandGitHub add92a559d Fix quickbar overlaying, fix click handling (#11900) 2022-03-02 17:50:01 +01:00
Paulus SchoutsenandGitHub 7f086c0900 Merge pull request #11899 from home-assistant/dev 2022-03-01 15:06:56 -08:00
Paulus Schoutsen 17018c0f26 Bumped version to 20220301.0 2022-03-01 14:48:41 -08:00
Joakim SørensenandGitHub cd6a478130 Better handle brands URL in media thumbnails (#11890) 2022-03-01 14:32:56 -08:00
Zack BarettandGitHub 4f6d7ca5c9 Fix for Entity SElector when supplying multiple domains (#11887)
Fix for Entity SElector when supplying multiple domains
2022-02-28 16:45:33 -08:00
Joakim SørensenandGitHub c2994343b4 Remove unused attributes from search-input (#11889) 2022-02-28 18:27:07 -06:00
Joakim SørensenandGitHub e5f77c35d4 Remove autofocus form log panel search (#11888) 2022-03-01 00:31:09 +01:00
Steve RepsherandGitHub a9e5a5dd44 Add a few button labels (#11885)
* Add label to remove addon repository button

* Add label to delete energy device button

* Add label to quick bar button
2022-02-28 23:53:39 +01:00
Bram KragtenandGitHub 1159798b8d Energy: Wait with subscribe for _config to be set (#11884) 2022-02-28 12:32:36 -06:00
Paulus SchoutsenandGitHub 437de42c55 Handle resolve media and cannot play errors (#11878) 2022-02-28 12:30:49 +01:00
Bram KragtenandGitHub 89e0bb3f16 Fix date input in Safari (#11871)
* Fix date input in Safari

* helper
2022-02-28 12:29:53 +01:00
Robin WittebolandGitHub 28c9631b6c Remove white border on date-range-picker triangle (#11877) 2022-02-28 12:29:07 +01:00
Paulus SchoutsenandGitHub 8882624618 Merge pull request #11867 from home-assistant/dev 2022-02-26 13:41:41 -08:00
Paulus SchoutsenandGitHub ffac3d055e Merge pull request #11848 from home-assistant/dev 2022-02-24 16:37:06 -08:00
+22 09f8f816d1 Merge pull request #11809 from home-assistant/dev (#11809)
* Fix config card rtl issues

* Remove optional field from ha-form schema type (#11538)

* Add entity id autocompletion to YAML code editors (#11099)

* Add selectors to ha-form (#11534)

* Allow translate gas total (#11547)

* Migrate combobox to mwc (#11546)

* New date picker (#11555)

* Link via device on device page (#11554)

Co-authored-by: Zack Barett <[email protected]>

* Add integration_discovery to discovery sources (#11564)

* Remember filter between navigation (#11565)

* Convert selectors to MWC (#11543)

* Covert area picker to combo-box (#11562)

* Convert entity picker to ha-combo (#11560)

* Convert entity picker to ha-combo

* Update ha-entity-picker.ts

* Handle empty better

* Clear value when no device/area/entity

* Update links on info page (#11590)

* Migrate (input) select entities to mwc (#11591)

* Convert HaFormSchemas to use selectors (#11589)

* Fix number selector (#11585)

* Convert entity-attribute picker to ha-combo-box (#11587)

* Convert icon picker to ha-combobox (#11586)

Co-authored-by: Zack <[email protected]>

* Convert area-devices picker (#11588)

* Convert device automation picker to mwc (#11592)

Co-authored-by: Zack <[email protected]>

* Fix clearing device in device action (#11594)

* dark mode fixes (#11595)

* Only show stable add-ons in the store if not advanced mode (#11596)

* Convert Automation Action Choose to HA Form (#11597)

* Convert Auatomation Action Choose to HA Form

* remove log

* Remove Import

* Replace checkboxes in list items with `check-list-item` (#11610)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Make textarea grow on input (#11618)

* Update lit-virtualizer (#11623)

* Convert time inputs to Lit + mwc (#11609)

* Set initial focus for device, area, and entity dialogs (#11622)

* Add aria-label to table headers with no title (#11503)

* Add loadCardHelpers to cast scope (#11616)

* Update code editor to material 3 look (#11628)

* Set button role on button card and handle enter and space (#11627)

* Only load ha-selector when needed (#11630)

* Fix service control for older browsers (#11629)

* Migrate a bunch of paper-dropdowns (#11626)

* Merged too fast for Bram :) Code improv (#11632)

* Add support for opening camera media source (#11633)

Co-authored-by: Zack Barett <[email protected]>

* Create error when trying to backup wile system in freeze (#11634)

Co-authored-by: Bram Kragten <[email protected]>

* Add missing type to create device automation/script heading (#11635)

Co-authored-by: Bram Kragten <[email protected]>

* Generate random webhook_id and add copy button (#11568)

Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Migrate search bar to mwc (#11637)

* fix data-table row handlers (#11638)

* Bunch of fixes and cleanup (#11636)

* State Trigger -> HA Form (#11631)

Co-authored-by: Bram Kragten <[email protected]>

* Allow uploading media (#11615)

* Allow uploading media

* Update path

* Use current item we already have

* Update src/panels/media-browser/ha-panel-media-browser.ts

Co-authored-by: Bram Kragten <[email protected]>

* Use alert dialog and use button for add media

Co-authored-by: Bram Kragten <[email protected]>

* Add Attribute Picker as a selector - add to state trigger (#11641)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Time Pattern to HA Form (#11648)

* MQTT Trigger to Ha-Form (#11643)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Convert Sun to Ha Form (#11647)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Geo Location Trigger to HA - Form (#11644)

Co-authored-by: Paulus Schoutsen <[email protected]>

* HA Trigger to HA Form (#11645)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Make HA Form set required to false for selectors (#11649)

* Fix Lovelace Empty Menu when not advanced or admin (#11660)

* Add support for media player assumed state (#11642)

* Improve search and filters on mobile + fix close button in search field (#11662)

Co-authored-by: Zack <[email protected]>

* Allow adding Zigbee/Zwave device (#11650)

* Numerical State to HA-Form (#11646)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Filter fixes (#11664)

* Add WORKSPACE_DIRECTORY environment variable to devcontainer and script.core (#11477)

Co-authored-by: Joakim Sørensen <[email protected]>

* hotfix history view on missing state (#11663)

Co-authored-by: Paulus Schoutsen <[email protected]>

* Improve robustness of hls media player (#11672)

* Revert compute state display show empty string as unknown (#11677)

* Set initial focus for some more dialogs (#11676)

* Limit types of media that can be uploaded to local media (#11683)

* Don't show toggle always on more info (#11640)

* Add TTS to media browser (#11679)

* Omit Device info and actions for connected controller nodes (#11673)

* Script Editor to Ha Form (#11601)

Co-authored-by: Bram Kragten <[email protected]>

* Another round of paper-dropdown -> mwc-select conversion (#11674)

* Another round of paper-dropdown -> mwc-select conversion

* ha-pick-language-row -> Lit

* Update hui-view-editor.ts

* Cleanup imports

* hassio

* Add explicit imports

* hassio fixes (#11688)

* Dont exclude domain for area and device (#11689)

* Try to keep the browsing stack when changing players in media panel (#11681)

* Allow uploading multiple files (#11687)

* Bumped version to 20220214.0

* Group helpers not in an area in a single card (#11690)

* Improve `stripPrefixFromEntityName` to handle colon and space separator (#11691)

* Display transmitted messages in MQTT debug info dialog (#11531)

* Latest paper-dropdown -> mwc-select conversion (#11692)

* This adds back mobile click accessibility (#11693)

* Updated text part 2 (#11686)

Co-authored-by: Zack Barett <[email protected]>

* Set initial focus for lovelace dialogs (#11667)

Co-authored-by: Bram Kragten <[email protected]>

* Migrate all lovelace elements to mwc (#11695)

Co-authored-by: Zack Barett <[email protected]>

* Fix import

* Clean up some imports (#11696)

* Convert triple dots to single char in translations (#11697)

* Fixes remote icon state color (#11698)

* Convert scene action to service call (#11705)

* Convert scene action to service call

* fix describeAction

* rename to metadata

* Update script.ts

* Fix mode selection in automation editor (#11707)

* Remove duplicate gallery page (#11711)

* Add bottom padding to config links list with safe-area-inset-bottom (#11704)

* Bump hls.js to v1.1.5 (#11712)

* Make zwave_js config panel inclusion state aware (#11556)

Co-authored-by: Bram Kragten <[email protected]>

* Fix mwc-select in lovelace editors (#11708)

* Add signed add-on capability and adjust max rating (#11703)

* Add support for removing config entry from a device

* Tweak

* Fix lint error

* Tweak

* Prettier

* Add play media action (#11702)

Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>

* Debounce refresh the cloud status if Google events happen (#11721)

* Remove custom MQTT delete device button (#11724)

* Apply suggestions from code review

Co-authored-by: Bram Kragten <[email protected]>

* Update src/panels/config/devices/ha-config-device-page.ts

Co-authored-by: Bram Kragten <[email protected]>

* Correct typing

* Prettier

* Remove useless Array.isArray check

* Remove custom Tasmota delete device button (#11725)

* Automation Conditions to conversion to ha-form or mwc (#11727)

* Set initial focus for energy dialogs (#11730)

* Entity Settings Page to MWC 3 (#11694)

* Show why relayer is reconnecting (#11732)

* Change words for trigger condition (#11733)

* Update media player more info (#11734)

* Pass hass to ha-form to enable selectors (#11739)

* Bumped version to 20220220.0

* Add link to the selector docs

* TTS form no longer showed due to import oopsie (#11742)

* Improve logo rendering for playing media in browser (#11741)

* Fix media upload on iOS (#11740)

* Handle inifinity media duration (#11749)

* Show when media is being loaded (#11750)

* Lovelace Entity Card Editor to Ha Form - Adds Theme Selector and HaFormColumn (#11731)

Co-authored-by: Bram Kragten <[email protected]>

* Set initial focus for supervisor dialogs (#11710)

* Convert Automation Actions to mwc/ha-form + other automation items (#11753)

* Selector: remove text value when not required and empty (#11754)

* Convert date-range-picker to mwc (#11755)

* Radio Browser is now added during onboarding (#11756)

* Add support for the media browser My link (#11757)

* Show Home Assistant when creating partial backup (#11758)

* Fix zwave migration (#11751)

* Allow config entries to be reloaded when they are in setup_retry state (#11759)

* Area Card Editor to Ha Form (#11762)

* Fix WebRTC player stream playback when disconnected/connected (#11764)

* set theme to undefined when no theme (#11765)

* Paper input migrations (#11766)

* Only show description when set (#11772)

* Thermostat Editor to HA - Form (#11763)

* Thermostat - Ha Form

* Update hui-thermostat-card-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

* Alarm Card Editor to HA Form (#11760)

* Move to ha-form

* Update hui-alarm-panel-card-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

* Change icons for cover with device_class curtain (#11752)

Co-authored-by: Bram Kragten <[email protected]>

* no need for memoize

* Include scoped custom element polyfill (#11776)

* Show triggered in automation editor (#11771)

Co-authored-by: Bram Kragten <[email protected]>

* Allow changing volume media player entity (#11781)

Co-authored-by: Zack Barett <[email protected]>

* Add community section (#11779)

* Bumped version to 20220222.0

* Fix State Condition 'For' Data (#11782)

* entities card editor to MWC (#11785)

* Fix ripple corner radius for button card (#11780)

* Condition Card Editor to MWC (#11783)

* Show number of hidden items (#11786)

* Put volume slider in the middle of the button (#11788)

* Add media management dialog (#11787)

Co-authored-by: Bram Kragten <[email protected]>

* Convert alarm control panel more info (#11791)

* Convert alarm control panel more info

* Update more-info-alarm_control_panel.ts

* Update src/dialogs/more-info/controls/more-info-alarm_control_panel.ts

* Apply suggestions from code review

Co-authored-by: Zack Barett <[email protected]>

* import

Co-authored-by: Zack Barett <[email protected]>

* Migrate more-info configurator (#11792)

* Migrate more-info configurator

* Update more-info-configurator.ts

* Update src/dialogs/more-info/controls/more-info-configurator.ts

* Update src/dialogs/more-info/controls/more-info-configurator.ts

Co-authored-by: Zack Barett <[email protected]>

* Import

Co-authored-by: Zack Barett <[email protected]>

* Convert more info lock (#11794)

* Add Margin to Tip (#11790)

Co-authored-by: Bram Kragten <[email protected]>

* Dont render double label on number selector (#11796)

* Input conversion in dev tools (#11795)

* Gauge Editor to Ha Form (#11793)

* Stop spinning when opening media in dialog (#11800)

* Fix Entities picker (#11802)

* Migrate single textfields (#11799)

* Migrate single textfields

* Update ha-config-name-form.ts

* Update dialog-area-registry-detail.ts

* Update manual-automation-editor.ts

* Update manual-automation-editor.ts

* required to number selector fix script

* review

* change repository url and project description (#11801)

* Calendar card to HA Form (#11784)

* Graph Footer to MWC (#11803)

* History Graph Editor to ha form (#11797)

* Glance editor to ha-form (#11804)

* Grid Card to HA Form (#11798)

* Button editor to ha-form (#11808)

* Bumped version to 20220223.0

* mwc-select -> ha-select (#11806)

Co-authored-by: Yosi Levy <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Yosi Levy <[email protected]>
Co-authored-by: Kuba Wolanin <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
Co-authored-by: Zack Barett <[email protected]>
Co-authored-by: J. Nick Koston <[email protected]>
Co-authored-by: Zack <[email protected]>
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Patrick ZAJDA <[email protected]>
Co-authored-by: Thomas Lovén <[email protected]>
Co-authored-by: Eric Severance <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Shay Levy <[email protected]>
Co-authored-by: Michael <[email protected]>
Co-authored-by: Joakim Sørensen <[email protected]>
Co-authored-by: lintaba <[email protected]>
Co-authored-by: Allen Porter <[email protected]>
Co-authored-by: kpine <[email protected]>
Co-authored-by: Brandon Rothweiler <[email protected]>
Co-authored-by: Erik Montnemery <[email protected]>
Co-authored-by: Matthias de Baat <[email protected]>
Co-authored-by: Philip Allgaier <[email protected]>
Co-authored-by: Josh McCarty <[email protected]>
Co-authored-by: uvjustin <[email protected]>
Co-authored-by: Raman Gupta <[email protected]>
Co-authored-by: Pascal Winters <[email protected]>
Co-authored-by: Robin Wittebol <[email protected]>
Co-authored-by: Tomasz <[email protected]>
2022-02-23 11:11:41 -08:00
Paulus Schoutsen 35a41b3490 Use same help icon everywhere 2022-02-11 08:35:29 -08:00
Paulus Schoutsen f59cb661cd Add a docs icon to the config flow dialog 2022-02-10 14:27:38 -08:00
749 changed files with 36605 additions and 19730 deletions
+1 -1
View File
@@ -51,7 +51,7 @@ DO NOT DELETE ANY TEXT from this template! Otherwise, your issue may be closed w
<!--
Provide details about the versions you are using, which helps us reproducing
and finding the issue quicker. Version information is found in the
Home Assistant frontend: Configuration -> Info.
Home Assistant frontend: Settings -> About.
Browser version and operating system is important! Please try to replicate
your issue in a different browser and be sure to include your findings.
+3 -3
View File
@@ -1,4 +1,4 @@
name: Report a bug with the UI, Frontend or Lovelace
name: Report a bug with the UI / Dashboards
description: Report an issue related to the Home Assistant frontend.
labels: bug
body:
@@ -9,7 +9,7 @@ body:
If you have a feature or enhancement request for the frontend, please [start an discussion][fr] instead of creating an issue.
**Please not not report issues for custom Lovelace cards.**
**Please not not report issues for custom cards.**
[fr]: https://github.com/home-assistant/frontend/discussions
[releases]: https://github.com/home-assistant/home-assistant/releases
@@ -64,7 +64,7 @@ body:
label: What version of Home Assistant Core has the issue?
placeholder: core-
description: >
Can be found in the Configuration panel -> Info.
Can be found in: [Settings -> About](https://my.home-assistant.io/redirect/info/).
- type: input
attributes:
label: What was the last working version of Home Assistant Core?
+4 -4
View File
@@ -1,17 +1,17 @@
blank_issues_enabled: false
contact_links:
- name: Request a feature for the UI, Frontend or Lovelace
- name: Request a feature for the UI / Dashboards
url: https://github.com/home-assistant/frontend/discussions/category_choices
about: Request an new feature for the Home Assistant frontend.
- name: Report a bug that is NOT related to the UI, Frontend or Lovelace
- name: Report a bug that is NOT related to the UI / Dashboards
url: https://github.com/home-assistant/core/issues
about: This is the issue tracker for our frontend. Please report other issues with the backend repository.
about: This is the issue tracker for our frontend. Please report other issues in the backend ("core") repository.
- name: Report incorrect or missing information on our website
url: https://github.com/home-assistant/home-assistant.io/issues
about: Our documentation has its own issue tracker. Please report issues with the website there.
- name: I have a question or need support
url: https://www.home-assistant.io/help
about: We use GitHub for tracking bugs, check our website for resources on getting help.
about: We use GitHub for tracking bugs. Check our website for resources on getting help.
- name: I'm unsure where to go
url: https://www.home-assistant.io/join-chat
about: If you are unsure where to go, then joining our chat is recommended; Just ask!
+8
View File
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: weekly
time: "06:00"
open-pull-requests-limit: 10
+9 -9
View File
@@ -11,7 +11,7 @@ on:
- master
env:
NODE_VERSION: 14
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -19,9 +19,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
@@ -43,9 +43,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
@@ -62,9 +62,9 @@ jobs:
needs: [lint, test]
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
@@ -81,9 +81,9 @@ jobs:
needs: [lint, test]
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
+4 -4
View File
@@ -23,7 +23,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -36,14 +36,14 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -57,4 +57,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2
+3 -3
View File
@@ -6,7 +6,7 @@ on:
- dev
env:
NODE_VERSION: 14
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -14,9 +14,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2.0.1
- uses: dessant/lock-threads@v3.0.0
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: "30"
+73
View File
@@ -0,0 +1,73 @@
name: Nightly
on:
workflow_dispatch:
schedule:
- cron: "0 1 * * *"
env:
PYTHON_VERSION: "3.10"
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
permissions:
actions: none
jobs:
nightly:
name: Nightly
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v3
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
- name: Install dependencies
run: yarn install
- name: Download translations
run: ./script/translations_download
env:
LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }}
- name: Bump version
run: script/version_bump.js nightly
- name: Build nightly Python wheels
run: |
pip install build
yarn install
script/build_frontend
rm -rf dist home_assistant_frontend.egg-info
python3 -m build
- name: Archive translations
run: tar -czvf translations.tar.gz translations
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist/home_assistant_frontend*.whl
if-no-files-found: error
- name: Upload translations
uses: actions/upload-artifact@v3
with:
name: translations
path: translations.tar.gz
if-no-files-found: error
+24 -31
View File
@@ -6,28 +6,36 @@ on:
- published
env:
PYTHON_VERSION: 3.8
NODE_VERSION: 14
PYTHON_VERSION: "3.10"
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
# Set default workflow permissions
# All scopes not mentioned here are set to no access
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
permissions:
actions: none
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # Required to upload release assets
steps:
- name: Checkout the repository
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Verify version
uses: home-assistant/actions/helpers/verify-version@master
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: yarn
@@ -47,6 +55,13 @@ jobs:
script/release
- name: Upload release assets
uses: softprops/[email protected]
with:
files: |
dist/*.whl
dist/*.tar.gz
wheels-init:
name: Init wheels build
needs: release
@@ -59,33 +74,11 @@ jobs:
version=$(echo "${{ github.ref }}" | awk -F"/" '{print $NF}' )
echo "home-assistant-frontend==$version" > ./requirements.txt
- name: Upload requirements.txt
uses: actions/upload-artifact@v2
with:
name: requirements
path: ./requirements.txt
build-wheels:
name: Build wheels for ${{ matrix.arch }}
needs: wheels-init
runs-on: ubuntu-latest
strategy:
matrix:
arch: ["aarch64", "armhf", "armv7", "amd64", "i386"]
tag:
- "3.9-alpine3.14"
steps:
- name: Download requirements.txt
uses: actions/download-artifact@v2
with:
name: requirements
- name: Build wheels
uses: home-assistant/wheels@master
uses: home-assistant/wheels@2022.06.7
with:
tag: ${{ matrix.tag }}
arch: ${{ matrix.arch }}
wheels-host: ${{ secrets.WHEELS_HOST }}
abi: cp310
tag: musllinux_1_2
arch: amd64
wheels-key: ${{ secrets.WHEELS_KEY }}
wheels-user: wheels
requirements: "requirements.txt"
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 90 days stale policy
uses: actions/stale@v3.0.13
uses: actions/stale@v5.1.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
+2 -2
View File
@@ -8,7 +8,7 @@ on:
- src/translations/en.json
env:
NODE_VERSION: 14
NODE_VERSION: 16
jobs:
upload:
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Upload Translations
run: |
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
yarn run lint-staged --relative --shell "/bin/bash"
+1 -1
View File
@@ -1 +1 @@
14
16
+1 -1
View File
@@ -181,7 +181,7 @@
{
"label": "Run HA Core for Supervisor in devcontainer",
"type": "shell",
"command": "HASSIO=${input:supervisorHost} HASSIO_TOKEN=${input:supervisorToken} script/core",
"command": "SUPERVISOR=${input:supervisorHost} SUPERVISOR_TOKEN=${input:supervisorToken} script/core",
"isBackground": true,
"group": {
"kind": "build",
+2 -2
View File
@@ -26,8 +26,8 @@ module.exports = {
},
version() {
const version = fs
.readFileSync(path.resolve(paths.polymer_dir, "setup.cfg"), "utf8")
.match(/version\W+=\W(\d{8}\.\d)/);
.readFileSync(path.resolve(paths.polymer_dir, "pyproject.toml"), "utf8")
.match(/version\W+=\W"(\d{8}\.\d(?:\.dev)?)"/);
if (!version) {
throw Error("Version not found");
}
+9
View File
@@ -156,3 +156,12 @@ gulp.task("gen-icons-json", (done) => {
done();
});
gulp.task("gen-dummy-icons-json", (done) => {
if (!fs.existsSync(OUTPUT_DIR)) {
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
}
fs.writeFileSync(path.resolve(OUTPUT_DIR, "iconList.json"), "[]");
done();
});
+3
View File
@@ -9,6 +9,7 @@ require("./compress.js");
require("./rollup.js");
require("./gather-static.js");
require("./translations.js");
require("./gen-icons-json.js");
gulp.task(
"develop-hassio",
@@ -17,6 +18,7 @@ gulp.task(
process.env.NODE_ENV = "development";
},
"clean-hassio",
"gen-dummy-icons-json",
"gen-index-hassio-dev",
"build-supervisor-translations",
"copy-translations-supervisor",
@@ -33,6 +35,7 @@ gulp.task(
process.env.NODE_ENV = "production";
},
"clean-hassio",
"gen-dummy-icons-json",
"build-supervisor-translations",
"copy-translations-supervisor",
"build-locale-data",
+30 -1
View File
@@ -1 +1,30 @@
[]
[
{
"path": "M20,20H7A2,2 0 0,1 5,18V8.94L2.23,5.64C2.09,5.47 2,5.24 2,5A1,1 0 0,1 3,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M8.5,7A0.5,0.5 0 0,0 8,7.5V8.5A0.5,0.5 0 0,0 8.5,9H18.5A0.5,0.5 0 0,0 19,8.5V7.5A0.5,0.5 0 0,0 18.5,7H8.5M8.5,11A0.5,0.5 0 0,0 8,11.5V12.5A0.5,0.5 0 0,0 8.5,13H18.5A0.5,0.5 0 0,0 19,12.5V11.5A0.5,0.5 0 0,0 18.5,11H8.5M8.5,15A0.5,0.5 0 0,0 8,15.5V16.5A0.5,0.5 0 0,0 8.5,17H13.5A0.5,0.5 0 0,0 14,16.5V15.5A0.5,0.5 0 0,0 13.5,15H8.5Z",
"name": "android-messages"
},
{
"path": "M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,12L17.5,10.5L15,12V4H20V12Z",
"name": "book-variant-multiple"
},
{
"path": "M21,14H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10L8,21V22H16V21L14,18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z",
"name": "desktop-mac"
},
{
"path": "M21,14V4H3V14H21M21,2A2,2 0 0,1 23,4V16A2,2 0 0,1 21,18H14L16,21V22H8V21L10,18H3C1.89,18 1,17.1 1,16V4C1,2.89 1.89,2 3,2H21M4,5H15V10H4V5M16,5H20V7H16V5M20,8V13H16V8H20M4,11H9V13H4V11M10,11H15V13H10V11Z",
"name": "desktop-mac-dashboard"
},
{
"path": "M22,24L16.75,19L17.38,21H4.5A2.5,2.5 0 0,1 2,18.5V3.5A2.5,2.5 0 0,1 4.5,1H19.5A2.5,2.5 0 0,1 22,3.5V24M12,6.8C9.32,6.8 7.44,7.95 7.44,7.95C8.47,7.03 10.27,6.5 10.27,6.5L10.1,6.33C8.41,6.36 6.88,7.53 6.88,7.53C5.16,11.12 5.27,14.22 5.27,14.22C6.67,16.03 8.75,15.9 8.75,15.9L9.46,15C8.21,14.73 7.42,13.62 7.42,13.62C7.42,13.62 9.3,14.9 12,14.9C14.7,14.9 16.58,13.62 16.58,13.62C16.58,13.62 15.79,14.73 14.54,15L15.25,15.9C15.25,15.9 17.33,16.03 18.73,14.22C18.73,14.22 18.84,11.12 17.12,7.53C17.12,7.53 15.59,6.36 13.9,6.33L13.73,6.5C13.73,6.5 15.53,7.03 16.56,7.95C16.56,7.95 14.68,6.8 12,6.8M9.93,10.59C10.58,10.59 11.11,11.16 11.1,11.86C11.1,12.55 10.58,13.13 9.93,13.13C9.29,13.13 8.77,12.55 8.77,11.86C8.77,11.16 9.28,10.59 9.93,10.59M14.1,10.59C14.75,10.59 15.27,11.16 15.27,11.86C15.27,12.55 14.75,13.13 14.1,13.13C13.46,13.13 12.94,12.55 12.94,11.86C12.94,11.16 13.45,10.59 14.1,10.59Z",
"name": "discord"
},
{
"path": "M8.06,7.78C7.5,7.78 7.17,7.73 7.08,7.64L6.66,13.73C7.19,14.05 7.88,14.3 8.72,14.5C9.56,14.71 10.78,14.77 12.38,14.67C13.97,14.58 15.63,14.23 17.34,13.64L16.55,4.22C15.67,5.09 14.38,5.91 12.66,6.66C11.13,7.31 9.81,7.69 8.72,7.78H8.06M7.97,5.34C7.28,5.94 7,6.34 7.13,6.56C7.22,6.78 7.7,6.84 8.58,6.75C9.67,6.66 10.91,6.31 12.28,5.72C13.22,5.31 14.03,4.88 14.72,4.41C15.41,3.94 15.88,3.55 16.13,3.23C16.38,2.92 16.47,2.7 16.41,2.58C16.34,2.42 16.03,2.34 15.47,2.34C14.34,2.34 12.94,2.7 11.25,3.42C9.81,4.05 8.72,4.69 7.97,5.34M17.34,2.2C17.41,2.33 17.44,2.47 17.44,2.63L18.61,17C18.61,18.73 18,20.09 16.83,21.07C15.64,22.05 14.03,22.55 12,22.55C10,22.55 8.4,22.04 7.2,21C6,20 5.39,18.64 5.39,16.92L6.09,6.47C6.09,6.22 6.2,5.94 6.42,5.63C6.64,5.31 6.84,5.06 7.03,4.88L7.36,4.59C8.33,3.78 9.5,3.08 10.88,2.5C11.81,2.08 12.73,1.77 13.62,1.57C14.5,1.37 15.3,1.3 16,1.38C16.71,1.46 17.16,1.73 17.34,2.2Z",
"name": "google-home"
},
{
"path": "M19.25,19H4.75V3H19.25M14,22H10V21H14M18,0H6A3,3 0 0,0 3,3V21A3,3 0 0,0 6,24H18A3,3 0 0,0 21,21V3A3,3 0 0,0 18,0Z",
"name": "tablet-android"
}
]
+5 -3
View File
@@ -3,10 +3,10 @@ const webpack = require("webpack");
const path = require("path");
const TerserPlugin = require("terser-webpack-plugin");
const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
const paths = require("./paths.js");
const bundle = require("./bundle.js");
const log = require("fancy-log");
const WebpackBar = require("webpackbar");
const paths = require("./paths.js");
const bundle = require("./bundle.js");
class LogStartCompilePlugin {
ignoredFirst = false;
@@ -76,7 +76,7 @@ const createWebpackConfig = ({
chunkIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
},
plugins: [
new WebpackBar({ fancy: !isProdBuild }),
!isStatsBuild && new WebpackBar({ fancy: !isProdBuild }),
new WebpackManifestPlugin({
// Only include the JS of entrypoints
filter: (file) => file.isInitial && !file.name.endsWith(".map"),
@@ -138,6 +138,8 @@ const createWebpackConfig = ({
"lit/directives/cache$": "lit/directives/cache.js",
"lit/directives/repeat$": "lit/directives/repeat.js",
"lit/polyfill-support$": "lit/polyfill-support.js",
"@lit-labs/virtualizer/layouts/grid":
"@lit-labs/virtualizer/layouts/grid.js",
},
},
output: {
+9
View File
@@ -0,0 +1,9 @@
# These redirects are handled by Netlify
#
# Some custom cards are not prefixing the instance URL when fetching data
# and can end up fetching the data from the Cast domain instead of HA.
# This will make sure that some common ones are replaced with a placeholder.
/api/camera_proxy/* /images/google-nest-hub.png
/api/camera_proxy_stream/* /images/google-nest-hub.png
/api/media_player_proxy/* /images/google-nest-hub.png
-1
View File
@@ -1,4 +1,3 @@
import "web-animations-js/web-animations-next-lite.min";
import "../../../src/resources/ha-style";
import "../../../src/resources/roboto";
import "./layout/hc-lovelace";
+1 -1
View File
@@ -194,7 +194,7 @@ export const demoLovelaceJimpower: DemoConfig["lovelace"] = () => ({
type: "state-icon",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "group.downstairs_lights",
},
service: "homeassistant.toggle",
+14 -14
View File
@@ -59,7 +59,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
attributes: {
hidden: true,
radius: 50,
friendly_name: "Skolan",
friendly_name: "School",
icon: "mdi:school",
},
},
@@ -137,7 +137,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
state: "73",
attributes: {
unit_of_measurement: "%",
friendly_name: "oskar batteri",
friendly_name: "Oskar battery",
device_class: "battery",
},
},
@@ -146,7 +146,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
state: "88",
attributes: {
unit_of_measurement: "%",
friendly_name: "bella batteri",
friendly_name: "Bella battery",
device_class: "battery",
},
},
@@ -154,7 +154,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
entity_id: "binary_sensor.unifi_camera",
state: "off",
attributes: {
friendly_name: "R\u00f6relsesensor kamera",
friendly_name: "Motion sensor camera",
icon: "mdi:walk",
},
},
@@ -707,7 +707,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
},
],
cloudiness: 25,
friendly_name: "V\u00e4der",
friendly_name: "Weather",
},
},
"binary_sensor.ubiquiti_switch": {
@@ -731,7 +731,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
round_trip_time_max: "0.626",
round_trip_time_mdev: "",
round_trip_time_min: "0.358",
friendly_name: "Entr\u00e9 kamera",
friendly_name: "Entrance camera",
device_class: "connectivity",
icon: "mdi:cctv",
},
@@ -797,7 +797,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
attributes: {
battery_level: 34,
on: true,
friendly_name: "altan_motion_sensor",
friendly_name: "Porch motion sensor",
device_class: "motion",
},
},
@@ -807,7 +807,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
attributes: {
battery_level: 88,
on: true,
friendly_name: "Altand\u00f6rren sensor",
friendly_name: "Back door sensor",
device_class: "opening",
icon: "mdi:door",
},
@@ -818,7 +818,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
attributes: {
battery_level: 74,
on: true,
friendly_name: "badrumssensor",
friendly_name: "Bathroom motion sensor",
device_class: "motion",
},
},
@@ -829,7 +829,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
battery_level: 47,
on: true,
dark: true,
friendly_name: "R\u00f6relsesensor k\u00e4llaren 1",
friendly_name: "Basement motion sensor",
device_class: "motion",
icon: "mdi:walk",
},
@@ -841,7 +841,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
battery_level: 60,
on: true,
dark: true,
friendly_name: "R\u00f6relsesensor tv\u00e4ttstugan",
friendly_name: "Laundy room motion sensor",
device_class: "motion",
icon: "mdi:walk",
},
@@ -863,7 +863,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
attributes: {
battery_level: 60,
on: true,
friendly_name: "R\u00f6relsesensor skafferiet",
friendly_name: "Pantry motion sensor",
device_class: "motion",
icon: "mdi:walk",
},
@@ -875,7 +875,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
battery_level: 60,
on: true,
dark: true,
friendly_name: "R\u00f6relsesensor k\u00e4llaren 2",
friendly_name: "Stair motion sensor",
device_class: "motion",
icon: "mdi:walk",
},
@@ -887,7 +887,7 @@ export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
battery_level: 47,
on: true,
dark: true,
friendly_name: "B\u00e4nksensor",
friendly_name: "Bench sensor",
device_class: "motion",
},
},
+1 -1
View File
@@ -277,7 +277,7 @@ export const demoLovelaceKernehed: DemoConfig["lovelace"] = () => ({
],
show_header_toggle: false,
type: "entities",
title: "Bandbredd",
title: "Bandwidth",
},
// {
// title: "Updater",
+9 -9
View File
@@ -377,7 +377,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
name: "AC bed",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "script.air_cleaner_quiet",
},
service: "script.turn_on",
@@ -390,7 +390,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
name: "AC bed",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "script.air_cleaner_auto",
},
service: "script.turn_on",
@@ -403,7 +403,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
name: "AC bed",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "script.air_cleaner_turbo",
},
service: "script.turn_on",
@@ -416,7 +416,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
name: "AC",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "script.ac_off",
},
service: "script.turn_on",
@@ -429,7 +429,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
name: "AC",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "script.ac_on",
},
service: "script.turn_on",
@@ -629,7 +629,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
entity: "scene.morning_lights",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "scene.morning_lights",
},
service: "scene.turn_on",
@@ -641,7 +641,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
entity: "scene.movie_time",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "scene.movie_time",
},
service: "scene.turn_on",
@@ -702,7 +702,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
entity: "light.downstairs_lights",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "light.downstairs_lights",
},
service: "light.toggle",
@@ -714,7 +714,7 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
entity: "light.upstairs_lights",
tap_action: {
action: "call-service",
service_data: {
data: {
entity_id: "light.upstairs_lights",
},
service: "light.toggle",
+36 -5
View File
@@ -1,5 +1,4 @@
// Compat needs to be first import
import "../../src/resources/compatibility";
import { isNavigationClick } from "../../src/common/dom/is-navigation-click";
import { navigate } from "../../src/common/navigate";
import {
@@ -7,9 +6,14 @@ import {
provideHass,
} from "../../src/fake_data/provide_hass";
import { HomeAssistantAppEl } from "../../src/layouts/home-assistant";
import "../../src/resources/compatibility";
import { HomeAssistant } from "../../src/types";
import { selectedDemoConfig } from "./configs/demo-configs";
import { mockAuth } from "./stubs/auth";
import { mockConfigEntries } from "./stubs/config_entries";
import { mockEnergy } from "./stubs/energy";
import { energyEntities } from "./stubs/entities";
import { mockEntityRegistry } from "./stubs/entity_registry";
import { mockEvents } from "./stubs/events";
import { mockFrontend } from "./stubs/frontend";
import { mockHistory } from "./stubs/history";
@@ -20,9 +24,6 @@ import { mockShoppingList } from "./stubs/shopping_list";
import { mockSystemLog } from "./stubs/system_log";
import { mockTemplate } from "./stubs/template";
import { mockTranslations } from "./stubs/translations";
import { mockEnergy } from "./stubs/energy";
import { mockConfig } from "./stubs/config";
import { energyEntities } from "./stubs/entities";
class HaDemo extends HomeAssistantAppEl {
protected async _initializeHass() {
@@ -51,8 +52,38 @@ class HaDemo extends HomeAssistantAppEl {
mockMediaPlayer(hass);
mockFrontend(hass);
mockEnergy(hass);
mockConfig(hass);
mockPersistentNotification(hass);
mockConfigEntries(hass);
mockEntityRegistry(hass, [
{
config_entry_id: "co2signal",
device_id: "co2signal",
area_id: null,
disabled_by: null,
entity_id: "sensor.co2_intensity",
id: "sensor.co2_intensity",
name: null,
icon: null,
platform: "co2signal",
hidden_by: null,
entity_category: null,
has_entity_name: false,
},
{
config_entry_id: "co2signal",
device_id: "co2signal",
area_id: null,
disabled_by: null,
entity_id: "sensor.grid_fossil_fuel_percentage",
id: "sensor.co2_intensity",
name: null,
icon: null,
platform: "co2signal",
hidden_by: null,
entity_category: null,
has_entity_name: false,
},
]);
hass.addEntities(energyEntities());
-41
View File
@@ -1,41 +0,0 @@
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
export const mockConfig = (hass: MockHomeAssistant) => {
hass.mockAPI("config/config_entries/entry", () => [
{
entry_id: "co2signal",
domain: "co2signal",
title: "CO2 Signal",
source: "user",
state: "loaded",
supports_options: false,
supports_unload: true,
pref_disable_new_entities: false,
pref_disable_polling: false,
disabled_by: null,
reason: null,
},
]);
hass.mockWS("config/entity_registry/list", () => [
{
config_entry_id: "co2signal",
device_id: "co2signal",
area_id: null,
disabled_by: null,
entity_id: "sensor.co2_intensity",
name: null,
icon: null,
platform: "co2signal",
},
{
config_entry_id: "co2signal",
device_id: "co2signal",
area_id: null,
disabled_by: null,
entity_id: "sensor.grid_fossil_fuel_percentage",
name: null,
icon: null,
platform: "co2signal",
},
]);
};
+20
View File
@@ -0,0 +1,20 @@
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
export const mockConfigEntries = (hass: MockHomeAssistant) => {
hass.mockWS("config_entries/get", () => [
{
entry_id: "co2signal",
domain: "co2signal",
title: "CO2 Signal",
source: "user",
state: "loaded",
supports_options: false,
supports_remove_device: false,
supports_unload: true,
pref_disable_new_entities: false,
pref_disable_polling: false,
disabled_by: null,
reason: null,
},
]);
};
+1 -1
View File
@@ -1,4 +1,4 @@
import { format, startOfToday, startOfTomorrow } from "date-fns";
import { format, startOfToday, startOfTomorrow } from "date-fns/esm";
import { EnergySolarForecasts } from "../../../src/data/energy";
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+3 -1
View File
@@ -4,4 +4,6 @@ import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
export const mockEntityRegistry = (
hass: MockHomeAssistant,
data: EntityRegistryEntry[] = []
) => hass.mockWS("config/entity_registry/list", () => data);
) => {
hass.mockWS("config/entity_registry/list", () => data);
};
+1 -1
View File
@@ -31,7 +31,7 @@ export const mockHassioSupervisor = (hass: MockHomeAssistant) => {
version_latest: "3.6.2",
update_available: false,
repository: "a0d7b954",
icon: true,
icon: false,
logo: true,
},
{
+2 -1
View File
@@ -4,7 +4,7 @@ import {
addMonths,
differenceInHours,
endOfDay,
} from "date-fns";
} from "date-fns/esm";
import { HassEntity } from "home-assistant-js-websocket";
import { StatisticValue } from "../../../src/data/history";
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
@@ -466,6 +466,7 @@ export const mockHistory = (mockHass: MockHomeAssistant) => {
return results;
}
);
mockHass.mockWS("recorder/get_statistics_metadata", () => []);
mockHass.mockWS("history/list_statistic_ids", () => []);
mockHass.mockWS(
"history/statistics_during_period",
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

+1 -1
View File
@@ -23,7 +23,7 @@ if [[ "${PULL_REQUEST}" == "true" ]]; then
createStatus "pending" "Building design preview" "https://app.netlify.com/sites/home-assistant-gallery/deploys/$BUILD_ID"
gulp build-gallery
if [ $? -eq 0 ]; then
createStatus "success" "Build complete" "$DEPLOY_URL"
createStatus "success" "Build complete" "$DEPLOY_PRIME_URL"
else
createStatus "error" "Build failed" "https://app.netlify.com/sites/home-assistant-gallery/deploys/$BUILD_ID"
fi
+9 -4
View File
@@ -8,7 +8,7 @@ module.exports = [
{
category: "lovelace",
// Label for in the sidebar
header: "Lovelace",
header: "Dashboards",
// Specify order of pages. Any pages in the category folder but not listed here will
// automatically be added after the pages listed here.
pages: ["introduction"],
@@ -34,14 +34,19 @@ module.exports = [
},
{
category: "misc",
header: "Miscelaneous",
header: "Miscellaneous",
},
{
category: "brand",
header: "Brand",
},
{
category: "user-test",
header: "User Tests",
header: "Users",
pages: ["user-types", "configuration-menu"],
},
{
category: "design.home-assistant.io",
header: "Design Documentation",
header: "About",
},
];
+13 -7
View File
@@ -53,13 +53,19 @@ class DemoBlackWhiteRow extends LitElement {
firstUpdated(changedProps) {
super.firstUpdated(changedProps);
applyThemesOnElement(this.shadowRoot!.querySelector(".dark"), {
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
});
applyThemesOnElement(
this.shadowRoot!.querySelector(".dark"),
{
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
},
undefined,
undefined,
true
);
}
handleSubmit(ev) {
+3
View File
@@ -78,6 +78,9 @@ class DemoCards extends LitElement {
ha-formfield {
margin-right: 16px;
}
#container {
background-color: var(--primary-background-color);
}
`;
}
+21 -1
View File
@@ -12,7 +12,14 @@ class PageDescription extends HaMarkdown {
if (!PAGES[this.page].description) {
return html``;
}
return html`
<div class="heading">
<div class="title">
${PAGES[this.page].metadata.title || this.page.split("/")[1]}
</div>
<div class="subtitle">${PAGES[this.page].metadata.subtitle}</div>
</div>
${until(
PAGES[this.page]
.description()
@@ -25,9 +32,22 @@ class PageDescription extends HaMarkdown {
static styles = [
HaMarkdown.styles,
css`
.heading {
padding: 16px;
border-bottom: 1px solid var(--secondary-background-color);
}
.title {
font-size: 42px;
line-height: 56px;
padding-bottom: 8px;
}
.subtitle {
font-size: 18px;
line-height: 24px;
}
.root {
max-width: 800px;
margin: 0 auto;
margin: 16px auto;
}
.root > *:first-child {
margin-top: 0;
+11
View File
@@ -0,0 +1,11 @@
export const LONG_TEXT = `
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc laoreet velit ut elit volutpat, eget ultrices odio lacinia. In imperdiet malesuada est, nec sagittis metus ultricies quis. Sed nisl ex, convallis porttitor ante quis, hendrerit tristique justo. Mauris pharetra venenatis augue, eu maximus sem cursus in. Quisque sed consequat risus. Suspendisse facilisis ligula a odio consectetur condimentum. Curabitur vehicula elit nec augue mollis, et volutpat massa dictum.
Nam pellentesque auctor rutrum. Suspendisse elit est, sodales vel diam nec, porttitor faucibus massa. Ut pretium ac orci eu pharetra. Praesent in nibh at magna viverra rutrum eu vitae tortor. Etiam eget sem ex. Fusce tristique odio nec lacus mattis, vitae tempor nunc malesuada. Maecenas faucibus magna vel libero maximus egestas. Vestibulum luctus semper velit, in lobortis risus tempus non. Curabitur bibendum ornare commodo. Quisque commodo neque sit amet tincidunt lacinia. Proin elementum ante velit, eu congue nulla semper quis. Pellentesque consequat vel nunc at scelerisque. Mauris sit amet venenatis diam, blandit viverra leo. Integer commodo laoreet orci.
Curabitur ipsum tortor, sodales ut augue sed, commodo porttitor libero. Pellentesque molestie vitae mi consectetur tempor. In sed lectus consequat, lobortis neque non, semper ipsum. Etiam eget ex et nibh sagittis pulvinar lacinia ac mauris. Aenean ligula eros, viverra ac nibh at, venenatis semper quam. Sed interdum ligula sit amet massa tincidunt tincidunt. Suspendisse potenti. Aliquam egestas facilisis est, sed faucibus erat scelerisque id. Duis dolor quam, viverra vitae orci euismod, laoreet pellentesque justo. Nunc malesuada non erat at ullamcorper. Mauris eget posuere odio. Vestibulum turpis nunc, pharetra eget ante in, feugiat mollis justo. Proin porttitor, diam nec vulputate pretium, tellus arcu rhoncus turpis, a blandit nisi nulla quis arcu. Nunc ac ullamcorper ligula, nec facilisis leo.
In vitae eros sollicitudin, iaculis ex eget, egestas orci. Etiam sed pretium lorem. Nam nisi enim, consectetur sit amet semper ac, semper pharetra diam. In pulvinar neque sapien, ac ullamcorper est lacinia a. Etiam tincidunt velit sed diam malesuada, eu ornare ex consectetur. Phasellus in imperdiet tellus. Sed bibendum, dui sit amet fringilla aliquet, enim odio sollicitudin lorem, vel semper turpis mauris vel mauris. Aenean congue magna ac massa cursus, in dictum orci commodo. Pellentesque mollis velit in sollicitudin tincidunt. Vestibulum et efficitur nulla.
Quisque posuere, velit sed porttitor dapibus, neque augue fringilla felis, eu luctus nisi nisl nec ipsum. Curabitur pellentesque ac lectus eget ultricies. Vestibulum est dolor, lacinia pharetra vulputate a, facilisis a magna. Nam vitae arcu nibh. Praesent finibus blandit ante, ac gravida ex mollis eget. Donec quam est, pulvinar vitae neque ut, bibendum aliquam erat. Nullam mollis arcu at sem tincidunt, in tristique lectus facilisis. Aenean ut lacus vel nisl finibus iaculis non a turpis. Integer eget ipsum ante. Donec nunc neque, vestibulum ac magna ac, posuere scelerisque dui. Pellentesque massa nibh, rhoncus id dolor quis, placerat posuere turpis. Donec aliquet augue nisi, eu finibus dui auctor et. Vestibulum eu varius lorem. Quisque lectus ante, malesuada pretium risus eget, interdum mattis enim.
`;
+9 -9
View File
@@ -119,7 +119,7 @@ export const basicTrace: DemoTrace = {
params: {
domain: "input_boolean",
service: "toggle",
service_data: {},
data: {},
target: {
entity_id: ["input_boolean.toggle_4"],
},
@@ -164,7 +164,7 @@ export const basicTrace: DemoTrace = {
params: {
domain: "input_boolean",
service: "toggle",
service_data: {},
data: {},
target: {
entity_id: ["input_boolean.toggle_2"],
},
@@ -182,7 +182,7 @@ export const basicTrace: DemoTrace = {
params: {
domain: "input_boolean",
service: "toggle",
service_data: {},
data: {},
target: {
entity_id: ["input_boolean.toggle_3"],
},
@@ -200,7 +200,7 @@ export const basicTrace: DemoTrace = {
params: {
domain: "input_boolean",
service: "toggle",
service_data: {},
data: {},
target: {
entity_id: ["input_boolean.toggle_4"],
},
@@ -298,11 +298,11 @@ export const basicTrace: DemoTrace = {
source: "state of input_boolean.toggle_1",
entity_id: "automation.toggle_toggles",
context_id: "6cfcae368e7b3686fad6c59e83ae76c9",
when: "2021-03-25T04:36:51.240832+00:00",
when: 1616647011.240832,
domain: "automation",
},
{
when: "2021-03-25T04:36:51.249828+00:00",
when: 1616647011.249828,
name: "Toggle 4",
state: "on",
entity_id: "input_boolean.toggle_4",
@@ -313,7 +313,7 @@ export const basicTrace: DemoTrace = {
context_name: "Ensure Party mode",
},
{
when: "2021-03-25T04:36:51.258947+00:00",
when: 1616647011.258947,
name: "Toggle 2",
state: "on",
entity_id: "input_boolean.toggle_2",
@@ -324,7 +324,7 @@ export const basicTrace: DemoTrace = {
context_name: "Ensure Party mode",
},
{
when: "2021-03-25T04:36:51.261806+00:00",
when: 1616647011.261806,
name: "Toggle 3",
state: "off",
entity_id: "input_boolean.toggle_3",
@@ -335,7 +335,7 @@ export const basicTrace: DemoTrace = {
context_name: "Ensure Party mode",
},
{
when: "2021-03-25T04:36:51.265246+00:00",
when: 1616647011.265246,
name: "Toggle 4",
state: "off",
entity_id: "input_boolean.toggle_4",
@@ -185,11 +185,11 @@ export const motionLightTrace: DemoTrace = {
"has been triggered by state of binary_sensor.pauluss_macbook_pro_camera_in_use",
source: "state of binary_sensor.pauluss_macbook_pro_camera_in_use",
entity_id: "automation.auto_elgato",
when: "2021-03-14T06:07:01.768492+00:00",
when: 1615702021.768492,
domain: "automation",
},
{
when: "2021-03-14T06:07:01.872187+00:00",
when: 1615702021.872187,
name: "Elgato Key Light Air",
state: "on",
entity_id: "light.elgato_key_light_air",
@@ -200,7 +200,7 @@ export const motionLightTrace: DemoTrace = {
context_name: "Auto Elgato",
},
{
when: "2021-03-14T06:07:53.284505+00:00",
when: 1615702073.284505,
name: "Elgato Key Light Air",
state: "off",
entity_id: "light.elgato_key_light_air",
+61 -42
View File
@@ -5,6 +5,7 @@ import { html, css, LitElement, PropertyValues } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../src/components/ha-icon-button";
import "../../src/managers/notification-manager";
import { HaExpansionPanel } from "../../src/components/ha-expansion-panel";
import { haStyle } from "../../src/resources/styles";
import { PAGES, SIDEBAR } from "../build/import-pages";
import { dynamicElement } from "../../src/common/dom/dynamic-element-directive";
@@ -44,6 +45,10 @@ class HaGallery extends LitElement {
for (const page of group.pages!) {
const key = `${group.category}/${page}`;
const active = this._page === key;
if (!(key in PAGES)) {
console.error("Undefined page referenced in sidebar.js:", key);
continue;
}
const title = PAGES[key].metadata.title || page;
links.push(html`
<a ?active=${active} href=${`#${group.category}/${page}`}>${title}</a>
@@ -53,10 +58,9 @@ class HaGallery extends LitElement {
sidebar.push(
group.header
? html`
<details>
<summary class="section">${group.header}</summary>
<ha-expansion-panel .header=${group.header}>
${links}
</details>
</ha-expansion-panel>
`
: links
);
@@ -92,27 +96,34 @@ class HaGallery extends LitElement {
${dynamicElement(`demo-${this._page.replace("/", "-")}`)}
</div>
<div class="page-footer">
${PAGES[this._page].description ||
Object.keys(PAGES[this._page].metadata).length > 0
? html`
<a
href=${`${GITHUB_DEMO_URL}${this._page}.markdown`}
target="_blank"
>
Edit text
</a>
`
: ""}
${PAGES[this._page].demo
? html`
<a
href=${`${GITHUB_DEMO_URL}${this._page}.ts`}
target="_blank"
>
Edit demo
</a>
`
: ""}
<div class="header">Help us to improve our documentation</div>
<div class="secondary">
Suggest an edit to this page, or provide/view feedback for this
page.
</div>
<div>
${PAGES[this._page].description ||
Object.keys(PAGES[this._page].metadata).length > 0
? html`
<a
href=${`${GITHUB_DEMO_URL}${this._page}.markdown`}
target="_blank"
>
Edit text
</a>
`
: ""}
${PAGES[this._page].demo
? html`
<a
href=${`${GITHUB_DEMO_URL}${this._page}.ts`}
target="_blank"
>
Edit demo
</a>
`
: ""}
</div>
</div>
</div>
</mwc-drawer>
@@ -163,9 +174,10 @@ class HaGallery extends LitElement {
const menuItem = this.shadowRoot!.querySelector(
`a[href="#${this._page}"]`
)!;
// Make sure section is expanded
if (menuItem.parentElement instanceof HTMLDetailsElement) {
menuItem.parentElement.open = true;
if (menuItem.parentElement instanceof HaExpansionPanel) {
menuItem.parentElement.expanded = true;
}
}
@@ -186,27 +198,16 @@ class HaGallery extends LitElement {
padding: 4px;
}
.sidebar details {
margin-top: 1em;
margin-left: 1em;
}
.sidebar summary {
cursor: pointer;
font-weight: bold;
margin-bottom: 8px;
}
.sidebar a {
color: var(--primary-text-color);
display: block;
padding: 4px 12px;
padding: 12px;
text-decoration: none;
position: relative;
}
.sidebar a[active]::before {
border-radius: 4px;
border-radius: 12px;
position: absolute;
top: 0;
right: 2px;
@@ -237,14 +238,32 @@ class HaGallery extends LitElement {
.page-footer {
text-align: center;
margin: 16px 0;
padding-top: 16px;
border-top: 1px solid rgba(0, 0, 0, 0.12);
margin: 16px;
padding: 16px;
border-radius: 12px;
background-color: var(--primary-background-color);
}
.page-footer div {
margin-top: 4px;
}
.page-footer .header {
font-size: 16px;
font-weight: 500;
line-height: 28px;
text-align: center;
}
.page-footer .secondary {
line-height: 23px;
text-align: center;
}
.page-footer a {
display: inline-block;
margin: 0 8px;
text-decoration: none;
}
`,
];
@@ -1,7 +1,9 @@
import { dump } from "js-yaml";
import { html, css, LitElement, TemplateResult } from "lit";
import { customElement, property } from "lit/decorators";
import { customElement, property, state } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-yaml-editor";
import { Action } from "../../../../src/data/script";
import { describeAction } from "../../../../src/data/script_i18n";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
@@ -62,18 +64,88 @@ const ACTIONS = [
entity_id: "input_boolean.toggle_4",
},
},
{
parallel: [
{ scene: "scene.kitchen_morning" },
{
service: "media_player.play_media",
target: { entity_id: "media_player.living_room" },
data: { media_content_id: "", media_content_type: "" },
metadata: { title: "Happy Song" },
},
],
},
{
stop: "No one is home!",
},
{ repeat: { count: 3, sequence: [{ delay: "00:00:01" }] } },
{
repeat: {
for_each: ["bread", "butter", "cheese"],
sequence: [{ delay: "00:00:01" }],
},
},
{
if: [{ condition: "state" }],
then: [{ delay: "00:00:01" }],
else: [{ delay: "00:00:05" }],
},
{
if: [{ condition: "state" }],
then: [{ delay: "00:00:01" }],
},
{
if: [{ condition: "state" }, { condition: "state" }],
then: [{ delay: "00:00:01" }],
else: [{ delay: "00:00:05" }],
},
{
choose: [
{
conditions: [{ condition: "state" }],
sequence: [{ delay: "00:00:01" }],
},
{
conditions: [{ condition: "sun" }],
sequence: [{ delay: "00:00:05" }],
},
],
default: [{ delay: "00:00:03" }],
},
];
const initialAction: Action = {
service: "light.turn_on",
target: {
entity_id: "light.kitchen",
},
};
@customElement("demo-automation-describe-action")
export class DemoAutomationDescribeAction extends LitElement {
@property({ attribute: false }) hass!: HomeAssistant;
@state() _action = initialAction;
protected render(): TemplateResult {
if (!this.hass) {
return html``;
}
return html`
<ha-card header="Actions">
<div class="action">
<span>
${this._action
? describeAction(this.hass, this._action)
: "<invalid YAML>"}
</span>
<ha-yaml-editor
label="Action Config"
.defaultValue=${initialAction}
@value-changed=${this._dataChanged}
></ha-yaml-editor>
</div>
${ACTIONS.map(
(conf) => html`
<div class="action">
@@ -93,6 +165,11 @@ export class DemoAutomationDescribeAction extends LitElement {
hass.addEntities(ENTITIES);
}
private _dataChanged(ev: CustomEvent): void {
ev.stopPropagation();
this._action = ev.detail.isValid ? ev.detail.value : undefined;
}
static get styles() {
return css`
ha-card {
@@ -108,6 +185,9 @@ export class DemoAutomationDescribeAction extends LitElement {
span {
margin-right: 16px;
}
ha-yaml-editor {
width: 50%;
}
`;
}
}
@@ -1,31 +1,81 @@
import { dump } from "js-yaml";
import { html, css, LitElement, TemplateResult } from "lit";
import { customElement } from "lit/decorators";
import { css, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-yaml-editor";
import { Condition } from "../../../../src/data/automation";
import { describeCondition } from "../../../../src/data/automation_i18n";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import { HomeAssistant } from "../../../../src/types";
const ENTITIES = [
getEntity("light", "kitchen", "on", {
friendly_name: "Kitchen Light",
}),
getEntity("device_tracker", "person", "home", {
friendly_name: "Person",
}),
getEntity("zone", "home", "", {
friendly_name: "Home",
}),
];
const conditions = [
{ condition: "and" },
{ condition: "not" },
{ condition: "or" },
{ condition: "state" },
{ condition: "numeric_state" },
{ condition: "state", entity_id: "light.kitchen", state: "on" },
{
condition: "numeric_state",
entity_id: "light.kitchen",
attribute: "brightness",
below: 80,
above: 20,
},
{ condition: "sun", after: "sunset" },
{ condition: "sun", after: "sunrise" },
{ condition: "zone" },
{ condition: "sun", after: "sunrise", offset: "-01:00" },
{ condition: "zone", entity_id: "device_tracker.person", zone: "zone.home" },
{ condition: "time" },
{ condition: "template" },
];
const initialCondition: Condition = {
condition: "state",
entity_id: "light.kitchen",
state: "on",
};
@customElement("demo-automation-describe-condition")
export class DemoAutomationDescribeCondition extends LitElement {
@property({ attribute: false }) hass!: HomeAssistant;
@state() _condition = initialCondition;
protected render(): TemplateResult {
if (!this.hass) {
return html``;
}
return html`
<ha-card header="Conditions">
<div class="condition">
<span>
${this._condition
? describeCondition(this._condition, this.hass)
: "<invalid YAML>"}
</span>
<ha-yaml-editor
label="Condition Config"
.defaultValue=${initialCondition}
@value-changed=${this._dataChanged}
></ha-yaml-editor>
</div>
${conditions.map(
(conf) => html`
<div class="condition">
<span>${describeCondition(conf as any)}</span>
<span>${describeCondition(conf as any, this.hass)}</span>
<pre>${dump(conf)}</pre>
</div>
`
@@ -34,6 +84,18 @@ export class DemoAutomationDescribeCondition extends LitElement {
`;
}
protected firstUpdated(changedProps) {
super.firstUpdated(changedProps);
const hass = provideHass(this);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
private _dataChanged(ev: CustomEvent): void {
ev.stopPropagation();
this._condition = ev.detail.isValid ? ev.detail.value : undefined;
}
static get styles() {
return css`
ha-card {
@@ -49,6 +111,9 @@ export class DemoAutomationDescribeCondition extends LitElement {
span {
margin-right: 16px;
}
ha-yaml-editor {
width: 50%;
}
`;
}
}
@@ -1,34 +1,92 @@
import { dump } from "js-yaml";
import { html, css, LitElement, TemplateResult } from "lit";
import { customElement } from "lit/decorators";
import { css, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-yaml-editor";
import { Trigger } from "../../../../src/data/automation";
import { describeTrigger } from "../../../../src/data/automation_i18n";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import { HomeAssistant } from "../../../../src/types";
const ENTITIES = [
getEntity("light", "kitchen", "on", {
friendly_name: "Kitchen Light",
}),
getEntity("person", "person", "", {
friendly_name: "Person",
}),
getEntity("zone", "home", "", {
friendly_name: "Home",
}),
];
const triggers = [
{ platform: "state" },
{ platform: "state", entity_id: "light.kitchen", from: "off", to: "on" },
{ platform: "mqtt" },
{ platform: "geo_location" },
{ platform: "homeassistant" },
{ platform: "numeric_state" },
{ platform: "sun" },
{
platform: "geo_location",
source: "test_source",
zone: "zone.home",
event: "enter",
},
{ platform: "homeassistant", event: "start" },
{
platform: "numeric_state",
entity_id: "light.kitchen",
attribute: "brightness",
below: 80,
above: 20,
},
{ platform: "sun", event: "sunset" },
{ platform: "time_pattern" },
{ platform: "webhook" },
{ platform: "zone" },
{
platform: "zone",
entity_id: "person.person",
zone: "zone.home",
event: "enter",
},
{ platform: "tag" },
{ platform: "time" },
{ platform: "time", at: "15:32" },
{ platform: "template" },
{ platform: "event" },
{ platform: "event", event_type: "homeassistant_started" },
];
const initialTrigger: Trigger = {
platform: "state",
entity_id: "light.kitchen",
};
@customElement("demo-automation-describe-trigger")
export class DemoAutomationDescribeTrigger extends LitElement {
@property({ attribute: false }) hass!: HomeAssistant;
@state() _trigger = initialTrigger;
protected render(): TemplateResult {
if (!this.hass) {
return html``;
}
return html`
<ha-card header="Triggers">
<div class="trigger">
<span>
${this._trigger
? describeTrigger(this._trigger, this.hass)
: "<invalid YAML>"}
</span>
<ha-yaml-editor
label="Trigger Config"
.defaultValue=${initialTrigger}
@value-changed=${this._dataChanged}
></ha-yaml-editor>
</div>
${triggers.map(
(conf) => html`
<div class="trigger">
<span>${describeTrigger(conf as any)}</span>
<span>${describeTrigger(conf as any, this.hass)}</span>
<pre>${dump(conf)}</pre>
</div>
`
@@ -37,6 +95,18 @@ export class DemoAutomationDescribeTrigger extends LitElement {
`;
}
protected firstUpdated(changedProps) {
super.firstUpdated(changedProps);
const hass = provideHass(this);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
private _dataChanged(ev: CustomEvent): void {
ev.stopPropagation();
this._trigger = ev.detail.isValid ? ev.detail.value : undefined;
}
static get styles() {
return css`
ha-card {
@@ -52,6 +122,9 @@ export class DemoAutomationDescribeTrigger extends LitElement {
span {
margin-right: 16px;
}
ha-yaml-editor {
width: 50%;
}
`;
}
}
@@ -20,6 +20,10 @@ import { HaWaitForTriggerAction } from "../../../../src/panels/config/automation
import { HaWaitAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-wait_template";
import { Action } from "../../../../src/data/script";
import { HaConditionAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-condition";
import { HaParallelAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-parallel";
import { HaIfAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-if";
import { HaStopAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-stop";
import { HaPlayMediaAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-play_media";
const SCHEMAS: { name: string; actions: Action[] }[] = [
{ name: "Event", actions: [HaEventAction.defaultConfig] },
@@ -28,11 +32,15 @@ const SCHEMAS: { name: string; actions: Action[] }[] = [
{ name: "Condition", actions: [HaConditionAction.defaultConfig] },
{ name: "Delay", actions: [HaDelayAction.defaultConfig] },
{ name: "Scene", actions: [HaSceneAction.defaultConfig] },
{ name: "Play media", actions: [HaPlayMediaAction.defaultConfig] },
{ name: "Wait", actions: [HaWaitAction.defaultConfig] },
{ name: "WaitForTrigger", actions: [HaWaitForTriggerAction.defaultConfig] },
{ name: "Repeat", actions: [HaRepeatAction.defaultConfig] },
{ name: "If-Then", actions: [HaIfAction.defaultConfig] },
{ name: "Choose", actions: [HaChooseAction.defaultConfig] },
{ name: "Variables", actions: [{ variables: { hello: "1" } }] },
{ name: "Parallel", actions: [HaParallelAction.defaultConfig] },
{ name: "Stop", actions: [HaStopAction.defaultConfig] },
];
@customElement("demo-automation-editor-action")
@@ -86,6 +94,6 @@ class DemoHaAutomationEditorAction extends LitElement {
declare global {
interface HTMLElementTagNameMap {
"demo-ha-automation-editor-action": DemoHaAutomationEditorAction;
"demo-automation-editor-action": DemoHaAutomationEditorAction;
}
}
@@ -8,7 +8,7 @@ import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
import type { Condition } from "../../../../src/data/automation";
import type { ConditionWithShorthand } from "../../../../src/data/automation";
import "../../../../src/panels/config/automation/condition/ha-automation-condition";
import { HaDeviceCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-device";
import { HaLogicalCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-logical";
@@ -20,7 +20,7 @@ import { HaTimeCondition } from "../../../../src/panels/config/automation/condit
import { HaTriggerCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-trigger";
import { HaZoneCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-zone";
const SCHEMAS: { name: string; conditions: Condition[] }[] = [
const SCHEMAS: { name: string; conditions: ConditionWithShorthand[] }[] = [
{
name: "State",
conditions: [{ condition: "state", ...HaStateCondition.defaultConfig }],
@@ -69,6 +69,14 @@ const SCHEMAS: { name: string; conditions: Condition[] }[] = [
name: "Trigger",
conditions: [{ condition: "trigger", ...HaTriggerCondition.defaultConfig }],
},
{
name: "Shorthand",
conditions: [
{ and: HaLogicalCondition.defaultConfig.conditions },
{ or: HaLogicalCondition.defaultConfig.conditions },
{ not: HaLogicalCondition.defaultConfig.conditions },
],
},
];
@customElement("demo-automation-editor-condition")
+34
View File
@@ -0,0 +1,34 @@
---
title: "Logo"
---
![Using our logo](/images/using-our-logo.png)
# Using our logo
As a community, we are proud of our logo. Follow these guidelines to ensure it always looks its best. Our logo follows Google's material design spec and uses the blue interface color.
[Download Logo](https://github.com/home-assistant/assets/tree/master/logo)
![Logo](/images/logo.png)
## Using the icon
Our icon is a shorter and most used version of our logo. The icon can exist without the wordmark, the wordmark should never exist without the icon.
![Logo variants](/images/logo-variants.png)
## Using the right variant
The pretty blue logo with a background shadow, pictured top left, is our primary logo. It should only be used with black, white, and non-duotone photography.
When needed you can use our logo without a shadow, as seen as the second variant.
The outlined logo should only be used on packaging.
## Exclusion zone
The logo needs some personal space. It's exclusion zone is equal to a quarter the height of the icon.
![Clearspace](/images/clearspace.png)
@@ -0,0 +1,41 @@
---
title: "Our story"
---
## Open source home automation that puts local control and privacy first
Home Assistant is a free and open-source software for home automation that is designed to be the central control system for smart home devices with a focus on local control and privacy. It can be accessed via a web-based user interface, via apps for Android and iOS, or using voice commands via a supported virtual assistant like Google Assistant and Amazon Alexa.
IoT devices and services are supported by modular support for controlling proprietary ecosystems if they provide public access via an Open API for third-party integrations and protocols like Bluetooth, MQTT, Zigbee, and Z-Wave, After the Home Assistant software application is installed as a computer appliance it will act as a central control system for home automation. Information from all entities it sees can be used and controlled from within scripts trigger automations using scheduling and "blueprint" subroutines, e.g. for controlling lighting, climate, entertainment systems, and appliances.
# Open Home
The Open Home is our vision for the smart home. It defines the values that we put at the heart of every decision we make at Home Assistant. Its woven into our architecture, licensing, community, and everything else.
The Open Home is about privacy, choice, and durability.
## Privacy
Your home should be your safe space. A place where you can be your true self without having to bother about what the world thinks of you. A place where you dont need to act differently to avoid an algorithm categorizing your behavior. Privacy for the Open Home means that devices need to work locally. No one else needs to know if you turn on a light bulb or change the thermostat.
It is okay for a product to offer a cloud connection, but it should be extra and opt-in.
## Choice
Devices in your home gather data about themselves and their surroundings. Your data. Vendors shouldnt be able to limit your access to your data or limit the interoperability of your devices with the rest of your smart home.
Choice for the Open Home means that devices need to make the gathered data available through local APIs. This avoids vendor lock-in and allows users to create their own smart home with devices from different manufacturers.
## Durability
If there is one thing that technology firms are very good at, it is launching new products. However, maintaining the products and making sure they keep working is an afterthought for most. The result is that vendors can decide to no longer support your device, crippling its features or even preventing it from working at all. As we install more and more devices in our home, durability is becoming more and more important. We shouldnt have to buy everything new every couple of years because the manufacturer decided to move on.
Durability for the Open Home means that devices are designed and built to keep working. Not just this year, but for the next decade.
# Our history
The project was started as a Python application by Paulus Schoutsen in September 2013 and first published publicly on GitHub in November 2013. In July 2017, a managed operating system called Hass.io was initially introduced to make it easier use to use Home Assistant on single-board computers like the Raspberry Pi series. Its bundled "supervisor" management system allowed users to manage, backup, and update the local installation and introduced the option to extend the functionality of the software with add-ons.
An optional subscription service was introduced in December 2017 for $5/month to solve the complexities associated with secured remote access, as well as linking to Amazon Alexa and Google Assistant. Nabu Casa, Inc. was formed in September 2018 to take over the subscription service. The company's funding is based solely on revenue from the subscription service. It is used to finance the project's infrastructure and to pay for full-time employees contributing to the project.
In January 2020, branding was adjusted to make it easier to refer to different parts of the project. The main piece of software was renamed to Home Assistant Core, while the full suite of software with the embedded operating system and bundled "supervisor" management system was renamed to Home Assistant.
@@ -0,0 +1,32 @@
---
title: Dialgos
subtitle: Dialogs provide important prompts in a user flow.
---
# Material Design 3
Our dialogs are based on the latest version of Material Design. Specs and guidelines can be found on it's [website](https://m3.material.io/components/dialogs/overview).
# Highlighted guidelines
## Content
* A best practice is to always use a title, even if it is optional by Material guidelines.
* People mainly read the title and a button. Put the most important information in those two.
* Try to avoid user generated content in the title, this could make the title unreadable long.
* If users become unsure, they read the description. Make sure this explains what will happen.
* Strive for minimalism.
## Buttons and X-icon
* Keep the labels short, for example `Save`, `Delete`, `Enable`.
* Dialog with actions must always have a discard button. On desktop a `Cancel` button and X-icon, on mobile only the X-icon.
* Destructive actions should be a red warning button.
* Alert or confirmation dialogs only have buttons and no X-icon.
* Try to avoid three buttons in one dialog. Especially when you leave the dialog task unfinished.
## Example
### Confirmation dialog
> **Delete dashboard?**
>
> Dashboard [dashboard name] will be permanently deleted from Home Assistant.
>
> Cancel / Delete
@@ -1,7 +1,15 @@
---
title: Alerts
subtitle: An alert displays a short, important message in a way that attracts the user's attention without interrupting the user's task.
---
<style>
ha-alert {
display: block;
margin: 4px 0;
}
</style>
# Alert `<ha-alert>`
The alert offers four severity levels that set a distinctive icon and color.
+13 -7
View File
@@ -159,13 +159,19 @@ export class DemoHaAlert extends LitElement {
firstUpdated(changedProps) {
super.firstUpdated(changedProps);
applyThemesOnElement(this.shadowRoot!.querySelector(".dark"), {
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
});
applyThemesOnElement(
this.shadowRoot!.querySelector(".dark"),
{
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
},
undefined,
undefined,
true
);
}
static get styles() {
@@ -0,0 +1,5 @@
---
title: Expansion Panel
---
Expansion panel following all the ARIA guidelines.
@@ -0,0 +1,157 @@
import { mdiPacMan } from "@mdi/js";
import { css, html, LitElement, TemplateResult } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-expansion-panel";
import "../../../../src/components/ha-markdown";
import "../../components/demo-black-white-row";
import { LONG_TEXT } from "../../data/text";
const SHORT_TEXT = LONG_TEXT.substring(0, 113);
const SAMPLES: {
template: (slot: string, leftChevron: boolean) => TemplateResult;
}[] = [
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel
slot=${slot}
.leftChevron=${leftChevron}
header="Attr header"
>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel
slot=${slot}
.leftChevron=${leftChevron}
header="Attr header"
secondary="Attr secondary"
>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel
slot=${slot}
.leftChevron=${leftChevron}
.header=${"Prop header"}
>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel
slot=${slot}
.leftChevron=${leftChevron}
.header=${"Prop header"}
.secondary=${"Prop secondary"}
>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel
slot=${slot}
.leftChevron=${leftChevron}
.header=${"Prop header"}
>
<span slot="secondary">Slot Secondary</span>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel slot=${slot} .leftChevron=${leftChevron}>
<span slot="header">Slot header</span>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel slot=${slot} .leftChevron=${leftChevron}>
<span slot="header">Slot header with actions</span>
<ha-icon-button
slot="icons"
label="Some Action"
.path=${mdiPacMan}
></ha-icon-button>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
{
template(slot, leftChevron) {
return html`
<ha-expansion-panel
slot=${slot}
.leftChevron=${leftChevron}
header="Attr Header with actions"
>
<ha-icon-button
slot="icons"
label="Some Action"
.path=${mdiPacMan}
></ha-icon-button>
${SHORT_TEXT}
</ha-expansion-panel>
`;
},
},
];
@customElement("demo-components-ha-expansion-panel")
export class DemoHaExpansionPanel extends LitElement {
protected render(): TemplateResult {
return html`
${SAMPLES.map(
(sample) => html`
<demo-black-white-row>
${["light", "dark"].map((slot) =>
sample.template(slot, slot === "dark")
)}
</demo-black-white-row>
`
)}
`;
}
static get styles() {
return css`
ha-expansion-panel {
margin: -16px;
}
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-expansion-panel": DemoHaExpansionPanel;
}
}
+1 -12
View File
@@ -3,18 +3,7 @@ import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-faded";
import "../../../../src/components/ha-markdown";
const LONG_TEXT = `
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc laoreet velit ut elit volutpat, eget ultrices odio lacinia. In imperdiet malesuada est, nec sagittis metus ultricies quis. Sed nisl ex, convallis porttitor ante quis, hendrerit tristique justo. Mauris pharetra venenatis augue, eu maximus sem cursus in. Quisque sed consequat risus. Suspendisse facilisis ligula a odio consectetur condimentum. Curabitur vehicula elit nec augue mollis, et volutpat massa dictum.
Nam pellentesque auctor rutrum. Suspendisse elit est, sodales vel diam nec, porttitor faucibus massa. Ut pretium ac orci eu pharetra. Praesent in nibh at magna viverra rutrum eu vitae tortor. Etiam eget sem ex. Fusce tristique odio nec lacus mattis, vitae tempor nunc malesuada. Maecenas faucibus magna vel libero maximus egestas. Vestibulum luctus semper velit, in lobortis risus tempus non. Curabitur bibendum ornare commodo. Quisque commodo neque sit amet tincidunt lacinia. Proin elementum ante velit, eu congue nulla semper quis. Pellentesque consequat vel nunc at scelerisque. Mauris sit amet venenatis diam, blandit viverra leo. Integer commodo laoreet orci.
Curabitur ipsum tortor, sodales ut augue sed, commodo porttitor libero. Pellentesque molestie vitae mi consectetur tempor. In sed lectus consequat, lobortis neque non, semper ipsum. Etiam eget ex et nibh sagittis pulvinar lacinia ac mauris. Aenean ligula eros, viverra ac nibh at, venenatis semper quam. Sed interdum ligula sit amet massa tincidunt tincidunt. Suspendisse potenti. Aliquam egestas facilisis est, sed faucibus erat scelerisque id. Duis dolor quam, viverra vitae orci euismod, laoreet pellentesque justo. Nunc malesuada non erat at ullamcorper. Mauris eget posuere odio. Vestibulum turpis nunc, pharetra eget ante in, feugiat mollis justo. Proin porttitor, diam nec vulputate pretium, tellus arcu rhoncus turpis, a blandit nisi nulla quis arcu. Nunc ac ullamcorper ligula, nec facilisis leo.
In vitae eros sollicitudin, iaculis ex eget, egestas orci. Etiam sed pretium lorem. Nam nisi enim, consectetur sit amet semper ac, semper pharetra diam. In pulvinar neque sapien, ac ullamcorper est lacinia a. Etiam tincidunt velit sed diam malesuada, eu ornare ex consectetur. Phasellus in imperdiet tellus. Sed bibendum, dui sit amet fringilla aliquet, enim odio sollicitudin lorem, vel semper turpis mauris vel mauris. Aenean congue magna ac massa cursus, in dictum orci commodo. Pellentesque mollis velit in sollicitudin tincidunt. Vestibulum et efficitur nulla.
Quisque posuere, velit sed porttitor dapibus, neque augue fringilla felis, eu luctus nisi nisl nec ipsum. Curabitur pellentesque ac lectus eget ultricies. Vestibulum est dolor, lacinia pharetra vulputate a, facilisis a magna. Nam vitae arcu nibh. Praesent finibus blandit ante, ac gravida ex mollis eget. Donec quam est, pulvinar vitae neque ut, bibendum aliquam erat. Nullam mollis arcu at sem tincidunt, in tristique lectus facilisis. Aenean ut lacus vel nisl finibus iaculis non a turpis. Integer eget ipsum ante. Donec nunc neque, vestibulum ac magna ac, posuere scelerisque dui. Pellentesque massa nibh, rhoncus id dolor quis, placerat posuere turpis. Donec aliquet augue nisi, eu finibus dui auctor et. Vestibulum eu varius lorem. Quisque lectus ante, malesuada pretium risus eget, interdum mattis enim.
`;
import { LONG_TEXT } from "../../data/text";
const SMALL_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
+128 -8
View File
@@ -1,17 +1,116 @@
/* eslint-disable lit/no-template-arrow */
import "@material/mwc-button";
import { LitElement, TemplateResult, html } from "lit";
import { html, LitElement, TemplateResult } from "lit";
import { customElement, state } from "lit/decorators";
import { computeInitialHaFormData } from "../../../../src/components/ha-form/compute-initial-ha-form-data";
import type { HaFormSchema } from "../../../../src/components/ha-form/types";
import "../../../../src/components/ha-form/ha-form";
import "../../components/demo-black-white-row";
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
import { mockConfigEntries } from "../../../../demo/src/stubs/config_entries";
import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
import { computeInitialHaFormData } from "../../../../src/components/ha-form/compute-initial-ha-form-data";
import "../../../../src/components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../src/components/ha-form/types";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import { HomeAssistant } from "../../../../src/types";
import "../../components/demo-black-white-row";
const ENTITIES = [
getEntity("alarm_control_panel", "alarm", "disarmed", {
friendly_name: "Alarm",
}),
getEntity("media_player", "livingroom", "playing", {
friendly_name: "Livingroom",
media_content_type: "music",
device_class: "tv",
}),
getEntity("media_player", "lounge", "idle", {
friendly_name: "Lounge",
supported_features: 444983,
device_class: "speaker",
}),
getEntity("light", "bedroom", "on", {
friendly_name: "Bedroom",
effect: "colorloop",
effect_list: ["colorloop", "random"],
}),
getEntity("switch", "coffee", "off", {
friendly_name: "Coffee",
device_class: "switch",
}),
];
const DEVICES = [
{
area_id: "bedroom",
configuration_url: null,
config_entries: ["config_entry_1"],
connections: [],
disabled_by: null,
entry_type: null,
id: "device_1",
identifiers: [["demo", "volume1"] as [string, string]],
manufacturer: null,
model: null,
name_by_user: null,
name: "Dishwasher",
sw_version: null,
hw_version: null,
via_device_id: null,
},
{
area_id: "backyard",
configuration_url: null,
config_entries: ["config_entry_2"],
connections: [],
disabled_by: null,
entry_type: null,
id: "device_2",
identifiers: [["demo", "pwm1"] as [string, string]],
manufacturer: null,
model: null,
name_by_user: null,
name: "Lamp",
sw_version: null,
hw_version: null,
via_device_id: null,
},
{
area_id: null,
configuration_url: null,
config_entries: ["config_entry_3"],
connections: [],
disabled_by: null,
entry_type: null,
id: "device_3",
identifiers: [["demo", "pwm1"] as [string, string]],
manufacturer: null,
model: null,
name_by_user: "User name",
name: "Technical name",
sw_version: null,
hw_version: null,
via_device_id: null,
},
];
const AREAS = [
{
area_id: "backyard",
name: "Backyard",
picture: null,
},
{
area_id: "bedroom",
name: "Bedroom",
picture: null,
},
{
area_id: "livingroom",
name: "Livingroom",
picture: null,
},
];
const SCHEMAS: {
title: string;
@@ -38,6 +137,8 @@ const SCHEMAS: {
select: "Select",
icon: "Icon",
media: "Media",
location: "Location",
entities: "Entities",
},
schema: [
{ name: "addon", selector: { addon: {} } },
@@ -45,14 +146,23 @@ const SCHEMAS: {
{
name: "Attribute",
selector: { attribute: { entity_id: "" } },
context: { filter_entity: "entity" },
},
{
name: "State",
selector: { state: { entity_id: "" } },
context: { filter_entity: "entity", filter_attribute: "Attribute" },
},
{ name: "Device", selector: { device: {} } },
{ name: "Config entry", selector: { config_entry: {} } },
{ name: "Duration", selector: { duration: {} } },
{ name: "area", selector: { area: {} } },
{ name: "target", selector: { target: {} } },
{ name: "number", selector: { number: { min: 0, max: 10 } } },
{ name: "boolean", selector: { boolean: {} } },
{ name: "time", selector: { time: {} } },
{ name: "time", required: true, selector: { time: {} } },
{ name: "datetime", required: true, selector: { datetime: {} } },
{ name: "date", required: true, selector: { date: {} } },
{ name: "action", selector: { action: {} } },
{ name: "text", selector: { text: { multiline: false } } },
{ name: "text_multiline", selector: { text: { multiline: true } } },
@@ -75,6 +185,14 @@ const SCHEMAS: {
media: {},
},
},
{
name: "location",
selector: { location: { radius: true, icon: "mdi:home" } },
},
{
name: "entities",
selector: { entity: { multiple: true } },
},
],
},
{
@@ -315,9 +433,11 @@ class DemoHaForm extends LitElement {
const hass = provideHass(this);
hass.updateTranslations(null, "en");
hass.updateTranslations("config", "en");
hass.addEntities(ENTITIES);
mockEntityRegistry(hass);
mockDeviceRegistry(hass);
mockAreaRegistry(hass);
mockDeviceRegistry(hass, DEVICES);
mockConfigEntries(hass);
mockAreaRegistry(hass, AREAS);
mockHassioSupervisor(hass);
}
+157 -12
View File
@@ -1,20 +1,21 @@
/* eslint-disable lit/no-template-arrow */
import "@material/mwc-button";
import { LitElement, TemplateResult, css, html } from "lit";
import { css, html, LitElement, TemplateResult } from "lit";
import { customElement, state } from "lit/decorators";
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
import { mockConfigEntries } from "../../../../demo/src/stubs/config_entries";
import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
import "../../../../src/components/ha-selector/ha-selector";
import "../../../../src/components/ha-settings-row";
import { BlueprintInput } from "../../../../src/data/blueprint";
import { showDialog } from "../../../../src/dialogs/make-dialog-manager";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import { ProvideHassElement } from "../../../../src/mixins/provide-hass-lit-mixin";
import type { HomeAssistant } from "../../../../src/types";
import "../../components/demo-black-white-row";
import { BlueprintInput } from "../../../../src/data/blueprint";
import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
import { getEntity } from "../../../../src/fake_data/entity";
import { ProvideHassElement } from "../../../../src/mixins/provide-hass-lit-mixin";
import { showDialog } from "../../../../src/dialogs/make-dialog-manager";
const ENTITIES = [
getEntity("alarm_control_panel", "alarm", "disarmed", {
@@ -109,17 +110,25 @@ const AREAS = [
const SCHEMAS: {
name: string;
input: Record<string, BlueprintInput | null>;
input: Record<string, (BlueprintInput & { required?: boolean }) | null>;
}[] = [
{
name: "One of each",
input: {
entity: { name: "Entity", selector: { entity: {} } },
state: {
name: "State",
selector: { state: { entity_id: "alarm_control_panel.alarm" } },
},
attribute: {
name: "Attribute",
selector: { attribute: { entity_id: "" } },
},
device: { name: "Device", selector: { device: {} } },
config_entry: {
name: "Integration",
selector: { config_entry: {} },
},
duration: { name: "Duration", selector: { duration: {} } },
addon: { name: "Addon", selector: { addon: {} } },
area: { name: "Area", selector: { area: {} } },
@@ -146,6 +155,8 @@ const SCHEMAS: {
},
boolean: { name: "Boolean", selector: { boolean: {} } },
time: { name: "Time", selector: { time: {} } },
date: { name: "Date", selector: { date: {} } },
datetime: { name: "Date Time", selector: { datetime: {} } },
action: { name: "Action", selector: { action: {} } },
text: {
name: "Text",
@@ -162,12 +173,92 @@ const SCHEMAS: {
},
},
object: { name: "Object", selector: { object: {} } },
select_radio: {
name: "Select (Radio)",
selector: {
select: { options: ["Option 1", "Option 2"], mode: "list" },
},
},
template: { name: "Template", selector: { template: {} } },
select: {
name: "Select",
selector: { select: { options: ["Option 1", "Option 2"] } },
selector: {
select: {
options: [
"Option 1",
"Option 2",
"Option 3",
"Option 4",
"Option 5",
"Option 6",
],
},
},
},
select_custom: {
name: "Select (Custom)",
selector: {
select: {
custom_value: true,
options: [
"Option 1",
"Option 2",
"Option 3",
"Option 4",
"Option 5",
"Option 6",
],
},
},
},
icon: { name: "Icon", selector: { icon: {} } },
media: { name: "Media", selector: { media: {} } },
location: { name: "Location", selector: { location: {} } },
location_radius: {
name: "Location with radius",
selector: { location: { radius: true, icon: "mdi:home" } },
},
color_temp: {
name: "Color Temperature",
selector: { color_temp: {} },
},
color_rgb: { name: "Color", selector: { color_rgb: {} } },
},
},
{
name: "Multiples",
input: {
entity: { name: "Entity", selector: { entity: { multiple: true } } },
device: { name: "Device", selector: { device: { multiple: true } } },
area: { name: "Area", selector: { area: { multiple: true } } },
select: {
name: "Select Multiple",
selector: {
select: {
multiple: true,
custom_value: true,
options: [
"Option 1",
"Option 2",
"Option 3",
"Option 4",
"Option 5",
"Option 6",
],
},
},
},
select_checkbox: {
name: "Select Multiple (Checkbox)",
required: false,
selector: {
select: {
mode: "list",
multiple: true,
options: ["Option 1", "Option 2", "Option 3", "Option 4"],
},
},
},
},
},
];
@@ -176,6 +267,14 @@ const SCHEMAS: {
class DemoHaSelector extends LitElement implements ProvideHassElement {
@state() public hass!: HomeAssistant;
@state() private _disabled = false;
@state() private _required = false;
@state() private _helper = false;
@state() private _label = true;
private data = SCHEMAS.map(() => ({}));
constructor() {
@@ -186,6 +285,7 @@ class DemoHaSelector extends LitElement implements ProvideHassElement {
hass.addEntities(ENTITIES);
mockEntityRegistry(hass);
mockDeviceRegistry(hass, DEVICES);
mockConfigEntries(hass);
mockAreaRegistry(hass, AREAS);
mockHassioSupervisor(hass);
hass.mockWS("auth/sign_path", (params) => params);
@@ -279,7 +379,7 @@ class DemoHaSelector extends LitElement implements ProvideHassElement {
can_play: true,
can_expand: false,
children_media_class: null,
thumbnail: null,
thumbnail: "https://brands.home-assistant.io/_/image/logo.png",
},
{
title: "movie.mp4",
@@ -309,6 +409,36 @@ class DemoHaSelector extends LitElement implements ProvideHassElement {
protected render(): TemplateResult {
return html`
<div class="options">
<ha-formfield label="Labels">
<ha-switch
.name=${"label"}
.checked=${this._label}
@change=${this._handleOptionChange}
></ha-switch>
</ha-formfield>
<ha-formfield label="Required">
<ha-switch
.name=${"required"}
.checked=${this._required}
@change=${this._handleOptionChange}
></ha-switch>
</ha-formfield>
<ha-formfield label="Disabled">
<ha-switch
.name=${"disabled"}
.checked=${this._disabled}
@change=${this._handleOptionChange}
></ha-switch>
</ha-formfield>
<ha-formfield label="Helper text">
<ha-switch
.name=${"helper"}
.checked=${this._helper}
@change=${this._handleOptionChange}
></ha-switch>
</ha-formfield>
</div>
${SCHEMAS.map((info, idx) => {
const data = this.data[idx];
const valueChanged = (ev) => {
@@ -331,8 +461,12 @@ class DemoHaSelector extends LitElement implements ProvideHassElement {
.hass=${this.hass}
.selector=${value!.selector}
.key=${key}
.label=${this._label ? value!.name : undefined}
.value=${data[key] ?? value!.default}
.disabled=${this._disabled}
.required=${this._required}
@value-changed=${valueChanged}
.helper=${this._helper ? "Helper text" : undefined}
></ha-selector>
</ha-settings-row>
`
@@ -344,10 +478,21 @@ class DemoHaSelector extends LitElement implements ProvideHassElement {
`;
}
private _handleOptionChange(ev) {
this[`_${ev.target.name}`] = ev.target.checked;
}
static styles = css`
ha-selector {
width: 60;
}
.options {
max-width: 800px;
margin: 16px auto;
}
.options ha-formfield {
margin-right: 16px;
}
`;
}
@@ -0,0 +1,3 @@
---
title: Tips
---
+73
View File
@@ -0,0 +1,73 @@
import { html, css, LitElement, TemplateResult } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-tip";
import "../../../../src/components/ha-card";
import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
const tips: (string | TemplateResult)[] = [
"Test tip",
"Bigger test tip, with some random text just to fill up as much space as possible without it looking like I'm really trying to to that",
html`<i>Tip</i> <b>with</b> <sub>HTML</sub>`,
];
@customElement("demo-components-ha-tip")
export class DemoHaTip extends LitElement {
protected render(): TemplateResult {
return html` ${["light", "dark"].map(
(mode) => html`
<div class=${mode}>
<ha-card header="ha-tip ${mode} demo">
<div class="card-content">
${tips.map((tip) => html`<ha-tip>${tip}</ha-tip>`)}
</div>
</ha-card>
</div>
`
)}`;
}
firstUpdated(changedProps) {
super.firstUpdated(changedProps);
applyThemesOnElement(
this.shadowRoot!.querySelector(".dark"),
{
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
},
undefined,
undefined,
true
);
}
static get styles() {
return css`
:host {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.dark,
.light {
display: block;
background-color: var(--primary-background-color);
padding: 0 50px;
}
ha-tip {
margin-bottom: 14px;
}
ha-card {
margin: 24px auto;
}
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-tip": DemoHaTip;
}
}
@@ -2,6 +2,8 @@
title: Editing design.home-assistant.io
---
![Home Assistant Logo](/images/logo-with-text.png)
# How to edit design.home-assistant.io
All pages are stored in [the pages folder][pages-folder] on GitHub. Pages are grouped in a folder per sidebar section. Each page can contain a `<page name>.markdown` description file, a `<page name>.ts` demo file or both. If both are defined the description is rendered first. The description can contain metadata to specify the title of the page.
@@ -41,15 +43,12 @@ import { html, css, LitElement } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
@customElement("demo-user-experience-usability")
export class DemoUserExperienceUsability extends LitElement {
protected render() {
return html`
<ha-card>
<div class="card-content">
Hello world!
</div>
<div class="card-content">Hello world!</div>
</ha-card>
`;
}
+2 -2
View File
@@ -31,7 +31,7 @@ const ENTITIES = [
friendly_name: "Office Light",
}),
getEntity("fan", "kitchen", "on", {
friendly_name: "Second Office Fan",
friendly_name: "Kitchen Fan",
}),
getEntity("binary_sensor", "kitchen_door", "on", {
friendly_name: "Office Door",
@@ -102,7 +102,7 @@ class DemoArea extends LitElement {
picture: "/images/office.jpg",
},
{
name: "Second Office",
name: "Kitchen",
area_id: "kitchen",
picture: "/images/kitchen.png",
},
+6 -1
View File
@@ -75,6 +75,10 @@ const ENTITIES = [
timestamp: 1641801600,
friendly_name: "Date and Time",
}),
getEntity("sensor", "humidity", "23.2", {
friendly_name: "Humidity",
unit_of_measurement: "%",
}),
getEntity("input_select", "dropdown", "Soda", {
friendly_name: "Dropdown",
options: ["Soda", "Beer", "Wine"],
@@ -142,6 +146,7 @@ const CONFIGS = [
- light.non_existing
- climate.ecobee
- input_number.number
- sensor.humidity
`,
},
{
@@ -249,7 +254,7 @@ const CONFIGS = [
name: Bed light
action_name: Toggle light
service: light.toggle
service_data:
data:
entity_id: light.bed_light
- type: section
label: Links
+1 -1
View File
@@ -199,7 +199,7 @@ const CONFIGS = [
tap_action:
action: call-service
service: light.turn_on
service_data:
data:
entity_id: light.ceiling_lights
- entity: sun.sun
name: Regular
@@ -1,11 +1,11 @@
---
title: Introduction
---
Lovelace has many different cards. Each card allows the user to tell
Dashboards have many different cards. Each card allows the user to tell
a different story about what is going on in their house. These cards
are very customizable, as no household is the same.
This gallery helps our developers and designers to see all the
different states that each card can be in.
Check [the Lovelace documentation](https://www.home-assistant.io/lovelace) for instructions on how to get started with Lovelace.
Check [the Dashboards documentation](https://www.home-assistant.io/dashboards/) for instructions on how to get started with Dashboards.
+12 -1
View File
@@ -9,7 +9,7 @@ const CONFIGS = [
heading: "markdown-it demo",
config: `
- type: markdown
content: >
content: >-
# h1 Heading 8-)
## h2 Heading
@@ -249,6 +249,17 @@ const CONFIGS = [
::: warning
*here be dragons*
:::
### ha-alert
You can use our [\`ha-alert\`](https://design.home-assistant.io/#components/ha-alert) component in markdown content rendered in the Home Assistant Frontend.
<ha-alert alert-type="error">This is an error alert — check it out!</ha-alert>
<ha-alert alert-type="warning">This is a warning alert — check it out!</ha-alert>
<ha-alert alert-type="info">This is an info alert — check it out!</ha-alert>
<ha-alert alert-type="success">This is a success alert — check it out!</ha-alert>
<ha-alert title="Test alert">This is an alert with a title</ha-alert>
`,
},
];
@@ -40,7 +40,7 @@ const CONFIGS = [
left: 90%
padding: 0px
service: light.turn_off
service_data:
data:
entity_id: group.all_lights
- type: icon
icon: mdi:cctv
@@ -88,7 +88,7 @@ const CONFIGS = [
left: 90%
padding: 0px
service: light.turn_off
service_data:
data:
entity_id: group.all_lights
- type: icon
icon: mdi:cctv
@@ -188,11 +188,14 @@ const createEntityRegistryEntries = (
device_id: "mock-device-id",
area_id: null,
disabled_by: null,
hidden_by: null,
entity_category: null,
entity_id: "binary_sensor.updater",
id: "binary_sensor.updater",
name: null,
icon: null,
platform: "updater",
has_entity_name: false,
},
];
+1 -1
View File
@@ -69,7 +69,7 @@ const ENTITIES = [
effect_list: ["random", "colorloop"],
}),
getEntity("light", "color_RGB_light", "on", {
friendly_name: "Color Effets Light",
friendly_name: "Color Effects Light",
brightness: 255,
rgb_color: [30, 100, 255],
supported_features: SUPPORT_EFFECT + SUPPORT_FLASH + SUPPORT_TRANSITION,
@@ -0,0 +1,3 @@
---
title: Update
---
+189
View File
@@ -0,0 +1,189 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import {
UPDATE_SUPPORT_BACKUP,
UPDATE_SUPPORT_PROGRESS,
UPDATE_SUPPORT_INSTALL,
UPDATE_SUPPORT_RELEASE_NOTES,
} from "../../../../src/data/update";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
import { LONG_TEXT } from "../../data/text";
const base_attributes = {
title: "Awesome",
installed_version: "1.2.2",
latest_version: "1.2.3",
release_url: "https://home-assistant.io",
supported_features: UPDATE_SUPPORT_INSTALL,
skipped_version: null,
in_progress: false,
release_summary:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. In nec metus aliquet, porta mi ut, ultrices odio. Etiam egestas orci tellus, non semper metus blandit tincidunt. Praesent elementum turpis vel tempor pharetra. Sed quis cursus diam. Proin sem justo.",
};
const ENTITIES = [
getEntity("update", "update1", "on", {
...base_attributes,
friendly_name: "Update",
}),
getEntity("update", "update2", "on", {
...base_attributes,
title: null,
friendly_name: "Update without title",
}),
getEntity("update", "update3", "on", {
...base_attributes,
release_url: null,
friendly_name: "Update without release_url",
}),
getEntity("update", "update4", "on", {
...base_attributes,
release_summary: null,
friendly_name: "Update without release_summary",
}),
getEntity("update", "update5", "off", {
...base_attributes,
installed_version: "1.2.3",
friendly_name: "No update",
}),
getEntity("update", "update6", "off", {
...base_attributes,
skipped_version: "1.2.3",
friendly_name: "Skipped version",
}),
getEntity("update", "update7", "on", {
...base_attributes,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_BACKUP,
friendly_name: "With backup support",
}),
getEntity("update", "update8", "on", {
...base_attributes,
in_progress: true,
friendly_name: "With true in_progress",
}),
getEntity("update", "update9", "on", {
...base_attributes,
in_progress: 25,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
friendly_name: "With 25 in_progress",
}),
getEntity("update", "update10", "on", {
...base_attributes,
in_progress: 50,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
friendly_name: "With 50 in_progress",
}),
getEntity("update", "update11", "on", {
...base_attributes,
in_progress: 75,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
friendly_name: "With 75 in_progress",
}),
getEntity("update", "update12", "unavailable", {
...base_attributes,
in_progress: 50,
friendly_name: "Unavailable",
}),
getEntity("update", "update13", "on", {
...base_attributes,
supported_features: 0,
friendly_name: "No install support",
}),
getEntity("update", "update14", "off", {
...base_attributes,
installed_version: null,
friendly_name: "Update without installed_version",
}),
getEntity("update", "update15", "off", {
...base_attributes,
latest_version: null,
friendly_name: "Update without latest_version",
}),
getEntity("update", "update16", "off", {
...base_attributes,
friendly_name: "Update with release notes",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_RELEASE_NOTES,
}),
getEntity("update", "update17", "off", {
...base_attributes,
friendly_name: "Update with release notes error",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_RELEASE_NOTES,
}),
getEntity("update", "update18", "off", {
...base_attributes,
friendly_name: "Update with release notes loading",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_RELEASE_NOTES,
}),
getEntity("update", "update19", "on", {
...base_attributes,
friendly_name: "Update with auto update",
auto_update: true,
}),
getEntity("update", "update20", "on", {
...base_attributes,
in_progress: true,
title: undefined,
friendly_name: "Installing without title",
}),
];
@customElement("demo-more-info-update")
class DemoMoreInfoUpdate extends LitElement {
@property() public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
hass.mockWS(
"update/release_notes",
(msg: { type: string; entity_id: string }) => {
if (msg.entity_id === "update.update16") {
return LONG_TEXT;
}
if (msg.entity_id === "update.update17") {
return Promise.reject({
code: "error",
message: "Could not fetch release notes",
});
}
if (msg.entity_id === "update.update18") {
return undefined;
}
return null;
}
);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-update": DemoMoreInfoUpdate;
}
}
@@ -0,0 +1,17 @@
---
title: "User types"
---
We have defined three user types for Home Assistant. They are a lean segmentation of users that helps us make decisions throughout the product. User types differ from traditional personas in that the segmentation criteria arent demographic and dont personify a group into a single character with a fictitious background story.
# Outgrowers
Users that outgrow big tech smart home solutions. It just needs to work with easy setup via an app.
# Tinkerers
Technoid users in home networking and development that know how to code.
# Questioner
Users who want more advanced home automation, but need support to make it work.
@@ -6,10 +6,8 @@ import { atLeastVersion } from "../../../src/common/config/version";
import { navigate } from "../../../src/common/navigate";
import { caseInsensitiveStringCompare } from "../../../src/common/string/compare";
import "../../../src/components/ha-card";
import {
HassioAddonInfo,
HassioAddonRepository,
} from "../../../src/data/hassio/addon";
import { HassioAddonRepository } from "../../../src/data/hassio/addon";
import { StoreAddon } from "../../../src/data/supervisor/store";
import { Supervisor } from "../../../src/data/supervisor/supervisor";
import { HomeAssistant } from "../../../src/types";
import "../components/hassio-card-content";
@@ -23,20 +21,16 @@ class HassioAddonRepositoryEl extends LitElement {
@property({ attribute: false }) public repo!: HassioAddonRepository;
@property({ attribute: false }) public addons!: HassioAddonInfo[];
@property({ attribute: false }) public addons!: StoreAddon[];
@property() public filter!: string;
private _getAddons = memoizeOne(
(addons: HassioAddonInfo[], filter?: string) => {
if (filter) {
return filterAndSort(addons, filter);
}
return addons.sort((a, b) =>
caseInsensitiveStringCompare(a.name, b.name)
);
private _getAddons = memoizeOne((addons: StoreAddon[], filter?: string) => {
if (filter) {
return filterAndSort(addons, filter);
}
);
return addons.sort((a, b) => caseInsensitiveStringCompare(a.name, b.name));
});
protected render(): TemplateResult {
const repo = this.repo;
@@ -68,6 +62,7 @@ class HassioAddonRepositoryEl extends LitElement {
${addons.map(
(addon) => html`
<ha-card
outlined
.addon=${addon}
class=${addon.available ? "" : "not_available"}
@click=${this._addonTapped}
@@ -86,10 +81,10 @@ class HassioAddonRepositoryEl extends LitElement {
? this.supervisor.localize(
"common.new_version_available"
)
: this.supervisor.localize("addon.installed")
: this.supervisor.localize("addon.state.installed")
: addon.available
? this.supervisor.localize("addon.not_installed")
: this.supervisor.localize("addon.not_available")}
? this.supervisor.localize("addon.state.not_installed")
: this.supervisor.localize("addon.state.not_available")}
.iconClass=${addon.installed
? addon.update_available
? "update"
+17 -10
View File
@@ -14,16 +14,18 @@ import memoizeOne from "memoize-one";
import { atLeastVersion } from "../../../src/common/config/version";
import { fireEvent } from "../../../src/common/dom/fire_event";
import { navigate } from "../../../src/common/navigate";
import "../../../src/components/search-input";
import { extractSearchParam } from "../../../src/common/url/search-params";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-icon-button";
import "../../../src/components/search-input";
import {
HassioAddonInfo,
HassioAddonRepository,
reloadHassioAddons,
} from "../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
import { StoreAddon } from "../../../src/data/supervisor/store";
import { Supervisor } from "../../../src/data/supervisor/supervisor";
import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
import "../../../src/layouts/hass-loading-screen";
import "../../../src/layouts/hass-subpage";
import { HomeAssistant, Route } from "../../../src/types";
@@ -59,17 +61,24 @@ class HassioAddonStore extends LitElement {
@state() private _filter?: string;
public async refreshData() {
await reloadHassioAddons(this.hass);
await this._loadData();
try {
await reloadHassioAddons(this.hass);
} catch (err) {
showAlertDialog(this, {
text: extractApiErrorMessage(err),
});
} finally {
await this._loadData();
}
}
protected render(): TemplateResult {
let repos: TemplateResult[] = [];
if (this.supervisor.addon.repositories) {
if (this.supervisor.store.repositories) {
repos = this.addonRepositories(
this.supervisor.addon.repositories,
this.supervisor.addon.addons,
this.supervisor.store.repositories,
this.supervisor.store.addons,
this._filter
);
}
@@ -110,8 +119,6 @@ class HassioAddonStore extends LitElement {
<div class="search">
<search-input
.hass=${this.hass}
no-label-float
no-underline
.filter=${this._filter}
@value-changed=${this._filterChanged}
></search-input>
@@ -147,7 +154,7 @@ class HassioAddonStore extends LitElement {
private addonRepositories = memoizeOne(
(
repositories: HassioAddonRepository[],
addons: HassioAddonInfo[],
addons: StoreAddon[],
filter?: string
) =>
repositories.sort(sortRepos).map((repo) => {
@@ -50,6 +50,7 @@ class HassioAddonAudio extends LitElement {
protected render(): TemplateResult {
return html`
<ha-card
outlined
.header=${this.supervisor.localize("addon.configuration.audio.header")}
>
<div class="card-content">
@@ -39,7 +39,14 @@ import type { HomeAssistant } from "../../../../src/types";
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
import { hassioStyle } from "../../resources/hassio-style";
const SUPPORTED_UI_TYPES = ["string", "select", "boolean", "integer", "float"];
const SUPPORTED_UI_TYPES = [
"string",
"select",
"boolean",
"integer",
"float",
"schema",
];
const ADDON_YAML_SCHEMA = DEFAULT_SCHEMA.extend([
new Type("!secret", {
@@ -48,6 +55,8 @@ const ADDON_YAML_SCHEMA = DEFAULT_SCHEMA.extend([
}),
]);
const MASKED_FIELDS = ["password", "secret", "token"];
@customElement("hassio-addon-config")
class HassioAddonConfig extends LitElement {
@property({ attribute: false }) public addon!: HassioAddonDetails;
@@ -75,19 +84,66 @@ class HassioAddonConfig extends LitElement {
public computeLabel = (entry: HaFormSchema): string =>
this.addon.translations[this.hass.language]?.configuration?.[entry.name]
?.name ||
this.addon.translations.en?.configuration?.[entry.name].name ||
this.addon.translations.en?.configuration?.[entry.name]?.name ||
entry.name;
private _schema = memoizeOne((schema: HaFormSchema[]): HaFormSchema[] =>
// @ts-expect-error supervisor does not implement [string, string] for select.options[]
schema.map((entry) =>
entry.type === "select"
? {
...entry,
options: entry.options.map((option) => [option, option]),
}
: entry
)
public computeHelper = (entry: HaFormSchema): string =>
this.addon.translations[this.hass.language]?.configuration?.[entry.name]
?.description ||
this.addon.translations.en?.configuration?.[entry.name]?.description ||
"";
private _convertSchema = memoizeOne(
// Convert supervisor schema to selectors
(schema: Record<string, any>): HaFormSchema[] =>
schema.map((entry) =>
entry.type === "select"
? {
name: entry.name,
required: entry.required,
selector: { select: { options: entry.options } },
}
: entry.type === "string"
? entry.multiple
? {
name: entry.name,
required: entry.required,
selector: {
select: { options: [], multiple: true, custom_value: true },
},
}
: {
name: entry.name,
required: entry.required,
selector: {
text: {
type:
entry.format || MASKED_FIELDS.includes(entry.name)
? "password"
: "text",
},
},
}
: entry.type === "boolean"
? {
name: entry.name,
required: entry.required,
selector: { boolean: {} },
}
: entry.type === "schema"
? {
name: entry.name,
required: entry.required,
selector: { object: {} },
}
: entry.type === "float" || entry.type === "integer"
? {
name: entry.name,
required: entry.required,
selector: { number: { mode: "box" } },
}
: entry
)
);
private _filteredShchema = memoizeOne(
@@ -106,7 +162,7 @@ class HassioAddonConfig extends LitElement {
);
return html`
<h1>${this.addon.name}</h1>
<ha-card>
<ha-card outlined>
<div class="header">
<h2>
${this.supervisor.localize("addon.configuration.options.header")}
@@ -140,7 +196,8 @@ class HassioAddonConfig extends LitElement {
.data=${this._options!}
@value-changed=${this._configChanged}
.computeLabel=${this.computeLabel}
.schema=${this._schema(
.computeHelper=${this.computeHelper}
.schema=${this._convertSchema(
this._showOptional
? this.addon.schema!
: this._filteredShchema(
@@ -197,8 +254,9 @@ class HassioAddonConfig extends LitElement {
protected firstUpdated(changedProps) {
super.firstUpdated(changedProps);
this._canShowSchema = !this.addon.schema!.find(
// @ts-ignore
(entry) => !SUPPORTED_UI_TYPES.includes(entry.type) || entry.multiple
(entry) =>
// @ts-ignore
!SUPPORTED_UI_TYPES.includes(entry.type)
);
this._yamlMode = !this._canShowSchema;
}
@@ -278,7 +336,7 @@ class HassioAddonConfig extends LitElement {
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.common.update_available",
"addon.failed_to_reset",
"error",
extractApiErrorMessage(err)
);
@@ -1,4 +1,3 @@
import { PaperInputElement } from "@polymer/paper-input/paper-input";
import {
css,
CSSResultGroup,
@@ -8,10 +7,13 @@ import {
TemplateResult,
} from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../src/components/ha-form/types";
import {
HassioAddonDetails,
HassioAddonSetOptionParams,
@@ -24,16 +26,6 @@ import { HomeAssistant } from "../../../../src/types";
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
import { hassioStyle } from "../../resources/hassio-style";
interface NetworkItem {
description: string;
container: string;
host: number | null;
}
interface NetworkItemInput extends PaperInputElement {
container: string;
}
@customElement("hassio-addon-network")
class HassioAddonNetwork extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@@ -42,9 +34,13 @@ class HassioAddonNetwork extends LitElement {
@property({ attribute: false }) public addon!: HassioAddonDetails;
@state() private _showOptional = false;
@state() private _configHasChanged = false;
@state() private _error?: string;
@state() private _config?: NetworkItem[];
@state() private _config?: Record<string, any>;
public connectedCallback(): void {
super.connectedCallback();
@@ -56,59 +52,61 @@ class HassioAddonNetwork extends LitElement {
return html``;
}
const hasHiddenOptions = Object.keys(this._config).find(
(entry) => this._config![entry] === null
);
return html`
<ha-card
outlined
.header=${this.supervisor.localize(
"addon.configuration.network.header"
)}
>
<div class="card-content">
<p>
${this.supervisor.localize(
"addon.configuration.network.introduction"
)}
</p>
${this._error
? html`<ha-alert alert-type="error">${this._error}</ha-alert>`
: ""}
<table>
<tbody>
<tr>
<th>
${this.supervisor.localize(
"addon.configuration.network.container"
)}
</th>
<th>
${this.supervisor.localize(
"addon.configuration.network.host"
)}
</th>
<th>${this.supervisor.localize("common.description")}</th>
</tr>
${this._config!.map(
(item) => html`
<tr>
<td>${item.container}</td>
<td>
<paper-input
@value-changed=${this._configChanged}
placeholder=${this.supervisor.localize(
"addon.configuration.network.disabled"
)}
.value=${item.host ? String(item.host) : ""}
.container=${item.container}
no-label-float
></paper-input>
</td>
<td>${this._computeDescription(item)}</td>
</tr>
`
)}
</tbody>
</table>
<ha-form
.data=${this._config}
@value-changed=${this._configChanged}
.computeLabel=${this._computeLabel}
.computeHelper=${this._computeHelper}
.schema=${this._createSchema(
this._config,
this._showOptional,
this.hass.userData?.showAdvanced || false
)}
></ha-form>
</div>
${hasHiddenOptions
? html`<ha-formfield
class="show-optional"
.label=${this.supervisor.localize(
"addon.configuration.network.show_disabled"
)}
>
<ha-switch
@change=${this._toggleOptional}
.checked=${this._showOptional}
>
</ha-switch>
</ha-formfield>`
: ""}
<div class="card-actions">
<ha-progress-button class="warning" @click=${this._resetTapped}>
${this.supervisor.localize("common.reset_defaults")}
</ha-progress-button>
<ha-progress-button @click=${this._saveTapped}>
<ha-progress-button
@click=${this._saveTapped}
.disabled=${!this._configHasChanged}
>
${this.supervisor.localize("common.save")}
</ha-progress-button>
</div>
@@ -123,50 +121,60 @@ class HassioAddonNetwork extends LitElement {
}
}
private _computeDescription = (item: NetworkItem): string =>
this.addon.translations[this.hass.language]?.network?.[item.container]
?.description ||
this.addon.translations.en?.network?.[item.container]?.description ||
item.description;
private _createSchema = memoizeOne(
(
config: Record<string, number>,
showOptional: boolean,
advanced: boolean
): HaFormSchema[] =>
(showOptional
? Object.keys(config)
: Object.keys(config).filter((entry) => config[entry] !== null)
).map((entry) => ({
name: entry,
selector: {
number: {
mode: "box",
min: 0,
max: 65535,
unit_of_measurement: advanced ? entry : undefined,
},
},
}))
);
private _computeLabel = (_: HaFormSchema): string => "";
private _computeHelper = (item: HaFormSchema): string =>
this.addon.translations[this.hass.language]?.network?.[item.name] ||
this.addon.translations.en?.network?.[item.name] ||
this.addon.network_description?.[item.name] ||
item.name;
private _setNetworkConfig(): void {
const network = this.addon.network || {};
const description = this.addon.network_description || {};
const items: NetworkItem[] = Object.keys(network).map((key) => ({
container: key,
host: network[key],
description: description[key],
}));
this._config = items.sort((a, b) => (a.container > b.container ? 1 : -1));
this._config = this.addon.network || {};
}
private async _configChanged(ev: Event): Promise<void> {
const target = ev.target as NetworkItemInput;
this._config!.forEach((item) => {
if (
item.container === target.container &&
item.host !== parseInt(String(target.value), 10)
) {
item.host = target.value ? parseInt(String(target.value), 10) : null;
}
});
private async _configChanged(ev: CustomEvent): Promise<void> {
this._configHasChanged = true;
this._config! = ev.detail.value;
}
private async _resetTapped(ev: CustomEvent): Promise<void> {
const button = ev.currentTarget as any;
button.progress = true;
const data: HassioAddonSetOptionParams = {
network: null,
};
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
this._configHasChanged = false;
const eventdata = {
success: true,
response: undefined,
path: "option",
};
button.actionSuccess();
fireEvent(this, "hass-api-called", eventdata);
if (this.addon?.state === "started") {
await suggestAddonRestart(this, this.hass, this.supervisor, this.addon);
@@ -177,19 +185,21 @@ class HassioAddonNetwork extends LitElement {
"error",
extractApiErrorMessage(err)
);
button.actionError();
}
}
button.progress = false;
private _toggleOptional() {
this._showOptional = !this._showOptional;
}
private async _saveTapped(ev: CustomEvent): Promise<void> {
const button = ev.currentTarget as any;
button.progress = true;
this._error = undefined;
const networkconfiguration = {};
this._config!.forEach((item) => {
networkconfiguration[item.container] = parseInt(String(item.host), 10);
Object.entries(this._config!).forEach(([key, value]) => {
networkconfiguration[key] = value ?? null;
});
const data: HassioAddonSetOptionParams = {
@@ -198,11 +208,13 @@ class HassioAddonNetwork extends LitElement {
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
this._configHasChanged = false;
const eventdata = {
success: true,
response: undefined,
path: "option",
};
button.actionSuccess();
fireEvent(this, "hass-api-called", eventdata);
if (this.addon?.state === "started") {
await suggestAddonRestart(this, this.hass, this.supervisor, this.addon);
@@ -213,8 +225,8 @@ class HassioAddonNetwork extends LitElement {
"error",
extractApiErrorMessage(err)
);
button.actionError();
}
button.progress = false;
}
static get styles(): CSSResultGroup {
@@ -232,6 +244,9 @@ class HassioAddonNetwork extends LitElement {
display: flex;
justify-content: space-between;
}
.show-optional {
padding: 16px;
}
`,
];
}
@@ -38,7 +38,7 @@ class HassioAddonDocumentationDashboard extends LitElement {
}
return html`
<div class="content">
<ha-card>
<ha-card outlined>
${this._error
? html`<ha-alert alert-type="error">${this._error}</ha-alert>`
: ""}
@@ -81,7 +81,7 @@ class HassioAddonDocumentationDashboard extends LitElement {
);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.documentation.get_logs",
"addon.documentation.get_documentation",
"error",
extractApiErrorMessage(err)
);
@@ -12,12 +12,19 @@ import { navigate } from "../../../src/common/navigate";
import { extractSearchParam } from "../../../src/common/url/search-params";
import "../../../src/components/ha-circular-progress";
import {
fetchAddonInfo,
fetchHassioAddonInfo,
fetchHassioAddonsInfo,
HassioAddonDetails,
} from "../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
import {
addStoreRepository,
fetchSupervisorStore,
StoreAddonDetails,
} from "../../../src/data/supervisor/store";
import { Supervisor } from "../../../src/data/supervisor/supervisor";
import { showConfirmationDialog } from "../../../src/dialogs/generic/show-dialog-box";
import "../../../src/layouts/hass-error-screen";
import "../../../src/layouts/hass-loading-screen";
import "../../../src/layouts/hass-tabs-subpage";
@@ -40,7 +47,9 @@ class HassioAddonDashboard extends LitElement {
@property({ attribute: false }) public route!: Route;
@property({ attribute: false }) public addon?: HassioAddonDetails;
@property({ attribute: false }) public addon?:
| HassioAddonDetails
| StoreAddonDetails;
@property({ type: Boolean }) public narrow!: boolean;
@@ -66,7 +75,7 @@ class HassioAddonDashboard extends LitElement {
></hass-error-screen>`;
}
if (!this.addon) {
if (!this.addon || !this.supervisor?.addon) {
return html`<hass-loading-screen></hass-loading-screen>`;
}
@@ -166,9 +175,42 @@ class HassioAddonDashboard extends LitElement {
protected async firstUpdated(): Promise<void> {
if (this.route.path === "") {
const requestedAddon = extractSearchParam("addon");
const requestedAddonRepository = extractSearchParam("repository_url");
if (requestedAddonRepository) {
const storeInfo = await fetchSupervisorStore(this.hass);
if (
!storeInfo.repositories.find(
(repo) => repo.source === requestedAddonRepository
)
) {
if (
!(await showConfirmationDialog(this, {
title: this.supervisor.localize("my.add_addon_repository_title"),
text: this.supervisor.localize(
"my.add_addon_repository_description",
{ addon: requestedAddon, repository: requestedAddonRepository }
),
confirmText: this.supervisor.localize("common.add"),
dismissText: this.supervisor.localize("common.cancel"),
}))
) {
this._error = this.supervisor.localize(
"my.error_repository_not_found"
);
return;
}
try {
await addStoreRepository(this.hass, requestedAddonRepository);
} catch (err: any) {
this._error = extractApiErrorMessage(err);
}
}
}
if (requestedAddon) {
const addonsInfo = await fetchHassioAddonsInfo(this.hass);
const validAddon = addonsInfo.addons.some(
const store = await fetchSupervisorStore(this.hass);
const validAddon = store.addons.some(
(addon) => addon.slug === requestedAddon
);
if (!validAddon) {
@@ -196,12 +238,14 @@ class HassioAddonDashboard extends LitElement {
if (["uninstall", "install", "update", "start", "stop"].includes(path)) {
fireEvent(this, "supervisor-collection-refresh", {
collection: "supervisor",
collection: "addon",
});
}
if (path === "uninstall") {
window.history.back();
} else if (path === "install") {
this.addon = await fetchHassioAddonInfo(this.hass, this.addon!.slug);
} else {
await this._routeDataChanged();
}
@@ -219,8 +263,11 @@ class HassioAddonDashboard extends LitElement {
return;
}
try {
const addoninfo = await fetchHassioAddonInfo(this.hass, addon);
this.addon = addoninfo;
if (!this.supervisor.addon) {
const addonsInfo = await fetchHassioAddonsInfo(this.hass);
fireEvent(this, "supervisor-update", { addon: addonsInfo });
}
this.addon = await fetchAddonInfo(this.hass, this.supervisor, addon);
} catch (err: any) {
this._error = `Error fetching addon info: ${extractApiErrorMessage(err)}`;
this.addon = undefined;
+4 -1
View File
@@ -1,5 +1,6 @@
import { customElement, property } from "lit/decorators";
import { HassioAddonDetails } from "../../../src/data/hassio/addon";
import { StoreAddonDetails } from "../../../src/data/supervisor/store";
import { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
HassRouterPage,
@@ -20,7 +21,9 @@ class HassioAddonRouter extends HassRouterPage {
@property({ attribute: false }) public supervisor!: Supervisor;
@property({ attribute: false }) public addon!: HassioAddonDetails;
@property({ attribute: false }) public addon!:
| HassioAddonDetails
| StoreAddonDetails;
protected routerOptions: RouterOptions = {
defaultPage: "info",
+30 -19
View File
@@ -40,6 +40,7 @@ import "../../../../src/components/ha-settings-row";
import "../../../../src/components/ha-svg-icon";
import "../../../../src/components/ha-switch";
import {
AddonCapability,
fetchHassioAddonChangelog,
fetchHassioAddonInfo,
HassioAddonDetails,
@@ -59,7 +60,10 @@ import {
fetchHassioStats,
HassioStats,
} from "../../../../src/data/hassio/common";
import { StoreAddon } from "../../../../src/data/supervisor/store";
import {
StoreAddon,
StoreAddonDetails,
} from "../../../../src/data/supervisor/store";
import { Supervisor } from "../../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
@@ -100,7 +104,9 @@ class HassioAddonInfo extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public addon!: HassioAddonDetails;
@property({ attribute: false }) public addon!:
| HassioAddonDetails
| StoreAddonDetails;
@property({ attribute: false }) public supervisor!: Supervisor;
@@ -143,7 +149,7 @@ class HassioAddonInfo extends LitElement {
></update-available-card>
`
: ""}
${!this.addon.protected
${"protected" in this.addon && !this.addon.protected
? html`
<ha-alert
alert-type="error"
@@ -166,7 +172,7 @@ class HassioAddonInfo extends LitElement {
`
: ""}
<ha-card>
<ha-card outlined>
<div class="card-content">
<div class="addon-header">
${!this.narrow ? this.addon.name : ""}
@@ -518,7 +524,7 @@ class HassioAddonInfo extends LitElement {
: ""}
</div>
<div>
${this.addon.state === "started"
${this.addon.version && this.addon.state === "started"
? html`<ha-settings-row ?three-line=${this.narrow}>
<span slot="heading">
${this.supervisor.localize("addon.dashboard.hostname")}
@@ -649,7 +655,7 @@ class HassioAddonInfo extends LitElement {
${this.addon.long_description
? html`
<ha-card>
<ha-card outlined>
<div class="card-content">
<ha-markdown
.content=${this.addon.long_description}
@@ -669,7 +675,7 @@ class HassioAddonInfo extends LitElement {
}
private async _loadData(): Promise<void> {
if (this.addon.state === "started") {
if ("state" in this.addon && this.addon.state === "started") {
this._metrics = await fetchHassioStats(
this.hass,
`addons/${this.addon.slug}`
@@ -696,7 +702,7 @@ class HassioAddonInfo extends LitElement {
}
private _showMoreInfo(ev): void {
const id = ev.currentTarget.id;
const id = ev.currentTarget.id as AddonCapability;
showHassioMarkdownDialog(this, {
title: this.supervisor.localize(`addon.dashboard.capability.${id}.title`),
content:
@@ -717,18 +723,22 @@ class HassioAddonInfo extends LitElement {
}
private get _computeIsRunning(): boolean {
return this.addon?.state === "started";
return (this.addon as HassioAddonDetails)?.state === "started";
}
private get _pathWebui(): string | null {
return (
this.addon.webui &&
this.addon.webui.replace("[HOST]", document.location.hostname)
return (this.addon as HassioAddonDetails).webui!.replace(
"[HOST]",
document.location.hostname
);
}
private get _computeShowWebUI(): boolean | "" | null {
return !this.addon.ingress && this.addon.webui && this._computeIsRunning;
return (
!this.addon.ingress &&
(this.addon as HassioAddonDetails).webui &&
this._computeIsRunning
);
}
private _openIngress(): void {
@@ -754,7 +764,8 @@ class HassioAddonInfo extends LitElement {
private async _startOnBootToggled(): Promise<void> {
this._error = undefined;
const data: HassioAddonSetOptionParams = {
boot: this.addon.boot === "auto" ? "manual" : "auto",
boot:
(this.addon as HassioAddonDetails).boot === "auto" ? "manual" : "auto",
};
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
@@ -776,7 +787,7 @@ class HassioAddonInfo extends LitElement {
private async _watchdogToggled(): Promise<void> {
this._error = undefined;
const data: HassioAddonSetOptionParams = {
watchdog: !this.addon.watchdog,
watchdog: !(this.addon as HassioAddonDetails).watchdog,
};
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
@@ -798,7 +809,7 @@ class HassioAddonInfo extends LitElement {
private async _autoUpdateToggled(): Promise<void> {
this._error = undefined;
const data: HassioAddonSetOptionParams = {
auto_update: !this.addon.auto_update,
auto_update: !(this.addon as HassioAddonDetails).auto_update,
};
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
@@ -820,7 +831,7 @@ class HassioAddonInfo extends LitElement {
private async _protectionToggled(): Promise<void> {
this._error = undefined;
const data: HassioAddonSetSecurityParams = {
protected: !this.addon.protected,
protected: !(this.addon as HassioAddonDetails).protected,
};
try {
await setHassioAddonSecurity(this.hass, this.addon.slug, data);
@@ -842,7 +853,7 @@ class HassioAddonInfo extends LitElement {
private async _panelToggled(): Promise<void> {
this._error = undefined;
const data: HassioAddonSetOptionParams = {
ingress_panel: !this.addon.ingress_panel,
ingress_panel: !(this.addon as HassioAddonDetails).ingress_panel,
};
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
@@ -870,7 +881,7 @@ class HassioAddonInfo extends LitElement {
showHassioMarkdownDialog(this, {
title: this.supervisor.localize("addon.dashboard.changelog"),
content: extractChangelog(this.addon, content),
content: extractChangelog(this.addon as HassioAddonDetails, content),
});
} catch (err: any) {
showAlertDialog(this, {
@@ -2,6 +2,7 @@ import "@material/mwc-button";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-ansi-to-html";
import "../../../../src/components/ha-card";
import {
fetchHassioAddonLogs,
@@ -11,7 +12,6 @@ import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import { Supervisor } from "../../../../src/data/supervisor/supervisor";
import { haStyle } from "../../../../src/resources/styles";
import { HomeAssistant } from "../../../../src/types";
import "../../components/hassio-ansi-to-html";
import { hassioStyle } from "../../resources/hassio-style";
@customElement("hassio-addon-logs")
@@ -34,15 +34,15 @@ class HassioAddonLogs extends LitElement {
protected render(): TemplateResult {
return html`
<h1>${this.addon.name}</h1>
<ha-card>
<ha-card outlined>
${this._error
? html`<ha-alert alert-type="error">${this._error}</ha-alert>`
: ""}
<div class="card-content">
${this._content
? html`<hassio-ansi-to-html
? html`<ha-ansi-to-html
.content=${this._content}
></hassio-ansi-to-html>`
></ha-ansi-to-html>`
: ""}
</div>
<div class="card-actions">
+17 -8
View File
@@ -1,7 +1,7 @@
import "@material/mwc-button";
import { ActionDetail } from "@material/mwc-list";
import "@material/mwc-list/mwc-list-item";
import { mdiDelete, mdiDotsVertical, mdiPlus } from "@mdi/js";
import { mdiBackupRestore, mdiDelete, mdiDotsVertical, mdiPlus } from "@mdi/js";
import {
css,
CSSResultGroup,
@@ -98,9 +98,8 @@ export class HassioBackups extends LitElement {
if (backup.content.addons.length !== 0) {
for (const addon of backup.content.addons) {
content.push(
this.supervisor.supervisor.addons.find(
(entry) => entry.slug === addon
)?.name || addon
this.supervisor.addon.addons.find((entry) => entry.slug === addon)
?.name || addon
);
}
}
@@ -166,10 +165,18 @@ export class HassioBackups extends LitElement {
}
return html`
<hass-tabs-subpage-data-table
.tabs=${supervisorTabs(this.hass)}
.tabs=${atLeastVersion(this.hass.config.version, 2022, 5)
? [
{
translationKey: "panel.backups",
path: `/hassio/backups`,
iconPath: mdiBackupRestore,
},
]
: supervisorTabs(this.hass)}
.hass=${this.hass}
.localizeFunc=${this.supervisor.localize}
.searchLabel=${this.supervisor.localize("search")}
.searchLabel=${this.supervisor.localize("backup.search")}
.noDataText=${this.supervisor.localize("backup.no_backups")}
.narrow=${this.narrow}
.route=${this.route}
@@ -182,7 +189,9 @@ export class HassioBackups extends LitElement {
selectable
hasFab
.mainPage=${!atLeastVersion(this.hass.config.version, 2021, 12)}
back-path="/config"
back-path=${atLeastVersion(this.hass.config.version, 2022, 5)
? "/config/system"
: "/config"}
supervisor
>
<ha-button-menu
@@ -231,7 +240,7 @@ export class HassioBackups extends LitElement {
: html`
<ha-icon-button
.label=${this.supervisor.localize(
"snapshot.delete_selected"
"backup.delete_selected"
)}
.path=${mdiDelete}
id="delete-btn"
@@ -1,8 +1,8 @@
import Fuse from "fuse.js";
import { HassioAddonInfo } from "../../../src/data/hassio/addon";
import { StoreAddon } from "../../../src/data/supervisor/store";
export function filterAndSort(addons: HassioAddonInfo[], filter: string) {
const options: Fuse.IFuseOptions<HassioAddonInfo> = {
export function filterAndSort(addons: StoreAddon[], filter: string) {
const options: Fuse.IFuseOptions<StoreAddon> = {
keys: ["name", "description", "slug"],
isCaseSensitive: false,
minMatchCharLength: 2,
@@ -1,5 +1,4 @@
import { mdiFolderUpload } from "@mdi/js";
import "@polymer/paper-input/paper-input-container";
import { html, LitElement, TemplateResult } from "lit";
import { customElement, state } from "lit/decorators";
import { fireEvent } from "../../../src/common/dom/fire_event";
@@ -17,9 +17,12 @@ import {
} from "../../../src/data/hassio/backup";
import { Supervisor } from "../../../src/data/supervisor/supervisor";
import { PolymerChangedEvent } from "../../../src/polymer-types";
import { HomeAssistant } from "../../../src/types";
import { HomeAssistant, TranslationDict } from "../../../src/types";
import "./supervisor-formfield-label";
type BackupOrRestoreKey = keyof TranslationDict["supervisor"]["backup"] &
keyof TranslationDict["ui"]["panel"]["page-onboarding"]["restore"];
interface CheckboxItem {
slug: string;
checked: boolean;
@@ -32,13 +35,6 @@ interface AddonCheckboxItem extends CheckboxItem {
const _computeFolders = (folders): CheckboxItem[] => {
const list: CheckboxItem[] = [];
if (folders.includes("homeassistant")) {
list.push({
slug: "homeassistant",
name: "Home Assistant configuration",
checked: false,
});
}
if (folders.includes("ssl")) {
list.push({ slug: "ssl", name: "SSL", checked: false });
}
@@ -100,10 +96,10 @@ export class SupervisorBackupContent extends LitElement {
this.folders = _computeFolders(
this.backup
? this.backup.folders
: ["homeassistant", "ssl", "share", "media", "addons/local"]
: ["ssl", "share", "media", "addons/local"]
);
this.addons = _computeAddons(
this.backup ? this.backup.addons : this.supervisor?.supervisor.addons
this.backup ? this.backup.addons : this.supervisor?.addon.addons
);
this.backupType = this.backup?.type || "full";
this.backupName = this.backup?.name || "";
@@ -115,9 +111,9 @@ export class SupervisorBackupContent extends LitElement {
this._focusTarget?.focus();
}
private _localize = (string: string) =>
this.supervisor?.localize(`backup.${string}`) ||
this.localize!(`ui.panel.page-onboarding.restore.${string}`);
private _localize = (key: BackupOrRestoreKey) =>
this.supervisor?.localize(`backup.${key}`) ||
this.localize!(`ui.panel.page-onboarding.restore.${key}`);
protected render(): TemplateResult {
if (!this.onboarding && !this.supervisor) {
@@ -175,23 +171,24 @@ export class SupervisorBackupContent extends LitElement {
: ""}
${this.backupType === "partial"
? html`<div class="partial-picker">
<ha-formfield
.label=${html`<supervisor-formfield-label
label="Home Assistant"
.iconPath=${mdiHomeAssistant}
.version=${this.backup
? this.backup.homeassistant
: this.hass.config.version}
>
</supervisor-formfield-label>`}
>
<ha-checkbox
.checked=${this.homeAssistant}
@click=${this.toggleHomeAssistant}
>
</ha-checkbox>
</ha-formfield>
${!this.backup || this.backup.homeassistant
? html`<ha-formfield
.label=${html`<supervisor-formfield-label
label="Home Assistant"
.iconPath=${mdiHomeAssistant}
.version=${this.backup
? this.backup.homeassistant
: this.hass.config.version}
>
</supervisor-formfield-label>`}
>
<ha-checkbox
.checked=${this.homeAssistant}
@change=${this.toggleHomeAssistant}
>
</ha-checkbox>
</ha-formfield>`
: ""}
${foldersSection?.templates.length
? html`
<ha-formfield
+8 -4
View File
@@ -24,9 +24,9 @@ class HassioAddons extends LitElement {
? html` <h1>${this.supervisor.localize("dashboard.addons")}</h1> `
: ""}
<div class="card-group">
${!this.supervisor.supervisor.addons?.length
${!this.supervisor.addon.addons.length
? html`
<ha-card>
<ha-card outlined>
<div class="card-content">
<button class="link" @click=${this._openStore}>
${this.supervisor.localize("dashboard.no_addons")}
@@ -34,11 +34,15 @@ class HassioAddons extends LitElement {
</div>
</ha-card>
`
: this.supervisor.supervisor.addons
: this.supervisor.addon.addons
.sort((a, b) => caseInsensitiveStringCompare(a.name, b.name))
.map(
(addon) => html`
<ha-card .addon=${addon} @click=${this._addonTapped}>
<ha-card
outlined
.addon=${addon}
@click=${this._addonTapped}
>
<div class="card-content">
<hassio-card-content
.hass=${this.hass}
+32
View File
@@ -10,6 +10,7 @@ import { HomeAssistant, Route } from "../../../src/types";
import { supervisorTabs } from "../hassio-tabs";
import "./hassio-addons";
import "./hassio-update";
import "../../../src/layouts/hass-subpage";
@customElement("hassio-dashboard")
class HassioDashboard extends LitElement {
@@ -22,6 +23,31 @@ class HassioDashboard extends LitElement {
@property({ attribute: false }) public route!: Route;
protected render(): TemplateResult {
if (atLeastVersion(this.hass.config.version, 2022, 5)) {
return html`<hass-subpage
.hass=${this.hass}
.narrow=${this.narrow}
.route=${this.route}
.header=${this.supervisor.localize("panel.addons")}
>
<hassio-addons
.hass=${this.hass}
.supervisor=${this.supervisor}
></hassio-addons>
<a href="/hassio/store">
<ha-fab
.label=${this.supervisor.localize("panel.store")}
extended
class="non-tabs"
>
<ha-svg-icon
slot="icon"
.path=${mdiStorePlus}
></ha-svg-icon> </ha-fab
></a>
</hass-subpage>`;
}
return html`
<hass-tabs-subpage
.hass=${this.hass}
@@ -74,6 +100,12 @@ class HassioDashboard extends LitElement {
.content {
margin: 0 auto;
}
ha-fab.non-tabs {
position: fixed;
right: calc(16px + env(safe-area-inset-right));
bottom: calc(16px + env(safe-area-inset-bottom));
z-index: 1;
}
`,
];
}
+1 -1
View File
@@ -85,7 +85,7 @@ export class HassioUpdate extends LitElement {
return html``;
}
return html`
<ha-card>
<ha-card outlined>
<div class="card-content">
<div class="icon">
<ha-svg-icon .path=${mdiHomeAssistant}></ha-svg-icon>
@@ -201,26 +201,24 @@ class HassioBackupDialog
}
if (!this._dialogParams?.onboarding) {
this.hass!.callApi(
"POST",
try {
await this.hass!.callApi(
"POST",
`hassio/${
atLeastVersion(this.hass!.config.version, 2021, 9)
? "backups"
: "snapshots"
}/${this._backup!.slug}/restore/partial`,
backupDetails
).then(
() => {
this.closeDialog();
},
(error) => {
this._error = error.body.message;
}
);
`hassio/${
atLeastVersion(this.hass!.config.version, 2021, 9)
? "backups"
: "snapshots"
}/${this._backup!.slug}/restore/partial`,
backupDetails
);
this.closeDialog();
} catch (error: any) {
this._error = error.body.message;
}
} else {
fireEvent(this, "restoring");
fetch(`/api/hassio/backups/${this._backup!.slug}/restore/partial`, {
await fetch(`/api/hassio/backups/${this._backup!.slug}/restore/partial`, {
method: "POST",
body: JSON.stringify(backupDetails),
});
@@ -80,8 +80,6 @@ class HassioHardwareDialog extends LitElement {
></ha-icon-button>
<search-input
.hass=${this.hass}
dialogInitialFocus
no-label-float
.filter=${this._filter}
@value-changed=${this._handleSearchChange}
.label=${this._dialogParams.supervisor.localize(
@@ -4,7 +4,7 @@ import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators";
import { createCloseHeading } from "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-form/ha-form";
import { HaFormSchema } from "../../../../src/components/ha-form/types";
import type { SchemaUnion } from "../../../../src/components/ha-form/types";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-settings-row";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
@@ -19,7 +19,7 @@ import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
import { RegistriesDialogParams } from "./show-dialog-registries";
const SCHEMA: HaFormSchema[] = [
const SCHEMA = [
{
name: "registry",
required: true,
@@ -35,7 +35,7 @@ const SCHEMA: HaFormSchema[] = [
required: true,
selector: { text: { type: "password" } },
},
];
] as const;
@customElement("dialog-hassio-registries")
class HassioRegistriesDialog extends LitElement {
@@ -135,8 +135,8 @@ class HassioRegistriesDialog extends LitElement {
`;
}
private _computeLabel = (schema: HaFormSchema) =>
this.supervisor.localize(`dialog.registries.${schema.name}`) || schema.name;
private _computeLabel = (schema: SchemaUnion<typeof SCHEMA>) =>
this.supervisor.localize(`dialog.registries.${schema.name}`);
private _valueChanged(ev: CustomEvent) {
this._input = ev.detail.value;
@@ -15,15 +15,18 @@ import "../../../../src/components/ha-circular-progress";
import { createCloseHeading } from "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-icon-button";
import {
fetchHassioAddonsInfo,
HassioAddonInfo,
HassioAddonRepository,
} from "../../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import { setSupervisorOption } from "../../../../src/data/hassio/supervisor";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
import { HassioRepositoryDialogParams } from "./show-dialog-repositories";
import {
addStoreRepository,
fetchStoreRepositories,
removeStoreRepository,
} from "../../../../src/data/supervisor/store";
@customElement("dialog-hassio-repositories")
class HassioRepositoriesDialog extends LitElement {
@@ -58,7 +61,13 @@ class HassioRepositoriesDialog extends LitElement {
private _filteredRepositories = memoizeOne((repos: HassioAddonRepository[]) =>
repos
.filter((repo) => repo.slug !== "core" && repo.slug !== "local")
.filter(
(repo) =>
repo.slug !== "core" && // The core add-ons repository
repo.slug !== "local" && // Locally managed add-ons
repo.slug !== "a0d7b954" && // Home Assistant Community Add-ons
repo.slug !== "5c53de3b" // The ESPHome repository
)
.sort((a, b) => caseInsensitiveStringCompare(a.name, b.name))
);
@@ -78,7 +87,7 @@ class HassioRepositoriesDialog extends LitElement {
const repositories = this._filteredRepositories(this._repositories);
const usedRepositories = this._filteredUsedRepositories(
repositories,
this._dialogParams.supervisor.supervisor.addons
this._dialogParams.supervisor.addon.addons
);
return html`
<ha-dialog
@@ -106,6 +115,9 @@ class HassioRepositoriesDialog extends LitElement {
</paper-item-body>
<div class="delete">
<ha-icon-button
.label=${this._dialogParams!.supervisor.localize(
"dialog.repositories.remove"
)}
.disabled=${usedRepositories.includes(repo.slug)}
.slug=${repo.slug}
.path=${usedRepositories.includes(repo.slug)
@@ -212,9 +224,7 @@ class HassioRepositoriesDialog extends LitElement {
private async _loadData(): Promise<void> {
try {
const addonsinfo = await fetchHassioAddonsInfo(this.hass);
this._repositories = addonsinfo.repositories;
this._repositories = await fetchStoreRepositories(this.hass);
fireEvent(this, "supervisor-collection-refresh", { collection: "addon" });
} catch (err: any) {
@@ -228,14 +238,9 @@ class HassioRepositoriesDialog extends LitElement {
return;
}
this._processing = true;
const repositories = this._filteredRepositories(this._repositories!);
const newRepositories = repositories.map((repo) => repo.source);
newRepositories.push(input.value);
try {
await setSupervisorOption(this.hass, {
addons_repositories: newRepositories,
});
await addStoreRepository(this.hass, input.value);
await this._loadData();
input.value = "";
@@ -247,19 +252,8 @@ class HassioRepositoriesDialog extends LitElement {
private async _removeRepository(ev: Event) {
const slug = (ev.currentTarget as any).slug;
const repositories = this._filteredRepositories(this._repositories!);
const repository = repositories.find((repo) => repo.slug === slug);
if (!repository) {
return;
}
const newRepositories = repositories
.map((repo) => repo.source)
.filter((repo) => repo !== repository.source);
try {
await setSupervisorOption(this.hass, {
addons_repositories: newRepositories,
});
await removeStoreRepository(this.hass, slug);
await this._loadData();
} catch (err: any) {
this._error = extractApiErrorMessage(err);
+3
View File
@@ -1,9 +1,12 @@
// Compat needs to be first import
import "../../src/resources/compatibility";
import { setCancelSyntheticClickEvents } from "@polymer/polymer/lib/utils/settings";
import "../../src/resources/roboto";
import "../../src/resources/safari-14-attachshadow-patch";
import "./hassio-main";
setCancelSyntheticClickEvents(false);
const styleEl = document.createElement("style");
styleEl.innerHTML = `
body {

Some files were not shown because too many files have changed in this diff Show More