Honeywell CH/DHW via RF - evohome, sundial, hometronics, chronotherm

I have the next “error” in my HA log:

Source: /usr/local/lib/python3.8/site-packages/evohome_rf/transport.py:678
First occurred: 10:13:01 (41 occurrences)
Last logged: 10:14:28

PktProtocolQos.send_data(RQ|10:078099|3220|00): boff=0, want=RP|10:078099|3220|00, tout=2021-03-19 10:14:25.861453: EXPIRED
PktProtocolQos.send_data(RQ|10:078099|3220|00): boff=0, want=RP|10:078099|3220|00, tout=2021-03-19 10:14:26.772091: EXPIRED
PktProtocolQos.send_data(RQ|10:078099|3220|00): boff=0, want=RP|10:078099|3220|00, tout=2021-03-19 10:14:27.311323: EXPIRED
PktProtocolQos.send_data(RQ|10:078099|3220|00): boff=0, want=RP|10:078099|3220|00, tout=2021-03-19 10:14:27.853957: EXPIRED
PktProtocolQos.send_data(RQ|10:078099|3220|00): boff=0, want=RP|10:078099|3220|00, tout=2021-03-19 10:14:28.406359: EXPIRED

I have just removed these warnings - but looking at this, I should maybe put them back - you can ignore them, but ideally, they shouldn’t be happening - can you send me a packet log?

v0.7.0 has just been pushed - you’re welcome to test - the HA modes will be buggy, sorry.

We’ll get the above sorted & I’ll start adding save/restore state - so state survives restarting HA

could it be my fan that also works at the same mhz?

Update: I have updated it to the latest version but i have still the same errors in my HA log.
packet log: https://pastebin.com/suGeuYr7

also get the error: An empty allowlist was configured, so will be ignored
in my config i have tested with allow_list and allowlist and with both options i get this error.

evohome_cc:
  serial_port: /dev/ttyUSB0
  scan_interval: 60
  config:
    packet_log: /config/packets.log
    enforce_allowlist: True
    max_zones: 8
  schema:
    controller: 01:087939
  allow_list:
    - 01:087939
    - 04:225661
    - 04:225663
    - 04:225659
    - 04:225657
    - 04:023992
    - 04:059569
    - 04:024018
    - 04:024016

Interesting one here. My ‘13th’ zone RFG100 communicating a permanent override to its round thermostart, doesn’t add a timestamp to the 2349 message. I suppose it doesn’t matter if the override is permanent anyway…

13:22:56.029 || STA:046925 | GWY:173916 | RQ | zone_mode        | 00       || {}
2021-03-19T13:22:56.138953 036 RP --- 30:173916 34:046925 --:------ 2349 013 00051402FFFFFFFFFFFFFFFFFF < Validation error 
Traceback (most recent call last):
  File "/home/homeassistant/.local/lib/python3.8/site-packages/evohome_rf/message.py", line 324, in is_valid
    self._payload = payload_parser(self.raw_payload, self)
  File "/home/homeassistant/.local/lib/python3.8/site-packages/evohome_rf/parsers.py", line 292, in wrapper
    result = func(*args, **kwargs)
  File "/home/homeassistant/.local/lib/python3.8/site-packages/evohome_rf/parsers.py", line 1389, in parser_2349
    assert payload[6:8] in ("00", "04"), payload[6:8]
AssertionError: 02

This is interesting. Can you explain it to me - this is separate from evohome?

Could you send me a packet log please.

FYI: I have fixed the code that has mis-identified this packet as invalid. -Thanks

(it’s been a long time since I’ve seen a parser error)

Yes, its separate - its a ‘round connected’ Y87 thermostat paired with a BDR91 and an RFG100 gateway. Within the TCC app its set up as a 2nd location. I use it manage heat in an outhouse, as its on a separate heating circuit with its own pump. The BDR91 then activates both the pump and heat demand to the burner through relays. This avoids activating the outhouse pump whenever the main evohome system calls for heat.

Here is the request/response packet log

