Chuck Foster 4e9944a982
Doc update for SpaceAPI support for v15 of that API (#38524)
* Show removed configurations and add a missing config

* Updates for the documentation standards

* Fixed quotation placement in description

* Quote all areas that use italics

* default boolean

* tiny tweaks

---------

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2025-04-14 12:00:09 +00:00

9.6 KiB

title, description, ha_category, ha_iot_class, ha_release, ha_codeowners, ha_domain, ha_integration_type, related, ha_quality_scale
title description ha_category ha_iot_class ha_release ha_codeowners ha_domain ha_integration_type related ha_quality_scale
Space API Instructions on how to configure the SpaceAPI for Home Assistant.
Social
Cloud Polling 0.70
@fabaff
spaceapi integration
docs title
/docs/configuration/ Configuration file
docs title
/integrations/http/ HTTP integration
legacy

The spaceapi {% term integration %} allow Hackerspaces and Makerspaces to expose information to web apps or any other application with the SpaceAPI. It does this by exposing an API on Home Assistant that hosts the JSON payload that SpaceAPI uses.

Configuration

To configure connectivity and authentication to the API that this {% term integration %} exposes, refer to the HTTP {% term integration %} documentation. To setup the spaceapi {% term integration %} in your installation, add the following to your {% term "configuration.yaml" %} file. {% include integrations/restart_ha_after_config_inclusion.md %}

# Example configuration.yaml entry
spaceapi:
  space: HACKERSPACE_NAME
  logo: URL_FOR_LOGO
  url: URL
  location:
    address: ADDRESS
  contact:
    email: EMAIL_ADDRESS
  issue_report_channels:
    - email
  state:
    entity_id: binary_sensor.front_door

{% configuration %} space: description: Name of the Hackerspace. required: true type: string logo: description: URL which is publicly accessible of the logo. required: true type: string url: description: URL of the hackerspace's web site. required: true type: string location: description: Location of the Hackerspace. required: false type: map keys: address: description: The physical address of the Hackerspace. required: true type: string spacefed: description: A flag indicating if the hackerspace uses SpaceFED, a federated login scheme so that visiting hackers can use the space Wi-Fi with their home space credentials. required: false type: map keys: spacenet: description: Set to true or false depending on whether your space supports spacenet required: true type: boolean default: false spacesaml: description: Set to true or false depending on whether your space uses SpaceSAML required: true type: boolean default: false contact: description: Contact information of the Hackerspace. At least one entry is mandatory. required: true type: map keys: phone: description: The phone number of the Hackerspace. required: false type: string sip: description: The SIP URI for Voice-over-IP of the Hackerspace. required: false type: string keymasters: description: Persons who carry a key and are able to open the space upon request. One of the fields must be specified. required: false type: list keys: name: description: Real Name of the keymaster. required: false type: string irc_nick: description: Contact the person with this nickname directly in irc if available. The irc channel to be used is defined in the contact/irc field. required: false type: string phone: description: Phone number of the keymaster. required: false type: string email: description: Email address of the keymaster. required: false type: string twitter: description: X username of the keymaster. required: false type: string irc: description: The IRC channel of the Hackerspace required: false type: string twitter: description: The X account of the Hackerspace. required: false type: string facebook: description: The facebook URL of the Hackerspace. required: false type: string identica: description: The Identi.ca or StatusNet account of the Hackerspace. required: false type: string foursquare: description: The Foursquare ID of the Hackerspace. required: false type: string email: description: The email address of the Hackerspace. required: true type: string ml: description: The mailing list of the Hackerspace. required: false type: string jabber: description: The public Jabber/XMPP multi-user chatroom of the Hackerspace. required: false type: string issue_mail: description: A separate email address for issue reports. required: false type: string issue_report_channels: description: "Removed. V15 of SpaceAPI no longer supports this. The reporting channel for issues. Valid values are email, issue_mail, twitter or ml" required: false type: list state: description: The current state of the Hackerspace. required: true type: list keys: entity_id: description: "The entity_id of a binary sensor that represents whether the space is currently open or closed. If the binary sensor is unavailable, the state provided will be false." required: true type: string icon_open: description: The URL which is publicly accessible of the icon for the open Hackerspace. required: false type: string icon_closed: description: The URL which is publicly accessible of the icon for the closed Hackerspace. required: false type: string feeds: description: Feeds where users can get updates of your space. required: false type: map keys: blog: description: The blog of your Hackerspace. required: false type: map keys: type: description: Type of the feed, for example rss, atom, ical required: false type: string url: description: Feed URL required: true type: string wiki: description: The wiki of your Hackerspace. required: false type: map keys: type: description: Type of the feed, for example rss, atom, ical required: false type: string url: description: Feed URL required: true type: string calendar: description: The calendar of your Hackerspace. required: false type: map keys: type: description: Type of the feed, for example rss, atom, ical required: false type: string url: description: Feed URL required: true type: string flicker: description: The Flicker stream of your Hackerspace. required: false type: map keys: type: description: Type of the feed, for example rss, atom, ical required: false type: string url: description: Feed URL required: true type: string cache: description: "Removed. V15 of SpaceAPI no longer supports this. Specifies options about caching of your SpaceAPI endpoint. Use this if you want to avoid hundreds/thousands of application instances crawling your status." required: false type: map keys: schedule: description: Cache update cycle. Valid values are m.02 | m.05 | m.10 | m.15 | m.30 | h.01 | h.02 | h.04 | h.08 | h.12 | d.01 | required: true type: string projects: description: Your project sites (links to GitHub, wikis or wherever your projects are hosted). required: false type: list radio_show: description: "Removed. V15 of SpaceAPI no longer supports this. A list of radio shows that your hackerspace might broadcast." required: false type: list keys: name: description: The name of the radio show. required: true type: string url: description: The stream URL of the radio show. required: true type: string type: description: The stream encoder. Valid values are mp3 or ogg required: true type: string start: description: Specify the start time by using the ISO 8601 standard. required: true type: string end: description: Specify the end time by using the ISO 8601 standard. required: true type: string sensors: description: List of sensors to expose. required: false type: list keys: temperature: description: List of temperature sensors. required: true type: string humidity: description: List of humidity sensors. required: true type: string {% endconfiguration %}

Although SpaceAPI supports many other sensors, this {% term integration %} only supports temperature or humidity.

Examples

In this section you find some real-life examples of how to use this integration.

Eastermundigen

A possible configuration entry for Eastermundigen, a Hackerspace in Switzerland, could look like this.

# Example configuration.yaml entry
spaceapi:
  space: Eastermundigen
  logo: https://eastermundigen.ch/logo.png
  url: https://eastermundigen.ch
  location:
    address: "Steinbruchweg 16, 3072 Ostermundigen, Schweiz"
  contact:
    phone: "+41311111111"
    twitter: "@eastermundigen"
    email: "info@eastermundigen.ch"
  issue_report_channels:
    - email
  state:
    entity_id: "binary_sensor.front_door"
    icon_open: https://eastermundigen.ch/open.png
    icon_closed: https://eastermundigen.ch/close.png
  sensors:
    temperature:
      - "sensor.temperature_in"
      - "sensor.temperature_out"
    humidity:
      - "sensor.humidity_in"
      - "sensor.humidity_out"