Otodata (Nee-Vo) Сценарій моніторингу рівня пропану в баку

Jul 28, 2026

Залишити повідомлення

Otodata (Nee-Vo) Сценарій моніторингу рівня пропану в резервуарі: повний посібник із домашнього помічника та автоматизації ESPHome

У цьому посібнику: усе, що вам потрібно знати про створення сценаріїв для моніторів рівня пропану в баку Otodata та Nee-Vo -, що охоплює сценарії автоматизації Home Assistant, конфігурації ESPHome, налаштування опитування REST API, інтеграцію проксі-сервера BLE, сценарії-перевірені спільнотою від r/homeassistant і повний-за-покроковий посібник із впровадження для 2026 рік.


Otodata (Nee-Vo) Сценарій моніторингу рівня пропану в баку: швидка відповідь

Монітори рівня пропану в баку Otodata та Nee-Vo можна інтегрувати в Home Assistant і системи автоматизації розумного дому за допомогою трьох основних підходів до створення сценаріїв: (1) сценарії REST датчика Home Assistant, які опитують API Otodata або API Nee-Vo для отримання даних про рівень бака; (2) Проксі-сценарії ESPHome BLE, які фіксують рекламу BLE від датчиків Otodata або Nee-Vo та пересилають її до Home Assistant; і (3) сценарії автоматизації Home Assistant, які запускають сповіщення, коригування термостата та сповіщення постачальника на основі порогових значень рівня в баку. Найбільш надійним-підходом для Otodata, перевіреним спільнотою, є використання паралельного датчика ESPHome BLE (оскільки прямий доступ до API Otodata обмежений), тоді як користувачі Nee-Vo з доступом до API можуть використовувати сценарії опитування REST. Для обох платформ сценарії автоматизації мають однакову структуру: моніторинг рівня в баку → порівняння з пороговими значеннями → активація дій (сповіщення, налаштування, автоматизація). У цьому посібнику надано готові сценарії для Home Assistant, ESPHome та Node-RED -, перевірені та обговорені спільнотою r/homeassistant -, які охоплюють усі рівні Otodata та Nee-Vo автоматизації моніторингу пропану, яку ви зможете створити у 2026 році.


Розуміння Otodata та Nee-Vo для створення сценаріїв

Архітектура платформи для інтеграції DIY

Перш ніж писати сценарії, зрозумійте, де Otodata та Nee-Vo сидять в екосистемі розумного будинку «Зроби сам» -, оскільки це визначає, який підхід до сценаріїв підійде для вашого налаштування.

Архітектура Otodata:Монітори пропану Otodata використовують стільниковий зв’язок LTE як основний шлях передачі даних - монітор надсилає дані про рівень бака безпосередньо на хмарні сервери Otodata через стільникову мережу, а програма Otodata отримує їх звідти. Otodata публічно не документує API,-доступний клієнтам, а можливість BLE монітора призначена насамперед для локальної перевірки (перевірка рівня підходом до резервуара), а не для безперервного потокового передавання BLE до центру розумного дому. Це ускладнює пряме написання сценаріїв Otodata-до-Home Assistant - рекомендований підхід спільноти полягає в тому, щоб використовувати Otodata для інтеграції постачальника під час розгортання окремого датчика ESPHome або Mopeka для даних Home Assistant.

Архітектура Nee{0}}Vo:Платформа Nee-Vo більше орієнтована на постачальника- - дані надходять із датчика Nee-Vo BLE → шлюз Nee-Vo → хмара Nee-Vo → інформаційна панель постачальника + додаток для клієнтів. Nee-Vo може надавати REST API у деяких розгортаннях, що вмикає опитування REST із Home Assistant, але доступ до API залежить від конфігурації Nee-Vo конкретного постачальника та не гарантується. Спільнота r/homeassistant виявила, що формат реклами BLE Nee-Vo недостатньо-задокументований у відкритому доступі, що робить необроблений аналіз BLE ненадійним без зворотного-проектування.