2021-03-19T14:18:08.977670 082 RQ --- 34:046925 30:173916 --:------ 2349 001 00 
2021-03-19T14:18:09.098681 035 RP --- 30:173916 34:046925 --:------ 2349 013 00051402FFFFFFFFFFFFFFFFFF 
2021-03-19T14:18:09.160485 083 RQ --- 34:046925 30:173916 --:------ 2349 001 00 
2021-03-19T14:18:09.274506 035 RP --- 30:173916 34:046925 --:------ 2349 013 00051402FFFFFFFFFFFFFFFFFF 
2021-03-19T14:18:09.336482 086 RQ --- 34:046925 30:173916 --:------ 2349 001 00 

Heres the schema. Ignore the orphan TRV’s and null statuses - I don’t think I ran evohome_rf long enough for everything to be broadcast. The interesting thing is the last orphan block - it reflects the standalone BDR91, Y87 and RFG100.

Schema[01:201047 (evohome)] = {
    "controller": "01:201047",
    "system": {
        "heating_relay": "13:259021"
    },
    "orphans": [
        "04:173125",
        "04:173127",
        "04:173131",
        "04:173146",
        "04:176841",
        "04:177708",
        "04:177711",
        "04:177712",
        "04:177713",
        "04:179866",
        "04:179981",
        "04:179995"
    ],
    "stored_hotwater": {},
    "underfloor_heating": {},
    "zones": {
        "00": {
            "heating_type": "radiator_valve",
            "sensor": null,
            "devices": [
                "04:039325",
                "04:039321",
                "04:039319",
                "04:039323",
                "04:053851",
                "04:053859"
            ]
        },
        "01": {
            "heating_type": "radiator_valve",
            "sensor": "22:090227",
            "devices": [
                "22:090227"
            ]
        },
        "02": {
            "heating_type": "radiator_valve",
            "sensor": "22:090231",
            "devices": [
                "22:090231"
            ]
        },
        "03": {
            "heating_type": "radiator_valve",
            "sensor": "22:028749",
            "devices": [
                "22:028749"
            ]
        },
        "04": {
            "heating_type": "radiator_valve",
            "sensor": "22:028665",
            "devices": [
                "04:001484",
                "04:001454",
                "22:028665"
            ]
        },
        "05": {
            "heating_type": "radiator_valve",
            "sensor": "22:027984",
            "devices": [
                "04:000948",
                "22:027984"
            ]
        },
        "06": {
            "heating_type": "radiator_valve",
            "sensor": "22:028744",
            "devices": [
                "22:028744",
                "04:053861",
                "04:053853"
            ]
        },
        "07": {
            "heating_type": "radiator_valve",
            "sensor": "22:028675",
            "devices": [
                "04:039363",
                "04:039365",
                "04:039359",
                "22:028675"
            ]
        },
        "08": {
            "heating_type": "radiator_valve",
            "sensor": "22:219003",
            "devices": [
                "04:000950",
                "22:219003"
            ]
        },
        "09": {
            "heating_type": "radiator_valve",
            "sensor": "22:028759",
            "devices": [
                "04:000944",
                "22:028759"
            ]
        },
        "0A": {
            "heating_type": "radiator_valve",
            "sensor": "22:090207",
            "devices": [
                "04:000946",
                "22:090207"
            ]
        },
        "0B": {
            "heating_type": "radiator_valve",
            "sensor": "22:027973",
            "devices": [
                "04:039361",
                "22:027973"
            ]
        }
    }
}

