Technischer Overkill, aber warum nicht? Temperatur, Feuchte und Höhe des Sauerteigstarter überwachen mit ESP32, Prometheus und Grafana
Kategorie: Technologie
Aare.guru API: Auftakt Saison 2022 – Expansion nach Olten
Gute Neuigkeiten: Wir erweitern auf 2022 unser Einflussbereich aus und nehmen Olten als neuen Ort in der Aare.guru-API auf. Dank der privaten Messstation von Tobias Oetiker (TemperAare, iOS & Android) können wir diese Lücke im Messnetz schliessen.
Die schlechte Nachricht: Jetzt gibt’s ein Lehrstück in defensivem Programmieren: Da die neues Messstation nur die Temperatur, aber nicht die Wassermenge misst, wird die API für Olten einige null
-Werte liefern.
Und ihr müsst jetzt sicherstellen, dass eure Integrationen & Apps damit umgehen können. (Hint: Die offizielle Aare.guru-App tut’s nicht…)
Die Änderungen sind auf der TEST-Instanz (https://aareguru-test.existenz.ch) bereits implementiert. Auf der LIVE-Instanz (https://aareguru.existenz.ch) folgen sie am 1. April 2022.
Betroffene Keys, welche neu null
sein können:
flow
(Insbesondere auch im Keyaarepast
)flow_text
flow_gefahrenstufe
Betroffene LIVE-URLs, ab April:
- https://aareguru.existenz.ch/v2018/cities (Neuer Ort)
- https://aareguru.existenz.ch/v2018/current?city=olten
- https://aareguru.existenz.ch/v2018/widget
Test-URLs:
- https://aareguru-test.existenz.ch/v2018/cities (Neuer Ort)
- https://aareguru-test.existenz.ch/v2018/current?city=olten
- https://aareguru-test.existenz.ch/v2018/widget
Zukünftige Expansionspläne: Solothurn und Aarau
Wir würden auch gerne Solothurn und Aarau in der App aufnehmen und suchen für die Installation einer kleinen Messstation (Winziges Kästchen mit LoRaWAN-Anbindung, autonome Stromversorgung) Standorte an der Aare dafür.
Hast du in Solothurn oder Aarau einen Kontakt für einen Ort, z.B. ein Bootshaus, Ruderclub, Schwimmclub, Angler, Yachthafen, ARA-Ausfluss, Steg etc.? Melde den bitte bei mir (cstuder@existenz.ch).
P.S.: Das Techstack-Webinar vom letzten November ist hier online.
Video: Aare Guru Techstack Webinar
Oder direkt auf Vimeo: https://vimeo.com/652964623
Links & Zeugs
- Aare.guru: https://aare.guru
- Aare.guru Brutalist: https://aare.guru/brutalist
- Aare.guru GmbH: https://firma.aare.guru
- Aare.guru-API: https://aareguru.existenz.ch
- Daten-API: https://api.existenz.ch
- Metadaten: https://api-datasette.konzept.space
- Newsletter: https://tinyletter.com/existenz-api
- Open Government Data: https://opendata.swiss
- BAFU Hydrologie: https://www.hydrodaten.admin.ch
- Wie misst das BAFU Flüsse, Seen und Grundwasser? https://www.youtube.com/watch?v=GBcaxTCD7PE
- MeteoSchweiz SwissMetNet: https://www.meteoschweiz.admin.ch/home/mess-und-prognosesysteme/bodenstationen/automatisches-messnetz.html
- Meteotest: https://www.meteotest.ch
- Meteonorm Horicatcher: https://meteonorm.com/produkt/horicatcher
- The Things Network: https://www.thethingsnetwork.org
- Choose Boring Technology: http://boringtechnology.club
Umsysteme
- Dokku: https://dokku.com
- InfluxDB: https://www.influxdata.com/products/influxdb/
- Grafana: https://grafana.com/oss/grafana/
- Loki: https://grafana.com/oss/loki/
- Datasette: https://datasette.io
Bilderquellen
- Sebastian Wälti: https://aarelauf.ch/flussgeschichte-der-aare/
- Burgerbibliothek Bern: http://katalog.burgerbib.ch/suchinfo.aspx
- Claudia Salzmann, Berner Zeitung: https://www.bernerzeitung.ch/region/bern/wegen-vandalen-verschwindet-die-aaretemperaturanzeige/story/10508450
- Pinterest / Imgur / Keine Ahnung: https://www.pinterest.com/pin/146367056619629863/
- Alessandro Meocci, 20min: https://www.20min.ch/story/aareschwimmen-online-guide-gibt-tipps-324613192584
Referenzmaterial Softwarearchitektur
Dieses Jahr habe ich erfolgreich das CAS Softwarearchitektur an der Berufsfachhochschule Bern absolviert. Anbei eine Sammlung von relevantem Material zum Thema:
Bücher
Das Standardwerk im deutschen Sprachraum: Gernot Starke – Effektive Softwarearchitekturen. Eines der vier Module meines CAS‘ hat durch dieses Buch geführt; als Gruppenarbeit haben wir eine Architekturdokumentation anhand der arc42-Vorlage aus dem Umfeld des Autoren erstellt.
Kurz und knapp, ziemlich frisch: John Ousterhout – A Philosophy of Software Design. Einzige das Thema Testing handelt er viel zu knapp ab.
Auf meiner Noch-zu-Lesen-Liste: Das Tandem der beiden Werke Derek Jones – Evidence-based Software Engineering (Das Cover lohnt sich zu studieren) und Laurent Bossavit – The Leprechauns of Software Engineering.
Essays & Talks
Noch immer ein Favorit von mir: Das Essay Dan McKinley – Choose Boring Technology.
Einen Überblick über die Rolle Softwarearchitekt:in gibt der Talk Gregor Hohpe – The Architect Elevator. (Das Buch dazu kenne ich nicht.)
Kritischer ist da der Talk Greg Wilson – Software Engineering’s Greatest Hits, welcher dieselben Fragen stellt wie die oben erwähnten Derek Jones & Laurent Bossavit.
Und weil es gerade so schön frech ist: Allen Holub – The Death Of Agile
Blogs & Podcasts – Auf dem Laufenden bleiben
Der Klassiker: Martin Fowler und Freunde schreiben regelmässig in ihrem Blog neue Essays.
Im deutschen Sprachraum verfolge ich gerne Eberhard Wolff -Software Architektur Im Stream.
Veranstaltungshinweis: Aare.guru Techstack Webinar
Aus reiner herbstlichen Langeweile plaudere ich eine Stunde lang über die Technologie hinter dem Aare.guru.
Donnerstag, 25. November 2021, 21:00.
Update: Die Aufzeichnung des Webinars ist jetzt verfügbar.
Video zum Wochenende: Coding is Art
Ich befinde mich momentan in den letzten Tages meines CAS Softwarearchitektur an der BFH. Da haben wir lange genug ernsthaft über Software philosophiert. Zeit für etwas Entspannung: Emily Kager – Coding is Art. (Nur 52 Sekunden lang…)
„Fixes bug“. It’s ironic, because we can never be fixed.
Emily Kager
secrethubwarden – Secrets von Bitwarden zu GitHub synchronisieren
Bitwarden ist aktuell mein persönlicher Passwortmanager. Und meine privaten Projekte deploye ich bevorzugt über GitHub Actions. Dabei verwende ich Repository Secrets um sensitive Daten wie Passwörter oder Secret Keys sicher abzulegen. Das manuelle Herumkopieren dieser Daten ist allerdings fehleranfällig und hätte ich gerne automatisiert. Eine existierende Lösung für mein Problem fand ich nicht, dafür ein Projekt mit ähnlicher Funktionalität: envwarden. Davon inspiriert habe ich mir ein eigenes Skript geschrieben und veröffentlicht:
(Habe ich an dieser Stelle schon mal erwähnt, dass ich schlecht im Namen vergeben bin?)
Dieses Bash-Skript nimmt die Konfigurationsdatei .secrethubwarden
mit folgendem Format:
MY_SECRET_PASSWORD=secrethubwarden Example Password
MY_SECRET_NOTE=Secret Note Name
Danach benutzt es die Bitwarden-CLI um im Passwort-Vault das entsprechende Passwort (z.B. secrethubwarden Example Password
) zu suchen, und schreibt dieses mit der GitHub-CLI als Repository Secret (Hier: MY_SECRET_PASSWORD
) hinein. Ohne dass du dein Passwort je zu Gesicht bekommst.
Ich benutze secrethubwarden
bereits erfolgreich in verschiedenen Projekten. Es ist etwas langsam, aber es nimmt mir viel Handarbeit ab. Und animiert mich damit dazu sensitive Daten noch konsequenter aus dem Sourcecode rauszuhalten.
Feedback ist willkommen.
Das beste Feature fürs Home Office-Zeitalter: Die Stummschaltungs-LED
Ein kleines, unauffälliges Lämpchen im Stecker meines Headsets zeigt mir immer an, ob ich in einer Videokonferenz stummgeschaltet bin oder nicht.
Bevor ich los fluche, werfe ich einen Kontrollblick darauf und schütze damit meine Freundschaften, Beziehungen und Arbeitsverträge.
Link zum Wochenende: Datasette.io
Das Open Source-Tool Datasette verwandelt SQLite-Datenbanken (Oder indirekt quasi jede CSV-Datei) schnell und unkompliziert in eine Webseite inkl. API. Es erlaubt einfach durch die Daten zu reisen, filtern, analysieren.
Erweiterbar mit Python-Plugins erlaubt es zusätzliche Visualisierungsmöglichkeiten wie diese Kartendarstellung.
Ich benutze es für meine OpenData-APIs für die Metadaten der Hydrologie- und SwissMetNet-Datenbanken. Dazu ruft ein Skript jeweils beim Deployment die API-Methoden auf und speichert die Resultate in die SQLite-Datenbank. Das ganze Skript als anschauliches Beispiel gibt es auf GitHub.
Office Hours
Auf das Projekt bin ich via diesem Artikel gestossen: Open source projects: consider running office hours. Letzte Woche habe ich einen dieser Slots gebucht und 20 Minuten mit Simon Willison konferiert.
Alles in allem ist Datasette eine ausserordentlich tolle Erfahrung, sowohl technisch wie auch menschlich. Ich kann es kaum erwarten noch mehr Anwendungsfälle dafür zu finden.
Aare.guru- & Existenz-API Newsletter Auftakt 2021
Den folgenden Text habe ich am 6. April 2021 an die API-Newsletter-Liste verschickt. Trag dich in den Newsletter ein um auf dem Laufenden zu bleiben.
Christian
Eine kurzfristige Ansage: Aufgrund einer Änderung an der Datenlieferung der Wasserwerte musste ich das sorgfältig entwickelte Refactoring der Existenz-API ohne weiteres Testen deployen. Es sind keine grossen Änderungen passiert, aber vielleicht habe ich etwas übersehen.
Keine Änderung an der bestehenden Aare.guru-API. Ein neuer Endpoint: widget
Minimale Änderungen an den Metadaten (Stations- und Parameterliste) der Existenz-API: Die details
-Felder sind umgestellt und etwas ausführlicher.
Was gibt’s sonst noch Neues?
- Die APIs sind intern poliert und auf den neuesten Stand gebracht: Bessere Testabdeckung, schnellere Deployments, zentralisierteres Logging, neues Hintergrundbild für die Doku. Wir sind damit etwa auf Faktor 327 von 12.
- Eine experimentelle InfluxDB-Datenbank steht zum Ausprobieren zur Verfügung. Die Credentials für die Verbindung sind auf api.existenz.ch dokumentiert. Es gilt Bring-Your-Own-Visualization. Ich hoffe im Verlauf des Sommers das ganze Datenarchiv der letzten Jahre dort hinaufzuladen.
- Alle Metadaten zu den SwissMetNet- und Hydrologie-Zeitreihen sind jetzt als nifty Datasette verfügbar: api-datasette.konzept.space. Das ersetzt meine handgestrickte Karte.
Zu guter Letzt bin ich stolz mein Lockdown-Projekt zu präsentieren: Das AareDisplay.
Und jetzt heisst es warten bis der Schnee zusammen mit den Viren endgültig definitiv verschwindet, die Wassertemperaturen steigen und wir hoffentlich einen gemütlichen Sommer geniessen dürfen.