Add Support for Fujitsu wireless Air Conditioning control app - FGLair

Seems that to be able to use Airstage, you need to buy a new device: UTY-TFSXH3

What is the value proposition ? What does it bring more ? Why would existing FGLair users invest ?

We are back to the initial problem.

Why fujitsu has suspended its delivery of FG lair compliant Wifi in the UK ? How do they deal with their existing customer base

I remember that one year ago availability of FG Lair compliant devices where also out of stock in the benelux. This is not the case anymore

I am getting the same result NG error message. I wonder is your unit set to local mode or cloud mode? I wonder it it being set to cloud mode causes the errors? Thanks.

Hello @gorstj, the company that installed our aircon units informed me that there will be no further use of FGLAir and only AIRStage will be supported in the future.

Are there tests available for this Home Assistant plugin as I keep getting an authentication error while my credentials are correct. Lost a lot of time getting the plugin to work (upgrading HA, re-install and configure plugins, cameras, ā€¦) but now authentication is not working. A step by step manual and some tests might be useful. Can anyone help?
Logger: homeassistant.components.climate
Source: custom_components/fujitsu_general_heatpump/climate.py:85
Integration: Climate (documentation, issues)
First occurred: 1:55:00 PM (1 occurrences)
Last logged: 1:55:00 PM

Error while setting up fujitsu_general_heatpump platform for climate

Traceback (most recent call last): File ā€œ/usr/src/homeassistant/homeassistant/helpers/entity_platform.pyā€, line 353, in _async_setup_platform await asyncio.shield(task) File ā€œ/usr/local/lib/python3.11/concurrent/futures/thread.pyā€, line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ā€œ/config/custom_components/fujitsu_general_heatpump/climate.pyā€, line 85, in setup_platform if not fglairapi._authenticate(): ^^^^^^^^^^^^^^^^^^^^^^^^^ File ā€œ/usr/local/lib/python3.11/site-packages/pyfujitseu/api.pyā€, line 105, in _authenticate response = self._call_api(ā€œPOSTā€, ^^^^^^^^^^^^^^^^^^^^^^ File ā€œ/usr/local/lib/python3.11/site-packages/pyfujitseu/api.pyā€, line 164, in _call_api response.raise_for_status() File ā€œ/usr/local/lib/python3.11/site-packages/requests/models.pyā€, line 1021, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://user-field.aylanetworks.com/users/sign_in.json

Have you found out anything? Iā€™m very interested in fetching the current temperature as well

Sorry to bump this up, but after reading through 6 years of development, Iā€™m completely lost on how to get this running.

I have the hisense add-on, but whatever I enter in the config, it always fails to save and says ā€œMissing option ā€˜appā€™ in root in HiSense Air Conditioners (c34eddb3_hisense_ac)ā€

Any help?

Iā€™m new and just trying out HAOS on a VM at the moment.

Edit: nevermind, I got it. For some reason entering the data as yaml instead of using the fill in boxes made it work. Now I just need to wait for tomorrow when the kids are awake to turn on their ACā€™s to discover which one is which.

Iā€™m a little lost after spending almost 2 hours reading the comments. For several years, the automation of my A/C has been done using Nodered and IFTTT. IFTTT plan price increases by 100% in the coming days. I would like to manage my A/C with the following solution: GitHub - deiger/AirCon: Scripts for controlling Air Conditioners, e.g. with HiSense modules.. Control would be by MQTT with automation by Nodered and manual control by HA.

I want to install the A/C control server on a synology docker, outside of HA. However, I am stuck on prerequisite #4, because my router does not allow me to control Internet access. Is this prerequisite mandatory? What are the risks if I leave access to the Internet?

Once everything has been configured, the A/Cs can be blocked from connecting to the internet, as it will no longer be needed. Set them static IP addresses in the router, and write them down.

Note: To avoid the need for manual changes later, make sure the app is aware of the new IP addresses before disconnecting the A/Cs from the internet.

Iā€™ve been using this add-on successfully for a few years. Over the weekend, a power outage somehow caused my router to lose all of its assigned (static) IP addresses. I have three FGLAir heat pumps that Iā€™ve been controlling with the Hisense add-on.

Iā€™ve re-assigned the same IP addresses to the three units. Two are connected to the add-on; the third is connected to WiFi, but the add-on will not pick it up. Here are the logs:

I0325 09:01:05.663  query_handlers.py:139] Decrypted: {"seq_no":0,"data":{"name":"operation_mode","value":6}}
I0325 09:01:05.665  web_log.py:206] x.x.x.103 [25/Mar/2024:13:01:05 +0000] "POST /local_lan/property/datapoint.json?cmd_id=0&status=200 HTTP/1.1" 200 150 "-" "-"
I0325 09:01:05.668  query_handlers.py:139] Decrypted: {"seq_no":0,"data":{"name":"operation_mode","value":6}}
I0325 09:01:05.670  web_log.py:206] x.x.x.101 [25/Mar/2024:13:01:05 +0000] "POST /local_lan/property/datapoint.json?cmd_id=0&status=200 HTTP/1.1" 200 150 "-" "-"
E0325 09:01:08.647  notifier.py:121] Failed to connect to x.x.x.102, maybe it is offline?

