This is an unofficial Home Assistant integration I wrote for my Argo Ulisse Eco WiFi, 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 though. So if you own a different device, please feel free to get in touch or contribute. | 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 web interface. ** Not visible in the frontend.
configuration.yaml
).custom_components
directory (folder) there, you need to create it.custom_components
directory (folder) create a new folder called argoclima
.custom_components/argoclima/
directory (folder) in this repository.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:
If my observations are correct, the remote will now send the temperature (no other settings):
Probably more often, but that's what I found.
By default, your device periodically communicates with Argos's server (hardcoded IP 31.14.128.210
). Without this connection, the API this integration uses won't work. This repository provides a dummy server docker image, so you can keep the traffic in your local network. By doing this, you will lose the ability to use the original web UI.
You can pull the docker image from https://hub.docker.com/r/nyffchanium/argoclima-dummy-server, or you can run the server without docker by using the Go script in the dummy-server
folder.
You can set the port the dummy server listens to via the env SERVER_PORT
. It defaults to 8080
.
For the dummy server to be of any use, you need to redirect the traffic to it. As the original server is a hardcoded public IP you need to change the routing through your router.
Example with an Asus router running Asuswrt-Merlin:
nat-start
in /jffs/scripts
(replace YOUR_SERVER
and YOUR_PORT
with the address and port of your dummy server instance).
#!/bin/sh
iptables -t nat -I PREROUTING -s 0.0.0.0/0 -d 31.14.128.210 -p tcp -j DNAT --to-destination YOUR_SERVER:YOUR_PORT
chmod a+rx /jffs/scripts/*
.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.
Home Assistant loses the connection to the device every few seconds:\ \ This seems to be caused by Argo's server being overloaded and not responding to the device's requests. Apparently, dropped / timed out requests result in the device resetting the WLAN connection.\ At the moment, the only known workaround is to use the dummy server.
If you want to contribute to this please read the Contribution guidelines
The dummy server has been contributed by @lallinger.
This project was initially generated from @oncleben31's Home Assistant Custom Component Cookiecutter template.
Code template was mainly taken from @Ludeeus's integration_blueprint template.