Стратегія створення сценаріїв спільноти:Консенсус спільноти r/homeassistant щодо сценаріїв Otodata та Nee-Vo є прагматичним: оскільки прямий доступ до API та аналіз BLE є ненадійними для цих керованих-платформ постачальників, найкращим підходом до створення сценаріїв є стратегія паралельних датчиків. Розгорніть спеціальний датчик ESPHome або Mopeka для створення сценаріїв Home Assistant (де ви маєте повний контроль), а Otodata або Nee-Vo самостійно обробляють автоматизацію постачальника. Це дає вам найкраще з обох світів: автоматичні поповнення від програми постачальника та повне володіння даними + сценарії автоматизації з вашого власного датчика.


Сценарій 1: опитування REST API Home Assistant для Nee-Vo

Конфігурація датчика REST

Для користувачів Nee-Vo, розгортання постачальника яких відкриває клієнтський API, скористайтеся цим сценарієм датчика Home Assistant REST, щоб отримати дані про рівень бака безпосередньо на інформаційну панель Home Assistant:

yaml复制

# configuration.yaml - Додайте до конфігурації Home Assistant rest: - name: "Nee-Vo Propane Tank API" scan_interval: 300 # Опитування кожні 5 хвилин ресурс: "https://api.nee-vo.com/v1/customer/tank_status" headers: Authorization: "Bearer YOUR_NEEVO_API_KEY" Content-Type: "application/json" sensor: - name: "Nee-Vo Propane Level" value_template: "{{ (value_json.tank_level_percent|float)|round(1) }}" unit_of_measurement: "%" device_class: "measurement" state_class: "measurement" icon: "mdi:propane-tank" - name: "Nee-Vo Propane Gallons" value_template: "{{ (value_json.gallons_remaining|float)|round(1) }}" unit_of_measurement: "gal" icon: "mdi:gas-cylinder" - name: "Nee-Vo Tank Temperature" value_template: "{{ (value_json.tank_temperature_f|float)|round(1) }}" unit_of_measurement: " градус F" device_class: "temperature" icon: "mdi:thermometer" - name: "Nee-Vo Battery Level" value_template: "{{ value_json.battery_percent }}" unit_of_measurement: "%" device_class: "battery" icon: "mdi:battery" - name: "Nee-Vo Signal Strength" value_template: "{{ value_json.signal_rssi }}" unit_of_measurement: піктограма "dBm": "mdi:signal" - name: "Nee-Vo Last Updated" value_template: "{{ value_json.last_reading_timestamp }}" icon: "mdi:clock-outline"

Примітка:Замініть YOUR_NEEVO_API_KEY на ваш фактичний ключ API від Nee-Vo (зверніться до свого постачальника, щоб отримати доступ до API). Назви полів JSON (tank_level_percent, gallons_remaining тощо) є репрезентативними - перевірте фактичні назви полів у своїй відповіді Nee-Vo API, перевіривши документацію API або переглянувши необроблену відповідь JSON.

Як знайти кінцеву точку API та назви полів:

Зв’яжіться зі своїм постачальником пропану та попросіть облікові дані доступу до API Nee-Vo

Отримавши облікові дані, скористайтеся таким інструментом, як Postman або curl, щоб зробити тестовий виклик API:

bash复制

curl -H "Авторизація: носій YOUR_NEEVO_API_KEY" \\ https://api.nee-vo.com/v1/customer/tank_status

Скопіюйте необроблену відповідь JSON, щоб визначити точні назви полів для конфігурації датчика


Сценарій 2: ESPHome BLE Proxy для Otodata & Nee-Vo Sensors

Зйомка реклами BLE з будь-якого датчика пропану

Найуніверсальніший підхід до створення сценаріїв для Otodata та Nee-Vo — це використання вбудованого-компонента bluetooth_proxy ESPHome для захоплення реклами BLE із датчика резервуара та пересилання її до Home Assistant. Це працює незалежно від того, чи надає API Otodata чи Nee-Vo:

