Difference between revisions of "Home Assistant"

From Hackerspace ACKspace
Jump to: navigation, search
(Home Assistant SpaceAPI dashboard)
 
m (Forgot category)
Line 99: Line 99:
 
           {{states('sensor.ackspace_spacestate_lastchange')}}
 
           {{states('sensor.ackspace_spacestate_lastchange')}}
 
</pre>
 
</pre>
 +
 +
[[Category:SpaceAPI]]

Revision as of 17:03, 11 November 2024

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')}}