Webserver-Integration in 5 Zeilen – Projekt „Aquariumsteuerung“ #4

Bottle ist ein Webserver Modul für Python, bei dem man mit gerade mal 5 Zeilen Code richtig weit kommt:

from bottle import route, run, template
@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
  • Zeile 1: bindet das ganze Geraffel ein
  • Zeile 3: definiert auf welchen Pfad reagiert werden soll. Wichtig ist da das <name> weil das festlegt, dass dieser Wert dann als Textvariable name zur Verfügung steht.
  • Zeile 4: ist die Methode, die aufgerufen wird, wenn der Pfad oben angefragt wird, samt Übergabeparameter name
  • Zeile 5: gibt als Beispiel eine Seite mit dem Wert des Übergabeparameters zurück
  • Zeile 7: startet das Ganze auf Port 8080

Sau cool. Ich habe das Ganze jetzt so eingebaut dass /licht/1 das Lichtszenario 1 startet, /licht/2 das Lichtszenario 2 und /licht/0 das Licht wieder ausschaltet.

Weihnachten 2017

Weihnachten war früher ja viel schlimmer. Mittlerweile schaffen wir es tatsächlich diesen Vollgas-Tagen ein paar ruhige Momente abzuluchsen. Und heute, am Tag 2 nach Weihnachten, macht sich sogar langsam sowas ähnliches wie Entspannung in der Mannschaft breit. Die Abende bis Silvester sind zwar ausgebucht, aber schön ausgebucht.

Einsatz unter Laborbedingungen – Projekt „Aquariumsteuerung“ #3

Die stade Zeit wird ein ganzes Stück stader wenn man ein stades Projekt hat. Und so eine Relais-Karte an einem Raspberry ist mega stad! Der Status ist wie folgt:

  • Die Realis können nach belieben geschalten werden. Läuft.
  • Zwei Taster können ausgelesen werden. Taster auslesen hört sich recht einfach an, ist es ja auch irgendwie, aber man muss mit dem Entprellen aufpassen. So ein Mensch drückt ja einen Taster viel langsamer als ein Rechner ihn ausliest, das bedeutet der Mensch drückt einmal den Tester und der Computer denkt 659 mal gedrückt. Damit aus einem Humantastendruck ein „einmal gedrückt“ Signal wird, muss man etwas tricksen oder man findet die Methode GPIO.add_event_detect() und verwendet die. Die überprüft nämlich einen Eingang und wirft genau ein Event wenn sich der Zustand ändert. Läuft.
  • Zu guter letzt können die Ausgänge auch noch zu bestimmten Zeiten ein- und ausgeschalten werden. Auch das geht recht einfach von der Hand wenn man die Klasse schedule verwendet. Läuft.

Zusammengefasst, erstens: die Schaltung läuft jetzt unter Laborbedingungen fehlerfrei. Was noch cool wäre, ist ein kleines Web-Interface oder ein Web-Service.
Zusammengefasst, zweitens: Eigentlich könnte man so eine Schaltung komplett mit Bash, Cron und Apache zusammenskripten. Oder noch einfacher mit FHEM. Aber man kann es natürlich auch selbst machen, das hat ja auch viel mehr Charme.

ACC Akut 600 – für das absolute Rotzerlebnis

Was so ein Männerkopf alles zu Tage befördert wenn man ihm eine ACC akut 600 einwirft, das ist schon der absolute Hammer. Anfangs wie eine Art Initialzündung kommt gleich ein fester Batzen, mit allem was sich in der Nacht fest gesetzt hat und angetrocknet ist, man merkt beim Schneuzen sofort dass da festes Material im Tempo gelandet ist und freut sich wie bei einem Überraschungsei auf das was man da gleich zu Gesicht bekommt. Eine zähe gelbliche Masse mit harten braunen Rändern und kleinen roten Punkten durchzogen, ein Rotzschäufele ohne Knochen direkt aus dem Kopf gleich unterhalb vom Auge. Und ein komisches Gefühl im Kopf, dass da plötzlich was fehlt, nimmer da ist wo gerade noch was war, eine ausgerotzte innere Leere überlagert von der Freude schon ganz schön was geleistet zu haben.
Angefeuert durch diesen initialen Erfolg geht es ans Eingemachte, das schleimig gelb grünlich irgendwo hinten drin pappende. Da muss man dem ACC aktu 600 aber etwas helfen und zwar am Besten in Form von Gurgelgesang. Richtig gemacht hört der sich ungefähr so an wie die Sprache der Dracs aus Enemy Mine – Geliebter Feind. Pro-Tipp: Um nicht für komplett Vollverrückt erklärt zu werden, läuft man am besten ein paar Meter allein. Das Gegurgele löst den richtig zähen Schleim (schlägt sich aber auch auf die Stimmbänder, Achtung!). Wenn man alles richtig macht und schön hochzieht, dann landet irgendwann ein Klumpen im Mund, der von der Konsistenz her an ein aufgeweichtes Stück Leder erinnert. Nicht schlucken! So ein Stück hart erarbeiteten Rotz muss gefeiert werden! Am besten schmiert man ihn auf ein Stück Tempo und zeigt ihn den Kollegen.
Danach geht es Stück für Stück besser, die fehlende Stimme signalisiert allen anderen dass man offensichtlich angeschlagen ist, man ist aber innerlich von dem ganzen Rotz befreit und kann so die Vorweihnachtszeit viel intensiver wahrnehmen.