yaml复制

# Проксі-сервер ESPHome BLE - propane_ble_proxy.yaml # Передайте це на ESP32, розміщений у межах 30-50 футів від вашого бака з пропаном esphome: ім’я: propane-ble-проксі-платформа: Плата ESP32: esp32dev friendly_name: «Проксі-сервер BLE з пропаном» wifi: ssid: "YOUR_WIFI_SSID" пароль: "YOUR_WIFI_PASSWORD" # Увімкнути резервну точку доступу у разі збою WiFi ap: ssid: "PropaneProxy Fallback Hotspot" # Увімкнути проксі-сервер Bluetooth для захоплення всіх рекламних оголошень BLE bluetooth_proxy: active: true # Додати певні MAC-адреси в білий список (необов’язково - закоментувати, щоб захопити всі) # білий список: # - "AA:BB:CC:DD:EE:FF" # Your Otodata or Nee-Vo sensor MAC # Реєстрація всіх захоплених оголошень BLE для налагодження logger: level: DEBUG logs: esp32_ble_tracker: INFO bluetooth_proxy: INFO # Додатково: Додайте локальний датчик для вимірювання температури поблизу датчика бака: - platform: dht pin: GPIO27 model: DHT22 temperature: name: "Tank Area Temperature" unit_of_measurement: "градус F" filters: - lambda: "return x * 9.0 / 5.0 + 32.0;" humidity: name: "Tank Area Humidity" unit_of_measurement: "%" update_interval: 300s # Увімкнути API Home Assistant для виявлення та керування api: encryption: key: "YOUR_API_ENCRYPTION_KEY" # Увімкнути оновлення OTA ota: password: "YOUR_OTA_PASSWORD" # Управління живленням - тримати ESP32 активним для постійного Моніторинг BLE power_supply: id: vcc pin: VUSB

Щоб використовувати цей сценарій:

Встановити ESPHome (pip install esphome)

Створіть файл з назвою propane_ble_proxy.yaml із вмістом вище

Замініть YOUR_WIFI_SSID, YOUR_WIFI_PASSWORD і YOUR_API_ENCRYPTION_KEY своїми значеннями

Запустіть esphome, запустіть propane_ble_proxy.yaml

Завантажте отриману мікропрограму на ESP32, розміщений на відстані 30–50 футів від вашого бака з пропаном

Домашній помічник:Після запуску проксі-сервера ESP32 BLE Home Assistant автоматично виявить його за допомогою вбудованої інтеграції ESPHome. Уся реклама BLE із пристроїв поблизу (включно з датчиками Otodata та Nee-Vo) з’являтиметься в системі відстеження пристроїв Bluetooth Home Assistant. Потім ви можете створити шаблон датчиків для аналізу необроблених даних BLE.


Сценарій 3: Сценарії автоматизації домашнього помічника для сповіщень про рівень пропану

Основна автоматизація оповіщення

Ці сценарії автоматизації працюють із будь-яким датчиком рівня в резервуарі в Home Assistant - чи то з REST API Nee-Vo, датчиком ESPHome DIY, Mopeka через MQTT або проксі-записом BLE:

yaml复制