Params[01:201047 (evohome)] = {
    "system": {
        "tpi_params": null,
        "system_mode": {
            "system_mode": "auto",
            "until": null
        },
        "language": "en"
    },
    "stored_hotwater": {},
    "underfloor_heating": {},
    "zones": {
        "00": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": false,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 21.0
            },
            "name": "Living"
        },
        "01": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": false,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 21.0
            },
            "name": "Master Bed"
        },
        "02": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 21.0
            },
            "name": "Master Bath"
        },
        "03": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": false,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 21.0
            },
            "name": "Offices"
        },
        "04": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 19.0
            },
            "name": "Guest Bed"
        },
        "05": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": false,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 19.0
            },
            "name": "Guest Bath"
        },
        "06": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": false,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 17.0
            },
            "name": "Kid 1"
        },
        "07": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 17.0
            },
            "name": "Kid 2"
        },
        "08": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": false,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 17.0
            },
            "name": "Kid 3"
        },
        "09": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "temporary_override",
                "setpoint": 10.0,
                "until": "2021-03-19 18:00:00"
            },
            "name": "Girls Bath"
        },
        "0A": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": true,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 17.0
            },
            "name": "Boys Bath"
        },
        "0B": {
            "config": {
                "min_temp": 10.0,
                "max_temp": 24.0,
                "local_override": false,
                "openwindow_function": true,
                "multiroom_mode": false
            },
            "mode": {
                "mode": "follow_schedule",
                "setpoint": 17.0
            },
            "name": "Playroom"
        }
    }
}

Status[01:201047 (evohome)] = {
    "system": {
        "heat_demand": 0.81,
        "datetime": "2021-03-19 13:18:35",
        "heat_demands": {
            "FC": 0.81
        },
        "relay_demands": {
            "FC": 0.81
        },
        "relay_failsafes": null
    },
    "devices": {
        "04:000944": {
            "temperature": 16.08,
            "setpoint": 10.0,
            "battery_state": null,
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:000946": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": 0.0,
            "window_open": false
        },
        "04:000948": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": false
        },
        "04:000950": {
            "temperature": 19.06,
            "setpoint": null,
            "battery_state": {
                "battery_low": false,
                "battery_level": 0.5
            },
            "heat_demand": null,
            "window_open": false
        },
        "04:001454": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": false
        },
        "04:001484": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:039319": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:039321": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:039323": {
            "temperature": 17.91,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": 0.1,
            "window_open": false
        },
        "04:039325": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": 0.92,
            "window_open": null
        },
        "04:039359": {
            "temperature": 15.03,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:039361": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": 0.31,
            "window_open": null
        },
        "04:039363": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:039365": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:053851": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:053853": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:053859": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:053861": {
            "temperature": 20.43,
            "setpoint": null,
            "battery_state": null,
            "heat_demand": null,
            "window_open": null
        },
        "04:173125": {
            "temperature": 19.35,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.15,
            "window_open": null
        },
        "04:173127": {
            "temperature": 18.67,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:173131": {
            "temperature": 21.08,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.16,
            "window_open": null
        },
        "04:173146": {
            "temperature": 15.59,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:176841": {
            "temperature": 20.18,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": null,
            "window_open": null
        },
        "04:177708": {
            "temperature": 26.54,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.95,
            "window_open": null
        },
        "04:177711": {
            "temperature": 17.92,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:177712": {
            "temperature": 21.73,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.79,
            "window_open": null
        },
        "04:177713": {
            "temperature": 20.69,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:179866": {
            "temperature": 15.22,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.0,
            "window_open": null
        },
        "04:179981": {
            "temperature": 20.82,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.16,
            "window_open": null
        },
        "04:179995": {
            "temperature": 19.47,
            "setpoint": 21.0,
            "battery_state": {
                "battery_low": false,
                "battery_level": null
            },
            "heat_demand": 0.49,
            "window_open": null
        },
        "13:259021": {
            "actuator_cycle": null,
            "actuator_state": null,
            "relay_demand": null
        },
        "22:027973": {
            "temperature": 17.05,
            "setpoint": null,
            "battery_state": null
        },
        "22:027984": {
            "temperature": 20.69,
            "setpoint": null,
            "battery_state": null
        },
        "22:028665": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null
        },
        "22:028675": {
            "temperature": null,
            "setpoint": 17.0,
            "battery_state": null
        },
        "22:028744": {
            "temperature": 18.63,
            "setpoint": null,
            "battery_state": null
        },
        "22:028749": {
            "temperature": null,
            "setpoint": 21.0,
            "battery_state": null
        },
        "22:028759": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null
        },
        "22:090207": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null
        },
        "22:090227": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null
        },
        "22:090231": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null
        },
        "22:219003": {
            "temperature": null,
            "setpoint": null,
            "battery_state": null
        }
    },
    "stored_hotwater": {},
    "underfloor_heating": {},
    "zones": {
        "00": {
            "setpoint": 21.0,
            "temperature": 21.17,
            "heat_demand": 0.92
        },
        "01": {
            "setpoint": 21.0,
            "temperature": 21.95,
            "heat_demand": null
        },
        "02": {
            "setpoint": 21.0,
            "temperature": 22.88,
            "heat_demand": null
        },
        "03": {
            "setpoint": 21.0,
            "temperature": 22.73,
            "heat_demand": null
        },
        "04": {
            "setpoint": 19.0,
            "temperature": 20.12,
            "heat_demand": null
        },
        "05": {
            "setpoint": 19.0,
            "temperature": 20.69,
            "heat_demand": null
        },
        "06": {
            "setpoint": 17.0,
            "temperature": 18.63,
            "heat_demand": null
        },
        "07": {
            "setpoint": 17.0,
            "temperature": 16.99,
            "heat_demand": null
        },
        "08": {
            "setpoint": 17.0,
            "temperature": 17.12,
            "heat_demand": null
        },
        "09": {
            "setpoint": 10.0,
            "temperature": 15.85,
            "heat_demand": 0.0
        },
        "0A": {
            "setpoint": 17.0,
            "temperature": 18.8,
            "heat_demand": 0.0
        },
        "0B": {
            "setpoint": 17.0,
            "temperature": 17.05,
            "heat_demand": 0.31
        }
    }
}

