Difference between revisions of "SpaceAPI"

From Hackerspace ACKspace
Jump to: navigation, search
(major update on spaceAPI (most of the source is online), lots of the todos are done. Compiled a list of spaceAPI systems, added all github links)
m (home assistant link)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Project
 
{{Project
|State=Active
+
|Featured=No
|Members=Vicarious, CoolePascal, Prodigity, Da Syntax, xopr
+
|State=Completed
 +
|Members=Vicarious, Coolepascal, Prodigity, Da Syntax, xopr, stuiterveer
 +
|Description=HackerSpace Status API
 
|GitHub=spaceAPI
 
|GitHub=spaceAPI
|Description=HackerSpace Status API
 
 
}}
 
}}
 
== synopsis ==
 
== synopsis ==
 
Expose hackerspace information via a <abbr title="JavaScript Object Notation">JSON</abbr> structure.
 
Expose hackerspace information via a <abbr title="JavaScript Object Notation">JSON</abbr> structure.
See [https://spaceapi.net/ spaceapi.net] for details.
+
See [https://spaceapi.io/docs/ spaceapi.io] for documentation (or its [http://spaceapi.net/ old site (unsecure)]).
  
 
== current version ==
 
== current version ==
 
The current backend has been made modular for easy maintenance and feature expansion.
 
The current backend has been made modular for easy maintenance and feature expansion.
The first implemented expansion is temperature sensors.
+
Several expansions are already in place:
 +
* temperature
 +
* [https://ackspace.nl/spaceAPI/geo.php geo location] for [[Hackers on a Bike]]
 +
* [https://ackspace.nl/spaceAPI/statechanges.html heatmap] (also [https://mapall.space/heatmap//show.php?id=ACKspace externally here])
 +
* [https://ackspace.nl/spaceAPI/conference.html teleconference status]
 +
* [https://ackspace.nl/spaceAPI/services.html services status]
 +
* [https://ackspace.nl/spaceAPI/audit.html stock supply]
  
Most of the latest implementation has been done by [[user:Da_Syntax|Da Syntax]] and [[User:Xopr|xopr]] (ask them for details).
+
Most of the first implementation has been done by [[user:Da_Syntax|Da Syntax]] and [[User:Xopr|xopr]] (ask them for details).
  
 
Currently, both the new and old system are running in parallel, but some things need to be done before deprecating the old system.
 
Currently, both the new and old system are running in parallel, but some things need to be done before deprecating the old system.
* Update the [http://ackspace.nl/spacestate.php status page] 'widget' which is used on [http://hackerspaces.nl/ hackerspaces.nl]
+
 
* Update the places where [https://ackspace.nl/status.php ackspace.nl/status.php] is used, most likely via [https://spaceapi.net/ spaceapi.net]
+
The active maintained SpaceAPI project is at [https://spaceapi.io spaceapi.io].
 +
* Directory is at https://directory.spaceapi.io/
 +
* A feature full API is at https://api.spaceapi.io/ (described at https://api.spaceapi.io/openapi.json )
 +
* The latest directory is at [https://raw.githubusercontent.com/SpaceApi/directory/master/directory.json github] but may contain automated problems at times
 +
* There is a cached directory at https://api.spaceapi.community/
 +
* There is a cached API at https://api.spaceapi.community/cache
 +
* The old maintained directory is at https://spaceapi.fixme.ch/directory.json with the [[GitHub::https://github.com/fixme-lausanne/OpenSpaceDirectory|fixme-lausanne's GitHub repo here]]
 +
* [http://hackerspaces.nl/ hackerspaces.nl] uses the SpaceAPI
  
 
Several systems are tied to the backend:
 
Several systems are tied to the backend:
Line 28: Line 42:
 
! category
 
! category
 
|-
 
|-
| [[Space state]] (switch)
+
| [[MQTT]] (bridge)
| hardware
+
| software
 
|
 
|
 
| [[Telephone_system:Space_state|Space state (telephone system)]]
 
| [[Telephone_system:Space_state|Space state (telephone system)]]
 
| software
 
| software
 
|-
 
|-
| [[ESP8266-SpaceState]]
+
| [[Spacestate sensors]] <abbr title="incomplete and replaced by MQTT">/!\</abbr>
 
| hardware, firmware
 
| hardware, firmware
 
|
 
|
| [[Spacestate indicator]] <abbr title="incomplete">/!\</abbr>
+
| [[User:Vicarious|Vicarious']] [[Mobile Spacestate Indicator]]
| hardware, firmware
+
| hardware, firmware, software
 
|-
 
|-
| [[Spacestate sensors]] <abbr title="incomplete">/!\</abbr>
+
| [[Space state]] (switch)<abbr title="replaced by MQTT">/!\</abbr>
| hardware, firmware
+
| hardware
 
|
 
|
| [[Mobile Spacestate Indicator]]
+
| [[IRC ACKspace-statusbot]]
| hardware, firmware, software
+
| software
 
|-
 
|-
 
|
 
|
 
|
 
|
 
|
 
|
| [[IRC ACKspace-statusbot]]
+
| [[User:Stuiterveer|Stuiterveer's]] [[SpaceAPIBot]] ([https://telegram.org Telegram])
 
| software
 
| software
 
|-
 
|-
Line 55: Line 69:
 
|
 
|
 
|
 
|
| [[SpaceAPIBot]] ([https://telegram.org Telegram])
+
| [https://github.com/ACKspace/Pebble-ACKspace-app Pebble watch app]
 
| software
 
| software
 
|-
 
|-
Line 61: Line 75:
 
|
 
|
 
|
 
|
| Pebble watch app <abbr title="status: unknown">/!\</abbr>
+
| [[Widget:SpaceAPI]]
 
| software
 
| software
 +
|-
 +
|
 +
|
 +
|
 +
| [[User:Danny Witberg|Danny W's]] [[Spacestate indicator]] <abbr title="incomplete">/!\</abbr>
 +
| hardware, firmware
 +
|-
 +
|
 +
|
 +
|
 +
| [[User:Coolepascal|CoolePascal's]] [[SpaceStateIndicator]]
 +
| hardware, firmware
 +
|-
 +
|
 +
|
 +
|
 +
| [[Home Assistant]]
 +
| software integration
 
|}
 
|}
 +
For a possibly more complete list, look at the [[:Category:SpaceAPI|SpaceAPI category]]
  
 
Affiliated github repositories:
 
Affiliated github repositories:
Line 75: Line 108:
 
=== todo ===
 
=== todo ===
 
* upload database model
 
* upload database model
* update the [[ESP8266-DS18S20|Dallas temperature probe]] and [[ESP8266-SpaceState|space state]] firmware ([https://github.com/ACKspace/esp8266-SpaceAPI esp8266-SpaceAPI Github repo])
 
  
 
=== done ===
 
=== done ===
Line 91: Line 123:
 
**Now uses state object
 
**Now uses state object
 
**Space state now has a third state; null. (In case of uncertain state)
 
**Space state now has a third state; null. (In case of uncertain state)
* Uploaded it to [https://ackspace.nl/status.php https://ackspace.nl/status.php] but the URL can be changed if necessary..
+
* Uploaded it to <s>ackspace.nl/status.php</s> but the URL can be changed if necessary..
 
* From the SpaceAPI website: "In order to be able to retrieve the object from within a javascript sandbox, the server of the JSON object should set the ‘Access-Control-Allow-Origin’ header with a value of ‘*’ ".
 
* From the SpaceAPI website: "In order to be able to retrieve the object from within a javascript sandbox, the server of the JSON object should set the ‘Access-Control-Allow-Origin’ header with a value of ‘*’ ".
 
* Added the JSON object to the existing [[Space state]] PHP script. Thanks [[User:Coolepascal|CoolePascal]] for the help with the PHP stuff!
 
* Added the JSON object to the existing [[Space state]] PHP script. Thanks [[User:Coolepascal|CoolePascal]] for the help with the PHP stuff!
  
 
[[Category:SpaceAPI]]
 
[[Category:SpaceAPI]]

Latest revision as of 17:02, 11 November 2024

Project: SpaceAPI
Featured: No
State Completed
Members Vicarious, Coolepascal, Prodigity, Da Syntax, xopr, stuiterveer
GitHub spaceAPI
Description HackerSpace Status API
Picture
No project picture! Fill in form Picture or Upload a jpeg here

synopsis

Expose hackerspace information via a JSON structure. See spaceapi.io for documentation (or its old site (unsecure)).

current version

The current backend has been made modular for easy maintenance and feature expansion. Several expansions are already in place:

Most of the first implementation has been done by Da Syntax and xopr (ask them for details).

Currently, both the new and old system are running in parallel, but some things need to be done before deprecating the old system.

The active maintained SpaceAPI project is at spaceapi.io.

Several systems are tied to the backend:

inputs category outputs category
MQTT (bridge) software Space state (telephone system) software
Spacestate sensors /!\ hardware, firmware Vicarious' Mobile Spacestate Indicator hardware, firmware, software
Space state (switch)/!\ hardware IRC ACKspace-statusbot software
Stuiterveer's SpaceAPIBot (Telegram) software
Pebble watch app software
Widget:SpaceAPI software
Danny W's Spacestate indicator /!\ hardware, firmware
CoolePascal's SpaceStateIndicator hardware, firmware
Home Assistant software integration

For a possibly more complete list, look at the SpaceAPI category

Affiliated github repositories:

Deprecated implementations:

todo

  • upload database model

done

  • created database for space state (log) and sensor values
  • new php code online (currently running parallel with the old version)
  • created new space state hardware interface using the ESP8266 which connects to the same old switch
  • First draft after recovery esp8266-SpaceAPI-full.tar Note that the used JSON parser library will cause heap corruption.
  • front page widget is now a real widget
  • php backend source online

old version

  • Updated JSON object to become SpaceAPI 0.13 compliant (see status.php)
    • Content type and Cache-Control headers are now sent
    • Now uses location object
    • Now uses state object
    • Space state now has a third state; null. (In case of uncertain state)
  • Uploaded it to ackspace.nl/status.php but the URL can be changed if necessary..
  • From the SpaceAPI website: "In order to be able to retrieve the object from within a javascript sandbox, the server of the JSON object should set the ‘Access-Control-Allow-Origin’ header with a value of ‘*’ ".
  • Added the JSON object to the existing Space state PHP script. Thanks CoolePascal for the help with the PHP stuff!