Ankündigung

Einklappen
Keine Ankündigung bisher.

AVM Plugin

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

  • psilo
    antwortet
    @ivande: Mal mit ssl false und http port (49000) probiert? Wie sieht die Plugin.conf aus (Passwort halt durch "..." ersetzen bevor Du postest)

    Ist bspw. http://fritz.box:49000/x_homeplugSCPD.xml im browser erreichbar?

    Das im Anhang kannste auch mal checken...

    Last but not least probier mal diesen CURL und poste, was zurück kommt:
    Code:
    curl "https://fritz.box:49443/upnp/control/wancommonifconfig1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:WANCommonInterfaceConfig:1#GetTotalPacketsReceived" -d "@test.xml" -k
    test.xml:
    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
      <s:Body>
        <u:GetTotalPacketsReceived xmlns:u="urn:dslforum-org:service:WANCommonInterfaceConfig:1" />
      </s:Body>
    </s:Envelope>
    Angehängte Dateien
    Zuletzt geändert von psilo; 08.04.2016, 08:04.

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Guten Morgen psilo,
    Fritzbox 7490 FritzOS 06.51
    die Einstellungen aus #31 waren bereits aktiviert.

    Gruß Ivan

    Einen Kommentar schreiben:


  • psilo
    antwortet
    @ivande: welches FB Modell? Firmare geupdated?

    Allgemein: Check mal die Settings zu den Heimnetzfreigaben hier - das 3te ist nicht zwingend nötig, je nachdem was Du ausliest:
    You do not have permission to view this gallery.
    This gallery has 1 photos.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Schau in die neue readme im DEV. Da war noch ein Fehler. Anstatt fritzbox_1 muss halt das stehen, was in der plugin.conf in den [...] steht. Im Beispiel glaube ich fb1 anstatt fritzbox_1

    Gib zudem mit dem cycle acht, das alte Plugin hatte hier 300 Sec stehen. Evtl werden ältere Boxen durch zu kurze Taktraten überlastet und knicken temporär ein mit der Requestannahme. Mit allen meinen Items schiebt man halt fast 3mal so viel gegen die FB als früher. Und das obwohl ich Request-Antworten, die mehrfach benötigt werden, pro cycle cache. Wenn die CPU also am Limit ist auf der Box, lieber Cycle hochdrehen oder nicht benötigte Items entfernen.

    Einen Kommentar schreiben:


  • Marcov
    antwortet
    Zitat von psilo Beitrag anzeigen

    PS: Bitte mal testen, ob die Version aus dem DEV jetzt geht..
    vielen Dank für Deine Änderungen - ich habe keinen Fehler mehr im Log und die Verbindung zur Fritzbox wird hergestellt. Allerdings kann ich mit sh.fritzbox_1.BEFEHL keine Befehle im interaktiven Modus auslösen:
    PHP-Code:
    ERROR    Main         Unhandled exception'SmartHome' object has no attribute 'fritzbox_1'
    <class 'AttributeError'>
     -- 
    smarthome.py:_excepthook:513 
    vielleicht habe ich die Syntax in der Readme auch falsch verstanden?

    Einen Kommentar schreiben:


  • ivande
    antwortet
    ich konnte keiner Verbindung zur Box herstellen. Ich habe dazu in der Fritzbox einen user angelegt, password vergeben und dies auch in der plugin.conf eingetragen.
    Weiters habe ich in der Fritzbox die "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" aktiviert.

    Muss ich in der Fritzbox noch etwas einstellen?
    Mein smarthome.py läuft in Virtualbox unter debian32/jessie

    PHP-Code:
    016-04-07 22:24:50,154 DEBUG    Main         Pluginfb1 -- plugin.py:__init__:43
    2016
    -04-07 22:24:50,179 INFO     Main         Init AVM Plugin with identifier fritzbox_1 -- __init__.py:__init__:391
    2016
    -04-07 22:24:50,187 ERROR    Main         Plugin fb1 exception'LogRecord' object has no attribute 'message' -- plugin.py:__init__:57
    Traceback 
    (most recent call last):
      
    File "/usr/local/smarthome_dev/plugins/avm/__init__.py"line 76in connect
        self
    .conn.connect((self._hostself._port))
    ConnectionRefusedError: [Errno 111Verbindungsaufbau abgelehnt

    During handling of the above exception
    another exception occurred:

    Traceback (most recent call last):
      
    File "/usr/local/smarthome_dev/lib/plugin.py"line 53in __init__
        plugin_thread 
    Plugin(smarthomepluginclassnameclasspathargs)
      
    File "/usr/local/smarthome_dev/lib/plugin.py"line 82in __init__
        exec
    ("self.plugin = {0}.{1}(smarthome{2})".format(classpathclassnameargs))
      
    File "<string>"line 1in <module>
      
    File "/usr/local/smarthome_dev/plugins/avm/__init__.py"line 410in __init__
        self
    ._monitoring_service.connect()
      
    File "/usr/local/smarthome_dev/plugins/avm/__init__.py"line 80in connect
        logger
    .error("Cannot connect to"self._host,"on port:",str(self._port),"\nError:",e)
      
    File "/usr/lib/python3.4/logging/__init__.py"line 1303in error
        self
    ._log(ERRORmsgargs, **kwargs)
      
    File "/usr/lib/python3.4/logging/__init__.py"line 1409in _log
        self
    .handle(record)
      
    File "/usr/lib/python3.4/logging/__init__.py"line 1419in handle
        self
    .callHandlers(record)
      
    File "/usr/lib/python3.4/logging/__init__.py"line 1481in callHandlers
        hdlr
    .handle(record)
      
    File "/usr/lib/python3.4/logging/__init__.py"line 853in handle
        self
    .emit(record)
      
    File "/usr/local/smarthome_dev/bin/smarthome.py"line 104in emit
        self
    ._log.add([timestamprecord.threadNamerecord.levelnamerecord.message])
    AttributeError'LogRecord' object has no attribute 'message' 
    Gruß Ivan

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Im develop-Bereich liegen jetzt einige Beispiel-Widgets
    Zuletzt geändert von psilo; 07.04.2016, 15:53.

    Einen Kommentar schreiben:


  • ivande
    antwortet
    danke, muss ich die nächsten Tage an der neue zugelegten FritzBox testen :-)

    Einen Kommentar schreiben:


  • psilo
    antwortet
    @ivande: das ist ein Merge aus den Sachen https://github.com/herrmannj/smartvi...aster/fritzbox (ich selber habe da den weiter unten stehenden callmonitor_small ergänzt) und bischen eigenem HTML / SmartVISU Gebastel.

    SV "Code":

    Code:
    <div class="block">
                
            <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
    
                <div data-role="collapsible" data-collapsed="false">
                    <h3>Fritzbox 7490</h3>
                    <table width=100%>
                                            <tr>
                                                    <td align=left colspan="2">
                                                         {% import "widgets/widget_fritzbox.html" as fritzbox %}
                                                        {{ fritzbox.sys('wlan_widget', 'avm.hardware_version_7490', 'avm.firmware_7490', 'avm.wlan.gf_wlan_1', 'avm.wlan.gf_wlan_2', 'avm.wlan.gf_wlan_3', 'avm.wlan.gf_wlan_3_tr') }}
                                                    </td>
                                            </tr>                                        
                                            <tr>
                                                    <td align=left colspan="2">  
                                                        <hr/>
                                                        {{ fritzbox.tam('TAM', 'avm.tam.name', 'avm.tam.message_number_new', 'avm.tam.message_number_old', 'avm.tam') }}
                                                        <hr/>
                                                    </td>  
                                            </tr>                                        
                                            <tr>
                                                    <td align=left>
                                                        {{ basic.symbol('myfritz_status_off', 'avm.myfritz', 'MyFritz', icon0~'it_internet.png', 0) }}
                                                        {{ basic.symbol('myfritz_status_on', 'avm.myfritz', 'MyFritz', icon1~'it_internet.png', 1) }}  
                                                    </td>
                                                    <td align=left>
                                                    </td>  
                                            </tr>
                                            <tr>
                                                    <td align=left style="width:100%;" colspan="2">  
                                                        Letzter Anruf (eingehend):<br/>
                                                        {{ fritzbox.callmonitor_small('callmonitor_in','avm.monitor.incoming.event','avm.monitor.direction','avm.monitor.incoming.last_caller','avm.monitor.incoming.last_call_date', 'avm.monitor.incoming.duration') }}<br/>
                                                        Letzter Anruf (ausgehend):<br/>
                                                        {{ fritzbox.callmonitor_small('callmonitor_out','avm.monitor.outgoing.event','avm.monitor.direction','avm.monitor.outgoing.last_caller','avm.monitor.outgoing.last_call_date', 'avm.monitor.outgoing.duration') }}
                                                    </td>
                                            </tr>
                                    </table>        
                </div>
    
            </div>
        </div>
    Das unten ist 2mal folgender "callmonitor_small".
    Code:
    {% macro callmonitor_small(id, gad_event, gad_direction, gad_last_caller, gad_last_call_date, gad_duration) %}
        {% import "basic.html" as basic %}
        {% set uid = uid(page, id) %}
    
        <div id="{{ uid }}">
            <div style="float:left">
            {{ basic.symbol(id~'ring', gad_event, '', icon1~'phone_ring.png', 'ring') }}
            {{ basic.symbol(id~'call', gad_event, '', icon1~'phone_call_out.png', 'call') }}
            {{ basic.symbol(id~'connect', gad_event, '', icon1~'phone_call.png', 'connect') }}                        
            {{ basic.symbol(id~'disconnect', gad_event, '', 'icons/ws/phone_call_end.svg', 'disconnect') }}    
            </div>
            {{ basic.symbol(id~'phone_status.fritz.call_incoming_0', gad_incoming_call, '', 'icons/ws/phone_missed_in.svg', 0) }}
            {{ basic.symbol(id~'phone_status.fritz.call_incoming_1', gad_incoming_call, '', 'icons/gn/phone_call_in.png') }}
            {{ basic.value(id~'phone_status.fritz.last_caller', gad_last_caller)}},
            {{ basic.value(id~'phone_status.fritz.last_call_date', gad_last_call_date)}}<br/>          
            Dauer: {{ basic.value(id~'gad_duration', gad_duration)}} Sekunden
        </div>
    {% endmacro %}
    Zuletzt geändert von psilo; 07.04.2016, 14:14.

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Hallo psilo,

    das ganze sieht ja sehr interessant aus.

    ist das von Dir abgebildete Widget (#12) verfügbar?

    Gruß Ivan

    Einen Kommentar schreiben:


  • psilo
    antwortet
    So ich denke das von Markov könnte jetzt auch gehen. Ich mache nun ein urllib3.disable_warnings() anstatt dem Befehl von vorher.. Wenn das auch nicht geht oder jemanden stört, lasse ich die Warning halt rausloggen. Notfalls kann man ja immer noch ein -W ignore ans Python hängen.

    PS: Bitte mal testen, ob die Version aus dem DEV jetzt geht..

    Update: ich habe gerade noch die aktuellste readme in den DEV gepackt. Dort sind jetzt die Item-Erweiterungen für den Monitor enthalten.
    Zuletzt geändert von psilo; 07.04.2016, 08:47.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Bug behoben. Ich schaue mir jetzt das von Markov an und committe vermutlich morgen in develop.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hatte einen fiesen Bug in den gettern / settern der Authentifizierung. Kein Plan warum bei mir trotzdem alles lief. Nach Fixen des Bugs hagelt es nun neue Fehler. Bitte erstmal den Test on Hold, bis ich eine neue Version liefere!!!

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hmm bei mir ist requests (2.8.1) drauf.. Nutze aber auch nicht das Standard-Image. Man müsste mal schauen, wie man diese Warning mit einem älteren Requests rauskriegt. Muss mal die Woche noch ein Debian-Image aufsetzen.

    Wobei ich sehe, Du hast jetzt 2.9.1 drauf.. hmmm

    Auf dem Raspi gibt es wohl einige mit dem Problem: https://github.com/diraimondo/gmusicproxy/issues/35

    Ich muss mal schauen, ob man die Warning die ohne das include und die Zeile die darauf aufbaut kommt, anderweitig wegbekommt.. Er schiebt halt warnings ins log, dass man ohne "verify" gegen ein HTTPS geht..Theoretisch kannst Du das include und diese Zeile auskommentieren:
    Code:
            if not self._verify:
                requests.packages.urllib3.disable_warnings()
    Es gibt wohl auch alternative Methoden wie

    Code:
    with warnings.catch_warnings():
      warnings.filterwarnings("ignore", message=".*InsecurePlatformWarning.*")
    Ich schaue morgen mal, ob das irgendwie anders geht. Vielleicht hat auch jemand Ideen oder möchte - wenn er das Problem hat - selber mal experimentieren.
    Zuletzt geändert von psilo; 05.04.2016, 18:14.

    Einen Kommentar schreiben:


  • Marcov
    antwortet
    so, wollte es mal testen, erhalte aber einen Fehler:

    PHP-Code:
    2016-04-05 17:46:19 ERROR    Main         Plugin fb1 exceptioncannot import name 'InsecureRequestWarning'
    Traceback (most recent call last):
      
    File "/usr/local/smarthome/lib/plugin.py"line 53in __init__
        plugin_thread 
    Plugin(smarthomepluginclassnameclasspathargs)
      
    File "/usr/local/smarthome/lib/plugin.py"line 81in __init__
        exec
    ("import {0}".format(classpath))
      
    File "<string>"line 1in <module>
      
    File "/usr/local/smarthome/plugins/avm/__init__.py"line 41in <module>
        
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    ImportError
    cannot import name 'InsecureRequestWarning' 
    habe mal requests upgedated:

    PHP-Code:
    pip install requests --upgrade
    Collecting requests
      Downloading requests
    -2.9.1-py2.py3-none-any.whl (501kB)
        
    100% |████████████████████████████████501kB 218kB/s
    Installing collected packages
    requests
      Found existing installation
    requests 2.4.3
        Uninstalling requests
    -2.4.3:
          
    Successfully uninstalled requests-2.4.3
    Successfully installed requests
    -2.9.1 
    Fehlermeldung bleibt aber leider bestehen...

    habe Zeile 41 mal auskommentiert, läuft aber auch dann nicht:

    PHP-Code:
    2016-04-05 19:23:59,423 DEBUG    avm_fritzbox_1 "POST /upnp/control/x_myfritz HTTP/1.1" 200 401 -- connectionpool.py:_make_request:362
    2016
    -04-05 19:23:59,437 DEBUG    avm_fritzbox_1 Accessing TAM reponse cache for action GetInfo! -- __init__.py:_update_tam:902
    2016
    -04-05 19:23:59,441 ERROR    avm_fritzbox_1 Method avm_fritzbox_1 exception'ExpatError' object has no attribute 'strerror' -- scheduler.py:_task:362
    Traceback 
    (most recent call last):
      
    File "/usr/local/smarthome/plugins/avm/__init__.py"line 905in _update_tam
        xml 
    minidom.parseString(self._response_cache["tam_"+action])
      
    File "/usr/lib/python3.4/xml/dom/minidom.py"line 1970in parseString
        
    return expatbuilder.parseString(string)
      
    File "/usr/lib/python3.4/xml/dom/expatbuilder.py"line 925in parseString
        
    return builder.parseString(string)
      
    File "/usr/lib/python3.4/xml/dom/expatbuilder.py"line 223in parseString
        parser
    .Parse(stringTrue)
    xml.parsers.expat.ExpatErrormismatched tagline 1column 174

    During handling of the above exception
    another exception occurred:

    Traceback (most recent call last):
      
    File "/usr/local/smarthome/lib/scheduler.py"line 358in _task
        obj
    ()
      
    File "/usr/local/smarthome/plugins/avm/__init__.py"line 394in _update_loop
        self
    ._update_tam(item)
      
    File "/usr/local/smarthome/plugins/avm/__init__.py"line 907in _update_tam
        logger
    .error("Exception when parsing response: %s" e.strerror)
    AttributeError'ExpatError' object has no attribute 'strerror' 
    Zuletzt geändert von Marcov; 05.04.2016, 18:31.

    Einen Kommentar schreiben:

Lädt...
X