Der Titel 'Hymnos' erklärt sich durch eine Konzentration an Liegetönen und ihren Obertönen, die in der Mitte des Stückes den Eindruck eines Chores erwecken, der aber in Wirklichkeit gar nicht anwesend ist.
Unser Chor hat dieses Jahr zwei Konzertprogramme: Als Erstes nochmals The Armed Man von Karl Jenkins, welches wir bereits 2017 aufgeführt haben. Anlass ist das 175-Jahre Jubiläum der NMS Bern, welcher unser Chor angehängt ist.
Das Konzert findet zusammen mit Gymer-Chören und Orchester im Casino Bern im Rahmen der offiziellen Feierlichkeiten am 12. und 13. März 2026 statt.
Zwei Monate später feiert unser Chor das eigene Jubiläum: XXV. Wir singen einen Querschnitt aus 25 Jahren Chor-Konzerten, zusammen mit unserem Partner-Orchester Cantabile aus Slowenien.
Die Konzertdaten sind 8. und 9. Mai 2026 wie gehabt in der Petruskirche Bern. (Diese Jahr werden wir nicht in Zürich auftreten.)
Der Vorverkauf startet im April, ich werde an dieser Stelle nochmals informieren.
Nachdem ich viele Videos von kreativen, talentierten und produktiven Macher:innen gesehen hatte, bekam ich Lust wieder einmal etwas selber zu bauen. Meine Wahl fiel auf eine smarte Tischlampe.
Extrembeispiel ohne Zimmerbeleuchtung
Die Lampe steht hinter meinem Monitor und erhellt die Wand immer dann wenn draussen Dunkelheit herrscht und ich noch am Arbeiten bin. Das Licht senkt den Helligkeitskontrast zwischen Monitor und Umgebung und schont damit meine Augen.
Der Lichtkegel ist aufgrund der verwendeten Lampenform nicht sehr gross, aber gut genug für meine Bedürfnisse.
Hardware
Prototyp
Begonnen habe ich mit einem Eurolite PAR-16 Spot-Scheinwerfer (5 cm Ø), welchen ich vor knapp 20 Jahren für meine WG-Zimmerbeleuchtung erstanden hatte. Das Leuchtmittel ist eine normale LED-Birne mit GU10-Sockel, gespiesen mit 230 Volt. Er ist montiert auf einem einfachen Stück Holz und geschaltet mit einem Fussschalter.
Diese Lösung war mir aber zu dumm. Ich wollte die Lampe nicht ständig von Hand ein- und ausschalten, nicht im 21. Jahrhundert, nein.
Ich hatte mir überlegt, eine Fernsteuerung mit Hilfe eines ESP8266 oder ähnlichem einzubauen. Das hätte aber zusätzliche Teile benötigt: Eine 3.3 V-Stromversorgung sowie ein Relais für die Lampe. Nach kurzer Recherche bin ich auf die perfekte Lösung gestossen: Diese Komponenten gibt es bereits integriert unter dem Namen Shelly 1PM Mini. Das kleine rote Kästchen (29x34x16 mm) kann exakt was ich brauche.
Um die ganze Elektronik zu verstecken habe ich eine Vertiefung in den Holzsockel gefräst. Das ging mit Forstnerbohrer zum Markieren und mit der Oberfräse zum ausfräsen ziemlich einfach.
Vorsichtig habe sowohl Löcher für die Kabelführung, eine Versenkung für die Mutter der Lampenhalterung sowie eine zweite Aussparung für den Edelstahl-Taster gebohrt. Gerade letzteres war spannend weil ich ein kleineres durchgängiges Loch nach oben benötigte, darunter aber eine breitere Vertiefung um die Mutter anziehen und die Kabel verbinden zu können.
Auf die Idee mit dem Taster kam ich erst als ich das Schaltbild des Shelly studiert habe. Ich dachte mir, dass eine manuelle Steuerung nicht schaden kann. Gut gedacht…
Weil ich wusste, dass auf den meisten der verbauten Drähte 220 V Spannung anliegt – auf einigen sogar ständig – und dass die ganzen Lampe aus Holz besteht, waren mir solide Verbindungen wichtig: Ich habe mir WAGO 221-Verbindungsklemmen geleistet und verbaut.
Damit ging aber mein Originalplan nicht mehr auf: Ich wollte ursprünglich die ganze Verkabelung mit einer 3d-gedruckten runden Platte abdecken und so einfach zugänglich halten. Das funktionierte jetzt aber aus zwei Gründen nicht mehr: Erstens waren meine Löcher doch nicht so rund wie ich dachte. Und zweitens war die Aussparung unter der Lampe mit dem Shelly und den ganzen Klemmen vollständig ausgefüllt. Ein Deckel darauf wäre ein Gemurkse geworden.
Also habe ich beschlossen ein zweites Stück Holz als Abdeckung und zur zusätzlichen Stabilisierung unter die Lampe zu schrauben.
Und um die Holzplatte aufzuhübschen habe ich mir ein schmuckes Karnies-Profil mit der Oberfräse gefräst. Hier kollidierte die Praxis mit der ganzen Theorie aus meinem Holzarbeiten-YouTube-Konsum: Es war mir ein Rätsel wie ich das Holzstück dermassen fixieren sollte, damit ich die Fräse eben und in einer geraden Linie darüber führen könnte.
Das Endresultat war akzeptabel, gewinnt aber sicher keinen Tischlerpreis.
Nach Schleifen, Ölen und Trocknen habe ich die zwei Holzstücke zusammen geschraubt. Falls Wartung notwendig sein sollte, würde ich die Schrauben halt einfach wieder entfernen.
Ich will folgendes automatisiertes Verhalten der Lampe im Alltag: Wenn ich an meinem Arbeitsplatz sitze und es draussen dunkel wird, soll sie sich einschalten. Wenn es draussen wieder hell ist, soll sie sich ausschalten.
Daraus ergaben sich folgende technische Konditionen:
Bin ich am Laptop eingeloggt?
Ist der Laptop am Arbeitsplatz? (Angeschlossen am Thunderbolt-Dock und dem externen Monitor)
Ist die Sonne untergegangen?
Nur wenn alle drei Bedingungen erfüllt sind, soll sich die Lamp einschalten. Andernfalls ausschalten.
Hardware-Setup
Mit der Hardware angeschlossen wird der Shelly mit Hilfe der zugehörigen App mit dem WLAN verbunden. In der App habe ich den Taster als „Button“ mit dem Verhalten „Toggle Switch“ konfiguriert.
Der Taster funktioniert so ausserhalb der automatischen Steuerung und erlaubt es, die Lampe unabhängig von der Software ein- und auszuschalten.
Hammerspoon
Als Steuerung habe ich auf meinem MacBook die freie Automatisierungssoftware Hammerspoon installiert. Mit Hilfe von Lua-Skripten kann ich über Tastatur-Kurzbefehle und sonstigen Triggers die Lampe fernsteuern. Folgende Codeschnippsel verwende ich dazu:
Fernsteuerung
Der Einfachheit halber ist der Shelly innerhalb meines Netzwerkes ohne Authentifizierung erreichbar. Ein einfacher POST-Request auf die RPC-Schnittstelle reicht:
local shellyUrl = "http://shelly1pmminig4-xxx.local/rpc"
--- Power light light on or off
function powerLight(on)
if on then
hs.http.post(shellyUrl, hs.json.encode({
id = 1,
method = "Switch.Set",
params = { id = 0, on = true }
}))
else
hs.http.post(shellyUrl, hs.json.encode({
id = 1,
method = "Switch.Set",
params = { id = 0, on = false }
}))
end
end
Benutzer am Laptop?
Die idleTime war für mich die solideste Methode um einen anwesenden User zu detektieren:
--- Check if a user is logged in, i.e. not idle
function isUserLoggedIn()
return hs.host.idleTime() < 300
end
Laptop am Arbeitsplatz?
Die Überprüfung der angeschlossenen Monitore war weniger zuverlässig als die des Thunderbolt-USB-C-Docks:
local dockName = "USB3.2 Hub"
local dockVendor = "GenesysLogic"
--- Check if my Thunderbolt dock is connected
function isDockConnected()
local usbDevices = hs.usb.attachedDevices()
for _, device in pairs(usbDevices) do
if device["productName"] == dockName and device["vendorName"] == dockVendor then
return true
end
end
return false
end
Tag oder Nacht?
Hammerspoon bringt netterweise bereits Methoden zur Berechnung des Sonnenauf- und Untergangs mit:
local homeLat = 47
local homeLon = 7.5
--- Check if the sun is up here
function isSunUp()
local currentTime = os.time()
local sunrise = hs.location.sunrise(homeLat, homeLon, currentTime)
local sunset = hs.location.sunset(homeLat, homeLon, currentTime)
-- Add 30 minutes (1800 seconds) to sunrise and subtract 30 minutes from sunset
local adjustedSunrise = sunrise + 1800
local adjustedSunset = sunset - 1800
return currentTime >= adjustedSunrise and currentTime <= adjustedSunset
end
Und jetzt alles zusammen…
Alle fünf Minuten wird der aktuelle Zustand überprüft:
--- Check the light from time to time
lightCheckTimer = hs.timer.new(300, function()
determineLightPower()
end)
lightCheckTimer:start()
--- Determine Light power state by current conditions
function determineLightPower()
print("Determining light power state...")
--- No user? No light.
if not isUserLoggedIn() then
print("No user logged in. Turning off light.")
powerLight(false)
return
end
print("User logged in.")
--- No dock? Not at the office, no light.
if not isDockConnected() then
print("No dock connected. Turning off light.")
powerLight(false)
return
end
print("Dock connected.")
local isSunUp = isSunUp()
print("Is sun up? " .. tostring(isSunUp))
powerLight(not isSunUp)
end
Fazit
Die Lampe funktioniert gut genug. Beim Schlafenlegen und Aufwecken des Laptops gibt es einige Unschönheiten, auch beim Aufwachen des Systems in der Nacht für Update-Arbeiten. Aber mit zusätzlichen Tastatur-Kurzbefehlen zur Steuerung der Lampe via Hammerspoon und mit dem manuellen Taster ist die Situation kontrollierbar. Und braucht schlussendlich weniger manuellen Aufwand als eine dumme Lampe. Ich bin ganz zufrieden damit.
Schlummerland sind meditative Einschlafgeschichten welche meine Kinder bereits seit Jahren erfolgreich in den Schlaf wiegen. Gratis zum Streamen auf der SRF-Webseite, auf Spotify, als Podcasts etc. Sie sind jeden Rappen Serafe-Gebühren wert.
Nachdem Björk mit ihr auf dem Track Oralkollaborierte, hatte ich kurz bei Rosalía reingehört. Ich fand aber keinen Zugang zu ihrem Werk und liess es wieder sein.
Diese Woche allerdings erschien das neue Album Lux und ich kann mich kaum satthören. Es kumuliert im absoluten Höhepunkt Berghain. Wow.
K1 wurde 13 und ist jetzt offiziell ein Teenager. Aber er ist noch nicht zu cool für einen kleinen Rätselparcours am frühen Morgen vor der Schule. Informelles Thema ist Zeit.
Schritt 1: Karte
Der 13. Kuchen folgt später
Eine Karte liegt auf dem Zmorgentisch voller Geburtstagsglückwünschen von A und mir, mit den Schlussworten:
Und jetzt schnell auf die Suche! Wann beginnt laut Stundenplan schon wieder die Schule?
Schritt 2: Uhr
An unserer Schulinfowand versteckt sich hinter K3’s Stundenplan eine Papier-Uhr.
Die Papieruhr besteht aus drei Schichten: Zuunterst ein Zifferblatt, dann eine Zwischenblatt mit zwölf Bildern von Verstecken in der Wohnung, dann ein Deckblatt mit einer ausgeschnittenen Lücke. Daran angeklebt eine Minutenzeiger (Am Zwischenblatt) und ein kürzerer Stundenzeiger (Am Deckblatt.) Alle ausgedruckt auf festem Papier von 120 g/m² und auf Fotopapier, letzteres rutscht etwas besser und die Uhr lässt sich so einfach einstellen. Eine einfache Rundkopfklammer in der Mitte hält alles zusammen.
Ich habe für das Zwischenblatt zwölf Fotografien in Apple Pages eingefügt, den Hintergrund entfernen lassen und angeordnet. Etwas schöner wäre es noch gewesen, jedes Bild in Richtung Mitte auszurichten, aber das ging unter.
Damit bei der Zielzeit das richtige Bild in der Lücke angezeigt wird habe ich gar nicht gross überlegt und habe einfach die Zeiger erst nachträglich angeklebt.
Ein Problem war trotzdem die Position der Bilder: Platziert man für die Uhrzeit 07:30 den Stundenzeiger auf 7 oder etwas weiter zwischen 7 und 8, so wird bereits das falsche Bild angezeigt. Ein Lösungsansatz: Nur sechs bis acht Bilder platzieren.
Schritt 3: Schlüssel
Am Zielort, dem Velo, hängt kommentarlos ein Schlüssel unter dem Sattel. Nach etwas überlegen identifiziert K1 diesen als den Schlüssel zu seinem Sekretär.
Schritt 4: Wordle
In der Schublade liegt eine Karte mit einem QR-Code, welcher auf ein bestimmtes Wordle-Rätsel auf Wordly.org verweist. Auf dieser Seite erhält man nach Eingabe eines gewünschten Lösungswort einen Link auf das dazugehörige Rätsel.
Den QR-Code habe ich abermals mit QR Code AI Art Generator versucht zu verschönern und ausgedruckt.
Das Lösungswort verweist auf…
Schritt 5: Magische Zeitlinie
…den Esstisch, in dessen Schublade sich eine Schachtel befindet.
Üblicherweise teste ich alle Schritte des Parcours ausführlich, hier hatte ich es nicht getan und bin prompt in ein Problem gelaufen: Die Schachtel war zu gross für die Schublade. Zu diesem Zeitpunkt konnte ich den Ablauf aber nicht mehr ändern und konnte mich (erfolgreich) auf die Unaufmerksamkeit meiner Kinder verlassen: Ich liess die Schublade offen.
Die Schachtel ist das 3d-gedruckte Modell Versatile TCG Deck Box, unten schön glänzendes PETG, oben goldenes PLA.
In der Schachtel befinden sich sechs selbstgestaltete Magickarten mit Bildern zu signifikanten Ereignissen in K1s Leben: Geburt, erster Skitag, erster Schultag, letzter Coiffeurbesuch etc. Die Kartentexte sind frei fabuliert und ähneln Magic-Regeln. Z.B. der Meister-Skifahrer:
Nichts kann dich aufhalten. Du bist unblockbar.
Die Karten habe ich im Gegensatz zum letzten Mal einfach mit Magic Card Maker online erstellt, auf Fotopapier ausgedruckt und auf bestehende Magickarten geklebt. Eingesleevet sehen sie perfekt aus.
Ein Begleitzettel gibt Hinweise auf den weiteren Verlauf: Als erstes soll K1 die Karten in die chronologisch richtige Reihenfolge bringen. Als zweites das Lösungswort finden: In jedem Kartentitel ist jeweils ein Buchstabe rot eingefärbt. Zusammengesetzt ergibt es den Namen von K1’s Lieblingsfussballerin. Und das war bereits da Lösungswort für den Cryptex aus dem letztjährigen Rätselparcours.
Schritt 6: Roter Hering
Aber dabei handelte es sich nur um eine falsche Fährte. Im Cryptex versteckt findet sich eine Nachricht, welche nochmals auf die exakte Formulierung des Hinweise hinweist: Was steckt dahinter?
Schritt 7: Was steckt dahinter?
Des Rätsels echte Lösung: K1 hat seine Handyhülle hinten mit einem Sticker seiner Lieblingsfussballerin verziert. In der Hülle hinter dem Handy habe ich den letzten Hinweis versteckt: Eine Karte auf Fotopapier gedruckt und zugeschnitten, mit dem absolut ersten Bild von K1 als Frischgeborener. Darauf die Frage: Wann wurdest du schon wieder genau geboren?
Abschluss: Uhr – Reprise
Seine Geburtszeit wusste K1 zufälligerweise, stellt sie erneut in der Papier-Uhr aus Schritt 2 ein und fand am neuen Zielort sein Geschenk.
Aus aktuellem beziehungstechnischen Anlass haben A und ich in meinem digitalen Kalender fast zwei Jahrzehnte nach hinten geblättert. Mein Archiv geht zurück bis April 2006:
An dieses Abendessen kann ich mich nicht erinnern, aber immerhin kenne ich die Personen auf der Gästeliste noch.
Viele Termine aus den nächsten Jahren geben mir hingegen Rätsel auf: Wer oder was war „T.J.“? Wer war Simone zu deren Geburiparty ich in Fällanden eingeladen war? (Fällanden tönt eher nach Norwegen…) War ich wirklich innerhalb einer Woche an einem Sigur Rós-, einem Massive Attack– und einem Sting-Konzert? Warum gibt es da ein „Weihnachtsessen V1“ und keine weiteren Versionen? Und was zum Teufel habe ich beim Termin „Mord Dings“ gemacht?
Und selbst wenn ich mich an die Ereignisse von vor 10 oder mehr Jahren erinnere, sind in meinem Gedächtnis doch kaum mehr Details vorhanden.
Wenigsten nahm ungefähr damals die Handyfotographie Einzug in meinem Leben. So dass nicht all diese Moment wie Tränen im Regen verfliessen.
Die Challenge Cyclomania ruft jährlich zur Erfassung der eigenen Mobilität auf, mit Fokus auf Velo- und Fussverkehr. Mit einem Punkte- und Preissystem wird die Datenerfassung gamifiziert. Die getrackten Strecken fliessen anschliessend (hoffentlich) in die Verkehrsplanung der beteiligten Gemeinden ein.
Für ein solches Projekt werfe ich gerne meine Datenschutzbedenken über den Haufen und lasse mich einen Monat lang orten. Das Resultat:
Zur Erläuterung: Drei normale Arbeitswochen machen bei mir 120 km Velofahrt aus. Dazu kommt eine Ferienwoche mit etwas Wandern im Jura, in welche wir mit dem Auto gefahren sind (Nicht ganz 100% getrackt). Und dann noch ein Konzertbesuch mit dem Zug in Milano, welchen ich nur bis zur Grenze erfasst habe.
Mit Improtheater habe ich persönlich nicht so viel am Hut, das ziellose Theatern finde ich, nun, ziellos. Zweifellos amüsant die ersten zwei, drei Mal, aber danach habe ich es gesehen.
Die Improshow Game Changer hingegen finde ich endlos unterhaltend. Praktisch jede Folge wartet mit einem neuen Konzept auf, massgeschneidert auf die Kandidaten, und ja, zusammengeschnitten für maximale Effizienz. Ich kann mich gar nicht sattsehen davon.
Game Changer läuft auf dem Nischen-Streamingdienst Dropout welchen ich bereits seit über zwei Jahren abonniere. Einzelne Folgen sind auf YouTube gratis zu sehen.
(Wer mir einen besonderen Gefallen tun will, organisiert mal ein Überraschungs-Escape-The-Greenroom für mich.)
Vor 20-30 Jahren habe ich mir diese Ausgabe von Neal Stephensons Snow Crash gekauft und seither x-mal gelesen. Eigentlich sollte es das Cyberpunk-Genre parodieren, macht aber dermassen Spass, dass es zum Cyberpunk-Klassiker wurde. Überdrehte Action, visionäre Ideen und viel Sumerische pseudowissenschaftliche Linguistik.
Das Buch dient mir immer wieder mal als leichte Sommerlektüre. Freue mich schon auf die nächste Runde.