update esppilight lib
content of the library is not filtered on 433mhz only
This commit is contained in:
1 parent
a275e48ee1
commit
67dd7ac078
1030 files changed
+203335
-116
No files matched your search
@@ -0,0 +1,178 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Elro 800 Series | elro_800_switch |
|
||||
+----------------------+------------------+
|
||||
| Brennenstuhl | brennenstuhl |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-s --systemcode=systemcode control a device with this systemcode
|
||||
-u --unitcode=unitcode control a device with this unitcode
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "elro_800_switch" ],
|
||||
"id": [{
|
||||
"systemcode": 31,
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 0 - 1023 |
|
||||
+------------------+-----------------+
|
||||
| unitcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. Note:: Workaround for 800 Series
|
||||
|
||||
1. Set your remote DIP switches like this off|off|on|off (AB660 Code) if possible
|
||||
2. Now look for systemcode and unitcode with pilight-receive
|
||||
3. Setup the config.json with the received results
|
||||
4. Get the switches in learning mode and push the buttons on the webgui accordingly to the unit.
|
||||
5. This should work until there is a protocol for the 800 series.
|
||||
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 960 320 320 960 960 320 320 960 960 320 320 960 960 320 320 960 320 960 320 960 960 320 320 9920
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 960 320
|
||||
320 960 960 320
|
||||
320 960 960 320
|
||||
320 960 960 320
|
||||
320 960 320 960
|
||||
320 960 960 320
|
||||
320 9920
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
- ``320 960 320 960``
|
||||
- ``320 960 960 320``
|
||||
|
||||
So the first group is defined by a high 4th pulse and the second group has a low 4th pulse. In this case we say a high 4th pulse means a 1 and a low 4th pulse means a 0. We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
11111 10000 1 0
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- SystemCode: 0 till 5
|
||||
- UnitCode: 6 till 10
|
||||
- State: 11
|
||||
- Check: 12 (inverse state)
|
||||
|
||||
|
||||
- The ``SystemCode`` is defined as a binary number
|
||||
- The ``UnitCode`` is defined as a binary number
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
- The ``Check`` defines whether a devices needs to be turned On or Off (but is inverse)
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 31
|
||||
- UnitCode: 1
|
||||
- State: On
|
||||
- Check: On (inverse state)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00000 00100 0 1
|
||||
|
||||
Another example:
|
||||
|
||||
- SystemCode: 0
|
||||
- UnitCode: 4
|
||||
- State: Off
|
||||
- Check: Off (inverse state)
|
||||
|
||||
Furthermore the protocol filters out false positives by checking if:
|
||||
|
||||
- Every 1st bit of the first 12 groups of 4 bits is always LOW (0)
|
||||
- 2nd bit of the first 12 groups of 4 bits is always HIGH (1)
|
||||
- 3rd and 4th bit of the first 12 groups of 4 bits are different (NOT EQUAL)
|
||||
- Bits 49 and 50 are LOW (0) and HIGH (1) respectively (fixed footer)
|
||||
|
||||
This makes the protocol more accurate because it will respond less when arctech_old commands are sent.
|
||||
|
||||
The numeric mapping of a button on the remote control is binary counted, as follows:
|
||||
|
||||
- A = 1
|
||||
- B = 2
|
||||
- C = 4
|
||||
- D = 8
|
||||
- E = 16
|
||||
|
||||
All possible combinations of dip switches on the socket can be used with pilight. For instance, if you set the switches that correspond to A and E, the socket will react on unit code “A+E”: 17 (1+16). By pushing A and E simultaneously on the remote, you can also switch the corresponding socket. However, this may also trigger sockets that are listening to A and/or E if you don't push both buttons at exactly the same time.
|
||||
@@ -0,0 +1,208 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+--------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+--------------------+
|
||||
| CoCo Technologies | coco_switch |
|
||||
+----------------------+--------------------+
|
||||
| D-IO (Chacon) | dio_switch |
|
||||
+----------------------+--------------------+
|
||||
| Intertechno | intertechno_switch |
|
||||
+----------------------+--------------------+
|
||||
| KlikAanKlikUit | kaku_switch |
|
||||
+----------------------+--------------------+
|
||||
| Nexa | nexa_switch |
|
||||
+----------------------+--------------------+
|
||||
| Rev Ritter 8341LC | intertechno_switch |
|
||||
+----------------------+--------------------+
|
||||
| Rev Ritter 8342LC | intertechno_switch |
|
||||
+----------------------+--------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
-u --unit=unit control a device with this unit code
|
||||
-i --id=id control a device with this id
|
||||
-a --all send command to all devices with this id
|
||||
-l --learn send multiple streams so switch can learn
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "kaku_switch" ],
|
||||
"id": [{
|
||||
"id": 100,
|
||||
"unit": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 67108863 |
|
||||
+------------------+-----------------+
|
||||
| unit | 0 - 15 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`Device Settings`
|
||||
|
||||
+--------------------+-------------+------------+-------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+--------------------+-------------+------------+-------------------------------------------------+
|
||||
| all | 0 | 1 or 0 | | If specified this will trigger the "group" |
|
||||
| | | | | function of the advanced remotes and trigger |
|
||||
| | | | | all registered devices for the given unitcode |
|
||||
+--------------------+-------------+------------+-------------------------------------------------+
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Notes
|
||||
|
||||
If you want your switch to learn new codes, you can use the following command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p kaku_switch -i 1 -u 1 -t -l
|
||||
|
||||
If you want your switch to remove a learned code, you can use the following command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p kaku_switch -i 1 -u 1 -f -l
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 132 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
286 2825 286 201 289 1337 287 209 283 1351 287 204 289 1339 288 207 288 1341 289 207 281 1343 284 205 292 1346 282 212 283 1348 282 213 279 1352 282 211 281 1349 282 210 283 1347 284 211 288 1348 281 211 285 1353 278 213 280 1351 280 232 282 1356 279 213 285 1351 276 215 285 1348 277 216 278 1359 278 216 279 1353 272 214 283 1358 276 216 276 1351 278 214 284 1357 275 217 276 1353 270 217 277 1353 272 220 277 1351 275 220 272 1356 275 1353 273 224 277 236 282 1355 272 1353 273 233 273 222 268 1358 270 219 277 1361 274 218 280 1358 272 1355 271 243 251 11302
|
||||
|
||||
The first 2 pulses are the ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine. We don't use them for further processing. The next step is to transform this output into 32 groups of 4 pulses (and thereby dropping the ``header`` and ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
286 201 289 1337
|
||||
287 209 283 1351
|
||||
287 204 289 1339
|
||||
288 207 288 1341
|
||||
289 207 281 1343
|
||||
284 205 292 1346
|
||||
282 212 283 1348
|
||||
282 213 279 1352
|
||||
282 211 281 1349
|
||||
282 210 283 1347
|
||||
284 211 288 1348
|
||||
281 211 285 1353
|
||||
278 213 280 1351
|
||||
280 232 282 1356
|
||||
279 213 285 1351
|
||||
276 215 285 1348
|
||||
277 216 278 1359
|
||||
278 216 279 1353
|
||||
272 214 283 1358
|
||||
276 216 276 1351
|
||||
278 214 284 1357
|
||||
275 217 276 1353
|
||||
270 217 277 1353
|
||||
272 220 277 1351
|
||||
275 220 272 1356
|
||||
275 1353 273 224
|
||||
277 236 282 1355
|
||||
272 1353 273 233
|
||||
273 222 268 1358
|
||||
270 219 277 1361
|
||||
274 218 280 1358
|
||||
272 1355 271 243
|
||||
|
||||
If we now look at carefully at these groups you can distinguish two types of groups:
|
||||
|
||||
- ``272 1355 271 243``
|
||||
- ``274 218 280 1358``
|
||||
|
||||
So the first group is defined by a high 2nd and the second group has a high 4th pulse. So we take either of these two pulses to define a 0 or a 1. In this case we say a high 2nd pulse means a 1 and a low 2nd pulse means a 0. We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00000000000000000000000001010001
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- ID: 0 till 25(Convert the binary code to decimal to get the correct id)
|
||||
- All: 26
|
||||
- State: 27
|
||||
- Unit: 28 till 31
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00000000000000000000000001 0 1 0001
|
||||
|
||||
- The ``ID`` is defined as a binary number
|
||||
- The ``All`` tells us if a code was meant for all devices with the same ID
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
- The ``Unit`` is also defined as a binary number
|
||||
|
||||
So this code represents:
|
||||
|
||||
- ID: 1
|
||||
- All: Single
|
||||
- State: On
|
||||
- Unit: 1
|
||||
|
||||
Another example:
|
||||
|
||||
- ID: 123456
|
||||
- All: All
|
||||
- State: Off
|
||||
- Unit: 15
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00000000011110001001000000101111
|
||||
@@ -0,0 +1,201 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Cogex | cogex |
|
||||
+----------------------+------------------+
|
||||
| Dúwi Terminal | duwi |
|
||||
+----------------------+------------------+
|
||||
| Eurodomest | kaku_switch_old |
|
||||
+----------------------+------------------+
|
||||
| Intertechno | intertechno_old |
|
||||
+----------------------+------------------+
|
||||
| Dúwi Terminal | duwi |
|
||||
+----------------------+------------------+
|
||||
| KlikAanKlikUit | kaku_switch_old |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
-u --unit=unit control a device with this unit code
|
||||
-i --id=id control a device with this id
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "kaku_switch_old" ],
|
||||
"id": [{
|
||||
"id": 10,
|
||||
"unit": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| unit | 0 - 15 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Notes
|
||||
|
||||
The old KlikAanKlikUit devices work setting two wheels: group (0-H) and device number (0-16). To control a device from pilight you need to send the correct group and unit id, these do not correspond 1:1.
|
||||
|
||||
A-1 on the unit corresponds with unit 0 id 0 in pilight A-2 on the unit corresponds with unit 0 id 1 in pilight etc.
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
295 1180 295 1180 295 1180 1180 295 295 1180 295 1180 295 1180 1180 295 295 1180 1180 295 295 1180 1180 295 295 1180 1180 295 295 1180 1180 295 295 1180 295 1180 295 1180 1180 295 295 1180 1180 295 295 1180 1180 295 295 11210
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
295 1180 295 1180
|
||||
295 1180 1180 295
|
||||
295 1180 295 1180
|
||||
295 1180 1180 295
|
||||
295 1180 1180 295
|
||||
|
||||
295 1180 1180 295
|
||||
295 1180 1180 295
|
||||
295 1180 1180 295
|
||||
295 1180 295 1180
|
||||
295 1180 1180 295
|
||||
|
||||
295 1180 1180 295
|
||||
295 1180 1180 295
|
||||
|
||||
295 11210
|
||||
|
||||
If we now look at carefully at these groups you can distinguish two types of groups:
|
||||
|
||||
- ``295 1180 1180 295``
|
||||
- ``295 1180 295 1180``
|
||||
|
||||
So the first group is defined by a high 3th pulse and the second group has a low 3rd pulse. In this case we say a high 3rd pulse means a 0 and a low 3rd pulse means a 1. We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
10100 00010 0 0
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- Unit: 0 till 5 (inversed)
|
||||
- ID: 6 till 10 (inversed)
|
||||
- Fixed: 11 (always 0)
|
||||
- State: 12 (inversed)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
10100 00010 0 0
|
||||
|
||||
- The ``Unit`` is defined as a binary number
|
||||
- The ``ID`` is defined as a binary number
|
||||
- The ``Fixed`` is always 0
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
|
||||
So this code represents:
|
||||
|
||||
- Unit: 20
|
||||
- ID: 1
|
||||
- Fixed: always 0
|
||||
- State: Off
|
||||
|
||||
Another example:
|
||||
|
||||
- Unit: 0
|
||||
- ID: 4
|
||||
- Fixed: always 0
|
||||
- State: On
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00000 00100 0 1
|
||||
|
||||
Furthermore the protocol filters out false positives by checking if:
|
||||
|
||||
- Every 1st bit of the first 12 groups of 4 bits is always LOW (0)
|
||||
- 2nd bit of the first 12 groups of 4 bits is always HIGH (1)
|
||||
- 3rd and 4th bit of the first 12 groups of 4 bits are different (NOT EQUAL)
|
||||
- Bits 49 and 50 are LOW (0) and HIGH (1) respectively (fixed footer)
|
||||
|
||||
This makes the protocol more accurate because it will respond rarely now when sartano commands are sent.
|
||||
|
||||
.. note:: **Eurodomest**
|
||||
|
||||
The Eurodomest (Intertechno) switches listens to the kaku_switch_old protocol, but the remote doesn't send using the kaku_switch_old protocol. When using pilight-receive, the following protocols are received using the remote:
|
||||
|
||||
- elro_800_contact
|
||||
- elro_800_switch
|
||||
- ehome
|
||||
- cleverwatts
|
||||
|
||||
To use the Eurodomest switches with the kaku_switch_old protocol on pilight, the following steps have to be performed:
|
||||
|
||||
- Hold the On/Off button until the LED flashes.
|
||||
- In a terminal window do:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p kaku_switch_old -i <choose your own ID between 1~30> -u 0 -t
|
||||
|
||||
- If everything is Ok the switch is programmed.
|
||||
- For wall-plug 2 & 3 change the value -u
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Rising Sun RSL366 | rsl366 |
|
||||
+----------------------+------------------+
|
||||
| Brennenstuhl | brennenstuhl |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-s --systemcode=systemcode control a device with this systemcode
|
||||
-u --programcode=programcode control a device with this programcode
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"switch": {
|
||||
"protocol": [ "promax" ],
|
||||
"id": [{
|
||||
"systemcode": 4,
|
||||
"programcode": 1
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 0 - 4 |
|
||||
+------------------+-----------------+
|
||||
| unitcode | 0 - 4 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. note:: **RSL366**
|
||||
|
||||
The RSL366 switches come with two dials, one selecting the Systemcode (1 to 4) and the Programcode (1 to 4). The systemcode allows one remote to control up to 16 switches. The systemcode parameter designates the dial on top of the back side of the switch, and the small lever on the back of the remote. The programcode parameter designates the lower dial on the back of the switch, and the individual buttons on the face of the remote. So if your switch has the higher dial set to 4, and the lower one set to 1, you should use:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
systemcode: 4
|
||||
programcode: 1
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
390 1170 1170 390 390 1170 1170 390 390 1170 1170 390 390 1170 390 1170 390 1170 390 1170 390 1170 1170 390 390 1170 1170 390 390 1170 1170 390 390 1170 1170 390 390 1170 1170 390 390 1170 1170 390 390 1170 1170 390 390 13260
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 390 1170
|
||||
|
||||
390 1170 390 1170
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
|
||||
390 1170 1170 390
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
- ``390 1170 1170 390``
|
||||
- ``390 1170 390 1170``
|
||||
|
||||
#. The first group is defined by a low 1st and low 4th pulse, and we call it low.
|
||||
#. The second group has a high 2nd and 4th pulse, and we call it high.
|
||||
|
||||
We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
LLLH HLLL LL LL
|
||||
|
||||
All H's can be translated to 1. All L's can be translated to 0.
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- Systemcode: 1 till 4
|
||||
- Programcode: 5 till 8
|
||||
- 9 to 11 are always low and don't convey any information
|
||||
- State: 12 (state)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
0001 1000 000 0
|
||||
|
||||
- The ``SystemCode`` is defined as position of the pulse group that bears the **high** signal in the first grouping (i.e. if the third pulse group is high then systemcode is 3)
|
||||
- The ``ProgramCode`` is defined as the position of the pulse group that bears the **high** signal in the second grouping (i.e. if the second pulse group is high then systemcode is 2)
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off. If it bears the **high** pulse group - the device must be turned off, if it bears the **low** pulse group it must be turned on
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 4
|
||||
- ProgramCode: 1
|
||||
- State: On
|
||||
|
||||
Another example:
|
||||
|
||||
- Unit: 1
|
||||
- ID: 3
|
||||
- State: Off
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
1000 0010 000 1
|
||||
@@ -0,0 +1,221 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Beamish
|
||||
=======
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Beamish 4-AE4 | beamish_switch |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t --on send a toggle state signal to the device
|
||||
-f --off send a toggle state signal to the device
|
||||
-i --id=id control the device with this system id (1 ... 65535)
|
||||
-u --unit=unit control the device with this unit code (1 ... 4)
|
||||
-a --all send on/off command to all device units belonging to this system id
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "beamish_switch" ],
|
||||
"id": [{
|
||||
"id": 8,
|
||||
"unit": 2
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 1 - 65535 |
|
||||
+------------------+-----------------+
|
||||
| unit | 1 - 4 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 1292 323 323 1292 323 1292 323 1292 323 1292 323 1292 1292 323 1292 323 323 1292 323 1292 323 1292 323 1292 323 10982
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
1292 323
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
1292 323
|
||||
1292 323
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 1292
|
||||
323 10982
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
- ``323 1292``
|
||||
- ``1292 323``
|
||||
|
||||
The 1st group is defined by a short-long sequence (logical 0) The 2nd group is defined by a long-short sequence (logical 1):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
000000000000100000110000
|
||||
|
||||
We can group the sequence of bits into the following groups A and B:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
AAAAAAAAAAAAAAAA BBBB BBBB
|
||||
0000000000001000 0011 0000
|
||||
|
||||
Each of the groups of bits (A and B) has a specific meaning:
|
||||
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
| **Group** | **Bit #** | **Config name** | **Range** | **Description** |
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
| A | 1 to 16 | id | 1 to 65535 | SystemCode id |
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
| B | 17 to 24 | unit | 1 to 4 | ButtonCode unit |
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
|
||||
The protocol driver creates the binary presentation as required by the device
|
||||
|
||||
+------+------+-------+-------------------------------+
|
||||
| 1100 | 0000 | -u 1 | Button A Toggle device status |
|
||||
+------+------+-------+-------------------------------+
|
||||
| 0011 | 0000 | -u 2 | Button B Toggle device status |
|
||||
+------+------+-------+-------------------------------+
|
||||
| 0000 | 1100 | -u 3 | Button C Toggle device status |
|
||||
+------+------+-------+-------------------------------+
|
||||
| 0000 | 0011 | -u 4 | Button D Toggle device status |
|
||||
+------+------+-------+-------------------------------+
|
||||
| 0000 | 1111 | -a -t | Button ALL ON |
|
||||
+------+------+-------+-------------------------------+
|
||||
| 1100 | 0011 | -a -f | Button ALL OFF |
|
||||
+------+------+-------+-------------------------------+
|
||||
|
||||
So this code represents:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
{
|
||||
"code": {
|
||||
"id": 8,
|
||||
"unit": 2
|
||||
},
|
||||
"origin": "receiver",
|
||||
"protocol": "beamish_switch",
|
||||
"uuid": "0000-00-00-00-000000",
|
||||
"repeats": 2
|
||||
}
|
||||
|
||||
.. rubric:: Examples
|
||||
|
||||
CLI command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p beamish_switch -i 8 -u 1
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
{
|
||||
"code": {
|
||||
"systemcode": 2,
|
||||
"id": 8,
|
||||
"unit": 1
|
||||
},
|
||||
"origin": "receiver",
|
||||
"protocol": "beamish_switch",
|
||||
"uuid": "0000-00-00-00-000000",
|
||||
"repeats": 1
|
||||
}
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p beamish_switch -i 8 -a -t
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
{
|
||||
"origin": "sender",
|
||||
"protocol": "beamish_switch",
|
||||
"code": {
|
||||
"id": 8,
|
||||
"all": 1,
|
||||
"state": "on"
|
||||
},
|
||||
"repeat": 1,
|
||||
"uuid": "0000-00-00-00-000000"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
Brennenstuhl
|
||||
=============
|
||||
|
||||
.. include:: _elro_800.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
ByeByeStandby
|
||||
=============
|
||||
|
||||
.. include:: _kaku_old.rst
|
||||
@@ -0,0 +1,160 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Clarus
|
||||
======
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Clarus | clarus_switch |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-i --id=id control a device with this systemcode
|
||||
-u --unit=unit control a device with this programcode
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "clarus_switch" ],
|
||||
"id": [{
|
||||
"id": "A2",
|
||||
"unit": 10
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | A0 - F32 |
|
||||
+------------------+-----------------+
|
||||
| unit | 0 - 63 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
189 567 567 189 189 567 567 189 189 567 189 567 189 567 567 189 189 567 189 567 189 567 567 189 189 567 567 189 189 567 567 189 189 567 189 567 567 189 567 189 189 567 189 567 567 189 567 189 189 6426
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
189 567 567 189
|
||||
189 567 567 189
|
||||
189 567 189 567
|
||||
189 567 567 189
|
||||
189 567 189 567
|
||||
|
||||
189 567 567 189
|
||||
189 567 567 189
|
||||
189 567 567 189
|
||||
189 567 189 567
|
||||
567 189 567 189
|
||||
|
||||
189 567 189 567
|
||||
567 189 567 189
|
||||
|
||||
189 6426
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
#. ``189 567 567 189``
|
||||
#. ``567 189 567 189``
|
||||
#. ``189 567 189 567``
|
||||
|
||||
- The first group is defined by a low 1st and low 4rd pulse pulse, hence we call it low.
|
||||
- The second group has a high 1st and 3rd pulse, hence we call it med.
|
||||
- The final group has a low 1st and low 3rd pulse, hence we call it high.
|
||||
|
||||
We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
LLHLH LLLHM HM
|
||||
|
||||
All L's can be translated to 0, the H's to 1's, and M's to 2.
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- Unit: 0 till 5
|
||||
- ID: 6 till 10
|
||||
- State: 12 (state)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00101 00012 12
|
||||
|
||||
- The ``Unit`` is defined as a binary number
|
||||
- The ``ID`` is defined as a binary number combined with a letter
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
|
||||
So this code represents:
|
||||
|
||||
- Unit: 10
|
||||
- ID: A2
|
||||
- State: On
|
||||
|
||||
Another example:
|
||||
|
||||
- Unit: 0
|
||||
- ID: B1
|
||||
- State: Off
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00101 00021 21
|
||||
@@ -0,0 +1,178 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Cleverwatts
|
||||
===========
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Cleverwatts | cleverwatts |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-i --id=id control a device with this id
|
||||
-u --unit=unit control a device with this unit
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
-a --all send an all signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "cleverwatts" ],
|
||||
"id": [{
|
||||
"id": 73404,
|
||||
"unit": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 1 - 1048575 |
|
||||
+------------------+-----------------+
|
||||
| unit | 0 - 3 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
270 810 810 270 810 270 270 810 810 270 810 270 810 270 270 810 810 270 270 810 810 270 270 810 810 270 270 810 270 810 810 270 270 810 270 810 270 810 270 810 810 270 810 270 810 270 270 810 270 9180
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
270 810
|
||||
810 270
|
||||
810 270
|
||||
270 810
|
||||
810 270
|
||||
810 270
|
||||
810 270
|
||||
270 810
|
||||
810 270
|
||||
270 810
|
||||
810 270
|
||||
270 810
|
||||
810 270
|
||||
270 810
|
||||
270 810
|
||||
810 270
|
||||
270 810
|
||||
270 810
|
||||
270 810
|
||||
270 810
|
||||
810 270
|
||||
810 270
|
||||
810 270
|
||||
270 810
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
#. ``270 810``
|
||||
#. ``810 270``
|
||||
|
||||
- The first group is defined by a low 1st and high 2nd pulse, hence we call it low.
|
||||
- The second group has a high 1st and low 2nd pulse, hence we call it high.
|
||||
|
||||
We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
0 1
|
||||
1 0
|
||||
1 0
|
||||
0 1
|
||||
1 0
|
||||
1 0
|
||||
1 0
|
||||
0 1
|
||||
1 0
|
||||
0 1
|
||||
1 0
|
||||
0 1
|
||||
1 0
|
||||
0 1
|
||||
0 1
|
||||
1 0
|
||||
0 1
|
||||
0 1
|
||||
0 1
|
||||
0 1
|
||||
1 0
|
||||
1 0
|
||||
1 0
|
||||
0 1
|
||||
|
||||
We then remove the first column of numbers and then put the remaining numbers in a row:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
1001000101011011110001
|
||||
|
||||
Each (group) of numbers has a specific meaning and are defined in binary format:
|
||||
|
||||
- ID: 0 till 19
|
||||
- State: 20
|
||||
- Unit: 21 and 22
|
||||
- All: 23
|
||||
|
||||
So this code represents:
|
||||
|
||||
- Unit: 595311
|
||||
- ID: 0
|
||||
- State: On
|
||||
- All: Single
|
||||
@@ -0,0 +1,4 @@
|
||||
CoCo Technologies
|
||||
=================
|
||||
|
||||
.. include:: _kaku.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
Cogex
|
||||
=====
|
||||
|
||||
.. include:: _kaku_old.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
D-IO (Chacon)
|
||||
=============
|
||||
|
||||
.. include:: _kaku.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
Dúwi Terminal
|
||||
=============
|
||||
|
||||
.. include:: _kaku_old.rst
|
||||
@@ -0,0 +1,274 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Elro HE (300 Series)
|
||||
====================
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Elro 300 Series | elro_300_switch |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-s --systemcode=systemcode control a device with this systemcode
|
||||
-u --unitcode=unitcode control a device with this unitcode
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
-a --all trigger group switching
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "elro_300_switch" ],
|
||||
"id": [{
|
||||
"systemcode": 123456,
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 0 - 4294967295 |
|
||||
+------------------+-----------------+
|
||||
| unitcode | 0 - 99 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`Device Settings`
|
||||
|
||||
+----------------------+-------------+------------+------------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+------------------------------------------------------------+
|
||||
| all | 1 | 1 or 0 | | If specified this will trigger the **group** function of |
|
||||
| | | | | the advanced remotes and trigger all registered devices |
|
||||
| | | | | for the given Systemcode |
|
||||
+----------------------+-------------+------------+------------------------------------------------------------+
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. Note::
|
||||
|
||||
The group button appears to be sending the unitcode of I-1 (First band, first unit) no matter to which band the remote is currently set.
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 116 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
302 1208 302 1208 302 302 302 302 302 302 302 1208 302 1208 302 1208 302 1208 302 302 302 302 302 1208 302 302 302 1208 302 1208 302 1208 302 1208 302 302 302 302 302 1208 302 302 302 1208 302 1208 302 302 302 302 302 1208 302 302 302 1208 302 1208 302 1208 302 1208 302 302 302 302 302 1208 302 1208 302 302 302 1208 302 1208 302 302 302 302 302 1208 302 302 302 1208 302 1208 302 302 302 1208 302 1208 302 302 302 1208 302 302 302 1208 302 302 302 302 302 1208 302 1208 302 1208 302 302 302 10268
|
||||
|
||||
These pulses are separated into groups of 2:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 302
|
||||
302 1208
|
||||
302 302
|
||||
302 302
|
||||
302 1208
|
||||
302 1208
|
||||
302 1208
|
||||
302 302
|
||||
302 10268
|
||||
|
||||
There are several easily identifiable facts here:
|
||||
|
||||
- ``320 960 320 960``
|
||||
- ``320 960 960 320``
|
||||
|
||||
#. The baseline is at 302
|
||||
#. The high Pulse is basline * 4 = 1208
|
||||
#. The last 2-pulse sequence is special, it's the footer of the message
|
||||
|
||||
Using a translation pattern of **302 1208** → 1 and **302 302** → 0 we translate this sequence into the following pattern
|
||||
|
||||
.. code-block::console
|
||||
|
||||
1100011110010111100101100101111001101100101101101010011101
|
||||
|
||||
Testing and some outside info reveals the following sections:
|
||||
|
||||
.. code-block: console
|
||||
|
||||
AAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCDDEEFFFFFFG
|
||||
|
||||
A = Startbits/preamble
|
||||
B = Address (32 Bit system code)
|
||||
C = Group Code (Grouped: 1100, Non-Grouped: 1011)
|
||||
D = Command, (On: 01, Off: 10)
|
||||
E = Group Code 2 (Grouped: 11, Non Grouped: 01)
|
||||
F = UnitCode
|
||||
G = Stopbit
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 3165844325
|
||||
- UnitCode: 28
|
||||
- State: Off
|
||||
- UnitCode: NotSet
|
||||
|
||||
The protocol filters out false positives by checking if:
|
||||
|
||||
#. Every 1st pulse in groups of 2 is a low pulse
|
||||
#. The last two pulses are 302 and 10268 (fixed footer)
|
||||
|
||||
This is the readout from the writer's reference HE300 remote
|
||||
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| **Band** | **Code** | **UnitCode** | **GroupA** | **GroupB** |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| I | 1 | 56 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| I | 2 | 52 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| I | 3 | 44 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| I | 4 | 28 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| II | 1 | 50 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| II | 2 | 42 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| II | 3 | 26 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| II | 4 | 38 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| III | 1 | 22 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| III | 2 | 14 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| III | 3 | 49 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| III | 4 | 41 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| IV | 1 | 25 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| IV | 2 | 37 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| IV | 3 | 21 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
| IV | 4 | 13 | 13 | 2 |
|
||||
+----------+----------+--------------+------------+------------+
|
||||
|
||||
This is translated:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
1-1 11000111100 10111100101100101111001101100101 1011 10 01 000111 1
|
||||
1-2 11000111100 10111100101100101111001101100101 1011 10 01 001011 1
|
||||
1-3 11000111100 10111100101100101111001101100101 1011 10 01 001101 1
|
||||
1-4 11000111100 10111100101100101111001101100101 1011 10 01 001110 1
|
||||
2-1 11000111100 10111100101100101111001101100101 1011 10 01 010011 1
|
||||
2-2 11000111100 10111100101100101111001101100101 1011 10 01 010101 1
|
||||
2-3 11000111100 10111100101100101111001101100101 1011 10 01 010110 1
|
||||
2-4 11000111100 10111100101100101111001101100101 1011 10 01 011001 1
|
||||
3-1 11000111100 10111100101100101111001101100101 1011 10 01 011010 1
|
||||
3-2 11000111100 10111100101100101111001101100101 1011 10 01 011100 1
|
||||
3-3 11000111100 10111100101100101111001101100101 1011 10 01 100011 1
|
||||
3-4 11000111100 10111100101100101111001101100101 1011 10 01 100101 1
|
||||
4-1 11000111100 10111100101100101111001101100101 1011 10 01 100110 1
|
||||
4-2 11000111100 10111100101100101111001101100101 1011 10 01 101001 1
|
||||
4-3 11000111100 10111100101100101111001101100101 1011 10 01 101010 1
|
||||
4-4 11000111100 10111100101100101111001101100101 1011 10 01 101100 1
|
||||
|
||||
G1 11000111100 10111100101100101111001101100101 1100 10 11 000111 1
|
||||
G2 11000111100 10111100101100101111001101100101 1100 10 11 000111 1
|
||||
G3 11000111100 10111100101100101111001101100101 1100 10 11 000111 1
|
||||
G4 11000111100 10111100101100101111001101100101 1100 10 11 000111 1
|
||||
@@ -0,0 +1,154 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Elro HE (300 Series)
|
||||
====================
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Elro 400 Series | elro_400_switch |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-s --systemcode=systemcode control a device with this systemcode
|
||||
-u --unitcode=unitcode control a device with this unitcode
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "elro_400_switch" ],
|
||||
"id": [{
|
||||
"systemcode": 31,
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| unitcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 320 960 960 320 320 960 960 320 320 960 960 320 320 960 960 320 320 960 320 960 320 960 960 320 320 9920
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 320 960
|
||||
320 960 960 320
|
||||
320 960 960 320
|
||||
320 960 960 320
|
||||
320 960 960 320
|
||||
320 960 320 960
|
||||
320 960 960 320
|
||||
320 9920
|
||||
|
||||
If we now look at carefully at these groups you can distinguish two types of groups:
|
||||
|
||||
- ``320 960 320 960``
|
||||
- ``320 960 960 320``
|
||||
|
||||
So the first group is defined by a high 4th pulse and the second group has a low 4th pulse. In this case we say a high 4th pulse means a 0 and a low 4th pulse means a 1. We then get the following output:
|
||||
|
||||
.. code-block::console
|
||||
|
||||
00000 01111 0 1
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- SystemCode: 0 till 5
|
||||
- UnitCode: 6 till 10
|
||||
- State: 11 (inverse state)
|
||||
- Check: 12
|
||||
|
||||
.. code-block: console
|
||||
|
||||
00000 01111 0 1
|
||||
|
||||
- The ``SystemCode`` is defined as a binary number
|
||||
- The ``UnitCode`` is defined as a binary number
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
- The ``Check`` defines whether a devices needs to be turned On or Off (but is inverse)
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 31 (inversed)
|
||||
- UnitCode: 1 (inversed)
|
||||
- State: On (inverse state)
|
||||
- Check: On
|
||||
|
||||
Another example:
|
||||
|
||||
- SystemCode: 0 (inversed)
|
||||
- UnitCode: 4 (inversed)
|
||||
- State: Off (inverse state)
|
||||
- Check: Off
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
11111 11011 1 0
|
||||
@@ -0,0 +1,4 @@
|
||||
Elro HE (800 Series)
|
||||
====================
|
||||
|
||||
.. include:: _elro_800.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
Eurodomest
|
||||
==========
|
||||
|
||||
.. include:: _kaku_old.rst
|
||||
@@ -0,0 +1,178 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Impuls
|
||||
======
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Impuls | impuls |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-s --systemcode=systemcode control a device with this systemcode
|
||||
-u --programcode=programcode control a device with this programcode
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "impuls" ],
|
||||
"id": [{
|
||||
"programcode": 8,
|
||||
"unitcode": 12
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| unitcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Notes
|
||||
|
||||
The default settings for a set of Impuls switches are:
|
||||
|
||||
#. SystemCode: 11111 and ProgramCode: 10000
|
||||
#. ProgramCode: 01000
|
||||
#. ProgramCode: 00100
|
||||
|
||||
This translates into the following pilight systemcode and unitcode:
|
||||
|
||||
#. systemcode: 31, programcode: 1
|
||||
#. systemcode: 31, programcode: 2
|
||||
#. systemcode: 31, programcode: 4
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
885 295 885 295 885 295 885 295 885 295 885 295 295 885 885 295 295 885 885 295 295 885 295 885 295 885 885 295 295 885 295 885 295 885 885 295 295 885 885 295 295 885 885 295 295 885 295 885 295 9735
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
885 295 885 295
|
||||
885 295 885 295
|
||||
885 295 885 295
|
||||
295 885 885 295
|
||||
295 885 885 295
|
||||
|
||||
295 885 295 885
|
||||
295 885 885 295
|
||||
295 885 295 885
|
||||
295 885 885 295
|
||||
295 885 885 295
|
||||
|
||||
295 885 885 295
|
||||
295 885 295 885
|
||||
|
||||
295 9735
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
#. ``295 885 295 885``
|
||||
#. ``885 295 885 295``
|
||||
#. ``295 885 885 295``
|
||||
|
||||
- The first group is defined by a low 1th and low 3rd pulse pulse, hence we call it low.
|
||||
- The second group has a high 1st and 3rd pulse, hence we call it med.
|
||||
- The final group has a low 1st and high 3rd pulse, hence we call it high.
|
||||
|
||||
We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MMMHH LHLHH H L
|
||||
|
||||
All M's and H's can be translated to 1. All L's can be translated to 0.
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- Unit: 0 till 5
|
||||
- ID: 6 till 10
|
||||
- Check: 11 (inverse state)
|
||||
- State: 12 (state)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
11100 10100 1 0
|
||||
|
||||
- The ``SystemCode`` is defined as a binary number
|
||||
- The ``ProgramCode`` is defined as a binary number
|
||||
- The ``Check`` is always inverse state
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 7
|
||||
- ProgramCode: 5
|
||||
- Check: Inverse state
|
||||
- State: Off
|
||||
|
||||
Another example:
|
||||
|
||||
- Unit: 0
|
||||
- ID: 4
|
||||
- Fixed: Inverse state
|
||||
- State: On
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
00000 00100 0 1
|
||||
@@ -0,0 +1,32 @@
|
||||
Switches
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
beamish
|
||||
brennenstuhl
|
||||
byebyestandby
|
||||
clarus
|
||||
cleverwatts
|
||||
coco
|
||||
cogex
|
||||
dio
|
||||
duwi
|
||||
elro_300
|
||||
elro_400
|
||||
elro_800
|
||||
eurodomest
|
||||
quigg_1000
|
||||
quigg_7000
|
||||
impuls
|
||||
intertechno
|
||||
intertechno_old
|
||||
kaku_old
|
||||
kaku
|
||||
nexa
|
||||
rsl366
|
||||
selectremote
|
||||
silvercrest
|
||||
techlico
|
||||
x10
|
||||
@@ -0,0 +1,4 @@
|
||||
Intertechno
|
||||
===========
|
||||
|
||||
.. include:: _kaku.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
Intertechno (Old Version)
|
||||
=========================
|
||||
|
||||
.. include:: _kaku_old.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
KlikAanKlikUit
|
||||
==============
|
||||
|
||||
.. include:: _kaku.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
KlikAanKlikUit (Old Version)
|
||||
============================
|
||||
|
||||
.. include:: _kaku_old.rst
|
||||
@@ -0,0 +1,4 @@
|
||||
Nexa
|
||||
====
|
||||
|
||||
.. include:: _kaku.rst
|
||||
@@ -0,0 +1,119 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Globaltronics Quigg GT-1000
|
||||
===========================
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+-------------------------------+---------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GmbH GT-1000 RC | quigg_gt1000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GmbH GT-FSI-08 | quigg_gt1000 |
|
||||
+-------------------------------+---------------+
|
||||
| Silvercrest AAA3680-A IP20 DE | quigg_gt1000 |
|
||||
+-------------------------------+---------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t send an on signal to a device
|
||||
-f send an off signal to a device
|
||||
-i control the device with this system id (1 ... 15)
|
||||
-u control the device with this unit code (0 ... 3)
|
||||
-a control all switches in the given group
|
||||
-s control all switches in all groups
|
||||
|
||||
The next two parameters are optional:
|
||||
|
||||
-n specify the code sequence to use (0 ... 3)
|
||||
-s specify the super codes (0 ... 7)
|
||||
|
||||
If the specified sequence does not exists, sequence 0 will be used instead.
|
||||
If not specified a sequence will be selected at random.
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "quigg_gt1000" ],
|
||||
"id": [{
|
||||
"id": 15,
|
||||
"unit": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 15 |
|
||||
+------------------+-----------------+
|
||||
| unit | 0 - 3 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Examples
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p quigg_gt1000 -i [0..15] -u [0..3] [-t|-f] {-n [0..3]}
|
||||
|
||||
Switch on or off the specified switch (-u) belonging to group (-i) optionally using specified codeseq (-n)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p quigg_gt1000 -i [0..15] -a [-t|-f] {-n [0..3]}
|
||||
|
||||
Switch on or off all switches belonging to group (-i) optionally using specified codeseq (-n)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p quigg_gt1000 -s [-t|-f] {-n [0..7]}
|
||||
|
||||
Switch on or off all compatible switches optionally using specified codeseq (-n)
|
||||
|
||||
When using the Web-GUI use "unit": 4 in the config.json file for the master switch ("all": 1) and "id”: 16 with "unit”: 5 for the super code switch ("super”: 1).
|
||||
@@ -0,0 +1,232 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Globaltronics Quigg GT-7000
|
||||
===========================
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+-------------------------------+---------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+-------------------------------+---------------+
|
||||
| Aldi Quigg GT-7000 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-7000 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-8000 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-FSI-02 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-FSI-04a | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-FSI-05 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-FSI-05d | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics 7008AS | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Conrad RC-710 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
| Globaltronics GT-FSI-05 | quigg_gt7000 |
|
||||
+-------------------------------+---------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t --on send an on signal to a device
|
||||
-f --off send an off signal to a device
|
||||
-i --id=id control the device with this system id (1 ... 4095)
|
||||
-u --unit=unit control the device with this unit code (0 ... 3)
|
||||
-a --all send command to all device units belonging to this system id
|
||||
-l --learn send multiple streams so switch can learn
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "quigg_gt7000" ],
|
||||
"id": [{
|
||||
"id": 15,
|
||||
"unit": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 1 - 4095 |
|
||||
+------------------+-----------------+
|
||||
| unit | 1 - 3 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. versionchanged:: 8.0 Allow ID 0
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 4095 |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`Device Settings`
|
||||
|
||||
+--------------------+-------------+------------+-------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+--------------------+-------------+------------+-------------------------------------------------+
|
||||
| all | 0 | 1 or 0 | | If specified this will trigger the "group" |
|
||||
| | | | | function of the advanced remotes and trigger |
|
||||
| | | | | all registered devices for the given unitcode |
|
||||
+--------------------+-------------+------------+-------------------------------------------------+
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
The quigg_switch protocol sends 42 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
700 1400 700 700 1400 1400 700 1400 700 700 1400 700 1400 700 1400 700 1400 700 1400 700 1400 700 1400 700 1400 700 1400 700 1400 700 1400 1400 700 700 1400 700 1400 700 1400 1400 700 81000
|
||||
|
||||
The first pulse is the ``header`` and the last pulse is the ``footer``. These are meant to identify the pulses as genuine. We don't use them for further processing. The next step is to transform this output into 20 groups of 2 pulses (and thereby dropping the ``header`` and ``footer`` pulse).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
1400 700
|
||||
700 1400
|
||||
1400 700
|
||||
1400 700
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
1400 700
|
||||
700 1400
|
||||
700 1400
|
||||
700 1400
|
||||
1400 700
|
||||
|
||||
If we now analyse these groups we can distinguish two types of groups:
|
||||
|
||||
#. ``700 1400``
|
||||
#. ``1400 700``
|
||||
|
||||
So the first group is defined by a short 1st and 2nd long and the second group by a long 1st and 2nd short pulse. So we take either of these two pulses to define a logical 0 or 1. In our case a long 1st pulse means a 1 and a short 1st pulse means a 0. We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
10110000000000010001
|
||||
|
||||
We can group the sequence of bits into the following groups A to H:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
AAAAAAAAAAAA BB C D E F G H
|
||||
101100000000 00 0 1 0 0 0 1
|
||||
|
||||
Each of the groups of bits (A to H) has a specific meaning:
|
||||
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| **Group** | **Bit #** | **Config name** | **Range** | **Description** |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| A | 1 to 12 | id | 1 to 4095 | SystemCode |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| B | 13, 14 | unit | 1 to 3 | UnitCode |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| C | 15 | id | 1 | Command to all devices |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| D | 16 | all | 0,1 | Switch ON or OFF |
|
||||
+ + + + + Dimmer DOWN or UP +
|
||||
| | | | | |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| E | 17 | dimm | 0,1 | switch, dimmer mode |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| F | 18 | | 0 | always zero |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| G | 19 | | 0,1 | internal, handled by driver |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
| H | 20 | | 0,1 | even parity bit |
|
||||
+-----------+-----------+-----------------+------------+-----------------------------+
|
||||
|
||||
So this code represents:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
"id": 2816,
|
||||
"unit": 1
|
||||
"state": Off
|
||||
|
||||
.. rubric:: Examples
|
||||
|
||||
CLI command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p quigg_gt7000 -i 2816 -u 1 -f
|
||||
|
||||
.. rubric:: Comment
|
||||
|
||||
Extracting the system code id from an existing Globaltronics GT-7000 remote control device either requires a special version of the BPF, or you need to bypass the BPF.
|
||||
|
||||
After insertion of batteries the GT-7000 defaults to system code id #2816. Pressing the button "Neuer Code" located in the battery compartment, will trigger the generation of a new system code id. These are generated in sequential order, for the current quigg_switch protocol driver the id's are:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
2816, 1792, 3840, 128, 2176, 1152, 3200, 640, 2688, 1664, 3712, 384, 2432, 1408, 3456, 896, 2944, 1920, 3968, ....
|
||||
|
||||
To let the device learn a new value, press the learning mode button on the switch and send the appropriate CLI command with pilight-send (configure a switch to be unit #2 and system code id #29):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p quigg_gt7000 -i 29 -u 2 -l -t
|
||||
|
||||
The device learns that it has now system code id #29 and that it is unit #2 and enters ON mode (e.q. the switch is turned on). If the switch is not connected to power for an extended period of time, it will loose its configuration and reset to the default id #2816 unit #0. QUIGG_GT7000 compatible switches with integrated dimmer require that you configure the quigg_screen protocol in addition to the quigg_gt7000 protocol. On the webgui you will get a separate button to dimm the device up and down.
|
||||
|
||||
Subsequently the switch unit #1 with system code id #2816 is turned off.
|
||||
@@ -0,0 +1,4 @@
|
||||
RSL366
|
||||
======
|
||||
|
||||
.. include:: _rsl366.rst
|
||||
@@ -0,0 +1,138 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
SelectRemote
|
||||
============
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| SelectRemote | selectremote |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-i --id=id control a device with this id
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "selectremote" ],
|
||||
"id": [{
|
||||
"id": 4
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 7 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
396 1188 396 1188 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 1188 396 13464
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 390 1170
|
||||
|
||||
390 1170 390 1170
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
390 1170 1170 390
|
||||
|
||||
390 1170 1170 390
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
- ``396 1188 396 1188``
|
||||
- ``1188 396 1188 396``
|
||||
|
||||
#. The first group is defined by a low 1th and low 3rd pulse pulse, hence we call it low.
|
||||
#. The second group has a high 1st and 3rd pulse, hence we call it high.
|
||||
|
||||
We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
011100000000
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- ID: 1 till 3
|
||||
- State: 8 (state)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
x 111 xxxx 0 xxx
|
||||
|
||||
- The ``ID`` is defined as a binary number. To calculate the ID we subtract the binary represented decimal from 7. In this case the binary ``111`` is equal to the decimal 7. That means this code represents ID 0.
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 0
|
||||
- State: Off
|
||||
@@ -0,0 +1,146 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
SilverCrest
|
||||
===========
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| Silvercrest | silvercrest |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
-u --unit=unit control a device with this unit code
|
||||
-i --id=id control a device with this id
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "silvercrest" ],
|
||||
"id": [{
|
||||
"systemcode": 22,
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| systemcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| unitcode | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
312 936 936 312 312 936 312 936 312 936 312 936 312 936 936 312 312 936 312 936 312 936 936 312 312 936 312 936 312 936 936 312 312 936 936 312 312 936 936 312 312 936 936 312 312 936 312 936 312 10608
|
||||
|
||||
It has no ``header`` and the last 2 pulses are the ``footer``. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don't use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the ``footer`` pulses).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
312 936 936 312
|
||||
312 936 312 936
|
||||
312 936 312 936
|
||||
312 936 936 312
|
||||
312 936 312 936
|
||||
|
||||
312 936 936 312
|
||||
312 936 312 936
|
||||
312 936 936 312
|
||||
312 936 936 312
|
||||
312 936 936 312
|
||||
|
||||
312 936 936 312
|
||||
312 936 312 936
|
||||
|
||||
312 10608
|
||||
|
||||
If we now look at carefully at these groups you can distinguish three types of groups:
|
||||
|
||||
- ``312 936 936 312``
|
||||
- ``312 936 312 936``
|
||||
|
||||
So the first group is defined by a high 3th pulse and the second group has a low 3rd pulse. In this case we say a high 3rd pulse means a 0 and a high 3rd pulse means a 1. We then get the following output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
01101 01000 01
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- Unit: 0 till 5 (inversed)
|
||||
- ID: 6 till 10 (inversed)
|
||||
- Check: 11 (inverse of state)
|
||||
- State: 12 (inversed)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
10110 00010 0 0
|
||||
|
||||
- The ``Unit`` is defined as a binary number
|
||||
- The ``ID`` is defined as a binary number
|
||||
- The ``Check`` is always the inverse of the state
|
||||
- The ``State`` defines whether a devices needs to be turned On or Off
|
||||
|
||||
So this code represents:
|
||||
|
||||
- Unit: 22
|
||||
- ID: 2
|
||||
- Fixed: Off
|
||||
- State: On
|
||||
@@ -0,0 +1,190 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
TechLiCo
|
||||
========
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+----------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+----------------------+------------------+
|
||||
| TechLiCo | techlico_switch |
|
||||
+----------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-t --on send a toggle state signal to the device
|
||||
-f --off send a toggle state signal to the device
|
||||
-i --id=id control the device with this system id (1 ... 65535)
|
||||
-u --unit=unit control the device with this unit code (1 ... 4)
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "techlico_switch" ],
|
||||
"id": [{
|
||||
"id": 4935,
|
||||
"unit": 1
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 1 - 65535 |
|
||||
+------------------+-----------------+
|
||||
| unit | 1 - 4 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
The techlico_switch protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
208 624 208 832 208 624 624 208 208 624 208 624 624 208 624 208 208 832 624 208 208 832 208 624 208 832 624 208 624 208 624 208 208 832 208 624 208 832 208 832 208 624 208 624 624 208 624 208 208 7072
|
||||
|
||||
The last two pulses are the ``footer``. These are meant to identify the pulses as genuine. We don't use them for further processing. The next step is to transform this output into 24 groups of 2 pulses (and thereby dropping the ``footer`` pulse).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
208 624
|
||||
208 832
|
||||
208 624
|
||||
624 208
|
||||
208 624
|
||||
208 624
|
||||
624 208
|
||||
624 208
|
||||
208 832
|
||||
624 208
|
||||
208 832
|
||||
208 624
|
||||
208 832
|
||||
624 208
|
||||
624 208
|
||||
624 208
|
||||
208 832
|
||||
208 624
|
||||
208 832
|
||||
208 832
|
||||
208 624
|
||||
208 624
|
||||
624 208
|
||||
624 208
|
||||
208 7072
|
||||
|
||||
If we now analyse these groups we can distinguish two types of groups:
|
||||
|
||||
- ``208 624``
|
||||
- ``624 208``
|
||||
|
||||
The 1st group is defined by a short-long sequence (logical 0) The 2nd group is defined by a long-short sequence (logical 1):
|
||||
|
||||
Binary representation:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
000100110100011100000011
|
||||
|
||||
We can group the sequence of bits into the following groups A and B:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
AAAAAAAAAAAAAAAA BBBB BBBB
|
||||
0001001101000111 0000 0011
|
||||
|
||||
Each of the groups of bits (A and B) has a specific meaning:
|
||||
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
| **Group** | **Bit #** | **Config name** | **Range** | **Description** |
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
| A | 1 to 16 | id: | 1 to 65535 | SystemCode id |
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
| B | 17 to 24 | unit: | 1 to 4 | ButtonCode unit |
|
||||
+-----------+-----------+-----------------+------------+-----------------+
|
||||
|
||||
The protocol driver creates the binary presentation as required by the device
|
||||
|
||||
+-----------+------------------------------------+
|
||||
| 0000 0011 | -u 1 Button A Toogle device status |
|
||||
+-----------+------------------------------------+
|
||||
| 1100 0000 | -u 2 Button B Toogle device status |
|
||||
+-----------+------------------------------------+
|
||||
| 0000 1111 | -u 3 Button C Toogle device status |
|
||||
+-----------+------------------------------------+
|
||||
| 0000 1100 | -u 4 Button D Toogle device status |
|
||||
+-----------+------------------------------------+
|
||||
|
||||
So this code represents:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
{
|
||||
"code": {
|
||||
"id": 4935,
|
||||
"unit": 1
|
||||
},
|
||||
"origin": "receiver",
|
||||
"protocol": "techlico_switch",
|
||||
"uuid": "0000-00-00-00-000000",
|
||||
"repeats": 2
|
||||
}
|
||||
|
||||
.. rubric:: Examples
|
||||
|
||||
CLI command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p techlico_switch -i 4935 -u 1
|
||||
|
||||
.. rubric:: Known Limitations
|
||||
|
||||
As the device will not report its state, and the same Button on the original remote control toggles the state of the device, the GUI may show the wrong status of the device.
|
||||
@@ -0,0 +1,79 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
X10
|
||||
===
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |yes| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
|
||||
-i --id=id control a device with this id
|
||||
-t --on send an on signal
|
||||
-f --off send an off signal
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"dimmer": {
|
||||
"protocol": [ "x10" ],
|
||||
"id": [{
|
||||
"id": "A2"
|
||||
}],
|
||||
"state": "off"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"Lamp": {
|
||||
"name": "TV Backlit",
|
||||
"group": [ "Living" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | A0 - P16 |
|
||||
+------------------+-----------------+
|
||||
| state | on / off |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
:underline:`GUI Settings`
|
||||
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| **Setting** | **Default** | **Format** | **Description** |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| readonly | 1 | 1 or 0 | Disable controlling this device from the GUIs |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
| confirm | 1 | 1 or 0 | Ask for confirmation when switching device |
|
||||
+----------------------+-------------+------------+-----------------------------------------------------------+
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
A good description on this protocol can be found in this document `x10 <http://wiki.pilight.org/X10_RF_Receiver.pdf>`_
|
||||
Reference in new issue
Block a user