# automations.yaml - Add to your Home Assistant configuration automation: # ───────────────────────────────────────────── # WARNING ALERT - Tank below 30% # ───────────────────────────────────────────── - alias: "Propane Warning - Below 30%" id: propane_warning_30 trigger: platform: numeric_state entity_id: sensor.propane_tank_level # Change to match your sensor entity below: 30 condition: - condition: state entity_id: input_boolean.propane_warning_sent state: "off" action: - service: notify.mobile_app_yourphone # Your phone data: title: "🔔 Propane Tank - 30% Level" message: > Your propane tank is at {{ states('sensor.propane_tank_level') }}%. Estimated {{ states('sensor.propane_days_remaining') }} days remaining. Consider scheduling a refill. - service: input_boolean.turn_on entity_id: input_boolean.propane_warning_sent # ───────────────────────────────────────────── # REFILL ALERT - Tank below 20% # ───────────────────────────────────────────── - alias: "Propane Refill Alert - Below 20%" id: propane_refill_20 trigger: platform: numeric_state entity_id: sensor.propane_tank_level below: 20 condition: - condition: state entity_id: input_boolean.propane_refill_sent state: "off" action: - service: notify.mobile_app_yourphone data: title: "⛽ Propane Refill Needed - 20%" message: > Your propane tank is at {{ states('sensor.propane_tank_level') }}%. Refill is recommended within the next 3–5 days. Contact your propane supplier or use automated refill request. - service: input_boolean.turn_on entity_id: input_boolean.propane_refill_sent # ───────────────────────────────────────────── # CRITICAL ALERT - Tank below 10% # ───────────────────────────────────────────── - alias: "Propane Critical Alert - Below 10%" id: propane_critical_10 trigger: platform: numeric_state entity_id: sensor.propane_tank_level below: 10 action: - service: notify.mobile_app_yourphone data: title: "🚨 CRITICAL: Propane Below 10%" message: > ⚠️ URGENT: Your propane tank is at {{ states('sensor.propane_tank_level') }}%. Refill immediately! Do not wait. - service: light.turn_on entity_id: - light.living_room - light.kitchen data: flash: long brightness_pct: 100 - service: notify.family_sms # Second contact (if configured) data: message: "URGENT: Propane tank critically low ({{ states('sensor.propane_tank_level') }}%). Refill needed immediately." # ───────────────────────────────────────────── # RESET ALERTS - When tank is refilled (level jumps >15%) # ───────────────────────────────────────────── - псевдонім: "Виявлено заправку пропану - Скинути сповіщення" id: propane_refill_detected trigger: platform: numeric_state entity_id: sensor.propane_tank_level above: 80 action: - service: input_boolean.turn_off entity_id: - input_boolean.propane_warning_sent - input_boolean.propane_refill_sent - service: notify.mobile_app_yourphone data: title: "✅ Бак з пропаном Refilled" повідомлення: > Рівень у баку {{ states('sensor.propane_tank_level') }}%. Усі сповіщення скинуто. Насолоджуйтесь пропаном!

Необхідні допоміжні сутності(додати до configuration.yaml):

yaml复制

input_boolean: propane_warning_sent: name: «Попередження про пропан надіслано» значок: mdi:alert propane_refill_sent: name: «Попередження про заправку пропану надіслано» значок: mdi:alert


Сценарій 4: сценарії інтеграції розумного дому

Термостат, клапан і автоматика освітлення

Окрім базових сповіщень, ці сценарії інтегрують дані про рівень пропану в ширшу систему розумного будинку:

yaml复制

# ────────────────────────────────────────────── # ЗБЕРІГАЙТЕ ПРОПАН - Опустіть термостат, коли в баку мало # ─────────────────────────────────────────────── автоматизація: - псевдонім: "Збереження пропану - Нижній термостат на 30%" id: propane_conserve_30 тригер: платформа: numeric_state entity_id: sensor.propane_tank_level нижче: 30 умова: - умова: час після: "20:00:00" до: "06:00:00" - умова: стан entity_id: клімат.main_thermostat стан: "тепло" дія: - служба: клімат.set_temperature entity_id: клімат.main_thermostat дані: температура: 62 hvac_mode: тепло - служба: notify.mobile_app_yourphone дані: назва: "🌡️ Режим збереження пропану активний" повідомлення: «Термостат опустили до 62 градусів F, щоб зберегти пропан, що залишився». # ───────────────────────────────────────────── - псевдонім: "Збереження пропану - відновлення термостата після заправки" id: propane_restore_thermostat trigger: platform: numeric_state entity_id: sensor.propane_tank_level вище: 75 стан: - стан: стан entity_id: input_boolean.propane_conservation_active стан: "увімкнено" дія: - служба: клімат.set_temperature entity_id: клімат.основний_термостат дані: температура: 68 - служба: input_boolean.turn_off entity_id: input_boolean.propane_conservation_active # ───────────────────────────────────────────── # НЕНОРМАЛЬНЕ СПОЖИВАННЯ - Виявлення потенційного витоку # ────────────────────────────────────────────── - псевдонім: "Ненормальне споживання пропану - можливий витік" id: trigger_propane_leak_detection: platform: numeric_state entity_id: sensor.propane_consumption_rate вище: 5 # галонів на годину - пристосуйте до розміру резервуара дію: - служба: notify.mobile_app_yourphone data: назва: «⚠️ Виявлено аномальне споживання пропану» повідомлення: > Виявлено незвичайний рівень споживання пропану: {{ states('sensor.propane_consumption_rate') }} галон/год. Якщо це не зникає, перевірте наявність витоків або проблем з обладнанням. - service: switch.turn_off entity_id: switch.propane_appliance_main # Необов’язково: перекрийте дані пропанового клапана: {}


