zxdavb / ramses_protocol Goto Github PK
View Code? Open in Web Editor NEWRAMSES-II is a Honeywell RF protocol for HVAC and CH/DHW
License: MIT License
RAMSES-II is a Honeywell RF protocol for HVAC and CH/DHW
License: MIT License
Hi
Do you know what the _flags_n in the data field means. Seems to always have a value of FF which seems like it is likely to be an on off kind of thing, but I never see the 00 equivalent
Thanks
By coincidence I noticed my Itho Daalderop CVE RFT uses the RAMSES-II protocol for communication with the RF remotes.
The remote has 4 keys and the 4th key activates a timer. The timer depends on the number of key presses (1-3). When a button is pressed it broadcast a message 3 times.
For mode 1 (low) the following messages are send:
067 I 132 --:------ --:------ 63:163409 22F1 003 000204
63:163409 is the address of the remote, my other remote uses: 62:228945
For mode 2 (normal) the following message is send:
060 I 133 --:------ --:------ 63:163409 22F1 003 000304
For mode 3 (high) the following message is send:
065 I 134 --:------ --:------ 63:163409 22F1 003 000404
For mode 4 (timed high) the following messages are send for 1 key press (timer=10m):
067 I 135 --:------ --:------ 63:163409 22F1 003 000204
053 I 136 --:------ --:------ 63:163409 22F3 003 00000A
For mode 4 (timed high) the following messages are send for 2 key presses (timer=20m):
067 I 137 --:------ --:------ 63:163409 22F1 003 00000A
053 I 138 --:------ --:------ 63:163409 22F3 003 000014
For mode 4 (timed high) the following messages are send for 3 key presses (timer=30m):
067 I 137 --:------ --:------ 63:163409 22F1 003 000014
053 I 138 --:------ --:------ 63:163409 22F3 003 00001E
Controlling also works by sending the following for instance:
I --- 18:000730 --:------ 63:163409 22F1 003 000404
First of all complements for your accomplishments so far.
Based on this documentation I am creating a Nodejs module implementing the protocol. Along the way I found some errors and missing parts in the wiki documentation . I cloned the wiki and am making updates to the documentation. While github does not allow pull requests on the wiki repository it would be nice if you can make the wiki available as a folder in your main repository so updates can be easily submitted as pull requests.
I can run:
pi@raspberrypi:~/ramses_rf $ python client.py listen /dev/ttyUSB0 -o packet.log
but if i run:
pi@raspberrypi:~/ramses_rf $ python client.py monitor /dev/ttyUSB0 -o packet.log
it fails,
pi@raspberrypi:~/ramses_rf $ python -V
Python 3.9.2
on Raspbian GNU/Linux 11 (bullseye)
Traceback (most recent call last):
File "/home/pi/ramses_rf/client.py", line 473, in
cli()
File "/usr/lib/python3/dist-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/usr/lib/python3/dist-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 1257, in invoke
sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 700, in make_context
self.parse_args(ctx, args)
File "/usr/lib/python3/dist-packages/click/core.py", line 1048, in parse_args
value, args = param.handle_parse_result(ctx, opts, args)
File "/usr/lib/python3/dist-packages/click/core.py", line 1623, in handle_parse_result
value = self.full_process_value(ctx, value)
File "/usr/lib/python3/dist-packages/click/core.py", line 1965, in full_process_value
return Parameter.full_process_value(self, ctx, value)
File "/usr/lib/python3/dist-packages/click/core.py", line 1592, in full_process_value
value = self.get_default(ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 1917, in get_default
return Parameter.get_default(self, ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 1534, in get_default
return self.type_cast_value(ctx, rv)
File "/usr/lib/python3/dist-packages/click/core.py", line 1561, in type_cast_value
return self.type(value or (), self, ctx)
File "/usr/lib/python3/dist-packages/click/types.py", line 46, in call
return self.convert(value, param, ctx)
File "/usr/lib/python3/dist-packages/click/types.py", line 681, in convert
raise TypeError(
TypeError: It would appear that nargs is set to conflict with the composite type arity.
Thanks for looking into this!
Marnix
After reading the Wiki-page on command 1F09: System Synchronization, I would like to add the following:
The WRITE messages are send by the controller after binding a new device, always following command 0004 and followed by command 2309. I suppose the new device will not sleep until the first sync message is received.
The domain_id seems to be always FF for regular sync messages, always 00 when responding to a request and always F8 after binding a device.
In my installation the regular cycle time is 06E0 (176 seconds or 2m56s). I don't really understand (yet) what is meant by the cycle time being 'a multiple of two prime numbers', but does this value fit with this assumption?
I wonder if this is the right way to relay feedback on or additions to the Wiki. Please let me know if another channel is more appropriate.
Recently I started receiving messages from an unknown device, probably from a neighbor. It sends commands 31D9 and 31DA which are listed as unknown in the wiki. Exactly the same messages are received quite frequently. Sharing these messages may help finding out more about them.
--- I --- 20:001414 --:------ 20:001414 31DA 029 00EF007FFFEFEF7FFF7FFF7FFF7FFFF000EF0251000000EFEF7FFF7FFF
--- I --- 20:001414 --:------ 20:001414 31D9 017 0006510020202020202020202020202000
I also received a message with command 10E0 (device info) from the same device, which reveals the device description CVE-RF. It seems to be a mechanical ventilation system.
--- I --- 20:001414 --:------ 20:001414 10E0 038 000001001B221201FEFFFFFFFFFF0C0507DF4356452D52460000000000000000000000000000
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.