core/homeassistant/brands
Antoine Reversat 1afed8ae15
Add Fujitsu FGLair integration (#109335)
* Add support for Fujitsu HVAC devices

* Add the entity code to .coveragerc

* Only include code that can fail in the try/except block

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Remove empty keys from manifest

* Remove VERSION as it's already the default

* Remve the get_devices function and use asyncio.gather to parallelize dev updates

* Move initial step to a function

* Let KeyError bubble up. If we are passed an invalid mode it's probably worth raising an exception.

* Await the gather

* Use the async version of the refresh_auth call

* Use the serial number as unique id

* Use HA constant for precision

* Use dev instead of self._dev

* Move to property decorated methods

* Remove bidict dependency

* Setup one config entry for our api credentials instead of per device

* Remove bidict from requirements

* Signout and remove our api object on unload

* Use app credentials from ayla_iot_unofficial

* Use entry_id as a key to store our API object

* Delete unused code

* Create reverse mappings from forward mapping instead of hardcoding them

* Clean up the property methods

* Only import part of config_entries we are using

* Implement suggested changes

* Fix tests to use new API consts

* Add support for reauth

* Use a coordinator instead of doing per-entity refresh

* Auto is equivalent to HEAT_COOL not AUTO

* Add ON and OFF to list of supported features

* Use the mock_setup_entry fixture for the reauth tests

* Parametrize testing of config flow exceptions

* Only wrap fallable code in try/except

* Add tests for coordinator

* Use self.coordinator_context instead of self._dev.device_serial_number

* Move timeout to ayla_iot_unofficial

* Add description for is_europe field

* Bump version of ayla-iot-unofficial

* Remove turn_on/turn_off warning

* Move coordinator creating to __init__

* Add the type of coordinator to the CoordiatorEntity

* Update docstring for FujitsuHVACDevice constructor

* Fix missed self._dev to dev

* Abort instead of showing the form again with an error when usernames are different

* Remove useless argument

* Fix tests

* Implement some suggestions

* Use a device property the maps to the coordinator data

* Fix api sign out when unloading the entry

* Address comments

* Fix device lookup

* Move API sign in to coordinator setup

* Get rid of FujitsuHVACConfigData

* Fix async_setup_entry signature

* Fix mock_ayla_api

* Cleanup common errors

* Add test to check that re adding the same account fails

* Also patch new_ayla_api in __init__.py

* Create a fixture to generate test devices

* Add a setup_integration function that does the setup for a mock config entry

* Rework unit tests for the coordinator

* Fix typos

* Use hass session

* Rework reauth config flow to only modify password

* Update name to be more use-friendly

* Fix wrong type for entry in async_unload_entry

* Let TimeoutError bubble up as teh base class handles it

* Make the mock ayla api return some devices by default

* Move test to test_climate.py

* Move tests to test_init.py

* Remove reauth flow

* Remove useless mock setup

* Make our mock devices look real

* Fix tests

* Rename fujitsu_hvac to fujitsu_fglair and rename the integration to FGLair

* Add the Fujitsu brand

* Add a helper function to generate an entity_id from a device

* Use entity_id to remove hardcoded entity ids

* Add a test to increase code coverage

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-18 15:37:33 +02:00
..
airthings.json
airvisual.json
airzone.json Add Airzone Cloud integration (#93238) 2023-05-23 19:22:50 +02:00
amazon.json Add Fire TV virtual integration (#85741) 2023-01-16 20:12:31 +01:00
ambient_weather.json Add Ambient Weather brand (#115898) 2024-06-21 10:51:46 +02:00
apple.json Add Apple WeatherKit integration (#99895) 2023-09-11 12:06:55 -05:00
aruba.json
august.json
cisco.json
clicksend.json
denon.json
devolo.json
dlna.json
elgato.json
emoncms.json
eq3.json Add eq3btsmart integration (#109291) 2024-03-28 15:20:56 -10:00
eufy.json Add EufyLife Bluetooth integration (#85907) 2023-01-16 18:29:50 -10:00
ffmpeg.json
flexit.json Add Flexit bacnet integration (#104275) 2023-11-30 16:50:13 +01:00
fritzbox.json
fujitsu.json Add Fujitsu FGLair integration (#109335) 2024-08-18 15:37:33 +02:00
geonet.json
globalcache.json
google.json Add Google tasks integration, with initial read-only To-do list (#102629) 2023-10-24 21:30:29 -07:00
govee.json Add Govee local light integration (#106697) 2024-01-16 20:00:29 +01:00
heltun.json Add virtual integration for HELTUN (#88892) 2023-02-28 18:09:52 +01:00
hikvision.json
homematic.json
homeseer.json Add brand for HomeSeer (#90066) 2023-03-28 16:37:57 +02:00
honeywell.json
ibm.json
ikea.json Add integration for IKEA Idasen Desk (#99173) 2023-09-20 02:44:35 +02:00
inovelli.json
jasco.json
leviton.json
lg.json
logitech.json Remove UE Smart Radio integration (#122578) 2024-07-29 12:52:37 +02:00
lutron.json
melnor.json
microsoft.json Remove xbox_live integration (#90592) 2023-03-31 14:30:04 -04:00
motionblinds.json Add Motionblinds brand (#114235) 2024-03-27 08:02:25 +01:00
mqtt.json
netgear.json
openwrt.json
panasonic.json
philips.json
qnap.json
rainforest_automation.json Fix brand ID for Rainforest Automation (#113770) 2024-05-14 22:50:48 +02:00
raspberry_pi.json
russound.json
ruuvi.json Make Ruuvi a brand (#118786) 2024-06-04 13:40:06 +02:00
samsung.json
solaredge.json
sony.json
switchbot.json Add switchbot cloud integration (#99607) 2023-09-16 16:00:41 +02:00
synology.json
telegram.json
telldus.json
tesla.json Add Tesla Fleet integration (#122019) 2024-07-19 09:05:27 +02:00
third_reality.json
tplink.json Add tapo virtual integration (#109765) 2024-02-07 06:29:26 +01:00
traccar.json Add brands definition for Traccar (#109219) 2024-01-31 18:15:40 +01:00
trafikverket.json Add Trafikverket Camera integration (#79873) 2023-08-24 10:39:22 +02:00
twilio.json
u_tec.json Revert "Remove the virtual integration for ultraloq" (#99302) 2023-08-30 14:58:57 -04:00
ubiquiti.json
vlc.json
weatherflow.json Make Weatherflow a brand (#118785) 2024-06-04 13:40:48 +02:00
xiaomi.json
yale.json Add Yale Home virtual integration (#93364) 2023-05-24 07:21:49 +02:00
yamaha.json
yandex.json
yeelight.json
zooz.json