Status[gateway] = {
    "orphans": {
        "13:032522": {
            "actuator_cycle": {
                "actuator_enabled": false,
                "modulation_level": 0.0,
                "actuator_countdown": 600,
                "cycle_countdown": 600
            },
            "actuator_state": {
                "actuator_enabled": false,
                "modulation_level": 0.0
            },
            "relay_demand": 0.0
        },
        "30:173916": {},
        "34:046925": {
            "temperature": 13.99,
            "setpoint": 13.0,
            "battery_state": null
        }
    }
}

client.py: Finished evohome_rf.

Just received my nanocul, programmed it en added evohome cc to hacs and installed it.
i see now 39 entries:
i have 9 HR92 (37 entries from this)
1 controller entrie
2 relay entries

my system has 6 zones
1 zone with the evohome touch + 4 HR92s
the other 5 zones have all 1 HR92

should the evohome touch not be in the entries list, because this is the unit for temperature in this zone.

is it right that domain id 00 is zone 1, 01 zone 2 …ect

system is now up for 30 mins but half of the entries have an explamation point not available, how long does this need? i thought i read a few mins.

edit:
i did not flash the nanocul with Bootloader: “OldBootloader”’ can this be the problem that it is slow?

There is not way to determine the sensor for a zone, when it is the controller, other than by exclusion. I have the code for this - it is currently disabled, as it is a little unsatisfactory…

Yes. This is a real problem, because it is sometimes difficult for evohome_rf to tell the difference between NO zone (00) and the FIRST zone (00).

Discovery (i.e. the controller, DHW & the zones) takes <2 minutes, the rest (i.e. the sensors) can take hours.

From evohome_rf 's point of view, either the nanoCUL works, or it does not - after that, it’s just a matter of how many packets get dropped.

Future versions of this code will see that there are two systems: the evohome system, and the round thermostat.

oke thanks, i did try the oldbootloader with flashing but that was not working so normal bootloader should be good then.

Where can i find the zones i don’t see them?
i have 9 hr92 and i see 9 entities for temperature, but then i still miss the controller temperature as an entitie.
But i will wait a few hours, so that the exclamationppoints are hopefully away.

There are some fans (e.g. Itho) that use the same frequency and (more relevant) the same protocol. evohome_rf can decode most of these packets.

Yours happen to track humidity as well:

