Added UPS monioring entities and dashboard

This commit is contained in:
2025-12-23 00:56:25 +01:00
parent cdb498be6a
commit c2d91b3646
5 changed files with 204 additions and 10 deletions

174
mqtt.yaml
View File

@@ -1,5 +1,17 @@
---
- sensor:
# DO NOT REMOVE: Essential for ZIGBEE2MQTT
- name: Zigbee2mqtt Networkmap
unique_id: zigbee2mqtt_bridge_network_map
# if you change base_topic of Zigbee2mqtt, change state_topic accordingly
state_topic: zigbee2mqtt/bridge/response/networkmap
value_template: >-
{{ now().strftime('%Y-%m-%d %H:%M:%S') }}
# again, if you change base_topic of Zigbee2mqtt, change json_attributes_topic accordingly
json_attributes_topic: zigbee2mqtt/bridge/response/networkmap
json_attributes_template: "{{ value_json.data.value | tojson }}"
# HP / Solaredge / ACS published values
- name: HP_power
unit_of_measurement: "W"
unique_id: mon_hp_pw
@@ -71,12 +83,158 @@
state_topic: etcontroller/sw/answers
value_template: >-
{{ value_json['values'].level }}
- name: Zigbee2mqtt Networkmap
unique_id: zigbee2mqtt_bridge_network_map
# if you change base_topic of Zigbee2mqtt, change state_topic accordingly
state_topic: zigbee2mqtt/bridge/response/networkmap
# UPS vmonitoring entiities from upsmon running on
# popeye for UPS TERRA
# seneca for UPS TITAN
# tazmania for UPS TAZMANIA
# UPS Battery Volts
- name: ups_terra_status
unique_id: sensor.ups_terra_status
state_topic: monitoring/ups/status
value_template: >-
{{ now().strftime('%Y-%m-%d %H:%M:%S') }}
# again, if you change base_topic of Zigbee2mqtt, change json_attributes_topic accordingly
json_attributes_topic: zigbee2mqtt/bridge/response/networkmap
json_attributes_template: "{{ value_json.data.value | tojson }}"
{% if value_json[1].upsname == 'TERRA' %}
{{ value_json[0].status }}
{% else %}
{{ states('sensor.ups_terra_status') }}
{% endif %}
- name: ups_tazmania_status
unique_id: sensor.ups_tazmania_status
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TAZMANIA' %}
{{ value_json[0].status }}
{% else %}
{{ states('sensor.ups_tazmania_status') }}
{% endif %}
- name: ups_titan_status
unique_id: sensor.ups_titan_status
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TITAN' %}
{{ value_json[0].status }}
{% else %}
{{ states('sensor.ups_titan_status') }}
{% endif %}
# UPS Battery Charge
- name: ups_terra_charge
unique_id: sensor.ups_terra_charge
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TERRA' %}
{{ value_json[0].bcharge | int }}
{% else %}
{{ states('sensor.ups_terra_charge') | int }}
{% endif %}
- name: ups_tazmania_charge
unique_id: sensor.ups_tazmania_charge
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TAZMANIA' %}
{{ value_json[0].bcharge | int }}
{% else %}
{{ states('sensor.ups_tazmania_charge') | int }}
{% endif %}
- name: ups_titan_charge
unique_id: sensor.ups_titan_charge
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TITAN' %}
{{ value_json[0].bcharge | int }}
{% else %}
{{ states('sensor.ups_titan_charge') | int }}
{% endif %}
# UPS Time left before Exhaustion
- name: ups_terra_timeleft
unique_id: sensor.ups_terra_timeleft
state_topic: monitoring/ups/status
unit_of_measurement: "Min."
value_template: >-
{% if value_json[1].upsname == 'TERRA' %}
{{ (value_json[0].timeleft | int) }}
{% else %}
{{ states('sensor.ups_terra_timeleft') }}
{% endif %}
- name: ups_tazmania_timeleft
unique_id: sensor.ups_tazmania_timeleft
state_topic: monitoring/ups/status
unit_of_measurement: "Min."
value_template: >-
{% if value_json[1].upsname == 'TAZMANIA' %}
{{ value_json[0].timeleft | int }}
{% else %}
{{ states('sensor.ups_tazmania_timeleft') }}
{% endif %}
- name: ups_titan_timeleft
unique_id: sensor.ups_titan_timeleft
state_topic: monitoring/ups/status
unit_of_measurement: "Min."
value_template: >-
{% if value_json[1].upsname == 'TITAN' %}
{{ value_json[0].timeleft | int }}
{% else %}
{{ states('sensor.ups_titan_timeleft') }}
{% endif %}
# UPS Battery Volts
- name: ups_terra_battv
unique_id: sensor.ups_terra_battv
state_topic: monitoring/ups/status
unit_of_measurement: "V"
value_template: >-
{% if value_json[1].upsname == 'TERRA' %}
{{ value_json[0].battv | float }}
{% else %}
{{ states('sensor.ups_terra_battv') }}
{% endif %}
- name: ups_tazmania_battv
unique_id: sensor.ups_tazmania_battv
state_topic: monitoring/ups/status
unit_of_measurement: "V"
value_template: >-
{% if value_json[1].upsname == 'TAZMANIA' %}
{{ value_json[0].battv | float }}
{% else %}
{{ states('sensor.ups_tazmania_battv') }}
{% endif %}
- name: ups_titan_battv
unique_id: sensor.ups_titan_battv
state_topic: monitoring/ups/status
unit_of_measurement: "V"
value_template: >-
{% if value_json[1].upsname == 'TITAN' %}
{{ value_json[0].battv | float }}
{% else %}
{{ states('sensor.ups_titan_battv') }}
{% endif %}
# UPS load percentage
- name: ups_terra_loadpct
unique_id: sensor.ups_terra_loadpct
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TERRA' %}
{{ value_json[0].loadpct | int }}
{% else %}
{{ states('sensor.ups_terra_loadpct') }}
{% endif %}
- name: ups_tazmania_loadpct
unique_id: sensor.ups_tazmania_loadpct
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TAZMANIA' %}
{{ value_json[0].loadpct | int }}
{% else %}
{{ states('sensor.ups_tazmania_loadpct') }}
{% endif %}
- name: ups_titan_loadpct
unique_id: sensor.ups_titan_loadpct
state_topic: monitoring/ups/status
value_template: >-
{% if value_json[1].upsname == 'TITAN' %}
{{ value_json[0].loadpct | int }}
{% else %}
{{ states('sensor.ups_titan_loadpct') }}
{% endif %}