ITHO Daalderop FAN RF remote with C1101 and ESP8266

Hello,

I want to share some experience and code that i used to control a ITHO Daalderop CVE ECO-Fan.
This fan uses a RF protocol that is reverse engineerd by some clever people.
For reference i point to a dutch topic about it: https://gathering.tweakers.net/forum/list_messages/1690945/0

I developed a plugin for ESPEASY based on the library from this above forum by supersjimmie.
Sourcecode Plugin and Binary with plugin available at: GITHUB

Config:

sensor:
  - platform: mqtt
    name: Tijd
    state_topic: "/ESP_Easy/Fan/Timer"
    value_template: "{{value}}"
    unit_of_measurement: 's'
  - platform: mqtt
    name : Snelheid
    state_topic: "/ESP_Easy/Fan/State"
    value_template: >
      {% if value|float==0 %}Standby{% endif %}
      {% if value|float==1 %}Laag{% endif %}
      {% if value|float==2 %}Medium{% endif %}
      {% if value|float==3 %}Hoog{% endif %}
      {% if value|float==4 %}Full{% endif %}
      {% if value|float>=11 %}Hoog(T){% endif %}
     
fan:
  - platform: mqtt
    command_topic: "/ESP_Easy/Fan/cmd"
    state_topic : "/ESP_Easy/Fan/State"
    speed_command_topic: "/ESP_Easy/Fan/cmd"
    speed_state_topic: "/ESP_Easy/Fan/State"
    state_value_template: "{% if value|float==0 %}State 0{% endif %}{% if value|float >0 %}State 1{% endif %}"
    speed_value_template: "{% if value|float==0 %}State 0{% endif %}{% if value|float >0 and value|float <=4 %}State {{value}}{% endif %}{% if value|float >=11 %}State 3{% endif %}"
    payload_on: "State 1"
    payload_off: "State 0"
    payload_low_speed: "State 1"
    payload_medium_speed: "State 2"
    payload_high_speed: "State 3"
    optimistic: "true"
    name: Afzuiging badkamer
    speeds:
      - low
      - medium
      - high    

group:
  Ventilator:
    entities:
      - fan.afzuiging_badkamer
      - sensor.Snelheid
      - sensor.Tijd

customize.yaml

   sensor.tijd:
      icon: mdi:timer
   sensor.snelheid:
      icon: mdi:transfer   

Have Fun!

2 Likes

I really want to make this but i’am missing a step by step guide and witch stuff i have te buy.

You should have a look at de Dutch forum i mentioned incl. link.
If you are not a native dutch speaker use google/microsoft translater

Al you need is a Wemos D1 mini or any other ESP8266 boards with sufficient pins and a CC1101 868 MHz transmitte/receiver.
They are widely available on ebay and aliexpress.

@jodur , i have made the hardware and software with your github and this post. It is working, but my state is always ‘unkown’ and also the Time is ‘unkown’. How can i solve this?
I have soldered PIN6 to D1 on the Wemos and in ESPEasy under I2C Interface i have set GPIO ⇿ SDA and
GPIO ⇾ SCL to NONE. But still no ID of the remote.

Even when you receive nothing the state should be “low” and the time should be zero. It looks like you subscribed to the wrong MQTT topic, Make sure you did set the time value different to zero. This ensure that even when nog signals changes the state,timer and lastid is published cyclic with the set time.

Jodur thanks for sharing this project. Based on that, I made a manual containing the hardware and software that I used to make it work at home in Home Assistant.
https://docs.google.com/document/d/e/2PACX-1vRoO1TfkUKkyQlgzsmm7XzI3xyUXMBMrqwF6NJXVwQmykP6gMtsJWp-x2vYiHDEwyScqhsPkJHGGYs-/pub

1 Like

Arnoud, looks nice, now every “noob” just have to follow the document you made.
I will post this info also on the original tweakers thread.
Thanx.

@Arnout thank you for the clear explanation, very helpfull! although I think there is a small mistake. following the layout the first GPIO should be D1 instead of D12.

D1 is mapped to GPIO 5 in my case and isn’t used. D12 is mapped to GPIO 10 (my orange cable) which is connected to GDO2, the output signal. In my case it works like a charm.

@Arnout,
saw you removed the “10 minutes at max speed” option, as it’s no longer supported.

However, that option is quite nice to have in my opinion.
Would it be possible to create this again?

I didn’t remove that option, it wasn’t there in jodurs config.
But you don’t need it when you use Homeassistant for automation. You can define your timer there :wink:

I did mess up my ESPEasy 8266 that was used for this since ages, but as I’m working on some ESPHome things for work thought it was a nice ‘if it’s broken, lets fix it’ moment. For those of you interested in test-driving and/or improving: https://github.com/CoMPaTech/esphome_c1101 and yes it is based of off @jodur’s library and approach! (Tnx for all the usefull clues in there!)

It’s definitely not final or complete but thought I’d share it here or those with courage :slight_smile:

I love esphome and I tried your work compatech. but the first time compiling worked, and after that I saw you fix in a issue and tried that. but after the first time I can’t compile without errors.

I hope you continue you work and let many people enjoy it;)

Hi Remco,

Spotted your issue @ github … if you’re still allowed to edit it use 3 code-quotes above and below what you pasted (you only used 1 and on the same line) - that way github formats it better

Let me have a look!

Looks like https://github.com/esphome/issues/issues/683#issuecomment-535222063 might be helpful (although fix should be in a beta of esphome since 4 days)

@CoMPaTech, nice to see that there is effort to put this functionality in ESP-Home.
Why not exposing the component as a Fan? Esphome seems to support this component.
You only have to link the actions to the corrsponding commands of the fan.

Now why didn’t that click earlier @jodur :slight_smile: Great thought :stuck_out_tongue:

I’ll dive into https://developers.home-assistant.io/docs/en/entity_fan.html and esphome fan example right away

Unfortunately fan (within esphome) doesn’t seem to be customizable like switches can. But we can ‘fix’ that using templates in HA

Have a look at https://github.com/CoMPaTech/esphome_c1101
(added configuration example, but also updated the itho.yaml to handle the timers)

1 Like

I know there is not a template fan as with covers and switches in Esphome, but by reading the topics below, you could use the standard Esphome fan component with custom float output to create this functionallity. In this way you don’t need any configuration in Homeassistant.

https://github.com/esphome/feature-requests/issues/285
https://github.com/esphome/feature-requests/issues/60

Unless I’m misreading you, the first example is sort of what I’ve just build. The second example takes a known approach using custom outputs. It’s a viable option but it still works around building a proper (custom) fan in esphome.

I’d understand that - like Daniel mentioned in issue #1 on Github that you’d rather not have the additional switches present, but at some point in building your HA-home you’ll be switching to customizing your lovelace frontend anyway, so redundant switches will no longer be visisble. Going with a non-additional switch route: we’ll have to work around a few things in ESPhome I guess, as those examples actually read a value from the GPIO pin, which is different to how the communication with the C1101 works if I remember correctly from last year.