infrastructure:services:light
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| infrastructure:services:light [2023-05-24 17:20 UTC] – julian | infrastructure:services:light [2025-09-28 13:32 UTC] (current) – [Light] stb | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ---- dataentry service ---- | ---- dataentry service ---- | ||
| service-urls_urls: | service-urls_urls: | ||
| - | other-service-fqdns: | + | other-service-fqdns: |
| host-fqdn: | host-fqdn: | ||
| - | netbox-link_url: | + | netbox-link_url: |
| server_page: | server_page: | ||
| - | maintainers: | + | maintainers: |
| + | ccchh-id-integration_yesno : false | ||
| ---- | ---- | ||
| - | Eine VM, welche ein Webinterface zur Steuerung der DMX-Lichter hostet. An dem ThinkCCCentre ist ein FTDI USB-to-Serial Converter angeschlossen und an die VM durchgereicht, | + | Eine VM, welche ein Webinterface zur Steuerung der DMX-Lichter hostet. An dem ThinkCCCentre ist ein FTDI USB-to-Serial Converter angeschlossen und an die VM durchgereicht, |
| + | |||
| + | Welche Lampen in den Räumen verbaut sind: Siehe [[club: | ||
| + | |||
| + | Steuerung: | ||
| + | * http:// | ||
| + | * http:// | ||
| ===== Konfiguration ===== | ===== Konfiguration ===== | ||
| - | TODO | + | |
| + | ==== Hypervisor-Configuration ==== | ||
| + | |||
| + | Da das DMX-Device bei uns in einer VM (mit dem Namen '' | ||
| + | Auf dem Hypervisor (Debian/ | ||
| + | < | ||
| + | root@red.bikeshed.hamburg.ccc.de: | ||
| + | blacklist ftdi_sio | ||
| + | </ | ||
| + | |||
| + | ==== VM-Configuration ==== | ||
| + | |||
| + | DMX-Device der VM mitgeben: | ||
| + | |||
| + | < | ||
| + | <hostdev mode=' | ||
| + | <source startupPolicy=' | ||
| + | <vendor id=' | ||
| + | <product id=' | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Man beachte das '' | ||
| + | Das ist ein USB-Device, dass könnten Leute entfernen und wir wollen trotzdem, dass die VM dann startet. | ||
| + | Genau aus dem Grund müssen wir auch noch mehr tun. | ||
| + | Obigen XML-Code in eine Datei tun, z.B. ''/ | ||
| + | Dann legen wir eine udev-Regeln an, dass beim anstöpseln das DMX-Device direkt an die VM durchgereicht wird: | ||
| + | |||
| + | < | ||
| + | # / | ||
| + | ACTION==" | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | ACTION==" | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Lustig, nech? Bitte bitte Bescheid sagen, falls ich da 'ne Funktion in '' | ||
| + | |||
| + | ==== Treiber-Configuration ==== | ||
| + | |||
| + | So, endlich haben wir das DMX-Device in die VM durchgereicht. | ||
| + | Wir erinnern uns, USB-Vendor 0x0403 und Device-ID 0x6001. | ||
| + | Jetzt wollen wir es auch schön ansteuern. | ||
| + | Dazu muss man dem FTDI beibringen, auch ordentliches DMX rauszupipen, | ||
| + | Das DMX spricht jetzt der Demon der Open Lighting Architecture (olad). | ||
| + | Der ist konfiguriert, | ||
| + | Das geht also wieder übers Netz, yay! Außerdem muss man darauf achten, dass '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | ==== Business Logic ==== | ||
| + | |||
| + | Jetzt wird's lustig. Unser Software-Aufbau: | ||
| + | |||
| + | < | ||
| + | device | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Der '' | ||
| + | Zu finden ist er unter [[https:// | ||
| + | |||
| + | < | ||
| + | licht@licht.z9 $ git clone https:// | ||
| + | </ | ||
| + | |||
| + | Hat als Abhängigkeit nur ruby. | ||
| + | |||
| + | Der '' | ||
| + | |||
| + | Das letzte ist ein Tool ohne großen Namen, heißt '' | ||
| + | |||
| + | Die Dinge brauchen noch Systemd-Units, | ||
| + | |||
| + | < | ||
| + | # / | ||
| + | [Unit] | ||
| + | Description=foobardmx lightig web control | ||
| + | After=dmx-repeater.service | ||
| + | |||
| + | [Service] | ||
| + | Type=simple | ||
| + | WorkingDirectory=/ | ||
| + | ExecStartPre=/ | ||
| + | ExecStart=/ | ||
| + | User=licht | ||
| + | Group=licht | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # / | ||
| + | [Unit] | ||
| + | Description=dmx-repeater | ||
| + | |||
| + | [Service] | ||
| + | Type=simple | ||
| + | WorkingDirectory=/ | ||
| + | ExecStart=/ | ||
| + | User=licht | ||
| + | Group=licht | ||
| + | Restart=always | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # / | ||
| + | [Unit] | ||
| + | Description=slowly chaning colors | ||
| + | |||
| + | [Service] | ||
| + | Type=simple | ||
| + | WorkingDirectory=/ | ||
| + | ExecStart=/ | ||
| + | User=licht | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # visudo | ||
| + | licht | ||
| + | licht | ||
| + | </ | ||
| + | |||
| + | Services anmachen | ||
| + | |||
| + | < | ||
| + | # systemctl enable dmx-repeater | ||
| + | # systemctl enable foobardmx | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Debugging ===== | ||
| + | |||
| + | Das Licht schaltet beim aufschließen des Raumes standardmäßig alle Lampen auf weiß und beim zuschließen aus. | ||
| + | |||
| + | * Falls irgendwas nicht geht, folgendes tun: | ||
| + | |||
| + | < | ||
| + | $ ssh root@licht.z9 # Passwort muss geraten werden | ||
| + | |||
| + | root@lifesupport# | ||
| + | |||
| + | Bus 00X Device 003: ID 0403:6001 Future Technology Devices International, | ||
| + | </ | ||
| + | |||
| + | * Ist das Device im Output? '' | ||
| + | * Falls nicht: Den großen blauen Kasten im Schrank kurz vom USB trennen und wieder dran stecken. | ||
| + | * Wenn's dann immer noch nicht da ist: verzweifeln. | ||
| + | * Ist der ftdio_sio-Treiber geladen? \\ ''# | ||
| + | * Ist der '' | ||
| + | * Dann: Services neustarten: | ||
| + | < | ||
| + | # systemctl restart dmx-repeater | ||
| + | # systemctl restart foobardmx | ||
| + | </ | ||
| + | * Anschließend im Frontend nochmal auf " | ||
| + | * Wenn's dann immer noch nicht geht: verzweifeln und die VM neustarten. \\ ''# | ||
infrastructure/services/light.1684948845.txt.gz · Last modified: by julian