37 lines
1.2 KiB
YAML
37 lines
1.2 KiB
YAML
# ---- HTTP health probe ----
|
|
binary_sensor:
|
|
- platform: rest
|
|
name: Node-RED Panda Up (HTTP)
|
|
resource: http://192.168.3.200:1880/healthz
|
|
method: GET
|
|
device_class: connectivity
|
|
value_template: "{{ value_json.status == 'ok' }}"
|
|
timeout: 3
|
|
scan_interval: 30
|
|
|
|
# ---- MQTT Will/Birth probe ----
|
|
mqtt:
|
|
binary_sensor:
|
|
- name: "Node-RED Panda Up (MQTT)"
|
|
unique_id: "nodered_panda_up_mqtt"
|
|
state_topic: "nodered/panda/status"
|
|
payload_on: "online"
|
|
payload_off: "offline"
|
|
device_class: connectivity
|
|
qos: 1
|
|
# Optional: avoid stale 'online' if no updates arrive
|
|
expire_after: 180
|
|
|
|
# ---- Combine them (true if either is up) ----
|
|
template:
|
|
- binary_sensor:
|
|
- name: "Node-RED Panda Up (HTTP/MQTT)"
|
|
unique_id: "nodered_panda_up_combined"
|
|
device_class: connectivity
|
|
state: >
|
|
{{ is_state('binary_sensor.node_red_panda_up_http','on')
|
|
or is_state('binary_sensor.node_red_panda_up_mqtt','on') }}
|
|
availability: >
|
|
{{ states('binary_sensor.node_red_panda_up_http') not in ['unknown','unavailable']
|
|
or states('binary_sensor.node_red_panda_up_mqtt') not in ['unknown','unavailable'] }}
|