Quantcast
Channel: Squeezebox : Community : Forums
Viewing all articles
Browse latest Browse all 10706

Linux (debian) Kein Alarm an Feiertagen

$
0
0
Die nächsten Feiertage stehen vor der Tür und ich bin ja bekanntlich ein ganz fauler Hund :cool: und dazu stehe ich (und der Rest der Bagage) ungern an Feiertagen frueher auf, als notwendig.

Achtung: Dieses Script stellt alle Alarme an einem Feiertag aus und am naechsten nicht Feiertag gnadenlos auch alle wieder an!

Fallls Ihr nachts vor einem Feiertag einen Rescan macht, das wird vom Script erkannt und stoppt den Vorgang - also sinnvollerweise eine Uhrzeit fuer den Cronjob nehmen, an dem garantiert kein rescan laeuft.

Für wen könnte das noch interessant sein?

  • Wohnhaft in Deutschland (ich nutze diese quelle und die kennt nur die deutschen Feiertage)
  • LMS auf einem Linux Server
  • alle die ihre ganzen Alarme / Wecker der diversen Player nicht an Feiertagen aktiv haben moechten.


Dieses Script in /usr/local/bin abspeichern und ausfuehrbar machen.
In der Wget Url den Wert HE bei state=HE gegen das eigene Bundesland tauschen -> quelle http://www.feiertage.net/frei-tage.php

Moegliche Bundeslaender:
  • BW -> Baden-Württemberg
  • BY -> Bayern
  • BE -> Berlin
  • BB -> Brandenburg
  • HB -> Bremen
  • HH -> Hamburg
  • HE -> Hessen
  • MV -> Mecklenburg-Vorpommern
  • NI -> Nieder Sachsen
  • NW -> Nordrhein-Westfalen
  • RP -> Rheinland-Pfalz
  • SL -> Saarland
  • SN -> Sachsen
  • ST -> Sachsen-Anhalt
  • SH -> Schleswig-Holstein
  • TH -> Thüringen

Zum test die raute in der Zeile #today='31.10.2017' entfernen und das Script starten.
Danach sollten alle Alarme ausgeschaltet sein.
Nun wieder diese Zeile entfernen oder mit einer raute auskommentieren und einen Cronjob anlegen, der fruehestens um 00:01 und spaetestens vor dem ersten Alarm startet.

Damit die Änderungen in der Server.prefs übernommen werden - muß vorher der LMS gestoppt werden !

Fertig.

Viel Spass

\edit²
Eine Control Datei /var/lib/squeezeboxserver/prefs/alarm_off.prefs wird an einem Feiertag angelegt, damit an einem nicht Feiertag nicht unnötig der Server gestoppt und alle Alarme wieder auf aktiv gestellt werden.
/edit²
Code:

#!/bin/bash

#vars
today=`date +'%d'.'%m'.'%Y'`
#today='31.10.2017'
my_year=`date +'%Y'`
feiertage=~/feiertage_$my_year.csv

if [ ! -f "$feiertage" ]
  then
  wget 'www.feiertage.net/csvfile.php?state=HE&year='$my_year'&type=csv' -O ~/feiertage_$my_year.csv
fi

grep $today "$feiertage" && (
        scanstatus=$(printf "rescan ?\nexit\n"|nc 127.0.0.1 9090|cut -d ' ' -f2)
        if [ "$scanstatus" = "1" ]
          then
          echo "lms is scanning ..wait 2 hours"
          sleep 2h
        fi
        service logitechmediaserver stop
        sed -i 's= _enabled: '\''1'\''= _enabled: '\''0'\''=g' /var/lib/squeezeboxserver/prefs/server.prefs
        grep enabled /var/lib/squeezeboxserver/prefs/server.prefs>/var/lib/squeezeboxserver/prefs/alarm_off.prefs
        service logitechmediaserver start
        ) || (
        if [ -f "/var/lib/squeezeboxserver/prefs/alarm_off.prefs" ]
          then
          service logitechmediaserver stop
          sed -i 's= _enabled: '\''0'\''= _enabled: '\''1'\''=g' /var/lib/squ
          service logitechmediaserver start
          rm /var/lib/squeezeboxserver/prefs/alarm.prefs
        fi
        )


Viewing all articles
Browse latest Browse all 10706

Trending Articles