Skip to content

Instantly share code, notes, and snippets.

@juanqui
Created May 25, 2025 00:14
Show Gist options
  • Select an option

  • Save juanqui/f423a061e4411fd82f39c67170ca2f56 to your computer and use it in GitHub Desktop.

Select an option

Save juanqui/f423a061e4411fd82f39c67170ca2f56 to your computer and use it in GitHub Desktop.
Home Assistant YAML Snippet for LeakyRF
# LeakyRF Custom Definition
template:
- sensor:
- name: "LeakyRF 24h Water Usage"
unique_id: leakyrf_24h_water_usage
unit_of_measurement: "gal"
state_class: "measurement"
device_class: "water"
state: >
{% set end_state = states('sensor.leakyrf_total_flow') | float %}
{% set start_state = state_attr('sensor.leakyrf_total_flow', 'last_reset') %}
{% if start_state is not none %}
{% set start = strptime(start_state, '%Y-%m-%dT%H:%M:%S%z') %}
{% if now() - start < timedelta(hours=24) %}
{{ end_state }}
{% else %}
{{ end_state - states('sensor.leakyrf_total_flow', start) | float }}
{% endif %}
{% else %}
{{ end_state }}
{% endif %}
attributes:
last_reset: "{{ now().isoformat() }}"
mqtt:
binary_sensor:
- name: "LeakyRF Gateway Connection"
state_topic: "homeassistant/binary_sensor/leakyrf_gateway_online/state"
unique_id: "leakyrf_gateway_online"
device_class: connectivity
payload_on: "ON"
payload_off: "OFF"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF Sensor Connection"
state_topic: "homeassistant/binary_sensor/leakyrf_sensor_online/state"
unique_id: "leakyrf_sensor_online"
device_class: connectivity
payload_on: "ON"
payload_off: "OFF"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
sensor:
- name: "LeakyRF Gateway Uptime"
state_topic: "leakyrf/gateway/status"
unit_of_measurement: "s"
device_class: "duration"
state_class: "measurement"
value_template: "{{ value_json.uptime }}"
unique_id: "leakyrf_gateway_uptime"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF Battery Voltage"
state_topic: "leakyrf/sensor/540358994/health"
unit_of_measurement: "V"
device_class: "voltage"
value_template: "{{ (value_json.battery_mv / 1000.0) | round(2) }}"
unique_id: "leakyrf_540358994_battery"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF Battery"
state_topic: "leakyrf/sensor/540358994/health"
unit_of_measurement: "%"
device_class: "battery"
state_class: "measurement"
value_template: >-
{% set voltage = value_json.battery_mv / 1000.0 %}
{% if voltage >= 11.2 %}
{{ 100 }}
{% elif voltage <= 8.0 %}
{{ 0 }}
{% else %}
{{ ((voltage - 8.0) / (11.2 - 8.0) * 100) | round(0) }}
{% endif %}
unique_id: "leakyrf_540358994_battery_percentage"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF RSSI"
state_topic: "leakyrf/sensor/540358994/health"
unit_of_measurement: "dBm"
device_class: "signal_strength"
value_template: "{{ value_json.rssi }}"
unique_id: "leakyrf_540358994_rssi"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF SNR"
state_topic: "leakyrf/sensor/540358994/health"
unit_of_measurement: "dB"
state_class: "measurement"
value_template: "{{ value_json.snr }}"
unique_id: "leakyrf_540358994_snr"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF Current Flow"
state_topic: "leakyrf/sensor/540358994/measurement_data"
unit_of_measurement: "gal"
device_class: "water"
value_template: "{{ (value_json.current_cycle / 37.6923076923) | round(2) }}"
unique_id: "leakyrf_540358994_flow"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
- name: "LeakyRF Total Flow"
state_topic: "leakyrf/sensor/540358994/measurement_data"
unit_of_measurement: "gal"
device_class: "water"
state_class: "total_increasing"
value_template: "{{ (value_json.total_cycles / 37.6923076923) | round(2) }}"
unique_id: "leakyrf_540358994_total"
device:
identifiers:
- "leakyrf_540358994"
name: "LeakyRF Water Meter Sensor"
manufacturer: "LeakyRF"
model: "Water Meter Sensor"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment