-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add decoder conf for Hornbach MSRC-SAL Awning remote (#3009)
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
- Loading branch information
Showing
1 changed file
with
79 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# Decoder for Hornbach awning remotes. | ||
# | ||
# The remote is labeled MSRC-SAL and has article number 6196477 printed on the | ||
# label [0]. On the inside there's a chip with its markings removed, but it | ||
# looks like an off-the-shelf, generic remote. There are multiple LED positions, | ||
# where only one is soldered. There's unused keys, an unlabeled one on the | ||
# front, which does not even emit an RC signal, and one on the back, 'time', | ||
# without even a button behind it, nor was there a spot on the PCB for a key. | ||
# | ||
# There is also another sort of remote, which includes a wind-sensor [1]. | ||
# It is assumed that it functions just like a remote, taking light and wind | ||
# into account to send the close signal. | ||
# | ||
# It should probably be mentioned, that Hornbach itself is likely not the | ||
# manufacturer itself. | ||
# | ||
# The remote operates on a 433.92 MHz frequency. The PCB is labeled | ||
# 'DC104-HD V1.3' and seems to be produced in 2019-07-04. | ||
# | ||
# Hornbach awnings use OOK_PWM encoding. | ||
# - 0 is defined as a 372 µs pulse followed by a 744 µs gap. | ||
# - 1 is defined as a 744 µs pulse followed by a 372 µs gap. | ||
# - reset is defined as a 1116 gap followed by a 7812 µs gap. | ||
# - sync is defined as a 4836 µs pulse, followed by a 1488 µs gap. | ||
# | ||
# > __Note:__ It is unclear if the last space (gap) of a bit is always extended | ||
# to a certain length, or if this is an additional delimiter. One could argue | ||
# the reset/delimiter is a 8928 µs gap. | ||
# | ||
# Transmissions starts with a sync and gap pulse, followed by 40 bits, closed | ||
# off with a gap and reset pulse. | ||
# These seem to be repeated at least 4 times, depending on how long the button | ||
# is kept pressed. The exception is the light, which is never repeated more than | ||
# 4 times, which is also visible on the remotes activity LED. | ||
# | ||
# Possible packet layout: | ||
# It starts with 32 bits Remote ID, possibly a combination of vendor + function | ||
# as commonly seen in infra-red remote controls. These are likely remote-unique. | ||
# When programming the awning to match a new/different remote, one is expected | ||
# to press `P2` during power-on, which the awning will acknowledge with some | ||
# beeps. Since the code does not change when pushing `P2`, this is a fair | ||
# assumption, but an assumption still. | ||
# | ||
# Following the remote ID we have a single byte that indicates the button. | ||
# | ||
# | Button | Byte | Bits | Function | | ||
# |----------|------|------------------|-------------------------------------| | ||
# | P2 | 33 | 0 0 1 1 0 0 1 1 | Program/Learn remote | | ||
# | MODE | 3e | 0 0 1 1 1 1 1 0 | Unknown/Undocumented | | ||
# | STOP | aa | 1 0 1 0 1 0 1 0 | Stop awning at current position | | ||
# | DOWN rel | c3 | 1 1 0 0 0 0 1 1 | Release of button DOWN | | ||
# | DOWN | cc | 1 1 0 0 1 1 0 0 | Open awning (via internal endstop) | | ||
# | UP rel | e1 | 1 1 1 0 0 0 0 1 | Release of button UP | | ||
# | UP | ee | 1 1 1 0 1 1 1 0 | Close awning (via internal endstop) | | ||
# | LIGHT | f0 | 1 1 1 1 0 0 0 0 | Light high/low/off | | ||
# | ||
# The UP/DOWN buttons are the only buttons that sends a release event when the | ||
# key is released on the remote. If the button is kept pressed until the remote | ||
# stops the signal, the UP/DOWN (release) key is not sent. Interestingly the | ||
# release events is the inverse of the last nibble of the press event. They are | ||
# ignored by the awning, which makes sense, as it is already moving. | ||
|
||
frequency 433.92M | ||
|
||
decoder { | ||
name = MSRC-SAL, | ||
modulation = OOK_PWM, | ||
bits = 40, | ||
short = 372, | ||
long = 744, | ||
reset = 7812, | ||
sync = 4836, | ||
gap = 1488, | ||
get = RUID:@0:{32}:%x, | ||
get = button:@32:{8}:[0x33:P2 0x3E:MODE 0xAA:STOP 0xC3:DOWN_(release) 0xCC:DOWN 0xE1 UP_(release) 0xEE:UP 0xF0:LIGHT], | ||
} | ||
|
||
# [0]: https://www.hornbach.nl/p/reserveonderdeel-afstandsbediening-voor-zonnescherm-6145050-6145051-6145052-10178611-10178638-10178639-10178640-6823732-6823733-6823734-10461615-104961614-10328334-10328335-10468366-10468367-10468368-10468369-10468370/6196477/ | ||
# [1]: https://www.hornbach.de/p/windwaechter-fuer-motor-markisen-weiss-inkl-1-5-m-netzanschlussleitung/10178681/ |