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
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.
@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.
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
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
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;)
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
@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.
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.
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.