Integrations
Home Assistant
Surface any Home Assistant sensor on an EasyBoard dashboard — temperature, humidity, power draw, presence, alarm state — using a rest_command and a one-action automation. Once configured, updates flow automatically whenever a sensor value changes.
1. Store credentials in secrets.yaml
Keep your write token out of your main config by adding it to secrets.yaml:
# secrets.yaml
easyboard_dashboard_id: "abc123xyz456"
easyboard_write_token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"secrets.yaml is not synced
Home Assistant's secrets.yaml is excluded from most backup add-ons by default, which is exactly what you want — your write token stays off GitHub and out of cloud backups. Make sure your local backup strategy covers it.
2. Add a rest_command
This defines a reusable service you can call from any automation. Add it to configuration.yaml— the payload field lets each automation supply its own JSON body:
# configuration.yaml (simpler — hardcoded dashboard ID)
rest_command:
update_easyboard:
url: "https://easyboard.live/api/d/!secret easyboard_dashboard_id/tiles"
method: PATCH
headers:
Authorization: "Bearer !secret easyboard_write_token"
Content-Type: application/json
payload: "{{ payload }}"3. Create an automation
Trigger on a sensor state change and call the REST command with a batch body. This example pushes indoor temperature whenever the sensor updates:
# automations.yaml
- alias: "Push indoor temperature to EasyBoard"
trigger:
- platform: state
entity_id: sensor.indoor_temperature
condition:
- condition: template
value_template: "{{ trigger.to_state.state != 'unavailable' }}"
action:
- service: rest_command.update_easyboard
data:
payload: >-
{
"updates": [
{
"target": { "alternateId": "indoor-temp" },
"patch": { "value": "{{ states('sensor.indoor_temperature') | round(1) }}" }
}
]
}Push multiple sensors at once
One API call can update many tiles — and it counts as a single call against your rate limit. This automation runs every 5 minutes and pushes four different sensors:
- alias: "Push home stats to EasyBoard every 5 minutes"
trigger:
- platform: time_pattern
minutes: "/5"
action:
- service: rest_command.update_easyboard
data:
payload: >-
{
"updates": [
{
"target": { "alternateId": "indoor-temp" },
"patch": { "value": "{{ states('sensor.indoor_temperature') | round(1) }}" }
},
{
"target": { "alternateId": "humidity" },
"patch": { "value": "{{ states('sensor.indoor_humidity') | round(0) }}" }
},
{
"target": { "alternateId": "power-draw" },
"patch": { "value": "{{ states('sensor.total_power') | round(0) }}" }
},
{
"target": { "alternateId": "home-status" },
"patch": { "value": "{{ 'Home' if is_state('group.all_persons', 'home') else 'Away' }}" }
}
]
}Use a time-based trigger to avoid rate limits
If you have many fast-changing sensors (power draw, for example), use a time_pattern trigger every 1–5 minutes rather than a state trigger. One batched call per minute is much cleaner than hundreds of individual calls per hour.
Common use cases
Temperature & humidity
Metric tiles for each room; progress tile for humidity %
Power draw
Metric tile with kW unit; update on state change or every minute
Presence / home/away
Toggle tile with Home / Away options
Alarm state
Toggle tile with Armed / Disarmed / Triggered options and matching colors
Solar production
Metric tile updated every 5 minutes with current kW output
Door & window sensors
Counter tile for open windows; text tile for last opened