Custom Sensors¶
Create your own sensors by running custom commands.
Basic Custom Sensor¶
sensors:
- custom:
name: "Service Status"
unique_id: nginx_status
command: "systemctl is-active nginx"
Custom Sensor with JSON Parsing¶
sensors:
- custom:
name: "API Response Time"
unique_id: api_response
command: "curl -s https://api.example.com/health"
value_template: "{{ value_json.response_time }}"
json_attributes:
- status
- latency
- version
unit_of_measurement: "ms"
Custom Sensor Configuration¶
sensors:
- custom:
name: "Custom Sensor"
unique_id: "custom_sensor"
icon: "mdi:gauge"
command: "echo 42"
shell: "bash" # Shell to use (bash, powershell, cmd, etc.)
update_interval: 30s # How often to run the command
value_template: "{{ value }}" # Template for extracting value
unit_of_measurement: "units" # Unit to display
device_class: "temperature" # Device class for Home Assistant
state_class: "measurement" # State class for statistics
show_output: false # Log command output
show_errors: false # Log command errors
json_attributes: # Extract JSON attributes
- attr1
- attr2
json_attributes_path: "$.nested" # JSON path to attributes
env: # Environment variables
MY_VAR: "value"
Template Variables¶
Custom sensors commands can be templated using Go templates:
sensors:
- custom:
command: |
echo "{{ .ExeDirectory }}"
echo "{{ .HostID }}"
echo "{{ .DeviceName }}"
See Template Variables Reference for all available variables.
Custom Sensor Examples¶
Monitor Service Status¶
sensors:
- custom:
name: "Docker Status"
unique_id: docker_status
command: "systemctl is-active docker"
update_interval: 60s
Monitor GPU Temperature¶
Monitor Container Stats¶
sensors:
- custom:
name: "Container Memory"
unique_id: nginx_memory
shell: "bash"
command: |
docker stats --no-stream --format "{{.MemUsage}}" nginx | cut -d'/' -f1
value_template: "{{ value | replace('MiB', '') | float }}"
unit_of_measurement: "MiB"
update_interval: 30s
Device Classes¶
Custom sensors can use Home Assistant device classes, see available device classes.
State Classes¶
Enable long-term statistics in Home Assistant, see available state classes.