Commit Graph

8 Commits

Author SHA1 Message Date
Bruno Pantaleão Gonçalves
c028a943da Added widget builder (#3354)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->
First iteration of the widget builder, user is able to choose what
entities to display, choose a display text for them, color customization
and "on tap" action.
## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->


https://github.com/user-attachments/assets/5949322a-a8df-4b3d-aaab-d4ba3853cc84


## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2025-01-27 16:16:24 +01:00
Bruno Pantaleão Gonçalves
94fe0c568f Add more domains for sensors widget (#3270)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->
CC: @Penait1 
## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2024-12-12 18:08:11 +01:00
Bruno Pantaleão Gonçalves
13ac4e4a87 Making API connection optional given activeURL is now optional as well (#3169)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2024-11-18 15:07:18 +01:00
Bruno Pantaleão Gonçalves
95afe7ab98 Reflect CarPlay config changes in realtime (#3149)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2024-11-12 13:55:57 +01:00
Bruno Pantaleão Gonçalves
dfbc1a1eff Fix cover control state (#3145)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2024-11-11 13:49:50 +01:00
Bruno Pantaleão Gonçalves
e5065bfe5e Add cover control to iOS (#3115) 2024-11-06 23:06:34 +01:00
Penait1
8dd9117cbe Preserve order getEntities function (#3108)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
Changed the implementation of `getEntities(matching string: String? =
nil)` to return an array of key values pairs instead of a dictioniary.
The intent of the function seems to return a sorted list of entities
grouped by server name since the servers are sorted
`Current.servers.all.sorted(by: { $0.info.name < $1.info.name })`. A
dictioniary does not guarantee order, resulting in unpredicting results
in my `Sensor` widget configure window. Sometimes one server is first,
the next time the other.

Apple also recommends using a KeyValuePair when order is important:

https://developer.apple.com/documentation/swift/keyvaluepairs
`Use a KeyValuePairs instance when you need an ordered collection of
key-value pairs and don’t require the fast key lookup that
the Dictionary type provides.`

Because there are typically (I think?) not many servers configured the
loss of fast lookup seems acceptable to me.

## Screenshots
Here an overview of the `getEntities` function while debugging showing
the problem. I adjusted the function slightly to temp store the values,
`servers` contains the value of `Current.servers.all.sorted(by: {
$0.info.name < $1.info.name })` The entitiesPerSever does not have the
same order as the `servers` variable, while they should have

![Screenshot 2024-10-29 at 17 16
04](https://github.com/user-attachments/assets/3ff0620b-2a26-45aa-800f-7fb3093727c6)

## Any other notes
This is also an issue for other widgets like the script widget. I only
fixed the function in `IntentSensorsAppEntity` though
, they have the same problem in the calling function because they return
an dictionary not preserving order;
`private func getScriptEntities(matching string: String? = nil) ->
[Server: [IntentScriptEntity]] {`
2024-10-31 14:22:52 +01:00
Bruno Pantaleão Gonçalves
4acaf55be1 Add iOS 18 control switch and abstract controls logic (#3039) 2024-09-23 23:46:39 +02:00