Smart Home Aktion Schalten

Du wirst halt eine gültige session id brauchen, ganz unten ist ein link in dem beschrieben steht wie man eine bekommt
 
Wieso geht es dann aber bei mir mit sid=0?
 
vetzki schrieb:
Du wirst halt eine gültige session id brauchen, ganz unten ist ein link in dem beschrieben steht wie man eine bekommt
Diese SID ist ja, wie ich es verstanden habe, immer nur max 1 Stunde gültig.
Das nutzt ja dann wenig.
Du schreibst, ganz unten ist ein Link? Wo ganz unten?
 
in dem pdf dokument ganz untenten externe Referenzen oder so

edit:
hier wäre was in python, das könnte evtl. funktionieren.
(Ich bekomme allerdings bei meiner fritzbox beim versuch nur mal eine sid zu bekommen immer einen PermissionError Acces Denied, ich hab allerdings kein smarthome gerät angeschlossen
fritzswitch/fritzswitch.py at master · shred/fritzswitch · GitHub
ausführen könntest du das ganze z.b. mit termux [in verbindung mit tasker bräuchte das allerdings root rechte])

@schmetty2
keine Ahnung, dürfte es eigentlich nicht? (wenn avm schreibt: Ab Firmware 6.50 sid-Parameter(SessionID) immer benötigt und 0 ist ja keine gültige session id) Hast du denn Firmware Verison 6.50 drauf?
 
Zuletzt bearbeitet:
Wenn du Zuhause nenn Server mit Linux laufen hast, kann ich ein Shell-Script anhängen.
Auf nem Android Gerät läuft das leider nicht direkt da es hier kein iconv binary gibt.
Zumindest meine busybox kann damit nix anfangen.
 
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.
 
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.
Und das Passwort hast du auf der Fritzbox auch eingerichtet?
 
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
 
  • Danke
Reaktionen: schmetty2
Hallo,

Passwort für das Öffnen der Oberfläche habe ich nicht.
Sollte es daran liegen?

mfg
 
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
Sieht ja kompliziert aus...
Und wo soll ich das reinschreiben, in Tasker?
 
Erim schrieb:
...
Auf nem Android Gerät läuft das leider nicht direkt da es hier kein iconv binary gibt
...

Termux hätte ein iconv paket
 
Hmm ja, hab das mal installiert.
iconv lässt sich in der app installieren, allerdings ist dass dann scheinbar nur aus termux selbst ausführbar und nicht aus der shell vom Gerät.
 
um es außerhalb von termux nutzen zu können brauchts leider root rechte

edit
 

Anhänge

  • Screenshot_20161231-135550.png
    Screenshot_20161231-135550.png
    66,8 KB · Aufrufe: 291
Zuletzt bearbeitet:
Vielen Dank, aber das wird dann doch alles zu kompliziert.
 
Dann vielleicht doch der von mir genannte Weg über "Box to go"?
 
Hallo,

ich hab' auch nochmal probiert. Es liegt am Passwort.
Entweder Du nimmst Rak's Vorschlag mit BoxToGo oder entfernst das Passwort der FB und dann gehts mit HTTP get und sid=0.

mfg
 
OK.,habs nun mit BoxToGo probiert. Da habe ich aber auch ein Problem.
Habe das Tasker Plugin "AutoShortcut" installiert, damit kann ich eine BoxToGo Verknüpfung ausführen.
Nun habe ich ein Profil "Netzwerk" "WiFi Verbunden" erstellt.
Sowie einen Task in dem ich 1. mit AutoShortcut die FritzDect200 einschalte, dann 2. Warte 5sec. und 3. mit AutoShortcut die FritzDect200 wieder ausschalte.
Wenn ich den Task manuell starte funktioniert das auch wie gewünscht.
Wenn ich aber nun live probiere, also ins WLAN eintrete wird die FritzDect200 nur eingeschaltet aber nicht wieder aus.
Wenn ich aber im Profil das "Wifi Verbunden" gegen z.b. "Laden""Power" austausche dann funktionierts, wenn ich das Ladekabel anstecke, richtig.
Hat jemand eine Idee?
 
Wie ist eure Erfahrung mit Box to Go?
Zieht die App schwer am Akku?
 
Nö. Aktualisierungen kann man ja seltener einstellen, wenn man möchte.

Sehr gute App für die Fritzbox.
 
  • Danke
Reaktionen: Klabautermann2345
Vielen Dank, habe die app soeben gekauft.
 

Ähnliche Themen

V
Antworten
11
Aufrufe
722
Cecoupeter
Cecoupeter
Viper73
Antworten
1
Aufrufe
233
Cecoupeter
Cecoupeter
E
Antworten
1
Aufrufe
566
MaGu64
M
Zurück
Oben Unten