Fritz!DECT Steckdose Shellscript

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Fritz!DECT Steckdose Shellscript

      Hi,

      Anbei ein Script mit dem ihr eine Fritz-Steckdosen schalten könnt.I
      Ihr müsst noch eure Daten eintragen.

      Brainfuck-Quellcode

      1. #----------------------------- Fritz -----------------------
      2. IP="" #FritzBox IP
      3. UID="" #FritzBox Benutzer
      4. SECRET="" #FritzBox Passwort
      5. AIN="" #Aktornummer
      6. #----------------------------- Box -------------------------
      7. DreamIP=192.168.0.24
      8. DreamUser=root
      9. DreamPass= #Dreambox Passwort
      10. #----------------------------- Edit Ende -------------------
      Alles anzeigen



      Ich nutze es auf meinem Server um die 4ksolo aufzuwecken.
      Wenn ihr es auf ner mipsel Box nutzen wollt braucht ihr noch iconv und UTF-16.so sind im zip auch enthalten.
      Ihr könnt auch versuchen das entsprechende Paket zu installieren, wenns nicht auf dem Feed liegt einfach die UTF-16.so aus dem zip nehmen.

      Quellcode

      1. opkg install eglibc-gconv-utf-16
      Das script schaut ob die Box erreichbar ist wenn nicht wird halt Aus/Ein geschaltet.

      Quellcode

      1. root@T20:/usr/local/bin# sh fritz-dect.sh
      2. Box nicht erreichbar
      3. Schalte Aktor Aus
      4. Warte 35 Sekunden
      5. Schalte Aktor Ein
      6. Box erreichbar
      7. Warte auf WebIF
      8. WebIF erreichbar
      9. Schalte in Standby
      10. false
      11. root@T20:/usr/local/bin#
      Alles anzeigen
      Vielleicht kanns ja noch wer brauchen.
      Dateien
      • fritz-dect.zip

        (32,65 kB, 74 mal heruntergeladen, zuletzt: )
    • gnarf - Ich wollte dein Script benutzten , um meine 2 - AVM DECT Steckdosen zu Schalten.

      Leider funktioniert das Script bei mir nicht, hoffe du kannst mir Helfen.

      Meine Daten einmal die Wichtig sind für das Script von dir :

      Fritzbox 7490 IP : 192.168.10.1 ( Habe kein Benutzer oder Passwort hinterlegt )
      1. DECT 200 - AIN : 087610000028
      2. DECT 200 - AIN : 087610000035

      VU+Solo 4K IP : 192.168.10.91 (Benutzer : root / Passwort : oscam)


      fritz_dect.sh

      #!/bin/sh
      #----------------------------- Fritz -----------------------
      IP="192.168.10.1" #FritzBox IP
      UID="" #FritzBox Benutzer
      SECRET="" #FritzBox Passwort
      AIN="087610000028" #Aktornummer


      #----------------------------- Box -------------------------
      DreamIP=192.168.10.91
      DreamUser=root
      DreamPass=oscam #Dreambox Passwort
      #----------------------------- Edit Ende -------------------
      #opkg install eglibc-gconv-utf-16
      #opkg install eglibc-gconv-iso8859-1
      #opkg install locale-base-de-de.iso-8859-1


      TMP=/tmp
      cd $TMP


      DreamCheck=`ping -c2 -W1 $DreamIP | grep packets | cut -d " " -f4`
      if [ $DreamCheck -lt 1 ] ; then
      echo "Box nicht erreichbar"
      echo "Schalte Aktor Aus"
      #Schalte EIN
      # echo 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)}'`
      # MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -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 $SID
      sleep 3
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
      echo "Warte 35 Sekunden"
      sleep 35
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null`
      echo "Schalte Aktor Ein"
      elif [ $DreamCheck -gt 0 ] ; then
      echo Dreambox läuft bereits
      exit
      fi


      i=0
      while [ true ] ; do
      DreamCheck=`ping -c2 -W1 $DreamIP | grep packets | cut -d " " -f4`
      if [ $DreamCheck -lt 1 -a $i -lt 35 ] ; then
      i=`expr $i + 1`
      # echo $i
      elif [ $DreamCheck -lt 1 -a $i = 35 ] ; then
      echo "Box startet nicht, versuche nochmal"
      # echo 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)}'`
      # MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -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 $SID
      sleep 3
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
      echo "Warte 35 Sekunden"
      sleep 35
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null`
      i=0
      elif [ $DreamCheck -gt 0 ] ; then
      echo "Box erreichbar"
      i=0
      while [ true ] ; do
      sleep 1
      i=`expr $i + 1`
      # echo $i
      VuWebIF=`wget -q -O- http://$DreamUser:$DreamPass@$DreamIP/web/powerstate -O- | grep e2powerstate | head -n1 | sed 's/<//g' | sed 's/>//g'`
      if [ $VuWebIF = e2powerstate ] 2> /dev/null ; then
      echo "WebIF erreichbar"
      Standby=`wget -q -O- http://$DreamUser:$DreamPass@$DreamIP/web/powerstate -O- | grep \<\/e2instandby\> | sed 's/\s//g' | cut -d "<" -f1`
      if [ "$Standby" = false ] 2> /dev/null ; then
      echo "Schalte in Standby"
      wget -q -O- http://$DreamUser:$DreamPass@$DreamIP/web/powerstate?newstate=5 | grep "\(<\|</\)e2instandby" | tr -d '\n' | sed "s/.*<e2instandby>\(.*\)<\/e2instandby.*/\\1\n/"
      exit
      elif [ "$Standby" = true ] 2> /dev/null ; then
      echo "Bereits im Standby"
      exit
      fi
      elif [ $i = 1 ] ; then
      echo "Warte auf WebIF"
      elif [ $i -gt 120 ] ; then
      echo "WebIF nach 120s nicht erreichbar, Box startet nicht durch"
      sleep 120
      exit
      fi
      done
      fi
      #sleep 0.5
      done
      exit



      Wenn ich das Script nun auf die VU+Solo 4K lade ,und es mit Putty ausführen will ,oder mit der Fenrbedinung.
      Passiert leider nix im Putty via Telnet oder auf dem Fernseher die Steckdosen gehen auch nicht an.

      Kannst du , oder einer aus dem Forum mir Helfen das es funktioniert.


      Gruss
      bigking94

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von bigking94 ()

    • Danke erstmal, werde das morgen testen - schalte meine Heizung mit einer DECT - Steckdose

      Gesendet mit Tapatalk
      Gruß Mistaya




      Überspannungsschutz für die VU+ Box ? - Ja, aber erst, wenn mal eine abgefackelt ist !
      .
    • Fritz Benutzer und Passwort hast du bestimmt im script ergänzt.

      Führ mal

      Quellcode

      1. echo -n 11111111-blablabla | iconv -f ISO8859-15 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'
      aus.
      Das Ergebnis muss so sein
      9532907dd9cfb73597d1eb938b84cd0e

      Ich denke aber das auf der solo4k iconv fehlt.

      Edit:
      Hab ich das richtig verstanden dass du kein Passwort und Benutzer auf deiner Fritzbox eingerichtet hast?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von gnarf ()

    • Ja richtig, in der Fritzbox sind derzeit keine Daten,da ich noch einen Router davor habe. Die Fritzbox steht in 2 reihe sozusagen.

      Hab jetzt meiner Fritzbox, mal ein Benutzer und Passwort angelegt.
      Trotzdem funktioniert dein Script nicht bei mir :(


      Wenn ich deinen Befehl eingebe ,kommt das bei Putty bei mir.



      iconv : not found opkg

      ( Die installation mit dem Befehl , funktioniert bei der VU+ Solo 4K nicht - opkg install eglibc-gconv-utf-1 )

      Mein Ergebnis : d41d8cd98f00b204e9800998ecf8427e


      Kannst du mir Helfen , gnarf ?


      Gruss
      bigking94

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von bigking94 ()

    • Das wer Super wenn ich wüsste, wie ich das nach installieren könnte für die VU+ Solo 4K.

      Weiß einer von euch, wie man iconv nachinstallieren kann auf der VU+ Solo 4K.


      Gruss
      bigking94

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von bigking94 ()

    • Wenn ich den Befehl von gnarf ,oder von Banana Joe eingebe funktioniert es nicht.


      gnarf
      opgk install libc6-utils eglibc-gconv-utf-16

      root@vusolo4k:~# opkg install eglibc-gconv-utf-16
      Unknown package 'eglibc-gconv-utf-16'.
      Collected errors:
      * opkg_install_cmd: Cannot install package eglibc-gconv-utf-16.

      root@vusolo4k:~#


      Banana Joe
      opgk install libc6-utils

      root@vusolo4k:~# opgk install libc6-utils
      -sh: opgk: not found
      root@vusolo4k:~#



      Leider funktioniert das nicht.


      Gruss
      bigking94

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von bigking94 ()

    • Banana Joe - Hat funktioniert Super : :happy4:


      So habe das Script nochmal getestet, leider funktoniert es nicht.


      Meine Daten einmal die Wichtig sind für das Script von dir :
      ---------------------------------------------------------------------------------------------------------------------------
      Fritzbox 7490 IP : 192.168.10.1 ( Habe kein Benutzer oder Passwort hinterlegt )
      1. DECT 200 - AIN : 087610000028
      2. DECT 200 - AIN : 087610000035


      VU+Solo 4K IP : 192.168.10.91 (Benutzer : root / Passwort : oscam)
      ---------------------------------------------------------------------------------------------------------------------------

      fritz_dect.sh

      #!/bin/sh
      #----------------------------- Fritz -----------------------
      IP="192.168.10.1" #FritzBox IP
      UID="" #FritzBox Benutzer
      SECRET="" #FritzBox Passwort
      AIN="087610000028" #Aktornummer
      #----------------------------- Box -------------------------
      DreamIP=192.168.10.91
      DreamUser=root
      DreamPass=oscam #Dreambox Passwort
      #----------------------------- Edit Ende -------------------
      #opkg install eglibc-gconv-utf-16
      #opkg install eglibc-gconv-iso8859-1
      #opkg install locale-base-de-de.iso-8859-1


      TMP=/tmp
      cd $TMP


      DreamCheck=`ping -c2 -W1 $DreamIP | grep packets | cut -d " " -f4`
      if [ $DreamCheck -lt 1 ] ; then
      echo "Box nicht erreichbar"
      echo "Schalte Aktor Aus"
      #Schalte EIN
      # echo 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)}'`
      # MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -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 $SID
      sleep 3
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
      echo "Warte 35 Sekunden"
      sleep 35
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null`
      echo "Schalte Aktor Ein"
      elif [ $DreamCheck -gt 0 ] ; then
      echo Dreambox läuft bereits
      exit
      fi


      i=0
      while [ true ] ; do
      DreamCheck=`ping -c2 -W1 $DreamIP | grep packets | cut -d " " -f4`
      if [ $DreamCheck -lt 1 -a $i -lt 35 ] ; then
      i=`expr $i + 1`
      # echo $i
      elif [ $DreamCheck -lt 1 -a $i = 35 ] ; then
      echo "Box startet nicht, versuche nochmal"
      # echo 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)}'`
      # MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -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 $SID
      sleep 3
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchoff&sid=$SID" 2>/dev/null`
      echo "Warte 35 Sekunden"
      sleep 35
      PowerState=`wget -O- "http://$IP/webservices/homeautoswitch.lua?ain=$AIN&switchcmd=setswitchon&sid=$SID" 2>/dev/null`
      i=0
      elif [ $DreamCheck -gt 0 ] ; then
      echo "Box erreichbar"
      i=0
      while [ true ] ; do
      sleep 1
      i=`expr $i + 1`
      # echo $i
      VuWebIF=`wget -q -O- http://$DreamUser:$DreamPass@$DreamIP/web/powerstate -O- | grep e2powerstate | head -n1 | sed 's/<//g' | sed 's/>//g'`
      if [ $VuWebIF = e2powerstate ] 2> /dev/null ; then
      echo "WebIF erreichbar"
      Standby=`wget -q -O- http://$DreamUser:$DreamPass@$DreamIP/web/powerstate -O- | grep \<\/e2instandby\> | sed 's/\s//g' | cut -d "<" -f1`
      if [ "$Standby" = false ] 2> /dev/null ; then
      echo "Schalte in Standby"
      wget -q -O- http://$DreamUser:$DreamPass@$DreamIP/web/powerstate?newstate=5 | grep "\(<\|</\)e2instandby" | tr -d '\n' | sed "s/.*<e2instandby>\(.*\)<\/e2instandby.*/\\1\n/"
      exit
      elif [ "$Standby" = true ] 2> /dev/null ; then
      echo "Bereits im Standby"
      exit
      fi
      elif [ $i = 1 ] ; then
      echo "Warte auf WebIF"
      elif [ $i -gt 120 ] ; then
      echo "WebIF nach 120s nicht erreichbar, Box startet nicht durch"
      sleep 120
      exit
      fi
      done
      fi
      #sleep 0.5
      done
      exit





      Ich bekomme nur den Text : ( Dreambox läuft bereits )


      Mehr passiert leider nicht, meine DECT Steckdosen reagieren auch nicht !!!!

      Woran liegt das ?

      Gruss
      bigking94

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von bigking94 ()

    • Oh dann hab ich was überlesen.

      Ich will wollte eigendlich nur von der Box aus , den Aktor "AN" oder "AUS" schalten Manuell" via Fernbedinung.

      Das wer cool wenn das gehen würde ?

      Ja genau sowas will ich gnarf "könntest du das machen , bitte ?


      Gruss
      bigking94

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von bigking94 ()

    • Ein Plugin "FritzAktor"- das wäre es

      Gesendet mit Tapatalk
      Gruß Mistaya




      Überspannungsschutz für die VU+ Box ? - Ja, aber erst, wenn mal eine abgefackelt ist !
      .
    • Ich hab das mal umgebaut

      mit
      sh fritz-toggle.sh
      wird der Aktor von "Aus" auf "Ein" geschaltet, isser bereits "Ein" wird er "Aus" geschaltet.

      mit
      sh fritz-toggle.sh ein
      wird eingeschaltet egal wie der Zustand ist.
      sh fritz-toggle.sh aus
      wird ausgeschaltet egal wie der Zustand ist.
      Dateien
      • fritz-toggle.rar

        (896 Byte, 53 mal heruntergeladen, zuletzt: )
    • Siehe Post #14, ich wäre auch dafür zu begeistern und bereit dazu was beizutragen, soweit ich das denn kann

      Gesendet mit Tapatalk
      Gruß Mistaya




      Überspannungsschutz für die VU+ Box ? - Ja, aber erst, wenn mal eine abgefackelt ist !
      .
    • Vielen Dank erstmal an @gnarf für seine Mühe und da ich seine Skin - Parts vom IFlat begeistert nutze, hat er bestimmt eine Idee

      Gesendet mit Tapatalk
      Gruß Mistaya




      Überspannungsschutz für die VU+ Box ? - Ja, aber erst, wenn mal eine abgefackelt ist !
      .

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Mistaya ()