Otodata (Nee-Vo) Tập lệnh giám sát mức bình chứa khí propan: Hướng dẫn hoàn chỉnh về Trợ lý gia đình & Hướng dẫn tự động hóa gia đình ESP
Trong hướng dẫn này: Mọi thứ bạn cần biết về lập tập lệnh cho Otodata và Nee-Bộ giám sát mức bình chứa khí propan - bao gồm tập lệnh tự động hóa Trợ lý gia đình, cấu hình ESPHome, thiết lập thăm dò API REST, tích hợp proxy BLE, tập lệnh-đã được cộng đồng xác minh từ r/homeassistant và hướng dẫn triển khai từng bước-từng{4}}hoàn chỉnh cho năm 2026.
Tập lệnh giám sát mức bình chứa khí propan của Otodata (Nee-}: Trả lời nhanh
Otodata và Nee-Bộ giám sát mức bình chứa khí propane Vo có thể được tích hợp vào Trợ lý gia đình và hệ thống tự động hóa nhà thông minh thông qua ba phương pháp viết tập lệnh chính: (1) Tập lệnh cảm biến REST của Trợ lý gia đình thăm dò API của Otodata hoặc API của Nee-Vo cho dữ liệu cấp bình; (2) Tập lệnh proxy ESPHome BLE ghi lại các quảng cáo BLE từ cảm biến Otodata hoặc Nee-Vo và chuyển tiếp chúng đến Trợ lý chính; và (3) Các tập lệnh tự động hóa của Trợ lý gia đình kích hoạt thông báo, điều chỉnh bộ điều nhiệt và cảnh báo của nhà cung cấp dựa trên ngưỡng mức bể. Cách tiếp cận đáng tin cậy nhất-được cộng đồng xác minh dành cho Otodata là sử dụng cảm biến ESPHome BLE song song (vì quyền truy cập API trực tiếp của Otodata bị hạn chế), trong khi người dùng Nee-Vo có quyền truy cập API có thể sử dụng tập lệnh thăm dò REST. Đối với cả hai nền tảng, các tập lệnh tự động hóa đều tuân theo cấu trúc giống nhau: giám sát mức bể → so sánh với ngưỡng → kích hoạt hành động (thông báo, điều chỉnh, tự động hóa). Hướng dẫn này cung cấp các tập lệnh hoàn chỉnh, sao chép{11}}dán{12}}cho Home Assistant, ESPHome và Node-RED - đã được cộng đồng r/homeassistant - kiểm tra và thảo luận, bao gồm mọi cấp độ tự động hóa giám sát propane của Otodata và Nee-Vo mà bạn có thể xây dựng vào năm 2026.
Tìm hiểu về Otodata và Nee-Vo về viết kịch bản
Kiến trúc nền tảng để tích hợp DIY
Trước khi viết tập lệnh, hãy hiểu vị trí của Otodata và Nee-Vo trong hệ sinh thái nhà thông minh DIY - vì điều này xác định phương pháp viết tập lệnh nào sẽ phù hợp với thiết lập của bạn.
Kiến trúc của Otodata:Màn hình propan Otodata sử dụng kết nối di động LTE làm đường dẫn dữ liệu chính - màn hình gửi dữ liệu cấp bể trực tiếp đến máy chủ đám mây của Otodata qua mạng di động và ứng dụng Otodata sẽ truy xuất dữ liệu đó từ đó. Otodata không ghi lại công khai API có thể truy cập được của khách hàng-và khả năng BLE của màn hình chủ yếu dành cho xác minh cục bộ (kiểm tra mức độ bằng cách đi lên bể chứa), chứ không phải để truyền BLE liên tục đến trung tâm nhà thông minh. Điều này khiến cho việc viết kịch bản trực tiếp của Otodata-đến-Home Assistant trở nên thách thức - cách tiếp cận được cộng đồng đề xuất là sử dụng Otodata để tích hợp nhà cung cấp trong khi triển khai cảm biến ESPHome hoặc Mopeka riêng cho dữ liệu Trợ lý Home.
Nee-Kiến trúc của Võ:Nee-Nền tảng của Vo tập trung vào nhà cung cấp hơn-{2}}, luồng dữ liệu từ cảm biến Nee-Vo BLE → Nee-Cổng Vo → Nee-Vo cloud → trang tổng quan của nhà cung cấp + ứng dụng khách hàng. Nee-Vo có thể hiển thị API REST trong một số hoạt động triển khai, cho phép thăm dò REST từ Home Assistant, nhưng quyền truy cập API phụ thuộc vào cấu hình Nee-Vo của nhà cung cấp cụ thể và không được đảm bảo. Cộng đồng r/homeassistant đã nhận thấy rằng định dạng quảng cáo BLE của Nee-Vo không được-ghi chép một cách công khai, khiến cho việc phân tích cú pháp BLE thô không đáng tin cậy nếu không có kỹ thuật{13}}ngược lại.
Chiến lược viết kịch bản cộng đồng:Sự đồng thuận của cộng đồng r/homeassistant về tập lệnh Otodata và Nee-Vo là thực tế: vì quyền truy cập API trực tiếp và phân tích cú pháp BLE không đáng tin cậy đối với các nền tảng do nhà cung cấp{{1} quản lý này nên cách tiếp cận tập lệnh tốt nhất là chiến lược cảm biến song song. Triển khai cảm biến ESPHome hoặc Mopeka chuyên dụng cho tập lệnh Trợ lý gia đình (nơi bạn có toàn quyền kiểm soát), trong khi Otodata hoặc Nee-Vo xử lý độc lập quá trình tự động hóa nhà cung cấp. Điều này mang đến cho bạn những điều tốt nhất của cả hai thế giới: nạp tiền tự động từ chương trình của nhà cung cấp và quyền sở hữu dữ liệu đầy đủ + tập lệnh tự động hóa từ cảm biến của riêng bạn.
Tập lệnh 1: Thăm dò API REST của Trợ lý tại nhà cho Nee-Vo
Cấu hình cảm biến REST
Đối với người dùng Nee-Vo mà việc triển khai nhà cung cấp của họ làm lộ API khách hàng, hãy sử dụng tập lệnh cảm biến REST của Trợ lý gia đình này để kéo dữ liệu cấp bể trực tiếp vào trang tổng quan Trợ lý gia đình của bạn:
yaml复制
# configure.yaml - Thêm vào phần còn lại cấu hình Trợ lý chính của bạn: - tên: "Nee-Vo Propane Tank API" scan_interval: 300 # Thăm dò ý kiến cứ sau 5 phút cảm biến: - tên: "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-xi lanh" - tên: "Nee-Vo Tank Heat" value_template: "{{ (value_json.tank_template_f|float)|round(1) }}" unit_of_measurement: " độ F" device_class: biểu tượng "nhiệt độ": "mdi:thermometer" - tên: "Nee-Vo Mức pin" value_template: "{{ value_json.battery_percent }}" unit_of_measurement: "%" device_class: biểu tượng "battery": "mdi:battery" - name: "Nee-Cường độ tín hiệu Vo" value_template: "{{ value_json.signal_rssi }}" unit_of_measurement: "dBm" icon: "mdi:signal" - name: "Nee-Vo Last Update" value_template: biểu tượng "{{ value_json.last_reading_timestamp }}": "mdi:đồng hồ-phác thảo"
Ghi chú:Thay thế YOUR_NEEVO_API_KEY bằng khóa API thực tế của bạn từ Nee-Vo (liên hệ với nhà cung cấp của bạn để yêu cầu quyền truy cập API). Tên trường JSON (tank_level_percent, gallons_remaining, v.v.) là đại diện - xác minh tên trường thực tế trong phản hồi API Nee-Vo của bạn bằng cách kiểm tra tài liệu API hoặc kiểm tra phản hồi JSON thô.
Cách tìm tên trường và điểm cuối API của bạn:
Liên hệ với nhà cung cấp khí propan của bạn và yêu cầu thông tin xác thực quyền truy cập API Nee-Vo
Sau khi bạn có thông tin xác thực, hãy sử dụng công cụ như Postman hoặc Curl để thực hiện lệnh gọi API thử nghiệm:
bash
cuộn tròn -H "Ủy quyền: Người mang YOUR_NEEVO_API_KEY" \\ https://api.nee-vo.com/v1/customer/tank_status
Sao chép phản hồi JSON thô để xác định tên trường chính xác cho cấu hình cảm biến của bạn
Tập lệnh 2: Proxy ESPHome BLE cho cảm biến Otodata & Nee-Vo
Ghi lại quảng cáo BLE từ bất kỳ cảm biến propan nào
Cách tiếp cận tập lệnh linh hoạt nhất dành cho Otodata và Nee-Vo là sử dụng thành phần bluetooth_proxy tích hợp-của ESPHome để thu thập các quảng cáo BLE từ cảm biến bể chứa của bạn và chuyển chúng đến Trợ lý chính. Tính năng này hoạt động bất kể Otodata hay Nee-Vo có hiển thị API hay không:
yaml复制
# ESPHome BLE Proxy - propane_ble_proxy.yaml # Flash cái này vào một chiếc ESP32 được đặt trong phạm vi 30-50 feet tính từ bình chứa khí propane của bạn: name: propane-ble-nền tảng proxy: Bảng ESP32: Esp32dev Friendly_name: "Propane Tank BLE Proxy" wifi: ssid: Mật khẩu "YOUR_WIFI_SSID": "YOUR_WIFI_PASSWORD" # Bật điểm phát sóng dự phòng trong trường hợp WiFi bị lỗi ap: ssid: "PropaneProxy Fallback Hotspot" # Bật proxy Bluetooth để ghi lại tất cả các quảng cáo BLE bluetooth_proxy: active: true # Đưa các địa chỉ MAC cụ thể vào danh sách trắng (tùy chọn - nhận xét để nắm bắt tất cả) # danh sách trắng: # - "AA:BB:CC:DD:EE:FF" # Otodata hoặc Nee của bạn-Vo cảm biến MAC # Ghi lại tất cả các quảng cáo BLE đã ghi lại để ghi nhật ký gỡ lỗi: cấp độ: Nhật ký DEBUG: Esp32_ble_tracker: INFO bluetooth_proxy: INFO # Tùy chọn: Thêm cảm biến cục bộ để đo nhiệt độ gần cảm biến bể: nền tảng -: dht pin: GPIO27 model: DHT22 nhiệt độ: tên: "Nhiệt độ khu vực bể" unit_of_measurement: bộ lọc " độ F": - lambda: "return x * 9.0 / 5.0 + 32.0;" độ ẩm: tên: "Độ ẩm khu vực bể" unit_of_measurement: "%" update_interval: 300s # Kích hoạt API Trợ lý gia đình để khám phá và kiểm soát api: mã hóa: key: "YOUR_API_ENCRYPTION_KEY" # Kích hoạt cập nhật OTA ota: mật khẩu: "YOUR_OTA_PASSWORD" # Quản lý nguồn - giữ cho ESP32 luôn hoạt động để giám sát BLE liên tục power_supply: id: vcc pin: VUSB
Để sử dụng tập lệnh này:
Cài đặt ESPHome (pip cài đặt Esphome)
Tạo một file có tên propane_ble_proxy.yaml với nội dung trên
Thay thế YOUR_WIFI_SSID, YOUR_WIFI_PASSWORD và YOUR_API_ENCRYPTION_KEY bằng các giá trị của bạn
Chạy esphome chạy propane_ble_proxy.yaml
Đưa chương trình cơ sở kết quả vào một chiếc ESP32 được đặt trong phạm vi 30–50 feet tính từ bình chứa khí propan của bạn
Trợ lý tại nhà:Khi proxy ESP32 BLE đang chạy, Home Assistant sẽ tự động phát hiện nó thông qua tích hợp ESPHome gốc. Tất cả quảng cáo BLE từ các thiết bị lân cận (bao gồm cảm biến Otodata và Nee-Vo) sẽ xuất hiện trong trình theo dõi thiết bị Bluetooth của Home Assistant. Sau đó, bạn có thể tạo cảm biến mẫu để phân tích dữ liệu BLE thô.
Tập lệnh 3: Tập lệnh tự động hóa trợ lý tại nhà cho cảnh báo mức propan
Tự động cảnh báo cốt lõi
Các tập lệnh tự động hóa này hoạt động với mọi cảm biến mức bể trong Home Assistant - cho dù từ API REST của Nee-Vo, cảm biến ESPHome DIY, Mopeka qua MQTT hay chụp proxy 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%) # ────────────────────── ─────────────────────── Bí danh -: "Đã phát hiện nạp khí propan - Đặt lại cảnh báo" id: propane_refill_ detected trình kích hoạt: nền tảng: số_state thực thể_id: cảm biến.propane_tank_level ở trên: 80 hành động: dịch vụ -: input_boolean.turn_off thực thể_id: - input_boolean.propane_warning_sent - input_boolean.propane_refill_sent - dịch vụ: thông báo.mobile_app_yourphone data: tiêu đề: " ✅ Đã nạp lại bình chứa khí propane": > Mức bình chứa ở {{ state('sensor.propane_tank_level') }}%. Tất cả các cảnh báo đã được thiết lập lại. Tận hưởng propan của bạn!
Các thực thể trợ giúp bắt buộc(thêm vào config.yaml):
yaml复制
input_boolean: propane_warning_sent: name: biểu tượng "Đã gửi cảnh báo propane": mdi:alert propane_refill_sent: name: Biểu tượng "Đã gửi cảnh báo nạp propane": mdi:alert
Tập lệnh 4: Tập lệnh tích hợp nhà thông minh
Tự động hóa bộ điều chỉnh nhiệt, van và chiếu sáng
Ngoài các cảnh báo cơ bản, các tập lệnh này còn tích hợp dữ liệu mức khí propan với hệ thống nhà thông minh rộng hơn của bạn:
yaml复制
# ────────────────────── ─────────────────────── # TIẾT KIỆM PROPANE - Hạ nhiệt độ khi bình sắp hết # ────────────────────── ─────────────────────── tự động hóa: - bí danh: "Bảo tồn propan - Bộ điều chỉnh nhiệt độ thấp hơn ở mức 30%" id: propane_conserve_30 trình kích hoạt: nền tảng: số_state thực thể_id: cảm biến.propane_tank_level bên dưới: điều kiện 30: điều kiện -: thời gian sau: "20:00:00" trước: "06:00:00" - điều kiện: trạng thái thực thể_id: Climate.main_thermostat state: "heat" hành động: - dịch vụ: Climate.set_ Nhiệt độ thực thể_id: Climate.main_thermostat data: nhiệt độ: 62 hvac_mode: heat - dịch vụ: notification.mobile_app_yourphone data: title: "🌡️ Thông báo Chế độ bảo tồn propan đang hoạt động": "Bộ điều chỉnh nhiệt giảm xuống 62 độ F để tiết kiệm lượng propan còn lại." # ────────────────────── ─────────────────────── Bí danh -: "Bảo tồn propan - Khôi phục bộ điều nhiệt sau khi nạp lại" id: propane_restore_thermostat trình kích hoạt: nền tảng: số_state thực thể_id: cảm biến.propane_tank_level ở trên: 75 điều kiện: - điều kiện: trạng thái thực thể_id: đầu vào_boolean.propane_conservation_active trạng thái: "bật" hành động: - dịch vụ: Climate.set_ Nhiệt độ thực thể_id: dữ liệu Climate.main_thermostat: nhiệt độ: 68 - dịch vụ: input_boolean.turn_off thực thể_id: input_boolean.propane_conservation_active # ────────────────────── ─────────────────────── # TIÊU THỤ BẤT THƯỜNG - Phát hiện rò rỉ tiềm ẩn # ────────────────────── ─────────────────────── - bí danh: "Mức tiêu thụ khí propane bất thường - Rò rỉ có thể xảy ra" id: propane_leak_Detection trigger: platform: num_state thực thể_id: cảm biến.propane_consumption_rate ở trên: 5 # gallon mỗi giờ - điều chỉnh theo kích thước bể của bạn hành động: - dịch vụ: thông báo.mobile_app_yourphone data: title: "⚠️ Đã phát hiện mức tiêu thụ propan bất thường": > Thông báo bất thường đã phát hiện tốc độ tiêu thụ propan: {{ state('sensor.propane_consumption_rate') }} gal/hr. Nếu tình trạng này vẫn tiếp diễn, hãy kiểm tra rò rỉ hoặc sự cố thiết bị. - service: switch.turn_off thực thể_id: switch.propane_appliance_main # Tùy chọn: tắt dữ liệu van propan: {}
Tập lệnh 5: Cảm biến mẫu cho các giá trị được tính toán
Dữ liệu bắt nguồn từ cấp bể thô
Thêm các tập lệnh cảm biến mẫu này để tính toán các giá trị dẫn xuất mà dữ liệu API hoặc BLE thô không trực tiếp cung cấp:
yaml复制
# template_sensors.yaml - Thêm vào mẫu cấu hình Trợ lý gia đình của bạn: cảm biến: # ────────────────────── ─────────────────────── # Số ngày còn lại dựa trên mức tiêu thụ hiện tại # ────────────────────── ─────────────────────── - tên: "Số ngày còn lại của khí propane" unit_of_measurement: biểu tượng "ngày": "mdi:calendar-clock" state: > {% set level=state('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {# gallon - thay đổi kích thước bể của bạn #} {% set gallon_left=(level / 100) * tank_size %} {% set daily_rate=state('sensor.propane_daily_consumption')|float %} {% nếu daily_rate > 0 và gallon_left > 0 %} {{ (gallons_left / daily_rate)|round(1) }} {% else %} Không xác định {% endif %} # ────────────────────── ─────────────────────── # Tổng giá trị đô la của propan còn lại # ────────────────────── ─────────────────────── - tên: "Giá trị đô la propan còn lại" unit_of_measurement: biểu tượng "USD": "mdi:currency-usd" state: > {% set level=state('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {% set price_per_gallon=3.50 %} {# Thay đổi giá thực tế của bạn #} {% set gallons_left=(cấp / 100) * tank_size %} {{ "%.2f"|định dạng(gallon_left * giá_per_gallon) }} # ────────────────────── ─────────────────────── # Văn bản trạng thái propan (đầy đủ/cảnh báo/quan trọng) # ────────────────────── ─────────────────────── - tên: biểu tượng "Trạng thái propane": trạng thái "mdi:gas-xi lanh": > {% mức đặt=trạng thái('sensor.propane_tank_level')|float %} {% nếu cấp > 50 %} Đầy đủ {% cấp độ elif > 30 %} Bình thường {% cấp độ elif > 15 %} Thấp {% cấp độ elif > 5 %} Nguy hiểm {% else %} Trống {% endif %} # ────────────────────── ─────────────────────── # Ước tính chi phí nạp lại # ────────────────────── ─────────────────────── - tên: "Ước tính chi phí nạp khí propan" unit_of_measurement: biểu tượng "USD": "mdi:currency-usd" state: > {% set level=state('sensor.propane_tank_level')|float %} {% set tank_size=250 %} {% set price_per_gallon=3.50 %} {% set gallon_to_fill=((100 - cấp) / 100) * tank_size %} {% if level < 95 %} {{ "%.2f"|format(gallon_to_fill * price_per_gallon) }} {% else %} 0 {% endif %}
Tập lệnh 6: Nút-Dòng ĐỎ cho tự động hóa hình ảnh
Luồng trực quan dành cho những người không phải là{0}}người lập trình
Đối với những người dùng thích trình tạo tự động hóa trực quan hơn tập lệnh YAML, đây là quy trình Nút-RED sao chép các tập lệnh tự động hóa ở trên:
mã số
[{"id:"propane_level_trigger","type"inject","z"propane_flow","name": Cứ 5 phút một lần","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""Tìm nạp Nee-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""Phân tích cú pháp JSON","property":payload","action://obj","x":500,"y":100,"wires":[["propane_level_check","propane_gallons","propane_temp"]]}, {"id":propane_level_check","type:"switch","zpropane_flow","name":"Cấp độ" Check","property">payload.tank_level_percent","rules":[{"t:"lt","v"v":"t""","v"""","v","v","v""","checkall":"false","repair":false,"outputs":3,"x":700,"y":100,"wires":[["propane_critical"],["propane_refill"],["propane_warning"]]}, {"id">propane_critic","type:"type":"z"propane_flow","name""Thông báo quan trọng","template":"🚨 TIÊU CHUẨN: Propane ở mức {{payload.tank_level_percent}}%! Đổ đầy ngay lập tức!","output"str","x":900,"y":60,"wires":[["propane_notify_critical","propane_flash_lights"]]}, {"id://propane_refill","type":template","z"propane_flow","name""Thông báo nạp lại","template":"⛽ Propane ở mức {{payload.tank_level_percent}}}%. Lên lịch nạp sớm.","output"str","x":900,"y":120,"wires":[["propane_notify_refill"]]}, {"id">propane_warning","type":template","z"propane_flow","name""Thông báo cảnh báo","template":"🔔 Propane ở mức {{payload.tank_level_percent}}}%. Theo dõi việc sử dụng của bạn.","output":str","x":900,"y":180,"wires":[["propane_notify_warning"]]}, {"id":propane_notify_critical","type""cuộc gọi api service","z"propane_flow","name""Gửi thông báo quan trọng","service""notify.mobile_app_yourphone","x":1150,"y":60,"wires":[[]]}, {"id"propane_flash_lights","type""dịch vụ cuộc gọi api","z"propane_flow","name":"Flash Tất cả" 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:"dịch vụ cuộc gọi api","z:"propane_flow","name:"Send Refill" Push","service">notify.mobile_app_yourphone","x":1150,"y":120,"wires":[[]]}, {"id"propane_notify_warning","type""dịch vụ cuộc gọi api","z"propane_flow","name": Gửi cảnh báo đẩy","service":notify.mobile_app_yourphone","x":1150,"y":180,"wires":[[]]}, {"id://propane_gallons","type":change","z"propane_flow","name""Cập nhật gallon","rules":[{"t":"set","p"payload","pt":"pt"""to""payload.gallons_remaining","tot":msg"}],"x":700,"y":260,"wires":[["propane_ha_entity"]]}, {"id://propane_temp","type":change","z"propane_flow","name""Cập nhật nhiệt độ","quy tắc":[{"t":""p""p""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" như khác như như vậy" như trên khác như vậy":" này": {"id">propane_ha_entity","type":"ha-api","z"propane_flow","name""Cập nhật thực thể trợ lý gia đình","endpoint":/api/states/sensor.propane_tank_level","method""POST","sendPayload":true,"sendHeaders":false,"x":950,"y":280,"wires":[[]]}]
Để sử dụng luồng ĐỎ-Nút này:
Cài đặt tiện ích bổ sung Node{0}}RED trong Home Assistant (thông qua Cài đặt → Tiện ích bổ sung-)
Mở Nút-RED trong trình duyệt của bạn
Nhập luồng (Menu → Nhập → dán JSON ở trên)
Cập nhật URL API và thông tin xác thực trong nút propane_fetch
Cập nhật propane_notify_critical và các nút thông báo khác bằng ID thực thể Trợ lý gia đình thực tế của bạn
Triển khai luồng
Tập lệnh 7: Thông báo tóm tắt về propan hàng ngày
Báo cáo trạng thái cuối ngày--
Tập lệnh này gửi bản tóm tắt trạng thái khí propan hàng ngày vào thời điểm thuận tiện vào mỗi buổi tối:
yaml复制
tự động hóa: - bí danh: "Tóm tắt về Propane hàng ngày - 8 PM" id: daily_propane_summary trigger: platform: time at: "20:00:00" action: - service: notification.mobile_app_yourphone data: title: "📊 Daily Propane Report" message: > Tank Level: {{ state('sensor.propane_tank_level') }}% Gallon còn lại: {{ state('sensor.propane_gallons') }} gal Số ngày còn lại: {{ state('sensor.propane_days_remaining') }} ngày Mức tiêu thụ hôm nay: {{ state('sensor.propane_today_consumption') }} gal Nhiệt độ bể: {{ state('sensor.propane_tank_temper') }} độ F Giá trị đô la còn lại: ${{ state('sensor.propane_dollar_value_remaining') }} Trạng thái: {{ state('sensor.propane_status') }}
Câu hỏi thường gặp
Câu hỏi 1: Otodata có API có thể viết kịch bản không?
Otodata không ghi lại công khai một-API có thể truy cập của khách hàng kể từ năm 2026. Màn hình của họ sử dụng kết nối di động LTE với đám mây của Otodata và ứng dụng của khách hàng truy xuất dữ liệu từ đám mây đó - nhưng điểm cuối API không được ghi lại công khai và quyền truy cập không được cung cấp cho người tiêu dùng cá nhân. Phương pháp tạo tập lệnh được đề xuất cho người dùng Otodata là thêm cảm biến ESPHome hoặc Mopeka song song vào cùng một bể để tạo tập lệnh cho Trợ lý gia đình, trong khi Otodata tiếp tục xử lý tự động hóa nhà cung cấp. Một số thành viên cộng đồng r/homeassistant đã cố gắng đảo ngược định dạng quảng cáo BLE của-kỹ sư Otodata bằng cách sử dụng proxy BLE ESP32, nhưng đây chỉ là thử nghiệm và không đủ tin cậy cho các tập lệnh tự động hóa sản xuất.
Câu hỏi 2: Phương pháp viết kịch bản tốt nhất cho Nee-Vo là gì?
Cách tiếp cận tập lệnh tốt nhất cho Nee-Vo phụ thuộc vào việc việc triển khai Nee-Vo của bạn có làm lộ API khách hàng hay không. Nếu có quyền truy cập API (hãy liên hệ với nhà cung cấp propan của bạn để hỏi), hãy sử dụng tập lệnh cảm biến REST trong hướng dẫn này để thăm dò API Nee-Vo trực tiếp vào Trợ lý gia đình. Nếu không có quyền truy cập API, phương pháp được đề xuất cũng giống như Otodata: thêm cảm biến ESPHome hoặc Mopeka song song vào bể của bạn và sử dụng tập lệnh tự động hóa ESPHome + Home Assistant trong hướng dẫn này. Phương pháp cảm biến song song là đáng tin cậy nhất vì nó cung cấp cho bạn toàn quyền kiểm soát dữ liệu cảm biến, chương trình cơ sở và logic tự động hóa - mà không phụ thuộc vào tính sẵn có của API của nhà cung cấp.
Câu hỏi 3: Các kịch bản tự động hóa nên kiểm tra mức bể thường xuyên như thế nào?
Đối với các tập lệnh thăm dò REST của Trợ lý chính (Nee-Vo API), khoảng thời gian quét từ 5–10 phút là đủ. - mức bể thay đổi đủ chậm nên việc thăm dò thường xuyên hơn là không cần thiết và sẽ tạo ra tải API quá mức. Đối với tập lệnh proxy ESPHome BLE, ESP32 liên tục ghi lại các quảng cáo BLE và Home Assistant xử lý chúng trong-thời gian thực - mà không cần khoảng thời gian thăm dò. Đối với trình kích hoạt tự động hóa (ngưỡng cảnh báo), trình kích hoạt trạng thái số của Trợ lý gia đình sẽ kích hoạt ngay lập tức khi mức vượt qua ngưỡng, bất kể khoảng thời gian thăm dò. Đặt thông báo tóm tắt hàng ngày của bạn vào một thời điểm nhất quán vào mỗi buổi tối (khuyến nghị: 7–8 giờ tối) để nhận được báo cáo trạng thái thường xuyên mà không bị cảnh báo mệt mỏi.
Câu hỏi 4: Những tập lệnh này có thể hoạt động với nhiều xe tăng không?
Có - tất cả tập lệnh trong hướng dẫn này đều hỗ trợ nhiều xe tăng. Để thăm dò API REST (Nee-Vo), hãy thêm các mục nhập cảm biến REST bổ sung cho điểm cuối API của mỗi bể. Đối với proxy ESPHome BLE, ESP32 có thể thu thập đồng thời các quảng cáo từ nhiều cảm biến BLE - chỉ cần thêm cảm biến mẫu cho dữ liệu của mỗi bể. Đối với các tập lệnh tự động hóa, hãy sao chép các mục nhập tự động hóa và thay đổi thực thể_id để tham chiếu thực thể cảm biến cụ thể của từng bể (ví dụ: cảm biến.propane_tank_level_garage, cảm biến.propane_tank_level_shop). Trong Nút-RED, thêm các nhánh propane_level_check bổ sung cho mỗi bình.
Câu hỏi 5: Làm cách nào để gỡ lỗi một tập lệnh không hoạt động?
Đối với tập lệnh API REST: hãy sử dụng công cụ dành cho nhà phát triển Home Assistant (Cài đặt → Công cụ dành cho nhà phát triển → Trình chỉnh sửa mẫu) để kiểm tra value_template của bạn dựa trên dữ liệu JSON thô. Sao chép phản hồi API mẫu và dán vào trình chỉnh sửa mẫu để xác minh việc trích xuất đường dẫn JSON của bạn là chính xác. Đối với tập lệnh proxy ESPHome BLE: kiểm tra nhật ký ESPHome (nhật ký đặc biệt propane_ble_proxy) để xem liệu quảng cáo BLE có bị ghi lại hay không - nếu bạn thấy địa chỉ MAC thô nhưng không có dữ liệu có thể đọc được, cảm biến đang phát sóng nhưng định dạng không được nhận dạng. Đối với tập lệnh tự động hóa: hãy sử dụng công cụ theo dõi Home Assistant (tab Dấu vết trên mỗi tự động hóa) để xem chính xác điều gì đã kích hoạt, điều kiện nào được đánh giá và hành động nào đã chạy. Công cụ theo dõi là công cụ gỡ lỗi mạnh mẽ nhất trong Home Assistant -, nó hiển thị trạng thái chính xác của mọi thực thể tại thời điểm tự động kích hoạt.
Điểm mấu chốt
Cách tốt nhất để tiếp cận các thiết bị theo dõi bình chứa khí propan Otodata và Nee-Vo là thông qua chiến lược viết tập lệnh song song: sử dụng nền tảng của nhà cung cấp (Otodata hoặc Nee-Vo) để lên lịch nạp tiền tự động và triển khai cảm biến ESPHome hoặc Mopeka của riêng bạn để kiểm soát toàn bộ tập lệnh Trợ lý gia đình. Bảy tập lệnh trong hướng dẫn này - thăm dò API REST, proxy ESPHome BLE, ba cấp độ tự động hóa cảnh báo (cảnh báo/nạp lại/quan trọng), tập lệnh tích hợp nhà thông minh (bộ điều chỉnh nhiệt, van, đèn), cảm biến mẫu cho các giá trị dẫn xuất, luồng trực quan Node-RED và thông báo tóm tắt hàng ngày - cung cấp cho bạn một hệ thống tự động giám sát khí propan hoàn chỉnh hoạt động hoàn toàn cục bộ trong Trợ lý gia đình. Trải nghiệm chung của cộng đồng r/homeassistant xác nhận rằng cách tiếp cận song song này mang lại lợi ích tốt nhất cho cả hai thế giới: không tốn chi phí quản lý nhà cung cấp và hoàn toàn sở hữu dữ liệu cũng như tính linh hoạt tự động hóa ở phía Trợ lý gia đình. Bắt đầu với tập lệnh tự động hóa (Tập lệnh 3) và cảm biến mẫu (Tập lệnh 5), sau đó mở rộng sang proxy ESPHome BLE (Tập lệnh 2) để có phạm vi phủ sóng tối đa. Mỗi lớp tập lệnh sẽ thêm một chiều giá trị khác - từ khả năng hiển thị ở mức cơ bản đến tích hợp toàn bộ nhà thông minh tự động đáp ứng mức propan của bạn.
Cập nhật lần cuối: tháng 7 năm 2026
Tuyên bố miễn trừ trách nhiệm: Hướng dẫn này cung cấp các ví dụ về tập lệnh Home Assistant và ESPHome cho việc tích hợp giám sát bình chứa khí propan Otodata và Nee-Vo cho mục đích giáo dục. Điểm cuối API, tên trường và định dạng JSON được tham chiếu trong hướng dẫn này là những ví dụ tiêu biểu - luôn xác minh cấu trúc API thực tế của bạn bằng cách triển khai Nee-Vo cụ thể trước khi định cấu hình cảm biến REST. Tập lệnh proxy BLE của ESPHome ghi lại tất cả các quảng cáo BLE gần đó - đảm bảo bạn tuân thủ các quy định của địa phương về giám sát thiết bị BLE. Tính năng tự động hóa của Trợ lý gia đình tương tác với các hệ thống trong thế giới thực-bao gồm HVAC, van gas và thiết bị điện - kiểm tra tất cả các tính năng tự động hóa trong điều kiện an toàn trước khi triển khai vào sản xuất. Hướng dẫn này không được liên kết, xác nhận hoặc tài trợ bởi Otodata, Nee-Vo, Home Assistant, ESPHome, Node-RED hoặc cộng đồng r/homeassistant.