I get the ā€œfailed to connectā€ message for the third unit over & over. Iā€™ve uninstalled and reinstalled the add-in. I can ping the unit from within the network. Iā€™ve confirmed the unit is available in the FGLAir appā€¦

OK, Iā€™m leaving this up just in case anyone runs into it, but as I was running down the list of things Iā€™d tried, I realized I hadnā€™t power-cycled the heat pump. That worked.

Anyone else experience a significant delay when controlling heat pumps? I got the deiger aircon container running last night in Docker and at first seemed really snappy. But playing with it this morning there is a delay between any command and the heat pump responding, feels like around a minute. Is there a way to overcome this?

Also I havenā€™t blocked the units from the internet like it said to in the instructions, why is this necessary?

Hello, I am installed via HACS lates bigmoby/fglair_for_homeassistant. I am logged into my fglair acc but my units are not visible,

I am downloaded logs and I am find errors:

KeyError: 'value'
2024-06-30 11:57:04.585 DEBUG (MainThread) [custom_components.fglair_heatpump_controller.climate] FujitsuClimate return device name [loznice]
2024-06-30 11:57:04.586 ERROR (MainThread) [homeassistant.components.climate] fglair_heatpump_controller: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 729, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1289, in async_device_update
    await self.async_update()
  File "/config/custom_components/fglair_heatpump_controller/climate.py", line 419, in async_update
    await self._fujitsu_device.async_get_display_temperature_degree()
  File "/usr/local/lib/python3.12/site-packages/pyfujitsugeneral/splitAC.py", line 329, in async_get_display_temperature_degree
    display_temperature_value = self._display_temperature["value"]

any idea how solve this issue ?

I have exactly the same problem as @simecky. Very interested in a solution for this.

All,

I am really a newbee in the HomeAssistant world.
I managed to install HA on a Ubuntu System in a docker container, but now I try to get support for FGlair up and running. I tried already several things but I get stuck on this error in the log file:
2024-07-19 13:30:55.774 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Integration ā€˜fujitsu_general_heatpumpā€™ not f
ound.
2024-07-19 13:30:56.348 ERROR (MainThread) [homeassistant.config] Platform error: climate - Integration ā€˜fujitsu_general_heatpumpā€™ not found.

Most probably I am just not copying files to the correct directories but who can help me in getting it correct.

Very much thanks in advance to get me a bit more knowledge of the HA experience :slight_smile:

I think this is what is used in the docker configuration to set the config path:
-v /home/marc/homeassistant:/config

BR,
Marc

I have the exact same problem. Login successful, it finds my airco, but the returned data is not what it expects:

