ITHO Daalderop FAN RF remote with C1101 and ESP8266

Very usefull manual. Is it still up to date? I was looking for a manual like this. i want to order the hardware. is it also possible with the esp CH340 CH340G NodeMcu V3?

Hi Dennis, i’ve still running the setup as described in the manual. I cannot confirm if the hardware you mentioned will work but give it a try. It wouldn’t cost you a fortune :wink:

Instead of running ESP Easy you could try the ESP home with the config of ComPaTech.

The advantage of all fully integrated fan on Esphome is, that you don’t have to configure anything in homeassistant and that you wil have a plug and play experience.

Sure you have to poke arround the fan-component as long there is no fan-template component, but it should not be that complex. You only have to create a custom float output and use this output in the standard fan component. Within the fan component you can define the float value for low, medium and high. In the custom float output you then decode the values and call the corresponding speedsettings. When i have some time left i wil setup my testboard up again to play with it. My current setup is still running the old esp-easy setup that i didn’t touch now for almost 2 years and i am migrating slowly all my esp-devices to esphome.

see also example: https://gist.github.com/quazzie/09ee3ef2c419ecbcf979a7410062481b

@jodur have a look at https://github.com/CoMPaTech/esphome_c1101_alt

There should be something better than using the text-sensor, but the good news is it works (as in … I can control the unit from a functional perspective this way).

Something to improve is divergence between ‘High’ and ‘Full’ (but that goes for the original repo as well) and the difference between ‘off’ and ‘low’ - as my unit doesn’t have an ‘off’ (besides unplugging) :slight_smile:

Let me know if this is what your are looking for!

@Denman2103 @Arnout YMMV as usual, but it’s just another esp-board - be careful about ordering the top board though as I recall there are different versions (433 vs 868 Mhz) out there and depending on your unit you’ll need the other one.

I don’t really recall when they stopped using the 433, but my old ITHO had that and we could throw away all remotes. So just by assumption (and no guarantees on anything) the units over the last years should be 868’s … then again, like Arnout mentioned, it’s not the biggest fortune giveaway - it might be the waiting time :slight_smile:

@CoMPaTech, this is exaclty what i meant. I wil start playing arround with it as soon as i have my bread-bord with wemos and c1101 setup up again. Thnxs!

@jodur your welcome, but I recon it needs some fiddling (and beware of ‘full’ vs ‘high’ - not sure if all units talk the same language on that particular part)

Hi All,

I used the tutorial from this LINK

I have created my Wemos D1 + C1101 module. I can give the commands as follow to my ITHO Fan:

http://192.168.100.71/control?cmd=STATE,1 # low
http://192.168.100.71/control?cmd=STATE,2 # medium
http://192.168.100.71/control?cmd=STATE,3 # high
http://192.168.100.71/control?cmd=STATE,13 #high timer 10 min
http://192.168.100.71/control?cmd=STATE,23 #high timer 20 min
http://192.168.100.71/control?cmd=STATE,33 #high timer 30 min

Only what I not get work is the “ITHO Fan Status FAN Device”
I only see a switch to turn off the Fan. I cant select speed

Can someone help me with this?

ITHO Timer Sensor

- platform: mqtt
  name: "ITHO Timer"
  state_topic: "ITHO/Fan/Timer"
  value_template: "{{value}}"
  unit_of_measurement: 's'

ITHO Speed Sensor

- platform: mqtt
  name: "ITHO Speed"
  state_topic: "ITHO/Fan/State"
  value_template: >-
    {% if value|float == 0 %}
      Standby
    {% elif value|float  == 1 %}
      Laag
    {% elif value|float  == 2 %}
      Medium
    {% elif value|float  == 3 %}
      Hoog
    {% else %}
      Hoog(T)
    {% endif %}

ITHO Fan Status FAN Device

