Zum Hauptinhalt springen

Python-Automatisierung

Python passt hier hervorragend

Python ist eine der besten Optionen für Busylight-Automatisierung, weil die öffentliche Busylight-Steuerungsschnittstelle einfach lokales HTTP ist.

1. Installation​

python -m venv .venv
source .venv/bin/activate
pip install requests

2. Minimaler Helper​

import requests

BASE_URL = "http://localhost:8989"


def light(red=0, green=0, blue=0):
response = requests.get(
BASE_URL,
params={
"action": "light",
"red": red,
"green": green,
"blue": blue,
},
timeout=2,
)
response.raise_for_status()


def off():
response = requests.get(
BASE_URL,
params={"action": "off"},
timeout=2,
)
response.raise_for_status()


if __name__ == "__main__":
light(red=100)

3. Alarm und Pulsieren​

def alert(red=100, green=0, blue=0, sound=5, volume=25):
response = requests.get(
BASE_URL,
params={
"action": "alert",
"red": red,
"green": green,
"blue": blue,
"sound": sound,
"volume": volume,
},
timeout=2,
)
response.raise_for_status()


def pulse(red=100, green=0, blue=0):
response = requests.get(
BASE_URL,
params={
"action": "pulse",
"red": red,
"green": green,
"blue": blue,
},
timeout=2,
)
response.raise_for_status()

4. POST-Helper​

import json
import requests

BASE_URL = "http://localhost:8989"


def post_light(red=0, green=0, blue=0, sender="SDK"):
payload = {
"action": "Light",
"sender": sender,
"eventtype": "Light",
"eventname": "Color",
"parameter": json.dumps({
"RedRgbValue": red,
"GreenRgbValue": green,
"BlueRgbValue": blue,
}),
}

response = requests.post(BASE_URL, json=payload, timeout=2)
response.raise_for_status()

5. Registrierung beim Start​

Wenn sich dein Python-Daemon wie eine benannte Quelle innerhalb von kuandoHUB verhalten soll, sende beim Start einmal RegisterDataSource und während der Einrichtung CreateInitialPriority.

Dieses Muster ist nĂĽtzlich fĂĽr:

  • Monitoring-Agents,
  • Service-Status-Daemons,
  • Incident-Response-Automatisierungen,
  • lokale Webhook-Listener,
  • Support-Queue-Anzeigen.

6. Beispielarchitektur​

busylight_agent/
├── busylight.py
├── events.py
├── integrations/
│ ├── grafana.py
│ ├── github.py
│ └── jira.py
└── main.py

Halte das Busylight-Modul klein und deterministisch. Lass Integrationen Domänenereignisse in green, yellow, red, pulse oder alert übersetzen.

7. Gute Python-Anwendungsfälle​

  • CI-Fehler-Lichter
  • Uptime- und Bereitschafts-Status
  • Build-Room-Anzeigen
  • Homeoffice-Fokuslichter
  • Signale fĂĽr den Druck in der Support-Queue
  • Benachrichtigungen fĂĽr Fertigungsarbeitsplatz oder Labor

8. Warum Python statt JavaScript​

Python gewinnt meist, wenn:

  • die Integration daemon-artig ist,
  • du bereits Python in Ops oder Automatisierung nutzt,
  • du einfaches Scheduling und Scripting willst,
  • das System auf mehrere externe Dienste hört,
  • keine Browser-UI erforderlich ist.