vetzki
Philosoph
- 1.750
Du wirst halt eine gültige session id brauchen, ganz unten ist ein link in dem beschrieben steht wie man eine bekommt
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Diese SID ist ja, wie ich es verstanden habe, immer nur max 1 Stunde gültig.vetzki schrieb:Du wirst halt eine gültige session id brauchen, ganz unten ist ein link in dem beschrieben steht wie man eine bekommt
Und das Passwort hast du auf der Fritzbox auch eingerichtet?schmetty2 schrieb:Zur Zeit habe ich die offizelle 6.60
Hatte vorher aber die Laborversionen, dies könnte die Erklärung für die 03.83 Version der Dect200 sein.
An Root liegts auch nicht, habe es gerade an nem nicht gerootetem Gerät probiert funktioniert auch.
Aber die Softwareversionen können es auch nicht sein. Ich habe meine Dect200 jetzt 2,5 Jahre und schalte sie mit Tasker.
#!/bin/bash
#----------------------------- Fritz------------------------
IP="192.168.0.254"
uid="" #Fritz Box Benutzername
SECRET="" FritzBox Passwort
AIN="" #Aktornummer
#opkg install eglibc-gconv-utf-16
#opkg install eglibc-gconv-iso8859-1
#opkg install locale-base-de-de.iso-8859-1
# icon utf-8 -t utf-16le funktioniert bei passwörter ohne sonderzeichen
TMP=/tmp
cd $TMP
#Schalte AUS/EIN
echo "[Fritz Aktor]SID holen"
# Challenge abholen
CHALLENGE=`wget -O - "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<Challenge>\(.*\)<\/Challenge>.*/\1/'`
# login aufbauen und hashen
CPSTR="$CHALLENGE-$SECRET"
MD5=`echo -n $CPSTR | iconv -f ISO8859-15 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
RESPONSE="$CHALLENGE-$MD5"
URL_PARAMS="username=$uid&response=$RESPONSE"
# login senden und SID herausfischen
SID=`wget -O - "http://$IP/login_sid.lua?$URL_PARAMS" 2>/dev/null | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/'`
echo "[Fritz Aktor]$SID"
echo "[Fritz Aktor]$PowerState" >> /tmp/fritz.txt
# SchalteAus=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
# sleep 5
PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=getswitchstate&sid=$SID" 2>/dev/null`
echo "[Fritz Aktor]PowerState $PowerState"
if [ $PowerState -lt 1 ] && [ -z "$1" ] ;then
SchalteEin=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null`
echo "[Fritz Aktor]Toggle ein"
elif [ $PowerState -eq 1 ] && [ -z "$1" ] ;then
SchalteAus=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
echo "[Fritz Aktor]Toggle aus"
elif [ "$1" = "ein" ] ;then
SchalteEin=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null`
echo "[Fritz Aktor]Schalte ein"
elif [ "$1" = "aus" ] ;then
SchalteAus=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
echo "[Fritz Aktor]Schalte aus"
else
echo "[Fritz Aktor]Schalte nichts! FritzBox erreichbar?"
fi
echo "[Fritz Aktor]fertig"
exit
Sieht ja kompliziert aus...Erim schrieb:ich hab's mal angehangen, Benutzername, Passwort und Aktor ID musst du noch einsetzen.
iconv wird hier gebraucht um von iso zu utf zu konvertieren.
Das Script ist toggle script, d.h. ist Aktor an wird er ausgeschaltet, isser aus halt an.
bzgl. iconv kannst du aber auch schauen ob tasker eine Möglichkeit bietet zum konvertieren.
Code:#!/bin/bash #----------------------------- Fritz------------------------ IP="192.168.0.254" uid="" #Fritz Box Benutzername SECRET="" FritzBox Passwort AIN="" #Aktornummer #opkg install eglibc-gconv-utf-16 #opkg install eglibc-gconv-iso8859-1 #opkg install locale-base-de-de.iso-8859-1 # icon utf-8 -t utf-16le funktioniert bei passwörter ohne sonderzeichen TMP=/tmp cd $TMP #Schalte AUS/EIN echo "[Fritz Aktor]SID holen" # Challenge abholen CHALLENGE=`wget -O - "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<Challenge>\(.*\)<\/Challenge>.*/\1/'` # login aufbauen und hashen CPSTR="$CHALLENGE-$SECRET" MD5=`echo -n $CPSTR | iconv -f ISO8859-15 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'` RESPONSE="$CHALLENGE-$MD5" URL_PARAMS="username=$uid&response=$RESPONSE" # login senden und SID herausfischen SID=`wget -O - "http://$IP/login_sid.lua?$URL_PARAMS" 2>/dev/null | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/'` echo "[Fritz Aktor]$SID" echo "[Fritz Aktor]$PowerState" >> /tmp/fritz.txt # SchalteAus=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null` # sleep 5 PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=getswitchstate&sid=$SID" 2>/dev/null` echo "[Fritz Aktor]PowerState $PowerState" if [ $PowerState -lt 1 ] && [ -z "$1" ] ;then SchalteEin=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null` echo "[Fritz Aktor]Toggle ein" elif [ $PowerState -eq 1 ] && [ -z "$1" ] ;then SchalteAus=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null` echo "[Fritz Aktor]Toggle aus" elif [ "$1" = "ein" ] ;then SchalteEin=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null` echo "[Fritz Aktor]Schalte ein" elif [ "$1" = "aus" ] ;then SchalteAus=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null` echo "[Fritz Aktor]Schalte aus" else echo "[Fritz Aktor]Schalte nichts! FritzBox erreichbar?" fi echo "[Fritz Aktor]fertig" exit
Erim schrieb:...
Auf nem Android Gerät läuft das leider nicht direkt da es hier kein iconv binary gibt
...