FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: nitrosont am 23 August 2017, 10:37:14

Titel: autom. Helligkeitsänderung eines Displays per Systembefehl
Beitrag von: nitrosont am 23 August 2017, 10:37:14
Hallo zusammen!

Folgende Problemstellung:
Ich verwende einen Raspberry Pi mit fhem, der über das offizielle Display (https://www.rasppishop.de/Raspberry-Pi-7-Touchscreen-Display (https://www.rasppishop.de/Raspberry-Pi-7-Touchscreen-Display)) als UI dient. An diesem RPi befindet sich ebenfalls ein Helligkeitssensor (BH1750 über I2C angebunden), der bereits in fhem eingebunden ist und die Helligkeit in Lux anzeigt.

Nun kann man das Display und dessen Helligkeit mit einem Befehl auf Kommandozeile ändern [0-255]. Da das Display im Wohnzimmer im Sichtbereich ist, würde ich ungern bei Dämmerung/abends beim Fernsehen ein helles Display im Raum haben. Ebenfalls wäre es toll, wenn das Display tagsüber an einem Sommertag hell genug ist, um etwas darauf ablesen zu können.

Es liegt natürlich nahe, mit dem Helligkeitssensor und dessen Output die Displayhelligkeit automatisch zu regeln. Und genau das bereitet mir derzeit etwas Kopfzerbrechen.

Ich habe bereits über einen längeren Zeitraum die Helligkeitswerte des Sensor und die dazu passende Displayhelligkeit notiert. Diese Werte habe ich mal in Excel geworfen und eine Funktion bestimmt, die mir den gewünschten Displayhelligkeitswert abhängig vom Sensorwert angibt.

Nun ist meine Idee für die weitere Implementierung folgende:


Da ich so etwas (für mich komplexes) noch nie implementiert habe, stellen sich mir diverse Fragen.

Titel: Antw:autom. Helligkeitsänderung eines Displays per Systembefehl
Beitrag von: Otto123 am 23 August 2017, 11:05:11
Hi,

ich fange mal von hinten an:
5. fhem braucht kein root, Du kannst über z.B. so etwas ziemlich granular die sudo Rechte zu weisen (Beispielscript!)
# ergänze eine Datei zum sudoers Script Verzeichnis /etc/sudoers.d/
File="011_fhem-nopasswd"
echo "fhem ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown, /sbin/halt" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File
 
4. Ich halte es grundlegend für sinnvoll scripte (oder 99_myUtils) zu machen und diese Routinen aus FHEM aufzurufen. Hängt von der Länge der Befehlszeile ab.
3. Im Perlteil des Userreadings kannst Du wahrscheinlich nahezu alles unterbringen. Es sollte nur so gestaltet sein das es dein System nicht lahmlegt  ;)
2. Eventuell wird das reading öfters aktualisiert als Du den Systembefehl ausführen willst. Gefühlt würde ich es trennen. Ich würde mich da ran tasten. Kannst es doch jederzeit ändern.
1. Du kannst über F2F ganz granular bestimmte Werte von einem System zum anderen schicken. Anwesenheit zum Client. Du darfst bloß nicht LOG:.* verwenden!!!

Gruß Otto