Project: TURRIS - automatické nastavení intenzity LED

Tento návod vznikl inspirací různých skriptů nalezených buď na internetu nebo na fóru Turris. Návod zde uvádím zejména z důvodu mít vše na jednom místě (samotnému mi trvalo poměrně dlouhou dobu, než jsem se zorientoval a vybral/zkombinoval to, co mi bude vyhovovat). Je tedy vysoce pravděpodobné, že si případní původní autoři mohou poznat svůj základ nebo i části skriptu. Tímto jím rozhodně neupírám jejich zásluhy a naopak jim děkuji.

Návod pro automatické nastavení intenzity svícení LED umístěných na čelním panelu. Toto nastavení obsahuje celkem 4 různé rozsahy časů pro různé intenzity. Vše se jednou nastaví a s pomocí CRON se pouští skript každou hodinu (toto je zároveň i nevýhoda, protože když si ručně tlačítkem vzadu změníte intenzitu, tak se v celou hodinu automaticky změní podle nastavení).

Pro každý návod je třeba mít připojen router prostřednictvím SSH, tedy v případě Windows doporučuji například program Putty. Tedy v konzoli musíte vidět:

root@turris:~#

V adresáři /root/sh (nemáte-li, vytvořte si podadresář 'sh') vytvořte soubor led_intenzita.sh a do jeho obsahu vložte:

#!/bin/sh

  StdIntensity=`grep 'DEFAULT' /root/.config/led_intenzita.conf | awk '{ print $2 }'`
  StartH=`grep 'HIGH' /root/.config/led_intenzita.conf | awk '{ print $2 }'`
  StartM=`grep 'MED' /root/.config/led_intenzita.conf | awk '{ print $2 }'`
  StartL=`grep 'LOW' /root/.config/led_intenzita.conf | awk '{ print $2 }'`
  StopH=`grep 'HIGH' /root/.config/led_intenzita.conf | awk '{ print $3 }'`
  StopM=`grep 'MED' /root/.config/led_intenzita.conf | awk '{ print $3 }'`
  StopL=`grep 'LOW' /root/.config/led_intenzita.conf | awk '{ print $3 }'`
  IntH=`grep 'HIGH' /root/.config/led_intenzita.conf | awk '{ print $4 }'`
  IntM=`grep 'MED' /root/.config/led_intenzita.conf | awk '{ print $4 }'`
  IntL=`grep 'LOW' /root/.config/led_intenzita.conf | awk '{ print $4 }'`
  Program='/usr/bin/rainbow intensity '
  DTH=`date +%H`

# Get actual intensity
ACT_INTENSITY=$(rainbow get intensity)

To_Intensity=$StdIntensity

if [ $DTH -ge $StartH ] ; then To_Intensity=$IntH ; fi ;
if [ $DTH -ge $StartM ] ; then To_Intensity=$IntM ; fi ;
if [ $DTH -ge $StartL ] ; then To_Intensity=$IntL ; fi ;

if [ $DTH -le $StopH ] ; then To_Intensity=$IntH ; fi ;
if [ $DTH -le $StopM ] ; then To_Intensity=$IntM ; fi ;
if [ $DTH -le $StopL ] ; then To_Intensity=$IntL ; fi ;

if [ $ACT_INTENSITY -ne $To_Intensity ]
  then
   $Program $To_Intensity
fi

Pokud přesně nevíte jak nebo nepotřebujete ve skriptu nic měnit, můžete rovnou využít stažení skriptu přímo:

wget 'http://www.s474n.com/download/Turris/led_intenzita.sh' > /root/sh/led_intenzita.sh

Nastavíme skript pomocí 'chmod +x' spustitelný:

chmod +x /root/sh/led_intenzita.sh

Dále v adresáři /root/.config vytvořte soubor 'led_intenzita.conf' a do jeho obsahu vložte následující obsah. Zde si v možnosti DEFAULT můžete nastavit svou základní intenzitu v rozsahu 0-7 (0 nejsilnější až 7 vypnuto). Dále si můžete nastavit tři rozsahy časů, ve kterých se bude intenzita automaticky měnit. Pro někoho možná nelogicky používám v noci vyšší jas, protože obvykle každý chce v noci jas snížit. Toto je z prostého praktického důvodu, používám totiž Turris zároveň jako orientační osvětlení v technické místnosti :)

DEFAULT 5
##Name  From    To      Intensity
HIGH    17      8       2
MED     19      7       1
LOW     20      6       0

Opětovně můžete předchozí krok přeskočit přímým stažením souboru:

wget 'http://www.s474n.com/download/Turris/led_intenzita.conf' > /root/.config/led_intenzita.conf

Jako poslední věc vytvoříme soubor 'led_intenzita' v adresáři '/etc/cron.d/', tento zabezpečí automatické spouštění skriptu každou hodinu a právě ono automatické přenastavení intezity podle hodin:

MAILTO=""
0	*	*	*	*	root	/root/sh/led_intenzita.sh

Nyní by vše mělo být nastaveno a zajištěno spouštění skriptu.


Líbí se vám nebo pomohl vám text výše? Můžete mě pozvat na kávu. Sdílet na Facebooku Sdílet na Twitteru Vytisknout



Doporučuji: MePaBlu Copyright S474N ©2004-2024