Ankündigung

Einklappen
Keine Ankündigung bisher.

AVM Plugin

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

  • kingolli
    antwortet
    Zitat von psilo Beitrag anzeigen
    Ich schaue mir mal heute abend an ob ich das merge. Bin nicht sicher ob ich die Items dazu direkt oder via der Funktion befülle. Via Item funktioniert das Feature definitiv, da ich es bereits aktiv bspw. zur Torsteuerung nutze. Bitte auch noch Angabe welche FB und welches OS.
    Genau das war mein Problem, ein per Logic angetriggerts "sh.fb1._update_loop()" brachte das richtige Ergebnis, "is_host_active" brachte -wie gesagt- was anderes. Und wenn du schon mal dabei bist, könntest du mir mal ein Beispiel für "_update_host" posten, das hab ich nämlich nicht hinbekommen, Fehler war immer "Item ... hat kein Element conf" oder so ähnlich.

    Fritzbox ist eine 7490 mit FritzOS 6.51

    Zitat von psilo Beitrag anzeigen
    Danke schonmal für die Auseinandersetzung mit dem Thema ist nicht selbstverständlich gleich den Fix zu liefern!
    Danke, gerne.

    Grüße
    Peter

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich schaue mir mal heute abend an ob ich das merge. Bin nicht sicher ob ich die Items dazu direkt oder via der Funktion befülle. Via Item funktioniert das Feature definitiv, da ich es bereits aktiv bspw. zur Torsteuerung nutze. Bitte auch noch Angabe welche FB und welches OS.

    Danke schonmal für die Auseinandersetzung mit dem Thema ist nicht selbstverständlich gleich den Fix zu liefern!

    Einen Kommentar schreiben:


  • kingolli
    antwortet
    Hallo!

    Ich hatte da noch ein Problem bei der Abfrage "is_host_active", da kam immer True, auch wennn der Host in der Fritzbox nicht angemeldet war. Das habe ich (im Rahmen meiner Möglichkeiten) gefixt:

    __init__.py Zeile 1002
    Code:
                [COLOR=#333333][FONT=Consolas][SIZE=12px]is_active [/SIZE][/FONT][/COLOR][COLOR=#A71D5D][FONT=Consolas][SIZE=12px]=[/SIZE][/FONT][/COLOR][COLOR=#333333][FONT=Consolas][SIZE=12px] tag_content[[/SIZE][/FONT][/COLOR][COLOR=#0086B3][FONT=Consolas][SIZE=12px]0[/SIZE][/FONT][/COLOR][COLOR=#333333][FONT=Consolas][SIZE=12px]].firstChild.data[/SIZE][/FONT][/COLOR]
    ersetzt durch
    Code:
                if (tag_content[0].firstChild.data == "1"):
                    is_active = True
                else:
                    is_active = False
    Vielleicht kann das jemand ins Plugin übernehmen oder anpassen.

    Grüße
    Peter

    Einen Kommentar schreiben:


  • psilo
    antwortet
    naja mit fix sollten items ohne avm data type jetzt auch nicht mehr wehtun..

    lade bitte trotzdem mal die neuste version aus dem dev. habe am wochenende viel umgebaut

    Einen Kommentar schreiben:


  • OsLee540i
    antwortet
    Zitat von psilo Beitrag anzeigen
    Bau mal den try - catch block in der _update_home_automation so um und schau was der logger in der neuen Zeile rausloggt. CURL geht bei mir nciht, weil der Service authentisierung braucht und ich will da jetzt nicht ewig rummachen..

    Code:
    try:
    response= self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify)
    
    self.logger.debug(response.content)
    
    xml = minidom.parseString(response.content)
    except Exception as e:
    self.logger.error("Exception when sending POST request or parsing response: %s" % str(e))
    return
    Der NewSwitchState ist eine Standardantwort des GetSpecificDeviceInfos (http://avm.de/fileadmin/user_upload/...x_homeauto.pdf), das hat nichts mit Deinem Gerät zu tun.Aus meiner Sicht gibt es gerade Probleme auf Dein Childitem zuzugreifen, ich bin nur nicht sicher warum. Hast Du ein weiteres Child ohne avm_data_type???


    AAAAHH das Childitem wars.

    ich hab noch 2 childitems zum Testen drin gehabt hatte alles rausgeschmissen, also nur noch

    HTML-Code:
       [[[[TemperaturIst]]]]
            type = num
            visu_acl = rw
            name = Badtemp
    an die hatte ich jetzt überhaupt nicht gedacht.

    Merci vielmals

    Gruß Woli

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich stelle gerade noch nen fix mit einem "if 'avm_data_type' in child.conf:" rein. Evtl fixt das dein Problem, den Codezeilen nach hattest Du sowieso nicht die neuste Version aus dem DEV.. Zieh Dir die mal..

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Bau mal den try - catch block in der _update_home_automation so um und schau was der logger in der neuen Zeile rausloggt. CURL geht bei mir nciht, weil der Service authentisierung braucht und ich will da jetzt nicht ewig rummachen..

    Code:
            try:
                response= self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify)
    
                self.logger.debug(response.content)
    
                xml = minidom.parseString(response.content)
            except Exception as e:            
                self.logger.error("Exception when sending POST request or parsing response: %s" % str(e))
                return
    Der NewSwitchState ist eine Standardantwort des GetSpecificDeviceInfos (http://avm.de/fileadmin/user_upload/...x_homeauto.pdf), das hat nichts mit Deinem Gerät zu tun.Aus meiner Sicht gibt es gerade Probleme auf Dein Childitem zuzugreifen, ich bin nur nicht sicher warum. Hast Du ein weiteres Child ohne avm_data_type???
    Zuletzt geändert von psilo; 27.04.2016, 19:00.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich versuche es gerade mal nachzuvollziehen. Ansich sind das Standardwerte aus der TR-064 API. Was Du immer tun könntest ist mal gegen den GetSpecificDeviceInfos direkt mit einem CURL gehen.

    Einen Kommentar schreiben:


  • OsLee540i
    antwortet
    Servus,
    ich habe heute erfolgreich vom Fritzbox 2.0 aufs AVM Plugin gewechselt.
    Erstmal Respekt für deine klasse Arbeit!!!
    Das meisste funktioniert auf Anhieb.
    Bei mir funktioniert jetzt sogar das Call, das hat mit dem Fritzbox Plugin bei mir nie hingehaun.

    Bei den Fritz Dect 200 Steckdosen hatte ich aber ein paar Probleme mit der Umstellung.
    Hauptsächlich weil meine Items für die Temperatur meistens nicht als Childitem von den Steckdosen selber waren.

    Nachdem ich jetzt alles ein bisserl umgeschmissen hab, häng ich nur noch bei einem einzigen Problem.

    Ich habe noch einen Cometdect Stellantrieb bei mir im Bad hängen, bei dem habe ich mit dem Fritzbox2.0 einfach die AIN und Fritzbox = temperatur eingebaut, und dann hat er zumindest auch die Temperatur ohne zu motzen ausgelesen.

    Beim AVM Plugin bekomme ich da aber Probleme

    Wenn ich:

    HTML-Code:
     [[Bad]]
            name = Bad
            sv_page = room
            sv_img = scene_hall.svg    
            
            [[[Heizung]]]
            name = Heizung 
            type = bool
            avm_data_type = aha_device
            avm_identifier = fritzbox_1    
            ain = 10971 0348880
            
            [[[[TemperaturMess]]]]
            type = num
            visu_acl = rw
            name = Badtemp 
            avm_data_type = temperature
            eval = value / 10
    nehme,

    bekomme ich folgende Meldung im Debug:
    HTML-Code:
    2016-04-27 17:49:45,141 ERROR    plugins.avm_fritzbox_1 Method plugins.avm_fritzbox_1 exception: 'avm_data_type' -- scheduler.py:_task:362
    Traceback (most recent call last):
      File "/usr/smarthome/lib/scheduler.py", line 358, in _task
        obj()
      File "/usr/smarthome/plugins/avm/__init__.py", line 529, in _update_loop
        self._update_home_automation(item)
      File "/usr/smarthome/plugins/avm/__init__.py", line 1089, in _update_home_automation
        if child.conf['avm_data_type'] == 'temperature':
    KeyError: 'avm_data_type'

    Es wird die Temperatur angezeigt, ABER der Status der Steckdosen wird nicht mehr aktualisiert.

    Stell ich die AIN bei TemperaturMess rein, bekomm ich keine Fehlermeldung, ABER auch keine Temperatur.

    Ich schätzte mal das hängt mit dem
    PHP-Code:
    if item.conf['avm_data_type'] == 'aha_device':
                
    element_xml xml.getElementsByTagName('NewSwitchState'
    zusammen da das Cometdect ja kein Fritz Switch ist.

    Wie ich das beheben könnte entzieht sich leider meinen bescheidenen Python Kenntnissen.


    Vielleicht kann mir jemand helfen.

    Vielen Dank schonmal.

    Gruß Wolfi

    Einen Kommentar schreiben:


  • psilo
    antwortet
    @McTao: danke! fokus insbes. auf den CallMonitor und die Threadentwicklung über die Zeit legen bitte. Da sehe ich am meisten Buggefahr...

    Und wenn jemand die neue WOL Funktion mal testen könnte wäre super, bei mir zu wenig Hardware hier zum vernünftig testen.

    Einen Kommentar schreiben:


  • McTao
    antwortet
    Hallo

    Zitat von psilo Beitrag anzeigen
    Kann es sein, dass es bei Dir auch eine Itemhierarchie mit [avm] gibt?
    Danke, das war der Fehler.
    Werde das Plugin jetzt mal weiter testen. Bisher macht alles einen super Eindruck.

    Gruss Andreas

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Kann es sein, dass es bei Dir auch eine Itemhierarchie mit [avm] gibt?
    Die Meldung sieht zumindest so aus... SH.py denkt, dass Du nen Itemzugriff machst.

    Am besten halt Plugin umbenennen.

    Einen Kommentar schreiben:


  • McTao
    antwortet
    Hi,

    danke für die Info.

    Jetzt habe ich einfach ein
    sh.avm.set_call_origin("**610") sh.avm.start_call('**620') versucht.

    plugin.conf:
    Code:
    [avm]
        class_name = AVM
        class_path = plugins.avm
        username = NAME # natürlich die aus der Fritzbox
        password = PW
        host = 192.168.XXX.XXX
        port = 49443
        cycle = 300
        ssl = True     # use https or not
        verify = False # verify ssl certificate
        call_monitor = True
        avm_identifier = avm7490
    Bekomme aber: Exception: 'Item' object has no attribute 'set_call_origin'

    Was mache ich noch falsch?

    Gruss Andreas

    Einen Kommentar schreiben:


  • psilo
    antwortet
    ahas sind avm home automation devices. also bspw dect steckdosen. nicht aber dect telefone. steckdosen haben immer diese lange id. mit anderen ahas wie thermostaten habe ich es mangels geraeten nicht testen können.

    die dinger laufen unter heimnetz - smarthome und die id heisst aktor identifikationsnummer (ain)
    Zuletzt geändert von psilo; 26.04.2016, 18:51.

    Einen Kommentar schreiben:


  • McTao
    antwortet
    Hi,
    habe das Plugin jetzt mal eingebaut. Komme aber mit der ID der Dect-Telefone nicht klar.
    Bei mir heißt das Telefon zB Schlafzimmer.
    Wenn ich das in die Konfig schreibe, bekomme ich:
    Attribute aha_device not available on the FritzDevice

    Gleicher Fehler, wenn ich die ID aus DECT-Monitor nehme.

    Der ganze Rest der Konfiguration geht. Ich habe eine Fritzbox 7490 mit FRITZ!OS: 06.51

    Gibt es dort das Attribute nicht?

    Gruss Andreas

    Einen Kommentar schreiben:

Lädt...
X