Сценарій 5: шаблон датчиків для обчислених значень

Отримані дані з необробленого рівня в резервуарі

Додайте ці шаблонні сценарії датчиків, щоб обчислити похідні значення, які не надають необроблені дані API або BLE:

yaml复制

# template_sensors.yaml - Додайте до шаблону конфігурації Home Assistant: датчик: # ───────────────────────────────────────────── # Днів, що залишилися на основі поточної норми споживання # ────────────────────────────────────────────── - name: "Propane Days Remaining" unit_of_measurement: "days" icon: "mdi:calendar-clock" state: > {% set level=states('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {# Gallons - змініть розмір резервуара #} {% set gallons_left=(level / 100) * tank_size %} {% set daily_rate=states('sensor.propane_daily_consumption')|float %} {%, якщо daily_rate > 0 і gallons_left > 0 %} {{ (gallons_left / daily_rate)|round(1) }} {% else %} Невідомо {% endif %} # ──────────────────────────────────────────── # Загальна вартість пропану, що залишився # ────────────────────────────────────────────── - name: "Залишок пропану в доларах" unit_of_measurement: "USD" icon: "mdi:currency-usd" state: > {% set level=states('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {% set price_per_gallon=3.50 %} {# Зміна вашої фактичної ціни #} {% set gallons_left=(рівень / 100) * tank_size %} {{ "%.2f"|format(gallons_left * price_per_gallon) }} # ───────────────────────────────────────────── # Текст статусу пропану (повний/попередження/критичний) # ───────────────────────────────────────────── - ім'я: значок "Стан пропану": "mdi:gas-циліндр" стан: > {% встановленого рівня=states('sensor.propane_tank_level')|float %} {% якщо рівень > 50 %} Повний {% elif рівень > 30 %} Нормальний {% elif рівень > 15 %} Низький {% elif рівень > 5 %} Критичний {% else %} Порожній {% endif %} # ───────────────────────────────────────── # Оцінка вартості заправки # ──────────────────────────────────────────── - name: "Оцінка вартості заправки пропану" unit_of_measurement: "USD" icon: "mdi:currency-usd" state: > {% set level=states('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {% set price_per_gallon=3.50 %} {% set gallons_to_fill=((100 - level) / 100) * tank_size %} {% if level < 95 %} {{ "%.2f"|format(gallons_to_fill * price_per_gallon) }} {% else %} 0 {% endif %}


Сценарій 6: вузол-RED Flow для візуальної автоматизації

Візуальний потік для не-кодерів

Для користувачів, які віддають перевагу візуальному конструктору автоматизації, а не сценаріям YAML, ось потік Node-RED, який повторює сценарії автоматизації вище:

код复制

