Über Homematic Licht aus wenn Reciever in Standby geht

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

    • Hallo zusammen,

      gibt es eine Möglichkeit Scripte auch vorher mal zu testen?
      Ich habe hier was und bin mir nicht ganz sicher:

      #!/bin/bash
      time="date +%k%M"
      while true; do
      if [[ $(eval "$time") -ge 1430 ]] && [[ $(eval "$time") -le 2220 ]];then
      wget "http://192.168.0.5/config/xmlapi/runprogram.cgi?program_id=1234" >/dev/null 2>&1

      fi


      Ziel ist es wenn die Bedingung erfüllt ist das Programm über die URL aufzurufen.



      Danke
    • wie vorher testen?
      rufe sie im VTi-Menü auf und starte
      oder per telnet direkt

      edit:
      bevor ich was automatisches mache, würde ich mal das script bzw. dessen Funktion ohne die Bedingung prüfen

      (und wenn soweit, schön Telent-Zugriff offen halten, Backup bereit halten - wenn du die Box komplett in eine Schleife schießt dann kannst schnell ein problem bekommen)
      ============================================================================================

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

    • Shell-Script

      1. #!/bin/bash
      2. while true; do
      3. time=`date +%k%M`
      4. if [[ $time -ge 1430 ]] && [[ $time -le 2220 ]];then
      5. wget "http://192.168.0.5/config/xmlapi/runprogram.cgi?program_id=1234" >/dev/null 2>&1
      6. fi
      7. sleep 5
      8. done
      So eine Endlosschleife ist böse, denn sie erzeigt 100% CPU Last. Daher das sleep.
      Edit: Bugfix

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Banana Joe () aus folgendem Grund: Bugfixbugfix und noch mehr bugfix

    • Über Homematic Licht aus wenn Reciever in Standby geht

      Hi,
      Danke erst einmal für die Hinweise. Dann werde ich das Script nachher mal am offenen Herzen testen.
      Ich war auf der Suche nach einer Art Simulator, damit ich nicht unbedingt auf Backup zurückgreifen muss.
      Das mit der Schleife verstehe ich zwar nicht bin aber sehr dankbar für den Bugfix.

      Danke an Alle.


      Gesendet von iPhone mit Tapatalk
    • simulator geht auch: wenn du ein Linux-System hast kannst es direkt testen



      Das mit der Schleife verstehe ich zwar nicht
      na dann erst recht: für den Notfall ein frisches Backup bereithalten
      wenn du das hast, dann probiere so heftig du willst, im Zweifel System wieder herstellen
      ============================================================================================

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

    • Hi Lars,

      klar macht es keinen Sinn noch einen Zwischestecker einzubauen, wenn man eh schon ne Homematic hat.
      Das mit dem Script hast du ja schon gelöst.
      Dieses Script solltest du nach /usr/scripts legen und ausführbar machen (chmod 777)
      Bei mir heißt es tv.sh und übermittelt der homematic, ob der TV in Standby (tv.sh 0) oder an (tv.sh 1) ist,
      d.h.es gibt in der HM eine boolsche Systemvariable "TV" (falsch, wahr).
      Je nach dem wie die gesetzt wird , kannst du in der HM ja ein HM-Script starten.

      In /usr/script/tv.sh:

      #!/bin/sh
      # in /usr/scrip/tv.sh ; chmod 755 legen
      cd /tmp
      pwd
      rm /tmp/sysvarlist.cgi
      wget -q 192.168.178.30/config/xmlapi/sysvarlist.cgi
      ise_id=`sed -e "s/></\n/g" sysvarlist.cgi | grep "TVPower" | cut -d"'" -f 10`
      #sed -e "s/></\n/g" /tmp/sysvarlist.cgi >sv.txt
      echo $ise_id $1
      wget -q -O /dev/null "http://192.168.178.30/config/xmlapi/statechange.cgi?ise_id=$ise_id&new_value=$1"
      rm sysvarlist.cgi
      exit
      #

      Der Aufruf von tv.sh muss dann in /usr/lib/enigma2/python/Screens/Standby.py eingetragen werden:
      ...
      class Standby(Screen):
      def Power(self):
      print "leave standby"
      import os
      if os.path.exists("/usr/script/tv.sh"):
      os.system("/usr/script/tv.sh 1")
      ...
      def __init__(self, session):
      Screen.__init__(self, session)
      self.avswitch = AVSwitch()
      print "enter standby"
      import os
      if os.path.exists("/usr/script/tv.sh"):
      os.system("/usr/script/tv.sh 0")
      ...

      jetzt noch die VU neu starten. Danach passiert erst einmal nix, da die Box nicht aus dem Standby kommt.
      Wenn du jetzt die VU in den Standby schaltest und wieder an, dann sollte die HM Variable dementsprechend gesetzt werden.

      Ich fahre meine VU mit einem Plugin Nachts runter und vormittag wieder hoch und zwar so, dass sie hochfährt und gleich in den Standby geht. So schalte ich sie dann Nachmittags von Standby an --> ts.sh 1
      und Abends wieder in den Standby --> tv.sh 0

      Wenn du Updates auf der VU machst, oder neues Image einspielst ist die Standby.py wieder auf original und du mußt wieder ändern.
      Ebenfalls die Dinge in /usr/script wieder einspielen.

      Mit diesem Vorgehen habe ich mir ein Plugin geschrieben, wo ich einige Geräte der HM in der VU bedienen kann.
      Dateien
      • tv.txt

        (677 Byte, 5 mal heruntergeladen, zuletzt: )
    • Hi,

      erst einmal eine super Erklärung...

      ICh bekomme das Script nur überhaupt nicht ans laufen...

      Wenn ich die Kommandos über Putty eingebe, alles kein Problem wenn ich das Script starte (auch über Putty)
      bekomme ich die Meldung

      wget: server returned error: HTTP/1.1 400 Bad Request

      Ich habe Moment nur diese 2 Zeilen im Script:

      #!/bin/sh
      wget -q -O /dev/null "http://192.168.188.32/config/xmlapi/statechange.cgi?ise_id=51663&new_value=$1"
      #

      PS: Noch eine Frage wieso liest du die ID jedes Mal aus und gibst Diese nicht fest mit?
    • Hi,

      meine ...... das 1. Problem ist gelöst. Es fehlte der verdammte Port.

      #!/bin/sh
      wget -q -O /dev/null "http://192.168.188.32:8181/config/xmlapi/statechange.cgi?ise_id=51663&new_value=1"
      #

      Wieso auch immer der hier unbedingt da sein muss....
      Aber es pluppt jetzt!!!!!