From 5a83a0dcefbf48598ec7e799838dd0adebb0dc8e Mon Sep 17 00:00:00 2001 From: Alexander Leisentritt Date: Thu, 7 Nov 2019 22:10:13 +0100 Subject: [PATCH] added docs for ruuvitag (#383) * added docs for ruuvitag * updated for RAWv2 protocol * typo * punctuation Co-Authored-By: Otto Winter * added acceleration * typo Co-Authored-By: Otto Winter --- components/sensor/images/ruuvitag-full.jpg | Bin 0 -> 34794 bytes components/sensor/images/ruuvitag-ui.jpg | Bin 0 -> 27270 bytes components/sensor/ruuvitag.rst | 187 +++++++++++++++++++++ images/ruuvitag.jpg | Bin 0 -> 7564 bytes index.rst | 1 + 5 files changed, 188 insertions(+) create mode 100644 components/sensor/images/ruuvitag-full.jpg create mode 100644 components/sensor/images/ruuvitag-ui.jpg create mode 100644 components/sensor/ruuvitag.rst create mode 100644 images/ruuvitag.jpg diff --git a/components/sensor/images/ruuvitag-full.jpg b/components/sensor/images/ruuvitag-full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..756fb9e8a1f341417ba4c67cd14e84d6833d99c7 GIT binary patch literal 34794 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 H{~G-pm^cXW literal 0 HcmV?d00001 diff --git a/components/sensor/ruuvitag.rst b/components/sensor/ruuvitag.rst new file mode 100644 index 000000000..792d38f61 --- /dev/null +++ b/components/sensor/ruuvitag.rst @@ -0,0 +1,187 @@ +RuuviTag Open Source BLE Sensor +=============================== + +.. seo:: + :description: Instructions for setting up RuuviTag bluetooth-based sensors in ESPHome. + :image: ruuvitag.jpg + :keywords: Ruuvi, RuuviTag, BLE, Bluetooth + +The ``ruuvitag`` sensor platform lets you track the output of RuuviTag +Bluetooth Low Energy devices using the :doc:`/components/esp32_ble_tracker`. +This component will track the temperature, humidity, acceleration and battery +voltage of a RuuviTag device with RAWv1 protocol every time the sensor sends +out a BLE broadcast. RAWv2 protocol is supported too. Then tx power, +movement count and measurement sequence number are also tracked. + +.. figure:: images/ruuvitag-full.jpg + :align: center + :width: 80.0% + + RuuviTagSensor over BLE. + +.. figure:: images/ruuvitag-ui.jpg + :align: center + :width: 80.0% + +.. code-block:: yaml + + # Example configuration entry + esp32_ble_tracker: + + sensor: + - platform: ruuvitag + mac_address: FF:56:D3:2F:7D:E8 + humidity: + name: "RuuviTag Humidity" + temperature: + name: "RuuviTag Temperature" + pressure: + name: "RuuviTag Pressure" + acceleration: + name: "RuuviTag Acceleration" + acceleration_x: + name: "RuuviTag Acceleration X" + acceleration_y: + name: "RuuviTag Acceleration Y" + acceleration_z: + name: "RuuviTag Acceleration Z" + battery_voltage: + name: "RuuviTag Battery Voltage" + tx_power: + name: "RuuviTag TX Power" + movement_counter: + name: "RuuviTag Movement Counter" + measurement_sequence_number: + name: "RuuviTag Measurement Sequence Number" + +Configuration variables: +------------------------ + +- **mac_address** (**Required**, MAC Address): The MAC address of the RuuviTag + device. +- **humidity** (*Optional*): The information for the humidity sensor + + - **name** (**Required**, string): The name for the humidity sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **temperature** (*Optional*): The information for the temperature sensor. + + - **name** (**Required**, string): The name for the temperature sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **pressure** (*Optional*): The information for the pressure sensor. + + - **name** (**Required**, string): The name for the pressure sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **acceleration** (*Optional*): The information for the acceleration + sensor. + + - **name** (**Required**, string): The name for the acceleration sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **acceleration_x** (*Optional*): The information for the acceleration x + sensor. + + - **name** (**Required**, string): The name for the acceleration x sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **acceleration_y** (*Optional*): The information for the acceleration y + sensor. + + - **name** (**Required**, string): The name for the acceleration y sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **acceleration_z** (*Optional*): The information for the acceleration z + sensor. + + - **name** (**Required**, string): The name for the acceleration z sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **battery_voltage** (*Optional*): The information for the battery voltage + sensor. + + - **name** (**Required**, string): The name for the battery voltage sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + +- **tx_power** (*Optional*): The information for the transmit power + sensor + + - **name** (**Required**, string): The name for the transmit power sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + - Only available if RAWv2 protocol is used. + +- **movement_count** (*Optional*): The information for the movement count + sensor + + - **name** (**Required**, string): The name for the movement count sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + - Only available if RAWv2 protocol is used. + +- **measurement_sequence_number** (*Optional*): The information for the + measurment sequence number sensor + + - **name** (**Required**, string): The name for the measurment sequence + number sensor. + - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use + in lambdas. + - All other options from :ref:`Sensor `. + - Only available if RAWv2 protocol is used. + +Setting Up Devices +------------------ + +To set up RuuviTag devices you first need to find their MAC Address so that +ESPHome can identify them. So first, create a simple configuration without any +``ruuvitag`` entries like so: + +.. code-block:: yaml + + esp32_ble_tracker: + +After uploading the ESP32 will immediately try to scan for BLE devices. +When it detects these sensors, it will automatically parse the BLE message +print a message like this one: + +.. code:: + + Got ruuvi RuuviTag (FF:56:D3:2F:7D:E8): Humidity: 67.5%, Temperature: 22.97°C, + Pressure: 977.09hPa, Acceleration X: 0.005G, Acceleration Y: 0.017G, Acceleration Z: 1.066G, + Battery Voltage: 3.223V + +Then just copy the address (``FF:56:D3:2F:7D:E8``) into a new +``sensor.ruuvitag`` platform entry like in the configuration example at the top. + +.. note:: + + The ESPHome Ruuvi BLE integration listens passively to packets the RuuviTag device sends by itself. + ESPHome therefore has no impact on the battery life of the device. + +See Also +-------- + +- :doc:`/components/esp32_ble_tracker` +- :doc:`/components/sensor/index` +- :apiref:`ruuvitag/ruuvitag.h` +- `Ruuvi `__ +- :ghedit:`Edit` diff --git a/images/ruuvitag.jpg b/images/ruuvitag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6fa38b2a7dc69ec74233540dfb2dbcb198bba03 GIT binary patch literal 7564 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