Wenn es um Videospiele geht, ist mein Geschmack sehr selektiv. Ich versuche meine beschränkte Gaming-Zeit sehr bewusst einzusetzen. Das Übersetzungs-Rätelspiel Chants Of Sennaar hat sich gelohnt: Guter Schwierigkeitsgrad, angenehme Steuerung, wunderschöne Grafik und eine Länge von ca. acht Stunden machten das zu einem perfekten Spiel für mich. Gerne wieder.
Langzeitkritik: Velotasche
Würdest du das Buch nochmals lesen?
Würdest du dir den Film nochmals ansehen?
Würdest du dir dieselbe Tasche nochmals kaufen?
Ja. Ich hatte mir 2017 meine erste Velotasche Ortlieb Backroller Core gekauft und war begeistert. Jetzt, neun Jahre später hat sie ihr Lebensende erreicht und ich habe mir dasselbe Modell in rot wieder gekauft.
Material und Handhabung sind ausserordentlich gut, Insbesondere der einfache Verschluss hat es mir angetan. Einzig ein Innentasche vermisse ich etwas. Andere Modelle verfügen zwar über eine, aber haben dafür komplizierte Riemenverschlüsse. Deshalb bleibe ich beim soliden Basismodell.
Gucken wir mal ob sie wieder neun Jahre hält.
Kurzkritik: Adrian Tchaikovsky – Children Of Time
Den erste Teil der Children Of Time-Buchreihe habe ich regelrecht verschlungen. Aber im Gegensatz zu seiner Final Architecture-Trilogie werde ich es wohl beim ersten Band belassen. Dieser ist gut in sich geschlossen mit einem befriedigenden Ende.
Kurzkritik: Ann Leckie – Translation State
Das Buch Translation State erweitert Ann Leckies Universum aus der Ancillary-Trilogie um spannende Einblicke in die Presgr-Kultur. Mich persönlich hat die Geschichte aber schlussendlich wenig angesprochen.
Für Fans.
Veranstaltungshinweis: Der Chor und Weitere – „The Armed Man“ von Karl Jenkins
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.
Der Vorverkauf läuft hier.
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.
Smarte Hintergrundlampe
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.
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
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…
Auch im Bild: Eine einfache 3d-gedruckte Zugentlastung für das Stromkabel welches zur Steckdose führt.
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.
Hexagons are the Bestagons, deshalb kamen natürlich Ikea Trixig-Bodengleiter als zum Einsatz. Ein Detail welches kaum jemand zu Gesicht bekommen wird und nur mir enorm Freude bereitet.
Software
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.
Video zum Wochenende: Thylacine – Swiss Sounds
Schön.
Etwas weniger aufgedreht als Made in Switzerland. Und erst noch mit echten Kühen.
Warum ich gerne Serafe-Gebühren zahle: Schlummerland
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.
Musik zum Wochenende: ROSALÍA – LUX
Nachdem Björk mit ihr auf dem Track Oral kollaborierte, 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.
(Notiz an mich: Spanisch lernen.)
Rätselparcours #6: Teenager / Zeit
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
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.
Ein weiterer Erfolg!