Ankündigung

Einklappen
Keine Ankündigung bisher.

FritzBox Plugin 2.0

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Fritz!Dect200 Steckdose funktioniert mit neuem Fritzbox Plugin!

    Marcus, großen Dank!

    Meine Fritz!Dect200 Steckdose kann ich nun über Smarthome.py steuern.
    Sogar die Energiewerte werden übertragen.
    Ich bin total Happy .
    "Energy" scheint dabei der kumulierte Gesamtverbrauch in Wh seit dem letzten Zurücksetzen der Verbrauchsdaten im Fritzbox Webinterface zu sein.
    "Power" stellt den Augenblickswert der letzten zyklischen Abfrage in mW dar.

    Noch ein Hinweis:
    Ich habe beim Start des neuen Fritzbox Plugins den Fehler im smarthome.log bekommen, dass die "lib.www" fehlt.
    (Ich hatte nur das Fritzbox Plugin vom Develop branch in mein smarthome/plugins Verzeichnis kopiert)

    Code:
    2014-03-07 22:13:29 ERROR    Main         Plugin fritzbox exception: No module named www
    Traceback (most recent call last):
      File "/usr/smarthome/lib/plugin.py", line 53, in __init__
        plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
      File "/usr/smarthome/lib/plugin.py", line 79, in __init__
        exec("import {0}".format(classpath))
      File "<string>", line 1, in <module>
      File "/usr/smarthome/plugins/fritzbox/__init__.py", line 16, in <module>
        import lib.www
    ImportError: No module named www
    Die Library www.py befindet sich im Develop branch unter /lib und muss noch ins smarthome/lib kopiert werden.

    @Alex:
    * Nicht befüllt werden ip/connected/link/host
    Den entsprechenden Fehler im Log bekomme ich auch:
    Code:
    2014-03-07 23:23:32,964 WARNING fb-cycle Problem fetching https://192.168.1.2:49443/upnp/control/wancommonifconfig1: 500 Internal Server Error -- www.py:fetch_url:109
    (Fritzbox 7490 v06.03)

    Kommentar


      #32
      ...bei mir auch

      Marcus: wie immer:

      Vielen Dank!

      auch bei mir (6360, 6.03) funktioniert es grundsätzlich . Anders als Telnet kann man auch bei den KabelW FritzBoxen den calmonitor aktivieren.

      Fehlermledung analog knxfriend und Alex ip/connected/link/host.

      @2ndsky
      Schade das der Callmonitor keine internen Anrufe anzeigen kann
      Das hängt scheinbar davon ab wer wen anruft.
      iphone (fritzfon) zu DECT wird bei mir auch nicht angezeigt

      Folgender Logauszug jedoch von einem Anruf vom iphone (fritzfon) zum ipad (auch fritzfon) (habe nur meine Telno entfernt)


      Code:
      2014-03-08 10:31:45,924 DEBUG    Main         Triggering 00_callmonitor - by: FritzBox source: 20 dest: 624# value: ['08.03.14 10:31:45', 'CALL', '1', '20', -- scheduler.py:trigger:162
      2014-03-08 10:31:45,929 INFO     00_callmonitor CallMonitor: '00_callmonitor' = by 'FritzBox' source: '20'  value: '['08.03.14 10:31:45', 'CALL', '1', '20', 'xxxx', '624#', 'SIP2', '']' -- 00_callmonitor.py:<module>:5
      2014-03-08 10:31:48,364 DEBUG    Main         Triggering 00_callmonitor - by: FritzBox source:  dest:  value: ['08.03.14 10:31:48', 'DISCONNECT', '1', -- scheduler.py:trigger:162
      2014-03-08 10:31:48,368 INFO     00_callmonitor CallMonitor: '00_callmonitor' = by 'FritzBox' source: ''  value: '['08.03.14 10:31:48', 'DISCONNECT', '1', '0', '']' -- 00_callmonitor.py:<module>:5
      Spannend ...

      Grüße Sven

      Kommentar


        #33
        Hi Sven,

        Danke für den Hinweis. Dann muss ich das doch noch ausführlicher testen.
        Mit freundlichen Grüßen
        Niko Will

        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

        Kommentar


          #34
          auch von mir...

          vielen vielen Dank für die Arbeit!!!

          Ich habe allerdings ein Problem.

          Die FritzDect lassen sich nicht schalten.

          Den Rest hab ich noch nicht getestet

          Plugin läuft nach anfänglichen Schwierigkeiten (lib.www)

          Aber ich bekomme im Debug immer:

          Code:
          2014-03-08 12:39:10,924 DEBUG    Main         Plugin: fritzbox -- plugin.py:__init__:43
          2014-03-08 12:49:47,516 DEBUG    Main         Item fritzbox: no type specified. -- item.py:__init__:242
          
          
          2014-03-08 12:40:13,533 WARNING  Main         Problem fetching http://fritz.box/login_sid.lua: [Errno -2] Name or service not known -- www.py:fetch_url:96
          2014-03-08 12:40:13,597 WARNING  Main         Problem fetching http://fritz.box/webservices/homeautoswitch.lua?switchcmd=setswitchon&sid=None&ain=087610035727: [Errno -2] Name or service not known -- www.py:fetch_url:96
          Meine Plugin.conf sieht so aus:
          Code:
          [fritzbox]
          
          	class_name = FritzBox
              class_path = plugins.fritzbox
              username = smarthome
              password = steht hier drin
          	#host = fritz.box
          	#cycle = 300
          das Item zum Schalten so:
          Code:
           [[[[fbswitch]]]]
          					type = bool
          					visu_acl = rw
          					fritzbox = switch
          					fb_ain = 087610035727
          hab eigentlich alles aus der readme übernommen, aber es will nicht.

          Ich hoffe mir kann jemand helfen.

          Gruß Wolfi

          Kommentar


            #35
            Zitat von OsLee540i Beitrag anzeigen
            Aber ich bekomme im Debug immer:

            Code:
            2014-03-08 12:39:10,924 DEBUG    Main         Plugin: fritzbox -- plugin.py:__init__:43
            2014-03-08 12:49:47,516 DEBUG    Main         Item fritzbox: no type specified. -- item.py:__init__:242
            das Item zum Schalten so:
            Code:
             [[[[fbswitch]]]]
            					type = bool
            					visu_acl = rw
            					fritzbox = switch
            					fb_ain = 087610035727
            Wie sieht denn Deine komplette item.conf (für den Fritzbox-Teil) aus?
            In der Fehlermeldung scheint für das darüberliegende Item "fritzbox" der Typ zu fehlen?

            So sieht meine Test-Config als Beispiel aus (eigenes File Fritzbox.conf):

            Code:
            [FB]
                 type = num
                 sv_page = FritzBox
                 sv_img = message_socket.svg
                 [[fritzbox]]
                      [[[ip]]]
                           type = str
                           name = External IP
                           fritzbox = external_ip
                      [[[connected]]]
                           type = bool
                           fritzbox = connected
                      [[[packets_sent]]]
                           type = num
                           fritzbox = packets_sent
                      [[[packets_received]]]
                           type = num
                           fritzbox = packets_received
                      [[[bytes_sent]]]
                           type = num
                           fritzbox = bytes_sent
                      [[[bytes_received]]]
                           type = num
                           fritzbox = bytes_received
                      [[[tam]]]  # telephone answering machine
                           type = bool
                           fritzbox = tam # read only!
                           fb_tam = 0
                      [[[tam2]]]  # 2nd telephone answering machine
                           type = bool
                           fritzbox = tam # read only!
                           fb_tam = 1
                      [[[wlan]]]
                           type = bool
                           fritzbox = wlan
                      [[[wlan_2]]]
                           type = bool
                           fritzbox = wlan
                           #fb_wlan = 2  # 5 GHz
                      [[[link]]]
                           type = bool
                           fritzbox = link
                      [[[host]]]
                           type = bool
                           fritzbox = host
                           fb_mac = XX:XX:XX:XX:XX:XX.
                 [[fbswitch]]
                      type = bool
                      name = Steckdose 1
                      fritzbox = switch
                      fb_ain = 087610067243
                      visu_acl = rw
                      sv_widget = Steckdose 1: {{ basic.flip('item', 'item') }} <p> Kumulierter Verbrauch [Wh]: {{ basic.value('FB.fbswitch.energy', 'FB.fbswitch.energy') }} <p>
                      [[[energy]]]
                           type = num
                           name = Kumulierter Verbrauch [Wh]
                           fritzbox = energy  # Wh
                           visu_acl = rw
                           #sv_widget = Kumulierter Verbrauch [Wh]: {{ basic.value('item', 'item') }} <p> Aktueller Verbrauch [W]: {{ basic.value('FB.power', 'FB.power') }}
                      [[[power]]]
                           type = num
                           name = Aktueller Verbrauch [W]
                           fritzbox = power  # mW
                           visu_acl = rw
                           #sv_widget = "{{ basic.value('item', 'item') }}"^M
                           eval = value / 1000
                 [[fbswitch2]]
                      type = num
                      name = Verbrauch in W
                      visu_acl = rw
                      sqlite = yes
                      sv_widget = "{{ plot.period('item', 'item', 'max', '', '', 0, '', '', 'Verbrauch [W]') }}"^M
                      fritzbox = power
                      fb_ain = 087610067243
                      eval = value / 1000  # convert from mW to W
            Vielleicht kommst Du mit dieser funktionierenden Beispiel-Konfig dem Fehler näher.

            Kommentar


              #36
              Guten Morgen,

              danke schonmal für die Rückmeldung

              Das Item für den Fritzboxteil war eigenlich nur der fbswitch.
              Mehr hab ich zum Testen nicht eingebaut.

              Jetzt hab ich mal deine Items übernommen und angepasst.

              Ergebnis:
              Code:
               Plugin: fritzbox -- plugin.py:__init__:43
              2014-03-09 08:59:36,911 WARNING  fritzbox     Problem fetching http://fritz.box/webservices/homeautoswitch.lua?switchcmd=getswitchlist&sid=None: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,231 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wanipconnection1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,299 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wanipconnection1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,365 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wancommonifconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,431 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wancommonifconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,498 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wancommonifconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,565 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wancommonifconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,632 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/x_tam: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,680 DEBUG    Scheduler    fb-cycle next time: 2014-03-09 09:09:38+01:00 -- scheduler.py:_next_time:289
              2014-03-09 09:04:38,699 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/x_tam: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,765 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wlanconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,832 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wlanconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,898 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wancommonifconfig1: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:38,964 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/hosts: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,030 WARNING  fb-cycle     Problem fetching http://fritz.box/login_sid.lua: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,094 WARNING  fb-cycle     Problem fetching http://fritz.box/webservices/homeautoswitch.lua?switchcmd=getswitchenergy&sid=None&ain=087610035727: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,158 WARNING  fb-cycle     Problem fetching http://fritz.box/login_sid.lua: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,223 WARNING  fb-cycle     Problem fetching http://fritz.box/webservices/homeautoswitch.lua?switchcmd=getswitchpower&sid=None&ain=087610035727: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,287 WARNING  fb-cycle     Problem fetching http://fritz.box/login_sid.lua: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,352 WARNING  fb-cycle     Problem fetching http://fritz.box/webservices/homeautoswitch.lua?switchcmd=getswitchstate&sid=None&ain=087610035727: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,415 WARNING  fb-cycle     Problem fetching http://fritz.box/login_sid.lua: [Errno -2] Name or service not known -- www.py:fetch_url:96
              2014-03-09 09:04:39,478 WARNING  fb-cycle     Problem fetching http://fritz.box/webservices/homeautoswitch.lua?switchcmd=getswitchpower&sid=None&ain=087610035727: [Errno -2] Name or service not known -- www.py:fetch_url:96
              usw.

              Schalten und anzeigen tut er nix.

              Also jeden für jeden Befehl den er schickt, kriegt er dann die Fehlermeldung.

              Kann es sein das mir noch eine Datei fehlt?

              Ich hab das FB Plugin aus dem Develope und die www.py.

              Danke für die Hilfe!

              Gruß Wolfi

              Kommentar


                #37
                Zitat von OsLee540i Beitrag anzeigen
                Kann es sein das mir noch eine Datei fehlt?
                Hast du eventuell eine zu alte Firmware auf der Fritz!Box ?

                Was passiert denn wann du von einem normalen Browser aus z.B. folgendes aufrufst: http://fritz.box/login_sid.lua

                Hier z.B. mein Ergebnis:
                Code:
                <SessionInfo>
                <SID>0000000000000000</SID>
                <Challenge>b8dda587</Challenge>
                <BlockTime>0</BlockTime>
                <Rights/>
                </SessionInfo>
                Es sieht für mich so aus als ob Dateien auf deiner Fritz!Box fehlen würden ...

                Ich bekomme obige Ausgabe mir einer 7390 und FRITZ!OS 06.03

                Serge

                Kommentar


                  #38
                  Hallo,

                  ich hab ebenfalls die 7390 und 6.03

                  Meine Ausgabe wenn ich Benutzerkonten aktiviert hab ist diese:

                  Code:
                  <SessionInfo>
                  <SID>0000000000000000</SID>
                  <Challenge>d8a44f03</Challenge>
                  <BlockTime>0</BlockTime>
                  <Rights/>
                  </SessionInfo>
                  Ich hab es auch schon ohne Benutzer probiert, da bekomme ich auch eine Gültige Session ID.
                  Code:
                  <SessionInfo>
                  <SID>476a33cc87338c3f</SID>
                  <Challenge>e5d5f982</Challenge>
                  <BlockTime>0</BlockTime>
                  <Rights>
                  <Name>Phone</Name>
                  <Access>2</Access>
                  <Name>NAS</Name>
                  <Access>2</Access>
                  <Name>HomeAuto</Name>
                  <Access>2</Access>
                  <Name>BoxAdmin</Name>
                  <Access>2</Access>
                  </Rights>
                  </SessionInfo>
                  Man muss aber die Benutzer aktivieren, da ohne Benutzername und Passwort das Plugin im vorherein Streikt und ausgibt das ihm 2 Argumente in der Plugin.conf fehlen.

                  Ich versteh nicht ganz wieso es hier nicht hinhaut.
                  Ich habe mir ja damals ein php skript zusammengebastelt und eine Übersichtsseite damit erstellt.
                  Das macht genau das selbe wie das Plugin.
                  Also holt sich eine Session ID und dann sind die Befehle die selben.
                  Das skript funktioniert nach wie vor.

                  Gruß Wolfi

                  Kommentar


                    #39
                    Ich hab jetzt auch mal mein RPI von master auf develop umgestellt.

                    Ich bin dabei das neue Fritzbox Plugin zu testen und hab da mal ein paar Fragen.

                    Ich hab einen Benutzer "smarthome" angelegt mit einem Password. Dem Benutzer hab ich alle Rechte zugeteilt ausser NAS und VPN. In der Fritz! Log hab ich dann gesehen dass sich smarthome erfolgreich als APP einloggt. Allerdings hatte ich Fehlermeldungen beim einloggen in die "Benutzeroberfläche". Ich hab einfach das Fritz! GUI Password auf das gleiche umgeändert das auch der "smarthome" Benutzer hat. Jetzt hab ich in der Log nur noch erfolgreiche Anmeldungen.

                    Frage: Ist das so dass ich einen Benutzer anlegen muss mit dem gleichen Passwort als die GUI hat, da ich in der Plugin.conf ja nur ein Password eingeben kann ?

                    Dann hab ich folgenden Fehlermeldungen im Log:

                    Code:
                    2014-03-09 10:49:28,127 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/wancommonifconfig1: 500 Internal Server Error -- www.py:fetch_url:109
                    2014-03-09 10:49:28,769 WARNING  fb-cycle     Problem fetching https://fritz.box:49443/upnp/control/hosts: 500 Internal Server Error -- www.py:fetch_url:109
                    2014-03-09 10:49:29,252 ERROR    Connections  CallMonitor: could not connect to fritz.box:1012 (TCP): [Errno 111] Connection refused -- connection.py:connect:388
                    Wie schon mehrfach erwähnt füllen sich die Pakete und Bytes Variablen, aber die externe IP nicht.

                    Sorgen macht mir allerdings die CallMonitor Fehlermeldung. Kommt die wenn der Anrufmonitor nicht richtig aktiviert ist ? Wie aktiviere ich den ? Von der iPhone Fritz!Fon App aus #96*5* anrufen klappt jedenfalls nicht wie es aussieht.

                    Ich habe eine 7390 mit neustem 06.03 OS

                    mknx: Vielen vielen Dank für all deine Mühen. You rock ! :-)

                    Kommentar


                      #40
                      OHHHHH NEIIIIN.

                      Ich bin schon wieder darübergestolpert.

                      Jetzt hab ich in der Plugin.conf den Host von fritz.box auf die IP adresse der Fritzbox geändert und jetzt läuft der Laden.

                      Das war bei dem PHP Skript damals auch so.

                      Ich weis nicht wieso das bei mir mit fritz.box nicht hinhaut. Weil einloggen geht ja auch darüber.

                      Auf alle fälle vielen Dank für die Hilfe!!

                      Gruß Wolfi

                      Kommentar


                        #41
                        Zitat von OsLee540i Beitrag anzeigen
                        Das war bei dem PHP Skript damals auch so.
                        Weil ich auch Bastler bin :-) ; Würdest du das php script teilen ? Einfach nur zum spielen ...

                        Zitat von OsLee540i Beitrag anzeigen
                        Ich weis nicht wieso das bei mir mit fritz.box nicht hinhaut. Weil einloggen geht ja auch darüber.
                        Kannst du denn von dem Rechner aus auf dem sh.py läuft erfolgreich ein "ping fritz.box" durchführen ? Das hört sich doch sehr nach DNS Problem an ...

                        Ich hatte mal ein ähnliches Problem. Eine Linux Machine benutzte eine lokales bind zum resolven und dies benutzte rekursiv die root DNS server. Das heisst der Linux Server hat den DNS Dienst der Fritzbox nicht genutzt und konnte somit fritz.box natürlich auch nicht resolven ...

                        Serge

                        Kommentar


                          #42
                          Nachtrag: Call commando funktioniert auch nicht. Es kommt folgende Fehlermeldung:

                          Code:
                          2014-03-09 15:31:05,806 WARNING  doorbell     Problem fetching https://fritz.box:49443/upnp/control/x_voip: 500 Internal Server Error -- www.py:fetch_url:109
                          Vun der Türklingel Logik wird folgendes ausgeführt:
                          Code:
                          sh.fritzbox.call('**623', '**624')
                          Bis denne,

                          Serge

                          Kommentar


                            #43
                            Zitat von Foxi352 Beitrag anzeigen

                            Sorgen macht mir allerdings die CallMonitor Fehlermeldung. Kommt die wenn der Anrufmonitor nicht richtig aktiviert ist ? Wie aktiviere ich den ? Von der iPhone Fritz!Fon App aus #96*5* anrufen klappt jedenfalls nicht wie es aussieht.
                            Zumindest diesen Teil kann ich beantworten.

                            Die ganzen #xx*y* Kommandos funktionieren nicht über die FonApps. Ich habe deswegen extra mein DECT Telefon gesucht und geladen. Damit konnte ich den Callmonitor einschalten (auch RemoteCapi)

                            Grüße
                            Sven

                            Kommentar


                              #44
                              Zitat von valleyman Beitrag anzeigen
                              Die ganzen #xx*y* Kommandos funktionieren nicht über die FonApps. Ich habe deswegen extra mein DECT Telefon gesucht und geladen. Damit konnte ich den Callmonitor einschalten (auch RemoteCapi)
                              Oh jee... Danke AVM ... Dann werd ich mir mal was einfallen lassen. Vielleicht habe ich irgendwo noch ein analoges Telefon rumliegen.

                              Mit einem SIP Telefon (Cisco 7941 mit SIP Firmware) scheint es auch nicht zu funktionieren. Kommt nur ein Besetztzeichen.

                              Danke für die Info !

                              Serge

                              Kommentar


                                #45
                                Zitat von Foxi352 Beitrag anzeigen
                                Weil ich auch Bastler bin :-) ; Würdest du das php script teilen ? Einfach nur zum spielen ...



                                Kannst du denn von dem Rechner aus auf dem sh.py läuft erfolgreich ein "ping fritz.box" durchführen ? Das hört sich doch sehr nach DNS Problem an ...

                                Ich hatte mal ein ähnliches Problem. Eine Linux Machine benutzte eine lokales bind zum resolven und dies benutzte rekursiv die root DNS server. Das heisst der Linux Server hat den DNS Dienst der Fritzbox nicht genutzt und konnte somit fritz.box natürlich auch nicht resolven ...

                                Serge
                                Hallo,

                                anbei mal das PHP Skript, der Ursprung ist nicht von mir.
                                Ich habe es nur so angepasst das es im Iframe zur Smartvisu passt.
                                Und das es mir den Gesamtverbrauch und die Kosten ausrechnet.

                                Beim Ping von fritz.box kommt nur Unknown Host. mit der IP gehts.

                                Aber ist jetzt auch nicht weiter tragisch solang alles läuft.
                                Ich muss mir halt nur mal merken das es nur mit der IP geht.


                                PHP-Code:
                                <?php
                                /**
                                 * Script zur Benutzung des Fritzbox SmartHome Interfaces
                                 * (c) 2013 robw (auf Basis eines Scripts v. C. Koch)
                                 */
                                //Die folgenden Zeilen MüSSEN an die lokalen Erfordernisse angepasst werden.

                                define('USER','');
                                define('PASS','');
                                define('AIN1','');
                                define('AIN2','');
                                define('AIN3','');
                                define('AIN4','');
                                define('AIN5','');
                                define('AIN6','');


                                /***************NO NEED TO CHANGE ANYTHING BENEATH THIS LINE**************************/

                                define('LOGINURL','http://192.168.0.1/login_sid.lua');
                                define('AHAURL','http://192.168.0.1/webservices/homeautoswitch.lua');
                                define('SID',GetSid(USER,PASS));

                                $ain $_GET['ain'];
                                $task $_GET['task'];

                                switch (
                                $task) {
                                  case 
                                "off" :
                                    
                                $rsp file_get_contents(AHAURL."?ain=$ain&switchcmd=setswitchoff&sid=".SID);
                                    break;
                                  case 
                                "on" :
                                    
                                $rsp file_get_contents(AHAURL."?ain=$ain&switchcmd=setswitchon&sid=".SID);
                                    break;
                                }

                                function 
                                GetSid($user,$pass) {
                                  
                                $doc file_get_contents(LOGINURL);
                                  
                                $xml simplexml_load_string($doc);
                                  
                                $sid $xml->SID;
                                  if (
                                $sid == "0000000000000000") {
                                    
                                $chl $xml->Challenge;
                                    
                                $rsp GetResponse($chl,PASS);
                                    
                                $uri LOGINURL."?username=".USER."&response=$rsp";
                                    
                                $doc file_get_contents($uri);
                                    
                                $xml simplexml_load_string($doc);
                                    
                                $sid $xml->SID;
                                  }
                                  return 
                                $sid;
                                 
                                }

                                function 
                                GetResponse($chl,$pass) {
                                   return 
                                $chl."-".GetMD5Hash($chl."-".PASS);
                                }

                                function 
                                GetMD5Hash($s){
                                   return 
                                md5(mb_convert_encoding($s,"UCS-2LE","UTF-8"));
                                }
                                ?>

                                <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                                <html>

                                </head>

                                <body text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" > 
                                <BASEFONT SIZE=7>

                                <p>
                                <table border="0" cellspacing="0" cellpadding="0" width="500px">
                                    <tr><td colspan="4"><hr noshade="noshade" size="1"></td></tr>
                                    <tr><td align="left">Aktor</td><td>AN</td><td>|W</td><td>|kWh</td></tr>
                                    <tr><td colspan="4"><hr noshade="noshade" size="1"></td></tr>
                                    <tr>
                                        <form method="get" name="s1">
                                    
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $name file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchname&sid='.SID);
                                        
                                $status file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchstate&sid='.SID);
                                        
                                $strom1 file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchpower&sid='.SID)/1000;
                                        
                                $verbrauch1 file_get_contents(AHAURL.'?ain='.AIN1.'&switchcmd=getswitchenergy&sid='.SID)/1000;
                                        
                                        
                                ?>
                                            <td>&nbsp;<input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN1;?>">
                                            <select name="task" size="1" onchange="this.form.submit()">
                                            <option><?php echo $name;?> </option>
                                            <option value="on">On</option>
                                            <option value="off">Off</option>
                                            </select>
                                        <td align="center" width="2%" nowrap><?php echo $status;?></td>
                                        <td width="5%" nowrap>&nbsp;|&nbsp;<?php echo $strom1;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $verbrauch1;?></td>
                                        </form>
                                    </td><td width="10%">&nbsp;</td></tr>
                                    <tr>
                                        <form method="get" name="s2">
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $name file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchname&sid='.SID);
                                        
                                $status file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchstate&sid='.SID);
                                            
                                $strom2 file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchpower&sid='.SID)/1000;
                                            
                                $verbrauch2 file_get_contents(AHAURL.'?ain='.AIN2.'&switchcmd=getswitchenergy&sid='.SID)/1000;
                                            
                                        
                                ?>
                                            <td>&nbsp;<input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN2;?>">
                                            <select name="task" size="1" onchange="this.form.submit()">
                                            <option><?php echo $name;?></option>
                                            <option value="on">On</option>
                                            <option value="off">Off</option>
                                            </select>
                                        </td>
                                        <td align="center" width="2%" nowrap><?php echo $status;?></td>
                                        <td width="5%" nowrap>&nbsp;|&nbsp;<?php echo $strom2;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $verbrauch2;?></td>
                                        </form>
                                    </td><td width="10%">&nbsp;</td></tr>
                                    <tr>
                                        <form method="get" name="s3">
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $name file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchname&sid='.SID);
                                        
                                $status file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchstate&sid='.SID);
                                        
                                            
                                $strom3 file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchpower&sid='.SID)/1000;
                                            
                                $verbrauch3 file_get_contents(AHAURL.'?ain='.AIN3.'&switchcmd=getswitchenergy&sid='.SID)/1000;
                                        
                                        
                                ?>
                                        <td>&nbsp;<input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN3;?>">
                                            <select name="task" size="1" onchange="this.form.submit()">
                                            <option><?php echo $name;?></option>
                                            <option value="on">On</option>
                                            <option value="off">Off</option>
                                            </select>
                                        </td>
                                        <td align="center" width="2%" nowrap><?php echo $status;?></td>
                                        <td width="5%" nowrap>&nbsp;|&nbsp;<?php echo $strom3;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $verbrauch3;?></td>
                                        </form>
                                    </td><td width="10%">&nbsp;</td></tr>
                                    <tr>
                                        <form method="get" name="s4">
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $name file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchname&sid='.SID);
                                        
                                $status file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchstate&sid='.SID);
                                        
                                            
                                $strom4 file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchpower&sid='.SID)/1000;
                                            
                                $verbrauch4 file_get_contents(AHAURL.'?ain='.AIN4.'&switchcmd=getswitchenergy&sid='.SID)/1000;
                                        
                                        
                                ?>
                                        <td>&nbsp;<input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN4;?>">
                                            <select name="task" size="1" onchange="this.form.submit()">
                                            <option><?php echo $name;?></option>
                                            <option value="on">On</option>
                                            <option value="off">Off</option>
                                            </select>
                                        </td>
                                        <td align="center" width="2%" nowrap><?php echo $status;?></td>
                                        <td width="5%" nowrap>&nbsp;|&nbsp;<?php echo $strom4;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $verbrauch4;?></td>
                                        </form>
                                    </td><td width="10%">&nbsp;</td></tr>
                                    <tr>
                                        <form method="get" name="s5">
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $name file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchname&sid='.SID);
                                        
                                $status file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchstate&sid='.SID);
                                        
                                            
                                $strom5 file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchpower&sid='.SID)/1000;
                                            
                                $verbrauch5 file_get_contents(AHAURL.'?ain='.AIN5.'&switchcmd=getswitchenergy&sid='.SID)/1000;
                                        
                                        
                                ?>
                                        <td>&nbsp;<input type="hidden" id="ain" name="ain" size="12" value="<?php echo AIN5;?>">
                                            <select name="task" size="1" onchange="this.form.submit()">
                                            <option><?php echo $name;?></option>
                                            <option value="on">On</option>
                                            <option value="off">Off</option>
                                            </select>
                                        </td>
                                        <td align="center" width="2%" nowrap><?php echo $status;?></td>
                                        <td width="5%" nowrap>&nbsp;|&nbsp;<?php echo $strom5;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $verbrauch5;?></td>
                                        </form>
                                    </td><td width="10%">&nbsp;</td></tr>
                                    <tr>
                                        <form method="get" name="s6">
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $name file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchname&sid='.SID);
                                        
                                $status file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchstate&sid='.SID);
                                        
                                            
                                $strom6 file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchpower&sid='.SID)/1000;
                                            
                                $verbrauch6 file_get_contents(AHAURL.'?ain='.AIN6.'&switchcmd=getswitchenergy&sid='.SID)/1000;
                                             
                                        
                                ?>
                                        <td>&nbsp;<input type="hidden" id="ain" name="ain" size="12" value="<?php echo $sid;?>">
                                            <select name="task" size="1" onchange="this.form.submit()">
                                            <option><?php echo $name;?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
                                            <option value="on">On</option>
                                            <option value="off">Off</option>
                                            </select>
                                        </td>
                                        <td align="center" width="2%" nowrap><?php echo $status;?></td>
                                        <td width="5%" nowrap>&nbsp;|&nbsp;<?php echo $strom6;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $verbrauch6;?></td>
                                        </form>
                                        </td><td width="10%">&nbsp;</td></tr>
                                            <tr>
                                        <form method="get" name="s5">
                                        <?php
                                        $strom 
                                '';
                                        
                                $verbrauch '';
                                        
                                $strompreis 27;
                                        
                                $blub 100;
                                            
                                $gesamt $strom1 $strom2 $strom3 $strom4 $strom5 $strom6;
                                            
                                $gverbrauch $verbrauch1 $verbrauch2 $verbrauch3 $verbrauch4 $verbrauch5 $verbrauch6;
                                            
                                $kosten $gverbrauch $strompreis $blub;
                                        
                                        
                                ?>
                                        <td </td>
                                        <td </td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $gesamt;?></td>
                                        <td width="10%" nowrap>&nbsp;|&nbsp;<?php echo $gverbrauch;?></td>
                                        <tr><td></td><td align="left"></td><td>Kosten</td><td><?php echo $kosten;?>€</td></tr>
                                        </td>
                                        </td>
                                        </form>
                                        </td><td width="10%">&nbsp;</td></tr>
                                    
                                    <tr><td colspan="4"><hr noshade="noshade" size="1"></td></tr>
                                    <tr><td colspan="4" align="center"><a href="http://fritz.box/net/home_auto_overview.lua" target="_blank">Zur Fritz-Box ></a></td></tr>
                                </p>
                                    </table>

                                </body>
                                </html>
                                Gruß Wolfi

                                Kommentar

                                Lädt...
                                X