Add dsmr component (#1364)

* dsmr page

* add sensor list and more info

* fix wrong image in seo

* add image

* fix text sensor link

* spelling in components/sensor/dsmr.rst
This commit is contained in:
Guillermo Ruffino 2021-08-10 09:32:40 -03:00 committed by GitHub
parent 8e2ded17c7
commit ba899470f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 239 additions and 0 deletions

237
components/sensor/dsmr.rst Normal file
View File

@ -0,0 +1,237 @@
DSMR Component
==============
.. seo::
:description: Instructions for setting up DSMR Meter component in ESPHome.
:image: dsmr.png
Component/Hub
*************
The DSMR component connects to Dutch Smart Meters which comply to DSMR (Dutch Smart Meter
Requirements), also known as Slimme meter or P1 port.
This integration supports plain non encrypted telegrams and also encrypted as used in Luxembourg.
In case your equipment has encryption you must get a 32 character long encryption key from your energy company.
This component is passive, it does not transmit any data to your equipment, the equipment always transmits
data which this component decodes and updates the configured sensors at the pace the data is received.
- For official information about DSMR refer to: `DSMR Document <https://www.netbeheernederland.nl/dossiers/slimme-meter-15>`__
- For official information about the P1 port refer to: `P1 Companion Standard <https://www.netbeheernederland.nl/_upload/Files/Slimme_meter_15_a727fce1f1.pdf>`__
.. code-block:: yaml
# Example configuration entry
dsmr:
decryption_key: !secret decryption_key
sensor:
- platform: dsmr
energy_delivered_tariff1:
name: Energy Consumed Tariff 1
text_sensor:
- platform: dsmr
identification:
name: "DSMR Identification"
p1_version:
name: "DSMR Version"
Configuration variables:
- **decryption_key** (*Optional*, string, :ref:`templatable <config-templatable>`, 32 characters, case insensitive): The key to decrypt the
telegrams. Used in Lux only.
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the DSMR if you have multiple components.
Sensor
******
.. note:: Not all sensors are available on all devices.
Country specific sensors are listed last.
Configuration variables:
- **energy_delivered_tariff1** (*Optional*): Energy Consumed Tariff 1.
- **name** (**Required**, string): The name for the energy_delivered_tariff1 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **energy_delivered_tariff2** (*Optional*): Energy Consumed Tariff 2.
- **name** (**Required**, string): The name for the energy_delivered_tariff2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **energy_returned_tariff1** (*Optional*): Energy Produced Tariff 1.
- **name** (**Required**, string): The name for the energy_returned_tariff1 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **energy_returned_tariff2** (*Optional*): Energy Produced Tariff 2.
- **name** (**Required**, string): The name for the energy_returned_tariff2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_delivered** (*Optional*): Power Consumed.
- **name** (**Required**, string): The name for the power_delivered sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_returned** (*Optional*): Power Produced.
- **name** (**Required**, string): The name for the power_returned sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **electricity_failures** (*Optional*): Electricity Failures.
- **name** (**Required**, string): The name for the electricity_failures sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **electricity_long_failures** (*Optional*): Long Electricity Failures.
- **name** (**Required**, string): The name for the electricity_long_failures sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **voltage_l1** (*Optional*): Voltage Phase 1.
- **name** (**Required**, string): The name for the voltage_l1 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **voltage_l2** (*Optional*): Voltage Phase 2.
- **name** (**Required**, string): The name for the voltage_l2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **voltage_l3** (*Optional*): Voltage Phase 3.
- **name** (**Required**, string): The name for the voltage_l3 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **current_l1** (*Optional*): Current Phase 1.
- **name** (**Required**, string): The name for the current_l1 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **current_l2** (*Optional*): Current Phase 2.
- **name** (**Required**, string): The name for the current_l2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **current_l3** (*Optional*): Current Phase 3.
- **name** (**Required**, string): The name for the current_l3 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_delivered_l1** (*Optional*): Power Consumed Phase 1.
- **name** (**Required**, string): The name for the power_delivered_l1 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_delivered_l2** (*Optional*): Power Consumed Phase 2.
- **name** (**Required**, string): The name for the power_delivered_l2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_delivered_l3** (*Optional*): Power Consumed Phase 3.
- **name** (**Required**, string): The name for the power_delivered_l3 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_returned_l1** (*Optional*): Power Produced Phase 1.
- **name** (**Required**, string): The name for the power_returned_l1 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_returned_l2** (*Optional*): Power Produced Phase 2.
- **name** (**Required**, string): The name for the power_returned_l2 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **power_returned_l3** (*Optional*): Power Produced Phase 3.
- **name** (**Required**, string): The name for the power_returned_l3 sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **gas_delivered** (*Optional*): Gas Consumed.
- **name** (**Required**, string): The name for the gas_delivered sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
Belgium
- **gas_delivered_be** (*Optional*): Gas Consumed Belgium.
- **name** (**Required**, string): The name for the gas_delivered_be sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
Luxembourg
- **energy_delivered_lux** (*Optional*): Energy Consumed Luxembourg
- **name** (**Required**, string): The name for the energy_delivered_lux sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
- **energy_returned_lux** (*Optional*): Energy Produced Luxembourg
- **name** (**Required**, string): The name for the energy_returned_lux sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
Text Sensor
***********
Configuration variables:
- **identification** (*Optional*): DSMR Identification
- **name** (**Required**, string): The name for the identification text sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Text Sensor <config-text_sensor>`.
- **p1_version** (*Optional*): DSMR Version
- **name** (**Required**, string): The name for the p1_version text sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Text Sensor <config-text_sensor>`.
Belgium
- **p1_version_be** (*Optional*): DSMR Version Beligum
- **name** (**Required**, string): The name for the p1_version_be text sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Text Sensor <config-text_sensor>`.
See Also
--------
- :apiref:`dsmr/dsmr.h`
- :ghedit:`Edit`

1
images/dsmr.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="183.333" height="60"><path d="M19.333.667h145C174.643.667 183 9.024 183 19.333V40c0 10.31-8.358 18.667-18.667 18.667h-145C9.024 58.667.667 50.309.667 40V19.333C.667 9.024 9.024.667 19.333.667z"/><path d="M19.333.667h144C173.643.667 182 9.024 182 19.333V40c0 10.31-8.358 18.667-18.667 18.667h-144C9.024 58.667.667 50.309.667 40V19.333C.667 9.024 9.024.667 19.333.667z" stroke-miterlimit="10" fill="none" stroke="#000" stroke-width="1.333" stroke-linecap="round" stroke-linejoin="round"/><g aria-label="DSMR" style="line-height:1.25;-inkscape-font-specification:'Montserrat, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start" font-weight="800" font-size="47.967" font-family="Montserrat" letter-spacing="0" word-spacing="0" fill="#fff" stroke-width="1.199"><path d="M17.133 13.112H33.01q5.517 0 9.786 2.062 4.269 2.063 6.62 5.852 2.35 3.79 2.35 8.874 0 5.085-2.35 8.874-2.351 3.79-6.62 5.852-4.27 2.063-9.786 2.063H17.133zM32.627 39.11q4.317 0 6.907-2.447 2.638-2.446 2.638-6.763t-2.638-6.763q-2.59-2.447-6.907-2.447H26.63v18.42zM68.562 47.36q-4.077 0-7.914-1.007-3.838-1.007-6.236-2.686l3.118-7.004q2.254 1.487 5.228 2.399 2.974.911 5.852.911 5.469 0 5.469-2.734 0-1.439-1.583-2.11-1.535-.72-4.989-1.487-3.79-.816-6.332-1.727-2.542-.96-4.365-3.022-1.822-2.063-1.822-5.564 0-3.07 1.679-5.517 1.678-2.494 4.988-3.933 3.358-1.439 8.203-1.439 3.31 0 6.523.767 3.214.72 5.66 2.159l-2.926 7.051q-4.797-2.59-9.305-2.59-2.83 0-4.126.863-1.295.816-1.295 2.159t1.535 2.015q1.535.671 4.94 1.39 3.838.816 6.333 1.775 2.542.912 4.365 2.974 1.87 2.015 1.87 5.517 0 3.021-1.679 5.468-1.678 2.446-5.036 3.933-3.358 1.44-8.155 1.44zM118.088 46.689l-.096-17.796-8.634 14.486h-4.221L96.55 29.372V46.69h-8.778V13.112h7.818l11.8 19.378 11.512-19.378h7.819l.096 33.577zM148.17 37.767h-5.181v8.922h-9.498V13.112h15.35q4.557 0 7.914 1.535 3.358 1.486 5.18 4.317 1.824 2.782 1.824 6.571 0 3.646-1.727 6.38-1.68 2.686-4.845 4.22l7.243 10.554h-10.169zm5.995-12.232q0-2.35-1.487-3.645-1.487-1.296-4.413-1.296h-5.276v9.834h5.276q2.926 0 4.413-1.247 1.487-1.296 1.487-3.646z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -282,6 +282,7 @@ Electricity
CSE7766, components/sensor/cse7766, cse7766.svg, Voltage & Current & Power
CS5460A, components/sensor/cs5460a, cs5460a.png, Voltage & Current & Power
CT Clamp, components/sensor/ct_clamp, ct_clamp.jpg, AC current
DSMR, components/sensor/dsmr, dsmr.svg, Electrical counter
HLW8012, components/sensor/hlw8012, hlw8012.svg, Voltage & Current & Power
INA219, components/sensor/ina219, ina219.jpg, DC current
INA226, components/sensor/ina226, ina226.jpg, DC current & Power