Hallo an alle..
Heute wollte ich mal mit meinem Raspi auf welchem Kodi läuft, mein Lüfter per Dect Steckdose von AVM steuern.
Der Hintergrund ist wie folgt. Ich habe ein RPI3 in meinem Schlafzimmer, mit welchem ich gelegentlich via Zattoo Life & Comeback Tv schaue.
Ein ungerades mal auch per UPNP Filme von meinem Rechner Streame. Da mein PC ebenfalls im Schlafzimmer steht, und der meinst 24/7 läuft, habe ich schon genug Lüfter Sound zum einschlafen.
So sollte also der RPI nur gekühlt werden, wen er gebraucht wird bzw. eine Gewisse Temp. übersteigt. Da ich keine Lüfter für die GPIO Schnittstelle übrig hatte, habe ich mir ein altes Netzteil von nem PC geholt, und diesem Lüfter per 240V Anschluss
an die Steckdose gehängt. Dazwischen dann noch eine DECT Steckdose von AVM (Fritzbox) und wie folgt Bash Scripte erstellt :
Steuerung.sh
#!/usr/bin/env bash TEMP_DATEI="/sys/class/thermal/thermal_zone0/temp"; Max_Temp=55000; U_Temp=40000; while [ true ] do for Temperatur in $(cat $TEMP_DATEI); do echo $Temperatur if [ $Temperatur -gt $Max_Temp ]; then #Luefter anschalten /home/pi/luefterein.sh; elif [ $Temperatur -le $U_Temp ]; then #Luefter ausschalten /home/pi/luefteraus.sh; fi done sleep 10 done
Beschreibung :
Bei einer Temp der CPU des RPI von 55° wird der Lüfter per DECT aktiviert und kühlt auf 40° runter.
Das Script prüft alle 10 Sekunden die Temp, und Kühlt weiter, oder stoppt den Lüfter wieder.
Lüfter Ausschalten :
#Config start fbox="FRITZBOX URL" USER="USER" PASSWD="PASSWD" SID=$(curl --insecure -s $fbox/login_sid.lua | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/ ') challenge=$(curl --insecure -s $fbox/login_sid.lua | grep -o "<Challenge>[a-z0-9 ]\{8\}" | cut -d'>' -f 2) CPSTR="$challenge-$PASSWD" hash=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'` RESPONSE="$challenge-$hash" POSTDATA="?username=$USER&response=$RESPONSE" SID=$(curl --insecure --data "$POSTDATA" -s $fbox/login_sid.lua | sed 's/.*<SID> \(.*\)<\/SID>.*/\1/') #Config Ende CURLCMD="curl --insecure -s $fbox/webservices/homeautoswitch.lua" RESULT=$($CURLCMD"?sid=$SID&switchcmd=getswitchlist") #echo AIN-Liste: $RESULT STATE=$($CURLCMD"?sid=$SID&ain=087610382241&switchcmd=setswitchoff") #Geräte Liste #TV LED : ****ID**** #RPI Lüfter : ****ID****
Lüfter Einschalten :
Variable abändern von : "setswitchoff" zu "setswitchon" STATE=$($CURLCMD"?sid=$SID&ain=087610382241&switchcmd=setswitchon")
Anmerkung :
Ich habe mir absichtlich die An und Abschalt Funktion in einzelnen Scripten erstellt, um bei einem Shutdown / Reboot nur das Stop Script einzubinden.
Das ganze wird nun als Cronjob mit Hilfe @Reboot /Pfad/zuScript.sh automatisch bei jedem Boot Vorgang gestartet.
@ Toolbase :
Ich bin ein Hobby Bastler, kein Programmierer.
Diesen Thread habe ich 1 zu 1 in meinem eigenem Forum gepostet, und ist für Hobby Bastler gedacht, nicht für Coding Genies.
Also seit Nachsichtig