Compare commits

..

908 Commits

Author SHA1 Message Date
Paulus Schoutsen 6036443d4a Bumped version to 2022.11.0b2 2022-10-28 22:08:26 -04:00
J. Nick Koston 6000cc087b Bump oralb-ble to 0.9.0 (#81166)
* Bump oralb-ble to 0.9.0

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.8.0...v0.9.0

* empty
2022-10-28 22:08:23 -04:00
puddly d52323784e Bump zigpy to 0.51.5 (#81164)
Bump zigpy from 0.51.4 to 0.51.5
2022-10-28 22:08:22 -04:00
J. Nick Koston f5fe3ec50e Bump aiohomekit to 2.2.7 (#81163)
changelog: https://github.com/Jc2k/aiohomekit/compare/2.2.6...2.2.7
2022-10-28 22:08:21 -04:00
muppet3000 230993b7c0 Growatt version bump - fixes #80950 (#81161) 2022-10-28 22:08:21 -04:00
Robert Hillis 09fc492d80 Bump aiopyarr to 22.10.0 (#81153) 2022-10-28 22:08:20 -04:00
J. Nick Koston 089bbe8391 Bump dbus-fast to 1.54.0 (#81148)
* Bump dbus-fast to 1.53.0

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.51.0...v1.53.0

* 54
2022-10-28 22:08:19 -04:00
Shay Levy 4dc2d885cf Add diagnostics to Switcher (#81146) 2022-10-28 22:08:18 -04:00
J. Nick Koston 2bfd4e79d2 Bump aiohomekit to 2.2.6 (#81144) 2022-10-28 22:08:18 -04:00
Thibaut 9de89c97a4 Bump pyoverkiz to 1.5.6 (#81129) 2022-10-28 22:08:17 -04:00
J. Nick Koston 3f55d037f8 Bump oralb-ble to 0.8.0 (#81123) 2022-10-28 22:08:16 -04:00
Shay Levy 1ef9e9e19a Fix Shelly Plus H&T sleep period on external power state change (#81121) 2022-10-28 22:08:16 -04:00
Kevin Stillhammer aeecc93ad6 Allow empty string for filters for waze_travel_time (#80953)
* Allow empty string for filters

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

* Apply PR feedback

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-10-28 22:08:15 -04:00
Paulus Schoutsen 1c8a7fe8e8 Bumped version to 2022.11.0b1 2022-10-27 17:30:32 -04:00
Bram Kragten 6d973a1793 Update frontend to 20221027.0 (#81114) 2022-10-27 17:30:25 -04:00
Matthias Alphart 233ad2b90b Migrate KNX to use kelvin for color temperature (#81112) 2022-10-27 17:30:24 -04:00
J. Nick Koston 4927f4206a Add support for oralb IO Series 4 (#81110) 2022-10-27 17:30:23 -04:00
J. Nick Koston 8751eaaf3e Bump dbus-fast to 1.51.0 (#81109) 2022-10-27 17:30:21 -04:00
Tobias Sauerwein 43164b5751 Bring back Netatmo force update code (#81098) 2022-10-27 17:30:20 -04:00
Tobias Sauerwein cbd5e919cb Clean up superfluous Netatmo API calls (#81095) 2022-10-27 17:30:20 -04:00
Michał Huryn a50fd6a259 Update blebox_uniapi to 2.1.3 (#81071)
fix: #80124 blebox_uniapi dependency version bump
2022-10-27 17:30:19 -04:00
J. Nick Koston eec1015789 Bump nexia to 2.0.5 (#81061)
fixes #80988
2022-10-27 17:30:18 -04:00
Avi Miller 61d064ffd5 Bump aiolifx-themes to 0.2.0 (#81059) 2022-10-27 17:30:17 -04:00
mezz64 c10dd1b702 Eight Sleep catch missing keys (#81058)
Catch missing keys
2022-10-27 17:30:16 -04:00
puddly bb47935509 Handle sending ZCL commands with empty bitmap options (#81051)
Handle sending commands with empty bitmaps
2022-10-27 17:30:15 -04:00
puddly 200f0fa92c Bump zigpy to 0.51.4 (#81050)
Bump zigpy from 0.51.3 to 0.51.4
2022-10-27 17:30:14 -04:00
J. Nick Koston ad29bd55a4 Bump zeroconf to 0.39.3 (#81049) 2022-10-27 17:30:13 -04:00
J. Nick Koston b5615823ba Bump aiohomekit to 2.2.5 (#81048) 2022-10-27 17:30:12 -04:00
Erik Montnemery 11cc7e1566 Add WS API recorder/statistic_during_period (#80663) 2022-10-27 17:30:11 -04:00
Franck Nijhof cf0f79294b Bumped version to 2022.11.0b0 2022-10-26 21:50:53 +02:00
J. Nick Koston 2a6f2f431d Bump dbus-fast to 1.49.0 (#81043) 2022-10-26 14:39:27 -05:00
Klaas Neirinck d107d8df78 Improve readability by reducing indentation (#81040) 2022-10-26 22:37:39 +03:00
Steven Looman d50795af2b Move upnp derived sensors to library, be more robust about failing getting some data (#79955) 2022-10-26 14:34:44 -05:00
Paulus Schoutsen 00f72f8b2a Bump frontend to 20221026.0 (#81042) 2022-10-26 21:32:55 +02:00
Erik Montnemery 95fc641949 Add support to the energy integration for tracking water usage (#80888) 2022-10-26 21:20:52 +02:00
Erik Montnemery a4310d2085 Allow integrations to drop custom unit conversion (#81005)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-26 15:11:28 -04:00
Franck Nijhof a603441180 Add support for water usage Flume (#81041) 2022-10-26 21:04:41 +02:00
Joakim Plate 0321c8bdc5 Allow device class for switch to be set in knx (#81039) 2022-10-26 21:04:11 +02:00
epenet 2a2e097e17 Use unit enums in unit utilities (#81030) 2022-10-26 20:47:17 +02:00
Felipe Santos 37cfa3e19b Allow to cast in HLS format when using WebRTC (#80646) 2022-10-26 14:37:31 -04:00
Jan Bouwhuis 4da3fb5baa Correct Import of ReceivePayloadType (#81035) 2022-10-26 20:26:05 +02:00
Daniel Gangl b2b3c47917 Add config flow to zamg (#66469) 2022-10-26 18:35:12 +02:00
Michał Huryn a1c18b06fb Blebox typehints in binary sensor tests (#80676) 2022-10-26 18:20:49 +02:00
Marc Mueller b148cdd64a Add integration type to fritzbox_callmointor integration (#81032) 2022-10-26 18:19:54 +02:00
epenet a28b0e1b6f Migrate volume units to an enum (#81028)
* Migrate volume units to an enum

* Adjust docstring

* Deprecate -> Deprecated

* Plural
2022-10-26 17:57:41 +02:00
Maikel Punie 3eea61361c Clean up velbus cache folder only on removal of the config entry (#81031) 2022-10-26 17:42:15 +02:00
J. Nick Koston a72e906ac1 Fix zeroconf when location name has a period (#81022) 2022-10-26 10:39:13 -05:00
epenet 8645e47b07 Migrate power units to an enum (#81026) 2022-10-26 17:28:23 +02:00
epenet 3eb574edca Remove YAML import from coinbase (#80084) 2022-10-26 17:14:31 +02:00
Martin Hjelmare a1a0284e81 Fix zwave_js port enumeration (#81020) 2022-10-26 10:12:30 -05:00
J. Nick Koston abb3ce6d69 Fix zeroconf starting later than expected (#81023) 2022-10-26 10:06:56 -05:00
Allen Porter 0e2bea038d Update Google Calendar to synchronize calendar events efficiently (#80925)
* Sync google calendar and serve from local storage

Update to use new gcal_sync APIs
Update google calendar filter logic
Remove storage on config entry removal
Make timeline queries timezone aware
Do not block startup while syncing

* Minor readability tweaks

* Remove unnecessary args to async_add_entities

* Change how task is created on startup

* Update homeassistant/components/google/calendar.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Revert min time between updates

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-26 07:57:49 -07:00
Xeevis c4f6b8a55b Use scan_interval in netdata (#80959)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-26 16:50:01 +02:00
Maikel Punie 33ef2abf9e Add a new clear cache service to the velbus integration (#79995) 2022-10-26 16:44:24 +02:00
epenet e18adb379d Migrate mass units to an enum (#81021) 2022-10-26 16:21:29 +02:00
Avi Miller dde763418a Add an RSSI sensor to the LIFX integration (#80993) 2022-10-26 09:12:45 -05:00
Tom Schneider 0d4b1866a7 Add has_entity_name support to hvv_departures (#80963) 2022-10-26 15:49:10 +02:00
Tom Schneider fbe7a0289c Set hvv_departures device entry type to service (#80964) 2022-10-26 15:48:13 +02:00
Marvin Wichmann b786440eda Add integration type to KNX integration (#81003) 2022-10-26 15:47:27 +02:00
kingy444 6d78f6841e Remove hardwired Powerview battery sensor (#81013) 2022-10-26 14:24:17 +02:00
David F. Mulcahey e53d74e3e8 Bump ZHA quirks to 0.0.84 (#81015) 2022-10-26 08:16:49 -04:00
epenet e0d94d799a Migrate temperature units to an enum (#81006)
* Migrate temperature units to an enum

* Adjust spacing
2022-10-26 08:00:15 -04:00
epenet 9ee4d77935 Migrate speed units to an enum (#81004) 2022-10-26 13:59:54 +02:00
epenet 945c991e84 Migrate pressure units to an enum (#81009) 2022-10-26 13:58:22 +02:00
epenet 91df68de1f Migrate length units to an enum (#81011) 2022-10-26 13:57:49 +02:00
epenet 842cb18d39 Migrate energy units to an enum (#80998) 2022-10-26 13:56:51 +02:00
epenet 9d3442055b Move options to SelectEntityDescription in goodwe (#80017)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-26 13:54:57 +02:00
Maikel Punie 458f3d4d13 Use a unique cache folder per Velbus config entry (#79792) 2022-10-26 13:53:41 +02:00
Jan Bouwhuis 2d9f39d406 Strict typing for shared MQTT modules (#80913)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-10-26 13:52:34 +02:00
Maciej Bieniek 052c673c9e Use wind_speed device class instead of speed in Accuweather (#81016) 2022-10-26 13:47:29 +02:00
kingy444 5669ca74d3 Disable Powerview signal sensor by default (#81014) 2022-10-26 13:46:34 +02:00
epenet 7796f361fc Use precipitation_intensity class in integrations (#80615) 2022-10-26 13:32:06 +02:00
Franck Nijhof 7a04ba96f3 Adjust unique ID of Octoprint camera entity (#80996) 2022-10-26 13:27:13 +02:00
Klaas Neirinck 5757197fb6 Add auto preset to Comfoconnect fan (#80697) 2022-10-26 12:44:23 +02:00
Nolan Gilley d5a2484076 Don't set force bool during set_humidity (#80269) 2022-10-26 12:43:06 +02:00
G Johansson 9715b6c862 Remove yaml import anthemav (#79931) 2022-10-26 12:42:21 +02:00
Daniel Hjelseth Høyer e3233f72ce Tibber strict typing (#79407)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-26 12:41:23 +02:00
Franck Nijhof d65e639f00 Update orjson to 3.8.1 (#81000) 2022-10-26 12:40:15 +02:00
Bram Kragten 9ed31bb8df fix integration descriptions (#81008) 2022-10-26 12:39:23 +02:00
epenet c59944bc84 Fix precipitation units in darksky (#80611) 2022-10-26 11:54:44 +02:00
G Johansson be7e61b88b Add unique id for min_max (#81007) 2022-10-26 11:27:44 +02:00
Erik Montnemery 352976fd1d Add rules for converting volumes (#80951)
* Add rules for converting volumes

* Use SensorDeviceClass in new tests

* Tweak tests

* Update flo tests

* Update sensor tests
2022-10-26 10:29:33 +02:00
Sean Vig 8714fc5c2c Use ._attr_* properties for monoprice integration (#80505) 2022-10-26 10:24:47 +02:00
J. Nick Koston e15f2e050e Update ibeacon-ble to 1.0.1 (#80785) 2022-10-26 10:21:30 +02:00
J. Nick Koston a90ef3a575 Add additional data to HomeKit diagnostics (#80980) 2022-10-26 10:05:33 +02:00
Avi Miller 7dd1f58d04 Bump aiolifx_effects dependency to 0.3.0 (#80994) 2022-10-26 09:52:52 +02:00
niobos 8e196fbe06 Add Velbus cover opening/closing (#79851)
* Velbus cover/blind: indicate opening/closing

* Add docstrings because flake8 requirement

Co-authored-by: Niels Laukens <niels@dest-unreach.be>
2022-10-26 08:03:53 +02:00
Chris Talkington 8b119ab5fc Address review feedback for jellyfin (#80987)
address review feedback for jellyfin
2022-10-26 07:45:33 +02:00
GitHub Action d0ff6582e6 [ci skip] Translation update 2022-10-26 00:29:57 +00:00
Rami Mosleh a205ba7656 Remove deprecated YAML in android_ip_webcam (#80875) 2022-10-25 23:53:17 +02:00
Raman Gupta 1b3c383558 Add integration_type to vizio, tomorrowio, zwave_js (#80975) 2022-10-25 23:31:44 +02:00
Robert Svensson 115a1ceea0 Rewrite UniFi block client switch (#80969)
* Refactor UniFi block client switch entities

* Use new switch loader

* Rename lambdas

* Use is_on rather than _attr_is_on when applicable
2022-10-25 22:36:51 +02:00
Aaron Bach 2af58ad609 Set integration type on codeowned integrations @bachya (#80974) 2022-10-25 22:23:54 +02:00
Shay Levy 775f4e9e0d Clean-up Shelly legacy update entities (#80961) 2022-10-25 21:27:54 +02:00
Shay Levy d21417c8e5 Update devcontainer appPort to allow connections from external IPs (#79730) 2022-10-25 21:06:56 +02:00
Franck Nijhof 98591cd4b6 Remove hardware and fix raspberry pi brands in integrations.json (#80970) 2022-10-25 21:05:04 +02:00
Thomas Dietrich a98c304db6 Add deprecation warning for statistics integration default buffer_size (#69700)
* Add deprecation warning for buffer size

* Attend to comments

* Clarify deprecation info

* Move warnings to repairs issue_registry

* Apply slight wording changes, add compiled en strings file

* Format json
2022-10-25 20:50:52 +02:00
Joakim Sørensen 403f0c16af Bump aiogithubapi from 22.2.4 to 22.10.1 (#80968) 2022-10-25 20:48:18 +02:00
Michael 8175dab7ab Add week period to recorder statistics api (#80784)
* add week period to get statistics api

* add test
2022-10-25 20:07:28 +02:00
Ryan Fleming c197e1765a Add Octoprint camera entity (#79689) 2022-10-25 19:59:57 +02:00
Petro31 f73fc9e355 Adds states and state_attr as a filter, adds is_state and is_state_attr as a test. (#79473) 2022-10-25 19:49:51 +02:00
Rami Mosleh d3ada34498 Remove deprecate service in speedtestdotnet (#80938)
Remove deprecate service
2022-10-25 10:44:27 -07:00
Robert Svensson 13e2bb1e22 Improve loading UniFi switch entities (#80910) 2022-10-25 19:26:56 +02:00
epenet 870a5b6f37 Adjust formatting in unit system tests (#80958)
* Adjust black formatting in unit system tests

* Split tests
2022-10-25 17:36:21 +02:00
epenet cc46564488 Add wind_speed sensor device class (#79789) 2022-10-25 17:21:44 +02:00
Thomas Dietrich 3346ddcd86 Add sum-differences characteristics to statistics component (#79439) 2022-10-25 16:46:47 +02:00
epenet 7838bb3ebe Replace new PRECIPITATION_INTENSITY with enum (#80653) 2022-10-25 16:45:45 +02:00
Erik Montnemery 727eccfec4 Add GJ as supported unit for energy sensors (#80870)
* Add GJ as supported unit for energy sensors

* Update homeassistant/const.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-25 16:43:00 +02:00
shbatm e9a3982560 Add additional sensors to RainMachine (#80914) 2022-10-25 08:07:31 -06:00
epenet 0018939142 Adjust unit_system type hints (#80946) 2022-10-25 15:56:18 +02:00
Erik Montnemery 3aa64aaaf1 Mark some integrations as system integrations (#80948) 2022-10-25 15:30:46 +02:00
Erik Montnemery b07e1281da Add rules for converting speeds (#80943)
* Add rules for converting speeds

* Update metoffice wind speed sensors to prefer mph

* Don't convert speeds measured in knots
2022-10-25 14:53:59 +02:00
mtdcr 93d4d02aac Remove myself from edl21 codeowners (#80947) 2022-10-25 14:38:42 +02:00
Lars 1c8156bd33 Update Fritz! lights to use kelvin (#79733) 2022-10-25 13:45:02 +02:00
Bram Kragten 36bb0bbc1a Fix integrations.json creation, make iot_standards a list (#80945) 2022-10-25 13:43:40 +02:00
On Freund 64eb316908 Add alarmed binary sensor to Risco integration (#77315)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-25 13:43:09 +02:00
Rami Mosleh 623abb4325 Remove deprecated YAML in Pushover (#80876) 2022-10-25 13:39:38 +02:00
jjlawren d50f5e49c8 Extend Sonos queue operation timeouts (#80804) 2022-10-25 13:38:28 +02:00
hackerESQ f977b264a1 Add tplink dhcp entry for EP25 model (#80650)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-25 13:22:09 +02:00
Franck Nijhof 5b32540a84 Set water device class to flo, homewizard, p1_monitor, toon (#80944) 2022-10-25 13:21:47 +02:00
Parham Ghazanfari dbfca8def8 Add support for EventBridge to aws integration (#77573)
* Added EventBridge support to aws integration

* Added type hints for all aws notification services + Added unit tests for EventBridge AWS integration

* Increase line coverage for unit tests for aws integration.
2022-10-25 13:21:25 +02:00
Erik Montnemery aea0067e49 Add additional rules for converting distances (#80940)
* Add additional rules for converting distances

* Convert in to mm

* Adjust existing tests

* Add test
2022-10-25 12:51:23 +02:00
HarvsG fe7402375d Bayesian - support unique_id: (#79879)
* support unique_id

* adds test for unique_ids
2022-10-25 12:42:59 +02:00
Franck Nijhof 3b6f0d2870 Merge branch 'master' into dev 2022-10-25 12:22:18 +02:00
Shay Levy e77025ac8d Bump aioshelly to 4.1.1 (#80939) 2022-10-25 12:16:08 +02:00
Franck Nijhof 326344db12 Rename entry_id template method to config_entry_id (#80935) 2022-10-25 12:11:14 +02:00
Franck Nijhof 398d18eeee Load themes from themes folder by default (#80937) 2022-10-25 12:10:40 +02:00
Franck Nijhof 52f109f6ab Add IKEA SYMFONISK as virtual integration (#80833) 2022-10-25 12:09:22 +02:00
Erik Montnemery beeee8b60e Use start helper in recorder (#79559) 2022-10-25 10:38:07 +02:00
osono-design 02b0b19dd4 Add tuya access control devices (binary status of lock) (#79793) 2022-10-25 10:07:59 +02:00
Dave T e5716efa9c Add visual image preview during generic camera options flow (#80392)
Co-authored-by: Dave T <davet2001@users.noreply.github.com>
2022-10-25 10:03:19 +02:00
epenet 6b1f503a79 Allow gas units to be overriden (#80884) 2022-10-25 09:53:28 +02:00
Erik Montnemery 3d3349240f Don't trigger statistics issues when sensor units are equivalent (#80099) 2022-10-25 09:50:01 +02:00
Jesse Hills 97d31d05f0 Use ESPHome manufacturer name from device if provided (#80928) 2022-10-25 09:15:28 +02:00
Maikel Punie f85a2fb57a Add integration_type to the velbus component (#80924) 2022-10-25 09:13:36 +02:00
Quentame 4f5c9be84f Use EntityDescription in Freebox switch (#80858)
* Freebox switch: use EntityDescription

* unique_id base on key later with migration step

* Keep the same name

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/freebox/switch.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Removing specific FreeboxSwitchEntityDescription as there is one sensor, for now

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-25 09:00:56 +02:00
definitio 644b00ca2d Add apcupsd laststest sensor (#80773) 2022-10-25 08:44:54 +02:00
J. Nick Koston 559e281431 Add oralb integration (#80918)
* mapping

* update

* working

* tests

* fixes

* temp add binary sensor platform to make sure it works

* fixes

* 100% cover

* adjust

* disable chatty sensors by default

* remove binary sensor_platform for next PR

* time is much nicer than counter
2022-10-24 23:11:40 -05:00
Ongy 3759be09df Add media_player platform to Jellyfin (#76801) 2022-10-24 21:45:01 -05:00
GitHub Action 9b331abe91 [ci skip] Translation update 2022-10-25 00:39:01 +00:00
Simon Hansen b56d332c26 Add integration_type to launchlibrary (#80907) 2022-10-24 23:23:14 +02:00
Shay Levy dce4753510 Cleanup Shelly update platform (#80845) 2022-10-25 00:20:26 +03:00
Simon Hansen 2ddf1f9416 Add integration_type to iss (#80909) 2022-10-24 23:19:59 +02:00
Steven Looman b5f70a404a Fix SSDP/UPnP server after testing (#80815) 2022-10-24 15:19:19 -05:00
shbatm ac4645a37e Add "Push Flow Meter Data" service to RainMachine and bump regenmaschine to 2022.10.0 (#80890) 2022-10-24 13:39:37 -06:00
J. Nick Koston f61c010116 Bump bleak-retry-connector to 2.4.2 (#80908) 2022-10-24 14:27:04 -05:00
SoCalix 9c762a5a5a Fix XMPP room notifications (#80794) 2022-10-24 21:10:56 +02:00
epenet 613ea28b0e Add new WATER device class (#80886) 2022-10-24 21:06:35 +02:00
J. Nick Koston 27a61f5407 Raise exception when esphome ble client disconnects during operation (#80885) 2022-10-24 14:04:50 -05:00
shbatm 66b473bae2 Add integration_type to ISY994 manifest and bump pyisy to 3.0.8 (#80906) 2022-10-24 14:02:23 -05:00
Erik Montnemery f7694c0550 Only reload modified scripts (#80470)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-24 20:47:06 +02:00
J. Nick Koston c5688072fd Bump aiohomekit to 2.2.4 (#80899) 2022-10-24 19:40:13 +02:00
rikroe c474db6617 Add EMISSION_CHECK to BMW Connected Drive (#80819) 2022-10-24 19:38:15 +02:00
Martin Hjelmare 838691f22f Refactor zwave_js add-on manager (#80883)
* Make addon slug an instance attribute

* Extract addon name and addon config

* Update docstrings
2022-10-24 18:21:05 +02:00
Jc2k 4279d73800 Add support for Netatmo noise sensor to homekit_controller (#80889)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-24 10:31:26 -05:00
J. Nick Koston 1f8a9ed3c7 Bump aiohomekit to 2.2.3 (#80891) 2022-10-24 09:38:28 -05:00
J. Nick Koston a7610909de Fix HKC exceptions during BLE startup not being caught (#80882) 2022-10-24 09:29:13 -05:00
J. Nick Koston 9978296ae2 Bump bleak-retry-connector to 2.4.0 (#80887) 2022-10-24 09:28:59 -05:00
Joakim Plate 232041b194 Add field descriptions for nibe heat pump (#80791) 2022-10-24 16:18:05 +02:00
Erik Montnemery 6979cd95b0 Add suggested_unit_of_measurement attribute to sensors (#80638)
* Add suggested_unit_of_measurement attribute to sensors

* Lazy calculation of initial entity options

* Add type alias for entity options

* Small tweak

* Add tests

* Store suggested_unit_of_measurement in its own option key

* Adapt to renaming of IMPERIAL_SYSTEM

* Fix rebase mistakes

* Apply suggestions from code review

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-24 16:08:02 +02:00
epenet 0c79a9a33d Adjust pylint for IMPERIAL_SYSTEM deprecation (#80874)
* Adjust pylint for IMPERIAL_SYSTEM deprecation

* Use correct location

* Adjust components
2022-10-24 15:25:00 +02:00
epenet ec4b8c49fe Add unique_id to scrape (#80581)
* Add unique_id to scrape

* Add tests
2022-10-24 15:14:43 +02:00
Jan Bouwhuis 2f11385627 Add typing hints for MQTT mixins (#80702)
* Add typing hints for MQTT mixins

* Follow up comments

* config_entry is always set

* typing discovery_data - substate None assignment

* Rename `config[CONF_DEVICE]` -> specifications
2022-10-24 15:00:37 +02:00
epenet 64d6d04ade Use DataUpdateCoordinator in scrape (#80593)
* Add DataUpdateCoordinator to scrape

* Fix tests
2022-10-24 14:55:57 +02:00
Joakim Plate ebfb10c177 Allow hostname for nibe heatpump (#80793)
Allow hostname for nibe
2022-10-24 14:17:53 +02:00
epenet f7982a0db2 CI: Fix partial coverage (#80877)
* CI: Split coverage job

* Don't wait for pytest-mariadb
2022-10-24 12:18:27 +02:00
Maciej Bieniek 1f0cb73ad0 Add update platform to MQTT integration (#80659) 2022-10-24 11:47:45 +02:00
epenet 26d3c34838 Remove precipitation note from length units (#80677) 2022-10-24 10:45:16 +02:00
Jan Bouwhuis 5e7f571f01 Move advanced MQTT options to entry (#79351)
* Move advanced broker settings to entry

* Add repair issue for deprecated settings

* Split CONFIG_SCHEMA

* Do not store certificate UI flags in entry

* Keep entered password in next dialog

* Do not process yaml config in flow

* Correct typo
2022-10-24 09:58:23 +02:00
dependabot[bot] a8bf8d449b Bump actions/upload-artifact from 3.1.0 to 3.1.1 (#80867)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-24 09:50:56 +02:00
Quentame b1202ab31f Add Freebox button to mark calls as read (#80609)
* Add Freebox button to mark calls as read

* Bump Freebox to 1.0.1

* Fix black/flake8

* Add entity_category + fix reboot button name

* Add has_entity_name to reboot

* Remove 'missed' as it put all calls as read

* base unique_id on key and not name

* unique_id base on key later with migration step

* Keep the same name

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-24 09:33:59 +02:00
Allen Porter 91e6ee5da5 Bump gcal_sync to 2.2.0 (#80863) 2022-10-24 08:20:55 +02:00
Avi Miller 6e453ae471 Add device-specific diagnostics to the LIFX integration (#79964) 2022-10-23 22:49:18 -05:00
Oliver 3c170f7627 Update denonavr to version 0.10.12 (#80861) 2022-10-23 21:15:04 -05:00
J. Nick Koston 82eb17e12a Bump aiohomekit to 2.2.2 (#80857)
* Bump aiohomekit to 2.2.2

changelog: https://github.com/Jc2k/aiohomekit/compare/2.2.1...2.2.2

* ci bump
2022-10-23 20:29:20 -05:00
GitHub Action 6502248b41 [ci skip] Translation update 2022-10-24 00:38:21 +00:00
Øyvind Matheson Wergeland 712b984833 Support Nobø Switch as temperature sensor (#78480)
* Expose Nobø Switch as temperatur sensor.

* - Review
- Hub may report current temperature as None

* Avoid update during entity addition, and fix race condition

* Update pynobo to 1.6.0
Use new method to fix potential race condition.

* Use generator expressions
2022-10-24 01:55:22 +02:00
Garrett 073951177b Code quality update for Subaru sensors (#79482)
* Use distance device class for sensors

* Change sensor name casing and unique_id

* Migrate sensor entity unique_id

* Match title-cased unique_id when migrating

* Remove unneeded regex to find '_' delimited id suffix

* Incorporate PR review comments

* Add check to prevent extra odometer entity migration
2022-10-24 01:54:22 +02:00
J. Nick Koston 7d78728a2f Fix whitespace in oncue manifest (#80859) 2022-10-23 19:53:18 -04:00
Kevin Addeman fdcce0446c Add Lutron Caseta zeroconf discovery for RA3/HWQSX (#80852) 2022-10-23 18:17:36 -05:00
J. Nick Koston 3c40634fbb Try again to populate HKC BLE accessory state after startup (#80854) 2022-10-23 18:04:42 -05:00
PeteRager 59b2869f6a Fix oncue data unavailable when genset disconnected (#80668)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-23 18:01:43 -05:00
Julian Löhr 6795627734 Add ZHA StartUpColorTemperature configuration entity (#80853)
* Add ZHA start up color temperature entity

* Use device reported min max values

* Add color number test

* Fix code style
2022-10-23 18:46:47 -04:00
Kevin Addeman 3f3518e29d Fix Lutron Caseta area names by ignoring root area during area name retrieval (#80576) 2022-10-23 17:28:15 -05:00
Robert Svensson 03bf37e12c Refactor UniFi DPI switch entities (#80761)
* Refactor UniFi DPI switch entities

* Remove dpi presence from items_added
2022-10-23 22:42:24 +02:00
Robert Svensson d75834cd1e Add presence duration number (#79498) 2022-10-23 22:30:03 +02:00
G Johansson d85866d49c Fix temperature unit in sensor for Sensibo (#80843) 2022-10-23 15:24:55 -05:00
G Johansson b04165b495 Add Sensibo Climate React (#78221) 2022-10-23 15:22:14 -05:00
Nathan Spencer 746bdb44ac Bump pylitterbot to 2022.10.2 (#80836) 2022-10-23 15:19:57 -05:00
Kevin Addeman 071f335fdb Add dynamic generation of device triggers from keypad buttons (#80797)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-23 14:57:04 -05:00
J. Nick Koston 0f50b2edd3 Small lifx fixes (#80828) 2022-10-23 14:17:42 -05:00
G Johansson 5fbf6ce8bd Minor cleanup Sensibo (#80835) 2022-10-23 13:58:10 -05:00
G Johansson 57b2bb4889 Add entity service - Set Full AC state to Sensibo (#80820)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-23 13:55:53 -05:00
Franck Nijhof d4a5393f7b Set integration type on codeowned integrations @frenck (#80830) 2022-10-23 20:43:13 +02:00
Chris Talkington 9734086d9b Add integration_type to jellyfin (#80832) 2022-10-23 13:42:25 -05:00
J. Nick Koston 3df73259dd Prevent HomeKit Controller BLE connect retries from blocking startup (#80827) 2022-10-23 13:41:32 -05:00
Robert Svensson 423f6aeec2 Improve UniFi PoE unique ID (#80740)
* Improve UniFi PoE unique ID

* Set available property on creation
2022-10-23 20:33:53 +02:00
Chris Talkington 18f51db15d Add integration_type to ipp and roku (#80831) 2022-10-23 13:31:24 -05:00
Robert Svensson 0444dd71a6 Refactor UniFi outlet switches (#80738)
* Rewrite UniFi outlet switches

* Bump aiounifi to v41

* Remove devices from items_added input
2022-10-23 20:28:45 +02:00
Fredrik Erlandsson 16d3cc905f Bump pydaikin to 2.8.0 (#80823) 2022-10-23 12:54:11 -05:00
Robert Svensson c6e7b9cc99 Refactor UniFi upgrade entities (#80752)
* Refactor UniFi upgrade entities

* Enable type check for UniFi update platform
2022-10-23 19:33:08 +02:00
Avi Miller 2966f9ed8e Add themes for LIFX multi-zone devices via a new select entity (#80067) 2022-10-23 11:28:17 -05:00
kingy444 873ccc4493 Refactor Powerview sensor to dataclass (#80536) 2022-10-23 10:38:45 -05:00
Bouwe Westerdijk bd6678c73b Bump plugwise to v0.25.3 (#80782) 2022-10-23 12:42:35 +02:00
Franck Nijhof a26e4618c7 Update psutil to 5.9.3 (#80775) 2022-10-23 11:36:54 +02:00
J. Nick Koston 95d6859cb7 Log bluetooth advertisement before firing bleak callbacks (#80800)
The debug log was confusing because the bleak callbacks
were firing before we were logging the advertisements
2022-10-23 11:34:03 +02:00
J. Nick Koston dd39ddca2f Bump aiohomekit to 2.2.0 (#80798) 2022-10-23 07:13:44 +01:00
Shay Levy 8fa64a7a89 Bump aioshelly to 4.1.0 (#80795) 2022-10-22 22:57:25 -06:00
jjlawren 4837e22262 Bump soco to 0.28.1 (#80792) 2022-10-22 19:59:44 -05:00
GitHub Action a4b8124a10 [ci skip] Translation update 2022-10-23 00:36:20 +00:00
J. Nick Koston b952797298 Bump bleak-retry-connector to 2.3.2 (#80790) 2022-10-22 16:14:11 -05:00
Steven Hosking c4831333fa Extend roomba mac range in manifest (#80714)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-22 10:44:25 -05:00
uvjustin 81f2f134f4 Bump owntone requirements (#80552) 2022-10-22 16:09:13 +02:00
Guido Schmitz 85dda68524 Add integration_type to devolo integrations (#80695) 2022-10-22 15:55:23 +02:00
epenet 10dbef80ae Add myself as code owner to util and const (#80664) 2022-10-22 15:07:43 +02:00
Maciej Bieniek b6b36861d9 Add integration_type field for a few integrations (#80767) 2022-10-22 14:38:08 +02:00
Maciej Bieniek 9fa5c5c576 Remove myself from Xiaomi Miio code owner list (#80768) 2022-10-22 12:36:52 +02:00
Shay Levy 228d491216 Fix Shelly entry unload and add tests for init (#80760) 2022-10-22 09:00:35 +02:00
kpine f35af09429 Update zwave_js.refresh_value service example (#80764) 2022-10-22 08:27:36 +02:00
Paulus Schoutsen 2ef14d60f3 Update pending message error (#80763) 2022-10-21 22:47:25 -04:00
TheJulianJES 00b0fa6cdf Add Philips Hue motion sensor config entities to ZHA (#79923)
* Add Hue trigger LED config switch

* Add Hue sensitivity config select

* Use existing consts for channel names

* Add friendly names to config entities

* Follow HA capitalization conventions

* Move Hue motion sensor check to a helper method

* Move helper method to a new helpers file in channels folder
2022-10-21 20:59:51 -04:00
TheJulianJES 5eb69f38aa Add "power outage memory" config entity to Xiaomi EU plugs to ZHA (#80444) 2022-10-21 20:57:50 -04:00
TheJulianJES f4f7122c66 Add "power on state" config entity for Tuya plugs to ZHA (#80486)
* Add "power on state" config entity for Tuya plugs to ZHA

* Remove TS004F from models, as it doesn't support power-on-state
2022-10-21 20:56:49 -04:00
Paulus Schoutsen e38d93ee93 Remove unused keys from ultraloq (#80762) 2022-10-21 20:56:20 -04:00
GitHub Action 5a77c8f96f [ci skip] Translation update 2022-10-22 00:35:23 +00:00
Bram Kragten 1ac2d4ae74 Update frontend to 20221021.0 (#80751) 2022-10-21 20:29:28 -04:00
Paulus Schoutsen 43d43689f7 Add ultraloq virtual integration (#80755) 2022-10-21 20:29:01 -04:00
Paulus Schoutsen 76dbd017a7 Conditionally include config flow and iot_class when relevant (#80756) 2022-10-21 20:27:59 -04:00
Marc Mueller 7714ce7235 Update pylint to 2.15.5 (#80759) 2022-10-22 00:07:23 +02:00
kevdliu da099532fe Load ecobee notify platform via discovery (#78558)
* Fix ecobee notify platform KeyError

* set up notify platform via discovery

* address comments

* fix isort

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-21 23:19:26 +02:00
René Klomp f21fabba17 Bump pysma to 0.7.1 (#80601)
* Bump pysma to 0.7.0

* Bump pysma to 0.7.1

* Fix test
2022-10-21 22:54:42 +02:00
starkillerOG 8974657ba9 Fix Goodwe spinlock (#80624)
* fix spinlock

* Add debug log

* fix styling
2022-10-21 22:50:00 +02:00
J. Nick Koston 8dc0846d98 Bump qingping-ble to 0.8.2 to handle door left open (#80748)
fixes #78439
2022-10-21 22:31:45 +02:00
Aaron Bach e40db797c5 Remove redundant async_update for OpenUV entities (#80735) 2022-10-21 14:08:37 -06:00
J. Nick Koston 91c5aac8ba Add homekit notifications to the list of allowed apple bluetooth start bytes (#80733) 2022-10-21 13:54:02 -05:00
javicalle b8c574e9ab Add _TZE200_kds0pmmv to ZHA ZONNSMARTThermostat (#80746)
Add `_TZE200_kds0pmmv` to `ZONNSMARTThermostat`

Related to: https://github.com/zigpy/zha-device-handlers/pull/1843
2022-10-21 14:53:03 -04:00
J. Nick Koston 9c8a919e3f Remove system_log missing format arg test (#80739) 2022-10-21 14:49:39 -04:00
J. Nick Koston 611194ddd9 Fix zha LogEntry call (#80737)
The signature for LogEntry changed in #80645 to drop the
unused argument
2022-10-21 12:17:21 -05:00
starkillerOG a2080492de Remove Xiaomi Miio YAML import (#78995)
* Deprecate YAML import

* Add logging for unexpected errors

* remove unused import

* fix tests

* unused import

* fix tests

* fix snake_case

* Do not add to standard key string
2022-10-21 18:07:49 +02:00
Rami Mosleh 3aa24afad8 Retry setup in case of empty response from Pushover api (#80602)
Retry setup in case of empty response
2022-10-21 17:52:02 +02:00
Kevin Stillhammer c70614fd7c Move default options to config_flow for waze_travel_time (#80681)
Move default options to config_flow

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-10-21 08:02:41 -07:00
J. Nick Koston fe67703e13 Log invalid messages instead of raising in system_log (#80645) 2022-10-21 10:52:03 -04:00
Allen Porter 69dab4acfe Reduce unnecessary alarm firing to speed up calendar trigger test (#80732) 2022-10-21 10:47:37 -04:00
Franck Nijhof 1913804755 Small typing improvements for Plugwise (#80722) 2022-10-21 10:47:04 -04:00
Phil Bruckner f311c03741 Increase life360 timeout (#80692) 2022-10-21 10:41:34 -04:00
uvjustin 3b78df07de Use empty_moov in stream recorder (#80726) 2022-10-21 22:34:03 +08:00
Timm Schäuble e6892a613e Bump simplepush to 2.1.1 (#80608)
* Update to new library version

* Remove test for removed send_encrypted function

* Bump simplepush to 2.1.1
2022-10-21 16:13:46 +02:00
Pascal Vizeli 319d35626a Remove building wheels for face detection (#80728) 2022-10-21 14:27:50 +02:00
Franck Nijhof d42fde63f8 Update sentry-sdk to 1.10.0 (#80721) 2022-10-21 13:52:29 +02:00
Franck Nijhof 3a92123ac6 Update home-assistant/wheels to 2022.10.1 (#80723) 2022-10-21 13:08:19 +02:00
Fredrik Erlandsson 09eff3c242 Add Bluesound unique id (#80559)
* add unique_id & device_info

* remove broken image

* use a combination of mac and port (for multizone devices)

* use the typed dataclass

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Don't use get

* fix device_info

* remove device_info

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
2022-10-21 12:27:31 +02:00
Jan Bouwhuis 5f27e2fe01 Improve typing hints MQTT __init__ (#80674)
* Improve typing __init__

* Follow up suggestions
2022-10-21 12:25:21 +02:00
Guido Schmitz 78f71c46da Add iot_standards to devolo brand (#80332) 2022-10-21 11:25:35 +02:00
Allen Porter 9318d833a4 Streamline calendar dataclass API/attribute conversions (#79598)
* Streamline calendar dataclass API/attribute conversions

* Fix attribute conversions
2022-10-21 11:03:25 +02:00
Allen Porter d1d218444b Improve calendar trigger test quality (#79451)
Improve calendar test quality
2022-10-21 10:56:17 +02:00
Ryan Miguel 4abe5aec6c Fix ZeroDivisionError for Fritz!Smarthome electric current sensor (#80682)
Fixes ZeroDivisionError for fritzbox sensor. Fixes #80618.
2022-10-21 10:07:45 +02:00
Bouwe Westerdijk 9cd2b83422 Add entity_registry_enabled_default and missing EntityCategories in Plugwise (#80629) 2022-10-21 10:04:16 +02:00
Dusan Cervenka bce273660d Fix nextcloud 'ncm' referenced before assignment (#80711)
* #80673 Fix 'ncm' referenced before assignmen

 UnboundLocalError: local variable 'ncm' referenced before assignmen

Signed-off-by: Dusan Cervenka <cervenka.dusan@gmail.com>

* #80673 changes based on review

Signed-off-by: Dusan Cervenka <cervenka.dusan@gmail.com>

* Changes made based on review

Signed-off-by: Dusan Cervenka <cervenka.dusan@gmail.com>

Signed-off-by: Dusan Cervenka <cervenka.dusan@gmail.com>
2022-10-21 08:26:14 +02:00
Franck Nijhof bb287dd0ed Integrations v2.1: Virtual integrations (#80613) 2022-10-20 23:09:06 -04:00
Tobias Sauerwein 6c23de94e1 Fix error when setting Netatmo climate preset (#80700) 2022-10-20 23:06:49 -04:00
Tobias Sauerwein 57bf130837 Bump pyatmo to 7.2.0 (#80698) 2022-10-20 23:06:33 -04:00
Kevin Stillhammer b35cfe711a Move default option handling to config_flow for google_travel_time (#80607)
Move default option handling to config_flow
2022-10-20 19:32:45 -07:00
Aaron Bach 60b3d6816b Replace custom OpenUV data object with coordinators (#80705)
* Replace custom OpenUV data object with coordinators

* Typing

* Code review
2022-10-20 19:37:20 -06:00
Chris Talkington 245c13e6ed Add diagnostics to jellyfin (#80651) 2022-10-20 20:02:40 -05:00
J. Nick Koston 90f6924808 Bump zeroconf to 0.39.2 (#80699)
python 3.11 support & performance improvements

changelog: https://github.com/jstasiak/python-zeroconf/compare/0.39.1...0.39.2
2022-10-20 20:32:32 -04:00
GitHub Action 0199e0a756 [ci skip] Translation update 2022-10-21 00:30:37 +00:00
luar123 40d4159faf Bump snapcast to 2.3.0 (#80688) 2022-10-20 14:25:21 -06:00
J. Nick Koston 03362bec1c Defer bluetooth scanner watchdog restart if one is already in progress (#80679) 2022-10-20 13:56:20 -05:00
J. Nick Koston 5589edd814 Fix bluetooth calls from automations in esphome (#80683) 2022-10-20 14:35:38 -04:00
Robert Svensson 92eaa539b6 Simplify mocking UniFi websocket (#80652)
* Simplify mocking UniFi websocket

* Fix one more
2022-10-20 19:37:13 +02:00
Paulus Schoutsen 5cb8749ae3 Fix custom components not working with integration descriptions (#80686) 2022-10-20 13:25:24 -04:00
Franck Nijhof e510dd64f1 Pin uamqp==1.6.0 (#80678) 2022-10-20 18:30:00 +02:00
Paulus Schoutsen a20ac2b246 Remove balloob as code owner Ring (#80680) 2022-10-20 12:09:16 -04:00
Kevin Stillhammer 8dd2d6f825 Remove deprecated yaml import for waze_travel_time (#80669)
Remove deprecated yaml import

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-10-20 08:17:21 -07:00
J. Nick Koston da14acb3b6 Speed up restart when bluetooth adapter is in a failed state (#80640) 2022-10-20 16:35:09 +02:00
epenet 884f8d6e2c Adjust device classes in tasmota (#79282)
* Adjust device classes in tasmota

* Remove incorrect device class
2022-10-20 15:58:22 +02:00
epenet eee1ede5bb Add websocket type hints in lovelace (#80537) 2022-10-20 15:57:43 +02:00
Michał Huryn 3f8362fe1c Refactor blebox sensors (#80671)
refactor: sensors, entity description pick moved to async_setup_entry, removed redundant dataclass
2022-10-20 15:51:29 +02:00
epenet e84e5f134e Use US_CUSTOMARY_SYSTEM in tests (#80658)
* Use US_CUSTOMARY_SYSTEM in tests

* Don't update test_unit_system
2022-10-20 15:42:23 +02:00
Michał Huryn 4e4682d2e0 Add blebox binary_sensor platform (#79535)
* Add binary_sensor platform, with test.

* Applied suggestions by @epenet

* refactor: as @epenet suggested, passing entity_description to init

* Update homeassistant/components/blebox/binary_sensor.py

@epenet suggestion, moved refactored logic of create_blebox_entities into BleBoxBinarySensorEntity init

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* refactor: as @epenet class selector and entity creation moved to binary_sensor

* refactor: list comprehension in entity list setup in binary sensor

* Update homeassistant/components/blebox/binary_sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-20 14:35:28 +02:00
Shay Levy aea7a9af18 Bump aioshelly to 4.0.0 (#80423)
* Bump aioshelly to 4.0.0

* Remove leftover

* Fix number platform

* Set last_update_success to false upon failure in number and climate

* Set last_update_success upon failurie in entity
2022-10-20 15:08:48 +03:00
epenet 2c43606922 Add websocket type hints in components (#80654)
* Add websocket type hints in components

* Adjust

* Apply suggestion

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-10-20 13:41:14 +02:00
Avishay ae7eb9cef9 Add mode control for Modbus climate entities (#73906)
* Add support for Modbus HVAC control registers
2022-10-20 13:15:30 +02:00
epenet eb93372cd6 Improve type hint in entity_component (#80596)
Imrpove type hint in entity_component
2022-10-20 12:38:22 +02:00
Bram Kragten 454394a242 Update frontend to 20221020.0 (#80661) 2022-10-20 12:29:51 +02:00
epenet b23a66d776 Add websocket type hints in entity_registry (#80657)
* Add websocket type hints in entity_registry

* Adjust websocket_list_entities

* Fix update

* Fix websocket_update_entity

* Apply suggestion

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Apply suggestion

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-20 12:20:39 +02:00
Jan Bouwhuis cce4485fb7 Add missed write state request for MQTT cover (#80540)
Missed write state request for MQTT cover
2022-10-20 11:22:30 +02:00
Robert Hillis 41faa017cd Use custom attributes description in Sonarr (#79845)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-10-20 10:44:17 +02:00
epenet 8a1cc05e0c Enforce kwargs in unit system initialisation (#80620)
* Enforce kwargs in unit system initialisation

* Fix tests

* Sort kwargs in unit_system
2022-10-20 10:43:32 +02:00
Marc Mueller d78c2a31a1 Update pylint to 2.15.4 (#80612) 2022-10-20 08:59:06 +02:00
J. Nick Koston 540d959dd2 Bump bluetooth-auto-recovery to 0.3.6 (#80643)
* Bump bluetooth-auto-recovery to 0.3.5

changelog: https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v0.3.4...v0.3.5

* bump again for more rfkill fixes
2022-10-20 07:13:41 +02:00
Chris Talkington ce35812937 Address jellyfin sensor feedback (#80222) 2022-10-19 20:37:18 -05:00
GitHub Action 265e2741e7 [ci skip] Translation update 2022-10-20 00:32:39 +00:00
J. Nick Koston 2c36ee412a Bump dbus-fast to 1.47.0 (#80633) 2022-10-19 16:52:19 -05:00
Robert Svensson d0ed4b1ff2 Replace constants with enums in UniFi (#80637)
Replace constants with enums
Fix bad imports
2022-10-20 00:10:01 +03:00
uvjustin eb141a532c Bump ha-av to v10.0.0 (#80514) 2022-10-20 00:06:49 +03:00
epenet bdfead9095 Fix invalid warning in scrape (#80599) 2022-10-19 23:02:11 +02:00
rozie bad840e464 Fix solaredge missing data value (#80321)
* Fix issue #80263: use get to fetch dict value

* use None instead -1 for unknown value

* Update homeassistant/components/solaredge/coordinator.py

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Add guards for not multipling None

* Missing if added

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-19 22:48:39 +02:00
Robert Svensson 60a208a860 Add integration_type to Axis, deCONZ and UniFi manifest (#80630) 2022-10-19 21:56:19 +02:00
Erik Montnemery bd0838cd49 Tweak MariaDB CI job (#80631) 2022-10-19 21:54:07 +02:00
Marc Mueller be3a022810 Limit recorder pytest job [ci] (#80625)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-19 20:40:32 +02:00
Robert Svensson 04cdcad7f8 Expose UniFi PoE ports as individual switches (#80566)
* Add simple PoE control switches

* Add basic tests

* Complete testing

* Dont use port.up as part of available

* Bump aiounifi to v40
2022-10-19 19:54:40 +02:00
epenet 2b2275dfb3 Use US_CUSTOMARY_SYSTEM in components (#80623) 2022-10-19 18:54:50 +02:00
epenet 374d46ec09 Improve type hints in blebox (#80511)
* Add generics to blebox

* Remove walrus

* Move logic into each platform

* Code style

* Apply suggestion
2022-10-19 17:49:40 +02:00
Franck Nijhof 6ea6782d23 Add buttons to dismiss notifications in LaMetric (#80605) 2022-10-19 17:46:54 +02:00
epenet 05ef02bff6 Add precipitation_intensity sensor device class (#79779) 2022-10-19 16:04:11 +02:00
epenet 62b0735822 Adjust precipitation units in components (#79783)
* Adjust precipitation units in components

* Don't update darksky
2022-10-19 15:09:05 +02:00
epenet 9afb4c6c9e Adjust precipitation units (#79780)
* Adjust precipitation units

* Use PRECIPITATION_INTENSITY

* Revert isy994

* Adjust SensorDeviceClass docstring

* Adjust comment
2022-10-19 14:35:49 +02:00
epenet a70f9b8995 Add type hints to rest integration (#80546) 2022-10-19 14:35:23 +02:00
epenet dc2a87b9ae Fix invalid type hint in scrape (#80543) 2022-10-19 13:49:01 +02:00
epenet 67d1dde69f Rename IMPERIAL_SYSTEM to US_CUSTOMARY_SYSTEM (#80253)
* Rename IMPERIAL_SYSTEM

* Deprecate is_metric property and adjust tests

* Adjust unit_system config validation

* Add yaml tests

* Add tests for private name

* Fix incorrect rebase

* Adjust docstring

* Add store migration

* Update unit_system.py

* Minimise test tweaks

* Fix tests

* Add conversion to migration

* Rename new key and adjust tests

* Adjust websocket_detect_config

* Move original_unit_system tracking to subclass
2022-10-19 13:31:08 +02:00
Erik Montnemery f4951a4f31 Add CI job which runs recorder tests on MariaDB (#80586)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-19 13:04:28 +02:00
Franck Nijhof c4bbc439a5 Integrations v2.1: Differentiating hubs, devices and services (#80524)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-10-19 12:41:43 +02:00
Bouwe Westerdijk 0c8884fd51 Add sensor, selector and switch for Plugwise Anna + Loria combination (#80558)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-19 11:26:27 +02:00
Erik Montnemery eca21ceff0 Make all datetime columns in recorder DB µs precision (#80584) 2022-10-19 10:26:17 +02:00
Erik Montnemery d1facab71c Add guard in recorder retry function (#80585) 2022-10-19 10:05:55 +02:00
Erik Montnemery 31a787558f Ensure recorder test fixture is setup before hass fixture (#80528)
* Ensure recorder test fixture is setup before hass fixture

* Adjust more tests
2022-10-19 07:58:47 +02:00
epenet c0be1d9fad Add websocket type hints in blueprint (#80531) 2022-10-18 22:23:17 -04:00
epenet 971ac015e7 Add websocket type hints in config (#80532) 2022-10-18 22:15:55 -04:00
epenet 60640b4436 Add websocket type hints in components (#80533) 2022-10-18 22:15:23 -04:00
epenet eca45f9dd0 Add websocket type hints in conversation (#80535) 2022-10-18 22:08:06 -04:00
Franck Nijhof e3919babb2 Add chart service to LaMetric (#80554) 2022-10-18 19:36:19 -06:00
epenet ddba653158 Add new codeowners to scrape (#80569) 2022-10-18 19:29:11 -06:00
GitHub Action a04c9892e7 [ci skip] Translation update 2022-10-19 00:35:27 +00:00
Franck Nijhof 86f9b8231f Update demetriek to 0.4.0 (#80567) 2022-10-19 00:51:36 +03:00
Ivan Puddu 8db416f1d6 Skip webostv trigger validation before the domain is setup (#80372)
* Skip trigger validation before the domain is setup

* Included None as return type

* Keep function signature intact. Check at the source
2022-10-18 23:53:34 +03:00
Patrick ZAJDA a717ea8afc Migrate Broadlink to new entity naming style (#80187)
* Migrate Broadlink to new entity naming style

Signed-off-by: Patrick ZAJDA <patrick@zajda.fr>

* Add some tests

Signed-off-by: Patrick ZAJDA <patrick@zajda.fr>

Signed-off-by: Patrick ZAJDA <patrick@zajda.fr>
2022-10-18 22:09:23 +02:00
J. Nick Koston 551b3374f1 Bump aiohomekit to 2.1.1 (#80560)
fixes #80455

changelog: https://github.com/Jc2k/aiohomekit/compare/2.1.0...2.1.1
2022-10-18 22:57:32 +03:00
Maciej Bieniek 1b130eb271 Save last target temperature in Shelly climate platform (#80561)
Save last target temp
2022-10-18 22:55:50 +03:00
Shay Levy 8e9457d808 Add Shelly support for sleeping Gen2 devices (#79889) 2022-10-18 22:42:22 +03:00
Shay Levy 98ca28ab1c Bump aioswitcher to 3.1.0 (#80534) 2022-10-18 19:19:04 +02:00
J. Nick Koston a708fc9984 Bump bleak-retry-connector to 2.3.1 (#80549) 2022-10-18 11:48:52 -05:00
Aaron Bach 78e66b6cbe Add diagnostics to Enphase Envoy (#79950)
* Streamline Enphase Envoy config flow tests

* Don't test data results using constants

* Add diagnostics to Enphase Envoy

* Use whole config entry

* Redact serial number

* One call
2022-10-18 10:25:07 -06:00
Aaron Bach 414d478d3e Ensure Enphase Envoy test fixtures aren't session-scoped (#80499)
* Ensure Enphase Envoy test fixtures aren't session-scoped

* Code review
2022-10-18 10:24:49 -06:00
J. Nick Koston 1700da0ed3 Reduce chance of bluetooth devices going unavailable when adapter stops responding (#80545) 2022-10-18 11:23:15 -05:00
Aaron Bach 1cf801afbc Remove unnecessary session scoping to several test fixtures (#80500)
Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-10-18 18:06:23 +02:00
niobos 8a80ea2ed8 Bump velbus-aio to 2022.10.4 (#80510)
Co-authored-by: Niels Laukens <niels@dest-unreach.be>
2022-10-18 18:03:30 +02:00
epenet 599d61a4da Fix payload in rest (#80544) 2022-10-18 17:15:08 +02:00
epenet 5442d6af01 Improve msg type hint in websocket commands (#80530) 2022-10-18 16:41:17 +02:00
epenet 76bd8c431b Use _attr_attribution in suez_water (#80527) 2022-10-18 14:10:26 +02:00
epenet 62690759d4 Move attribution to standalone attribute [t-z] (#80521) 2022-10-18 13:33:36 +02:00
epenet c37e4b870f Move attribution to standalone attribute [r-s] (#80520)
* Move attribution to standalone attribute [r-s]

* Fix test
2022-10-18 13:33:20 +02:00
Marc Mueller 6b56336e52 Revert BSBLAN name change to fix hassfest (#80525) 2022-10-18 13:16:27 +02:00
epenet 6b256bab22 Move attribution to standalone attribute [m-q] (#80518) 2022-10-18 12:49:59 +02:00
Willem-Jan van Rootselaar 1fe397f7d7 Update bsblan integration (#67399)
* Update bsblan integration

Update the integration to current standards

* removed unused code

update coverage

* some cleanup

* fix conflicts due upstream changes

* fix prettier json files

* fix remove comment code

* use dataclass instead of tuple

* fix spelling

* Set as class attribute

main entity doesn't need to give own name

* fix requirements
2022-10-18 12:06:51 +02:00
jjlawren c1213857ce Fix Plex reauth with multiple available servers (#80508) 2022-10-18 11:51:43 +02:00
epenet 5d207f77ae Move attribution to standalone attribute [h-l] (#80516) 2022-10-18 11:18:22 +02:00
Christopher Bailey 9ff077e225 Bump pyunifiprotect to 4.3.4 (#80496) 2022-10-18 11:43:58 +03:00
Franck Nijhof 086a1bdace Update yamllint to 1.28.0 (#80497) 2022-10-18 11:42:57 +03:00
Franck Nijhof 503b765108 Update freezegun to 1.2.2 (#80498) 2022-10-18 11:42:01 +03:00
Aaron Bach cee8f2cabb Don't add RainMachine restriction switches if underlying data is missing (#80502) 2022-10-18 11:40:49 +03:00
Franck Nijhof b09e95431c Update sentry-sdk to 1.9.10 (#80474) 2022-10-18 10:36:32 +02:00
Nippey 0e1fe4eba5 Modbus: Add support for Holding Registers to Binary Sensor (#80460)
Update handling of binary sensors to support reading from holding registers (command 0x03).
2022-10-18 10:31:08 +02:00
Raman Gupta d4c28e04e4 Reduce missed coverage in zwave_js (#79571)
* Reduce missed coverage in zwave_js.climate and cover

* Add switch platform coverage

* Add select platform

* Add lock platform

* Remove one line of coverage from number platform

* update docstring
2022-10-18 10:06:29 +02:00
epenet c717fd19de Move attribution to standalone attribute [e-g] (#80513) 2022-10-18 10:04:54 +02:00
Franck Nijhof cb530e398c Update sqlalchemy to 1.4.42 (#80495) 2022-10-17 23:30:21 -04:00
J. Nick Koston f70f972d88 Fix connectable Bluetooth devices not being seen if the nearest scanner is non-connectable (#80388)
If we saw the non-connectable scanner advertisement first we would reject
the connectable scanner advertisement because it had worse signal strength.

In this case we need to check both
2022-10-17 21:13:26 -04:00
uvjustin d38d21ab3a Fix stream recorder with orientation transforms (#80370)
Find moov instead of using fixed location
2022-10-17 21:12:45 -04:00
GitHub Action 8d3de53592 [ci skip] Translation update 2022-10-18 00:36:30 +00:00
Robert Svensson 352014fc95 Bump deconz dependency to v105 (#80492) 2022-10-18 00:02:04 +02:00
David F. Mulcahey 6323021bfc Bump ZHA quirks to 0.0.83 (#80489) 2022-10-17 16:54:37 -04:00
Erik Montnemery 416aad32cc Don't mock out migration in recorder tests (#80480) 2022-10-17 22:17:08 +02:00
Franck Nijhof a8f1cc0d33 Remove unneeded guards from (async_)add_entities call (#80471) 2022-10-17 21:11:58 +02:00
J. Nick Koston ebf73f41ba Bump qingping-ble to 0.8.1 (#80473) 2022-10-17 20:41:57 +02:00
Sören d3f39e776b Fix typo in LED BLE documentation URL (#80479) 2022-10-17 20:27:08 +02:00
Aaron Bach 72f4665d33 Streamline Enphase Envoy config flow tests (#79914)
* Streamline Enphase Envoy config flow tests

* Don't test data results using constants

* Fix data issues

* Fixtures

* Simplify mock creation

* Docstrings
2022-10-17 20:29:10 +03:00
kingy444 5ead3b2605 Powerview Add Battery Option Selection (#80166)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-17 11:30:33 -05:00
Franck Nijhof 326a1b21ca Add message service to LaMetric (#80448) 2022-10-17 16:14:20 +02:00
Jose Ramirez f730f96024 Convert darksky unittest tests to pytest (#79868)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-17 16:09:37 +02:00
Marcus R. Brown c0fc23f794 Update pychannels to 1.2.3 (#80409) 2022-10-17 15:36:01 +02:00
epenet a26b3e7a34 Refactor access to ConfigStore (#80467)
* Refactore access to ConfigStore

* Make tests async

* Reset config during test
2022-10-17 13:59:04 +02:00
epenet 9680cd267f Cleanup sensor private attributes (#80463) 2022-10-17 13:17:51 +02:00
Erik Montnemery 627bd82766 Simplify parsing of script and automation config (#80465) 2022-10-17 11:42:17 +02:00
J. Nick Koston b6a59b282f Bump qingping-ble to 0.8.0 (#80443)
Adds support for the Temp RH Pro E model
2022-10-17 11:04:05 +02:00
Florent Thoumie abec592a24 Update to iaqualink 0.5.0 (#80304)
* Update to iaqualink 0.5.0.

* Boolean conditional style fix

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Fix black formatting

* Update iaqualink tests after update to 0.5.x

* Remove debug print statements

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-17 10:14:29 +02:00
epenet bbb0b2a0e1 Refactor the core config store (#80457)
* Add helper for config Store

* Use internal class
2022-10-17 10:13:53 +02:00
Sean Vig d49a223a02 Fix updating Amcrest binary sensors (#80365)
* Fix updating Amcrest binary sensors

As detailed in https://bugs.python.org/issue32113, a generator
expression cannot be used with asynchronous components, even that the
resulting elements of the generator are normal objects.  Manually
iterate over the event codes and check if the events have happened.
Escape early on the first event that is triggered such that this is
functionally equivalent to using `any`.

* Update homeassistant/components/amcrest/binary_sensor.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-17 10:13:11 +02:00
Jan Jedelský dfd3476cff Handle ReadTimeout during wolflink setup (#78135)
* Handle ReadTimeout during wolflink setup

* Reorder imports

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>

* Reorder exceptions

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>

* Use RequestError instead of ConnectError, ReadTimeout, and ConnectTimeout

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>
2022-10-17 09:42:20 +02:00
Joakim Plate 551fb44975 Stop coordinator before connection in nibe_heatpump (#80396)
Stop coordinator in nibe_heatpump
2022-10-16 22:06:48 -04:00
Allen Porter d537968517 Bump google-cloud-pubsub to 2.13.10 (#80433) 2022-10-16 22:05:56 -04:00
GitHub Action 388328adba [ci skip] Translation update 2022-10-17 00:36:39 +00:00
J. Nick Koston 1d16e614b8 Bump pySwitchbot to 0.20.2 (#80435)
* Bump pySwitchbot to 0.20.1

fixes #80427

* bump again to fix contact timeout sensor
2022-10-16 20:09:56 -04:00
Jo De Boeck ed4b5ee9d8 Bump androidtv dependency to 0.0.69 (#80407)
Bump dependency to version 0.0.69

Fixes: #69723
Signed-off-by: Jo De Boeck <deboeck.jo@gmail.com>

Signed-off-by: Jo De Boeck <deboeck.jo@gmail.com>
2022-10-16 20:09:28 -04:00
TheJulianJES b4a203c3c7 Add friendly name to ZHA identify button (#80446) 2022-10-16 19:57:24 -04:00
Joakim Plate 9eb4faf037 Fire bluetooth listener for all matching devices (#80440)
* Fire listener for all matching devices

* Add test case for seen device

* Avoid looping all data if we have address match

* Initialize to empty list
2022-10-16 21:49:12 +02:00
Allen Porter e71bd2c20b Fix google calendar test to match API behavior (#80436) 2022-10-16 14:45:57 -04:00
Allen Porter a7f33535c7 Fix google calendar event transparency filter (#80438) 2022-10-16 14:45:27 -04:00
Bouwe Westerdijk f5666641ce Bump plugwise to v0.25.2 and adapt climate (#80347)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-16 20:32:38 +02:00
Allen Porter 1973f00f6b Bump gcal_sync to 1.1.0 (#80431) 2022-10-16 20:40:55 +03:00
Kevin Stillhammer ef90fe9aee Display and log google_travel_time errors (#77604)
* Display and log google_travel_time errors

* Rename is_valid_config_entry to validate_config_entry

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-10-16 10:06:53 -07:00
Joakim Plate 5d09fe8dc1 Avoid logging tracebacks for auth failures in philips js (#80381)
Avoid logging tracebacks for auth failures
2022-10-16 18:13:32 +03:00
mvn23 fa24529d98 Bump pyotgw to 2.1.1 (#80421) 2022-10-16 18:09:37 +03:00
J. Nick Koston 4bfadb6745 Bump aiohomekit to 2.1.0 for bleak 0.19.0 (#80426)
changelog: https://github.com/Jc2k/aiohomekit/compare/2.0.2...2.1.0
2022-10-16 18:08:44 +03:00
kingy444 bf6efc7589 Powerview sensors updates (#80417) 2022-10-16 09:05:53 -05:00
J. Nick Koston bbe63bca47 Bump pySwitchbot to 0.20.0 for bleak 0.19 changes (#80389) 2022-10-16 15:16:02 +03:00
J. Nick Koston 40600991b3 Handle TimeoutError during HKC setup attempts (#80399)
closes https://github.com/Jc2k/aiohomekit/issues/188
2022-10-16 15:14:15 +03:00
J. Nick Koston 29e110d416 Update led-ble to 1.0.0 for bleak 0.19 (#80403)
* Update led-ble for bleak 0.19

* bump version
2022-10-16 15:12:52 +03:00
J. Nick Koston 86c6caabb2 Bump yalexs_ble to 1.9.4 for bleak 0.19.0 (#80406)
bump again for debug log fix
2022-10-16 15:05:56 +03:00
Marc Mueller 8d4c32e106 Update pip constraint to 22.4 (#80383) 2022-10-16 12:01:11 +02:00
Benjamin Richter e1cf261379 Allow fints config as fallback for account type (#75680) 2022-10-15 22:01:54 -04:00
GitHub Action 3c48ce9ee7 [ci skip] Translation update 2022-10-16 00:44:12 +00:00
J. Nick Koston 79e0725359 Bump aiohomekit to 2.0.2 (#80402) 2022-10-15 14:08:26 -10:00
J. Nick Koston 3b31330882 Bump bleak-retry-connector to 2.3.0 (#80397) 2022-10-15 14:08:15 -10:00
Joakim Plate 7d69e24fc3 Bump fjaråskupan to 2.2.0 (#80401) 2022-10-16 01:46:55 +02:00
definitio 67bb6ebd13 Fix "Unknown power_off command" for Samsung H6410 (#80386) 2022-10-15 21:29:15 +01:00
Jeef 5efc706473 Fix Intellifire UDP timeout (#80204) 2022-10-15 10:09:00 -10:00
Jeef ff2d762f55 Intellifire - Number Entity - Flame Height Control (#79901)
* Adding flame height control

* oops

* addressing comments

* fix coverage file

* addressing PR comments
2022-10-15 12:43:47 -06:00
Steven Looman 731f618028 Make home assistant discoverable via UPnP/SSDP (#79820) 2022-10-15 14:00:46 -04:00
J. Nick Koston d12cbab6c4 Bump bleak to 0.19.0 (#80349) 2022-10-15 13:57:23 -04:00
epenet 3460e0b074 Add type hints to aqualogic (#80328) 2022-10-15 15:38:47 +02:00
Shay Levy e1520a0d14 Add support for Shelly Plus Addon sensors (#79954) 2022-10-15 12:17:53 +03:00
Shay Levy eaeee96d75 Fix Shelly EM negative power factor (#80348) 2022-10-15 12:15:28 +03:00
GitHub Action 2242d3c234 [ci skip] Translation update 2022-10-15 00:33:41 +00:00
Franck Nijhof 9b06b572d0 Mark LaMetric as Platinum integration (#80360) 2022-10-15 00:48:44 +02:00
Franck Nijhof 7bd9ce72f7 Add reauth support to LaMetric (#80355)
* Add reauth support to LaMetric

* Adjust docblock
2022-10-14 23:54:14 +02:00
J. Nick Koston 3b33e0d832 Add support for restoring HomeKit IIDs (#79913) 2022-10-14 09:58:09 -10:00
Franck Nijhof 20f1f8aabb Upgrade demetriek to 0.3.0 (#80350) 2022-10-14 21:26:55 +02:00
J. Nick Koston 0c76e3a97e Automatically determine the advertising interval for bluetooth devices (#79669) 2022-10-14 14:39:18 -04:00
Charles Garwood a68bd8df6f Add start_application service to fully_kiosk integration (#80226) 2022-10-14 19:21:58 +02:00
Franck Nijhof e3af2cb6b8 Add some typing to common test helpers (#80337) 2022-10-14 18:23:49 +02:00
Erik Montnemery 4ebf9df901 Unconditionally call DomainBlueprints.populate (#80336) 2022-10-14 12:03:43 -04:00
taiyeoguns e01572bc44 Convert graphite tests to pytest (#79807)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-14 17:59:09 +02:00
Franck Nijhof 6aa47e871d Little cleanup of Alert tests (#80333) 2022-10-14 17:11:30 +02:00
Austin Mroczek 7e1a7bed69 Bump total_connect_client to 2022.10 (#80331) 2022-10-14 17:11:09 +02:00
epenet bff5d1123f Deprecate CONF_UNIT_SYSTEM_*** constants (#80320)
* Deprecate CONF_UNIT_SYSTEM_*** constants

* Adjust pylint plugin

* Add tests

* Remove single-use function

* Revert logic change

* Revert "Revert logic change"

This reverts commit 60959a0050.

* Tweak again
2022-10-14 16:50:04 +02:00
Erik Montnemery 284893d942 Fix reload of automation and scripts when blueprint changed (#80322) 2022-10-14 16:43:09 +02:00
mnorrsken d5e26326dc Bump pyTibber to 0.25.4 (#80316) 2022-10-14 16:03:48 +02:00
Franck Nijhof 40bfc61ebd Revert "Add Mazda brand" (#80314) 2022-10-14 15:48:10 +02:00
Erik Montnemery 81f40afd80 Only reload modified automations (#80282)
* Only reload modified automations

* Update tests

* Adjust spelling

* Improve efficiency of matching automations and configurations

* Reload automations without an alias if they have been moved

* Add test

* Add test

* Add test
2022-10-14 15:28:03 +02:00
Franck Nijhof dd266b7119 Remove elevation warning from sun (#80239) 2022-10-14 15:23:44 +02:00
epenet 4c3097a157 Use local UNIT constants in here_travel_time (#80324)
* Use local UNIT constants in here_travel_time

* Fix test
2022-10-14 15:16:03 +02:00
epenet 7d56ae772e Use local UNIT constants in waze_travel_time (#80325) 2022-10-14 15:11:22 +02:00
Marvin Wichmann 2a887e6ed7 Update xknx to 1.2.0 (#80318) 2022-10-14 15:10:19 +02:00
Jean-François Paris 3840cbd012 Tag eafm sensors are measurement to collect long term stats (#80312) 2022-10-14 13:53:48 +01:00
epenet 70702f3377 Use local UNIT constants in geonetnz_volcano (#80323) 2022-10-14 14:53:04 +02:00
Erik Montnemery b42e26fbdd Use SupportedDialect enum in recorder (#80319) 2022-10-14 08:45:57 -04:00
David F. Mulcahey d75e449c52 Add ability to convert ZCL schemas to vol schemas to ZHA (#79908)
* try serializing cluster command schemas

* use min and max value from zigpy type

* different type assignments

* initial command execution changes

* cleanup

* cleanup and typing

* typing

* typing

* add tests

* mypy

* handle raw values too

* check for None responses

* make backwards compatible

* update yaml for svc change
2022-10-14 08:15:10 -04:00
epenet 6a757662e4 Deprecate is_metric property of unit system (#80313) 2022-10-14 13:44:18 +02:00
Marc Mueller a63c9e8fb9 Update python-typing-update to 0.5.0 (#80315) 2022-10-14 13:21:37 +02:00
Janick Bergeron f21a004aa9 Fix before sunrise OR after sunset condition (#76143)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
2022-10-14 13:11:10 +02:00
hesselonline a534c136a1 Fix wallbox jwt issue (#79948)
* Bump Wallbox package

* remove debug message

* Force update of auth token by emptying it first

* Force token refresh by emptying token
Improve exception handling

* include tests

* Update __init__.py

* Removed the clearing ot jwt token, issue is fixed by upstream fix in wallbox package.

* Catch connectionerror

* Update homeassistant/components/wallbox/__init__.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Run black

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-14 13:09:00 +02:00
epenet 8dc3ff72c6 Cleanup config deprecation warning (#80251) 2022-10-14 13:03:17 +02:00
epenet 0715b87934 Drop use of is_metric in nws (#80270) 2022-10-14 12:54:43 +02:00
epenet 336ea2e7d1 Drop use of is_metric in weather (#80272) 2022-10-14 12:53:56 +02:00
epenet 7b47f12f48 Drop use of is_metric in ecowitt (#80267) 2022-10-14 12:53:24 +02:00
epenet 4769ec8c76 Replace not is_metric with is IMPERIAL_SYSTEM (#80266) 2022-10-14 12:51:47 +02:00
epenet f502f8c931 Use attributes in coinbase sensor (#80086)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-14 12:35:06 +02:00
epenet 4c8f8c2e61 Adjust distance unit check in here travel time (#80243)
* Adjust distance unit check in here travel time

* Add tests

* Use system compare

* Use is not ==
2022-10-14 12:22:48 +02:00
epenet 02d0b8eef6 Adjust distance unit check in waze travel time (#80241)
* Adjust distance unit check in waze travel time

* Reduce size of PR

* Use system compare

* Use is not ==
2022-10-14 12:22:27 +02:00
epenet 1445e08090 Replace is_metric with is METRIC_SYSTEM (#80262) 2022-10-14 12:22:11 +02:00
epenet faeb663dfe Adjust distance unit check in geonetnz_quakes (#80236)
* Adjust length unit check in geonetnz_quakes

* Use system compare

* Use is not ==

* Apply suggestion

Co-authored-by: Erik Montnemery <erik@montnemery.com>

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-10-14 12:21:58 +02:00
epenet 689dcb02dd Adjust distance unit check in gdacs (#80235)
* Adjust length unit check in gdacs

* Use system compare

* Use is not ==

* Apply suggestion

Co-authored-by: Erik Montnemery <erik@montnemery.com>

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-10-14 12:21:38 +02:00
epenet a06bd04def Adjust get_distance_unit in mazda integration (#80233)
* Adjust get_distance_unit in mazda integration

* Use system compare with DistanceConverter

* Adjust rounding

* Use is not ==

* Reduce size of PR
2022-10-14 12:21:23 +02:00
epenet 3e0e845217 Adjust distance unit check in geonetnz_volcano (#80244)
* Adjust distance unit check in geonetnz_volcano

* Use system compare

* Use is not ==
2022-10-14 12:14:12 +02:00
epenet 0b7c84edbd Adjust distance unit check in google travel time (#80232)
* Cleanup unused option in google travel time

* Adjust tests

* Adjust to use local constant

* Tweak logic

* Reduce size of PR

* Add tests

* Use system compare

* Use is not ==

* Adjust to use local constant again
2022-10-14 12:13:47 +02:00
DanielV 849688f71f Add volvo on call device_info to group entities in one device per vehicle (#79329) 2022-10-14 12:11:53 +02:00
Tom Brien faef09d3d7 Add repair issue for Coinbase YAML (#80156) 2022-10-14 12:10:24 +02:00
epenet 4dd0c079d5 Deprecate name property of unit system (#80257) 2022-10-14 12:06:14 +02:00
Shay Levy d3840a04b5 Remove quality scale checkboxes from pull request template (#80298) 2022-10-14 11:00:30 +02:00
Lén 0f9703cd99 Add Heiwa as supported brand (#80242) 2022-10-14 10:19:32 +02:00
Dave T 1cc06cf83b Bump temperusb to 1.6.0 (#80296)
Co-authored-by: Dave T <davet2001@users.noreply.github.com>
2022-10-14 10:12:20 +02:00
Kevin Cathcart 6470a6b203 Update issue report link for installation type (#80300)
Update link for installation type
2022-10-14 09:48:45 +02:00
Erik Montnemery 2c206ad050 Fix flaky recorder test (#80246)
* Fix flaky recorder test

* Update tests/components/recorder/test_init.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-14 09:10:38 +02:00
J. Nick Koston d327355afc Bump HAP-python to fix pairing with iOS 16 (#80301)
Using the ha- fork until upstream can pickup and merge
pending PRs. The plan is to revert back to upstream
HAP-python when its back in sync

Fixes #79305 Fixes #79304
2022-10-14 08:51:27 +02:00
Erik Montnemery 2e261d5dc2 Allow specifying the target table when importing statistics (#80230)
Allow specifying the table when importing statistics
2022-10-14 08:32:19 +02:00
Geliras d9af274da3 Add edl21 sensors (#80214)
* Adding unhandled sensors

Adding unhandled sensors as mentioned here:
https://github.com/home-assistant/core/issues/78599
https://github.com/home-assistant/core/issues/64696

OBIS codes of EFR SGM-C4 from manual found at page 32:
https://www.mit-n.de/fileadmin/user_upload/Dateien/Messwesen/Messwesen_Strom/EFR-SGM-C4-Produkthandbuch.pdf

* Update sensor.py
2022-10-14 08:23:50 +02:00
J. Nick Koston 5b6e46e7b7 Fix nexia permanent hold when cool and heat temps are within 2 degrees (#80297) 2022-10-13 20:53:09 -04:00
GitHub Action 000e092096 [ci skip] Translation update 2022-10-14 00:37:00 +00:00
Marc Mueller be46702a53 Replace deprecated set-output commands [ci] (#80259) 2022-10-13 23:47:59 +02:00
J. Nick Koston 46c6043856 Bump dbus-fast to 1.45.0 (#80289)
significant performance improvements

https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.44.0...v1.45.0
2022-10-14 00:41:06 +03:00
Shay Levy 5a51738b2f Add Switcher runner support (#79430)
* Add Switcher runner support

* Retrigger docs check

* Review suggestions

* Move API strings to constants
2022-10-13 22:20:13 +01:00
Diogo Gomes 180b296426 IPMA Code quality improvement (#77771)
* merge upstream/dev

* remove comment

* coverage increase

* merge upstream/dev

* refactor

* wait for another PR

* remove left overs

* wait for next PR

* only remove on successful unload

Co-authored-by: Shay Levy <levyshay1@gmail.com>

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-10-14 00:18:57 +03:00
Marc Mueller e721d8ed02 Bump actions/cache from 3.0.10 to 3.0.11 (#80260) 2022-10-13 22:49:10 +02:00
Quentame d87f433be7 Bump Freebox to 1.0.0 (#80256)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-13 22:44:47 +02:00
Quentame 3379e14417 Bump Météo-France to 1.1.0 (#80255) 2022-10-13 19:31:59 +02:00
epenet 757df213e0 Drop use of is_metric in tomorrowio (#80271) 2022-10-13 12:50:00 -04:00
Erik Montnemery e852c9b012 Fix logbook tests (#80264)
* Fix logbook tests

* Correct tests

* Improve tests
2022-10-13 17:34:45 +02:00
Marc Mueller e1ac8acf87 Bump CI cache version (#80265) 2022-10-13 17:32:53 +02:00
epenet 50207a8ca8 Adjust temperature unit check in rainmachine (#80237)
* Adjust temperature unit check in rainmachine

* Use system compare

* Use is not ==
2022-10-13 09:00:44 -06:00
Aaron Bach eae96eb4c2 Add diagnostics to AirNow (#79904) 2022-10-13 07:31:33 -06:00
rappenze d80c0ddb5f Fix armed state in fibaro integration (#80218)
* Fix armed state in fibaro integration

* Update homeassistant/components/fibaro/__init__.py

Co-authored-by: Joakim Plate <elupus@ecce.se>

Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-10-13 13:51:30 +02:00
Erik Montnemery 04cc2ae264 Correct initialization of new databases (#80234) 2022-10-13 13:01:27 +02:00
Erik Montnemery acb1477673 Avoid time traveling in recorder tests (#80247) 2022-10-13 11:51:27 +02:00
Erik Montnemery 4462f2fc46 Fix recorder tests related to mysql (#80238) 2022-10-13 11:44:48 +02:00
Øyvind Matheson Wergeland b0ef1e3315 Fix nobo_hub presenting temperature in zone with one decimal (#79743)
Fix presenting temperature in zone with one decimal.
Fix stepping the target temperatur without decimals.
2022-10-13 11:40:47 +02:00
dependabot[bot] 394246abab Bump dorny/paths-filter from 2.11.0 to 2.11.1 (#80228)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-13 09:57:07 +02:00
dependabot[bot] 3c125c4b65 Bump docker/login-action from 2.0.0 to 2.1.0 (#80227)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-13 09:29:47 +02:00
Bouwe Westerdijk 937aa286b7 Plugwise: implement device availability for non-legacy devices (#80191)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-13 09:24:14 +02:00
Franck Nijhof ea6368775b Make notifiers of Alert optional (#80209) 2022-10-13 09:04:36 +02:00
Franck Nijhof 1e75c3829e Register Alert services as entity services (#80213) 2022-10-13 09:04:24 +02:00
Erik Montnemery 466c4656ca Refactor recorder migration (#80175)
* Refactor recorder migration

* Improve test coverage
2022-10-13 08:11:54 +02:00
GitHub Action ca4c4774ca [ci skip] Translation update 2022-10-13 00:33:41 +00:00
Kevin Addeman 01c66aa7c1 Add support for area field from pylutron_caseta (#80221) 2022-10-12 14:26:54 -10:00
G Johansson 4cf0f9b197 Fix incorrect deprecation year for conversion utils (#80195)
Fix incorrect depr year
2022-10-13 00:06:23 +02:00
kingy444 f5868f00a0 Powerview rename blackout to opaque (#80163) 2022-10-12 10:30:51 -10:00
Kevin Addeman 82322e3804 Add button entities for Lutron Caseta/RA3/HWQSX (#79963)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-12 10:29:28 -10:00
epenet a396e35c21 Use DistanceConverter in components (#80207) 2022-10-12 21:56:07 +02:00
epenet 503434e538 Use DistanceConverter in components (#80182)
* Use DistanceConverter in components

* Adjust for METRIC_SYSTEM
2022-10-12 21:33:38 +02:00
Maciej Bieniek 0daa5b55b5 Add missing type for CoordinatorEntity in Brother sensor platform (#80197)
Add missing type for CoordinatorEntity
2022-10-12 21:02:25 +02:00
Franck Nijhof fc32071562 Remove ToggleEntity inheritance from Alert (#80185) 2022-10-12 21:13:05 +03:00
Franck Nijhof c6340856e9 Fix schema for the Alert integration (#80189)
Schema fixes for the Alert integration
2022-10-12 21:10:38 +03:00
Franck Nijhof 37a5a09910 Remove unused is_on helper function from Alert (#80190) 2022-10-12 21:10:03 +03:00
Franck Nijhof ad6c3d1cde Move alert constants into const module (#80170)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-12 17:17:48 +02:00
Franck Nijhof 690556a5f1 CI: Do not trigger full suite for alert integration (#80174) 2022-10-12 17:17:28 +02:00
epenet 54587e96d4 Drop unused unit_system from bmw (#80176) 2022-10-12 17:03:36 +02:00
Joakim Plate 1c86a12233 Correct units for sensors in nibe heatpump (#80140) 2022-10-12 16:43:55 +02:00
Franck Nijhof 30920c3da7 Code quality improvements for Fully Kiosk (#80168) 2022-10-12 15:52:09 +02:00
Erik 4a1c40f09b Revert "Refactor recorder migration"
This reverts commit 69e10e5982.
2022-10-12 15:12:12 +02:00
epenet 3a5b66fd60 Use percentage constant in components (#80173) 2022-10-12 15:02:47 +02:00
Erik 69e10e5982 Refactor recorder migration 2022-10-12 15:00:28 +02:00
Erik Montnemery 577f7904b5 Minor improvements of recorder typing (#80165)
* Minor improvements of recorder typing

* Only allow specifying statistic_ids as lists
2022-10-12 14:59:10 +02:00
Franck Nijhof 83557ef762 Add myself as codeowner to Alert (#80169) 2022-10-12 14:51:09 +02:00
Bouwe Westerdijk 6abf677092 Bump plugwise to v0.25.0 and adapt relevant plugwise code (#80129) 2022-10-12 14:48:09 +02:00
Mike Degatano ec55a7b603 Add logger to default config for set level service (#80033) 2022-10-12 12:23:12 +02:00
dependabot[bot] 6e2786ae1c Bump dorny/paths-filter from 2.10.2 to 2.11.0 (#80151)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-12 12:05:36 +02:00
Jeef f43c802a03 Flume code quality improvments (#79815) 2022-10-12 12:05:22 +02:00
Franck Nijhof b28ad1282a Use percentage constant as unit in LaMetric brightness (#80162) 2022-10-12 11:56:18 +02:00
epenet e9e3fb1cc8 Move attribution to standalone attribute [c-d] (#80150) 2022-10-12 11:38:43 +02:00
J. Nick Koston 237b03150e Bump dbus-fast to 1.44.0 (#80149) 2022-10-12 11:37:26 +02:00
Franck Nijhof 1191f4b61d Add error handling to LaMetric switch platform (#80161) 2022-10-12 11:35:09 +02:00
Franck Nijhof 9396169060 Add error handling to LaMetric select platform (#80160) 2022-10-12 11:34:08 +02:00
Franck Nijhof 77571c8a84 Add error handling to LaMetric number platform (#80159) 2022-10-12 11:33:09 +02:00
CharlB 107e1ed16c Fix, improve input validation and add tests to ClickSend tts (#76669)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-12 11:27:46 +02:00
Franck Nijhof d03e0380bb Add brightness controls to LaMetric (#79804) 2022-10-12 10:59:15 +02:00
ollo69 75886d7213 Strip whitespace from Nut "zero" serialno (#80141) 2022-10-12 10:04:48 +02:00
J. Nick Koston d71a9d6ab3 Bump yalexs to 1.2.6 (#80142) 2022-10-11 19:30:09 -10:00
J. Nick Koston a9f8bb3277 Bump ibeacon-ble to 0.7.4 (#80147) 2022-10-11 19:29:58 -10:00
Chris Talkington 46794f7a5d Add sensor platform to Jellyfin (#79966) 2022-10-12 00:20:32 -05:00
GitHub Action 230fe4453f [ci skip] Translation update 2022-10-12 00:40:30 +00:00
Kevin Stillhammer 712f40b6b0 Add has_entity_name for here_travel_time (#80011)
* Add has_entity_name for here_travel_time

* Duration in traffic
2022-10-12 02:22:21 +02:00
Franck Nijhof a18f8d2ff3 Add error handling to LaMetric button platform (#80136) 2022-10-11 23:50:07 +02:00
J. Nick Koston f23b1750e8 Migrate HomeKit Controller to use stable identifiers (#80064) 2022-10-11 11:26:03 -10:00
Franck Nijhof e3a3f93441 Add full test coverage to LaMetric (#80134) 2022-10-11 22:54:49 +02:00
Ville Skyttä 9dd894a36e Huawei LTE logging related tweaks (#79854)
* Remove no longer needed dicttoxml logging config

huawei-lte-api 1.5+ no longer uses dicttoxml.

* Fix `loggers` entry
2022-10-11 21:49:02 +02:00
Franck Nijhof 54fb0d7cc2 Fix set humidity in Tuya (#80132) 2022-10-11 22:21:59 +03:00
Aaron Bach b446cab03b Redact additional sensitive fields in ReCollect Waste diagnostics (#80119)
* Redact additional sensitive fields in ReCollect Waste diagnostics

* One call
2022-10-11 13:14:07 -06:00
Aaron Bach f92da26c04 Add config entry to Ridwell diagnostics (#80120) 2022-10-11 13:03:48 -06:00
kingy444 cc13641f29 Powerview Implement remaining types (#80097) 2022-10-11 08:21:54 -10:00
Aaron Bach 1262c0e221 Use entry.as_dict() in SimpliSafe diagnostics (#80121) 2022-10-11 12:15:32 -06:00
Aaron Bach d4465e4e69 Use entry.as_dict() in WattTime diagnostics (#80122) 2022-10-11 12:15:21 -06:00
Aaron Bach 687987f05b Use entry.as_dict() in RainMachine diagnostics (#80118)
* Use `entry.as_dict()` in RainMachine diagnostics

* One call
2022-10-11 12:15:07 -06:00
Franck Nijhof 8bc9aa9ea4 Update mutagen to 1.46.0 (#80004)
* Update mutagen to 1.46.0

* Ignore untyped call
2022-10-11 20:49:58 +03:00
Aaron Bach 2f6e55b3bb Fix uncaught error in OpenUV diagnostics test (#80116) 2022-10-11 19:19:13 +03:00
Aaron Bach 4ea46bf841 Use entry.as_dict() in OpenUV diagnostics (#80115) 2022-10-11 19:17:03 +03:00
Aaron Bach 020b7e9762 Use entry.as_dict() in Notion diagnostics (#80114) 2022-10-11 19:14:35 +03:00
Aaron Bach c05390e09b Use entry.as_dict() in IQVIA diagnostics (#80113) 2022-10-11 19:13:58 +03:00
Aaron Bach 0f002e7044 Use entry.as_dict() in Guardian diagnostics (#80112) 2022-10-11 19:12:17 +03:00
epenet 5743e9f83d Use REVOLUTIONS_PER_MINUTE constant in isy994 (#79989) 2022-10-11 17:51:42 +02:00
Martin Hjelmare 030205df8f Filter out non official zwave_js add-on discovery (#80110)
* Filter out non official zwave_js add-on discovery

* Add test
2022-10-11 17:37:21 +02:00
Aaron Bach b41cd57c33 Use entry.as_dict() in AirVisual diagnostics (#80109) 2022-10-11 09:26:57 -06:00
Aaron Bach f2207af1c9 Use entry.as_dict() in Ambient PWS diagnostics (#80111) 2022-10-11 09:26:44 -06:00
Martin Hjelmare 62c4cd3c26 Add name and slug to supervisor discovery info (#80094) 2022-10-11 16:56:45 +02:00
Erik Montnemery 918243b7c8 Improve some sensor statistics tests (#80087) 2022-10-11 08:57:08 -04:00
epenet e948f49818 Use REVOLUTIONS_PER_MINUTE constant in system_bridge (#79990) 2022-10-11 14:56:55 +02:00
epenet b81c7d7f8e Use REVOLUTIONS_PER_MINUTE constant in glances (#79988) 2022-10-11 14:56:35 +02:00
epenet b1dd646ed8 Use REVOLUTIONS_PER_MINUTE constant in danfoss_air (#79987) 2022-10-11 14:56:10 +02:00
epenet 2538b9d269 Use REVOLUTIONS_PER_MINUTE constant in baf (#79986) 2022-10-11 14:43:13 +02:00
Sean Vig e7c614a825 Fix audio detection for IP4m-1041 Amcrest camera (#80066) 2022-10-11 14:29:35 +02:00
epenet c9130e2892 Use REVOLUTIONS_PER_MINUTE constant in vallox (#79992) 2022-10-11 14:02:27 +02:00
Erik Montnemery 9aa6043255 Set character set to utf8mb4 when connecting to MySQL or MariaDB databases (#79755) 2022-10-11 14:01:46 +02:00
Marc Mueller bcbf99243d Use setup-python check-latest option [ci] (#80078) 2022-10-11 13:54:55 +02:00
Erik Montnemery a391b8dd9d Support correcting sensor volume unit (#80081) 2022-10-11 13:51:28 +02:00
Erik Montnemery c52b900bfe Minor cleanup of sensor statistics (#80082) 2022-10-11 12:24:52 +02:00
Kevin Stillhammer d01f85b6aa Remove old import logic for waze_travel_time (#80079)
Remove old import logic
2022-10-11 12:05:53 +03:00
Guido Schmitz 6826f2c291 Add reauth flow for devolo_home_network (#71051)
* Add reauth flow

* Cover cases without existing password

* Add test to verify upgrading from older versions

* Connect to the device first

* Use Mapping for async_step_reauth

* Set empty password for user step and remove unneeded update of unique_id
2022-10-11 10:54:29 +02:00
Jan Bouwhuis 65187ab227 Use selectors for basic broker and options for MQTT config flow (#79791)
Use selectors for basic broker en options
2022-10-11 10:51:35 +02:00
Jan Bouwhuis 8aa30cce26 Fix state saving when sharing topics for MQTT entities (#79421)
* Do not write old state sharing availability topic

* Add a test

* Support for all availability topics

* delay async_write_ha_state till last callback

* Process write req after processing callback jobs

* Do not count subscription callbacks

* Simplify

* Stale docsting

* No topic needed for delays state write

* No need to clear when reloading

* Move test to test_mixins.py

* Only set up sensor platform for test
2022-10-11 10:49:54 +02:00
epenet 6f7cb158d8 Cleanup blockchain sensor (#80077) 2022-10-11 10:40:10 +02:00
Erik Montnemery 69d935b7bd Teach long term statistics that unit 'rpm' is same as 'RPM' (#80012)
* Teach long term statistics that unit 'rpm' is same as 'RPM'

* Add tests
2022-10-11 10:32:01 +02:00
Kevin Stillhammer edad6d0f26 Remove old import logic for google_travel_time (#80018)
Remove old import logic
2022-10-11 10:49:06 +03:00
Marc Mueller 4e5b5dfb93 Update pyupgrade to 3.1.0 (#80058)
* Update pyupgrade to 3.1.0

* Remove redundant open modes - text is the default
2022-10-11 09:04:52 +02:00
dependabot[bot] 884577e622 Bump actions/setup-python from 4.1.0 to 4.3.0 (#80068)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.1.0 to 4.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.1.0...v4.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-11 09:00:36 +02:00
J. Nick Koston fe5534666d Bump dbus-fast to 1.41.0 (#80062) 2022-10-10 18:52:44 -10:00
Chris Talkington 8aa5a785b5 Improve client info reported to Jellyfin (#79974) 2022-10-10 20:24:00 -05:00
GitHub Action eac1a1e513 [ci skip] Translation update 2022-10-11 00:31:56 +00:00
Garrett 22590bf71d Bump to subarulink v0.6.1 (#80056) 2022-10-11 01:39:14 +02:00
Austin Brunkhorst 7d097d18b0 Add support for Snooz BLE devices (#78790)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-10 13:14:27 -10:00
epenet 4281384d2a Move options to SelectEntityDescription in lifx (#80015) 2022-10-10 12:40:40 -10:00
Franck Nijhof ce4d93b0c1 Update google-cloud-texttospeech to 2.12.3 (#80051) 2022-10-11 00:05:23 +03:00
Nathan Spencer 262d1ad2a0 Bump pylitterbot to 2022.10.0 (#80050) 2022-10-10 22:43:49 +02:00
puddly 46aa3b5e3d Bump ZHA dependencies (#80049) 2022-10-10 22:43:31 +02:00
Robert Svensson 395636dfc2 Bump aiounifi to v39 (#80043) 2022-10-10 22:27:21 +02:00
epenet 65ff7c18d2 Move options to SelectEntityDescription in senseme (#80016) 2022-10-10 22:16:10 +02:00
Steven Looman ac44c8e34d Update codeowners for upnp component (#80042)
Drop @ehendrix23 from codeowners
2022-10-10 23:15:58 +03:00
J. Nick Koston b3ad0eebcd Bump pySwitchbot to 0.19.15 (#79972) 2022-10-10 22:10:28 +02:00
Tobias Sauerwein aa58d7fbd6 Fix Netatmo device trigger (#80047) 2022-10-10 22:04:41 +02:00
Erik Montnemery e8af007124 Disable echo for non SQLite databases (#80032)
* Disable echo for non SQLite databases

* Add test
2022-10-10 22:42:38 +03:00
David F. Mulcahey 20d71a869e Add friendly entity names for ZHA sensors (#80035)
* Add friendly entity names for ZHA sensors

* lowercase 2nd word
2022-10-10 15:40:42 -04:00
Bram Kragten 7e19e56c6b Update frontend to 20221010.0 (#79994) 2022-10-10 21:40:17 +02:00
Robert Svensson 82d3397a9b Adapt deCONZ binary sensors to entity descriptions (#79486)
Now typing with lambdas work
2022-10-10 21:18:26 +02:00
kingy444 3ab294e8ef Powerview refactor prep for all shade types (#79862) 2022-10-10 09:05:04 -10:00
Avi Miller 257ae4d8d3 Add support for the Flame and Morph effects for Tile and Candle (#80014) 2022-10-10 09:01:31 -10:00
Jc2k 117c12d135 Fix Eve Thermo always showing as heating in homekit_controller even when off (#80019) 2022-10-10 08:58:20 -10:00
Sven Serlier 2427d5e28c Update screenshot (#79459)
* Delete old image

* Add new screenshot

* New image
2022-10-10 20:20:25 +02:00
Khole 1d10822cef Bump pyhiveapi to 0.5.14 (#79530) 2022-10-10 19:54:31 +02:00
epenet 62b559bf36 Adjust device classes in smartthings (#79283) 2022-10-10 19:36:25 +02:00
rappenze 06b1a4c2b4 Fix armed extra state attribute in fibaro entity (#80034) 2022-10-10 19:14:43 +02:00
Erik Montnemery 7b247a79cf Correct min/max mireds for lights which use K for color temp (#79998) 2022-10-10 16:45:38 +03:00
Erik Montnemery 2ee6ea9877 Adapt group to color temperature in K (#79719)
* Adapt group to color temperature in K

* Adjust tests

* Adjust tests
2022-10-10 14:57:22 +02:00
Franck Nijhof 1e5908d3a8 Update apprise to 1.1.0 (#80009) 2022-10-10 14:21:30 +02:00
epenet ca9bfc8b86 Add options to SelectEntityDescription (#78882) 2022-10-10 14:20:04 +02:00
Franck Nijhof f8f4b059a1 Update black to 22.10.0 (#80006) 2022-10-10 14:19:09 +02:00
Patrick ZAJDA d0bffb6c75 Migrate Switchbot to new entity naming style (#80008)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-10 14:12:50 +02:00
Flemming Sørvollen Skaret c7b56f4079 Clean duplicate nextcloud sensor (#79900)
Update __init__.py

Removed duplicate of  "nextcloud_database_version"
2022-10-10 14:12:37 +02:00
Charles Garwood ffb6434776 Add load_url service to fully_kiosk integration (#79969) 2022-10-10 14:11:55 +02:00
Michael Molisani 8fe504356a Update to pygtfs 0.1.7 (#79975) 2022-10-10 13:37:02 +02:00
epenet 1744b5fa0a Add docstring to Sensor enums (#79983)
* Add docstring to Sensor enums

* Adjust MONETARY docstring
2022-10-10 12:38:10 +02:00
Franck Nijhof 907af7ffe4 Remove system marker from Supervisor integration (#79997) 2022-10-10 11:05:28 +02:00
dependabot[bot] 881c2a4956 Bump actions/stale from 6.0.0 to 6.0.1 (#79977)
Bumps [actions/stale](https://github.com/actions/stale) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v6.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 10:02:19 +02:00
Franck Nijhof 575501d26a Add select platform to LaMetric (#79803) 2022-10-10 09:28:36 +02:00
Chris Talkington 7fae85ee85 Add tests for Jellyfin init (#79968) 2022-10-10 00:29:37 -05:00
Chris Talkington 84acb416b8 Use server name as entry title in Jellyfin (#79965) 2022-10-09 23:50:05 -05:00
J. Nick Koston ef719cf7ef Bump bluetooth-auto-recovery to 0.3.4 (#79971) 2022-10-09 17:56:11 -10:00
Charles Garwood 58d531841b Fix typo SIGNAL_BOOTSTRAP_INTEGRATONS -> SIGNAL_BOOTSTRAP_INTEGRATIONS (#79970) 2022-10-09 17:06:28 -10:00
GitHub Action aca340de1c [ci skip] Translation update 2022-10-10 00:34:37 +00:00
Chris Talkington d53499c0bf Bump jellyfin-apiclient-python to 1.9.2 (#79945) 2022-10-09 14:10:12 -10:00
J. Nick Koston 7a1939c608 Bump dbus-fast to 1.38.0 (#79962) 2022-10-09 14:07:22 -10:00
Avi Miller 41595b0cba Migrate the LIFX integration to use kelvin for color temp (#79775) 2022-10-09 12:19:50 -10:00
Kevin Addeman 45a30546ec Add support for Homeowner and Phantom Keypads (#79958) 2022-10-09 12:17:06 -10:00
Franck Nijhof 5a0609ae8b Add sensor platform to LaMetric (#79935) 2022-10-09 21:28:35 +02:00
Kevin Addeman b7e84543c1 Add support for parent_device field so entities are nested within Keypad Devices (#79513)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-09 08:39:12 -10:00
Jeef 618f259fd8 Add configuration URL to IPP (Printer) (#79313)
switch to 0.12.0 ipp lib
2022-10-09 13:32:03 -05:00
HarvsG b86927a453 Enable strict typing on Bayesian (#79870)
* make bayesian static

* no longer private
2022-10-09 20:30:38 +02:00
G Johansson 77864ad80f Remove not used string from openexchangerates (#79937) 2022-10-09 16:55:49 +02:00
HarvsG e5dafbc166 Make _TrackTemplateResultInfo not private (#79812) 2022-10-09 15:23:08 +02:00
Ville Skyttä a2ed7f7679 Remove incorrect UpCloud logger from manifest (#79855) 2022-10-09 15:18:10 +02:00
TheJulianJES 3126762707 Add friendly name to ZHA config entities (#79926)
* Add friendly name to ZHA config entities

* Follow HA capitalization conventions

* Change from "Start-up level" to "Start-up current level"

* Remove siren select friendly names (temporarily)

* Change tests to expect new entity ids

* Re-add siren select friendly names

* Change siren tests to expect new entity ids
2022-10-09 09:11:42 -04:00
G Johansson 031370358c Remove yaml import openexchangerates (#79856)
* Depr openexchangerates yaml

* Remove setup_platform and issue

* Remove schema

* Remove not longer used constant
2022-10-09 14:50:21 +02:00
Maciej Bieniek 8176400cfd Migrate attributes to separate sensors in Brother integration (#79932)
Migrate attributes to sensors
2022-10-09 14:48:01 +02:00
Jan Bouwhuis 6eb2c96d32 Correct use of ConfigType in MQTT config flow code (#79934)
Correct use of ConfigType
2022-10-09 14:41:30 +02:00
Chris Talkington 5b0a37a447 Use persistent device id for jellyfin requests (#79840) 2022-10-08 21:12:30 -05:00
J. Nick Koston 2decb85ee6 Bump dbus-fast to 1.33.0 (#79921) 2022-10-08 15:51:45 -10:00
GitHub Action ed565a6eb1 [ci skip] Translation update 2022-10-09 00:30:44 +00:00
Tobias Sauerwein d9d614d97f Bump pyatmo to 7.1.1 (#79918) 2022-10-09 02:30:48 +03:00
Mick Vleeshouwer 132ff2c410 Update Config Flow to show message about unsupported Overkiz hardware (#79503)
* Update Config Flow to show cozytouch unsupported hardware error

* Apply feedback

* Remove vague unknown user exception

* Fix test

* Code coverage back to 100%
2022-10-08 16:37:03 -06:00
Aaron Bach 8471a71b60 Move AirNow test fixtures to conftest.py (#79902)
* Move AirNow test fixtures to `conftest.py`

* Unnecessary fixture

* Better

* Linting
2022-10-08 16:32:51 -06:00
Aaron Bach 6297a28507 Remove redundant Tile test fixture (#79912) 2022-10-08 15:06:57 -06:00
Aaron Bach 33d2bec6f1 Remove redundant IQVIA test fixture (#79911) 2022-10-08 15:06:45 -06:00
Aaron Bach 63379bcaff Remove redundant Notion test fixture (#79910) 2022-10-08 15:06:32 -06:00
Aaron Bach d90359b424 Remove redundant WattTime test fixture (#79909) 2022-10-08 15:06:20 -06:00
Aaron Bach 5e32fdff26 Remove redundant ReCollect Waste test fixture (#79907) 2022-10-08 15:06:10 -06:00
Aaron Bach b4d525f6a3 Remove redundant Ridwell test fixture (#79906) 2022-10-08 15:05:57 -06:00
Aaron Bach 50911af835 Remove redundant OpenUV test fixture (#79905) 2022-10-08 15:05:45 -06:00
puddly e5a5326298 Bump ZHA dependencies (#79898) 2022-10-08 15:40:25 -04:00
Maciej Bieniek 1e13433d4f Rework Brother sensor platform (#79864)
* Rework BrotherSensorEntityDescription

* Rework state attributes

* Cleaning

* Add _handle_coordinator_update()

* Suggested change

* Re-add consts
2022-10-08 22:25:58 +03:00
Shay Levy 9019fcb5c5 Migrate Shelly to use kelvin for color temperature (#79880) 2022-10-08 22:24:19 +03:00
majuss f65dcf3c35 Bump lupupy to support XT2 and up (#79289)
* Bumped lupupy to support XT2 and up

* requirements script
2022-10-08 12:59:59 -06:00
starkillerOG c81bf1103f Add supported brands for Motion Blinds (#79301)
* Add ScreenAway

* Add aditional brands
2022-10-08 12:57:57 -06:00
starkillerOG 7bc2d97aca Add Roborock as supported brand of xiaomi miio (#79312)
* Add Roborock as supported brand

* Update supported_brands.py
2022-10-08 12:55:56 -06:00
Daniel Hjelseth Høyer d06e064e9e Correct unit for Opengarage rssi sensor (#79403)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2022-10-08 12:54:37 -06:00
Ville Skyttä 6010672e2f Add syncthru active alerts sensor, set default manufacturer (#79418)
* Use Samsung as default manufacturer

* Sensor docstring fixes

* Add active alerts sensor
2022-10-08 12:54:16 -06:00
John Levermore 506695fdc5 Fix london_underground TUBE_LINES to match current API output (#79410)
Fix: Update london_underground component with updated TUBE_LINES list to match current API output
2022-10-08 12:53:32 -06:00
Patrick ZAJDA 4baba77780 Add state class measurement to SwitchBot signal strength sensors (#79886) 2022-10-08 08:02:26 -10:00
Marc Mueller 647a4ac131 Update typing-extensions constraint to >=4.4.0 (#79860) 2022-10-08 18:32:46 +03:00
G Johansson 5dde93b429 Bump pytrafikverket to 0.2.1 (#79872) 2022-10-08 09:13:00 -06:00
Bert Melis 6546bba233 Process abbreviated availability options in mqtt discovery payload (#79712)
Expand availability in mqtt discovery payload
2022-10-08 15:36:49 +02:00
Marc Mueller c6df823b35 Use value_fn in WLED number (#79865) 2022-10-08 12:34:41 +02:00
Robert Svensson e7b550685e Fix POE control port_idx error in UniFi (#79838)
Bump UniFi dependency
2022-10-08 08:49:24 +02:00
spycle e2b7e79ccb Fix keymitt_ble discovery (#79809)
* Fix keymitt_ble discovery

* Update tests

* Up version

* Up version keymitt_ble

* Up version keymitt_ble
2022-10-08 08:19:40 +02:00
Robert Hillis c6f28f6d59 Migrate Sonarr to new entity naming style (#79844) 2022-10-07 19:53:48 -06:00
GitHub Action f58e1513e2 [ci skip] Translation update 2022-10-08 00:29:46 +00:00
Henne e00f04c2c3 Add state class to bosch_shc energy sensor (#79470)
Make That energy sensor works in Dashbord
2022-10-07 17:54:50 -06:00
Garrett 62aa013097 Add vehicle model/year to subaru device (#79484) 2022-10-07 17:54:05 -06:00
Maciej Bieniek 5abff31437 Use new device classes in Accuweather integration (#79717)
* Add new device classes

* Update tests
2022-10-07 17:52:36 -06:00
Philippe Schenker 24e9f6285d Change shelly trv precision to what is supported (#79672)
change shelly trv precision to what is supported

Shelly TRVs do support half-degree steps, change this accordingly.
2022-10-07 17:51:54 -06:00
Brandon Rothweiler 2452e70e29 Add Mazda brand (#79683) 2022-10-07 17:49:47 -06:00
Robert Hillis 4ff26b4ddd Add strict typing to Google Sheets (#79801) 2022-10-07 17:48:29 -06:00
Lennart 7132fe0ae7 Fix realtime option for hvv_departures (#79799) 2022-10-07 17:47:24 -06:00
Robert Hillis 87a22fbcca Move Sonarr API calls to coordinators (#79826) 2022-10-08 00:25:16 +02:00
Julian Einwag 61901a1a60 Add device trigger for Lidl Silvercrest switch to deCONZ (#79839)
* add deconz support for Lidl Silvercrest switch

* Update homeassistant/components/deconz/device_trigger.py

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

* Update homeassistant/components/deconz/device_trigger.py

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

* clarify it's a button, remove turn on event

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2022-10-07 23:56:45 +02:00
J. Nick Koston fca8586fb6 Bump dbus-fast to 1.29.1 (#79787)
* Bump dbus-fast to 1.28.0

Performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.26.0...v1.28.0

* bump again

* bump for cleanups
2022-10-07 23:50:50 +03:00
HarvsG 9d351a3c10 Improve typing and code quality in beyesian (#79603)
* strict typing

* Detail implication

* adds newline

* don't change indenting

* really dont change indenting

* Update homeassistant/components/bayesian/binary_sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* typing in async_setup_platform() + remove arg

* less ambiguity

* mypy thinks Literal[False] otherwise

* clearer log

* don't use `and` assignments

* observations not values

* clarify can be None

* observation can't be none

* assert we have at least one

* make it clearer where we're using UUIDs

* remove unnecessary bool

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Unnecessary None handling

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Better type setting

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Reccomended changes.

* remove if statement not needed

* Not strict until _TrackTemplateResultInfo fixed

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-07 22:23:25 +02:00
Maikel Punie a18a0b39dd Bumb velbusaio to 2022.10.3 (#79821)
* Bumb velbusaio to 2022.10.3

* Handle the possibility that get_cover position is None (unknown) in previous versions this was always 0
2022-10-07 22:00:01 +03:00
Bouwe Westerdijk 447b71341f Bump plugwise to v0.21.4 (#79831) 2022-10-07 21:57:12 +03:00
Marc Mueller 33c94b0052 Add strict typing for WLED (#79822)
* Add strict typing for WLED

* Update backoff constraint
2022-10-07 21:56:29 +03:00
Marc Mueller 14d2bbfcd6 Add strict typing for lidarr (#79241) 2022-10-07 20:54:29 +02:00
Marc Mueller a809f645a7 Add strict typing for radarr (#79242) 2022-10-07 20:53:34 +02:00
Robert Hillis 5981864992 Add strict typing to Sonarr (#79802) 2022-10-07 19:08:08 +02:00
Jeef 04f07cecba IntelliFire Fan - Bug fix on off funciton (#79819)
fix: Fan was double calling off as well as calling an async without an await
2022-10-07 10:37:00 -06:00
Robert Hillis 9850709b37 Add strict typing to Skybell (#79800) 2022-10-07 16:28:05 +02:00
borky e1d3ba6ff1 Add xiaomi miio airpurifier 4 led brightness (#78793)
Fixed Led Brightness not available
2022-10-07 16:03:34 +02:00
Marc Mueller f9aa7c5808 Update pyoverkiz to 1.5.5 (#79798) 2022-10-07 10:03:24 -04:00
Aaron Bach e45701fe89 Add @bachya as a LaMetric codeowner (#79772) 2022-10-07 15:33:53 +02:00
Franck Nijhof 0b9d029350 Add switch platform to LaMetric (#79759)
* Add switch platform to LaMetric

* Little naming tweak
2022-10-07 15:03:58 +02:00
starkillerOG b450514fb3 Add Roborock S7 MaxV for xiaomi_miio (#79477) 2022-10-07 14:57:48 +02:00
Erik Montnemery 43091a9856 Revert "Improve device_automation trigger validation" (#79778)
Revert "Improve device_automation trigger validation (#75044)"

This reverts commit 55b036ec5e.
2022-10-07 08:23:53 -04:00
Alejandro Del Rincón López b51c434b9d Add support for Xiaomi Purifier 4 Lite (#79758)
* Added support for Xiaomi Purifier 4 Lite

* Remove favorite level from Xiaomi purifier 4 lite.

* Fix linting

Co-authored-by: borky-git <borky-git@protonmail.com>
2022-10-07 13:48:05 +02:00
Ville Skyttä 9b44cf0127 Add Huawei LTE reauth flow (#78005)
* Add Huawei LTE reauth flow

* Upgrade huawei-lte-api to 1.6.3, use LoginErrorInvalidCredentialsException
2022-10-07 12:24:09 +02:00
Jan Bouwhuis aee82e2b3b De-duplicate MQTT config_flow code (#79369)
* De-duplicate config_flow code

* De duplicate code birth and will
2022-10-07 10:12:19 +02:00
taiyeoguns 9a81b65815 Convert kira tests to pytest (#79747) 2022-10-07 08:21:18 +02:00
Franck Nijhof 90d39a414c Add LaMetric number tests (#79748) 2022-10-07 08:11:10 +02:00
Franck Nijhof 633ffad443 Add diagnostics to LaMetric (#79757)
* Add diagnostics to LaMetric

* Add return value typing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-07 08:07:59 +02:00
jjlawren 5694a4bfc8 Fix state updating for crossfade switch on Sonos (#79776) 2022-10-07 06:29:34 +02:00
J. Nick Koston 07d4ac42d4 Fix Bluetooth failover when esphome device unexpectedly disconnects (#79769) 2022-10-06 16:40:40 -10:00
Jeef 22d6ce967d Add Flume binary sensors (#77327)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-06 15:09:38 -10:00
GitHub Action e1047320a9 [ci skip] Translation update 2022-10-07 00:38:36 +00:00
Joakim Plate 7b2cad388e Show all valid heatpump selections (#79756)
Iterate over the keys of the member dunder
2022-10-07 02:22:15 +03:00
Fredrik Erlandsson eb19927df6 Bump pydaikin version (#79761)
bump pydaikin version
2022-10-07 02:18:13 +03:00
Jesse Hills bc1941717c Bump aioesphomeapi to 11.1.1 (#79762) 2022-10-07 02:17:31 +03:00
Marc Mueller 53c51c9221 Uninstall pre-installed tools from devcontainer (#79765) 2022-10-07 02:16:38 +03:00
Sebastian Lövdahl bba7b3b2be Fix broken URLs in KNX service descriptions (#79752) 2022-10-06 23:47:50 +02:00
Dave T 6040c30b45 Add visual image preview during generic camera config flow (#71269)
* Add visual preview during setup of generic camera

* Code review: standardize preview  url

* Fix slug test

* Refactor to use HomeAssistantView

* Code review: simplify

* Update manifest

* Don't illegally access protected member

* Increase test coverage

* Prevent browser caching of preview images.

* Code review:move incrementor to ?t=X + simplify

* Discard old flow preview data

* Increase test coverage

* Code review: rename variables for clarity

* Add timeout for image previews

* Fix preview timeout tests

* Simplify: store cam image preview in config_flow

* Call step method to transition between flow steps

* Only store user_input in flow, not CameraObject

* Fix problem where test wouldn't run in isolation.

* Simplify test

* Don't move directly to another step's form

* Remove unused constant

* Simplify test

Co-authored-by: Dave T <davet2001@users.noreply.github.com>
2022-10-06 22:24:19 +02:00
Franck Nijhof 6111fb38a7 Add translations to Plugwise regulation mode (#79597) 2022-10-06 22:16:41 +02:00
Erik Montnemery 51e6d49451 Adapt homekit to color temperatures in K (#79713) 2022-10-06 09:20:10 -10:00
Erik Montnemery aa5575ba65 Only validate sensors in sensor.recorder.validate_statistics (#79749) 2022-10-06 21:17:46 +02:00
Erik Montnemery 96a8beb29f Tweak comment in LightEntity (#79750) 2022-10-06 21:17:24 +02:00
Glenn Waters d3fee8aad9 Add supported brands to UPB integration (#79619) 2022-10-06 20:33:37 +02:00
Vincent Knoop Pathuis 28df576e51 Update ultraheat api to 0.5.0 (#79666) 2022-10-06 20:06:52 +02:00
puddly 2dab9073fe ZHA radio migration: reset the old adapter (#79663) 2022-10-06 14:02:24 -04:00
Erik Montnemery 0a59d37e62 Correct how unit used for statistics is determined (#79725) 2022-10-06 14:01:54 -04:00
Bram Kragten e2c1a36e24 Update frontend to 20221006.0 (#79745) 2022-10-06 14:01:18 -04:00
Lars 61deb54ec8 Fix max_color_temp_kelvin (#79738)
fix max_color_temp_kelvin
2022-10-06 19:21:57 +02:00
Chris Talkington 00029ca344 Bump pyipp to 0.12.0 (#79687)
* update pyipp to 0.12.0

* Update requirements_all.txt

* Update requirements_test_all.txt
2022-10-06 17:11:38 +02:00
Matthew Simpson df7b8f419e Bump btsmarthub_devicelist to 0.2.3 (#79705)
* Bump btsmarthub_devicelist

This PR bumps the btsmarthub_devicelist version to correct an issue
experienced by a recent firmware upgrade to the SmartHub2.

* Bump btsmarthub_devicelist to 0.2.3

This version bump fixes an issue where BT SmartHub2 devices cannot be
correctly autodetected. The current workaround is to specifiy it
manually, which isn't great UX (and did previously work until a recent
firmware upgrade).

I've also taken the opportunity to reassign ownership of the component
to myself as @jxwolstenholme no longer has a SmartHub so cannot do
manual testing and also has no need to use the component anymore.
2022-10-06 17:01:27 +02:00
epenet aa0bb9c3d2 Improve precision in pressure conversion (#79362)
* Improve precision in pressure conversion

* Use _STANDARD_GRAVITY

* Add again pytest.approx
2022-10-06 12:48:31 +02:00
Erik Montnemery 47d0598e75 Use Kelvin as the preferred color temperature unit (#79591)
* Use Kelvin as the preferred white temperature unit

* Update homekit

* Adjust tests
2022-10-06 12:22:39 +02:00
Tom Matheussen 1e39f42df5 Add default ports for Nibe heatpump (#79695) 2022-10-06 11:55:17 +02:00
Shay Levy 93b2a6cc26 Refactor Shelly to use data class for ConfigEntry data (#79671)
* Refactor Shelly to use data class for ConfigEntry data

* Apply suggestions from code review

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/shelly/__init__.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Optimize usage of shelly_entry_data in _async_setup_block_entry

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-06 10:10:58 +03:00
J. Nick Koston 9b4c7f5dc5 Bump dbus-fast to 1.26.0 (#79684) 2022-10-05 19:17:10 -10:00
Shay Levy ce6ccffd9c Fix Switcher breeze fan mode and swing control (#79676) 2022-10-06 08:10:04 +03:00
J. Nick Koston c798723c27 Fix bluetooth diagnostics on macos (#79680)
* Fix bluetooth diagnostics on macos

The pyobjc objects cannot be pickled which cases dataclasses
asdict to raise an exception when trying to do the deepcopy

We now implement our own as_dict to avoid this problem

* add cover
2022-10-06 04:32:29 +02:00
GitHub Action 558b327928 [ci skip] Translation update 2022-10-06 00:31:54 +00:00
Yuval Aboulafia 5674295b3c Add clicksend to strict typing (#79544)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-10-05 22:18:41 +02:00
Bram Kragten 41d2ab5b37 Update frontend to 20221005.0 (#79656) 2022-10-05 17:38:32 +02:00
Maikel Punie 0eb1101de8 Velbus split of entity in its own file (#79653)
* Velbus split of entity in its own file

* Update coveragerc
2022-10-05 17:03:23 +02:00
Erik Montnemery 5d7756885b Normalize to kWh when handling WS energy/fossil_energy_consumption (#79649)
* Normalize to kWh when handling WS energy/fossil_energy_consumption

* Improve test
2022-10-05 16:27:08 +02:00
Robert Hillis 312770dbac Change Lidarr device name to entry title (#79630) 2022-10-05 15:57:36 +03:00
Shay Levy 22c68b95bf Refactor Shelly wrapper to coordinator (#79628) 2022-10-05 14:39:58 +02:00
Jafar Atili 4d3d22320f Enhanced switchbee device naming (#79641) 2022-10-05 14:19:03 +03:00
Erik Montnemery 59d9d3de69 Add at_started helper (#79577) 2022-10-05 12:24:51 +02:00
Shay Levy 723b018b63 Refactor Shelly tests - do not access hass.data (#79606) 2022-10-05 11:36:06 +02:00
Maciej Bieniek 9dd9147343 Use HA uuid as client_id in BraviaTV (#79618)
* Use uuid as clientid/nickname

* Fixes after rebase

* Move gen_instance_ids() to utils

* Store client_id and nickname in config_entry

* Update tests

* Clean names

* Rename consts
2022-10-05 11:24:52 +03:00
Robert Hillis 33bdc67a61 Remove superfluous strings from Lidarr (#79631) 2022-10-05 11:17:13 +03:00
Erik Montnemery 18033532ca Fix search throwing on templated services (#79637) 2022-10-05 10:59:18 +03:00
dependabot[bot] 42ca4764a0 Bump actions/checkout from 3.0.2 to 3.1.0 (#79635)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.2...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-05 10:53:27 +03:00
Jafar Atili 92c9ddf3e3 Add supported brands for switchbee (#79595) 2022-10-05 09:25:46 +02:00
Tobias Sauerwein 905950f341 Netatmo add supported brands (#79563) 2022-10-05 08:58:24 +02:00
kpine bcbce6f159 Allow picking multiple entity targets for zwave_js.refresh_value service (#79634)
Allow selection of multiple entities for zwave_js.refresh_value service
2022-10-05 08:30:34 +02:00
Mike Degatano 416c10a793 Supervisor update entity auto update from api (#79611)
* Supervisor update entity auto update from api

* Update api mocks in tests
2022-10-05 08:27:56 +02:00
Robert Svensson 214c2934de Bump UniFi dependency to v37 (#79617) 2022-10-05 08:20:37 +02:00
GitHub Action 8d28da83ca [ci skip] Translation update 2022-10-05 00:36:50 +00:00
epenet f3e05534ee Use VOLUME device_class in flume (#79585) 2022-10-04 12:49:54 -10:00
puddly 253f6616cf Bump ZHA dependencies (#79623) 2022-10-04 17:17:48 -04:00
Shay Levy 8faecae34d Shelly - move coordinators to coordinator.py (#79616) 2022-10-04 22:29:07 +03:00
J. Nick Koston 89c4bf6536 Bump dbus-fast to 1.24.0 (#79608) 2022-10-04 08:55:28 -10:00
Mike Degatano 051374d73e Handle state is None in InfluxDB (#79609) 2022-10-04 21:43:57 +03:00
Bram Kragten 9c97ebbcfe Update frontend to 20221004.0 (#79602) 2022-10-04 11:51:12 -04:00
Paulus Schoutsen abc80d8245 Add a couple more brands (#79600) 2022-10-04 11:45:40 -04:00
HarvsG dd1463da28 Refactor bayesian observations using dataclass (#79590)
* refactor

* remove some changes

* remove typehint

* improve codestyle

* move docstring to comment

* < 88 chars

* avoid short var names

* more readable

* fix rename

* Update homeassistant/components/bayesian/helpers.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/bayesian/binary_sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/bayesian/binary_sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* no intermediate

* comment why set before list

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-04 17:16:39 +02:00
Franck Nijhof 56dd0a6867 Run hassfest in pre-commit when brands changed (#79589) 2022-10-04 16:41:11 +02:00
Raman Gupta 27413cee19 Bump zwave_js lib to 0.43.0 and fix multi-file firmware updates (#79342) 2022-10-04 10:40:49 -04:00
Franck Nijhof 2b27cfdabb Set system & entity integration types (#79593) 2022-10-04 10:36:42 -04:00
Franck Nijhof 74a8472eed Collect all brands (#79579) 2022-10-04 09:24:55 -04:00
epenet 2fd62b571d Add docstring to US volume constants (#79582)
* Add docstring to US volume constants

* A blank line separation
2022-10-04 14:47:57 +02:00
Jafar Atili d0f1cba4ea Fix Thermostat not showing up in SwitchBee integration (#79592)
Fixed Thermostat not showing up in SwitchBee
2022-10-04 14:47:30 +02:00
Nathan Broadbent 1907b87666 Add unique ID to fitbit (#79587)
* Set unique ID for fitbit sensors, including the user ID

* Remove fitbit_ from unique ids (see: https://developers.home-assistant.io/docs/entity_registry_index/#unique-id)

* change fitbit user_profile type to dict[str, Any]

* Fitbit: define a default unique ID, and add battery info if present

* No need for trailing _battery in unique ID, since it already contains "devices/battery_"
2022-10-04 14:28:00 +02:00
Nathan Broadbent 9d2ba7c008 Use constant in fitbit messages (#79586)
Use FITBIT_CONFIG_FILE constant in configurator messages and buttons
2022-10-04 12:13:40 +02:00
Nathan Broadbent 4a6d1fc734 Fix typo in .strict-typing (#79584) 2022-10-04 12:12:54 +02:00
kpine c040a7a152 Set zwave_js climate entity target temp attributes based on current mode (#79575)
* Report temperature correctly

* DRY

* Add test assertions

* Don't catch TypeError (revert)
2022-10-04 11:54:13 +02:00
dependabot[bot] 78f64ac3af Bump actions/cache from 3.0.9 to 3.0.10 (#79574)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-04 09:30:53 +02:00
MrAliFu 8d3e3ee6e9 Add new Islamic prayer times calculation method (#79278)
* Adding new calculation method

Adding calculation method Turkey.
islamic_prayer_times 0.0.6 already have turkey as a calc_method, bringing that into here.

* Update const.py

Updated with the feedback

* Importing PrayerTimesCalculator

* Update const.py
2022-10-04 06:36:06 +02:00
J. Nick Koston a3989b90fe Bump dbus-fast to 1.23.0 (#79570) 2022-10-03 16:44:54 -10:00
Erik Montnemery e93deaa8aa Simplify long term statistics by always supporting unit conversion (#79557) 2022-10-03 21:50:05 -04:00
Nathan Spencer eda6f13f8a Remove repairs issue per PR review request (#79561) 2022-10-03 21:17:47 -04:00
J. Nick Koston 2768b2445a Remove call to deprecated bleak register_detection_callback (#79558) 2022-10-03 21:15:09 -04:00
Erik Montnemery 92ca95ca81 Fix preserving long term statistics when entity_id is changed (#79556) 2022-10-03 21:13:48 -04:00
Allen Porter 90637a721c Add option to set a stun server for RTSPtoWebRTC (#72574) 2022-10-03 21:10:28 -04:00
puddly 3c07d40fe7 Bump ZHA dependencies (#79565)
Bump all ZHA dependencies
2022-10-03 20:58:53 -04:00
GitHub Action 7eb101b0c7 [ci skip] Translation update 2022-10-04 00:37:13 +00:00
Tobias Sauerwein 27effc93ad Netatmo bump pyatmo to 7.1.0 (#79562)
Bump pyatmo to 7.1.0
2022-10-04 01:45:31 +03:00
Yuval Aboulafia d08f7f9526 Add clickatell to strict typing (#79497)
* type clickatell

* follow review
2022-10-04 01:02:20 +03:00
Marc Mueller 42de69b6d5 Update mypy to 0.982 (#79560) 2022-10-03 23:21:53 +02:00
mbo18 cfda36ef36 Use device_class duration for NUT sensors (#79353) 2022-10-03 10:12:30 -10:00
Bram Kragten bbaac01da5 Update frontend to 20221003.0 (#79551) 2022-10-03 21:45:28 +02:00
Erik Montnemery a2e3978d53 Don't normalize units of long term statistics (#79320)
* Don't normalize units of long term statistics

* Update statistics.py
2022-10-03 21:42:44 +02:00
Jafar Atili e8650dd4b7 Add climate platform to switchbee integration (#78385)
* Added Climate platform to switchbee integration

* uploaded missing file

* Applied code review feedback from other PR

* Addressed comments from previous PRs

* fixed misspell error

* fixed mistake in the code

* added type hints

* fixes

* fixes

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update homeassistant/components/switchbee/entity.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* fixes

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* fixes

* Update homeassistant/components/switchbee/climate.py

* Update homeassistant/components/switchbee/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* more fixes

Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-03 21:34:02 +03:00
Raman Gupta 9b7eb6b5a1 Reduce coverage gaps for zwave_js (#79520)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-10-03 20:24:11 +02:00
Petro31 f3007b22c4 Allow setting set_percentage and set_preset_mode of template fan without turning on (#75656)
* decouple set_percentage and set_preset_mode from entity state

* correct set_percent self._state logic

* Add tests

* remove _VALUD_STATES

* decouple percent and preset_mode
2022-10-03 20:22:05 +02:00
Guido Schmitz 3e3f7ea995 Rework devolo Home Network tests (#74472) 2022-10-03 18:21:45 +02:00
Ben Randall 55b036ec5e Improve device_automation trigger validation (#75044)
* improve device_automation trigger validation

Validates the trigger configuration against the device_trigger schema before trying to access any of the properties in order to provide better error messages.
Updates the error message to include an explicit indication that the error is coming from a trigger configuration.  The inner error message from the validator can be accessed by viewing the stack trace.
Add test case for trigger missing domain.

Make action and condition validation consistent with trigger.  This is not strictly necessary, but should be helpful for certain use cases that bypass some of the outer validation.

Removed redundant schema elements from humidifier device_trigger.

**Blueprint with missing `domain`**
```
2022-07-12 06:02:18.351 ERROR (MainThread) [homeassistant.setup] Error during setup of component automation
Traceback (most recent call last):
  File "/workspaces/core/homeassistant/setup.py", line 235, in _async_setup_component
    result = await task
  File "/workspaces/core/homeassistant/components/automation/__init__.py", line 241, in async_setup
    if not await _async_process_config(hass, config, component):
  File "/workspaces/core/homeassistant/components/automation/__init__.py", line 648, in _async_process_config
    await async_validate_config_item(hass, raw_config),
  File "/workspaces/core/homeassistant/components/automation/config.py", line 74, in async_validate_config_item
    config[CONF_TRIGGER] = await async_validate_trigger_config(
  File "/workspaces/core/homeassistant/helpers/trigger.py", line 59, in async_validate_trigger_config
    conf = await platform.async_validate_trigger_config(hass, conf)
  File "/workspaces/core/homeassistant/components/device_automation/trigger.py", line 67, in async_validate_trigger_config
    hass, config[CONF_DOMAIN], DeviceAutomationType.TRIGGER
KeyError: 'domain'
```

**Blueprint with missing `property` (specific to zwave_js event schema)**
```
2022-07-12 06:09:54.206 ERROR (MainThread) [homeassistant.components.automation] Blueprint Missing Property generated invalid automation with inputs OrderedDict([('control_switch', '498be56d796836a67406e9ad373d23db')]): required key not provided @ data['property']. Got None
```

**Blueprint with missing `domain`**
```
2022-07-12 06:12:16.080 ERROR (MainThread) [homeassistant.components.automation] Blueprint Missing Domain generated invalid automation with inputs OrderedDict([('control_switch', '498be56d796836a67406e9ad373d23db')]): invalid trigger configuration: required key not provided @ data['domain']. Got <homeassistant.components.blueprint.models.BlueprintInputs object at 0x7f581e097820>
```

**Blueprint with missing `property` (specific to zwave_js event schema)**
```
2022-07-12 06:12:16.680 ERROR (MainThread) [homeassistant.components.automation] Blueprint Missing Property generated invalid automation with inputs OrderedDict([('control_switch', '498be56d796836a67406e9ad373d23db')]): invalid trigger configuration: required key not provided @ data['property']. Got <homeassistant.components.blueprint.models.BlueprintInputs object at 0x7f581c0dc9d0>
```

* Revert humifidier TRIGGER_SCHEMA change.
2022-10-03 16:42:57 +02:00
Maikel Punie 40bdcc3ea7 Bump velbusaio to 2022.10.2 (#79537) 2022-10-03 16:17:08 +02:00
J. Nick Koston aa3aa91358 Bump dbus-fast to 1.22.0 (#79527)
Performance improvements
https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.21.17...v1.22.0
2022-10-03 15:11:51 +02:00
Maikel Punie cb909b4b05 Bumb velbusaio to 2022.10.1 (#79471) 2022-10-03 11:44:20 +02:00
Erik Montnemery 0fdb7052e9 Add comment in recorder about dropping column (#79523)
Add comment in recorder
2022-10-03 11:40:11 +02:00
Hans Oischinger 125c037def Address late review of ViCare (#79458)
Runn blocking I/O of button entity creation in async_add_executor_job
2022-10-03 11:10:25 +02:00
Robert Svensson c05d3c10db Address late comment to deCONZ climate (#79485)
Fix late comment to deCONZ climate #59989
2022-10-03 11:06:13 +02:00
epenet 825f9502ad Align temperature conversion with other converters (#79521)
* Align temperature conversion with other converters

* Add comments and docstring

* Align tests
2022-10-03 10:09:55 +02:00
ehendrix23 47b40e1e61 Add optional default value to average template function/filter (#77499)
* Return None on empty list

* Updated to use default value

* Update comment.
2022-10-03 10:07:19 +02:00
Paulus Schoutsen 61f0d0ea15 Update Nest string (#79516) 2022-10-02 18:51:46 -07:00
Nyro 0431575199 Fix overkiz entity name (#79229) 2022-10-02 21:22:20 -04:00
Michael d7be3c8780 Set Synology DSM update entity to unavailable in case no data from api gathered (#79508) 2022-10-02 21:19:37 -04:00
IceBotYT d6a6d0d754 Fix LaCrosse View not updating (#79474) 2022-10-02 21:14:02 -04:00
J. Nick Koston da960f6ed4 Bump bluetooth dependencies (#79514) 2022-10-02 21:12:14 -04:00
Michael 790eb9e72d Remove deprecated update binary sensor from Synology DSM (#79509) 2022-10-02 21:11:45 -04:00
Jesse Hills 8676012204 Bump aioesphomeapi to 11.1.0 (#79515) 2022-10-02 21:11:18 -04:00
GitHub Action 12358f2446 [ci skip] Translation update 2022-10-03 00:31:05 +00:00
Raman Gupta 3a8282d0c5 Improve zwave_js service error (#79504) 2022-10-02 23:24:06 +02:00
Maciej Bieniek 3b794038b1 Add reauth flow to BraviaTV integration (#79405)
* Raise ConfigEntryAuthFailed

* Add reauth flow

* Add tests

* Patch pair() method to avoid IO

* Remove unused errors dict
2022-10-02 13:07:57 -07:00
Bram Kragten f28e3fb46c Update frontend to 20221002.0 (#79491) 2022-10-02 21:30:54 +02:00
Robert Svensson 14f60dc871 Fix missing string message in UniFi (#79487) 2022-10-02 14:50:01 -04:00
zbeky 81b940ec17 Add EVOLVEO Heat M30v2 TRV (#79462) 2022-10-02 14:34:53 -04:00
TheJulianJES d58e16b990 Fix empty default ZHA configuration (#79475)
* Also add 0 as a default for transition in const.py

This is the same default transition (none) that is used in ZHA's light.py

* Send default values for unconfigured options in ZHA's configuration API

* Remove options that match defaults values before saving
2022-10-02 14:34:15 -04:00
Hung Nguyen 069818940e Skip parsing Flume sensors without location (#79456) 2022-10-02 12:47:07 -04:00
J. Nick Koston 653620345c Bump dbus-fast to 1.20.0 (#79465) 2022-10-02 12:46:01 -04:00
Maximilian 7aacdec8e1 Address late review of nina (#79467)
* Address review

* Remove unused attribute
2022-10-02 08:57:32 -07:00
David F. Mulcahey 547a63e314 Remove unnecessary config entity from ZHA (#79472) 2022-10-02 11:07:19 -04:00
Ryan Fleming 2ea9732419 Support reauth for octoprint (#77213)
* Add reauth flow to octoprint

* Add unit tests around octoprint reauth

* Add missing strings

* Fix unit test mocks
2022-10-02 08:08:45 +02:00
Allen Porter 28809fc7fd Remove dead code code in calendar (#79450) 2022-10-01 23:07:27 -07:00
Ryan Fleming 229e387a1d Bump pyoctoprintapi to version 1.9 (#79449)
Bump to version 1.9
2022-10-01 22:05:53 -07:00
Marc Mueller 89d0b434bc Use explicit return value in azure_event_hub (#79315)
* Use explicit return value in azure_event_hub

* Use abstractmethod
2022-10-01 21:24:25 -07:00
Maximilian 7ae942a62b Fix nina warning state (#76354)
* Fix warning state

* Improve data handling

* Remove duplicate code
2022-10-01 21:22:18 -07:00
Avi Miller 205ce2bac5 Refactor LIFX multizone devices to use extended messages (#79444) 2022-10-01 18:21:48 -10:00
Jevgeni Kiski f95b8ccc20 Improve vallox tests and code quality (#75787)
code quality improvements
2022-10-01 21:13:15 -07:00
Rami Mosleh 38a680c3eb Add reauthenticaion to mikrotik (#74454) 2022-10-01 20:37:24 -07:00
Allen Porter 7b8b73f826 Update nest climate to avoid duplicate set mode commands (#79445) 2022-10-01 21:59:10 -04:00
J. Nick Koston 8a73795f50 Bump bluetooth-adapters to 0.5.3 (#79442) 2022-10-01 21:27:44 -04:00
Tobias Sauerwein 3e411935bb Fix Netatmo scope issue with HA cloud (#79437)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-10-01 21:11:54 -04:00
J. Nick Koston ebc2a751d2 Bump ibeacon-ble to 0.7.3 (#79443) 2022-10-01 20:48:09 -04:00
J. Nick Koston d9191cf2f2 Bump dbus-fast to 1.18.0 (#79440)
Changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.17.0...v1.18.0
2022-10-01 14:45:01 -10:00
Michael a3cd03b70b Fix checking of upgrade API availability during setup of Synology DSM integration (#79435) 2022-10-01 20:43:15 -04:00
J. Nick Koston dac60990ee Ensure bluetooth disconnect callback fires if esphome config entry is reloaded (#79389) 2022-10-01 20:42:54 -04:00
Allen Porter d03553bbf0 Address Google Sheets PR feedback (#78889) 2022-10-01 20:42:11 -04:00
GitHub Action 13c8d22baf [ci skip] Translation update 2022-10-02 00:37:00 +00:00
J. Nick Koston 5055d3ff4b Enable delete device support for iBeacon (#79339) 2022-10-01 14:17:45 -10:00
kingy444 50952f8a1c Powerview bump aiopvapi to 2.0.2 (#79274) 2022-10-01 14:16:16 -10:00
Matrix 944d704011 Fix mqtt reconnect fail when token expired (#79428)
* fix mqtt reconnect fail when token expired

* suggest change
2022-10-02 01:56:36 +03:00
Steven Looman 083db97476 Sort motioneye media items in media browser (#79408)
* Sort media

* KEY_MEDIA_SORT_ATTR should be in const

* Changes after review
2022-10-02 00:36:03 +02:00
Shay Levy f64a4f4a95 Bump aiowebostv to 0.2.1 (#79423) 2022-10-02 00:32:27 +02:00
Garrett 9058b5b9c3 Update sensors for Subaru integration (#66996)
* Update sensor.py

* Change "EV Time to Fully Charged" type to datetime object (HA 2022.2)

* Validate types before accessing dict entries

* Test handling of invalid data from Subaru

* Bump to subarulink 0.4.2

* Incorporate style suggestion

* Update sensor.py to use SensorEntity

* isort tests

* Remove SubaruSensor.current_value

* Fix isort errors

* Resolve conflict from previous PR (add locks)

* Fix linting errors in config_flow.py

* Incorporate PR review comments for sensor

* Incorporate PR review comments for sensor

* Make 3rd party library responsible for API data parsing

* Add type annotations to sensor.py

* Incorporate PR review comments

* Incorporate PR review comments

* Set _attr_has_entity_name = True for sensors
2022-10-02 00:25:49 +02:00
Hans Oischinger 35fa73eee9 vicare: Don't create unsupportedd button entites (#79425)
Button entities should only be offered when the datapoint exists on
the API.
2022-10-01 22:17:25 +03:00
Hans Oischinger 94c825cf4f vicare: Add additional temperature sensors (#79426)
Add additional temperature sensors

New datapoints in PyVicare API
2022-10-01 20:58:57 +02:00
Erik Montnemery 2de273500e Remove state_unit_of_measurement from metadata DB table (#79370)
* Remove state_unit_of_measurement from metadata DB table

* Adjust test
2022-10-01 18:55:00 +02:00
Shay Levy 4cfcf562b5 Bump aioswitcher to 3.0.3 (#79419) 2022-10-01 18:34:47 +02:00
Mick Vleeshouwer e7724a6593 Fix low speed cover in Overkiz integration (#79416)
Fix low speed cover
2022-10-01 19:33:41 +03:00
uvjustin 82af726e21 Fix onvif snapshot fallback (#79394)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-01 18:28:15 +02:00
Shay Levy f1f01429f4 Add Switcher Breeze support (#78596)
* Add switcher Breeze support

* Review comments and updates for aioswitcher
2022-10-01 19:14:55 +03:00
Jan Bouwhuis 9c9c8b324a Ignore an '' value_template result for MQTT sensor (#79417)
Do not write state if payload is ''
2022-10-01 19:00:54 +03:00
Kevin Stillhammer 31ddf6cc31 Log config_flow errors for waze_travel_time (#79352) 2022-10-01 08:56:47 -07:00
Avi Miller 886e636565 Bump aiolifx to 0.8.6 (#79393) 2022-10-01 17:05:02 +02:00
Shay Levy 062ee75de9 Bump aioswitcher to 3.0.2 (#79399)
Bump aioswitcher to 3.0.2
2022-10-01 18:04:11 +03:00
J. Nick Koston ec8901b9af Improve robustness of linking homekit yaml to config entries (#79386) 2022-10-01 16:44:45 +02:00
Maciej Bieniek 8ff12eacd4 Do not use AQI device class for CAQI sensor in Airly integration (#79402) 2022-10-01 16:33:11 +02:00
Shay Levy b27f0c70be Fix unifiprotect test failing CI (#79406) 2022-10-01 16:22:23 +02:00
G Johansson 816af8573f Fix _attr_name issue in Yale Smart Alarm (#79378)
Fix name issue
2022-10-01 09:52:07 +02:00
GitHub Action bd5ec4e198 [ci skip] Translation update 2022-10-01 00:40:08 +00:00
Marc Mueller 249922ba1b Improve iterable typing (2) (#79296)
* Improve iterable typing (2)

* Use collection
2022-10-01 00:13:15 +02:00
Marc Mueller 3a9ecab98a Improve iterable typing (1) (#79295) 2022-10-01 00:12:39 +02:00
Joakim Plate fbcf6cb03c Bump fjaraskupan to 2.1.0 (#79383)
* Make sure fan turns off on 0 percentage

* Remember old percentage

* Bump fjaraskupan to 1.2.0
2022-10-01 00:01:44 +02:00
Jan-Philipp Litza 2a45738d97 Add state_class MEASUREMENT to lacrosse temperature and humidity sensors (#79379) 2022-09-30 23:37:50 +03:00
Robert Svensson 2ce837f588 Resolve late comments to deCONZ sensor (#79380)
Resolve late comments to deCONZ sensor #79137
2022-09-30 21:49:59 +02:00
epenet b649ef8d87 Realign util constants with 2022.9.7 (#79357) 2022-09-30 14:38:11 -04:00
Shay Levy c70ca1572b Make Shelly update sensors disabled by default (#79376) 2022-09-30 14:37:58 -04:00
Joakim Plate 5cdf4220ee Fjaraskupan stop on 0 percentage (#79367)
* Make sure fan turns off on 0 percentage

* Remember old percentage
2022-09-30 18:41:38 +02:00
J. Nick Koston 6694d06b37 Remove iBeacon devices that rotate their major,minor and mac (#79338) 2022-09-30 08:46:45 -04:00
J. Nick Koston ca0cd19dc9 Switch to using new esphome bluetooth_proxy_version field (#79331) 2022-09-30 08:29:36 -04:00
Michał Huryn ed044acca7 Remove blebox AirQuality platform (#77873)
* AirQuality functionality moved to sensors, tests moved accordingly.

* Refreshed fixtures comments.
2022-09-30 11:37:47 +02:00
epenet ac7b4e7569 Make temperature conversions private (#79349) 2022-09-30 11:07:10 +02:00
epenet fb7079c62c Adjust icons with new device classes (#79348)
* Adjust icons with new device classes

* Fix mysensors tests

* Fix mysensors tests
2022-09-30 10:41:18 +02:00
J. Nick Koston 52cdae254c Bump govee-ble to 0.19.1 to handle another H5181 (#79340)
fixes #79188
2022-09-30 10:33:14 +02:00
dependabot[bot] 1cb5a45379 Bump actions/cache from 3.0.8 to 3.0.9 (#79344)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-30 08:52:49 +02:00
Erik Montnemery bc2dffabc4 Improve naming of units used in statistics (#79276) 2022-09-30 08:38:44 +02:00
Zack Barett 0001270bad Add Third Reality to Zigbee Iot standards (#79341) 2022-09-29 23:13:09 -04:00
Paulus Schoutsen 6e893d9162 Store alternative domain for Zeroconf homekit discovery (#79240) 2022-09-29 22:21:00 -04:00
Duco Sebel aa6f15b1e2 Use SensorDeviceClass.VOLUME in HomeWizard (#79323)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-09-29 21:51:18 -04:00
uvjustin 2688e5b2d4 Mask spotify content in owntone library (#79247) 2022-09-29 21:07:26 -04:00
GitHub Action 21b078eeb7 [ci skip] Translation update 2022-09-30 00:42:29 +00:00
Vincent Giorgi d5b966d942 Add Airthings BLE component (#77284)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-29 15:55:45 -04:00
J. Nick Koston a01f18a3ac Handle short local names from esphome proxies (#79321) 2022-09-29 14:37:31 -04:00
Robert Hillis d7d6637d79 Unregister Google sheets services during unload (#79314)
* Unregister services during unload - Google Sheets

* uno mas
2022-09-29 20:29:41 +02:00
ehendrix23 ba6a81c565 Resolve traceback error when using variables in template triggers (#77287)
Co-authored-by: Erik <erik@montnemery.com>
2022-09-29 13:26:28 -04:00
Dennis Schroer ee32e0eb3f Update huisbaasje-client 0.1.0 to energyflip-client 0.2.0 (#79233) 2022-09-29 13:25:23 -04:00
Aaron Bach b659a19f4a Don't create Repairs issue on Guardian entity replacement (#79311) 2022-09-29 13:24:52 -04:00
HarvsG f645965172 Add repair for missing Bayesian prob_given_false (#79303) 2022-09-29 13:24:06 -04:00
Bram Kragten 114db26fcf Update frontend to 20220929.0 (#79317) 2022-09-29 13:22:41 -04:00
Maciej Bieniek 11c09f4fd8 Check if new_version is not empty string in Shelly update platform (#79300) 2022-09-29 13:22:30 -04:00
Aaron Bach d742e65ef5 Don't create Repairs issue on RainMachine entity replacement (#79310)
* Don't create Repairs issue on RainMachine entity replacement

* Strings
2022-09-29 18:22:28 +02:00
Aaron Bach db1797beb4 Use correct exception type for RainMachine select API error (#79309) 2022-09-29 08:58:16 -06:00
epenet da445e515b Rename options key in rainmachine (#79249) 2022-09-29 08:19:28 -06:00
Jafar Atili 75510b8e90 Add cover platform for switchbee integration (#78383)
* Added Platform cover for switchbee integration

* added cover to .coveragerc

* Applied code review feedback from other PR

* Addressed comments from other PRs

* rebased

* Re-add carriage return

* Update homeassistant/components/switchbee/cover.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/switchbee/cover.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/switchbee/cover.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/switchbee/cover.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* addressed CR comments

* fixes

* fixes

* more fixes

* more fixes

* separate entities for cover and somfy cover

* fixed isort

* more fixes

* more fixes

* Update homeassistant/components/switchbee/cover.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/switchbee/cover.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* more fixes

* more fixes

* more

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-29 15:03:39 +02:00
J. Nick Koston 0b5289f748 Wait for disconnect when we are out of connection ble slots in esphome (#79246) 2022-09-29 08:42:55 -04:00
Paulus Schoutsen 616b85df31 Add DialogFlow to Google brand (#79245) 2022-09-29 08:34:51 -04:00
Rami Mosleh e7764b8bf1 Add ConfigEntry template function (#78030)
* Add ConfigEntry template function

* Remove looking up entry_id by entry title
2022-09-29 12:41:59 +02:00
Rami Mosleh d0ac1073a0 Allow entries with same user_key for Pushover (#77904)
* Allow entries with same user_key for Pushover

* remove unique_id completely

* Abort reauth if entered api_key already exists
Update tests
2022-09-29 12:40:53 +02:00
Paulus Schoutsen a1c26cd4cd Add Leviton brand (#79244) 2022-09-29 12:28:51 +02:00
epenet 4bd686bdb1 Use SensorDeviceClass.DISTANCE in components (#79285)
* Use SensorDeviceClass.DISTANCE in components

* Adjust mysensors
2022-09-29 12:19:34 +02:00
epenet c527defe31 Use SensorDeviceClass.WEIGHT in components (#79277) 2022-09-29 11:28:59 +02:00
epenet fab3ee90b2 Use SensorDeviceClass.VOLUME in components (#79253) 2022-09-29 09:38:06 +02:00
epenet 0e764b57c2 Use SensorDeviceClass.SPEED in components (#79262) 2022-09-29 09:37:21 +02:00
Robert Svensson a0357767ef Fix late comments to deCONZ sensors from #79137 (#79272)
* Fix late comments from #79137

* Fix comment
2022-09-29 09:33:31 +02:00
epenet f9d36fe493 Use SensorDeviceClass.SPEED in rfxtrx (#79261)
Use SensorDeviceClass.VOLUME in rfxtrx
2022-09-29 09:20:13 +02:00
epenet 0fa0ab855b Use SensorDeviceClass.SPEED in metoffice (#79263) 2022-09-29 09:19:20 +02:00
Kevin Addeman 21693b0022 Bump pylutron_caseta to 0.16.0 (#79243) 2022-09-28 19:51:45 -10:00
uvjustin 79713d637a Use Owntone name for forked-daapd (#79214)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-09-28 22:46:27 -04:00
PeteRager 504ce8e93a Set nest entities as unavailable on lost connection (#78773)
* NEST - Issues with lost internet connectivity #70479

Update Climate and Sensor entities to be unavailable when the device connectivity trait indicates the device is offline.

The prior behavior, the last known values would be displayed indefinitely if the device lost internet connectivity.  This was creating the illusion that the device was still connected.  With this change, the Home Assistant entities will become unavailable when the device loses connectivity.

* Update formatting

* Add doc strings, fix indentation

* Fix doc strings

* Update test_climate_sdm.py

* Update test_climate_sdm.py

* Update test_sensor_sdm.py

* Update test_sensor_sdm.py

* more formatting fixes

* Place availability logic in mixin

1. Consolidate repeated code into mixin and apply mixin to Climate and Sensor entities
2. Return true instead of super.available()
3. No unit test changes required to maintain code coverage

* Define self._device is mixin to make linter happier

* Remove logger used for debugging

* restore whitespace

* Fix test due to underlying merge change

* Update availability_mixin.py

* Move availability logic into device_info

* Update sensor_sdm.py
2022-09-28 19:23:11 -07:00
uvjustin 1a9bcafbd2 Clean up Add spotify support to forked-daapd (#79213) 2022-09-28 21:54:12 -04:00
Kevin Stillhammer 45ecddb9aa Remove route sensor of here_travel_time (#79211) 2022-09-28 21:50:30 -04:00
Robert Svensson 473d7c484d Improve deCONZ sensor classes (#79137) 2022-09-28 21:45:15 -04:00
HarvsG 768b83139f Add to issue registry if user has mirrored entries for breaking in #67631 (#79208)
Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2022-09-28 21:39:15 -04:00
Raman Gupta 3884b4b6bf Bump zwave-js-server-python to 0.42.0 (#79020) 2022-09-28 21:24:04 -04:00
GitHub Action 63f2c4ab98 [ci skip] Translation update 2022-09-29 00:36:54 +00:00
Paulus Schoutsen 14c68c8692 Add ubiquiti brand (#79232) 2022-09-28 20:30:50 -04:00
Paulus Schoutsen e3ed4eeb76 Add Denon brand (#79230) 2022-09-28 23:09:53 +02:00
Paulus Schoutsen b43e19a0c1 Add Cast + Chat to Google brand (#79231) 2022-09-28 23:09:42 +02:00
Paulus Schoutsen e6becabe11 Add fritz brand (#79226) 2022-09-28 22:45:35 +02:00
Paulus Schoutsen 62c114e849 Add Apple brand (#79227) 2022-09-28 16:21:09 -04:00
J. Nick Koston b49d499ab6 Bump yalexs to 1.2.4 (#79222) 2022-09-28 22:17:29 +02:00
Franck Nijhof 99f4ce9e5a Bump version to 2022.11.0dev0 (#79224) 2022-09-28 21:51:06 +02:00
Paulus Schoutsen c40c772f74 Finish Google brand (#79225) 2022-09-28 21:43:51 +02:00
2730 changed files with 68761 additions and 18657 deletions
-1
View File
@@ -46,7 +46,6 @@ base_platforms: &base_platforms
# Extra components that trigger the full suite
components: &components
- homeassistant/components/alert/**
- homeassistant/components/alexa/**
- homeassistant/components/application_credentials/**
- homeassistant/components/auth/**
+17 -5
View File
@@ -37,6 +37,8 @@ omit =
homeassistant/components/airnow/sensor.py
homeassistant/components/airthings/__init__.py
homeassistant/components/airthings/sensor.py
homeassistant/components/airthings_ble/__init__.py
homeassistant/components/airthings_ble/sensor.py
homeassistant/components/airtouch4/__init__.py
homeassistant/components/airtouch4/climate.py
homeassistant/components/airtouch4/const.py
@@ -159,6 +161,8 @@ omit =
homeassistant/components/brunt/const.py
homeassistant/components/brunt/cover.py
homeassistant/components/bsblan/climate.py
homeassistant/components/bsblan/const.py
homeassistant/components/bsblan/entity.py
homeassistant/components/bt_home_hub_5/device_tracker.py
homeassistant/components/bt_smarthub/device_tracker.py
homeassistant/components/buienradar/sensor.py
@@ -405,9 +409,11 @@ omit =
homeassistant/components/flick_electric/sensor.py
homeassistant/components/flock/notify.py
homeassistant/components/flume/__init__.py
homeassistant/components/flume/binary_sensor.py
homeassistant/components/flume/coordinator.py
homeassistant/components/flume/entity.py
homeassistant/components/flume/sensor.py
homeassistant/components/flume/util.py
homeassistant/components/folder/sensor.py
homeassistant/components/folder_watcher/*
homeassistant/components/foobot/sensor.py
@@ -534,6 +540,7 @@ omit =
homeassistant/components/hunterdouglas_powerview/entity.py
homeassistant/components/hunterdouglas_powerview/model.py
homeassistant/components/hunterdouglas_powerview/scene.py
homeassistant/components/hunterdouglas_powerview/select.py
homeassistant/components/hunterdouglas_powerview/sensor.py
homeassistant/components/hunterdouglas_powerview/shade_data.py
homeassistant/components/hunterdouglas_powerview/util.py
@@ -578,6 +585,7 @@ omit =
homeassistant/components/intellifire/coordinator.py
homeassistant/components/intellifire/entity.py
homeassistant/components/intellifire/fan.py
homeassistant/components/intellifire/number.py
homeassistant/components/intellifire/sensor.py
homeassistant/components/intellifire/switch.py
homeassistant/components/intesishome/*
@@ -608,7 +616,6 @@ omit =
homeassistant/components/izone/__init__.py
homeassistant/components/izone/climate.py
homeassistant/components/izone/discovery.py
homeassistant/components/jellyfin/__init__.py
homeassistant/components/jellyfin/media_source.py
homeassistant/components/joaoapps_join/*
homeassistant/components/juicenet/__init__.py
@@ -657,8 +664,6 @@ omit =
homeassistant/components/kostal_plenticore/switch.py
homeassistant/components/kwb/sensor.py
homeassistant/components/lacrosse/sensor.py
homeassistant/components/lametric/notify.py
homeassistant/components/lametric/number.py
homeassistant/components/lannouncer/notify.py
homeassistant/components/lastfm/sensor.py
homeassistant/components/launch_library/__init__.py
@@ -855,6 +860,7 @@ omit =
homeassistant/components/noaa_tides/sensor.py
homeassistant/components/nobo_hub/__init__.py
homeassistant/components/nobo_hub/climate.py
homeassistant/components/nobo_hub/sensor.py
homeassistant/components/norway_air/air_quality.py
homeassistant/components/notify_events/notify.py
homeassistant/components/notion/__init__.py
@@ -1101,11 +1107,10 @@ omit =
homeassistant/components/sesame/lock.py
homeassistant/components/seven_segments/image_processing.py
homeassistant/components/seventeentrack/sensor.py
homeassistant/components/shelly/__init__.py
homeassistant/components/shelly/binary_sensor.py
homeassistant/components/shelly/climate.py
homeassistant/components/shelly/coordinator.py
homeassistant/components/shelly/entity.py
homeassistant/components/shelly/light.py
homeassistant/components/shelly/number.py
homeassistant/components/shelly/sensor.py
homeassistant/components/shelly/utils.py
@@ -1161,6 +1166,7 @@ omit =
homeassistant/components/smtp/notify.py
homeassistant/components/snapcast/*
homeassistant/components/snmp/*
homeassistant/components/snooz/__init__.py
homeassistant/components/solaredge/__init__.py
homeassistant/components/solaredge/coordinator.py
homeassistant/components/solaredge/sensor.py
@@ -1230,7 +1236,9 @@ omit =
homeassistant/components/swisscom/device_tracker.py
homeassistant/components/switchbee/__init__.py
homeassistant/components/switchbee/button.py
homeassistant/components/switchbee/climate.py
homeassistant/components/switchbee/coordinator.py
homeassistant/components/switchbee/cover.py
homeassistant/components/switchbee/entity.py
homeassistant/components/switchbee/light.py
homeassistant/components/switchbee/switch.py
@@ -1421,6 +1429,7 @@ omit =
homeassistant/components/velbus/const.py
homeassistant/components/velbus/cover.py
homeassistant/components/velbus/diagnostics.py
homeassistant/components/velbus/entity.py
homeassistant/components/velbus/light.py
homeassistant/components/velbus/sensor.py
homeassistant/components/velbus/switch.py
@@ -1573,6 +1582,9 @@ omit =
homeassistant/components/youless/const.py
homeassistant/components/youless/sensor.py
homeassistant/components/zabbix/*
homeassistant/components/zamg/__init__.py
homeassistant/components/zamg/const.py
homeassistant/components/zamg/coordinator.py
homeassistant/components/zamg/sensor.py
homeassistant/components/zamg/weather.py
homeassistant/components/zengge/light.py
+8 -2
View File
@@ -5,7 +5,7 @@
"postCreateCommand": "script/setup",
"postStartCommand": "script/bootstrap",
"containerEnv": { "DEVCONTAINER": "1" },
"appPort": 8123,
"appPort": ["8123:8123"],
"runArgs": ["-e", "GIT_EDITOR=code --wait"],
"extensions": [
"ms-python.vscode-pylance",
@@ -17,8 +17,14 @@
// Please keep this file in sync with settings in home-assistant/.vscode/settings.default.json
"settings": {
"python.pythonPath": "/usr/local/bin/python",
"python.linting.pylintEnabled": true,
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.blackPath": "/usr/local/bin/black",
"python.linting.flake8Path": "/usr/local/bin/flake8",
"python.linting.pycodestylePath": "/usr/local/bin/pycodestyle",
"python.linting.pydocstylePath": "/usr/local/bin/pydocstyle",
"python.linting.mypyPath": "/usr/local/bin/mypy",
"python.linting.pylintPath": "/usr/local/bin/pylint",
"python.formatting.provider": "black",
"python.testing.pytestArgs": ["--no-cov"],
"editor.formatOnPaste": false,
+2 -2
View File
@@ -46,9 +46,9 @@ body:
attributes:
label: What type of installation are you running?
description: >
Can be found in: [Settings -> About](https://my.home-assistant.io/redirect/info/).
Can be found in: [Settings -> System-> Repairs -> Three Dots in Upper Right -> System information](https://my.home-assistant.io/redirect/system_health/).
[![Open your Home Assistant instance and show your Home Assistant version information.](https://my.home-assistant.io/badges/info.svg)](https://my.home-assistant.io/redirect/info/)
[![Open your Home Assistant instance and show health information about your system.](https://my.home-assistant.io/badges/system_health.svg)](https://my.home-assistant.io/redirect/system_health/)
options:
- Home Assistant OS
- Home Assistant Container
-12
View File
@@ -75,18 +75,6 @@ If the code communicates with devices, web services, or third-party tools:
- [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [ ] Untested files have been added to `.coveragerc`.
The integration reached or maintains the following [Integration Quality Scale][quality-scale]:
<!--
The Integration Quality Scale scores an integration on the code quality
and user experience. Each level of the quality scale consists of a list
of requirements. We highly recommend getting your integration scored!
-->
- [ ] No score or internal
- [ ] 🥈 Silver
- [ ] 🥇 Gold
- [ ] 🏆 Platinum
<!--
This project is very active and we have a high turnover of pull requests.
+15 -15
View File
@@ -24,12 +24,12 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
with:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -67,10 +67,10 @@ jobs:
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -100,7 +100,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
@@ -115,7 +115,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -146,13 +146,13 @@ jobs:
echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE
- name: Login to DockerHub
uses: docker/login-action@v2.0.0
uses: docker/login-action@v2.1.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.0.0
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -198,7 +198,7 @@ jobs:
- yellow
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set build additional args
run: |
@@ -212,13 +212,13 @@ jobs:
fi
- name: Login to DockerHub
uses: docker/login-action@v2.0.0
uses: docker/login-action@v2.1.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.0.0
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -241,7 +241,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -280,18 +280,18 @@ jobs:
- "homeassistant"
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Login to DockerHub
if: matrix.registry == 'homeassistant'
uses: docker/login-action@v2.0.0
uses: docker/login-action@v2.1.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
if: matrix.registry == 'ghcr.io/home-assistant'
uses: docker/login-action@v2.0.0
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
+211 -78
View File
@@ -20,13 +20,11 @@ on:
type: boolean
env:
CACHE_VERSION: 1
PIP_CACHE_VERSION: 1
HA_SHORT_VERSION: 2022.10
# Pin latest Python patch versions to avoid issues
# with runners using different versions.
DEFAULT_PYTHON: 3.9.14
ALL_PYTHON_VERSIONS: "['3.9.14', '3.10.7']"
CACHE_VERSION: 3
PIP_CACHE_VERSION: 3
HA_SHORT_VERSION: 2022.11
DEFAULT_PYTHON: 3.9
ALL_PYTHON_VERSIONS: "['3.9', '3.10']"
PRE_COMMIT_CACHE: ~/.cache/pre-commit
PIP_CACHE: /tmp/pip-cache
SQLALCHEMY_WARN_20: 1
@@ -58,21 +56,21 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Generate partial Python venv restore key
id: generate_python_cache_key
run: >-
echo "::set-output name=key::venv-${{ env.CACHE_VERSION }}-${{
echo "key=venv-${{ env.CACHE_VERSION }}-${{
hashFiles('requirements_test.txt') }}-${{
hashFiles('requirements_all.txt') }}-${{
hashFiles('homeassistant/package_constraints.txt') }}"
hashFiles('homeassistant/package_constraints.txt') }}" >> $GITHUB_OUTPUT
- name: Generate partial pre-commit restore key
id: generate_pre-commit_cache_key
run: >-
echo "::set-output name=key::${{ env.CACHE_VERSION }}-${{ env.DEFAULT_PYTHON }}-${{
hashFiles('.pre-commit-config.yaml') }}"
echo "key=pre-commit-${{ env.CACHE_VERSION }}-${{
hashFiles('.pre-commit-config.yaml') }}" >> $GITHUB_OUTPUT
- name: Filter for core changes
uses: dorny/paths-filter@v2.10.2
uses: dorny/paths-filter@v2.11.1
id: core
with:
filters: .core_files.yaml
@@ -87,7 +85,7 @@ jobs:
echo "Result:"
cat .integration_paths.yaml
- name: Filter for integration changes
uses: dorny/paths-filter@v2.10.2
uses: dorny/paths-filter@v2.11.1
id: integrations
with:
filters: .integration_paths.yaml
@@ -148,19 +146,19 @@ jobs:
# Output & sent to GitHub Actions
echo "python_versions: ${ALL_PYTHON_VERSIONS}"
echo "::set-output name=python_versions::${ALL_PYTHON_VERSIONS}"
echo "python_versions=${ALL_PYTHON_VERSIONS}" >> $GITHUB_OUTPUT
echo "test_full_suite: ${test_full_suite}"
echo "::set-output name=test_full_suite::${test_full_suite}"
echo "test_full_suite=${test_full_suite}" >> $GITHUB_OUTPUT
echo "integrations_glob: ${integrations_glob}"
echo "::set-output name=integrations_glob::${integrations_glob}"
echo "integrations_glob=${integrations_glob}" >> $GITHUB_OUTPUT
echo "test_group_count: ${test_group_count}"
echo "::set-output name=test_group_count::${test_group_count}"
echo "test_group_count=${test_group_count}" >> $GITHUB_OUTPUT
echo "test_groups: ${test_groups}"
echo "::set-output name=test_groups::${test_groups}"
echo "test_groups=${test_groups}" >> $GITHUB_OUTPUT
echo "tests: ${tests}"
echo "::set-output name=tests::${tests}"
echo "tests=${tests}" >> $GITHUB_OUTPUT
echo "tests_glob: ${tests_glob}"
echo "::set-output name=tests_glob::${tests_glob}"
echo "tests_glob=${tests_glob}" >> $GITHUB_OUTPUT
pre-commit:
name: Prepare pre-commit base
@@ -169,18 +167,21 @@ jobs:
- info
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Create Python virtual environment
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -190,10 +191,12 @@ jobs:
pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Install pre-commit dependencies
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -208,18 +211,21 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -227,10 +233,12 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -257,18 +265,21 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -276,10 +287,12 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -309,18 +322,21 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -328,10 +344,12 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -350,18 +368,21 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -369,10 +390,12 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -472,20 +495,21 @@ jobs:
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Generate partial pip restore key
id: generate-pip-key
run: >-
echo "::set-output name=key::pip-${{ env.PIP_CACHE_VERSION }}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')"
echo "key=pip-${{ env.PIP_CACHE_VERSION }}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: >-
@@ -493,7 +517,7 @@ jobs:
needs.info.outputs.python_cache_key }}
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: ${{ env.PIP_CACHE }}
key: >-
@@ -522,7 +546,7 @@ jobs:
python -m venv venv
. venv/bin/activate
python --version
pip install --cache-dir=$PIP_CACHE -U "pip>=21.0,<22.3" setuptools wheel
pip install --cache-dir=$PIP_CACHE -U "pip>=21.0,<22.4" setuptools wheel
pip install --cache-dir=$PIP_CACHE -r requirements_all.txt --use-deprecated=legacy-resolver
pip install --cache-dir=$PIP_CACHE -r requirements_test.txt --use-deprecated=legacy-resolver
pip install -e .
@@ -535,15 +559,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: >-
@@ -567,15 +592,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: >-
@@ -600,15 +626,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: >-
@@ -644,15 +671,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: >-
@@ -692,15 +720,16 @@ jobs:
name: Run pip check ${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: >-
@@ -746,15 +775,16 @@ jobs:
bluez \
ffmpeg
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -823,7 +853,7 @@ jobs:
-p no:sugar \
tests/components/${{ matrix.group }}
- name: Upload coverage artifact
uses: actions/upload-artifact@v3.1.0
uses: actions/upload-artifact@v3.1.1
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -831,6 +861,109 @@ jobs:
run: |
./script/check_dirty
pytest-mariadb:
runs-on: ubuntu-20.04
services:
mariadb:
image: mariadb:10.9.3
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: password
options: --health-cmd="mysqladmin ping -uroot -ppassword" --health-interval=5s --health-timeout=2s --health-retries=3
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
- base
- gen-requirements-all
- hassfest
- lint-black
- lint-other
- lint-isort
- mypy
strategy:
fail-fast: false
matrix:
python-version: ${{ fromJson(needs.info.outputs.python_versions) }}
name: >-
Run tests Python ${{ matrix.python-version }} (mariadb)
steps:
- name: Install additional OS dependencies
run: |
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg \
libmariadb-dev-compat
- name: Check out code from GitHub
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.11
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Register Python problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/python.json"
- name: Install Pytest Annotation plugin
run: |
. venv/bin/activate
# Ideally this should be part of our dependencies
# However this plugin is fairly new and doesn't run correctly
# on a non-GitHub environment.
pip install pytest-github-actions-annotate-failures==0.1.3
- name: Register pytest slow test problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Install SQL Python libraries
run: |
. venv/bin/activate
pip install mysqlclient sqlalchemy_utils
- name: Run pytest (partially)
timeout-minutes: 10
shell: bash
run: |
. venv/bin/activate
python --version
python3 -X dev -m pytest \
-qq \
--timeout=9 \
-n 1 \
--cov="homeassistant.components.recorder" \
--cov-report=xml \
--cov-report=term-missing \
-o console_output_style=count \
--durations=0 \
--durations-min=10 \
-p no:sugar \
--dburl=mysql://root:password@127.0.0.1/homeassistant-test \
tests/components/recorder
- name: Upload coverage artifact
uses: actions/upload-artifact@v3.1.1
with:
name: coverage-${{ matrix.python-version }}-mariadb
path: coverage.xml
- name: Check dirty
run: |
./script/check_dirty
coverage:
name: Upload test coverage to Codecov
runs-on: ubuntu-20.04
@@ -839,7 +972,7 @@ jobs:
- pytest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Download all coverage artifacts
uses: actions/download-artifact@v3
- name: Upload coverage to Codecov (full coverage)
+3 -3
View File
@@ -17,7 +17,7 @@ jobs:
# - No PRs marked as no-stale
# - No issues marked as no-stale or help-wanted
- name: 90 days stale issues & PRs policy
uses: actions/stale@v6.0.0
uses: actions/stale@v6.0.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
@@ -54,7 +54,7 @@ jobs:
# - No PRs marked as no-stale or new-integrations
# - No issues (-1)
- name: 30 days stale PRs policy
uses: actions/stale@v6.0.0
uses: actions/stale@v6.0.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
@@ -79,7 +79,7 @@ jobs:
# - No Issues marked as no-stale or help-wanted
# - No PRs (-1)
- name: Needs more information stale issues policy
uses: actions/stale@v6.0.0
uses: actions/stale@v6.0.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
only-labels: "needs-more-information"
+4 -4
View File
@@ -21,10 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -40,10 +40,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
uses: actions/setup-python@v4.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
+7 -8
View File
@@ -22,7 +22,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Get information
id: info
@@ -57,13 +57,13 @@ jobs:
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v3.1.0
uses: actions/upload-artifact@v3.1.1
with:
name: env_file
path: ./.env_file
- name: Upload requirements_diff
uses: actions/upload-artifact@v3.1.0
uses: actions/upload-artifact@v3.1.1
with:
name: requirements_diff
path: ./requirements_diff.txt
@@ -79,7 +79,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Download env_file
uses: actions/download-artifact@v3
@@ -92,7 +92,7 @@ jobs:
name: requirements_diff
- name: Build wheels
uses: home-assistant/wheels@2022.06.7
uses: home-assistant/wheels@2022.10.1
with:
abi: cp310
tag: musllinux_1_2
@@ -116,7 +116,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
uses: actions/checkout@v3.1.0
- name: Download env_file
uses: actions/download-artifact@v3
@@ -140,7 +140,6 @@ jobs:
sed -i "s|# pycups|pycups|g" ${requirement_file}
sed -i "s|# homekit|homekit|g" ${requirement_file}
sed -i "s|# decora_wifi|decora_wifi|g" ${requirement_file}
sed -i "s|# face_recognition|face_recognition|g" ${requirement_file}
sed -i "s|# python-gammu|python-gammu|g" ${requirement_file}
sed -i "s|# opencv-python-headless|opencv-python-headless|g" ${requirement_file}
done
@@ -161,7 +160,7 @@ jobs:
sed -i "/numpy/d" homeassistant/package_constraints.txt
- name: Build wheels
uses: home-assistant/wheels@2022.06.7
uses: home-assistant/wheels@2022.10.1
with:
abi: cp310
tag: musllinux_1_2
+6 -5
View File
@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.38.0
rev: v3.1.0
hooks:
- id: pyupgrade
args: [--py39-plus]
- repo: https://github.com/psf/black
rev: 22.8.0
rev: 22.10.0
hooks:
- id: black
args:
@@ -61,7 +61,7 @@ repos:
- --branch=master
- --branch=rc
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.27.1
rev: v1.28.0
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
@@ -69,11 +69,12 @@ repos:
hooks:
- id: prettier
- repo: https://github.com/cdce8p/python-typing-update
rev: v0.3.5
rev: v0.5.0
hooks:
# Run `python-typing-update` hook manually from time to time
# to update python typing syntax.
# Will require manual work, before submitting changes!
# pre-commit run --hook-stage manual python-typing-update --all-files
- id: python-typing-update
stages: [manual]
args:
@@ -113,7 +114,7 @@ repos:
pass_filenames: false
language: script
types: [text]
files: ^(homeassistant/.+/(manifest|strings)\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py)$
files: ^(homeassistant/.+/(manifest|strings)\.json|homeassistant/brands/.*\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py)$
- id: hassfest-metadata
name: hassfest-metadata
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata
+15 -1
View File
@@ -2,7 +2,7 @@
# If component is fully covered with type annotations, please add it here
# to enable strict mypy checks.
# Stict typing is enabled by default for core files.
# Strict typing is enabled by default for core files.
# Add it here to add 'disallow_any_generics'.
# --- Only for core file! ---
homeassistant.exceptions
@@ -57,6 +57,7 @@ homeassistant.components.ambient_station.*
homeassistant.components.amcrest.*
homeassistant.components.ampio.*
homeassistant.components.anthemav.*
homeassistant.components.aqualogic.*
homeassistant.components.aseko_pool_live.*
homeassistant.components.asuswrt.*
homeassistant.components.auth.*
@@ -64,7 +65,9 @@ homeassistant.components.automation.*
homeassistant.components.awair.*
homeassistant.components.backup.*
homeassistant.components.baf.*
homeassistant.components.bayesian.*
homeassistant.components.binary_sensor.*
homeassistant.components.blockchain.*
homeassistant.components.bluetooth.*
homeassistant.components.bluetooth_tracker.*
homeassistant.components.bmw_connected_drive.*
@@ -77,6 +80,8 @@ homeassistant.components.calendar.*
homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.cover.*
homeassistant.components.clickatell.*
homeassistant.components.clicksend.*
homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.*
homeassistant.components.deconz.*
@@ -116,6 +121,7 @@ homeassistant.components.geocaching.*
homeassistant.components.gios.*
homeassistant.components.goalzero.*
homeassistant.components.google.*
homeassistant.components.google_sheets.*
homeassistant.components.greeneye_monitor.*
homeassistant.components.group.*
homeassistant.components.guardian.*
@@ -160,6 +166,7 @@ homeassistant.components.lacrosse_view.*
homeassistant.components.lametric.*
homeassistant.components.laundrify.*
homeassistant.components.lcn.*
homeassistant.components.lidarr.*
homeassistant.components.lifx.*
homeassistant.components.light.*
homeassistant.components.litterrobot.*
@@ -208,6 +215,7 @@ homeassistant.components.pvoutput.*
homeassistant.components.qnap_qsw.*
homeassistant.components.rainmachine.*
homeassistant.components.rdw.*
homeassistant.components.radarr.*
homeassistant.components.recollect_waste.*
homeassistant.components.recorder.*
homeassistant.components.remote.*
@@ -230,9 +238,12 @@ homeassistant.components.sensor.*
homeassistant.components.senz.*
homeassistant.components.shelly.*
homeassistant.components.simplisafe.*
homeassistant.components.skybell.*
homeassistant.components.slack.*
homeassistant.components.sleepiq.*
homeassistant.components.smhi.*
homeassistant.components.snooz.*
homeassistant.components.sonarr.*
homeassistant.components.ssdp.*
homeassistant.components.statistics.*
homeassistant.components.steamist.*
@@ -249,6 +260,7 @@ homeassistant.components.tag.*
homeassistant.components.tailscale.*
homeassistant.components.tautulli.*
homeassistant.components.tcp.*
homeassistant.components.tibber.*
homeassistant.components.tile.*
homeassistant.components.tilt_ble.*
homeassistant.components.tolo.*
@@ -260,6 +272,7 @@ homeassistant.components.trafikverket_train.*
homeassistant.components.trafikverket_weatherstation.*
homeassistant.components.tts.*
homeassistant.components.twentemilieu.*
homeassistant.components.unifi.update
homeassistant.components.unifiprotect.*
homeassistant.components.upcloud.*
homeassistant.components.update.*
@@ -279,6 +292,7 @@ homeassistant.components.websocket_api.*
homeassistant.components.wemo.*
homeassistant.components.whois.*
homeassistant.components.wiz.*
homeassistant.components.wled.*
homeassistant.components.worldclock.*
homeassistant.components.yale_smart_alarm.*
homeassistant.components.zeroconf.*
+24 -17
View File
@@ -19,6 +19,8 @@ build.json @home-assistant/supervisor
# Other code
/homeassistant/scripts/check_config.py @kellerza
/homeassistant/const.py @epenet
/homeassistant/util/ @epenet
# Integrations
/homeassistant/components/abode/ @shred86
@@ -45,6 +47,8 @@ build.json @home-assistant/supervisor
/tests/components/airnow/ @asymworks
/homeassistant/components/airthings/ @danielhiversen
/tests/components/airthings/ @danielhiversen
/homeassistant/components/airthings_ble/ @vincegio
/tests/components/airthings_ble/ @vincegio
/homeassistant/components/airtouch4/ @LonePurpleWolf
/tests/components/airtouch4/ @LonePurpleWolf
/homeassistant/components/airvisual/ @bachya
@@ -55,8 +59,8 @@ build.json @home-assistant/supervisor
/tests/components/aladdin_connect/ @mkmer
/homeassistant/components/alarm_control_panel/ @home-assistant/core
/tests/components/alarm_control_panel/ @home-assistant/core
/homeassistant/components/alert/ @home-assistant/core
/tests/components/alert/ @home-assistant/core
/homeassistant/components/alert/ @home-assistant/core @frenck
/tests/components/alert/ @home-assistant/core @frenck
/homeassistant/components/alexa/ @home-assistant/cloud @ochlocracy
/tests/components/alexa/ @home-assistant/cloud @ochlocracy
/homeassistant/components/almond/ @gcampax @balloob
@@ -281,7 +285,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/ecovacs/ @OverloadUT @mib1185
/homeassistant/components/ecowitt/ @pvizeli
/tests/components/ecowitt/ @pvizeli
/homeassistant/components/edl21/ @mtdcr
/homeassistant/components/efergy/ @tkdrob
/tests/components/efergy/ @tkdrob
/homeassistant/components/egardia/ @jeroenterheerdt
@@ -566,8 +569,8 @@ build.json @home-assistant/supervisor
/tests/components/isy994/ @bdraco @shbatm
/homeassistant/components/izone/ @Swamp-Ig
/tests/components/izone/ @Swamp-Ig
/homeassistant/components/jellyfin/ @j-stienstra
/tests/components/jellyfin/ @j-stienstra
/homeassistant/components/jellyfin/ @j-stienstra @ctalkington
/tests/components/jellyfin/ @j-stienstra @ctalkington
/homeassistant/components/jewish_calendar/ @tsvi
/tests/components/jewish_calendar/ @tsvi
/homeassistant/components/juicenet/ @jesserockz
@@ -602,8 +605,8 @@ build.json @home-assistant/supervisor
/tests/components/kulersky/ @emlove
/homeassistant/components/lacrosse_view/ @IceBotYT
/tests/components/lacrosse_view/ @IceBotYT
/homeassistant/components/lametric/ @robbiet480 @frenck
/tests/components/lametric/ @robbiet480 @frenck
/homeassistant/components/lametric/ @robbiet480 @frenck @bachya
/tests/components/lametric/ @robbiet480 @frenck @bachya
/homeassistant/components/landisgyr_heat_meter/ @vpathuis
/tests/components/landisgyr_heat_meter/ @vpathuis
/homeassistant/components/launch_library/ @ludeeus @DurgNomis-drol
@@ -794,8 +797,8 @@ build.json @home-assistant/supervisor
/tests/components/omnilogic/ @oliver84 @djtimca @gentoosu
/homeassistant/components/onboarding/ @home-assistant/core
/tests/components/onboarding/ @home-assistant/core
/homeassistant/components/oncue/ @bdraco
/tests/components/oncue/ @bdraco
/homeassistant/components/oncue/ @bdraco @peterager
/tests/components/oncue/ @bdraco @peterager
/homeassistant/components/ondilo_ico/ @JeromeHXP
/tests/components/ondilo_ico/ @JeromeHXP
/homeassistant/components/onewire/ @garbled1 @epenet
@@ -819,6 +822,8 @@ build.json @home-assistant/supervisor
/tests/components/openweathermap/ @fabaff @freekode @nzapponi
/homeassistant/components/opnsense/ @mtreinish
/tests/components/opnsense/ @mtreinish
/homeassistant/components/oralb/ @bdraco
/tests/components/oralb/ @bdraco
/homeassistant/components/oru/ @bvlaicu
/homeassistant/components/overkiz/ @imicknl @vlebourl @tetienne
/tests/components/overkiz/ @imicknl @vlebourl @tetienne
@@ -930,8 +935,6 @@ build.json @home-assistant/supervisor
/tests/components/rhasspy/ @balloob @synesthesiam
/homeassistant/components/ridwell/ @bachya
/tests/components/ridwell/ @bachya
/homeassistant/components/ring/ @balloob
/tests/components/ring/ @balloob
/homeassistant/components/risco/ @OnFreund
/tests/components/risco/ @OnFreund
/homeassistant/components/rituals_perfume_genie/ @milanmeu
@@ -964,8 +967,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/schedule/ @home-assistant/core
/tests/components/schedule/ @home-assistant/core
/homeassistant/components/schluter/ @prairieapps
/homeassistant/components/scrape/ @fabaff
/tests/components/scrape/ @fabaff
/homeassistant/components/scrape/ @fabaff @gjohansson-ST @epenet
/tests/components/scrape/ @fabaff @gjohansson-ST @epenet
/homeassistant/components/screenlogic/ @dieselrabbit @bdraco
/tests/components/screenlogic/ @dieselrabbit @bdraco
/homeassistant/components/script/ @home-assistant/core
@@ -1039,6 +1042,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/smhi/ @gjohansson-ST
/tests/components/smhi/ @gjohansson-ST
/homeassistant/components/sms/ @ocalvo
/homeassistant/components/snooz/ @AustinBrunkhorst
/tests/components/snooz/ @AustinBrunkhorst
/homeassistant/components/solaredge/ @frenck
/tests/components/solaredge/ @frenck
/homeassistant/components/solaredge_local/ @drobtravels @scheric
@@ -1198,8 +1203,8 @@ build.json @home-assistant/supervisor
/tests/components/upcloud/ @scop
/homeassistant/components/update/ @home-assistant/core
/tests/components/update/ @home-assistant/core
/homeassistant/components/upnp/ @StevenLooman @ehendrix23
/tests/components/upnp/ @StevenLooman @ehendrix23
/homeassistant/components/upnp/ @StevenLooman
/tests/components/upnp/ @StevenLooman
/homeassistant/components/uptime/ @frenck
/tests/components/uptime/ @frenck
/homeassistant/components/uptimerobot/ @ludeeus @chemelli74
@@ -1293,8 +1298,8 @@ build.json @home-assistant/supervisor
/tests/components/xiaomi_aqara/ @danielhiversen @syssi
/homeassistant/components/xiaomi_ble/ @Jc2k @Ernst79
/tests/components/xiaomi_ble/ @Jc2k @Ernst79
/homeassistant/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG @bieniu
/tests/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG @bieniu
/homeassistant/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG
/tests/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG
/homeassistant/components/xiaomi_tv/ @simse
/homeassistant/components/xmpp/ @fabaff @flowolf
/homeassistant/components/yale_smart_alarm/ @gjohansson-ST
@@ -1313,6 +1318,8 @@ build.json @home-assistant/supervisor
/tests/components/yolink/ @matrixd2
/homeassistant/components/youless/ @gjong
/tests/components/youless/ @gjong
/homeassistant/components/zamg/ @killer0071234
/tests/components/zamg/ @killer0071234
/homeassistant/components/zengge/ @emontnemery
/homeassistant/components/zeroconf/ @bdraco
/tests/components/zeroconf/ @bdraco
+9
View File
@@ -2,6 +2,15 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.9
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Uninstall pre-installed formatting and linting tools
# They would conflict with our pinned versions
RUN pipx uninstall black
RUN pipx uninstall flake8
RUN pipx uninstall pydocstyle
RUN pipx uninstall pycodestyle
RUN pipx uninstall mypy
RUN pipx uninstall pylint
RUN \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& apt-get update \
Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

+3 -3
View File
@@ -21,7 +21,7 @@ from .components import http, persistent_notification
from .const import (
REQUIRED_NEXT_PYTHON_HA_RELEASE,
REQUIRED_NEXT_PYTHON_VER,
SIGNAL_BOOTSTRAP_INTEGRATONS,
SIGNAL_BOOTSTRAP_INTEGRATIONS,
)
from .exceptions import HomeAssistantError
from .helpers import (
@@ -431,7 +431,7 @@ async def _async_watch_pending_setups(hass: core.HomeAssistant) -> None:
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
if remaining_with_setup_started or not previous_was_empty:
async_dispatcher_send(
hass, SIGNAL_BOOTSTRAP_INTEGRATONS, remaining_with_setup_started
hass, SIGNAL_BOOTSTRAP_INTEGRATIONS, remaining_with_setup_started
)
previous_was_empty = not remaining_with_setup_started
await asyncio.sleep(SLOW_STARTUP_CHECK_INTERVAL)
@@ -622,7 +622,7 @@ async def _async_set_up_integrations(
_LOGGER.warning("Setup timed out for bootstrap - moving forward")
watch_task.cancel()
async_dispatcher_send(hass, SIGNAL_BOOTSTRAP_INTEGRATONS, {})
async_dispatcher_send(hass, SIGNAL_BOOTSTRAP_INTEGRATIONS, {})
_LOGGER.debug(
"Integration setup times: %s",
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "airthings",
"name": "Airthings",
"integrations": ["airthings", "airthings_ble"]
}
+2 -1
View File
@@ -1,5 +1,6 @@
{
"domain": "devolo",
"name": "devolo",
"integrations": ["devolo_home_control", "devolo_home_network"]
"integrations": ["devolo_home_control", "devolo_home_network"],
"iot_standards": ["zwave"]
}
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "ikea",
"name": "IKEA",
"integrations": ["symfonisk", "tradfri"]
}
-5
View File
@@ -1,5 +0,0 @@
{
"domain": "raspberry_pi",
"name": "Raspberry Pi",
"integrations": ["rpi_camera", "rpi_power", "remote_rpi_gpio"]
}
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "raspberry_pi",
"name": "Raspberry Pi",
"integrations": ["raspberry_pi", "rpi_camera", "rpi_power", "remote_rpi_gpio"]
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"domain": "u_tec",
"name": "U-tec",
"iot_standards": ["zwave"]
"integrations": ["ultraloq"]
}
@@ -0,0 +1,6 @@
{
"domain": "3_day_blinds",
"name": "3 Day Blinds",
"integration_type": "virtual",
"supported_by": "motion_blinds"
}
@@ -11,13 +11,13 @@
"reauth_confirm": {
"data": {
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",
"username": "Email"
"username": "\u0418\u043c\u0435\u0439\u043b"
}
},
"user": {
"data": {
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",
"username": "E-mail \u0430\u0434\u0440\u0435\u0441"
"username": "\u0418\u043c\u0435\u0439\u043b"
},
"title": "\u041f\u043e\u043f\u044a\u043b\u043d\u0435\u0442\u0435 \u0412\u0430\u0448\u0430\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0432\u0445\u043e\u0434 \u0432 Abode"
}
@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"reauth_successful": "Godkjenning p\u00e5 nytt var vellykket",
"reauth_successful": "Re-autentisering var vellykket",
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"error": {
@@ -17,6 +17,7 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util.unit_system import METRIC_SYSTEM
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN, MANUFACTURER
@@ -116,7 +117,7 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
current = await self.accuweather.async_get_current_conditions()
forecast = (
await self.accuweather.async_get_forecast(
metric=self.hass.config.units.is_metric
metric=self.hass.config.units is METRIC_SYSTEM
)
if self.forecast
else {}
@@ -7,5 +7,6 @@
"config_flow": true,
"quality_scale": "platinum",
"iot_class": "cloud_polling",
"loggers": ["accuweather"]
"loggers": ["accuweather"],
"integration_type": "service"
}
+10 -2
View File
@@ -30,6 +30,7 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util.unit_system import METRIC_SYSTEM
from . import AccuWeatherDataUpdateCoordinator
from .const import (
@@ -189,6 +190,7 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="WindGustDay",
device_class=SensorDeviceClass.WIND_SPEED,
icon="mdi:weather-windy",
name="Wind gust day",
entity_registry_enabled_default=False,
@@ -200,6 +202,7 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="WindGustNight",
device_class=SensorDeviceClass.WIND_SPEED,
icon="mdi:weather-windy",
name="Wind gust night",
entity_registry_enabled_default=False,
@@ -211,6 +214,7 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="WindDay",
device_class=SensorDeviceClass.WIND_SPEED,
icon="mdi:weather-windy",
name="Wind day",
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
@@ -221,6 +225,7 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="WindNight",
device_class=SensorDeviceClass.WIND_SPEED,
icon="mdi:weather-windy",
name="Wind night",
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
@@ -243,6 +248,7 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="Ceiling",
device_class=SensorDeviceClass.DISTANCE,
icon="mdi:weather-fog",
name="Cloud ceiling",
state_class=SensorStateClass.MEASUREMENT,
@@ -329,6 +335,7 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="Wind",
device_class=SensorDeviceClass.WIND_SPEED,
icon="mdi:weather-windy",
name="Wind",
state_class=SensorStateClass.MEASUREMENT,
@@ -339,6 +346,7 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="WindGust",
device_class=SensorDeviceClass.WIND_SPEED,
icon="mdi:weather-windy",
name="Wind gust",
entity_registry_enabled_default=False,
@@ -405,12 +413,12 @@ class AccuWeatherSensor(
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}".lower()
)
if self.coordinator.hass.config.units.is_metric:
if self.coordinator.hass.config.units is METRIC_SYSTEM:
self._unit_system = API_METRIC
else:
self._unit_system = API_IMPERIAL
self._attr_native_unit_of_measurement = self.entity_description.unit_fn(
self.coordinator.hass.config.units.is_metric
self.coordinator.hass.config.units is METRIC_SYSTEM
)
self._attr_device_info = coordinator.device_info
if forecast_day is not None:
@@ -4,7 +4,7 @@
"single_instance_allowed": "\u0412\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e. \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f."
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"invalid_api_key": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447"
},
"step": {
@@ -33,6 +33,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util.dt import utc_from_timestamp
from homeassistant.util.unit_system import METRIC_SYSTEM
from . import AccuWeatherDataUpdateCoordinator
from .const import (
@@ -70,7 +71,7 @@ class AccuWeatherEntity(
# Coordinator data is used also for sensors which don't have units automatically
# converted, hence the weather entity's native units follow the configured unit
# system
if coordinator.hass.config.units.is_metric:
if coordinator.hass.config.units is METRIC_SYSTEM:
self._attr_native_precipitation_unit = LENGTH_MILLIMETERS
self._attr_native_pressure_unit = PRESSURE_HPA
self._attr_native_temperature_unit = TEMP_CELSIUS
@@ -6,5 +6,6 @@
"requirements": ["adguardhome==0.5.1"],
"codeowners": ["@frenck"],
"iot_class": "local_polling",
"integration_type": "service",
"loggers": ["adguardhome"]
}
@@ -1,6 +1,7 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0430",
"existing_instance_updated": "\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f."
},
"error": {
+7 -4
View File
@@ -21,11 +21,11 @@ from homeassistant.components.weather import (
from homeassistant.const import (
DEGREE,
PERCENTAGE,
PRECIPITATION_MILLIMETERS_PER_HOUR,
PRESSURE_HPA,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
Platform,
UnitOfVolumetricFlux,
)
ATTRIBUTION = "Powered by AEMET OpenData"
@@ -208,7 +208,8 @@ FORECAST_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
SensorEntityDescription(
key=ATTR_API_FORECAST_PRECIPITATION,
name="Precipitation",
native_unit_of_measurement=PRECIPITATION_MILLIMETERS_PER_HOUR,
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
),
SensorEntityDescription(
key=ATTR_API_FORECAST_PRECIPITATION_PROBABILITY,
@@ -265,7 +266,8 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
SensorEntityDescription(
key=ATTR_API_RAIN,
name="Rain",
native_unit_of_measurement=PRECIPITATION_MILLIMETERS_PER_HOUR,
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
),
SensorEntityDescription(
key=ATTR_API_RAIN_PROB,
@@ -276,7 +278,8 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
SensorEntityDescription(
key=ATTR_API_SNOW,
name="Snow",
native_unit_of_measurement=PRECIPITATION_MILLIMETERS_PER_HOUR,
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
),
SensorEntityDescription(
key=ATTR_API_SNOW_PROB,
+1 -2
View File
@@ -84,8 +84,7 @@ async def async_setup_entry(
unique_id = f"{config_entry.unique_id} {mode}"
entities.append(AemetWeather(name, unique_id, weather_coordinator, mode))
if entities:
async_add_entities(entities, False)
async_add_entities(entities, False)
class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
+2 -1
View File
@@ -7,5 +7,6 @@
"config_flow": true,
"quality_scale": "platinum",
"iot_class": "cloud_polling",
"loggers": ["airly"]
"loggers": ["airly"],
"integration_type": "service"
}
@@ -0,0 +1,53 @@
"""Diagnostics support for AirNow."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_UNIQUE_ID,
)
from homeassistant.core import HomeAssistant
from . import AirNowDataUpdateCoordinator
from .const import DOMAIN
ATTR_LATITUDE_CAP = "Latitude"
ATTR_LONGITUDE_CAP = "Longitude"
ATTR_REPORTING_AREA = "ReportingArea"
ATTR_STATE_CODE = "StateCode"
CONF_TITLE = "title"
TO_REDACT = {
ATTR_LATITUDE_CAP,
ATTR_LONGITUDE_CAP,
ATTR_REPORTING_AREA,
ATTR_STATE_CODE,
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
# The config entry title has latitude/longitude:
CONF_TITLE,
# The config entry unique ID has latitude/longitude:
CONF_UNIQUE_ID,
}
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: ConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator: AirNowDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
return async_redact_data(
{
"entry": entry.as_dict(),
"data": coordinator.data,
},
TO_REDACT,
)
@@ -0,0 +1,7 @@
{
"config": {
"error": {
"unknown": "Uventet feil"
}
}
}
@@ -0,0 +1,7 @@
{
"config": {
"error": {
"unknown": "Uventet feil"
}
}
}
@@ -0,0 +1,74 @@
"""The Airthings BLE integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from airthings_ble import AirthingsBluetoothDeviceData
from homeassistant.components import bluetooth
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util.unit_system import METRIC_SYSTEM
from .const import DEFAULT_SCAN_INTERVAL, DOMAIN
PLATFORMS: list[Platform] = [Platform.SENSOR]
_LOGGER = logging.getLogger(__name__)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Airthings BLE device from a config entry."""
hass.data.setdefault(DOMAIN, {})
address = entry.unique_id
elevation = hass.config.elevation
is_metric = hass.config.units is METRIC_SYSTEM
assert address is not None
ble_device = bluetooth.async_ble_device_from_address(hass, address)
if not ble_device:
raise ConfigEntryNotReady(
f"Could not find Airthings device with address {address}"
)
async def _async_update_method():
"""Get data from Airthings BLE."""
ble_device = bluetooth.async_ble_device_from_address(hass, address)
airthings = AirthingsBluetoothDeviceData(_LOGGER, elevation, is_metric)
try:
data = await airthings.update_device(ble_device)
except Exception as err:
raise UpdateFailed(f"Unable to fetch data: {err}") from err
return data
coordinator = DataUpdateCoordinator(
hass,
_LOGGER,
name=DOMAIN,
update_method=_async_update_method,
update_interval=timedelta(seconds=DEFAULT_SCAN_INTERVAL),
)
await coordinator.async_config_entry_first_refresh()
hass.data[DOMAIN][entry.entry_id] = coordinator
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
@@ -0,0 +1,169 @@
"""Config flow for Airthings BlE integration."""
from __future__ import annotations
import dataclasses
import logging
from typing import Any
from airthings_ble import AirthingsBluetoothDeviceData, AirthingsDevice
from bleak import BleakError
import voluptuous as vol
from homeassistant.components import bluetooth
from homeassistant.components.bluetooth import (
BluetoothServiceInfo,
async_discovered_service_info,
)
from homeassistant.config_entries import ConfigFlow
from homeassistant.const import CONF_ADDRESS
from homeassistant.data_entry_flow import FlowResult
from .const import DOMAIN, MFCT_ID
_LOGGER = logging.getLogger(__name__)
@dataclasses.dataclass
class Discovery:
"""A discovered bluetooth device."""
name: str
discovery_info: BluetoothServiceInfo
device: AirthingsDevice
def get_name(device: AirthingsDevice) -> str:
"""Generate name with identifier for device."""
return f"{device.name} ({device.identifier})"
class AirthingsDeviceUpdateError(Exception):
"""Custom error class for device updates."""
class AirthingsConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Airthings BLE."""
VERSION = 1
def __init__(self) -> None:
"""Initialize the config flow."""
self._discovered_device: Discovery | None = None
self._discovered_devices: dict[str, Discovery] = {}
async def _get_device_data(
self, discovery_info: BluetoothServiceInfo
) -> AirthingsDevice:
ble_device = bluetooth.async_ble_device_from_address(
self.hass, discovery_info.address
)
if ble_device is None:
_LOGGER.debug("no ble_device in _get_device_data")
raise AirthingsDeviceUpdateError("No ble_device")
airthings = AirthingsBluetoothDeviceData(_LOGGER)
try:
data = await airthings.update_device(ble_device)
except BleakError as err:
_LOGGER.error(
"Error connecting to and getting data from %s: %s",
discovery_info.address,
err,
)
raise AirthingsDeviceUpdateError("Failed getting device data") from err
except Exception as err:
_LOGGER.error(
"Unknown error occurred from %s: %s", discovery_info.address, err
)
raise err
return data
async def async_step_bluetooth(
self, discovery_info: BluetoothServiceInfo
) -> FlowResult:
"""Handle the bluetooth discovery step."""
_LOGGER.debug("Discovered BT device: %s", discovery_info)
await self.async_set_unique_id(discovery_info.address)
self._abort_if_unique_id_configured()
try:
device = await self._get_device_data(discovery_info)
except AirthingsDeviceUpdateError:
return self.async_abort(reason="cannot_connect")
except Exception: # pylint: disable=broad-except
return self.async_abort(reason="unknown")
name = get_name(device)
self.context["title_placeholders"] = {"name": name}
self._discovered_device = Discovery(name, discovery_info, device)
return await self.async_step_bluetooth_confirm()
async def async_step_bluetooth_confirm(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Confirm discovery."""
if user_input is not None:
return self.async_create_entry(
title=self.context["title_placeholders"]["name"], data={}
)
self._set_confirm_only()
return self.async_show_form(
step_id="bluetooth_confirm",
description_placeholders=self.context["title_placeholders"],
)
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the user step to pick discovered device."""
if user_input is not None:
address = user_input[CONF_ADDRESS]
await self.async_set_unique_id(address, raise_on_progress=False)
self._abort_if_unique_id_configured()
discovery = self._discovered_devices[address]
self.context["title_placeholders"] = {
"name": discovery.name,
}
self._discovered_device = discovery
return self.async_create_entry(title=discovery.name, data={})
current_addresses = self._async_current_ids()
for discovery_info in async_discovered_service_info(self.hass):
address = discovery_info.address
if address in current_addresses or address in self._discovered_devices:
continue
if MFCT_ID not in discovery_info.manufacturer_data:
continue
try:
device = await self._get_device_data(discovery_info)
except AirthingsDeviceUpdateError:
return self.async_abort(reason="cannot_connect")
except Exception: # pylint: disable=broad-except
return self.async_abort(reason="unknown")
name = get_name(device)
self._discovered_devices[address] = Discovery(name, discovery_info, device)
if not self._discovered_devices:
return self.async_abort(reason="no_devices_found")
titles = {
address: get_name(discovery.device)
for (address, discovery) in self._discovered_devices.items()
}
return self.async_show_form(
step_id="user",
data_schema=vol.Schema(
{
vol.Required(CONF_ADDRESS): vol.In(titles),
},
),
)
@@ -0,0 +1,9 @@
"""Constants for Airthings BLE."""
DOMAIN = "airthings_ble"
MFCT_ID = 820
VOLUME_BECQUEREL = "Bq/m³"
VOLUME_PICOCURIE = "pCi/L"
DEFAULT_SCAN_INTERVAL = 300
@@ -0,0 +1,15 @@
{
"domain": "airthings_ble",
"name": "Airthings BLE",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airthings_ble",
"requirements": ["airthings-ble==0.5.2"],
"dependencies": ["bluetooth"],
"codeowners": ["@vincegio"],
"iot_class": "local_polling",
"bluetooth": [
{
"manufacturer_id": 820
}
]
}
@@ -0,0 +1,186 @@
"""Support for airthings ble sensors."""
from __future__ import annotations
import logging
from airthings_ble import AirthingsDevice
from homeassistant import config_entries
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.const import (
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
LIGHT_LUX,
PERCENTAGE,
PRESSURE_MBAR,
TEMP_CELSIUS,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH
from homeassistant.helpers.entity import DeviceInfo, EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
)
from homeassistant.util.unit_system import METRIC_SYSTEM
from .const import DOMAIN, VOLUME_BECQUEREL, VOLUME_PICOCURIE
_LOGGER = logging.getLogger(__name__)
SENSORS_MAPPING_TEMPLATE: dict[str, SensorEntityDescription] = {
"radon_1day_avg": SensorEntityDescription(
key="radon_1day_avg",
native_unit_of_measurement=VOLUME_BECQUEREL,
name="Radon 1-day average",
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:radioactive",
),
"radon_longterm_avg": SensorEntityDescription(
key="radon_longterm_avg",
native_unit_of_measurement=VOLUME_BECQUEREL,
name="Radon longterm average",
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:radioactive",
),
"radon_1day_level": SensorEntityDescription(
key="radon_1day_level",
name="Radon 1-day level",
icon="mdi:radioactive",
),
"radon_longterm_level": SensorEntityDescription(
key="radon_longterm_level",
name="Radon longterm level",
icon="mdi:radioactive",
),
"temperature": SensorEntityDescription(
key="temperature",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=TEMP_CELSIUS,
name="Temperature",
),
"humidity": SensorEntityDescription(
key="humidity",
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement=PERCENTAGE,
name="Humidity",
),
"pressure": SensorEntityDescription(
key="pressure",
device_class=SensorDeviceClass.PRESSURE,
native_unit_of_measurement=PRESSURE_MBAR,
name="Pressure",
),
"battery": SensorEntityDescription(
key="battery",
device_class=SensorDeviceClass.BATTERY,
native_unit_of_measurement=PERCENTAGE,
entity_category=EntityCategory.DIAGNOSTIC,
name="Battery",
),
"co2": SensorEntityDescription(
key="co2",
device_class=SensorDeviceClass.CO2,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
name="co2",
),
"voc": SensorEntityDescription(
key="voc",
device_class=SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
name="VOC",
icon="mdi:cloud",
),
"illuminance": SensorEntityDescription(
key="illuminance",
device_class=SensorDeviceClass.ILLUMINANCE,
native_unit_of_measurement=LIGHT_LUX,
name="Illuminance",
),
}
async def async_setup_entry(
hass: HomeAssistant,
entry: config_entries.ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Airthings BLE sensors."""
is_metric = hass.config.units is METRIC_SYSTEM
coordinator: DataUpdateCoordinator[AirthingsDevice] = hass.data[DOMAIN][
entry.entry_id
]
# we need to change some units
sensors_mapping = SENSORS_MAPPING_TEMPLATE.copy()
if not is_metric:
for val in sensors_mapping.values():
if val.native_unit_of_measurement is not VOLUME_BECQUEREL:
continue
val.native_unit_of_measurement = VOLUME_PICOCURIE
entities = []
_LOGGER.debug("got sensors: %s", coordinator.data.sensors)
for sensor_type, sensor_value in coordinator.data.sensors.items():
if sensor_type not in sensors_mapping:
_LOGGER.debug(
"Unknown sensor type detected: %s, %s",
sensor_type,
sensor_value,
)
continue
entities.append(
AirthingsSensor(coordinator, coordinator.data, sensors_mapping[sensor_type])
)
async_add_entities(entities)
class AirthingsSensor(
CoordinatorEntity[DataUpdateCoordinator[AirthingsDevice]], SensorEntity
):
"""Airthings BLE sensors for the device."""
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_has_entity_name = True
def __init__(
self,
coordinator: DataUpdateCoordinator,
airthings_device: AirthingsDevice,
entity_description: SensorEntityDescription,
) -> None:
"""Populate the airthings entity with relevant data."""
super().__init__(coordinator)
self.entity_description = entity_description
name = f"{airthings_device.name} {airthings_device.identifier}"
self._attr_unique_id = f"{name}_{entity_description.key}"
self._id = airthings_device.address
self._attr_device_info = DeviceInfo(
connections={
(
CONNECTION_BLUETOOTH,
airthings_device.address,
)
},
name=name,
manufacturer="Airthings",
hw_version=airthings_device.hw_version,
sw_version=airthings_device.sw_version,
)
@property
def native_value(self) -> StateType:
"""Return the value reported by the sensor."""
return self.coordinator.data.sensors[self.entity_description.key]
@@ -0,0 +1,23 @@
{
"config": {
"flow_title": "[%key:component::bluetooth::config::flow_title%]",
"step": {
"user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": {
"address": "[%key:component::bluetooth::config::step::user::data::address%]"
}
},
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
}
},
"abort": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
}
}
}
@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e",
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"no_devices_found": "\u041d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u043c\u0440\u0435\u0436\u0430\u0442\u0430",
"unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 {name}?"
},
"user": {
"data": {
"address": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"
},
"description": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "El dispositiu ja est\u00e0 configurat",
"already_in_progress": "El flux de configuraci\u00f3 ja est\u00e0 en curs",
"cannot_connect": "Ha fallat la connexi\u00f3",
"no_devices_found": "No s'han trobat dispositius a la xarxa",
"unknown": "Error inesperat"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Vols configurar {name}?"
},
"user": {
"data": {
"address": "Dispositiu"
},
"description": "Tria un dispositiu a configurar"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert",
"already_in_progress": "Der Konfigurationsablauf wird bereits ausgef\u00fchrt",
"cannot_connect": "Verbindung fehlgeschlagen",
"no_devices_found": "Keine Ger\u00e4te im Netzwerk gefunden",
"unknown": "Unerwarteter Fehler"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "M\u00f6chtest du {name} einrichten?"
},
"user": {
"data": {
"address": "Ger\u00e4t"
},
"description": "W\u00e4hle ein Ger\u00e4t zum Einrichten aus"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "\u0397 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03ad\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03c9\u03b8\u03b5\u03af",
"already_in_progress": "\u0397 \u03c1\u03bf\u03ae \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2 \u03b2\u03c1\u03af\u03c3\u03ba\u03b5\u03c4\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03c3\u03b5 \u03b5\u03be\u03ad\u03bb\u03b9\u03be\u03b7",
"cannot_connect": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2",
"no_devices_found": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ad\u03c2 \u03c3\u03c4\u03bf \u03b4\u03af\u03ba\u03c4\u03c5\u03bf",
"unknown": "\u0391\u03c0\u03c1\u03cc\u03c3\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf {name};"
},
"user": {
"data": {
"address": "\u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae"
},
"description": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03b3\u03b9\u03b1 \u03c1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Device is already configured",
"already_in_progress": "Configuration flow is already in progress",
"cannot_connect": "Failed to connect",
"no_devices_found": "No devices found on the network",
"unknown": "Unexpected error"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Do you want to setup {name}?"
},
"user": {
"data": {
"address": "Device"
},
"description": "Choose a device to setup"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado",
"already_in_progress": "El flujo de configuraci\u00f3n ya est\u00e1 en curso",
"cannot_connect": "No se pudo conectar",
"no_devices_found": "No se encontraron dispositivos en la red",
"unknown": "Error inesperado"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u00bfQuieres configurar {name}?"
},
"user": {
"data": {
"address": "Dispositivo"
},
"description": "Elige un dispositivo para configurar"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Seade on juba h\u00e4\u00e4lestatud",
"already_in_progress": "Seadistamine on juba k\u00e4imas",
"cannot_connect": "\u00dchendamine nurjus",
"no_devices_found": "V\u00f5rgust seadmeid ei leitud",
"unknown": "Ootamatu t\u00f5rge"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Kas seadistada {name}?"
},
"user": {
"data": {
"address": "Seade"
},
"description": "Vali h\u00e4\u00e4lestatav seade"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "L'appareil est d\u00e9j\u00e0 configur\u00e9",
"already_in_progress": "La configuration est d\u00e9j\u00e0 en cours",
"cannot_connect": "\u00c9chec de connexion",
"no_devices_found": "Aucun appareil trouv\u00e9 sur le r\u00e9seau",
"unknown": "Erreur inattendue"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Voulez-vous configurer {name}\u00a0?"
},
"user": {
"data": {
"address": "Appareil"
},
"description": "S\u00e9lectionnez l'appareil \u00e0 configurer"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d4\u05ea\u05e7\u05df \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4",
"already_in_progress": "\u05d6\u05e8\u05d9\u05de\u05ea \u05d4\u05ea\u05e6\u05d5\u05e8\u05d4 \u05db\u05d1\u05e8 \u05de\u05ea\u05d1\u05e6\u05e2\u05ea",
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"no_devices_found": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05de\u05db\u05e9\u05d9\u05e8\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea",
"unknown": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05dc\u05ea\u05d9 \u05e6\u05e4\u05d5\u05d9\u05d4"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05d0\u05ea {name}?"
},
"user": {
"data": {
"address": "\u05d4\u05ea\u05e7\u05df"
},
"description": "\u05d1\u05d7\u05d9\u05e8\u05ea \u05d4\u05ea\u05e7\u05df \u05dc\u05d4\u05d2\u05d3\u05e8\u05d4"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Az eszk\u00f6z m\u00e1r konfigur\u00e1lva van",
"already_in_progress": "A be\u00e1ll\u00edt\u00e1si folyamat m\u00e1r el lett kezdve",
"cannot_connect": "Sikertelen csatlakoz\u00e1s",
"no_devices_found": "Nem tal\u00e1lhat\u00f3 eszk\u00f6z a h\u00e1l\u00f3zaton",
"unknown": "V\u00e1ratlan hiba t\u00f6rt\u00e9nt"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Szeretn\u00e9 be\u00e1ll\u00edtani: {name}?"
},
"user": {
"data": {
"address": "Eszk\u00f6z"
},
"description": "V\u00e1lasszon egy be\u00e1ll\u00edtand\u00f3 eszk\u00f6zt"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Perangkat sudah dikonfigurasi",
"already_in_progress": "Alur konfigurasi sedang berlangsung",
"cannot_connect": "Gagal terhubung",
"no_devices_found": "Tidak ada perangkat yang ditemukan di jaringan",
"unknown": "Kesalahan yang tidak diharapkan"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Ingin menyiapkan {name}?"
},
"user": {
"data": {
"address": "Perangkat"
},
"description": "Pilih perangkat untuk disiapkan"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Il dispositivo \u00e8 gi\u00e0 configurato",
"already_in_progress": "Il flusso di configurazione \u00e8 gi\u00e0 in corso",
"cannot_connect": "Impossibile connettersi",
"no_devices_found": "Nessun dispositivo trovato sulla rete",
"unknown": "Errore imprevisto"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Vuoi configurare {name}?"
},
"user": {
"data": {
"address": "Dispositivo"
},
"description": "Seleziona un dispositivo da configurare"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059",
"already_in_progress": "\u69cb\u6210\u30d5\u30ed\u30fc\u306f\u3059\u3067\u306b\u9032\u884c\u4e2d\u3067\u3059",
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"no_devices_found": "\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0a\u306b\u30c7\u30d0\u30a4\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093",
"unknown": "\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "{name} \u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u307e\u3059\u304b\uff1f"
},
"user": {
"data": {
"address": "\u30c7\u30d0\u30a4\u30b9"
},
"description": "\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3059\u308b\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044"
}
}
}
}
@@ -0,0 +1,9 @@
{
"config": {
"abort": {
"already_configured": "Enheten er allerede konfigurert",
"cannot_connect": "Tilkobling mislyktes",
"unknown": "Uventet feil"
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Nederlands",
"already_in_progress": "Nederlands",
"cannot_connect": "Nederlands",
"no_devices_found": "Nederlands",
"unknown": "Nederlands"
},
"flow_title": "Nederlands",
"step": {
"bluetooth_confirm": {
"description": "Nederlands"
},
"user": {
"data": {
"address": "Nederlands"
},
"description": "Nederlands"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Enheten er allerede konfigurert",
"already_in_progress": "Konfigurasjonsflyten p\u00e5g\u00e5r allerede",
"cannot_connect": "Tilkobling mislyktes",
"no_devices_found": "Ingen enheter funnet p\u00e5 nettverket",
"unknown": "Uventet feil"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Vil du konfigurere {name}?"
},
"user": {
"data": {
"address": "Enhet"
},
"description": "Velg en enhet du vil konfigurere"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Urz\u0105dzenie jest ju\u017c skonfigurowane",
"already_in_progress": "Konfiguracja jest ju\u017c w toku",
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"no_devices_found": "Nie znaleziono urz\u0105dze\u0144 w sieci",
"unknown": "Nieoczekiwany b\u0142\u0105d"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Czy chcesz skonfigurowa\u0107 {name}?"
},
"user": {
"data": {
"address": "Urz\u0105dzenie"
},
"description": "Wybierz urz\u0105dzenie do skonfigurowania"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Dispositivo j\u00e1 est\u00e1 configurado",
"already_in_progress": "O fluxo de configura\u00e7\u00e3o j\u00e1 est\u00e1 em andamento",
"cannot_connect": "Falha ao conectar",
"no_devices_found": "Nenhum dispositivo encontrado na rede",
"unknown": "Erro inesperado"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Deseja configurar {name}?"
},
"user": {
"data": {
"address": "Dispositivo"
},
"description": "Escolha um dispositivo para configurar"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "\u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 Home Assistant.",
"already_in_progress": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f.",
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"no_devices_found": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u0441\u0435\u0442\u0438.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u0425\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c {name}?"
},
"user": {
"data": {
"address": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"
},
"description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Enheten \u00e4r redan konfigurerad",
"already_in_progress": "Konfigurationsfl\u00f6det p\u00e5g\u00e5r redan",
"cannot_connect": "Det gick inte att ansluta.",
"no_devices_found": "Inga enheter hittades i n\u00e4tverket",
"unknown": "Ov\u00e4ntat fel"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Vill du konfigurera {name}?"
},
"user": {
"data": {
"address": "Enhet"
},
"description": "V\u00e4lj en enhet att konfigurera"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Cihaz zaten yap\u0131land\u0131r\u0131lm\u0131\u015f",
"already_in_progress": "Yap\u0131land\u0131rma ak\u0131\u015f\u0131 zaten devam ediyor",
"cannot_connect": "Ba\u011flanma hatas\u0131",
"no_devices_found": "A\u011fda cihaz bulunamad\u0131",
"unknown": "Beklenmeyen hata"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "{name} kurulumunu yapmak istiyor musunuz?"
},
"user": {
"data": {
"address": "Cihaz"
},
"description": "Kurulum i\u00e7in bir cihaz se\u00e7in"
}
}
}
}
@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "\u8bbe\u5907\u5df2\u7ecf\u914d\u7f6e",
"already_in_progress": "\u914d\u7f6e\u6d41\u7a0b\u5df2\u5728\u8fdb\u884c\u4e2d",
"cannot_connect": "\u65e0\u6cd5\u8fde\u63a5",
"no_devices_found": "\u5728\u6b64\u7f51\u7edc\u4e0a\u672a\u627e\u5230\u8bbe\u5907",
"unknown": "\u672a\u77e5\u9519\u8bef"
},
"step": {
"bluetooth_confirm": {
"description": "\u60a8\u60f3\u8bbe\u7f6e\u7684\u8bbe\u5907\u662f\u5426\u662f\uff1a {name}?"
},
"user": {
"data": {
"address": "\u8bbe\u5907"
},
"description": "\u9009\u62e9\u4e00\u4e2a\u8bbe\u5907\u4ee5\u914d\u7f6e"
}
}
}
}
@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "\u88dd\u7f6e\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210",
"already_in_progress": "\u8a2d\u5b9a\u5df2\u7d93\u9032\u884c\u4e2d",
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"no_devices_found": "\u7db2\u8def\u4e0a\u627e\u4e0d\u5230\u88dd\u7f6e",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u662f\u5426\u8981\u8a2d\u5b9a {name}\uff1f"
},
"user": {
"data": {
"address": "\u88dd\u7f6e"
},
"description": "\u9078\u64c7\u6240\u8981\u8a2d\u5b9a\u7684\u88dd\u7f6e"
}
}
}
}
@@ -5,13 +5,20 @@ from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_STATE
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_STATE,
CONF_UNIQUE_ID,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import CONF_CITY, CONF_COUNTRY, DOMAIN
CONF_COORDINATES = "coordinates"
CONF_TITLE = "title"
TO_REDACT = {
CONF_API_KEY,
@@ -21,6 +28,9 @@ TO_REDACT = {
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_STATE,
# Config entry title and unique ID may contain sensitive data:
CONF_TITLE,
CONF_UNIQUE_ID,
}
@@ -31,10 +41,6 @@ async def async_get_config_entry_diagnostics(
coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
return {
"entry": {
"title": entry.title,
"data": async_redact_data(entry.data, TO_REDACT),
"options": async_redact_data(entry.options, TO_REDACT),
},
"entry": async_redact_data(entry.as_dict(), TO_REDACT),
"data": async_redact_data(coordinator.data["data"], TO_REDACT),
}
@@ -6,5 +6,6 @@
"requirements": ["pyairvisual==2022.07.0"],
"codeowners": ["@bachya"],
"iot_class": "cloud_polling",
"loggers": ["pyairvisual", "pysmb"]
"loggers": ["pyairvisual", "pysmb"],
"integration_type": "device"
}
@@ -0,0 +1,7 @@
{
"config": {
"error": {
"general_error": "Uventet feil"
}
}
}
@@ -2,7 +2,7 @@
"config": {
"abort": {
"already_configured": "Plasseringen er allerede konfigurert eller Node / Pro ID er allerede registrert.",
"reauth_successful": "Godkjenning p\u00e5 nytt var vellykket"
"reauth_successful": "Re-autentisering var vellykket"
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
@@ -6,7 +6,8 @@
"airvisual__pollutant_level": {
"good": "\u05d8\u05d5\u05d1",
"unhealthy": "\u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0",
"unhealthy_sensitive": "\u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0 \u05dc\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05e8\u05d2\u05d9\u05e9\u05d5\u05ea"
"unhealthy_sensitive": "\u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0 \u05dc\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05e8\u05d2\u05d9\u05e9\u05d5\u05ea",
"very_unhealthy": "\u05de\u05d0\u05d5\u05d3 \u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0"
}
}
}
@@ -2,7 +2,7 @@
"config": {
"abort": {
"already_configured": "Enheten er allerede konfigurert",
"reauth_successful": "Godkjenning p\u00e5 nytt var vellykket"
"reauth_successful": "Re-autentisering var vellykket"
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
@@ -1,4 +1,18 @@
{
"device_automation": {
"condition_type": {
"is_armed_away": "{entity_name} er \u00e1 ver\u00f0i \u00fati",
"is_armed_home": "{entity_name} er \u00e1 ver\u00f0i heima",
"is_armed_night": "{entity_name} er \u00e1 ver\u00f0i n\u00f3tt",
"is_disarmed": "{entity_name} er ekki \u00e1 ver\u00f0i"
},
"trigger_type": {
"armed_away": "{entity_name} \u00e1 ver\u00f0i \u00fati",
"armed_home": "\u00e1 ver\u00f0i heima",
"armed_night": "\u00e1 ver\u00f0i n\u00f3tt",
"disarmed": "ekki \u00e1 ver\u00f0i"
}
},
"state": {
"_": {
"armed": "\u00c1 ver\u00f0i",
@@ -6,7 +20,7 @@
"armed_home": "\u00c1 ver\u00f0i heima",
"armed_night": "\u00c1 ver\u00f0i n\u00f3tt",
"arming": "Set \u00e1 v\u00f6r\u00f0",
"disarmed": "ekki \u00e1 ver\u00f0i",
"disarmed": "Ekki \u00e1 ver\u00f0i",
"disarming": "tek af ver\u00f0i",
"pending": "B\u00ed\u00f0ur",
"triggered": "R\u00e6st"
+42 -81
View File
@@ -3,8 +3,7 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import timedelta
import logging
from typing import Any, final
from typing import Any
import voluptuous as vol
@@ -15,7 +14,6 @@ from homeassistant.components.notify import (
DOMAIN as DOMAIN_NOTIFY,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
CONF_ENTITY_ID,
CONF_NAME,
CONF_REPEAT,
@@ -27,10 +25,10 @@ from homeassistant.const import (
STATE_OFF,
STATE_ON,
)
from homeassistant.core import Event, HomeAssistant, ServiceCall
from homeassistant.helpers import service
from homeassistant.core import Event, HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import ToggleEntity
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.event import (
async_track_point_in_time,
async_track_state_change_event,
@@ -39,39 +37,40 @@ from homeassistant.helpers.template import Template
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.dt import now
_LOGGER = logging.getLogger(__name__)
DOMAIN = "alert"
CONF_CAN_ACK = "can_acknowledge"
CONF_NOTIFIERS = "notifiers"
CONF_SKIP_FIRST = "skip_first"
CONF_ALERT_MESSAGE = "message"
CONF_DONE_MESSAGE = "done_message"
CONF_TITLE = "title"
CONF_DATA = "data"
DEFAULT_CAN_ACK = True
DEFAULT_SKIP_FIRST = False
from .const import (
CONF_ALERT_MESSAGE,
CONF_CAN_ACK,
CONF_DATA,
CONF_DONE_MESSAGE,
CONF_NOTIFIERS,
CONF_SKIP_FIRST,
CONF_TITLE,
DEFAULT_CAN_ACK,
DEFAULT_SKIP_FIRST,
DOMAIN,
LOGGER,
)
ALERT_SCHEMA = vol.Schema(
{
vol.Required(CONF_NAME): cv.string,
vol.Required(CONF_ENTITY_ID): cv.entity_id,
vol.Required(CONF_STATE, default=STATE_ON): cv.string,
vol.Optional(CONF_STATE, default=STATE_ON): cv.string,
vol.Required(CONF_REPEAT): vol.All(
cv.ensure_list,
[vol.Coerce(float)],
# Minimum delay is 1 second = 0.016 minutes
[vol.Range(min=0.016)],
),
vol.Required(CONF_CAN_ACK, default=DEFAULT_CAN_ACK): cv.boolean,
vol.Required(CONF_SKIP_FIRST, default=DEFAULT_SKIP_FIRST): cv.boolean,
vol.Optional(CONF_CAN_ACK, default=DEFAULT_CAN_ACK): cv.boolean,
vol.Optional(CONF_SKIP_FIRST, default=DEFAULT_SKIP_FIRST): cv.boolean,
vol.Optional(CONF_ALERT_MESSAGE): cv.template,
vol.Optional(CONF_DONE_MESSAGE): cv.template,
vol.Optional(CONF_TITLE): cv.template,
vol.Optional(CONF_DATA): dict,
vol.Required(CONF_NOTIFIERS): vol.All(cv.ensure_list, [cv.string]),
vol.Optional(CONF_NOTIFIERS, default=list): vol.All(
cv.ensure_list, [cv.string]
),
}
)
@@ -79,16 +78,11 @@ CONFIG_SCHEMA = vol.Schema(
{DOMAIN: cv.schema_with_slug_keys(ALERT_SCHEMA)}, extra=vol.ALLOW_EXTRA
)
ALERT_SERVICE_SCHEMA = vol.Schema({vol.Required(ATTR_ENTITY_ID): cv.entity_ids})
def is_on(hass: HomeAssistant, entity_id: str) -> bool:
"""Return if the alert is firing and not acknowledged."""
return hass.states.is_state(entity_id, STATE_ON)
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up the Alert component."""
component = EntityComponent[Alert](LOGGER, DOMAIN, hass)
entities: list[Alert] = []
for object_id, cfg in config[DOMAIN].items():
@@ -128,50 +122,16 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
if not entities:
return False
async def async_handle_alert_service(service_call: ServiceCall) -> None:
"""Handle calls to alert services."""
alert_ids = await service.async_extract_entity_ids(hass, service_call)
component.async_register_entity_service(SERVICE_TURN_OFF, {}, "async_turn_off")
component.async_register_entity_service(SERVICE_TURN_ON, {}, "async_turn_on")
component.async_register_entity_service(SERVICE_TOGGLE, {}, "async_toggle")
for alert_id in alert_ids:
for alert in entities:
if alert.entity_id != alert_id:
continue
alert.async_set_context(service_call.context)
if service_call.service == SERVICE_TURN_ON:
await alert.async_turn_on()
elif service_call.service == SERVICE_TOGGLE:
await alert.async_toggle()
else:
await alert.async_turn_off()
# Setup service calls
hass.services.async_register(
DOMAIN,
SERVICE_TURN_OFF,
async_handle_alert_service,
schema=ALERT_SERVICE_SCHEMA,
)
hass.services.async_register(
DOMAIN,
SERVICE_TURN_ON,
async_handle_alert_service,
schema=ALERT_SERVICE_SCHEMA,
)
hass.services.async_register(
DOMAIN,
SERVICE_TOGGLE,
async_handle_alert_service,
schema=ALERT_SERVICE_SCHEMA,
)
for alert in entities:
alert.async_write_ha_state()
await component.async_add_entities(entities)
return True
class Alert(ToggleEntity):
class Alert(Entity):
"""Representation of an alert."""
_attr_should_poll = False
@@ -227,10 +187,8 @@ class Alert(ToggleEntity):
hass, [watched_entity_id], self.watched_entity_change
)
@final # type: ignore[misc]
@property
# pylint: disable=overridden-final-method
def state(self) -> str: # type: ignore[override]
def state(self) -> str:
"""Return the alert status."""
if self._firing:
if self._ack:
@@ -242,7 +200,7 @@ class Alert(ToggleEntity):
"""Determine if the alert should start or stop."""
if (to_state := event.data.get("new_state")) is None:
return
_LOGGER.debug("Watched entity (%s) has changed", event.data.get("entity_id"))
LOGGER.debug("Watched entity (%s) has changed", event.data.get("entity_id"))
if to_state.state == self._alert_state and not self._firing:
await self.begin_alerting()
if to_state.state != self._alert_state and self._firing:
@@ -250,7 +208,7 @@ class Alert(ToggleEntity):
async def begin_alerting(self) -> None:
"""Begin the alert procedures."""
_LOGGER.debug("Beginning Alert: %s", self._attr_name)
LOGGER.debug("Beginning Alert: %s", self._attr_name)
self._ack = False
self._firing = True
self._next_delay = 0
@@ -264,7 +222,7 @@ class Alert(ToggleEntity):
async def end_alerting(self) -> None:
"""End the alert procedures."""
_LOGGER.debug("Ending Alert: %s", self._attr_name)
LOGGER.debug("Ending Alert: %s", self._attr_name)
if self._cancel is not None:
self._cancel()
self._cancel = None
@@ -288,7 +246,7 @@ class Alert(ToggleEntity):
return
if not self._ack:
_LOGGER.info("Alerting: %s", self._attr_name)
LOGGER.info("Alerting: %s", self._attr_name)
self._send_done_message = True
if self._message_template is not None:
@@ -301,7 +259,7 @@ class Alert(ToggleEntity):
async def _notify_done_message(self) -> None:
"""Send notification of complete alert."""
_LOGGER.info("Alerting: %s", self._done_message_template)
LOGGER.info("Alerting: %s", self._done_message_template)
self._send_done_message = False
if self._done_message_template is None:
@@ -313,6 +271,9 @@ class Alert(ToggleEntity):
async def _send_notification_message(self, message: Any) -> None:
if not self._notifiers:
return
msg_payload = {ATTR_MESSAGE: message}
if self._title_template is not None:
@@ -321,7 +282,7 @@ class Alert(ToggleEntity):
if self._data:
msg_payload[ATTR_DATA] = self._data
_LOGGER.debug(msg_payload)
LOGGER.debug(msg_payload)
for target in self._notifiers:
await self.hass.services.async_call(
@@ -330,13 +291,13 @@ class Alert(ToggleEntity):
async def async_turn_on(self, **kwargs: Any) -> None:
"""Async Unacknowledge alert."""
_LOGGER.debug("Reset Alert: %s", self._attr_name)
LOGGER.debug("Reset Alert: %s", self._attr_name)
self._ack = False
self.async_write_ha_state()
async def async_turn_off(self, **kwargs: Any) -> None:
"""Async Acknowledge alert."""
_LOGGER.debug("Acknowledged Alert: %s", self._attr_name)
LOGGER.debug("Acknowledged Alert: %s", self._attr_name)
self._ack = True
self.async_write_ha_state()
+19
View File
@@ -0,0 +1,19 @@
"""Constants for the Alert integration."""
import logging
from typing import Final
DOMAIN: Final = "alert"
LOGGER = logging.getLogger(__package__)
CONF_CAN_ACK = "can_acknowledge"
CONF_NOTIFIERS = "notifiers"
CONF_SKIP_FIRST = "skip_first"
CONF_ALERT_MESSAGE = "message"
CONF_DONE_MESSAGE = "done_message"
CONF_TITLE = "title"
CONF_DATA = "data"
DEFAULT_CAN_ACK = True
DEFAULT_SKIP_FIRST = False
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "Alert",
"documentation": "https://www.home-assistant.io/integrations/alert",
"after_dependencies": ["notify"],
"codeowners": ["@home-assistant/core"],
"codeowners": ["@home-assistant/core", "@frenck"],
"quality_scale": "internal",
"iot_class": "local_push"
}
@@ -3,7 +3,6 @@ from __future__ import annotations
import asyncio
from collections.abc import Iterable
import logging
from typing import Any
from homeassistant.const import (
@@ -15,9 +14,7 @@ from homeassistant.const import (
)
from homeassistant.core import Context, HomeAssistant, State
from . import DOMAIN
_LOGGER = logging.getLogger(__name__)
from .const import DOMAIN, LOGGER
VALID_STATES = {STATE_ON, STATE_OFF}
@@ -31,11 +28,11 @@ async def _async_reproduce_state(
) -> None:
"""Reproduce a single state."""
if (cur_state := hass.states.get(state.entity_id)) is None:
_LOGGER.warning("Unable to find entity %s", state.entity_id)
LOGGER.warning("Unable to find entity %s", state.entity_id)
return
if state.state not in VALID_STATES:
_LOGGER.warning(
LOGGER.warning(
"Invalid state specified for %s: %s", state.entity_id, state.state
)
return
@@ -20,7 +20,7 @@ from homeassistant.components.sensor import (
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CURRENCY_DOLLAR, ENERGY_KILO_WATT_HOUR
from homeassistant.const import CURRENCY_DOLLAR, ENERGY_KILO_WATT_HOUR, PERCENTAGE
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -247,7 +247,7 @@ async def async_setup_entry(
renewables_description = SensorEntityDescription(
key="renewables",
name=f"{entry.title} - Renewables",
native_unit_of_measurement="%",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:solar-power",
)
@@ -0,0 +1,7 @@
{
"config": {
"error": {
"unknown_error": "Uventet feil"
}
}
}
@@ -2,6 +2,7 @@
"config": {
"error": {
"invalid_api_token": "Ongeldige API-sleutel",
"no_site": "Geen site opgegeven",
"unknown_error": "Onverwachte fout"
},
"step": {
@@ -1,5 +1,10 @@
{
"config": {
"error": {
"invalid_api_token": "Ogiltig API-nyckel",
"no_site": "Ingen plats har tillhandah\u00e5llits.",
"unknown_error": "Ov\u00e4ntat fel"
},
"step": {
"site": {
"data": {
@@ -5,7 +5,7 @@ from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LOCATION
from homeassistant.const import CONF_API_KEY, CONF_LOCATION, CONF_UNIQUE_ID
from homeassistant.core import HomeAssistant
from . import AmbientStation
@@ -16,6 +16,7 @@ CONF_APP_KEY_CAMEL = "appKey"
CONF_DEVICE_ID_CAMEL = "deviceId"
CONF_MAC_ADDRESS = "mac_address"
CONF_MAC_ADDRESS_CAMEL = "macAddress"
CONF_TITLE = "title"
CONF_TZ = "tz"
TO_REDACT = {
@@ -28,6 +29,9 @@ TO_REDACT = {
CONF_MAC_ADDRESS,
CONF_MAC_ADDRESS_CAMEL,
CONF_TZ,
# Config entry title and unique ID may contain sensitive data:
CONF_TITLE,
CONF_UNIQUE_ID,
}
@@ -38,9 +42,6 @@ async def async_get_config_entry_diagnostics(
ambient: AmbientStation = hass.data[DOMAIN][entry.entry_id]
return {
"entry": {
"title": entry.title,
"data": async_redact_data(entry.data, TO_REDACT),
},
"entry": async_redact_data(entry.as_dict(), TO_REDACT),
"stations": async_redact_data(ambient.stations, TO_REDACT),
}
@@ -6,5 +6,6 @@
"requirements": ["aioambient==2021.11.0"],
"codeowners": ["@bachya"],
"iot_class": "cloud_push",
"loggers": ["aioambient"]
"loggers": ["aioambient"],
"integration_type": "hub"
}
@@ -19,10 +19,10 @@ from homeassistant.const import (
LIGHT_LUX,
PERCENTAGE,
PRECIPITATION_INCHES,
PRECIPITATION_INCHES_PER_HOUR,
PRESSURE_INHG,
SPEED_MILES_PER_HOUR,
TEMP_FAHRENHEIT,
UnitOfVolumetricFlux,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity import EntityDescription
@@ -194,9 +194,9 @@ SENSOR_DESCRIPTIONS = (
SensorEntityDescription(
key=TYPE_HOURLYRAININ,
name="Hourly rain rate",
icon="mdi:water",
native_unit_of_measurement=PRECIPITATION_INCHES_PER_HOUR,
native_unit_of_measurement=UnitOfVolumetricFlux.INCHES_PER_HOUR,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
),
SensorEntityDescription(
key=TYPE_HUMIDITY10,
@@ -0,0 +1,6 @@
{
"domain": "amp_motorization",
"name": "AMP Motorization",
"integration_type": "virtual",
"supported_by": "motion_blinds"
}
@@ -1,4 +1,6 @@
"""Send instance and usage analytics."""
from typing import Any
import voluptuous as vol
from homeassistant.components import websocket_api
@@ -41,7 +43,7 @@ async def async_setup(hass: HomeAssistant, _: ConfigType) -> bool:
async def websocket_analytics(
hass: HomeAssistant,
connection: websocket_api.connection.ActiveConnection,
msg: dict,
msg: dict[str, Any],
) -> None:
"""Return analytics preferences."""
analytics: Analytics = hass.data[DOMAIN]
@@ -62,7 +64,7 @@ async def websocket_analytics(
async def websocket_analytics_preferences(
hass: HomeAssistant,
connection: websocket_api.connection.ActiveConnection,
msg: dict,
msg: dict[str, Any],
) -> None:
"""Update analytics preferences."""
preferences = msg[ATTR_PREFERENCES]
@@ -2,37 +2,20 @@
from __future__ import annotations
from pydroid_ipcam import PyDroidIPCam
import voluptuous as vol
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_HOST,
CONF_NAME,
CONF_PASSWORD,
CONF_PORT,
CONF_SCAN_INTERVAL,
CONF_SENSORS,
CONF_SWITCHES,
CONF_TIMEOUT,
CONF_USERNAME,
Platform,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from homeassistant.helpers.typing import ConfigType
from .const import (
CONF_MOTION_SENSOR,
DEFAULT_NAME,
DEFAULT_PORT,
DEFAULT_TIMEOUT,
DOMAIN,
SCAN_INTERVAL,
SENSORS,
SWITCHES,
)
from .const import DOMAIN
from .coordinator import AndroidIPCamDataUpdateCoordinator
PLATFORMS: list[Platform] = [
@@ -43,66 +26,7 @@ PLATFORMS: list[Platform] = [
]
CONFIG_SCHEMA = vol.Schema(
vol.All(
cv.deprecated(DOMAIN),
{
DOMAIN: vol.All(
cv.ensure_list,
[
vol.Schema(
{
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Required(CONF_HOST): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(
CONF_TIMEOUT, default=DEFAULT_TIMEOUT
): cv.positive_int,
vol.Optional(
CONF_SCAN_INTERVAL, default=SCAN_INTERVAL
): cv.time_period,
vol.Inclusive(CONF_USERNAME, "authentication"): cv.string,
vol.Inclusive(CONF_PASSWORD, "authentication"): cv.string,
vol.Optional(CONF_SWITCHES): vol.All(
cv.ensure_list, [vol.In(SWITCHES)]
),
vol.Optional(CONF_SENSORS): vol.All(
cv.ensure_list, [vol.In(SENSORS)]
),
vol.Optional(CONF_MOTION_SENSOR): cv.boolean,
}
)
],
)
},
),
extra=vol.ALLOW_EXTRA,
)
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up the IP Webcam component."""
if DOMAIN not in config:
return True
async_create_issue(
hass,
DOMAIN,
"deprecated_yaml",
breaks_in_ha_version="2022.11.0",
is_fixable=False,
severity=IssueSeverity.WARNING,
translation_key="deprecated_yaml",
)
for entry in config[DOMAIN]:
hass.async_create_task(
hass.config_entries.flow.async_init(
DOMAIN, context={"source": SOURCE_IMPORT}, data=entry
)
)
return True
CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
@@ -8,15 +8,7 @@ from pydroid_ipcam.exceptions import PyDroidIPCamException, Unauthorized
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import (
CONF_HOST,
CONF_NAME,
CONF_PASSWORD,
CONF_PORT,
CONF_SCAN_INTERVAL,
CONF_TIMEOUT,
CONF_USERNAME,
)
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_PORT, CONF_USERNAME
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import config_validation as cv
@@ -75,19 +67,11 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
self._async_abort_entries_match(
{CONF_HOST: user_input[CONF_HOST], CONF_PORT: user_input[CONF_PORT]}
)
# to be removed when YAML import is removed
title = user_input.get(CONF_NAME) or user_input[CONF_HOST]
if not (errors := await validate_input(self.hass, user_input)):
return self.async_create_entry(title=title, data=user_input)
return self.async_create_entry(title=user_input[CONF_HOST], data=user_input)
return self.async_show_form(
step_id="user",
data_schema=STEP_USER_DATA_SCHEMA,
errors=errors,
)
async def async_step_import(self, import_config: dict[str, Any]) -> FlowResult:
"""Import a config entry from configuration.yaml."""
import_config.pop(CONF_SCAN_INTERVAL)
import_config.pop(CONF_TIMEOUT)
return await self.async_step_user(import_config)
@@ -4,38 +4,6 @@ from datetime import timedelta
from typing import Final
DOMAIN: Final = "android_ip_webcam"
DEFAULT_NAME: Final = "IP Webcam"
DEFAULT_PORT: Final = 8080
DEFAULT_TIMEOUT: Final = 10
CONF_MOTION_SENSOR: Final = "motion_sensor"
MOTION_ACTIVE: Final = "motion_active"
SCAN_INTERVAL: Final = timedelta(seconds=10)
SWITCHES = [
"exposure_lock",
"ffc",
"focus",
"gps_active",
"motion_detect",
"night_vision",
"overlay",
"torch",
"whitebalance_lock",
"video_recording",
]
SENSORS = [
"audio_connections",
"battery_level",
"battery_temp",
"battery_voltage",
"light",
"motion",
"pressure",
"proximity",
"sound",
"video_connections",
]
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d4\u05ea\u05e7\u05df \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4"
},
"error": {
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"invalid_auth": "\u05d0\u05d9\u05de\u05d5\u05ea \u05dc\u05d0 \u05d7\u05d5\u05e7\u05d9"
},
"step": {
"user": {
"data": {
"host": "\u05de\u05d0\u05e8\u05d7",
"password": "\u05e1\u05d9\u05e1\u05de\u05d4",
"port": "\u05e4\u05ea\u05d7\u05d4",
"username": "\u05e9\u05dd \u05de\u05e9\u05ea\u05de\u05e9"
}
}
}
}
}
@@ -20,8 +20,8 @@
},
"issues": {
"deprecated_yaml": {
"description": "Proses konfigurasi Android IP Webcam lewat YAML dalam proses penghapusan.\n\nKonfigurasi YAML yang ada telah diimpor ke antarmuka secara otomatis.\n\nHapus konfigurasi YAML Android IP Webcam dari file configuration.yaml dan mulai ulang Home Assistant untuk memperbaiki masalah ini.",
"title": "Konfigurasi YAML Android IP Webcam dalam proses penghapusan"
"description": "Proses konfigurasi Integrasi Android IP Webcam lewat YAML dalam proses penghapusan.\n\nKonfigurasi YAML yang ada telah diimpor ke antarmuka secara otomatis.\n\nHapus konfigurasi YAML Integrasi Android IP Webcam dari file configuration.yaml dan mulai ulang Home Assistant untuk memperbaiki masalah ini.",
"title": "Konfigurasi YAML Integrasi Android IP Webcam dalam proses penghapusan"
}
}
}
@@ -4,7 +4,7 @@
"documentation": "https://www.home-assistant.io/integrations/androidtv",
"requirements": [
"adb-shell[async]==0.4.3",
"androidtv[async]==0.0.67",
"androidtv[async]==0.0.69",
"pure-python-adb[async]==0.3.0.dev0"
],
"codeowners": ["@JeffLIrion", "@ollo69"],
@@ -0,0 +1,7 @@
{
"config": {
"error": {
"unknown": "Uventet feil"
}
}
}
@@ -92,9 +92,3 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
return self.async_show_form(
step_id="user", data_schema=STEP_USER_DATA_SCHEMA, errors=errors
)
async def async_step_import(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Import a config entry from configuration.yaml."""
return await self.async_step_user(user_input)
@@ -5,73 +5,24 @@ import logging
from anthemav.connection import Connection
from anthemav.protocol import AVR
import voluptuous as vol
from homeassistant.components.media_player import (
PLATFORM_SCHEMA,
MediaPlayerDeviceClass,
MediaPlayerEntity,
MediaPlayerEntityFeature,
MediaPlayerState,
)
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME, CONF_PORT
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_MAC, CONF_NAME
from homeassistant.core import HomeAssistant, callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import (
ANTHEMAV_UDATE_SIGNAL,
CONF_MODEL,
DEFAULT_NAME,
DEFAULT_PORT,
DOMAIN,
MANUFACTURER,
)
from .const import ANTHEMAV_UDATE_SIGNAL, CONF_MODEL, DOMAIN, MANUFACTURER
_LOGGER = logging.getLogger(__name__)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_HOST): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
}
)
async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up our socket to the AVR."""
async_create_issue(
hass,
DOMAIN,
"deprecated_yaml",
breaks_in_ha_version="2022.10.0",
is_fixable=False,
severity=IssueSeverity.WARNING,
translation_key="deprecated_yaml",
)
_LOGGER.warning(
"Configuration of the Anthem A/V Receivers integration in YAML is "
"deprecated and will be removed in Home Assistant 2022.10; Your "
"existing configuration has been imported into the UI automatically "
"and can be safely removed from your configuration.yaml file"
)
await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_IMPORT},
data=config,
)
async def async_setup_entry(
hass: HomeAssistant,
@@ -15,11 +15,5 @@
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"issues": {
"deprecated_yaml": {
"title": "The Anthem A/V Receivers YAML configuration is being removed",
"description": "Configuring Anthem A/V Receivers using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove the Anthem A/V Receivers YAML configuration from your configuration.yaml file and restart Home Assistant to fix this issue."
}
}
}
@@ -15,11 +15,5 @@
}
}
}
},
"issues": {
"deprecated_yaml": {
"description": "Configuring Anthem A/V Receivers using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove the Anthem A/V Receivers YAML configuration from your configuration.yaml file and restart Home Assistant to fix this issue.",
"title": "The Anthem A/V Receivers YAML configuration is being removed"
}
}
}
@@ -18,8 +18,8 @@
},
"issues": {
"deprecated_yaml": {
"description": "Proses konfigurasi Receiver Anthem A/V lewat YAML dalam proses penghapusan.\n\nKonfigurasi YAML yang ada telah diimpor ke antarmuka secara otomatis.\n\nHapus konfigurasi YAML Receiver Anthem A/V dari file configuration.yaml dan mulai ulang Home Assistant untuk memperbaiki masalah ini.",
"title": "Konfigurasi YAML Anthem A/V Receiver dalam proses penghapusan"
"description": "Proses konfigurasi Integrasi Receiver Anthem A/V lewat YAML dalam proses penghapusan.\n\nKonfigurasi YAML yang ada telah diimpor ke antarmuka secara otomatis.\n\nHapus konfigurasi YAML Integrasi Receiver Anthem A/V dari file configuration.yaml dan mulai ulang Home Assistant untuk memperbaiki masalah ini.",
"title": "Konfigurasi YAML Integrasi Anthem A/V Receiver dalam proses penghapusan"
}
}
}
+7 -2
View File
@@ -172,6 +172,11 @@ SENSORS: dict[str, SensorEntityDescription] = {
native_unit_of_measurement=TEMP_CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
"laststest": SensorEntityDescription(
key="laststest",
name="UPS Last Self Test",
icon="mdi:calendar-clock",
),
"lastxfer": SensorEntityDescription(
key="lastxfer",
name="UPS Last Transfer",
@@ -331,8 +336,8 @@ SENSORS: dict[str, SensorEntityDescription] = {
),
"selftest": SensorEntityDescription(
key="selftest",
name="UPS Last Self Test",
icon="mdi:calendar-clock",
name="UPS Self Test result",
icon="mdi:information-outline",
),
"sense": SensorEntityDescription(
key="sense",

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