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,142 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
Elro HE Contact
|
||||
===============
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |no| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+------------------+------------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+------------------+------------------+
|
||||
| Elro 800 Series | elro_800_contact |
|
||||
+------------------+------------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"contact": {
|
||||
"protocol": [ "elro_800_contact" ],
|
||||
"id": [{
|
||||
"systemcode": 31,
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "closed"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| code | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | opened / closed |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 148 pulses like this
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
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:: guess
|
||||
|
||||
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 1 and a low 4th pulse means a 0. We then get the following output:
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
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)
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
11111 10000 1 0
|
||||
|
||||
- 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: Opened
|
||||
- Check: Opened (inverse state)
|
||||
|
||||
Another example:
|
||||
|
||||
- SystemCode: 0
|
||||
- UnitCode: 4
|
||||
- State: Closed
|
||||
- Check: Closed (inverse state)
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
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 less when arctech_old commands are sent.
|
||||
@@ -0,0 +1,129 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
EV1527 Contact
|
||||
==============
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |no| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+------------------+--------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+------------------+--------------+
|
||||
| EV1527 | ev1527 |
|
||||
+------------------+--------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"contact": {
|
||||
"protocol": [ "ev1527" ],
|
||||
"id": [{
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "closed"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| code | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | opened / closed |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
253 759 759 253 759 253 253 759 253 759 253 759 253 759 253 759 253 759 759 253 253 759 253 759 759 253 759 253 759 253 253 759 253 759 759 253 253 759 759 253 253 759 253 759 759 253 253 8602
|
||||
|
||||
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).
|
||||
|
||||
The first six pulses are the address bits, followed by upto another 6 Address/Data Bits. Address Bits can have three states: 0, 1, F (tri-state). Data Bits have only two states: 0 or 1.
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
253 759
|
||||
759 253
|
||||
759 253
|
||||
253 759
|
||||
253 759
|
||||
253 759
|
||||
253 759
|
||||
253 759
|
||||
253 759
|
||||
759 253
|
||||
253 759
|
||||
253 759
|
||||
759 253
|
||||
759 253
|
||||
759 253
|
||||
253 759
|
||||
253 759
|
||||
759 253
|
||||
253 759
|
||||
759 253
|
||||
253 759
|
||||
253 759
|
||||
759 253
|
||||
|
||||
If we now take a careful look at these groups you can distinguish three types of groups:
|
||||
|
||||
#. ``253 759``
|
||||
#. ``759 253``
|
||||
|
||||
So the first group is defined by a high second pulse, the second group has a low second pulse. We then get the following output:
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
10001111110110001101 0110
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- UnitCode: 0 till 20
|
||||
- State: 20
|
||||
|
||||
Bits 21-24 are not used.
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
10001111110110001101 0
|
||||
|
||||
- The ``UnitCode`` is defined as a binary number
|
||||
- The ``State`` defines whether a sensor state is opened or closed
|
||||
|
||||
So this code represents:
|
||||
|
||||
- UnitCode: 589197
|
||||
- State: opened
|
||||
@@ -0,0 +1,10 @@
|
||||
Contact
|
||||
=======
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
kaku
|
||||
elro
|
||||
sc2262
|
||||
ev1527
|
||||
@@ -0,0 +1,147 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
KlikAanKlikUit
|
||||
==============
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |no| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+------------------+--------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+------------------+--------------+
|
||||
| KlikAanKlikUit | kaku_contact |
|
||||
+------------------+--------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"contact": {
|
||||
"protocol": [ "kaku_contact" ],
|
||||
"id": [{
|
||||
"id": 100,
|
||||
"unit": 0
|
||||
}],
|
||||
"state": "closed"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 67108863 |
|
||||
+------------------+-----------------+
|
||||
| code | 0 - 15 |
|
||||
+------------------+-----------------+
|
||||
| state | opened / closed |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 148 pulses like this
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
294 2646 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 1176 294 294 294 1176 294 294 294 1176 294 294 294 294 294 1176 294 1176 294 294 294 1176 294 294 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 1176 294 294 294 294 294 1176 294 294 294 1176 294 1176 294 294 294 294 294 1176 294 1176 294 294 294 1176 294 294 294 1176 294 294 294 9996
|
||||
|
||||
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 36 groups of 4 pulses (and thereby dropping the ``header`` and ``footer`` pulses).
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 1176 294 294
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 294 294 1176
|
||||
294 1176 294 294
|
||||
294 1176 294 294
|
||||
294 1176 294 294
|
||||
|
||||
If we now look at carefully at these groups you can distinguish two types of groups:
|
||||
|
||||
#. 294 1176 294 294
|
||||
#. 294 294 294 1176
|
||||
|
||||
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:: guess
|
||||
|
||||
001010111011001001000100100110010111
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- ID: 0 till 25
|
||||
- All: 26
|
||||
- State: 27
|
||||
- Unit: 28 till 31
|
||||
- Unknown: 32 till 35
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
00101011101100100100010010 0 1 1001 0111
|
||||
|
||||
- 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 is opened or closed
|
||||
- The ``Unit`` is also defined as a binary number
|
||||
- The ``Unknown`` is also defined as a binary number(bits are missing in the closed state)
|
||||
|
||||
So this code represents:
|
||||
|
||||
- ID: 11454738
|
||||
- All: Single
|
||||
- State: Opened
|
||||
- Unit: 9
|
||||
@@ -0,0 +1,158 @@
|
||||
.. |yes| image:: ../../../images/yes.png
|
||||
.. |no| image:: ../../../images/no.png
|
||||
|
||||
.. role:: underline
|
||||
:class: underline
|
||||
|
||||
SC2262 Contact
|
||||
==============
|
||||
|
||||
+------------------+-------------+
|
||||
| **Feature** | **Support** |
|
||||
+------------------+-------------+
|
||||
| Sending | |no| |
|
||||
+------------------+-------------+
|
||||
| Receiving | |yes| |
|
||||
+------------------+-------------+
|
||||
| Config | |yes| |
|
||||
+------------------+-------------+
|
||||
|
||||
.. rubric:: Supported Brands
|
||||
|
||||
+------------------+--------------+
|
||||
| **Brand** | **Protocol** |
|
||||
+------------------+--------------+
|
||||
| SC2262 | sc2262 |
|
||||
+------------------+--------------+
|
||||
|
||||
.. rubric:: Sender Arguments
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Config
|
||||
|
||||
.. code-block:: json
|
||||
:linenos:
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"contact": {
|
||||
"protocol": [ "sc2262" ],
|
||||
"id": [{
|
||||
"systemcode": 31,
|
||||
"unitcode": 0
|
||||
}],
|
||||
"state": "closed"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+------------------+-----------------+
|
||||
| **Option** | **Value** |
|
||||
+------------------+-----------------+
|
||||
| id | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| code | 0 - 31 |
|
||||
+------------------+-----------------+
|
||||
| state | opened / closed |
|
||||
+------------------+-----------------+
|
||||
|
||||
.. rubric:: Optional Settings
|
||||
|
||||
*None*
|
||||
|
||||
.. rubric:: Protocol
|
||||
|
||||
This protocol sends 50 pulses like this
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1728 1296 432 432 1296 432 1296 432 1296 1296 432 1296 432 1296 432 1296 432 1296 432 432 13392
|
||||
|
||||
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).
|
||||
|
||||
The first six pulses are the address bits, followed by upto another 6 Address/Data Bits. Address Bits can have three states: 0, 1, F (tri-state). Data Bits have only two states: 0 or 1.
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
432 1296 1296 432
|
||||
432 1296 1296 432
|
||||
432 1296 1296 432
|
||||
432 1296 1296 432
|
||||
432 1296 1296 432
|
||||
432 1296 1296 432
|
||||
432 1296 1296 432
|
||||
432 1728 1296 432
|
||||
432 1296 432 1296
|
||||
432 1296 1296 432
|
||||
1296 432 1296 432
|
||||
1296 432 1296 432
|
||||
432 14688
|
||||
|
||||
If we now take a careful look at these groups you can distinguish three types of groups:
|
||||
|
||||
#. ``432 1296 432 1296`` - Logical Zero
|
||||
#. ``1296 432 1296 432`` - Logical One
|
||||
#. ``432 1296 1296 432`` - Logical Tri-State
|
||||
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
FFFFFF FF0F11
|
||||
|
||||
Each (group) of numbers has a specific meaning:
|
||||
|
||||
- SystemCode: 0 till 5
|
||||
- UnitCode: 6 till 10
|
||||
- State: 11
|
||||
|
||||
Depending on the device the Unit Code my be shorter in order to provide more bits for state / data value conditions.
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
FFFFFF FF0F11
|
||||
|
||||
- The SystemCode is defined as a binary number
|
||||
- The UnitCode is defined as a binary number
|
||||
- The State defines whether a devices state is considered to be opened or closed
|
||||
|
||||
So this code represents:
|
||||
|
||||
- SystemCode: 0
|
||||
- UnitCode: 2
|
||||
- State: Closed
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"devices": {
|
||||
"window": {
|
||||
"protocol": [ "sc2262" ],
|
||||
"id": [{
|
||||
"systemcode": 0,
|
||||
"unitcode": 8
|
||||
}],
|
||||
"state": "closed"
|
||||
}
|
||||
},
|
||||
"gui": {
|
||||
"window": {
|
||||
"name": "Bedroom",
|
||||
"group": [ "Windows" ],
|
||||
"media": [ "all" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
This code sets the state to opened:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p raw -c "432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1728 1296 432 432 1296 432 1296 432 1296 1296 432 1296 432 1296 432 1296 432 1296 432 432 14680"
|
||||
|
||||
This code sets the state to closed:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pilight-send -p raw -c "432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1296 1296 432 432 1728 1296 432 432 1296 432 1296 432 1296 1296 432 1296 432 1296 432 432 1296 432 1296 432 14681"
|
||||
Reference in new issue
Block a user