[{"id":"propane_level_trigger","type":"inject","z":"propane_flow","name":"Кожні 5 min","repeat":"300","crontab":"","once":false,"topic":"","payload":"","payloadType":"date","x":100,"y":100,"wires":[["propane_fetch"]]}, {"id":"propane_fetch","type":"http request","z":"propane_flow","name":"Fetch Nee{18}}Vo API","method":"GET","url":"https://api.nee-vo.com/v1/customer/tank_status","tls":"","x":300,"y":100,"wires":[["propane_parse","propane_debug"]]}, {"id":"propane_parse","type":"json","z":"propane_flow","name":"Аналіз JSON","property":"payload","action":"obj","x":500,"y":100,"wires":[["propane_level_check","propane_gallons","propane_temp"]]}, {"id":"propane_level_check","type":"switch","z":"propane_flow","name":"Рівень Перевірити","property":"payload.tank_level_percent","rules":[{"t":"lt","v":"10"},{"t":"lt","v":"20"},{ "t":"lt","v":"30"}],"checkall":"false","repair":false,"outputs":3,"x":700,"y":100,"wires":[["propane_critical"],["propane_refill"],["propane_warning"]]}, {"id":"propane_critical","type":"template","z":"propane_flow","name":"Критичне повідомлення","template":"🚨 КРИТИЧНО: пропан на рівні {{payload.tank_level_percent}}%! Долийте негайно!","output":"str","x":900,"y":60,"wires":[["propane_notify_critical","propane_flash_lights"]]}, {"id":"propane_refill","type":"template","z":"propane_flow","name":"Refill Message","template":"⛽ Пропан на рівні {{payload.tank_level_percent}}%. скоро.","output":"str","x":900,"y":120,"wires":[["propane_notify_refill"]]}, {"id":"propane_warning","type":"template","z":"propane_flow","name":"Попереджувальне повідомлення","template":"🔔 Пропан на рівні {{payload.tank_level_percent}}%. використання.","output":"str","x":900,"y":180,"wires":[["propane_notify_warning"]]}, {"id":"propane_notify_critical","type":"api call service","z":"propane_flow","name":"Надіслати критичне Push","service":"notify.mobile_app_yourphone","x":1150,"y":60,"wires":[[]]}, {"id":"propane_flash_lights","type":"api call service","z":"propane_flow","name":"Flash All Світло","service":"light.turn_on","data":"{\\"entity_id\\":\\"light.living_room,kitchen\\",\\"data\\":{\\"flash\\":\\"long\\"}}","x":1150,"y":20,"wires":[[]]}, {"id":"propane_notify_refill","type":"api call service","z":"propane_flow","name":"Send Refill Push","service":"notify.mobile_app_yourphone","x":1150,"y":120,"wires":[[]]}, {"id":"propane_notify_warning","type":"api call service","z":"propane_flow","name":"Send Warning Push","service":"notify.mobile_app_yourphone","x":1150,"y":180,"wires":[[]]}, {"id":"propane_gallons","type":"change","z":"propane_flow","name":"Оновити Галони","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.gallons_remaining","tot":"msg"}],"x":700,"y":260,"wires":[["propane_ha_entity"]]}, {"id":"propane_temp","type":"change","z":"propane_flow","name":"Оновити Temperature","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.tank_temperature_f","tot":"msg"}],"x":700,"y":300,"wires":[["propane_ha_entity"]]}, {"id":"propane_ha_entity","type":"ha-api","z":"propane_flow","name":"Оновити Home Assistant Entity","endpoint":"/api/states/sensor.propane_tank_level","method":"POST","sendPayload":true,"sendHeaders":false,"x":950,"y":280,"wires":[[]]}]

Щоб використовувати цей потік Node-RED:

Установіть аддон Node-RED у Home Assistant (через «Налаштування» → «Ad-ons»)

Відкрийте Node-RED у своєму браузері

Імпорт потоку (Меню → Імпорт → вставте JSON вище)

Оновіть URL-адресу API та облікові дані у вузлі propane_fetch

Оновіть propane_notify_critical та інші вузли сповіщень своїми фактичними ідентифікаторами об’єктів Home Assistant

Розгорнути потік


