Home Assistant
synopsis
This page shows some snippets to to improve upon your Home Assistant installation.
SpaceAPI
configuration.yaml
xopr is not sure what syntax (legacy or new) is used (frankly, the HA logic and templating system is a mess and he couldn't care less). The result is that it is unclear if sensors could be generated from a for loop, if attributes (like lastchange) could be set, whether something simpeler than wrapping Markdown around some data to show a dynamic image, and so forth.
Update this code if you think you know better. I've searched the forum all evening and mostly found the Gudim meme one way or another; currently this is a "Works for me™" solution..
rest:
- scan_interval: 60
resource: https://ackspace.nl/spaceAPI/
method: GET
binary_sensor:
- name: "ACKspace spacestate alt"
value_template: "{{ iif(value_json.state.open, 'Open', 'Closed', 'Unknown') }}"
sensor:
- name: "ACKspace spacestate"
value_template: "{{ iif(value_json.state.open, 'Open', 'Closed', 'Unknown') }}"
- name: "ACKspace spacestate lastchange"
value_template: "{{ value_json.state.lastchange | int (0) | timestamp_custom('%H:%M:%S (%d %b)')}}"
- name: "ACKspace spacestate message"
value_template: "{{ value_json.state.message }}"
- name: "ACKspace spacestate image"
value_template: >
{% if value_json.state.open %}
{{value_json.state.icon.open}}
{% else %}
{{value_json.state.icon.closed}}
{% endif %}
- name: "ACKspace external IP"
value_template: "{{ value_json.ext_ip }}"
- name: "stACKspace servers"
value_template: "{{ value_json.sensors.temperature[0].value }}"
unit_of_measurement: °C
- name: "stACKspace lastchange"
value_template: "{{ value_json.sensors.temperature[0].ext_lastchange | int (0) | timestamp_custom('%H:%M:%S (%d %b)')}}"
- name: "stACKspace"
value_template: "{{ value_json.sensors.temperature[1].value }}"
unit_of_measurement: °C
- name: "ACKspace Outside"
value_template: "{{ value_json.sensors.temperature[2].value }}"
unit_of_measurement: °C
- name: "hACKspace desk area"
value_template: "{{ value_json.sensors.power_consumption[0].value }}"
unit_of_measurement: W
- name: "hACKspace printer corner"
value_template: "{{ value_json.sensors.power_consumption[1].value }}"
unit_of_measurement: W
- name: "slACKspace media corner"
value_template: "{{ value_json.sensors.power_consumption[2].value }}"
unit_of_measurement: W
- name: "slACKspace food corner"
value_template: "{{ value_json.sensors.power_consumption[3].value }}"
unit_of_measurement: W
- name: "hACKspace solder corner"
value_template: "{{ value_json.sensors.power_consumption[4].value }}"
unit_of_measurement: W
Example raw dashboard
Do note that there are several versions of the spacestate on this dashboard; I'm still looking to see which one does state history better.
views: - title: Home cards: - type: entity entity: sensor.ackspace_spacestate - type: entity entity: sensor.ackspace_external_ip - type: entities entities: - entity: sensor.stackspace - entity: sensor.stackspace_servers - entity: sensor.ackspace_outside - type: entities entities: - entity: sensor.hackspace_solder_corner - entity: sensor.hackspace_desk_area - entity: sensor.hackspace_printer_corner - entity: sensor.slackspace_media_corner - entity: sensor.slackspace_food_corner - type: entity entity: binary_sensor.ackspace_spacestate_alt icon: '' - type: markdown content: >+ [![image]({{states('sensor.ackspace_spacestate_image')}})](https://ackspace.nl/spaceAPI/statechanges.html) {{states('sensor.ackspace_spacestate_message')}} since {{states('sensor.ackspace_spacestate_lastchange')}}