ITHO / cc1101 and ESPHome 2025.9.x

Hi All,

My ITHO is running on ESPhome 2024.8.3 with a library:

This cannot be update to ESPHome 2025.9.x:


INFO ESPHome 2025.9.3
INFO Reading configuration /config/esphome/meek-itho.yaml...
Failed config

esphome: [source /config/esphome/meek-itho.yaml:13]
  name: meek-itho
  
  Please remove the `platform` key from the [esphome] block and use the correct platform component. This style of configuration has now been removed.
  platform: ESP8266
  board: nodemcuv2
  includes: 
    - lib/scriptman.h
  libraries: 
    - SPI
    - Ticker
    - https://github.com/Scriptman/ESPHome_ITHO_Eco_Fan_CC1101.git
  on_boot: 
    then: 
      - lambda: |-

Does someone have a different library or total different way how to solve this?

YAML CONFIG of ESPHome:


#########################################################
# Below all fixed settings for bathroom PCB
#########################################################
substitutions:
  devicename: meek-itho
  friendly: ITHO
  ip: 192.168.100.150

#########################################################
# Everything below can be copy/paste without problem
#########################################################
esphome:
  name: ${devicename}
  platform: ESP8266
  board: nodemcuv2
  includes: 
    - lib/scriptman.h
  libraries:
    - SPI
    - Ticker
    - https://github.com/Scriptman/ESPHome_ITHO_Eco_Fan_CC1101.git
    
  on_boot:
    then:
      - lambda: |-
          Idlist[0]={"65:99:96:55:96:a9:9a:56","Kitchen"};
          Idlist[1]={"6a:59:6a:55:96:a9:9a:56","Bathroom"};
          Idlist[2]={"ID3","ID3"};
          Mydeviceid="Home Assistant";
          id(swfan_low).turn_on(); //This ensures fan is at low-speed at boot

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  reboot_timeout: 0s
  fast_connect: true
  manual_ip:
    static_ip: ${ip}
    gateway: 192.168.100.1
    subnet: 255.255.255.0
    dns1: 192.168.100.1
  ap:
    ssid: ${devicename}
    password: !secret password
    channel: 4

api:
  encryption:
    key: !secret api_key
  reboot_timeout: 15min

time:
  - platform: homeassistant
    id: homeassistant_time

captive_portal:

web_server:
  port: 80
  
preferences:
  flash_write_interval: 1min
  
logger:
  level: INFO
  
ota:
  - platform: esphome
    password: !secret password

safe_mode:
  reboot_timeout: 0s

button:
  - platform: factory_reset
    name: "${friendly} - Reset"

binary_sensor:
  - platform: status
    name: "${friendly} - Connection status"

sensor:
  - platform: wifi_signal
    id: "wifi_db_signal"
    name: "${friendly} - Wifi Signal"
    update_interval: 5min

  - platform: uptime
    name: "${friendly} - Uptime"
    update_interval: 5min

  - platform: template
    name: "${friendly} WiFi Percentage"
    id: wifi_percentage
    entity_category: diagnostic
    state_class: measurement
    update_interval: 10s
    unit_of_measurement: "%"
    accuracy_decimals: 0
    icon: mdi:wifi
    lambda: >
      auto signal = id(wifi_db_signal).state;
      float perc = 0;
      if (signal < -92.0) 
        perc = 100.0; 
      else if (signal > -21.0) 
        perc = 1.0; 
      else 
        perc = round(( -0.0154 * signal * signal )-( 0.3794 * signal ) + 98.182 );

      if(perc <= 0)
        return 0.0;
      else if(perc >= 100)
        return 100.0;
      else
        return perc;

switch:
  - platform: custom
    lambda: |-
      auto fansendstandby = new FanSendStandby();
      App.register_component(fansendstandby);
      return {fansendstandby};
    switches:
      name: "Fan Standby"
      id: swfan_standby
      icon: mdi:fan
      
  - platform: custom
    lambda: |-
      auto fansendlow = new FanSendLow();
      App.register_component(fansendlow);
      return {fansendlow};
    switches:
      name: "Fan Low"
      id: swfan_low
      icon: mdi:fan

  - platform: custom
    lambda: |-
      auto fansendmedium = new FanSendMedium();
      App.register_component(fansendmedium);
      return {fansendmedium};
    switches:
      name: "Fan Medium"
      id: swfan_medium
      icon: mdi:fan

  - platform: custom
    lambda: |-
      auto fansendhigh = new FanSendHigh();
      App.register_component(fansendhigh);
      return {fansendhigh};
    switches:
      name: "Fan High"
      id: swfan_high
      icon: mdi:fan

  - platform: custom
    lambda: |-
      auto fansendt1 = new FanSendIthoTimer1();
      App.register_component(fansendt1);
      return {fansendt1};
    switches:
      name: "Fan Timer 10min"

  - platform: custom
    lambda: |-
      auto fansendt2 = new FanSendIthoTimer2();
      App.register_component(fansendt2);
      return {fansendt2};
    switches:
      name: "Fan Timer 20min"

  - platform: custom
    lambda: |-
      auto fansendt3 = new FanSendIthoTimer3();
      App.register_component(fansendt3);
      return {fansendt3};
    switches:
      name: "Fan Timer 30min"

  - platform: custom
    lambda: |-
      auto fansendjoin = new FanSendIthoJoin();
      App.register_component(fansendjoin);
      return {fansendjoin};
    switches:
      name: "Fan Pair"

  - platform: safe_mode
    name: "${friendly} - safe mode"
    id: "${friendly}_safe_mode"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "${friendly} - IP"
      icon: mdi:lan
    ssid:
      name: "${friendly} - SSID"
      icon: mdi:lan
    bssid:
      name: "${friendly} - BSSID"
      icon: mdi:lan
    mac_address:
      name: "${friendly} - MAC"
      icon: mdi:lan

  - platform: version
    name: "${friendly} - Version"
    hide_timestamp: true

  - platform: custom
    lambda: |-
      auto fanrecv = new FanRecv();
      App.register_component(fanrecv);
      return {fanrecv->fanspeed,fanrecv->fantimer,fanrecv->Lastid};
    text_sensors:
      - name: "Fan Speed"
        icon: "mdi:transfer"  
      - name: "Timer"
        icon: "mdi:timer"
      - name: "Fan Remote"
        icon: "mdi:id-card"

No clue about that library, but your error message pertains to the fact that

esphome:
[...]
  platform: ESP8266
  board: nodemcuv2

should be replaced by

esp8266:
  board: nodemcuv2

See, e.g.

The custom components part is removed. So the library has to be updated also… What you post i already tried… Its a part of the error solution

Hello poudenes,

  • Another good place to ask ESPHome questions is ESPHome
1 Like