15:40:05.039 ||  37:141993 |            |  I | device_info      | 00000... || {'description': 'CVE-RF', 'date_1': '2018-05-14', 'date_2': '0000-00-00', '_unknown': '000001001B311901FEFF'}
15:41:21.961 ||  37:141993 |            |  I | message_31d9     | 00060... || {'fan_rate': 0.005, 'unknown_0': '06', 'unknown_2': '00', 'unknown_3': '202020202020202020202020', 'unknown_4': '00'}
15:49:26.951 ||  37:141993 |            |  I | message_31da     | 00EF0... || {'fan_rate': 0.005, 'relative_humidity': 0.35, 'boost_timer': 0, 'unknown_3': '01', 'unknown_1': 'F8', 'unknown_2': '00'}

I will be adding these as HA sensors soon - but they will need to be in your allow list.

The allow list I will check & get back to you - I probably introduced a bug when I re-wrote some stuf for the restore state feature.

I am watching the live logging of home assistant and i see other device on the same frequency:

Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.493198 1-0:99.97.0(6)(0-0:96.7.19)(200907092148S)(0000001395 < Bad packet: * s)(200617123434S)(0000001843*s)(200124083835W)(0000004966*s)(180806041926S)(0000006251*s)(180611141516S)(0000002473*s)(180121140819W)(0000000476*s)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.509328 1-0:32.32.0(00000) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.510328 1-0:52.32.0(00001) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.525359 1-0:72.32.0(00001) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.541323 1-0:32.36.0(00000) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.542290 1-0:52.36.0(00000) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.557295 1-0:72.36.0(00000) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.573268 0-0:96.13.1() < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.589297 0-0:96.13.0() < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.605296 1-0:31.7.0(001 < Bad packet: * A)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.621300 1-0:51.7.0(002 < Bad packet: * A)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.622269 1-0:71.7.0(002 < Bad packet: * A)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.637319 1-0:21.7.0(00.000 < Bad packet: * kW)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.653332 1-0:41.7.0(00.000 < Bad packet: * kW)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.654304 1-0:61.7.0(00.000 < Bad packet: * kW)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.669319 1-0:22.7.0(00.318 < Bad packet: * kW)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.670311 1-0:42.7.0(00.128 < Bad packet: * kW)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.685341 1-0:62.7.0(00.281 < Bad packet: * kW)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.701307 0-1:24.1.0(003) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.717378 0-1:96.1.0(4730303331303033343230373031373136) < Bad packet: invalid packet structure
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.733341 0-1:24.2.1(210319160000W)(05727.735 < Bad packet: * m3)
Mar 19 16:47:03 hassbian hass[596]: 2021-03-19T16:47:03.877338 !3CDE < Bad packet: invalid packet structure

i have set an allow list of my 10 devices, so i think this can’t be ignored?

I have never seen this before - the corrupt packets are too consistent. I can see A (amps?) kW (kilowatts?), s (seconds?) and m3 (cubic metres) - looks like a smart electricity / gas meter.

In any case, they can’t be ignored, because they don’t get that far anyway (they are never the opposite of ignored, whatever that is) - the solution is to turn off the logging…

The answer to you next question is: Exactly!

You are welcome to PM me a packet log.

This is coming:

{
    "devices": {
        "20:007902": {"boost_timer": 0, "fan_rate": 0.405, "relative_humidity": null}, 
        "20:018860": {"boost_timer": null, "fan_rate": 0.005, "relative_humidity": null}, 
        "20:026866": {"boost_timer": null, "fan_rate": 0.01, "relative_humidity": null}, 
        "20:032436": {"boost_timer": null, "fan_rate": 0.405, "relative_humidity": null}, 
        "37:141993": {"boost_timer": 0, "fan_rate": 0.005, "relative_humidity": 0.38}, 
        "37:151780": {"boost_timer": 0, "fan_rate": 0.205, "relative_humidity": 0.46}, 
        "37:228323": {"boost_timer": null, "fan_rate": 0.2, "relative_humidity": null}
    }
}

It’s interesting. I have at the moment an esp8266 with esphome with a cc1101 to control my itho.
It would be perfect when i can control it with your project!

I have pushed 0.7.1 of evohome_cc and evohome_rf - various fixes at added humidity/fan_rate sensors for Itho ventilation units (sorry - I cannot test this code, as I haven’t these units).

I am gonna test it. Does it create the fan rate sensors automaticly?

Should do - as long as the device isn’t filtered out with a block/allow list