2024-07-27 12:04:51.832 DEBUG (MainThread) [custom_components.fglair_heatpump_controller] Finished fetching fglair_heatpump_controller data in 0.570 seconds (success: True)
2024-07-27 12:04:51.833 DEBUG (MainThread) [custom_components.fglair_heatpump_controller.climate] FujitsuClimate async_setup_entry called
2024-07-27 12:04:52.355 DEBUG (MainThread) [custom_components.fglair_heatpump_controller.climate] async_setup_entry called with AC000W00xxxxxxx - eu - token.txt - 2.0  
2024-07-27 12:04:52.356 DEBUG (MainThread) [custom_components.fglair_heatpump_controller.climate] FujitsuClimate init called for dsn: AC000W00xxxxxxx
2024-07-27 12:04:52.357 DEBUG (MainThread) [custom_components.fglair_heatpump_controller.climate] Update FujitsuClimate device by async_update
2024-07-27 12:04:53.051 DEBUG (MainThread) [custom_components.fglair_heatpump_controller.climate] FujitsuClimate return device name [Living Room]
2024-07-27 12:04:53.052 ERROR (MainThread) [homeassistant.components.climate] fglair_heatpump_controller: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 727, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1296, in async_device_update
    await self.async_update()
  File "/config/custom_components/fglair_heatpump_controller/climate.py", line 419, in async_update
    await self._fujitsu_device.async_get_display_temperature_degree()
  File "/usr/local/lib/python3.12/site-packages/pyfujitsugeneral/splitAC.py", line 329, in async_get_display_temperature_degree
    display_temperature_value = self._display_temperature["value"]
                                ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: 'value'

I just installed wifi adapters on two of my units and Iā€™m also seeing this. Did it previously work for you and then break or is this your first time setting it up?

My other unit which has wifi built in works fine.

I noticed the firmware for the adapter units is 2.6.17-fgl2 and for the built-in unit it is 2.7.16-fgl, I wonder if that has anything to do with it.

Edit: Digging in to it a bit, the underlying client ( GitHub - bigmoby/pyfujitsugeneral: Python Library for interacting with Fujitsu General split AC API ) is calling the fglair GET API to get all the device properties and the ā€œdisplay_temperatureā€ is simply not there.

For my unit that it does work on, it looks like it has roughly 2x as many properties in the JSON than the other two units.

I so the question is why is the pyfujitsugeneral API call not getting all the properties. Iā€™m having trouble finding the FGLair APi documentation. The app seems to be getting the display temp fine, so Iā€™m curious what is the issue.

Okay learning a bit more about how the API works, it looks like for my two units that are having trouble, the API may simply not return the ā€˜display_temperatureā€™ which I guess is the ambient temperature of the room, but it does return ā€˜adjust_temperatureā€™ which is the actual setting, and what is displayed in the FGLair app.

So itā€™s possible that certain units simply do not have access to all the possible properties. It seems the HA integration will need to handle this.

I donā€™t know much about the HA code, and how itā€™s meant to handle missing properties, but for pyfujitsugeneral I see an issue with the code that is causing the crash.

    async def async_get_display_temperature_degree(self) -> float | None:
        data = None
        print(self._display_temperature)
        if self._display_temperature is not None:
            display_temperature_value = self._display_temperature["value"]
            if display_temperature_value == 65535:
                datapoints = await self._async_get_device_property_history(
                    self._display_temperature["key"]
                )
                # Get the latest setting other than invalid value
                for datapoint in reversed(datapoints):
                    if datapoint["datapoint"]["value"] != 65535:
                        display_temperature_value = int(datapoint["datapoint"]["value"])
                        break
            data = round(((display_temperature_value / 100 - 32) / 9 * 5), 1)
        return data - self._temperature_offset

This code is crashing on the 'value' key because self._display_temperature is {}, but the check is for it if is not None, which allows it to proceed to the key error.

But, even if the check were fixed to skip the code if it is {} it would try to return None - None which would also cause an error.

See here for my workaround fix: KeyError: 'value' on new integration Ā· Issue #151 Ā· bigmoby/fglair_for_homeassistant Ā· GitHub

Iā€™m using the HiSense add-on with several Fujitsu heat pumps. Itā€™s been working well for a few years. Iā€™m able to control mode, set temperature, and fan speed. Is anyone using this add-on via MQTT and able to also send the following commands/poll states:

  • airflow vertical/swing
  • airflow horizontal/swing
  • powerful mode
  • eco mode
  • energy saving fan mode

?

anyone already tried official FGLAIR integration? In my case, it seems to donā€™t find my climate deviceā€¦any exeperience?

nothing in logsā€¦