Projekt „Aquariumsteuerung“ #1

Es gibt ja Menschen die wo sich voll mit Elektronik auskennen. So einen kenne ich, einen waschechten Elektroingenieur. Der hat sich den Aufbau angeschaut und gesagt dass die Transistorschaltung nicht nötig ist. Bestenfalls ein 1kOhm Widerstand am Ausgang gegen Masse – und das verstehe ich sogar. Zusammengefasst braucht es jetzt

  • den Cobbler – im Zulauf
  • das Breadboard – im Bestand
  • 8 Widerstände – im Bestand
  • ein paar Drähte – im Bestand

Das wird was ganz Großes. Wie man die GPIOs von so einem Raspberry mit Python ansteuert ist hier beschrieben. Die Sache läuft.

Alles hat seine Zeit

Diese Kälte und diese Dunkelheit, da passt es in die Zeit dass endlich mal jemand Klartext spricht, düster aber wahr: Perl ist raus. Das sicherste Zeichen dafür dass es so ist wie es ist, ist dass sogar der Perlmeister himself mittlerweile in Python macht. Gute Nacht. Schön war’s. Und ein „Danke für den Fisch“ hinterher.
Wenigstens gibt es noch FHEM als letzte Bastion, ein Abschied auf Raten. Ich bin emotional berührt, die Aquariumsteuerung wird mit Python gemacht, nicht dass es wieder heißt dass der Hack nicht offen für neues wäre. Und überhaupt, eine Flexibilität bei der Wahl der Programmiersprache zeugt von einer gewissen Professionalität.

Nur mal so gesponnen

Wegen der Aquariumsteuerung nochmal. Was man dazu bräuchte wäre ein alter Raspberry Pi – check, ein Breakout-Board – check, ein paar Drähte – check, ein paar Relais – check, einen Cobbler von Raspberry Pi nach Breakout-Borad – fuck. Fuck, fuck, fuck! Ein Raspberry Pi III hat ein paar Pins mehr als ein I, da passt der alte Cobbler nicht mehr. Also einen Cobbler würde die Sache schon vereinfachen. Wie man den Raspberry mit dem Relais-Board verbindet, wäre hier beschrieben, wie es ganz ganz sicher geht hier, aber der Nutzen erschließt sich einen Nicht-Elektroniker nicht. Cool wären vielleicht noch ein paar Taster für die manuelle Bedienung – und ein Display. Also so eine Aquariumsteuerung wäre schon ein cooles Projekt.

Smart gegensteuern halt

Die Tage sind dunkel und werden zunehmend hektischer, ein ganz sicheres Zeichen dass es auf Weihnachten zugeht. In der Weihnachtszeit sind Außenprojekte scheiße, weil kalt und dunkel. Da muss man sich innen was suchen. Die Chefin hat sich auf das Kinderzimmer von Kind 1 eingeschossen. Eigentlich braucht es nur ein neues Bett und ein Bücherregal, aber der versierte Hausmeister weiß natürlich wie das enden wird, von daher ist es wichtig projekttechnisch gegen zu steuern. Smart gegen zu steuern.
Smarte Projekte wären da zum Beispiel eine intelligente Lampensteuerung für die Küche (also so mit Zeitschaltuhr und vielleicht mit Anwesenheitserkennung) oder – noch viel cooler – eine smarte Steuerung für das Aquarium. Die Küchengeschichte hätte einen gewissen WAF. Das Aquarium ist eine Herzensangelegenheit, mit miserablen WAF. WAF hin WAF her, gegensteuern ist wichtig. Vor allem smart.