Inhaltsverzeichnis
Projekt: SpaceAPI
Name | SpaceAPI |
---|---|
Kurzbeschreibung | Anwesenheits- und Temperaturanzeige für Website |
Typ | Elektronik / Software |
Status | |
Beginn | Juni 2016 |
Ende | |
Leiter | Sebastian |
Mitstreiter | Egmont, Henry, Holger |
Repository | https://werkraum.freiraumzittau.de/websvn/listing.php?repname=birke3control&path=%2Fbranches%2Fwerkraum-status |
Ziel
SpaceAPI ist eine Schnittstelle, um Informationen wie Raumstatus, Adresse, Kontaktmöglichkeiten abrufen zu können und wird von vielen Hackerspaces weltweit genutzt. Als ersten Schritt werden wir die wichtigsten Infos (Anwesenheit und Raumtemperatur) erfassen und auf unserer eigenen Website einbinden; später auch die API implementieren.
Aktueller Stand
Raumstatus (Anwesenheit) und Innentemperatur (Raum I) werden im 5-Minuten-Takt erfasst und geloggt, sowie als dynamische Grafik (wie rechts zu sehen) gerendert.
Außerdem sind diverse Informationen als JSON über die SpaceAPI abrufbar. Eine menschenlesbare Version gibt es seit 2020 auch.
Es gibt auch einen (momentan experimentellen) Mastodon-Bot, der Tür-Status-Änderungen postet. Source-Code: https://edugit.org/eshszg/spaceapi-to-mastodon
Hardware
- Raspberry Pi Modell 4B, 2 GB RAM
216 GB µSDtemporär bereit gestellt von EgmontWR-Eigentum
- digitale 1-wire Temperatursensoren DS18S20, für Raum II, Solarkollektor und Zuluft
- BME280 für Luftdruck, Luftfeuchte und Temperatur Raum I
- 4-stellige 7-Segmentanzeige, Zeichengröße 100 mm
- Notaus-Schalter neben Eingangstür
- ESP8266 für Zugangssicherung und -logging Holzwerkstatt
Betriebssystem / Software
- Programmierung vorzugsweise in Python 2.7, Bash, Init-Scripte, Web-Interface in PHP
- Versionsverwaltung: Subversion auf Freiraum-Server
- Zugriff über SSH, nicht von außen erreichbar, sondern nur per vorhandenem VPN
- Route auf Default-GW setzen
- Nutzer über LDAP (Gruppe Werkraum) vom FR-Server einbinden
- sudo lokal möglich?
Funktionen / SW-Module
- Status „Werkraum geöffnet/geschlossen“ (= Anwesenheit)
- am Anfang über Schalter möglich, manuell zu betätigen
- Notaus-Schalter unter Sicherungskasten
- NC-Kontakt für Relais Stromkreis 2, schaltet Steckdosen des Werkraum
- NO-Kontakt an RasPi-GPIO17 (Pin 11)
- später Status Einbruchmeldeanlage auslesen
- Status „Fenster geöffnet/geschlossen“
- mittels Reedkontakten
- nur intern abrufbar
- Türkontakt für Riegel: Reedkontakt (aber: Riegel ersetzt Türklinke, Status Schloss wäre interessanter)
- Bewegungsmelder im Raum?: nicht erprobten Radarmelder, = kann im Schrank platziert werden, vorerst unabhängig von „Werkraum geöffnet/geschlossen“ (Egmont)
- Vorschlag Holger: Taster für geplante Anwesenheitszeit
- Increment z.B. 15 Minuten
- evtl. statt Taster vielleicht ein Drehgeber
- benötigt Feedback, z.B. LCD
- JSON-Dokument für SpaceAPI generieren, Hosting über Freiraum-Server: https://werkraum.freiraumzittau.de/spaceapi/13/
- dynamische Grafik rot/grün per PHP generieren, für Wiki/Website: http://werkraum.freiraumzittau.de/spaceapi/status-image.php
- Verlauf Anwesenheit über die letzten 7 Tage: http://192.168.16.200/status/temp.php?task=sensor&id=2
- Sensoren
- Temperatur-Sensor DS1820 via 1-wire-bus, an GPIO4 (Pin 7)
- Luftfeuchtesensor DHT11/22 via 1-wire-Bus: http://tutorials-raspberrypi.de/raspberry-pi-luftfeuchtigkeit-temperatur-messen-dht11-dht22/ und https://github.com/szazo/DHT11_Python
- Luftdruck-/Feuchtigkeits-Sensor BME280 via I2C
- Python-Software zum Loggen in MySQL-Datenbank und PHP-Webinterface mit Charts
- Webinterface (nur über VPN bzw. im LAN erreichbar!): http://192.168.16.200/status/
- Zugangs-Sicherung/-Logging Holzwerkstatt, Doku veröffentlichen
Off-Topic
Hier sind weitere Ideen zur Nutzung des RasPi versammelt, die nichts mit Space-API zu tun haben.
Multimedia
- Audio-Ausgabe über Sony 5.1 DVD-Receiver
- Quellen
- Stream von extern, Internetradio
- Musikarchiv Freiraum-Server
- Audiofiles auf lokalem Rechner (Werkraum-PC oder Gast-Notebooks)
- USB-Datenträger lokal am RasPi
- Client-Server-Lösung zwecks Fernsteuerung
- CLI VLC als Player auf RasPi, Webinterface und Android-App als Fernsteuerung, http://praxistipps.chip.de/vlc-mediaplayer-fernsteuern-wie-funktioniert-das_13544
- Music Player Daemon „mpd“: http://www.musicpd.org/
- evtl. Taster + LCD zur Bedienung, aber erfordert Recherche und/oder Programmierung von Software
Sonstige Ideen
- Getränkestatus
- wie? könnte man nachher über den übrigen Statusschalter (oder über Wägezelle bis 20 kg, 5 €) machen á là „Frisches Getränk entnommen“
- VoIP-Anrufbeantworter
- Scanner mit Taste anschließen, Tastendruck –> scannen und in Owncloud/kleinem USB Speicher abrufbar machen
- eigenes Etherpad hosten
- Holger hat 4 Stück 7-Segment-Anzeigen 15 cm + mehrere kleinere
- ansteuerbar z.B. über I2C-Port-Expander PCF8574P
- Uhrzeit für Wand
- Temperatur
- Schnittstellenkonverter UART, SPI oder I2C vom RasPi über Atmega auf 4x BCD-zu-7-Segment
- LCD alphanumerisch HD44780 (2×16 Zeichen … 4×20 Zeichen)
- GPIO: 6 Pins
- Python-Lib vorhanden und erprobt (Sebastian)
- Uhr, Temperatur, geplante Anwesenheitsdauer, …
- XMPP/Jabber-Client für Statusanzeige, evtl. mit https://github.com/jaxl/JAXL
- Außen-Messdaten automatisch an Citizen-Science-Projekte übermitteln
-
Nützliche Links
- The SpaceAPI, and Why Your Hackerspace Should Implement It: Vortrag beim Chaos Singularity 2017
- SpaceAPI Homepage + Doku:
http://spaceapi.net/apphttps://spaceapi.io/ - SpaceAPI Directory:
https://spacedirectory.org/https://spaceapi.io/directory/ Beispiel für SpaceAPI-Verwendung (Netz39, Magdeburg): http://spaceapi-stats.n39.eu/- Karte aller Spaces, inkl. Status: https://mapall.space/
- dynamische Grafiken: https://ammanvms.github.io/circular-space-heatmap/
- Beispiel für grafische Auswertung (shackspace, Stuttgart) http://shackspace.de/wiki/doku.php?id=sopenstats
Historie
- 14.06.2023, Mastodon-Status-Bot geht in Probebetrieb
- 20.11.2021, Update auf Schema Version 14
- 17.11.2021, Umstellung auf neue Domain
- 16.11.2021, CORS-Headers gesetzt
- 14.12.2019, Einbindung ins Munin Server-Monitoring
- 13.12.2019, Update auf Raspberry Pi 4B (2 GB), Raspbian Buster
- 19.06.2019, Notaus-Überwachung und Temperatursensor Raum II
- 20.04.2019, Raspberry Pi 1B mit Raspbian Stretch neu aufgesetzt
- 19.06.2018, Temperatursensoren für Solarkollektor und Zuluft integriert
- 10.04.2018, Luftdruck-/Feuchtigkeitssensor BME280 integriert
- 30.10.2017, Werkraum ist auf spacedirectory.org eingetragen
- 30.08.2017, Prototyp des JSON-Files wird dynamisch generiert
- 21.06.2016, dynamisch generierte Status-Anzeige auf https://werkraum.freiraumzittau.de/
- 14.06.2016, Inbetriebnahme RasPi 1B, Netzwerk-Setup, Temperatur-Logging läuft
- 07.06.2016, Auftakt-Workshop