Add Support for Fujitsu wireless Air Conditioning control app - FGLair

Hi @philwilldo,

Thanks - for some reason FGLair decided to go nuts, I removed the A/C from FGLair and reconnected - all good now.

Thanks Simon

1 Like

Hi @Marco_Simon,

It’s a bit flaky since 0.96 of hass.io @philwilldo made some code changes which I think are pending merge into the master.

Have a read of the post from Aug 4 2019 - some good information there.

regards Simon

1 Like

Hi @philwilldo,

I’ve finally loaded the code changes you made back on Aug 14 - works great thanks.

@Marco_Simon,

I think this is the process…

Pull the code from https://github.com/xerxes87/pyfujitsu_for_homeassistant as opposed to the original repo and follow instructions in same locale.

You’ll need some additional files from https://github.com/xerxes87/pyfujitseu/releases/tag/0.9.3.0 put these into config\deps\lib\python3.7\site-packages\pyfujitsu

Good luck.

2 Likes

I’ve removed the original files from <custom_components/fujitsu_general_heatpump>

And replaced it with the files from https://github.com/xerxes87/pyfujitsu_for_homeassistant

<config/deps> was empty folder

I created <config\deps\lib\python3.7\site-packages\pyfujitsu>
and put this files in https://github.com/xerxes87/pyfujitseu/releases/tag/0.9.2.9

Put the next info in confguration.yaml

climate:

  • platform: fujitsu_general_heatpump
    username: !secret FGLAIR_USER
    password: !secret FGLAIR_PASS
    region: ‘eu’

the pass and username are in the secretfile

Reboot home assistant, and got the next error:

Wed Oct 09 2019 16:42:54 GMT+0200 (Midden-Europese zomertijd)
Error while setting up platform fujitsu_general_heatpump
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 77, in setup_platform
    if not fglairapi._authenticate():
  File "/config/deps/lib/python3.7/site-packages/pyfujitsu/api.py", line 118, in _authenticate
    f = open(self._ACCESS_TOKEN_FILE, "w")
TypeError: expected str, bytes or os.PathLike object, not NoneType

created token.txt in
added --> tokenpath: ‘token.txt’ in configuration.yaml

Rebooted.

and the error changed to:

Wed Oct 09 2019 17:09:41 GMT+0200 (Midden-Europese zomertijd)
Error while setting up platform fujitsu_general_heatpump
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 84, in setup_platform
    add_entities(FujitsuClimate(fglairapi, dsn) for dsn in devices)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 199, in _schedule_add_entities
    list(new_entities),
  File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 84, in <genexpr>
    add_entities(FujitsuClimate(fglairapi, dsn) for dsn in devices)
  File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 106, in __init__
    self._swing_mode = self.swing_mode
  File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 195, in swing_mode
    return self._fujitsu_device.get_swing_mode_desc()
  File "/config/deps/lib/python3.7/site-packages/pyfujitsu/splitAC.py", line 145, in get_swing_mode_desc
    if self.af_vertical_direction['value'] is not None:
TypeError: 'NoneType' object is not subscriptable

Hi @Marco_Simon,

Great to have you in the Fujitsu team.

Seems like you used release 0.9.2.9. Please use current one from here: https://github.com/xerxes87/pyfujitseu/releases/tag/0.9.3.0

Some Fujitsu AC models (like yours) seem to have different swing types.

BR

2 Likes

Ah yes @philwilldo

I corrected my post to keep it all in one place - thanks for pointing that out :slight_smile:

cheers Simon

1 Like

I changed the files with the one u mentioned.

in dev. tools the error was gone but still no components added.

When looking at the log file the next error was found

ERROR (SyncWorker_4) [homeassistant.loader] Error parsing manifest.json file at /config/custom_components/fujitsu_general_heatpump/manifest.json: Expecting value: line 9 column 5 (char 307)

the manifest.json:

{
    "domain": "https://github.com/Mmodarre/pyfujitsu_for_homeassistant",
    "name": "fujitsu_general_heatpump",
    "documentation": "https://github.com/Mmodarre/pyfujitsu_for_homeassistant/blob/95e3ba879214aa9abf70979185ae189776ba4846/README.md",
    "dependencies": [],
    "codeowners": [
        "@Mmodarre",
        "@xerxes87",
    ],
    "requirements": ["pyfujitsu==0.9.0"],
    "homeassistant": "0.96.0"
  }

I don’t see the error :thinking:

Hi @Marco_Simon,

I did an update on manifest.json. Find it here: https://github.com/xerxes87/pyfujitsu_for_homeassistant