- platform: mqtt
  name: "ITHO Afzuig"
  state_topic: "ITHO/Fan/State"
  command_topic: "ITHO/Fan/cmd"
  speed_state_topic: "ITHO/Fan/State"
  speed_command_topic: "ITHO/Fan/cmd"
  qos: 0
  payload_on: "State 1"
  payload_off: "State 0"
  payload_low_speed: "State 1"
  payload_medium_speed: "State 2"
  payload_high_speed: "State 3"
  speeds:
    - low
    - medium
    - high
  state_value_template: >-
    {% if value|float == 0 %}
      State 0
    {% else %}
      State 1
    {% endif %}
  speed_value_template: >-
    {% if value|float == 0 %}
      State 0
    {% elif value|float == 1 %}
      State 1
    {% elif value|float == 2 %}
      State 2
    {% else %}
      State 3
    {% endif %}

For all those who have an older ITHO device like me (2007) I found the solution in this repo.

1 Like

@CoMPaTech,

I finally got my breadbord up again with an ESP and a C1101 and was able to fiddle arround with the code you provided, to make a ESPHOME version.

I slightly modified it, to add back the missing features it had against the original ESPEASY plugin.

Added:

  • Timer countdown, when a timerfunction is called
  • LastID, so you are able to see which control device issued the last command (Toilet, Kitchen, Bathroom etc… (max. 3 devices is implemented, but could easily be adjuster to more devices)

https://github.com/jodur/ESPHOME-ITHO

3 Likes

Nice! Good improvements!

@jodur Thx!
I tried to compile your version. But I get the following error when compiling.
Do you have a suggestion ?

Copy to clipboard

In file included from /data/fancontrol/.piolibdeps/fancontrol/ITHO-Lib/CC1101.h:9:0,
                 from /data/fancontrol/.piolibdeps/fancontrol/ITHO-Lib/IthoCC1101.h:9,
                 from src/itho.h:2,
                 from src/main.cpp:34:
/data/fancontrol/.piolibdeps/fancontrol/ITHO-Lib/CC1101Packet.h:10:21: fatal error: arduino.h: No such file or directory

I have the same problem, now i moved my configuration to the ESP plugin from home-assistant. I normally develop the esp-plugings on my laptop and not on the PI.

I will dive into this and report back when i have a solution.

@mories, i solved the compile error on ESP-Home hass-io plugin.

Apperently my windows-dev environment is not sensible for upper/lower case names in the include statement. Now with WSL2 available on windows it is much easier to develop on a real linux environment. :grinning:

Windows -> New virtual ESPHOME enviroment -> Compiles with no problems
WSL 2 Debain -> New virtual ESPHOME environment -> Same error as with ESPHOME addon on PI

The error in C1101Packet.h:

change::#include <arduino.h> to #include <Arduino.h> solves the compile issue.

I already made this change on the github libraries

@jodur thank you for your great work! I managed to “dirty-hack” together your code with the code from scriptman’s repo to get it working with an “old-style” ITHO. It does work (copied some files, compiled, flashed). But I guess that there is a way easier method to accomplish that. So, my kind question would be, what do I have to change where, to make your code, properly work with the old ITHO? I did figure out, that there are changes in the provided Libraries that both of you use.

I don’t mind to “hack” my way around and modify stuff myself? But it would be nice to get the names of the other remotes working. Right now, I have it working, but no text-sensor info shows up in the logging. (Hence my dirty hack, I suppose).

Any pointers would be greatly appreciated!

Thank you Jodur, Arnout, and others!

Considering my current skill level, I managed to get surprisingly far using the guide. However, I haven’t managed to operate my fan from Home Assistant yet. When I try to operate the fan from the frontend, nothing happens.

It seems like there is an issue with the connection between the entities (fan.afzuiging_badkamer, sensor.snelheid, sensor.tijd) and MQTT/ESP. I suspect I made a mistake with my MQTT setup (it’s my first time using it), but I’m in the dark on how to debug this. Since I haven’t been able to isolate the issue, I’ve listed a range of (possibly relevant) things below.

If anyone could point me in the right direction, I’d greatly appreciate it!

Progress thus far:

  • I can operate the Fan by sending commands to the ESP via URL;
  • I added the package code and I can see the entities (fan.afzuiging_badkamer, sensor.snelheid, sensor.tijd);
  • The entity sensor.snelheid shows “Standby”, seemingly regardless of what the Fan is doing. I can change the state of fan.afzuiging_badkamer, but it doesn’t lead to any changes in the Fan (and seemingly doesn’t get picked up by MQTT). The value of sensor.tijd is “unknown”;
  • MQTT does get an update every minute or so (e.g., “Bericht 48 ontvangen op /ITHO/Fan/LastIDindex om 12:26”);
  • I found the remote ID and the changes get picked up, but aren’t reflected in the entity states in Home Assistant;
  • I added an image of my poor soldering job below. Initially, I also misplaced the orange wire on D1, but moved it to GPIO10 after reading the comments here.

IMG_5002

2 Likes

I finally got it to work. thanks for the guides all :slight_smile:

The problem i had was also MQTT related. What i did was change the config of mosquito so it has a user. I filled the user in the ITHO and voila, it worked for me.
Maybe you have something now so u will be able to get it to work.
btw, i also changed from GPIO1 to 10. Cause the guide showed 1*. so i was confused a bit at first.

This is my mosquito config.

logins:
  - username: hassio
    password: myhassio
  - username: DVES_USER
    password: password
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

Dont need the DEV_USER. it is for ignoring issues with sonnoff

good luck!

It’s really funny to see how the work from years ago from “klusjesman” and myself has evolved.
After just using my own old libraries from https://github.com/supersjimmie/IthoEcoFanRFT, I decided to step over to Home Assistant and ESPEASY. Thanks to jodur, I managed to create my own espeasy with the itho included and my MH-Z19b CO2 sensor is also on the way from China to Holland.

Since I am pretty new to HA, I was wondering if anyone here has already created some basic automation to turn up the itho as soon as a higher CO2 value is detected?

So something like:
if mqtt topic ESPEASY/CO2/PPM >= 1500 then send ‘2’ to the itho.
(and more to go up and down)

For now I figured out some very basic automation:


   - alias: itho low
     trigger:
     - platform: mqtt
       topic: "ESPEASY/CO2/PPM"
     condition:
       condition: template
       value_template: "{{ trigger.payload|float < 1500 }}"
     action:
       service: fan.set_speed
       entity_id: fan.afzuiging
       data:
         speed: low
   - alias: itho medium
     trigger:
     - platform: mqtt
       topic: "ESPEASY/CO2/PPM"
     condition:
       condition: template
       value_template: "{{ 1499 < trigger.payload|float < 2500 }}"
     action:
       service: fan.set_speed
       entity_id: fan.afzuiging
       data:
         speed: medium
   - alias: itho high
     trigger:
     - platform: mqtt
       topic: "ESPEASY/CO2/PPM"
     condition:
       condition: template
       value_template: "{{ trigger.payload|float > 2499 }}"
     action:
       service: fan.set_speed
       entity_id: fan.afzuiging
       data:
         speed: high
3 Likes

Hi all,
I have build this project on a Wemos D1 mini, I’am able to see changes on the web pages when I toggle any button on the original switch. But unfortunately I don’t see the device-id.
Also I don’t see anything on Home Assistant like a switch or something like that.
I see mqtt changes in a mqtt explorer so I think the setup is good but I don’t know when to start looking for a answer and get this job done.

Maybe you can help me out… Thanks for the support.

Hi all,

thanks to @Arnout his manual and @jodur his ESPHome GitHub page i got both versions working (espeasy and esphome version) :smiley:.
still not decided if i am going to use esphome or espeasy version (prefer esphome).
The only thing i am struggling with is to see the state changes when i use my original remotes (536-0124 en 04-00046).
As @Arnout his document describes to check the log to get the unit ID, no matter what i do on my remotes i don’t see the unit ID passing my log file.
Do i need to keep my cc1101 near the original remote to get the unit ID as i have placed mine next the ITHO CVE itself?
i would be very happy if anybody is able to help me :pray:t5: