Table of contents Ruuvi Developer Documentation Ruuvi Hardware RuuviTag B RuuviTag Pro Ruuvi Gateway Ruuvi DevShield Ruuvi Connector Kit TMP 117 External Sensor Ruuvi Connector System Introduction Expansion boards Cables Connectors Ruuvi Sensor Firmware 1.2.12 2.5.9 3.X 3.x Sensors 3.x Heartbeat Device Firmware Update (DFU) Ruuvi Gateway Firmware GW Getting Started GW Web-UI Greeting window Internet connection settings Connection via Wi-Fi Connection via Ethernet Software update Automatic configuration download Automatic updates Access Settings from LAN Cloud Options Backend: HTTP(s) Backend: MQTT(s) Backend: Statistics Time Synchronisation Options Bluetooth Scanning Settings Configuration completion Authentication when accessing from LAN GW Install custom firmware GW nRF52811 Firmware GW nRF52811 selftest GW nRF52811 scanning GW nRF52811 repeating GW nRF52811 UART communication GW ESP32 Firmware GW ESP32 WiFi Hotspot GW ESP32 Button GW ESP32 LED GW ESP32 HTTP Client GW ESP32 MQTT client GW Data formats HTTP: Time-stamped data from Bluetooth-sensors HTTP: Data from Bluetooth-sensors without timestamps MQTT: Time-stamped data from Bluetooth-sensors MQTT: Data from Bluetooth-sensors without timestamps HTTP GET /history (with timestamps) and decoding HTTP: Gateway status Gateway configuration GW Examples Polling mode Poll endpoint "/metrics" Configuration update via API Firmware update via API Configuration download from a remote server via API MQTT examples Home Assistant MQTT+AWS IoT Core Communicate with RuuviTag devices via Bluetooth Bluetooth advertisements Data format 3 (RAWv1) Data format 4 (URL) Data format 5 (RAWv2) Data format C5 (Cut-RAWv2) Data format 8 (Encrypted environmental) Bluetooth connection DIS (Device Information Service) NUS (Nordic UART Service) Heartbeat transmissions Read logged history Real Time Transfer (RTT) Communicate with Ruuvi Cloud Ruuvi Cloud User API Gateway API Internal API Alerts Cloud stored app settings Ruuvi Community projects Integrations