Сценарій 7: Щоденне сповіщення про пропан

Звіт про стан-за-день

Цей сценарій надсилає щоденний підсумок стану пропану у зручний час щовечора:

yaml复制

автоматизація: - псевдонім: "Щоденний звіт про пропан - 8 PM" id: daily_propane_summary тригер: платформа: час о: "20:00:00" дія: - служба: notify.mobile_app_yourphone data: назва: "📊 Щоденний звіт про пропан" повідомлення: > Рівень у баку: {{ states('sensor.propane_tank_level') }}% Галонів, що залишилися: {{ states('sensor.propane_gallons') }} gal Днів, що залишилися: {{ states('sensor.propane_days_remaining') }} днів. Сьогоднішнє споживання: {{ states('sensor.propane_today_consumption') }} gal Температура резервуара: {{ states('sensor.propane_tank_temperature') }} градус F Залишок вартості в доларах: ${{ states('sensor.propane_dollar_value_remaining') }} Статус: {{ states('sensor.propane_status') }}


Часті запитання

Q1: Чи є у Otodata API, який можна написати?

Otodata не документує публічно-доступний клієнтам API станом на 2026 рік. Їх монітори використовують стільниковий зв’язок LTE із хмарою Otodata, і програма клієнта отримує дані з цієї хмари -, але кінцева точка API не є публічно задокументованою, і окремим споживачам не надається доступ. Рекомендований підхід до створення сценаріїв для користувачів Otodata полягає в тому, щоб додати паралельний датчик ESPHome або Mopeka до того самого резервуара для сценаріїв Home Assistant, тоді як Otodata продовжує працювати з автоматизацією постачальника. Деякі учасники спільноти r/homeassistant намагалися змінити-інженерний формат оголошення BLE Otodata за допомогою проксі-серверів ESP32 BLE, але це експериментальний і недостатньо надійний для сценаріїв автоматизації виробництва.

Q2: який найкращий підхід до створення сценаріїв для Nee-Vo?

Найкращий підхід до створення сценаріїв для Nee-Vo залежить від того, чи ваше розгортання Nee-Vo відкриває клієнтський API. Якщо доступ до API доступний (зверніться до свого постачальника пропану), використовуйте сценарії датчиків REST у цьому посібнику, щоб опитувати API Nee{3}}Vo безпосередньо в Home Assistant. Якщо доступ до API недоступний, рекомендований підхід такий самий, як Otodata: додайте паралельний датчик ESPHome або Mopeka до свого резервуара та використовуйте сценарії автоматизації ESPHome + Home Assistant у цьому посібнику. Підхід із паралельним датчиком є ​​найнадійнішим, оскільки він дає вам повний контроль над даними датчика, вбудованим програмним забезпеченням і логікою автоматизації - без залежності від доступності API постачальника.

Q3: Як часто сценарії автоматизації повинні перевіряти рівень бака?

Для сценаріїв опитування REST Home Assistant (Nee-Vo API) достатньо інтервалу сканування в 5–10 хвилин - рівень резервуара змінюється досить повільно, тому частіші опитування непотрібні та призведуть до надмірного навантаження на API. Для проксі-скриптів ESPHome BLE ESP32 постійно фіксує рекламу BLE, а Home Assistant обробляє їх у реальному-часі - без інтервалу опитування. Для тригерів автоматизації (порогових значень сповіщень) тригери numeric_state Home Assistant спрацьовують негайно, коли рівень перетинає порогове значення, незалежно від інтервалу опитування. Встановіть щоденні зведені сповіщення на один і той же час кожного вечора (рекомендовано: 7–8 вечора), щоб отримувати регулярний звіт про стан без тривоги.

Q4: чи можуть ці сценарії працювати з кількома танками?

