Сценарий Otodata (урожденный-Vo) для мониторинга уровня пропана в резервуаре: полное руководство по автоматизации домашнего помощника и ESPHome
В этом руководстве вы найдете все, что вам нужно знать о написании сценариев для Otodata и Nee-Vo, мониторов уровня пропана в баллонах -, включая сценарии автоматизации Home Assistant, конфигурации ESPHome, настройки опроса REST API, интеграцию прокси-сервера BLE, проверенные сообществом-скрипты от r/homeassistant, а также полное пошаговое руководство по внедрению на 2026 год.
Отодата (урожденная-Vo) Сценарий контроля уровня пропана в резервуаре: быстрый ответ
Мониторы уровня пропана в резервуарах Otodata и Nee{0}}Vo можно интегрировать в Home Assistant и системы умного дома с помощью трех основных подходов к написанию сценариев: (1) сценарии датчиков Home Assistant REST, которые опрашивают API Otodata или API Nee{2}}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 для написания сценариев
Архитектура платформы для самостоятельной интеграции
Прежде чем писать сценарии, выясните, какое место занимают Otodata и Nee-Vo в экосистеме умного дома DIY -, поскольку от этого зависит, какой подход к написанию сценариев подойдет для вашей установки.
Архитектура Отодаты:Мониторы пропана Otodata используют сотовую связь LTE в качестве основного пути передачи данных - монитор отправляет данные об уровне резервуара непосредственно на облачные серверы Otodata через сотовую сеть, а приложение Otodata получает их оттуда. Otodata не документирует общедоступный API,-доступный для клиентов, а возможности BLE монитора предназначены в первую очередь для локальной проверки (проверка уровня путем подхода к резервуару), а не для непрерывной потоковой передачи BLE в концентратор умного дома. Это усложняет прямое написание сценариев Otodata-в-Home Assistant. - Рекомендуемый подход сообщества — использовать Otodata для интеграции поставщиков с одновременным развертыванием отдельного датчика ESPHome или Mopeka для данных Home Assistant.
Архитектура Ни-Во:Платформа Nee-Vo в большей степени ориентирована на-поставщиков -, потоки данных от датчика Nee-Vo BLE → шлюз Nee-Vo → облако Nee-Vo → панель управления поставщика + приложение для клиентов. Nee-Vo может предоставлять REST API в некоторых развертываниях, что позволяет осуществлять опрос REST из Home Assistant, но доступ к API зависит от конфигурации Nee-Vo конкретного поставщика и не гарантируется. Сообщество r/homeassistant обнаружило, что рекламный формат BLE Ни-Во недостаточно-публично документирован, что делает необработанный анализ BLE ненадежным без обратного-инжиниринга.
Стратегия создания сценариев сообщества:Консенсус сообщества r/homeassistant относительно сценариев Otodata и Nee-Vo прагматичен: поскольку прямой доступ к API и анализ BLE ненадежны для этих платформ, управляемых поставщиком-, лучшим подходом к написанию сценариев является стратегия параллельных датчиков. Разверните специальный датчик ESPHome или Mopeka для написания сценариев Home Assistant (где у вас есть полный контроль), а Otodata или Nee-Vo самостоятельно занимается автоматизацией поставок. Это дает вам лучшее из обоих миров: автоматическое пополнение запасов из программы поставщика и полное владение данными + сценарии автоматизации с вашего собственного датчика.
Сценарий 1. Опрос REST API Home Assistant для урожденной -Vo
Конфигурация датчика REST
Для пользователей Nee-Vo, чье развертывание поставщика предоставляет клиентский API, используйте этот сценарий датчика REST Home Assistant, чтобы получать данные об уровне резервуара непосредственно на панель управления Home Assistant:
Ямл复制
# Configuration.yaml - Добавьте в конфигурацию Home Assistant оставшуюся часть: - name: "Nee-Vo Propane Tank API" scan_interval: 300 # Опрос каждые 5 минут ресурса: "https://api.nee-vo.com/v1/customer/tank_status" заголовки: Авторизация: "Bearer YOUR_NEEVO_API_KEY" Content-Тип: "application/json" датчик: - name: "Nee-Vo Propane Level" value_template: "{{ (value_json.tank_level_percent|float)|round(1) }}" unit_of_measurement: "%" device_class: "measurement" state_class: значок "measurement": "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" value_template: "{{ (value_json.tank_temperature_f|float)|round(1) }}" unit_of_measurement: " градусов F" класс устройства: "temperature" icon: "mdi:thermometer" - name: "Nee-Vo Уровень заряда батареи" 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" icon: "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 и т. д.) являются репрезентативными. - Проверьте фактические имена полей в ответе API Nee-Vo, проверив документацию 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 для датчиков Otodata и Nee-Vo.
Захват рекламы BLE с любого датчика пропана
Самый универсальный подход к написанию сценариев для Otodata и Nee-Vo — использование встроенного-компонента bluetooth_proxy ESPHome для захвата рекламных объявлений BLE с датчика резервуара и их передачи в Home Assistant. Это работает независимо от того, предоставляет ли Otodata или Nee-Vo API:
Ямл复制
# ESPHome BLE Proxy - propane_ble_proxy.yaml # Перенесите это на ESP32, расположенный в пределах 30-50 футов от вашего баллона с пропаном esphome: name: propane-ble-proxy Platform: Плата ESP32: esp32dev Friendly_name: "Propane Tank BLE Proxy" wifi: ssid: "YOUR_WIFI_SSID" пароль: "YOUR_WIFI_PASSWORD" # Включить резервную точку доступа на случай сбоя Wi-Fi ap: ssid: "PropaneProxy Fallback Hotspot" # Включить прокси-сервер Bluetooth для захвата всей рекламы BLE bluetooth_proxy: active: true # Внести в белый список определенные MAC-адреса (необязательно - закомментировать, чтобы захватить все) # Белый список: # - "AA:BB:CC:DD:EE:FF" # Ваши Otodata или Nee-Vo-сенсор MAC # Регистрируйте все захваченные рекламные объявления BLE для отладки регистратора: уровень: Журналы DEBUG: esp32_ble_tracker: INFO bluetooth_proxy: INFO # Необязательно: добавьте локальный датчик для измерения температуры рядом с датчиком резервуара: - платформа: dht pin: GPIO27 модель: DHT22 температура: имя: «Температура в области резервуара» unit_of_measurement: «градус F» фильтры: - лямбда: "return x * 9.0 / 5.0 + 32.0;" влажность: имя: «Влажность в области резервуара» unit_of_measurement: «%» update_interval: 300s # Включить Home Assistant API для обнаружения и управления API: шифрование: ключ: «ВАШ_API_ENCRYPTION_KEY» # Включить обновления OTA ota: пароль: «ВАШ_ОТА_ПАРОЛЬ» # Управление питанием - держать ESP32 в активном режиме для непрерывного мониторинга BLE power_supply: id: vcc pin: ВУСБ
Чтобы использовать этот скрипт:
Установите 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 для оповещений об уровне пропана
Основные средства автоматизации оповещений
Эти сценарии автоматизации работают с любым датчиком уровня в резервуаре в Home Assistant -, будь то REST API Nee-Vo, самодельный датчик ESPHome, Mopeka через MQTT или захват прокси-сервера BLE:
Ямл复制
# 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 триггер: платформа: numeric_state event_id: Sensor.propane_tank_level выше: 80 действие: - сервис: input_boolean.turn_off event_id: - input_boolean.propane_warning_sent - input_boolean.propane_refill_sent - сервис: notify.mobile_app_yourphone data: title: « ✅ Баллон с пропаном заправлен» сообщение: > Уровень в баке {{ States('sensor.propane_tank_level') }}%. Все оповещения сброшены. Наслаждайтесь пропаном!
Требуемые вспомогательные сущности(добавьте в файл Configuration.yaml):
Ямл复制
input_boolean: propane_warning_sent: name: «Предупреждение о заправке пропана отправлено» значок: mdi:alert propane_refill_sent: name: «Отправлено предупреждение о заправке пропана» значок: mdi:alert
Сценарий 4: Скрипты интеграции умного дома
Автоматизация термостата, клапанов и освещения
Помимо базовых оповещений, эти сценарии интегрируют данные об уровне пропана в вашу более широкую систему умного дома:
Ямл复制
# â€────────────────────────────────────────── # КОНСЕРВАЦИЯ ПРОПАНА - Нижний термостат, когда бак низкий # ─────────────────────────────────────────────────────────────────────────────────────── - псевдоним: "Экономия пропана - Нижний термостат при 30 %" идентификатор: propane_conserve_30 триггер: платформа: numeric_state event_id: Sensor.propane_tank_level ниже: 30 условие: - условие: время после: "20:00:00" до: "06:00:00" - условие: состояние object_id: Climate.main_thermostat состояние: «тепло» действие: - сервис: Climate.set_temperatureentity_id: Climate.main_thermostat данные: температура: 62 hvac_mode: тепло - сервис: notify.mobile_app_yourphone data: title: «🌡️ Режим сохранения пропана активен» сообщение: «Термостат понижен до 62 градусов по Фаренгейту, чтобы сохранить оставшийся пропан». # ───────────────────────────────────────── - псевдоним: "Сохранение пропана - Восстановление термостата после заправки" id: propane_restore_thermostat триггер: платформа: numeric_state event_id: Sensor.propane_tank_level выше: 75 условие: - условие: состояниеentity_id: input_boolean.propane_conservation_active состояние: "вкл" действие: - сервис: Climate.set_temperatureentity_id: Climate.main_thermostat данные: температура: 68 - сервис: input_boolean.turn_offentity_id: input_boolean.propane_conservation_active # ─────────────────────────────────────────── # НЕНОРМАЛЬНОЕ ПОТРЕБЛЕНИЕ - Обнаружение потенциальной утечки # ────────────────────────────────── - псевдоним: "Аномальное потребление пропана - Возможная утечка" идентификатор: propane_leak_detection триггер: платформа: numeric_state event_id: Sensor.propane_consumption_rate выше: 5 # галлонов в час - корректируется в соответствии с размером вашего резервуара действие: - сервис: notify.mobile_app_yourphone data: title: "⚠️ Аномальное потребление пропана Обнаружено сообщение: > Обнаружена необычная скорость потребления пропана: {{states('sensor.propane_consumption_rate') }} галлонов/час. Если проблема не исчезнет, проверьте наличие утечек или проблем с оборудованием.. - service: switch.turn_offentity_id: switch.propane_appliance_main # Необязательно: отключить данные пропанового клапана: {}
Сценарий 5: Датчики шаблонов для расчетных значений
Полученные данные по уровню сырого резервуара
Добавьте эти шаблонные сценарии датчиков для расчета производных значений, которые необработанные данные API или BLE не предоставляют напрямую:
Ямл复制
# template_sensors.yaml - Добавьте в свой шаблон конфигурации Home Assistant: Sensor: # ──────────────────────────────────────────── # Оставшихся дней, исходя из текущего уровня потребления # ──────────────────────────────────────── - name: "Осталось пропана в днях" unit_of_measurement: "days" icon: "mdi:calendar- clock" состояние: > {% set level=состояния('sensor.propane_tank_level')|float %} {% set Tank_size=250 %} {# Галлонов - измените размер резервуара #} {% set Gallons_left=(level / 100) * Tank_size %} {% set daily_rate=States('sensor.propane_daily_consumption')|float %} {% if daily_rate > 0 и Gallons_left > 0 %} {{ (gallons_left / daily_rate)|round(1) }} {% else %} Unknown {% endif %} # ─────────────────────────────────────────── # Общая денежная стоимость оставшегося пропана # ───────────────────────────────────────── - name: "Оставшаяся стоимость пропана в долларах" unit_of_measurement: Значок "USD": "mdi:currency-usd" состояние: > {% set level=состояния('sensor.propane_tank_level')|float %} {% set Tank_size=250 %} {% set Price_per_gallon=3.50 %} {# Изменение фактической цены #} {% set Gallons_left=(level / 100) * Tank_size %} {{ "%.2f"|format(gallons_left * цена_per_gallon) }} # ─────────────────────────────────────────── # Текст состояния пропана (полный/предупреждающий/критический) # ───────────────────────────────────────── - имя: «Состояние пропана» значок: «mdi:gas-цилиндр» состояние: > {% set level =states('sensor.propane_tank_level')|float %} {% if level > 50 %} Full {% elif level > 30 %} Normal {% elif level > 15 %} Low {% elif level > 5 %} Critical {% else %} Empty {% endif %} # ────────────────────────────────── # Refill смета затрат # ───────────────────────────────────────── - name: "Оценка стоимости заправки пропана" unit_of_measurement: "USD" icon: "mdi:currency-usd" состояние: > {% set level=состояния('sensor.propane_tank_level')|float %} {% set Tank_size=250 %} {% set Price_per_gallon=3.50 %} {% set Gallons_to_fill=((100 - уровень) / 100) * Tank_size %} {% if level < 95 %} {{ "%.2f"|format(gallons_to_fill * цена_за_галлон) }} {% else %} 0 {% endif %}
Сценарий 6: Node-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 Ни-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":"Уровень Check","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":"Warning Message","template":"🔔 Пропан на уровне {{payload.tank_level_percent}}%. Usage.","output":"str","x":900,"y":180,"wires":[["propane_notify_warning"]]}, {"id":"propane_notify_critical","type":"служба вызовов API","z":"propane_flow","name":"Send Critical 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 Lights","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":"Отправить предупреждение 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":"Обновить Температура","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 (через «Настройки» → «Дополнения»-).
Откройте Node-RED в браузере.
Импортируйте поток (Меню → Импорт → вставьте JSON выше)
Обновите URL-адрес API и учетные данные в узле propane_fetch.
Обновите propane_notify_critical и другие узлы уведомлений, указав фактические идентификаторы объектов Home Assistant.
Развертывание потока
Сценарий 7: Ежедневное сводное уведомление по пропану
Отчет о состоянии на конец-дня-дня
Этот скрипт отправляет ежедневную сводку о состоянии пропана каждый вечер в удобное время:
Ямл复制
автоматизация: - псевдоним: «Ежедневный отчет по пропану - 8 PM» идентификатор: daily_propane_summary триггер: платформа: время: «20:00:00» действие: - сервис: notify.mobile_app_yourphone данные: заголовок: «📊 Ежедневный отчет по пропану» сообщение: > Уровень в резервуаре: {{states('sensor.propane_tank_level') }}% Осталось галлонов: {{ States('sensor.propane_gallons') }} гал Осталось дней: {{states('sensor.propane_days_remaining') }} дней Сегодняшнее потребление: {{states('sensor.propane_today_consumption') }} гал Температура в баке: {{states('sensor.propane_tank_temperature') }} градусов F Оставшаяся долларовая стоимость: ${{states('sensor.propane_dollar_value_remaining') }} Статус: {{states('sensor.propane_status') }}
Часто задаваемые вопросы
Вопрос 1. Есть ли у Otodata API, для которого можно использовать сценарии?
По состоянию на 2026 год компания Otodata не документирует общедоступный API,-доступный для клиентов. Их мониторы используют сотовую связь LTE с облаком Otodata, а приложение клиента получает данные из этого облака -, но конечная точка API не документирована публично, и доступ отдельным потребителям не предоставляется. Рекомендуемый подход к написанию сценариев для пользователей Otodata — добавить параллельный датчик ESPHome или Mopeka в один и тот же резервуар для написания сценариев Home Assistant, в то время как Otodata продолжает заниматься автоматизацией поставщиков. Некоторые члены сообщества r/homeassistant пытались перепроектировать-формат рекламы BLE Otodata с помощью прокси-серверов ESP32 BLE, но это экспериментальный вариант и недостаточно надежный для сценариев автоматизации производства.
Вопрос 2. Какой подход к написанию сценариев лучше всего подходит для Nee-Vo?
Лучший подход к написанию сценариев для Nee-Vo зависит от того, предоставляет ли ваше развертывание Nee-Vo клиентский API. Если доступен доступ к API (свяжитесь с поставщиком пропана), используйте сценарии датчиков REST, описанные в этом руководстве, для опроса API Nee-Vo непосредственно в Home Assistant. Если доступ через API недоступен, рекомендуемый подход такой же, как и в Otodata: добавьте в резервуар параллельный датчик ESPHome или Mopeka и используйте сценарии автоматизации ESPHome + Home Assistant, описанные в этом руководстве. Подход с параллельными датчиками является наиболее надежным, поскольку он дает вам полный контроль над данными датчиков, встроенным программным обеспечением и логикой автоматизации - без зависимости от доступности API поставщика.
В3: Как часто сценарии автоматизации должны проверять уровень в резервуаре?
Для сценариев опроса REST Home Assistant (нет необходимости-Vo API) интервал сканирования в 5–10 минут достаточен - уровень в резервуаре меняется достаточно медленно, поэтому более частый опрос не нужен и может привести к чрезмерной нагрузке на API. Для прокси-скриптов ESPHome BLE ESP32 непрерывно захватывает рекламные объявления BLE, а Home Assistant обрабатывает их в-времени - интервал опроса не требуется. Что касается триггеров автоматизации (порогов оповещения), триггеры numeric_state Home Assistant срабатывают немедленно, когда уровень пересекает пороговое значение, независимо от интервала опроса. Настройте ежедневное сводное уведомление на определенное время каждый вечер (рекомендуется: 19–20:00), чтобы получать регулярный отчет о состоянии без усталости от оповещений.
В4: Могут ли эти скрипты работать с несколькими танками?
Да, - все сценарии в этом руководстве поддерживают несколько резервуаров. Для опроса REST API (урожденная -Vo) добавьте дополнительные записи датчика REST для конечной точки API каждого резервуара. Для прокси-сервера ESPHome BLE ESP32 может захватывать рекламу от нескольких датчиков BLE одновременно -, просто добавьте датчики шаблона для данных каждого резервуара. Для сценариев автоматизации продублируйте записи автоматизации и измените event_id, чтобы он ссылался на конкретный объект датчика каждого резервуара (например, Sensor.propane_tank_level_garage, Sensor.propane_tank_level_shop). В Node-RED добавьте дополнительные ветки propane_level_check для каждого резервуара.
Вопрос 5: Как мне отладить скрипт, который не работает?
Для сценариев REST API: используйте инструменты разработчика Home Assistant («Настройки» → «Инструменты разработчика» → «Редактор шаблонов»), чтобы проверить ваш value_template на основе необработанных данных JSON. Скопируйте пример ответа API и вставьте его в редактор шаблонов, чтобы убедиться в правильности извлечения пути JSON. Для прокси-скриптов ESPHome BLE: проверьте журналы ESPHome (esphome logs propane_ble_proxy), чтобы узнать, захватываются ли рекламные объявления BLE -. Если вы видите необработанные MAC-адреса, но нет читаемых данных, датчик передает информацию, но формат не распознается. Для сценариев автоматизации: используйте инструмент трассировки Home Assistant (вкладка «Отслеживание» для каждой автоматизации), чтобы точно узнать, что сработало, какие условия оценивались и какие действия выполнялись. Инструмент трассировки — самый мощный инструмент отладки в Home Assistant -, он показывает точное состояние каждого объекта на момент срабатывания автоматизации.
Итог
Мониторы пропановых баллонов Otodata и Nee-Vo лучше всего использовать с помощью стратегии параллельного написания сценариев: используйте платформу поставщика (Otodata или Nee-Vo) для автоматического планирования заправки и разверните собственный датчик ESPHome или Mopeka для полного управления сценариями Home Assistant. Семь сценариев в этом руководстве - опрос REST API, прокси-сервер ESPHome BLE, три уровня автоматизации оповещений (предупреждение/пополнение/критическое), сценарии интеграции умного дома (термостат, клапаны, освещение), шаблонные датчики для производных значений, визуальный поток Node-RED и ежедневное сводное уведомление - дают вам полную систему автоматизации мониторинга пропана, которая работает полностью локально в Home Assistant. Коллективный опыт сообщества 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 взаимодействуют с реальными-системами, включая системы отопления, вентиляции и кондиционирования, газовые клапаны и электрические устройства. - проверяйте все средства автоматизации в безопасных условиях перед их внедрением в производство. Это руководство не связано, не одобрено и не спонсируется Otodata, Nee-Vo, Home Assistant, ESPHome, Node-RED или сообществом r/homeassistant.
