This is an unoffical Home Assistant integration I wrote for my Argo Ulisse Eco, using the undocumented API used by the webapp.
At the moment, only the device I own is supported. There is a good chance that other wifi capable devices use the same API thoug. So if you own a different device, please feel
Feature | Implementation / Supported for | Ulisse 13 DCI Eco WiFi |
---|---|---|
on / off | climate operation |
✓ |
operation mode | climate operation |
✓ |
eco mode | climate preset |
✓ |
turbo mode | climate preset |
✓ |
night mode | climate preset |
✓ |
current temperature | climate |
✓ |
set target temperature | climate |
✓ |
set fan speed | climate fan mode |
✓ |
set flap mode | x | - |
set filter mode | x | - |
set active timer | select |
✓ |
use remote temperature | switch |
✓ |
timer configuration | x | x |
set current time and weekday | set_time service | ✓ |
device lights on / off | switch |
✓ |
display unit * | select |
✓ |
eco mode power limit | number |
✓ |
firmware version ** | device registry | ✓ |
reset device | x | x |
[text
] platform the feature is represented by in HA
[-] not supported by the device
[x] not implemented
* This only affects the value displayed on the device and the webinterface. ** Not visible in the frontend.
- Using the tool of choice open the directory (folder) for your HA configuration (where you find
configuration.yaml
). - If you do not have a
custom_components
directory (folder) there, you need to create it. - In the
custom_components
directory (folder) create a new folder calledargoclima
. - Download all the files from the
custom_components/argoclima/
directory (folder) in this repository. - Place the files you downloaded in the new directory (folder) you created.
- Restart Home Assistant
- In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "Argoclima"
At the moment, the integration will communicate with the device locally. Cloud based communication is not supported.
Follow the instructions provided with the device to connect it to your network. Once that is done, I highly recommend assigning it a static IP via router configuration. The integration is IP based and can not identify the device by any other means.
Select your device type, give it a name and enter the IP. The IP can be changed later.
The temperature sensor integrated in the remote can still be used.
To make this work:
- To not overwrite the device's configuration, e.g. cover up the IR diode of the remote.
- Set the state of the remote to On (indicated by e.g. the grid lines and the fan icon being visible).
- Enable remote temperature mode (indicated by the user icon, toggled by holding the fan button for 2 seconds). This might not be required. Not sure.
If my observations are correct, the remote will now send the temperature (no other settings):
- every 6 minutes if no change is detected
- whenever the temperature displayed on the remote changes
Probably more often, but that's what I found.
You can find a dummy implementation of the server in the folder dummy-server
. You can use this if you do not want your AC to communicate with the internet. By this you will lose the ability to use the original web UI.
For this to work you need to redirect all traffic to a server running this dummy implementation. As the original server is a hardcoded public IP you need to change the routing through your router. For example with an Asus router running Asuswrt-Merlin this can be done by SSHing to your router and adding a file called nat-start
to /jffs/scripts
(ensure to enable custom scripts via the router UI). This file should contain iptables -t nat -I PREROUTING -s 0.0.0.0/0 -d 31.14.128.210 -p tcp -j DNAT --to-destination YOUR_SERVER:8080
with YOUR_SERVER
replaced with the server ip running the dummy server.
You can set the port the dummy server listens to via the env SERVER_PORT
, it defaults to 8080
- If an API request is sent while another one is still in progress, the latter will be cancelled. It does not matter whether any of the requests actually changes anything. I.e. concerning parallel requests, only the most recent one is regarded by the device.
Because of this, you should not use the official wep app in addition to this integration. - In case a value could not be changed (due to the problem mentioned above), it will be sent again until it is confirmed.
- Because the response of an update request does not contain the updated information, updates will be sent twice in most cases.
- There are however settings that can only be written and thus there is no way to check if they have been accepted. This affects current time and weekday, timer configuration and reset. Those values will only be sent once.
Device can't be created / Device is unavailable, the IP is correct and the device is connected:
Turn off the device and unplug it, leave it for an unknown amount of time (1min is enough for sure), then try again.
If you want to contribute to this please read the Contribution guidelines
This project was generated from @oncleben31's Home Assistant Custom Component Cookiecutter template.
Code template was mainly taken from @Ludeeus's integration_blueprint template.