I don’t know if it is needed or not, but I do specify baud rate:
ramses_cc:
advanced_features:
send_packet: true
message_events: None
serial_port:
port_name: /dev/serial/by-id/usb-SparkFun_evofw3_atmega32u4-if00
baudrate: 115200
I don’t know if it is needed or not, but I do specify baud rate:
ramses_cc:
advanced_features:
send_packet: true
message_events: None
serial_port:
port_name: /dev/serial/by-id/usb-SparkFun_evofw3_atmega32u4-if00
baudrate: 115200
Oh I didn’t know that serial_port had port_name: and baudrate: parameters. You don’t need to specify it for the HGI80 or the 32u4 hardware but when you use the NanoCUL with the 328p MCU you often have to use a lower baud rate of 57600 to help the SW UART keep up. But I didn’t know if ramses_cc had been changed to allow variable baud rates.
OK. Have been experimenting with the NanoCUL with the Orcon fan and CO2 remote for a few days…
Two things I have for my wishlist now…
The first one:
I have faked the CO2 remote to be able to send commands, but I am not able to receive the CO2 values. Is it possible to pickup those reports like :
I — 32:102225 --:------ 32:102225 1298 003 000268
Or from the Fan:
I — 29:207706 --:------ 29:207706 31D9 003 000003
And then create a sensor so I also could have some status info.
I have no idea how to implement thing like this. SO any help would be great!
2nd one:
Also I am not able to set my away mode somehow. I copied this line from the packetlog
I — 32:102225 29:207706 --:------ 22F3 007 00520C00040404
But when I try to send the command with HA. I get an error:
A code like this will roll out:
I — 18:075527 63:262142 --:------ 7FFF 023 00110185E8E9ED7532324631204933323A313032323235
Homeassistantlog:
2023-01-25 13:31:38.063 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281472173572304] Corrupt packet: Bad frame: invalid structure
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 473, in _service_handler
await self.async_turn_on(variables=service.data, context=service.context)
File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 432, in async_turn_on
await coro
File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 462, in _async_run
return await self.script.async_run(script_vars, context)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
await result
File "/config/custom_components/ramses_cc/remote.py", line 189, in async_send_command
cmd = Command(
File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/command.py", line 295, in __init__
super().__init__(frame) # may raise InvalidPacketError if it is invalid
File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/frame.py", line 86, in __init__
raise InvalidPacketError("Bad frame: invalid structure")
ramses_rf.protocol.exceptions.InvalidPacketError: Corrupt packet: Bad frame: invalid structure
Thanks for the help!
I think you’re missing a leading space before the I
in your command string. Try this one:
away: " I --- 32:102225 29:207706 --:------ 22F3 007 00520C00040404"
This is a timed mode? My 15RF sends this for away (not timed, so it stays in this mode until told otherwise):
away: " I --- 32:102225 29:207706 --:------ 22F1 003 000004"
Spot on! You were right about the leading space!
Yeah it seems to be a timed mode code. Maybe because I have the CO2 remote? I guess it might be different with the 6 button remote?
Hey there! found out another problem with the NanoCUL.
It seems randomly being not available. When trying to send a command this morning. It failed. So checking out the binary_sensor.18_075527_status
. I see the next thing.
Maybe a setting could be the case as well?
I have my settings like this right now:
ramses_cc:
serial_port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0
scan_interval: 30
packet_log:
file_name: packet.log
rotate_backups: 28
known_list:
18:075527: # nanoCul 868 Mhz dongle?
class: HGI
_note: nanoCul 868 Mhz
32:102225: # Orcon CO2 15RF remote 32:102225
class: REM
faked: true
_note: Orcon 15RF
commands:
away: " I --- 32:102225 29:207706 --:------ 22F3 007 00520C00040404"
auto: " I --- 32:102225 29:207706 --:------ 22F1 003 000404"
timer1_60mins_low: " I --- 32:102225 29:207706 --:------ 22F3 007 00123C01040404"
timer2_13hours_medium: " I --- 32:102225 29:207706 --:------ 22F3 007 00123C02040404"
timer3_60mins_high: " I --- 32:102225 29:207706 --:------ 22F3 007 00123C03040404"
29:207706: # Orcon MVS-15 fan
class: FAN
_note: Orcon MVS-15
# 32:102225: {class: CO2}
32:102841: {class: CO2} #buren?
# 32:236773: # Orcon MVS-15 humidity sensor?
# class: HUM
# 32:104339?
# 32:102836?
ramses_rf:
enforce_known_list: true # if not true, still enforces the block_list
# disable_discovery: false
# disable_sending: false # do not transmit any packets, ever
enable_eavesdrop: false # can be used to create an initial system schema
This is likely an insufficiency in the code, which I can address.
If you wish, send (or PM) me a 24h packet log, along with the make/model of the 32:236773
device. Does it have a movement sensor / presence detector?
I think I know what this is…
Please PM me a packet log, and I’ll let you know
I just send you a part of the log. It seems I am not able to send a full 24hr log. but anyways…
I noticed another FTDI USB was also interfered around the same time which never had problems before… It is used for monitoring the Utility meter with P1 connection.
as for today it seemed to be not having big issues…
But I guess the line should be full grey…
David,
I’d appreciate a confirmation on this before precious spending money …
Thankssss
Hi, I’ve been struggling to get all this working for the first time and I’ve got this error too with TEMP_CELIUS etc. I’m on the latest versions 2023.1.7 and 0.21.40 (although it also says 0.22.3). I suspect there’s something quite simple that I’ve not done. All help gratefully received. thx
Do not buy either a HGI80 (from Honeywell) or an evofw3-compatible (same thing, but from community) device - the support for such with a CM927 (or similar) is very basic.
Instead, replace your CM927 with something that can connect to the Internet (via Honeywell/Resideo’s TCC website):
The Round Thermostat / Evohome controller will bind to the BDR91 instead of the CM927.
Then, use HA’s official evohome integration - you can later add a HGI80/evofw3 if you like, and use the ramses integration too (it is not worth doing so with a CM927)
The RFG100 is an RF-to-TCC (i.e. Internet) gateway. The HGI80 - is the same as an evofw3 dongle and - is an RF to HA (i.e. USB) gateway. Neither (normally) bind to your BDR91.
Maybe a bit offtopic, but I would like to calculate the consumption of each zone for a certain period by using the amount of time or percentage a TRV is on.
Does anybody already tried this or has a blueprint to start with?
Ok, thanks for this clear guideline.
I am getting a lot of PMs, etc. - some at my request…
I have a significantly reduced capacity for this project at the moment, so please bear with me.
It sounds like you have a corrupted install… remove and re-install ramses_cc via HACS.
You may even to do a pip uninstall ramses_rf
via the CLI.
Hey everyone, I am looking to control a bunch of HR92 TRVs using the SSM-D2 plugged into a Raspberry Pi running Home Assistant. I don’t have any experience with either Home Assistant nor controlling RF devices. Can anyone confirm if my proposed setup will be able to interface with the HR92 devices?
If I understand you right:
Answer: You could, but the effort involved would be horrendous. I would suggest it would be beyond almost all people (it might take me a year to implement this in python working P/T), and I would strongly recommend against wasting your time by trying.
Ah, good to know. I live in an appartment building with a shared heat source (which I don’t have any control over), so the only thing I would like to control is the individual TRV temperature targets (for some reason with no controller connected they revert to 20C after a while, otherwise I could simply use the manual adjustment knobs on the TVRs), I don’t know if that changes the situation but I guess i’ll have to find another way…
You can use an evohome controller for that. You simply skip the boiler control setup.