mqtt: sensor: - unique_id: cctvquad1_cpu_temp state_topic: "viewroad-status/rpis/cctvquad1/cpu-temp" name: "CCTVQuad1 CPU Temperature" unit_of_measurement: "°C" device_class: temperature state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:thermometer - unique_id: cctvquad1_cpu_use state_topic: "viewroad-status/rpis/cctvquad1/cpu-use" name: "CCTVQuad1 CPU Use" unit_of_measurement: "%" state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:cpu-32-bit - unique_id: cctvquad1_ram_use state_topic: "viewroad-status/rpis/cctvquad1/ram-use" name: "CCTVQuad1 RAM Use" unit_of_measurement: "%" state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:raspberry-pi - unique_id: cctvquad1_disk_use state_topic: "viewroad-status/rpis/cctvquad1/disk-use" name: "CCTVQuad1 Disk Use" unit_of_measurement: "%" state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:harddisk - unique_id: cctvquad1_uptime state_topic: "viewroad-status/rpis/cctvquad1/uptime" name: "CCTVQuad1 Uptime" icon: mdi:timer - unique_id: cctvquad1_last_seen state_topic: "viewroad-status/rpis/cctvquad1/last-seen" name: "CCTVQuad1 Last Seen" icon: mdi:calendar-clock - unique_id: cctvquad1_ipv4_address state_topic: "viewroad-status/rpis/cctvquad1/ipv4-address" name: "CCTVQuad1 IPv4 Address" icon: mdi:server-network - unique_id: cctvquad2_cpu_temp state_topic: "viewroad-status/rpis/cctvquad2/cpu-temp" name: "CCTVQuad2 CPU Temperature" unit_of_measurement: "°C" device_class: temperature state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:thermometer - unique_id: cctvquad2_cpu_use state_topic: "viewroad-status/rpis/cctvquad2/cpu-use" name: "CCTVQuad2 CPU Use" unit_of_measurement: "%" state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:cpu-32-bit - unique_id: cctvquad2_ram_use state_topic: "viewroad-status/rpis/cctvquad2/ram-use" name: "CCTVQuad2 RAM Use" unit_of_measurement: "%" state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:raspberry-pi - unique_id: cctvquad2_disk_use state_topic: "viewroad-status/rpis/cctvquad2/disk-use" name: "CCTVQuad2 Disk Use" unit_of_measurement: "%" state_class: measurement value_template: "{{ value | float(0) }}" icon: mdi:harddisk - unique_id: cctvquad2_uptime state_topic: "viewroad-status/rpis/cctvquad2/uptime" name: "CCTVQuad2 Uptime" icon: mdi:timer - unique_id: cctvquad2_last_seen state_topic: "viewroad-status/rpis/cctvquad2/last-seen" name: "CCTVQuad2 Last Seen" icon: mdi:calendar-clock - unique_id: cctvquad2_ipv4_address state_topic: "viewroad-status/rpis/cctvquad2/ipv4-address" name: "CCTVQuad2 IPv4 Address" icon: mdi:server-network switch: - unique_id: cctvquad1_reboot name: "CCTVQuad1 Reboot" state_topic: "viewroad-status/rpis/cctvquad1/reboot" command_topic: "viewroad-commands/rpis/cctvquad1/reboot/set" qos: 1 optimistic: false retain: false icon: mdi:refresh - unique_id: cctvquad1_shutdown name: "CCTVQuad1 Shutdown" state_topic: "viewroad-status/rpis/cctvquad1/shutdown" command_topic: "viewroad-commands/rpis/cctvquad1/shutdown/set" qos: 1 optimistic: false retain: false icon: mdi:close-network - unique_id: cctvquad2_reboot name: "CCTVQuad2 Reboot" state_topic: "viewroad-status/rpis/cctvquad2/reboot" command_topic: "viewroad-commands/rpis/cctvquad2/reboot/set" qos: 1 optimistic: false retain: false icon: mdi:refresh - unique_id: cctvquad2_shutdown name: "CCTVQuad2 Shutdown" state_topic: "viewroad-status/rpis/cctvquad2/shutdown" command_topic: "viewroad-commands/rpis/cctvquad2/shutdown/set" qos: 1 optimistic: false retain: false icon: mdi:close-network template: - binary_sensor: - name: "CCTV Quad1 Available" unique_id: pi_cctvquad1_on device_class: connectivity state: > {% set now_ts = as_timestamp(now()) %} {% set last_ts = as_timestamp(states('sensor.cctvquad1_last_seen'), default=0) %} {% set age = now_ts - last_ts %} {{ last_ts > 0 and age >= 0 and age <= 180 }} - name: "CCTV Quad2 Available" unique_id: pi_cctvquad2_on device_class: connectivity state: > {% set now_ts = as_timestamp(now()) %} {% set last_ts = as_timestamp(states('sensor.cctvquad2_last_seen'), default=0) %} {% set age = now_ts - last_ts %} {{ last_ts > 0 and age >= 0 and age <= 180 }} group: pi_cctvquad1_on: name: "RPi CCTV Quad1" #control: hidden entities: - sensor.cctvquad1_ipv4_address - sensor.cctvquad1_uptime - switch.cctvquad1_reboot - switch.cctvquad1_shutdown - sensor.cctvquad1_cpu_temperature - sensor.cctvquad1_cpu_use - sensor.cctvquad1_ram_use - sensor.cctvquad1_disk_use - sensor.cctvquad1_last_seen pi_cctvquad2_on: name: "RPi CCTV Quad2" #control: hidden entities: - sensor.cctvquad2_ipv4_address - sensor.cctvquad2_uptime - switch.cctvquad2_reboot - switch.cctvquad2_shutdown - sensor.cctvquad2_cpu_temperature - sensor.cctvquad2_cpu_use - sensor.cctvquad2_ram_use - sensor.cctvquad2_disk_use - sensor.cctvquad2_last_seen