various tidyups
This commit is contained in:
@@ -1,3 +1,28 @@
|
||||
#:########################################################################################:#
|
||||
# Package: Pet Feeding and Jobs Timing
|
||||
# File: pet_feeding_and_jobs.yaml
|
||||
# Version: v1.1.0
|
||||
# Date: 2026-07-21
|
||||
#
|
||||
# Purpose:
|
||||
# Provides legacy MQTT pet activity sensors and Jobs-derived timing sensors for
|
||||
# the Lounge dog-feeding and depooping gauges.
|
||||
#
|
||||
# Behaviour:
|
||||
# - Dog feeding reports the newest valid morning or evening completion time.
|
||||
# - Dog depooping reports the weekly Jobs completion time.
|
||||
# - Invalid or unrestored Jobs attributes make a timing sensor unavailable
|
||||
# instead of exposing a numeric sentinel value.
|
||||
#
|
||||
# Version History:
|
||||
# - v1.1.0 (2026-07-21): Reject invalid Jobs timing attributes and remove the
|
||||
# 999999-hour fallback from the dog-feeding gauge source.
|
||||
# - v1.0.0 (2026-07-21): Added Jobs-derived dog timing sensors for P010.
|
||||
#:########################################################################################:#
|
||||
|
||||
#:######################################################################################:#
|
||||
# LEGACY MQTT PET ACTIVITY AND TIMING SENSORS
|
||||
#:######################################################################################:#
|
||||
mqtt:
|
||||
sensor:
|
||||
- unique_id: dog_fed_activity
|
||||
@@ -25,6 +50,9 @@ mqtt:
|
||||
state_topic: "viewroad-tele/petfeeding/hoursSinceDePooped"
|
||||
unit_of_measurement: "Hours"
|
||||
|
||||
#:######################################################################################:#
|
||||
# JOBS-DERIVED LOUNGE GAUGE SENSORS
|
||||
#:######################################################################################:#
|
||||
template:
|
||||
- sensor:
|
||||
- name: "Jobs Tracker Hours Since Dog Fed"
|
||||
@@ -34,19 +62,21 @@ template:
|
||||
unit_of_measurement: "h"
|
||||
icon: "mdi:dog-side"
|
||||
availability: >-
|
||||
{{
|
||||
state_attr('sensor.jobs_tracker_dog_feeding_morning', 'hours_since_completed') is not none
|
||||
or state_attr('sensor.jobs_tracker_dog_feeding_evening', 'hours_since_completed') is not none
|
||||
}}
|
||||
{% set morning = state_attr('sensor.jobs_tracker_dog_feeding_morning', 'hours_since_completed') %}
|
||||
{% set evening = state_attr('sensor.jobs_tracker_dog_feeding_evening', 'hours_since_completed') %}
|
||||
{{ is_number(morning) or is_number(evening) }}
|
||||
state: >-
|
||||
{{
|
||||
[
|
||||
state_attr('sensor.jobs_tracker_dog_feeding_morning', 'hours_since_completed') | float(999999),
|
||||
state_attr('sensor.jobs_tracker_dog_feeding_evening', 'hours_since_completed') | float(999999)
|
||||
]
|
||||
| min
|
||||
| round(0)
|
||||
}}
|
||||
{% set morning = state_attr('sensor.jobs_tracker_dog_feeding_morning', 'hours_since_completed') %}
|
||||
{% set evening = state_attr('sensor.jobs_tracker_dog_feeding_evening', 'hours_since_completed') %}
|
||||
{% if is_number(morning) and is_number(evening) %}
|
||||
{{ [morning | float(0), evening | float(0)] | min | round(0) }}
|
||||
{% elif is_number(morning) %}
|
||||
{{ morning | float(0) | round(0) }}
|
||||
{% elif is_number(evening) %}
|
||||
{{ evening | float(0) | round(0) }}
|
||||
{% else %}
|
||||
{{ none }}
|
||||
{% endif %}
|
||||
|
||||
- name: "Jobs Tracker Hours Since Dog Depooped"
|
||||
unique_id: "jobs_tracker_hours_since_dog_depooped"
|
||||
@@ -55,6 +85,8 @@ template:
|
||||
unit_of_measurement: "h"
|
||||
icon: "mdi:emoticon-poop"
|
||||
availability: >-
|
||||
{{ state_attr('sensor.jobs_tracker_dog_depooping', 'hours_since_completed') is not none }}
|
||||
{% set hours = state_attr('sensor.jobs_tracker_dog_depooping', 'hours_since_completed') %}
|
||||
{{ is_number(hours) }}
|
||||
state: >-
|
||||
{{ state_attr('sensor.jobs_tracker_dog_depooping', 'hours_since_completed') | float(none) }}
|
||||
{% set hours = state_attr('sensor.jobs_tracker_dog_depooping', 'hours_since_completed') %}
|
||||
{{ hours | float(0) if is_number(hours) else none }}
|
||||
|
||||
Reference in New Issue
Block a user