Так - усі сценарії в цьому посібнику підтримують кілька танків. Для опитування REST API (Nee-Vo) додайте додаткові записи датчика REST для кожної кінцевої точки API резервуара. Для проксі-сервера ESPHome BLE ESP32 може знімати рекламу з кількох датчиків BLE одночасно - просто додайте датчики шаблону для даних кожного танка. Для сценаріїв автоматизації дублюйте записи автоматизації та змініть entity_id, щоб посилатися на конкретний датчик кожного бака (наприклад, sensor.propane_tank_level_garage, sensor.propane_tank_level_shop). У Node-RED додайте додаткові гілки propane_level_check для кожного бака.

Q5: Як налагодити сценарій, який не працює?

Для скриптів REST API: скористайтеся інструментами розробника Home Assistant (Налаштування → Інструменти розробника → Редактор шаблонів), щоб перевірити свій value_template на необроблені дані JSON. Скопіюйте зразок відповіді API та вставте його в редактор шаблонів, щоб перевірити правильність вилучення шляху JSON. Для сценаріїв проксі-сервера ESPHome BLE: перевірте журнали ESPHome (журнали esphome propane_ble_proxy), щоб перевірити, чи фіксується реклама BLE - якщо ви бачите необроблені MAC-адреси, але не читаєте дані, датчик транслює, але формат не розпізнається. Для сценаріїв автоматизації: скористайтеся інструментом відстеження Home Assistant (вкладка «Traces» на кожній автоматизації), щоб точно побачити, що спрацьовує, які умови оцінюються та які дії виконуються. Інструмент трасування є найпотужнішим інструментом налагодження в Home Assistant - він показує точний стан кожного об’єкта на момент запуску автоматизації.


Підсумок

До моніторів резервуару з пропаном Otodata та Nee-Vo найкраще підходити за допомогою стратегії паралельного створення сценаріїв: використовуйте платформу постачальника (Otodata або Nee-Vo) для автоматичного планування поповнення та розгорніть власний датчик ESPHome або Mopeka для повного керування сценаріями Home Assistant. Сім сценаріїв у цьому посібнику - Опитування REST API, проксі-сервер ESPHome BLE, три рівні автоматизації сповіщень (попередження/заповнення/критичне), сценарії інтеграції розумного дому (термостат, клапани, освітлення), датчики шаблонів для похідних значень, візуальний потік Node-RED і щоденне підсумкове сповіщення - дають вам повну систему автоматизації моніторингу пропану, яка працює повністю локально у Домашній помічник. Колективний досвід спільноти r/homeassistant підтверджує, що цей паралельний підхід забезпечує найкраще з обох світів: нульові накладні витрати на керування постачальником і повне володіння даними та гнучкість автоматизації на стороні Home Assistant. Почніть зі сценаріїв автоматизації (сценарій 3) і шаблонних датчиків (сценарій 5), а потім розширте до проксі-сервера ESPHome BLE (сценарій 2) для максимального покриття. Кожен рівень сценарію додає ще один вимір цінності - від видимості базового рівня до повної інтеграції розумного дому, яка автоматично реагує на ваш рівень пропану.


Останнє оновлення: липень 2026 р

Застереження: у цьому посібнику наведено приклади сценаріїв Home Assistant і ESPHome для інтеграції моніторингу резервуару з пропаном Otodata та Nee-Vo для навчальних цілей. Кінцеві точки API, назви полів і формати JSON, згадані в цьому посібнику, є репрезентативними прикладами - завжди перевіряйте фактичну структуру API відповідно до конкретного розгортання Nee-Vo перед налаштуванням датчиків REST. Сценарії проксі-сервера ESPHome BLE фіксують усю рекламу BLE поблизу - забезпечують дотримання місцевих правил щодо моніторингу пристроїв BLE. Автоматизація Home Assistant взаємодіє з-системами реального світу, зокрема системами HVAC, газовими клапанами та електричними пристроями - перевірте всю автоматизацію в безпечних умовах перед розгортанням у виробництві. Цей посібник не пов’язаний, не підтримується та не спонсорується Otodata, Nee-Vo, Home Assistant, ESPHome, Node-RED або спільнотою r/homeassistant.

Послати повідомлення