Otodata (Nee-Vo) Скрипт за монитор на ниво в резервоара за пропан: Пълно ръководство за домашен асистент и ESPHome Automation
В това ръководство: Всичко, което трябва да знаете за скриптове за 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 за скриптове
Платформена архитектура за интеграция „направи си сам“.
Преди да пишете скриптове, разберете къде Otodata и Nee-Vo се намират в екосистемата за интелигентен дом „Направи си сам“ -, защото това определя кой скриптов подход ще работи за вашата настройка.
Архитектурата на Otodata:Мониторите за пропан Otodata използват LTE клетъчна свързаност като основен път за данни - мониторът изпраща данни за нивото на резервоара директно до облачните сървъри на Otodata чрез клетъчна мрежа, а приложението Otodata ги извлича оттам. Otodata не документира публично API, -достъпен за клиента, и възможностите за BLE на монитора са предимно за локална проверка (проверка на нивото чрез приближаване до резервоара), а не за непрекъснат BLE поточно предаване към интелигентен домашен център. Това прави директния скрипт на Otodata-към-Home Assistant предизвикателство - препоръчителният подход на общността е да се използва Otodata за интегриране на доставчици, докато се внедрява отделен сензор ESPHome или Mopeka за данни на Home Assistant.
Архитектурата на Nee-Vo:Платформата на Nee-Vo е по-ориентирана към-доставчици - данните текат от сензора Nee-Vo BLE → Nee-Vo gateway → Nee-Vo cloud → табло за управление на доставчик + клиентско приложение. Nee-Vo може да разкрие REST API при някои внедрявания, което позволява запитване на REST от Home Assistant, но достъпът до API зависи от конфигурацията на Nee-Vo на конкретния доставчик и не е гарантиран. Общността на r/homeassistant установи, че рекламният формат на Nee-BLE на Nee-Vo не е добре-документиран публично, което прави необработения анализ на BLE ненадежден без обратно-инженерство.
Стратегията за скриптове на общността:Консенсусът на общността на r/homeassistant относно скриптовете Otodata и Nee-Vo е прагматичен: тъй като директният достъп до API и BLE анализът са ненадеждни за тези управлявани-доставчици платформи, най-добрият подход за скриптове е стратегия за паралелен сензор. Разположете специален сензор ESPHome или Mopeka за скриптове на Home Assistant (където имате пълен контрол), докато Otodata или Nee-Vo управляват автоматизацията на доставчика независимо. Това ви дава най-доброто от двата свята: автоматизирани презареждания от програмата на доставчика и пълна собственост върху данните + скриптове за автоматизация от вашия собствен сензор.
Скрипт 1: Проучване на REST API за домашен асистент за 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" заглавия: Разрешение: "Носител" 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: "измерване" state_class: "измерване" икона: "mdi:пропан-резервоар" - име: "Nee-Vo пропанови галони" value_template: "{{ (value_json.gallons_remaining|float)|round(1) }}" unit_of_measurement: "gal" икона: "mdi:gas-cylinder" - name: "Nee-Vo Tank Temperature" value_template: "{{ (value_json.tank_temperature_f|float)|round(1) }}" unit_of_measurement: "градус F" device_class: "температура" икона: "mdi:термометър" - име: „Nee-Vo ниво на батерията“ value_template: „{{ value_json.battery_percent }}“ unit_of_measurement: „%“ device_class: „battery“ икона: „mdi:battery“ - name: „Nee-Vo сила на сигнала“ value_template: „{{ value_json.signal_rssi }}" unit_of_measurement: "dBm" икона: "mdi:signal" - name: "Nee-Vo Last Updated" value_template: "{{ value_json.last_reading_timestamp }}" икона: "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 прокси за Otodata & Nee-Vo сензори
Заснемане на BLE реклами от всеки сензор за пропан
Най-гъвкавият скриптов подход за Otodata и Nee-Vo е използването на вградения-in bluetooth_proxy компонент на ESPHome за улавяне на BLE реклами от вашия сензор за резервоар и препращането им към Home Assistant. Това работи независимо дали Otodata или Nee-Vo излага API:
yaml复制
# ESPHome BLE прокси - propane_ble_proxy.yaml # Флаширайте това към ESP32, поставен в рамките на 30-50 фута от вашия резервоар за пропан esphome: име: propane-ble-прокси платформа: ESP32 платка: esp32dev friendly_name: "Propane Tank BLE Proxy" wifi: ssid: "YOUR_WIFI_SSID" парола: "YOUR_WIFI_PASSWORD" # Активиране на резервна гореща точка в случай, че WiFi не успее ap: ssid: "Резервна гореща точка на PropaneProxy" # Активиране на Bluetooth прокси за улавяне на всички BLE реклами bluetooth_proxy: active: true # Списък на конкретни MAC адреси в белия списък (по избор - коментар за улавяне на всички) # бял списък: # - "AA:BB:CC:DD:EE:FF" # Вашите Otodata или Nee-Vo сензор MAC # Регистрирайте всички заснети BLE реклами за отстраняване на грешки logger: level: DEBUG регистрационни файлове: esp32_ble_tracker: INFO bluetooth_proxy: INFO # По избор: Добавете локален сензор за измерване на температурата близо до сензора на резервоара: - платформа: dht щифт: GPIO27 модел: DHT22 температура: име: "Температура на зоната на резервоара" unit_of_measurement: "градус F" филтри: - ламбда: "връщане 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: парола: "YOUR_OTA_PASSWORD" # Управление на захранването - поддържа ESP32 буден за непрекъснато BLE мониторинг power_supply: id: vcc pin: VUSB
За да използвате този скрипт:
Инсталирайте ESPHome (pip инсталирайте 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 тригер: платформа: 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 trigger: platform: numeric_state entity_id: sensor.propane_tank_level по-долу: 30 условие: - условие: време след: "20:00:00" преди: "06:00:00" - условие: състояние entity_id: климат.главен_термостат състояние: "топлина" действие: - услуга: климат.set_temperature entity_id: климат.главен_термостат данни: температура: 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: propane_leak_detection trigger: 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: сензор: # ───────────────────────────────────────────── # Оставащи дни въз основа на текущия процент на потребление # ───────────────────────────────────────────── - име: "Оставащи дни пропан" unit_of_measurement: "дни" икона: "mdi:calendar-clock" състояние: > {% зададено ниво=състояния ('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {# Gallons - промяна на вашия размер на резервоара #} {% set gallons_left=(ниво / 100) * tank_size %} {% set daily_rate=states('sensor.propane_daily_consumption')|float %} {% ако daily_rate > 0 и gallons_left > 0 %} {{ (gallons_left / daily_rate)|кръг(1) }} {% else %} Неизвестен {% endif %} # ───────────────────────────────────────────── # Обща стойност в долари на оставащия пропан # ───────────────────────────────────────────── - име: "Оставаща стойност на пропан в долари" unit_of_measurement: "USD" икона: "mdi:currency-usd" състояние: > {% зададено ниво=състояния ('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 %} {% if level > 50 %} Пълно {% elif ниво > 30 %} Нормално {% elif ниво > 15 %} Ниско {% elif ниво > 5 %} Критично {% else %} Празно {% endif %} # ───────────────────────────────────────── # Оценка на разходите за зареждане # ─────────────────────────────────────────── - name: "Прогноза за разходите за зареждане с пропан" unit_of_measurement: икона "USD": "mdi:currency-usd" състояние: > {% зададено ниво=състояния ('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: 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 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":"Изпращане на предупреждение","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":[[]]}]
За да използвате този възел-RED поток:
Инсталирайте добавката Node-RED в Home Assistant (чрез Settings → Add-ons)
Отворете Node-RED в браузъра си
Импортирайте потока (Меню → Импортиране → поставете JSON по-горе)
Актуализирайте URL адреса на API и идентификационните данни във възела propane_fetch
Актуализирайте propane_notify_critical и други възли за уведомяване с вашите действителни идентификатори на обект Home Assistant
Разгърнете потока
Сценарий 7: Обобщено известие за ежедневен пропан
Доклад за състоянието в края--на деня
Този скрипт изпраща ежедневна обобщена информация за състоянието на пропан в удобно време всяка вечер:
yaml复制
автоматизация: - псевдоним: „Ежедневно обобщение за пропан - 8 следобед“ id: daily_propane_summary тригер: платформа: час в: „20:00:00“ действие: - услуга: notify.mobile_app_yourphone данни: заглавие: „📊 Дневен отчет за пропан“ съобщение: > Ниво на резервоара: {{ 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-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 се задействат незабавно, когато нивото премине праг, независимо от интервала на запитване. Задайте ежедневното си обобщено известие за постоянен час всяка вечер (препоръчително: 19–20 ч.), за да получавате редовен отчет за състоянието без умора от предупреждения.
В4: Могат ли тези скриптове да работят с множество танкове?
Да - всички скриптове в това ръководство поддържат няколко резервоара. За проучване на 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 за всеки резервоар.
В5: Как да отстраня грешки в скрипт, който не работи?
За REST API скриптове: използвайте инструментите за разработчици на Home Assistant (Настройки → Инструменти за разработчици → Редактор на шаблони), за да тествате вашия value_template срещу необработени JSON данни. Копирайте примерен отговор на API и го поставете в редактора на шаблони, за да проверите дали извличането на вашия JSON път е правилно. За ESPHome BLE прокси скриптове: проверете регистрационните файлове на ESPHome (esphome logs propane_ble_proxy), за да видите дали се улавят BLE реклами - ако видите необработени MAC адреси, но няма четими данни, сензорът излъчва, но форматът не е разпознат. За скриптове за автоматизация: използвайте инструмента за проследяване на Home Assistant (раздел Traces на всяка автоматизация), за да видите какво точно е задействало, какви условия са оценени и какви действия са извършени. Инструментът за проследяване е най-мощният инструмент за отстраняване на грешки в Home Assistant - той показва точното състояние на всеки обект в момента на задействане на автоматизацията.
Долната линия
Мониторите за резервоар за пропан Otodata и Nee-Vo се подхождат най-добре чрез стратегия за паралелно писане на скриптове: използвайте платформата на доставчика (Otodata или Nee-Vo) за автоматизирано планиране на презареждане и разположете свой собствен сензор ESPHome или Mopeka за пълен контрол върху скриптовете на Home Assistant. Седемте скрипта в това ръководство - Проучване на REST API, ESPHome BLE прокси, три нива на автоматизации за предупреждение (предупреждение/зареждане/критично), скриптове за интегриране на интелигентен дом (термостат, вентили, светлини), шаблонни сензори за извлечени стойности, възел-ЧЕРВЕН визуален поток и ежедневно обобщено известие - ви дават пълна автоматизирана система за наблюдение на пропан, която работи изцяло локално в Домашен асистент. Колективният опит на общността на 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.
