Philips Hue Lichter in Python mit Mac Menu Bar kontrollieren

Hier geht’s wirklich nicht darum, ein ganz tolles, super mächtiges App zu erstellen. Stattdessen soll dieses kleine Script ein bisschen ein „Framework“ darstellen, falls Du an sowas interessiert bist, und die ersten Schritte sind ja immer die schwersten.

Was wir heute machen, ist Rumps einzusetzen um einen Eintrag in die Mac Menu Bar zu machen, phue verwenden um die Hue Bridge anzusprechen, und dann einen LaunchD Agenten erstellen, damit das Script beim Reboot erhalten bleibt.

Das Script bringt das Gerüst mit sich, um

  • sich in der Bridge einzuloggen
  • Szenen aus der Bridge ins Script einzulesen
  • Lichter an- und auszuschalten
  • und Helligkeit einzustellen

Installation

Runterladen und irgendwo auspacken. Dann:

python3 -m venv venv # remember where you put it
source venv/bin/activate
pip3 install -r requirements.txt

Zum Ausführen (aber erst konfigurieren, siehe unten):

chmod +x lights.py
./lights.py

Konfigurieren

Du brauchst die IP-Addresse Deiner Hue Bridge. Diese dann im Script anpassen:

bridge = phue.Bridge('192.168.1.2')

Dann musst Du in der ersten Zeile nur noch den Pfad anpassen, in dem Dein „venv“ gelandet ist:

#! /Users/<yourusername>/path/to/venv/bin/python

Bei reboots automatisch starten:

Dazu machen wir einfach einen launchd Agenten:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.yourusername.huelights</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/venv/bin/python</string>
        <string>/path/to/your/lights.py</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Agent laden:

launchctl load /path/to/your/com.yourusername.huelights.plist

License / Lizenz

This is free and unencumbered software released into the public domain under the CC0-1.0 license.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, in source code form, for any purpose, commercial or non-commercial, and by any means.

Mikka
Mikka
Ultrahiker und Ultra-Light Hiker. Technopilger, T1D, Mediziner. Was sonst?

Hinterlasse einen Kommentar.

Du kannst auf Fediverse-Profile verlinken, indem du @benutzername@server.tld in deinem Kommentar eingibst.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert