# ---- 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'] }}