rf-protocols 3.2.0__tar.gz → 4.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/PKG-INFO +1 -1
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/pyproject.toml +1 -1
- rf_protocols-4.0.0/rf_protocols/codes/novy/cooker_hood/__init__.py +47 -0
- rf_protocols-4.0.0/rf_protocols/commands/novy.py +94 -0
- rf_protocols-4.0.0/rf_protocols/commands/pilota_casa.py +154 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols.egg-info/PKG-INFO +1 -1
- rf_protocols-4.0.0/rf_protocols.egg-info/SOURCES.txt +26 -0
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/__init__.py +0 -8
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_1/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_1/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_1/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_1/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_1/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_10/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_10/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_10/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_10/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_10/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_2/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_2/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_2/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_2/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_2/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_3/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_3/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_3/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_3/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_3/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_4/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_4/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_4/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_4/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_4/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_5/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_5/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_5/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_5/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_5/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_6/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_6/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_6/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_6/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_6/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_7/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_7/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_7/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_7/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_7/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_8/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_8/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_8/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_8/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_8/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_9/ambient_light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_9/light.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_9/minus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_9/plus.sub +0 -7
- rf_protocols-3.2.0/rf_protocols/codes/novy/cooker_hood/code_9/power.sub +0 -7
- rf_protocols-3.2.0/rf_protocols.egg-info/SOURCES.txt +0 -74
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/LICENSE +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/README.md +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/__init__.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/honeywell/string_lights/__init__.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/honeywell/string_lights/turn_off.sub +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/honeywell/string_lights/turn_on.sub +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/somfy/rts/__init__.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/commands/__init__.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/commands/ev1527.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/commands/kaku.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/commands/ook.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/commands/pt2262.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/commands/somfy_rts.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/loader.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/parser.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols.egg-info/dependency_links.txt +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols.egg-info/requires.txt +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols.egg-info/top_level.txt +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/setup.cfg +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/tests/test_loader.py +0 -0
- {rf_protocols-3.2.0 → rf_protocols-4.0.0}/tests/test_parser.py +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""Novy cooker-hood button codes."""
|
|
2
|
+
|
|
3
|
+
from enum import Enum
|
|
4
|
+
|
|
5
|
+
from ....commands.novy import NovyCookerHoodCommand
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class NovyCookerHoodButton(Enum):
|
|
9
|
+
"""Novy cooker-hood button identifiers.
|
|
10
|
+
|
|
11
|
+
Each member's value is the (key_code, key_width_bits) pair
|
|
12
|
+
transmitted in the frame.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
MINUS = (0x1, 2)
|
|
16
|
+
PLUS = (0x2, 2)
|
|
17
|
+
AMBIENT = (0x3, 2)
|
|
18
|
+
POWER = (0x2C, 8)
|
|
19
|
+
LIGHT = (0x2E, 8)
|
|
20
|
+
LIGHT_MINUS = (0x31, 8)
|
|
21
|
+
LIGHT_PLUS = (0x34, 8)
|
|
22
|
+
AMBIENT_MINUS = (0x29, 8)
|
|
23
|
+
AMBIENT_PLUS = (0x32, 8)
|
|
24
|
+
MINUS_PLUS = (0x37, 8)
|
|
25
|
+
|
|
26
|
+
def __init__(self, code: int, width: int) -> None:
|
|
27
|
+
"""Initialize the button with its key code and frame width."""
|
|
28
|
+
self.code = code
|
|
29
|
+
self.width = width
|
|
30
|
+
|
|
31
|
+
def to_command(
|
|
32
|
+
self,
|
|
33
|
+
*,
|
|
34
|
+
channel: int,
|
|
35
|
+
timebase_us: int = 360,
|
|
36
|
+
frequency: int = 433_920_000,
|
|
37
|
+
repeat_count: int = 5,
|
|
38
|
+
) -> NovyCookerHoodCommand:
|
|
39
|
+
"""Build a NovyCookerHoodCommand for this button."""
|
|
40
|
+
return NovyCookerHoodCommand(
|
|
41
|
+
channel=channel,
|
|
42
|
+
key=self.code,
|
|
43
|
+
key_width=self.width,
|
|
44
|
+
timebase_us=timebase_us,
|
|
45
|
+
frequency=frequency,
|
|
46
|
+
repeat_count=repeat_count,
|
|
47
|
+
)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""Encoder for Novy cooker-hood RF remotes.
|
|
2
|
+
|
|
3
|
+
433.92 MHz OOK. Compatible with Novy 4-button remotes (models 840029,
|
|
4
|
+
840039, 840049). The remote has 10 user-selectable channels; pair this
|
|
5
|
+
encoder to the channel your hood is set to.
|
|
6
|
+
|
|
7
|
+
References:
|
|
8
|
+
- https://github.com/martijndierckx/novy-433
|
|
9
|
+
- https://github.com/renedis/ESP32_Novy_Controller
|
|
10
|
+
- https://github.com/RFD-FHEM/RFFHEM (Protocol 86, also implemented in
|
|
11
|
+
``14_SD_UT.pm`` as ``Novy_840029`` / ``Novy_840039``)
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from typing import override
|
|
17
|
+
|
|
18
|
+
from . import ModulationType, RadioFrequencyCommand
|
|
19
|
+
|
|
20
|
+
_DEFAULT_FREQUENCY = 433_920_000
|
|
21
|
+
_DEFAULT_REPEATS = 5
|
|
22
|
+
_DEFAULT_TIMEBASE_US = 360
|
|
23
|
+
_INTER_FRAME_US = 10_000
|
|
24
|
+
|
|
25
|
+
_CHANNEL_CODES: dict[int, int] = {
|
|
26
|
+
1: 0x2AA,
|
|
27
|
+
2: 0x1AA,
|
|
28
|
+
3: 0x3AA,
|
|
29
|
+
4: 0x06A,
|
|
30
|
+
5: 0x26A,
|
|
31
|
+
6: 0x16A,
|
|
32
|
+
7: 0x36A,
|
|
33
|
+
8: 0x0EA,
|
|
34
|
+
9: 0x2EA,
|
|
35
|
+
10: 0x1EA,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class NovyCookerHoodCommand(RadioFrequencyCommand):
|
|
40
|
+
"""Encode a Novy cooker-hood RF remote frame.
|
|
41
|
+
|
|
42
|
+
Sends one of the 10 channels with the given key. Button names and
|
|
43
|
+
their key codes are exposed by ``rf_protocols.codes.novy.cooker_hood``.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
channel: int
|
|
47
|
+
key: int
|
|
48
|
+
key_width: int
|
|
49
|
+
timebase_us: int
|
|
50
|
+
|
|
51
|
+
def __init__(
|
|
52
|
+
self,
|
|
53
|
+
*,
|
|
54
|
+
channel: int,
|
|
55
|
+
key: int,
|
|
56
|
+
key_width: int,
|
|
57
|
+
timebase_us: int = _DEFAULT_TIMEBASE_US,
|
|
58
|
+
frequency: int = _DEFAULT_FREQUENCY,
|
|
59
|
+
repeat_count: int = _DEFAULT_REPEATS,
|
|
60
|
+
) -> None:
|
|
61
|
+
"""Initialize the Novy command."""
|
|
62
|
+
if channel not in _CHANNEL_CODES:
|
|
63
|
+
raise ValueError("channel must be in range 1..10")
|
|
64
|
+
if key < 0 or key >= (1 << key_width):
|
|
65
|
+
raise ValueError(f"key must fit in {key_width} bits")
|
|
66
|
+
|
|
67
|
+
super().__init__(
|
|
68
|
+
frequency=frequency,
|
|
69
|
+
modulation=ModulationType.OOK,
|
|
70
|
+
repeat_count=repeat_count,
|
|
71
|
+
)
|
|
72
|
+
self.channel = channel
|
|
73
|
+
self.key = key
|
|
74
|
+
self.key_width = key_width
|
|
75
|
+
self.timebase_us = timebase_us
|
|
76
|
+
|
|
77
|
+
@override
|
|
78
|
+
def get_raw_timings(self) -> list[int]:
|
|
79
|
+
"""Compute the frame timings as signed mark/space microseconds."""
|
|
80
|
+
short_us = self.timebase_us
|
|
81
|
+
long_us = 2 * short_us
|
|
82
|
+
channel_code = _CHANNEL_CODES[self.channel]
|
|
83
|
+
|
|
84
|
+
channel_bits = [(channel_code >> i) & 1 for i in range(9, -1, -1)]
|
|
85
|
+
key_bits = [(self.key >> i) & 1 for i in range(self.key_width - 1, -1, -1)]
|
|
86
|
+
|
|
87
|
+
timings: list[int] = [short_us] # leading start mark
|
|
88
|
+
for bit in channel_bits + key_bits:
|
|
89
|
+
if bit:
|
|
90
|
+
timings += [-short_us, long_us]
|
|
91
|
+
else:
|
|
92
|
+
timings += [-long_us, short_us]
|
|
93
|
+
timings.append(-_INTER_FRAME_US)
|
|
94
|
+
return timings
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"""Protocol for Pilota Casa compatible devices.
|
|
2
|
+
|
|
3
|
+
Pulse Width Modulation with 32 symbols, used by Pilota Casa remote controls.
|
|
4
|
+
|
|
5
|
+
Symbols use a time base ``T`` of 600 µS:
|
|
6
|
+
|
|
7
|
+
______________
|
|
8
|
+
Bit 0 : _| |______
|
|
9
|
+
|<----2T------>|-<1T>-|
|
|
10
|
+
|
|
11
|
+
______
|
|
12
|
+
Bit 1 : _| |______________
|
|
13
|
+
|-<1T>-|<----2T----->|
|
|
14
|
+
|
|
15
|
+
Telegram layout:
|
|
16
|
+
- 32 data bits
|
|
17
|
+
- 2 bits device type (01 = remote control)
|
|
18
|
+
- 6 bits group, channel, command (via lookup table)
|
|
19
|
+
- 16 bits ID
|
|
20
|
+
- 8 bits always 1 (11111111)
|
|
21
|
+
|
|
22
|
+
Each transmission is typically repeated multiple times.
|
|
23
|
+
|
|
24
|
+
Reference chapter:
|
|
25
|
+
https://www.seegel-systeme.de/2015/09/05/funksteckdosen-mit-dem-raspberry-pi-steuern/
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
from __future__ import annotations
|
|
29
|
+
|
|
30
|
+
from typing import override
|
|
31
|
+
|
|
32
|
+
from . import ModulationType, RadioFrequencyCommand
|
|
33
|
+
|
|
34
|
+
_DEFAULT_FREQUENCY = 433_920_000
|
|
35
|
+
_DEFAULT_REPEATS = 5
|
|
36
|
+
_DEFAULT_TIMEBASE_US = 600
|
|
37
|
+
|
|
38
|
+
# Lookup table: (group, channel, on) -> 6-bit data value
|
|
39
|
+
_CMD_TABLE = {
|
|
40
|
+
(1, 1, True): 0b110001,
|
|
41
|
+
(1, 1, False): 0b111110,
|
|
42
|
+
(1, 2, True): 0b011001,
|
|
43
|
+
(1, 2, False): 0b010001,
|
|
44
|
+
(1, 3, True): 0b101001,
|
|
45
|
+
(1, 3, False): 0b100001,
|
|
46
|
+
(2, 1, True): 0b111010,
|
|
47
|
+
(2, 1, False): 0b110010,
|
|
48
|
+
(2, 2, True): 0b010110,
|
|
49
|
+
(2, 2, False): 0b011010,
|
|
50
|
+
(2, 3, True): 0b100110,
|
|
51
|
+
(2, 3, False): 0b101010,
|
|
52
|
+
(3, 1, True): 0b110111,
|
|
53
|
+
(3, 1, False): 0b111011,
|
|
54
|
+
(3, 2, True): 0b011111,
|
|
55
|
+
(3, 2, False): 0b010111,
|
|
56
|
+
(3, 3, True): 0b101111,
|
|
57
|
+
(3, 3, False): 0b100111,
|
|
58
|
+
(4, 1, True): 0b111101,
|
|
59
|
+
(4, 1, False): 0b110101,
|
|
60
|
+
(4, 2, True): 0b010011,
|
|
61
|
+
(4, 2, False): 0b011101,
|
|
62
|
+
(4, 3, True): 0b100011,
|
|
63
|
+
(4, 3, False): 0b101101,
|
|
64
|
+
(0, 0, True): 0b101100,
|
|
65
|
+
(0, 0, False): 0b011100,
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class PilotaCasaCommand(RadioFrequencyCommand):
|
|
70
|
+
"""Encode a Pilota Casa PWM frame."""
|
|
71
|
+
|
|
72
|
+
id: int
|
|
73
|
+
group: int
|
|
74
|
+
channel: int
|
|
75
|
+
on: bool
|
|
76
|
+
timebase_us: int
|
|
77
|
+
|
|
78
|
+
def __init__(
|
|
79
|
+
self,
|
|
80
|
+
*,
|
|
81
|
+
id: int,
|
|
82
|
+
group: int,
|
|
83
|
+
channel: int,
|
|
84
|
+
on: bool,
|
|
85
|
+
frame_repeats: int = _DEFAULT_REPEATS,
|
|
86
|
+
frequency: int = _DEFAULT_FREQUENCY,
|
|
87
|
+
timebase_us: int = _DEFAULT_TIMEBASE_US,
|
|
88
|
+
) -> None:
|
|
89
|
+
"""Initialize the Pilota Casa command.
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
id: 16-bit device ID (0-65535)
|
|
93
|
+
group: Group number (1-4) or 0 for all groups
|
|
94
|
+
channel: Channel number (1-4) or 0 for all channels
|
|
95
|
+
on: True for on command, False for off command
|
|
96
|
+
frame_repeats: Number of frame repetitions
|
|
97
|
+
frequency: RF frequency in Hz
|
|
98
|
+
timebase_us: Time base in microseconds
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
if id < 0 or id >= (1 << 16):
|
|
102
|
+
raise ValueError("id must be in range 0..65535 (16-bit)")
|
|
103
|
+
if group < 0 or group > 4:
|
|
104
|
+
raise ValueError("group must be in range 0..4 (0=all, 1-4=specific group)")
|
|
105
|
+
if channel < 0 or channel > 4:
|
|
106
|
+
raise ValueError(
|
|
107
|
+
"channel must be in range 0..4 (0=all, 1-4=specific channel)"
|
|
108
|
+
)
|
|
109
|
+
if (group, channel, on) not in _CMD_TABLE:
|
|
110
|
+
raise ValueError(
|
|
111
|
+
f"Invalid group/channel/on combination: ({group}, {channel}, {on})"
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
super().__init__(
|
|
115
|
+
frequency=frequency,
|
|
116
|
+
modulation=ModulationType.OOK,
|
|
117
|
+
repeat_count=frame_repeats,
|
|
118
|
+
)
|
|
119
|
+
self.id = id
|
|
120
|
+
self.group = group
|
|
121
|
+
self.channel = channel
|
|
122
|
+
self.on = on
|
|
123
|
+
self.timebase_us = timebase_us
|
|
124
|
+
|
|
125
|
+
@override
|
|
126
|
+
def get_raw_timings(self) -> list[int]:
|
|
127
|
+
"""Compute Pilota Casa PWM frame timings."""
|
|
128
|
+
_symbols = {
|
|
129
|
+
"0": [2 * self.timebase_us, -self.timebase_us],
|
|
130
|
+
"1": [self.timebase_us, -2 * self.timebase_us],
|
|
131
|
+
"pause": [self.timebase_us, -11 * self.timebase_us],
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
# Build the 32-bit data string
|
|
135
|
+
# 2 bits: device type (01 for remote control)
|
|
136
|
+
symstr: list[str] = ["0", "1"]
|
|
137
|
+
|
|
138
|
+
# 6 bits: encoded group, channel, and on/off from lookup table
|
|
139
|
+
data_byte = _CMD_TABLE[(self.group, self.channel, self.on)]
|
|
140
|
+
symstr.extend(format(data_byte, "06b"))
|
|
141
|
+
|
|
142
|
+
# 16 bits: ID
|
|
143
|
+
symstr.extend(format(self.id, "016b"))
|
|
144
|
+
|
|
145
|
+
# 8 bits: always 1
|
|
146
|
+
symstr.extend("11111111")
|
|
147
|
+
|
|
148
|
+
# Convert symbol string to timings
|
|
149
|
+
timings: list[int] = []
|
|
150
|
+
for s in symstr:
|
|
151
|
+
timings.extend(_symbols[s])
|
|
152
|
+
timings.extend(_symbols["pause"])
|
|
153
|
+
|
|
154
|
+
return timings
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
rf_protocols/__init__.py
|
|
5
|
+
rf_protocols/loader.py
|
|
6
|
+
rf_protocols/parser.py
|
|
7
|
+
rf_protocols.egg-info/PKG-INFO
|
|
8
|
+
rf_protocols.egg-info/SOURCES.txt
|
|
9
|
+
rf_protocols.egg-info/dependency_links.txt
|
|
10
|
+
rf_protocols.egg-info/requires.txt
|
|
11
|
+
rf_protocols.egg-info/top_level.txt
|
|
12
|
+
rf_protocols/codes/honeywell/string_lights/__init__.py
|
|
13
|
+
rf_protocols/codes/honeywell/string_lights/turn_off.sub
|
|
14
|
+
rf_protocols/codes/honeywell/string_lights/turn_on.sub
|
|
15
|
+
rf_protocols/codes/novy/cooker_hood/__init__.py
|
|
16
|
+
rf_protocols/codes/somfy/rts/__init__.py
|
|
17
|
+
rf_protocols/commands/__init__.py
|
|
18
|
+
rf_protocols/commands/ev1527.py
|
|
19
|
+
rf_protocols/commands/kaku.py
|
|
20
|
+
rf_protocols/commands/novy.py
|
|
21
|
+
rf_protocols/commands/ook.py
|
|
22
|
+
rf_protocols/commands/pilota_casa.py
|
|
23
|
+
rf_protocols/commands/pt2262.py
|
|
24
|
+
rf_protocols/commands/somfy_rts.py
|
|
25
|
+
tests/test_loader.py
|
|
26
|
+
tests/test_parser.py
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"""Novy cooker-hood RF codes."""
|
|
2
|
-
|
|
3
|
-
from rf_protocols.loader import CodeCollection, get_codes
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def get_codes_for_code(code: int) -> CodeCollection:
|
|
7
|
-
"""Return the bundled `rf-protocols` collection for a Novy cooker-hood code."""
|
|
8
|
-
return get_codes(f"novy/cooker_hood/code_{code}")
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -394 788 -788 394 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -788 394 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -394 788 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -10000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Filetype: Flipper SubGhz RAW File
|
|
2
|
-
Version: 1
|
|
3
|
-
Frequency: 433920000
|
|
4
|
-
Preset: FuriHalSubGhzPresetOok650Async
|
|
5
|
-
Protocol: RAW
|
|
6
|
-
Repeat: 5
|
|
7
|
-
RAW_Data: 394 -394 788 -788 394 -394 788 -394 788 -394 788 -788 394 -394 788 -788 394 -394 788 -788 394 -788 394 -788 394 -394 788 -788 394 -394 788 -394 788 -788 394 -788 394 -10000
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
README.md
|
|
3
|
-
pyproject.toml
|
|
4
|
-
rf_protocols/__init__.py
|
|
5
|
-
rf_protocols/loader.py
|
|
6
|
-
rf_protocols/parser.py
|
|
7
|
-
rf_protocols.egg-info/PKG-INFO
|
|
8
|
-
rf_protocols.egg-info/SOURCES.txt
|
|
9
|
-
rf_protocols.egg-info/dependency_links.txt
|
|
10
|
-
rf_protocols.egg-info/requires.txt
|
|
11
|
-
rf_protocols.egg-info/top_level.txt
|
|
12
|
-
rf_protocols/codes/honeywell/string_lights/__init__.py
|
|
13
|
-
rf_protocols/codes/honeywell/string_lights/turn_off.sub
|
|
14
|
-
rf_protocols/codes/honeywell/string_lights/turn_on.sub
|
|
15
|
-
rf_protocols/codes/novy/cooker_hood/__init__.py
|
|
16
|
-
rf_protocols/codes/novy/cooker_hood/code_1/ambient_light.sub
|
|
17
|
-
rf_protocols/codes/novy/cooker_hood/code_1/light.sub
|
|
18
|
-
rf_protocols/codes/novy/cooker_hood/code_1/minus.sub
|
|
19
|
-
rf_protocols/codes/novy/cooker_hood/code_1/plus.sub
|
|
20
|
-
rf_protocols/codes/novy/cooker_hood/code_1/power.sub
|
|
21
|
-
rf_protocols/codes/novy/cooker_hood/code_10/ambient_light.sub
|
|
22
|
-
rf_protocols/codes/novy/cooker_hood/code_10/light.sub
|
|
23
|
-
rf_protocols/codes/novy/cooker_hood/code_10/minus.sub
|
|
24
|
-
rf_protocols/codes/novy/cooker_hood/code_10/plus.sub
|
|
25
|
-
rf_protocols/codes/novy/cooker_hood/code_10/power.sub
|
|
26
|
-
rf_protocols/codes/novy/cooker_hood/code_2/ambient_light.sub
|
|
27
|
-
rf_protocols/codes/novy/cooker_hood/code_2/light.sub
|
|
28
|
-
rf_protocols/codes/novy/cooker_hood/code_2/minus.sub
|
|
29
|
-
rf_protocols/codes/novy/cooker_hood/code_2/plus.sub
|
|
30
|
-
rf_protocols/codes/novy/cooker_hood/code_2/power.sub
|
|
31
|
-
rf_protocols/codes/novy/cooker_hood/code_3/ambient_light.sub
|
|
32
|
-
rf_protocols/codes/novy/cooker_hood/code_3/light.sub
|
|
33
|
-
rf_protocols/codes/novy/cooker_hood/code_3/minus.sub
|
|
34
|
-
rf_protocols/codes/novy/cooker_hood/code_3/plus.sub
|
|
35
|
-
rf_protocols/codes/novy/cooker_hood/code_3/power.sub
|
|
36
|
-
rf_protocols/codes/novy/cooker_hood/code_4/ambient_light.sub
|
|
37
|
-
rf_protocols/codes/novy/cooker_hood/code_4/light.sub
|
|
38
|
-
rf_protocols/codes/novy/cooker_hood/code_4/minus.sub
|
|
39
|
-
rf_protocols/codes/novy/cooker_hood/code_4/plus.sub
|
|
40
|
-
rf_protocols/codes/novy/cooker_hood/code_4/power.sub
|
|
41
|
-
rf_protocols/codes/novy/cooker_hood/code_5/ambient_light.sub
|
|
42
|
-
rf_protocols/codes/novy/cooker_hood/code_5/light.sub
|
|
43
|
-
rf_protocols/codes/novy/cooker_hood/code_5/minus.sub
|
|
44
|
-
rf_protocols/codes/novy/cooker_hood/code_5/plus.sub
|
|
45
|
-
rf_protocols/codes/novy/cooker_hood/code_5/power.sub
|
|
46
|
-
rf_protocols/codes/novy/cooker_hood/code_6/ambient_light.sub
|
|
47
|
-
rf_protocols/codes/novy/cooker_hood/code_6/light.sub
|
|
48
|
-
rf_protocols/codes/novy/cooker_hood/code_6/minus.sub
|
|
49
|
-
rf_protocols/codes/novy/cooker_hood/code_6/plus.sub
|
|
50
|
-
rf_protocols/codes/novy/cooker_hood/code_6/power.sub
|
|
51
|
-
rf_protocols/codes/novy/cooker_hood/code_7/ambient_light.sub
|
|
52
|
-
rf_protocols/codes/novy/cooker_hood/code_7/light.sub
|
|
53
|
-
rf_protocols/codes/novy/cooker_hood/code_7/minus.sub
|
|
54
|
-
rf_protocols/codes/novy/cooker_hood/code_7/plus.sub
|
|
55
|
-
rf_protocols/codes/novy/cooker_hood/code_7/power.sub
|
|
56
|
-
rf_protocols/codes/novy/cooker_hood/code_8/ambient_light.sub
|
|
57
|
-
rf_protocols/codes/novy/cooker_hood/code_8/light.sub
|
|
58
|
-
rf_protocols/codes/novy/cooker_hood/code_8/minus.sub
|
|
59
|
-
rf_protocols/codes/novy/cooker_hood/code_8/plus.sub
|
|
60
|
-
rf_protocols/codes/novy/cooker_hood/code_8/power.sub
|
|
61
|
-
rf_protocols/codes/novy/cooker_hood/code_9/ambient_light.sub
|
|
62
|
-
rf_protocols/codes/novy/cooker_hood/code_9/light.sub
|
|
63
|
-
rf_protocols/codes/novy/cooker_hood/code_9/minus.sub
|
|
64
|
-
rf_protocols/codes/novy/cooker_hood/code_9/plus.sub
|
|
65
|
-
rf_protocols/codes/novy/cooker_hood/code_9/power.sub
|
|
66
|
-
rf_protocols/codes/somfy/rts/__init__.py
|
|
67
|
-
rf_protocols/commands/__init__.py
|
|
68
|
-
rf_protocols/commands/ev1527.py
|
|
69
|
-
rf_protocols/commands/kaku.py
|
|
70
|
-
rf_protocols/commands/ook.py
|
|
71
|
-
rf_protocols/commands/pt2262.py
|
|
72
|
-
rf_protocols/commands/somfy_rts.py
|
|
73
|
-
tests/test_loader.py
|
|
74
|
-
tests/test_parser.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/honeywell/string_lights/__init__.py
RENAMED
|
File without changes
|
{rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/honeywell/string_lights/turn_off.sub
RENAMED
|
File without changes
|
{rf_protocols-3.2.0 → rf_protocols-4.0.0}/rf_protocols/codes/honeywell/string_lights/turn_on.sub
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|