I’ve got a fan called Flexit Roomie Dual Wifi installed in my office that I control using an iOS app called Flexit Roomie. I cannot find any information on how the app connects to the fan. In the app i only specify the local IP address for the device and it works without any password or other security.
The device has an espressif esp-wroom-02 chip on it. I’ve been checking the board for accessible pins, but it’s not very tinkering friendly made.
Is it possible to identify how to access the API without knowing the url, port or any other info?
It there any easy way to sniff how the app communicates with the device?
I’ve got no experience on this whatsoever, but would like to try figuring it out. Any help would be much appreciated
I’ve been going through the whole board with a multimeter in search for accessible RX/TX, but could not find any. I only find them in places I’m not comfortable soldering on.
Another possibility would be to connect a second ESP to the input used by the control board on the side, but then I have to figure out how it works.
I would really like to connect to the API or know how the app is communicating with the device before I start working on flashing it with custom firmware.
Is there any way to identify how to find and access the API?
I came across this custom component made by aglehmann:
I’m only able to turn the fan on/off with this component and it’s good enough for me as I only use one fan speed and never change it. The fan speed setting is not sending the correct hexcode.
aglehmann say he will look into it, but I don’t know when.
Thanks Mathias! That component seams to be what I could use. I have not bought the fan yet but I whant to know beforehand if what I buy is supported
In that component he also mentions 2 other fans so then I have to look into them
As I said in the first post I have the Flexit Roomie Dual Wifi and I can verify that this component works with my fan. How it works with other fans I don’t know, but the documentation used to send and receive commands is taken from Blauberg VENTO Expert Duo A30-1 W that looks like it’s the same fan.
Also succeeded to integrate this fan with HA. But every time HA sends command to device - it beeps. Do you succed in turning off sound for your device?
OK, so now it started to get irritating. Decided to find a way to silence it, or at least reduce volume.
I found a solution witch was good enough for me. Just put some tape over the vent on the bottom helped alot. The beeper is located just inside of the vent so if that’s not sufficient you can try doing some more drastic on it.
I have a question
As a novice HA user I’ve installed integration via HACS, and added these few lines to yaml file:
ecovent:
devices:
- name: “Bathroom fan”
ip_address: x.x.x.x
From GitHub doc - readme file, it states that something else is needed.
But I’m not sure how to use the py script that seems to be needed.
Do in need to install something else, and how where should config be setup.
I thought I would get devices listed after restarting HA.
I just had a Roomie Dual Wifi installed and the ecovent is working great with it.
For now I am using an enity card on my dashboard. But it would be nice to directly have this:
Does this integration still work for Flexit Roomie Wifi?
My integration fails on setup:
Logger: homeassistant.components.fan
Source: helpers/entity_platform.py:364
integration: Fan (documentation, issues)
First occurred: 21:39:27 (1 occurrences)
Last logged: 21:39:27
Error while setting up ecovent platform for fan
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 364, in _async_setup_platform
await asyncio.shield(awaitable)
File "/config/custom_components/ecovent/fan.py", line 62, in async_setup_platform
hass.data[ECOVENT_FAN_DEVICES].append(EcoventFan(device))
^^^^^^^^^^^^^^^^^^
File "/config/custom_components/ecovent/fan.py", line 91, in __init__
self._fan.update()
File "/usr/local/lib/python3.12/site-packages/ecovent/__init__.py", line 43, in update
response = self.receive()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/ecovent/__init__.py", line 36, in receive
response = self.socket.recv(98)
^^^^^^^^^^^^^^^^^^^^
ConnectionRefusedError: [Errno 111] Connection refused