Hopefully it will work now.

1 Like

@Marco_Simon do you have it running now?

1 Like

Today i got a chance to test the new file.

It needed a hard reboot,

But then …yes… i’ve got it up and running :smiley:

Thank you for your kind and patient help :wink: :smiley:

Still not 100% working.

I’ve got the climate component for the bedroom airco.
If i change the name in the fglair app after refresh it changes in hassio.

I can see the graph of the set temp and it changes if i turn on the airco by the fglair app.
And with a little bit of patience also by the component.

Fanmodes doesn’t seem to work, setting the fan to high doesn’t change the fan settings.
I don’t use this that often yet, so doesn’t bother me so far.

But i haven’t yet found a way to turn the airco on or off bij the component.
And this is a feature i really do like to have.

Please provide a screenshot of your component’s detail view. Attached is mine, action is set to off.

You seem to have a different model, where fan and swing modes are handled in an other way. Fixing this would need further API investigation from your side.

The delay is usual behavior, because the component regularly pulls the status.

When i put the climate component to cool.
Nothing hapens. In fglair app it states airco is on, but in fact the airco is off.

When i turn the airco on by the fglair app. Then set the airco component to heat, nothing changes but i also don’t get a error message

When i press swingmodus i get a error.
In the log it says:

Thu Oct 24 2019 13:30:53 GMT+0200 (Midden-Europese zomertijd)
'NoneType' object is not subscriptable
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 133, in handle_call_service
    connection.context(msg),
  File "/usr/src/homeassistant/homeassistant/core.py", line 1233, in async_call
    await asyncio.shield(self._execute_service(handler, service_call))
  File "/usr/src/homeassistant/homeassistant/core.py", line 1258, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    self._platforms.values(), func, call, service_name, required_features
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 348, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 370, in _handle_service_platform_call
    await getattr(entity, func)(**data)
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 423, in async_set_swing_mode
    await self.hass.async_add_executor_job(self.set_swing_mode, swing_mode)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 204, in set_swing_mode
    self._fujitsu_device.changeSwingMode(swing_mode)
  File "/config/deps/lib/python3.7/site-packages/pyfujitsu/splitAC.py", line 122, in changeSwingMode
    self.af_vertical_direction = 0
  File "/config/deps/lib/python3.7/site-packages/pyfujitsu/splitAC.py", line 335, in af_vertical_direction
    self._api._set_device_property(self.af_vertical_direction['key'],properties)
TypeError: 'NoneType' object is not subscriptable 

I see your AC has a lot more functionality than mine. Still, I ran into the same issue you described last week after an electricity outage. After a lot of trying, I was able to fix it today. I just disconnected my AC from the power for 1 minute and connected it again.
Afterwards everything worked again.

BTW, I added a lot of Debug logs. You can activate them by setting:

custom_components.fujitsu_general_heatpump: debug
custom_components.fujitsu_general_heatpump.climate: debug

In the logger.

Try to avoid playing around with swing modus for now. Just set a valid one with your remote and don’t touch it within Home Assistant.

All new versions stored locally on my Pi.

  • /config/custom_components/fujitsu_general_heatpump
  • /config/deps/lib/python3.7/site-packages/pyfujitsu

But still only error: “Platform error climate.fujitsu_general_heatpump - Integration ‘fujitsu_general_heatpump’ not found.”

It drives me nuts :wink:

All help appreciated…

Hi @vandenbogerd,

Have you followed the notes from @qwackers :
Add Support for Fujitsu wireless Air Conditioning control app - FGLair - #84 by qwackers

How is your file structure in your custom_components/fujitsu_general_heatpump folder

Have you enabled logging, described here:

Hi @philwilldo

Logger activated. Not going further than: “2019-11-11 09:34:42 ERROR (MainThread) [homeassistant.components.hassio] Platform error climate.fujitsu_general_heatpump - Integration ‘fujitsu_general_heatpump’ not found.”

Yes I followed the notes from @qwackers.

The filestructure is as followed:

I had to work on the electricity so put the power down for several minutes.
But still can’t turn the airco on with the climate unit.
I’ve activated the logger so see what turns out of that.

Hey All,

Anyone having issues with Home Assistant controlling their Fujitsu in the last week?

My hass install has been rock solid for months right up to a week ago coinciding with an update to the FGLAir app.

Logs throwing no errors, only evidence of not working is the A/C does not turn off or on. FGLAir app works perfectly…

How’s the experience for others?

Thanks Simon

1 Like

For me it isn’t working at all.

Not even status updates when i use the remote control