Ankündigung

Einklappen
Keine Ankündigung bisher.

AVM Plugin

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

  • psilo
    antwortet
    bruepe mach mal eine Logik und teste:
    logger.error(sh.fritzbox_7590.is_host_active('<MAC ADDRESS>')

    Alternativ in der Kommandozeile checken, was die Fritzbox roh zurückgibt - Daten natürlich anpassen:
    Code:
    curl --anyauth -u "<USER>":"<PASSWORD>" "https://fritz.box:49443/upnp/control/hosts" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:Hosts:1#GetSpecificHostEntry" -d "<?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:GetSpecificHostEntry xmlns:u='urn:dslforum-org:service:Hosts:1'><s:NewMACAddress>XX:XX:XX:XX:XX:XX</s:NewMACAddress></u:GetSpecificHostEntry></s:Body></s:Envelope>" -s -k
    Der CURL ist jetzt auch im README bei der Funktion ergänzt...
    Zuletzt geändert von psilo; 17.01.2018, 08:32.

    Einen Kommentar schreiben:


  • bruepe
    antwortet
    Servus zusammen,

    ich habe das Problem dass das Plugin mir für ein iPhone hervorragende Daten liefert, aber für ein anderes nicht. MAC-Adressen stimmen, items sind ansonsten identisch. In der fritz Oberfläche werden beide Handys korrekt als angemeldet angezeigt, nur eben in den items nicht. Hat irgendjemand noch eine Idee, was das sein könnte?

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Ok, dann kann ich das aus den Items wieder entfernen.
    Dann passt die Doku.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Das was bei schuma fehlte, war der instance: fritzbox_1 Eintrag in der plugin.yaml. Oder alternativ: Wenn nur eine Instanz des AVM Plugin genutzt werden soll, das weglassen von @fritzbox_1 in den Items.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    psilo undschuma Um die Verwirrung aufzulösen. In den Items stand bei mir noch der Eintrag avm_identifier . Der Eintrag war früher (April 2016) nötig, als es das allgemeine Multiinstance Handling in SmartHomeNG noch nicht gab. Danach ist das AVM Plugin umgebaut worden auf das allgemeine Multiinstance Handling (instance: <instance> in der plugin.yaml und @<instance> in der item.yaml).

    Einen Kommentar schreiben:


  • psilo
    antwortet
    schuma wenn ihr mir sagt, wo im readme etwas fehlt, dann update ich das gerne. das beispiel im README sollte aber vollständig sein. Ging es da um den avm_data_type? oder das @<instancename>??? Einen avm_identifier hat das Plugin nicht.

    zum allgemeinen MultiInstance-Handling via SmartPlugin finde ich in der neuen Doku aber in der Tat nichts.. ich x-checke das mal mit Msinn . wenn es da ist, sollte es besser verlinkt / sichtbar sein.

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Und der fehlende Eintrag in den Items, laut Martin.
    Kann ja aber sein, dass das gar nicht benötigt wird. Ich habe das jetzt einfach mal so umgesetzt wie Martin das beschrieben hat.

    Hat jetzt auf jeden Fall funktioniert.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    schuma das gesamte beispiel zieht das avm_data_type bzw das @<instancename> durch. oder fehlt da was?

    Dein fehler war aber doch das fehlende "instance" im plugin?

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Das in jedem Item ein avm_identifier stehen muss, habe ich aber in den Beispielen nicht gefunden.
    Oder braucht es das jetzt nicht?

    Einen Kommentar schreiben:


  • psilo
    antwortet
    schuma das steht seit anbeginn der zeit RICHTIG in den beispielen im readme https://github.com/smarthomeNG/plugi.../avm/README.md

    das ist die standard MI Fähigkeit des SmartPlugins. ich kann nicht auf jeden lese/copy and paste fehler hinweisen

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Du musst also instance in der plugin.yaml definieren und avm_identifier in der item.yaml
    So funktioniert es!
    Bohh 6 Stunden probiert getestet etc...
    psilo das sollte aber unbedingt so in die Doku Read.me Beispiele etc.


    Vielen Dank Martin!

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ok,

    bei mir sieht das etwas anders aus:
    in der etc/plugin.yaml ist der avm_identifier nicht angegeben, der gehört in jedes Item, damit das Item der Plugin Instanz zugeordnet werden kann (wichtig bei mehreren Fritzboxen, wie bei mir). Stattdessen (da ich mehrere Boxen habe ein muss) ist der parameter instance angegeben.

    Code:
    fritzbox1:
        plugin_name: avm
    #    class_name: AVM
    #    class_path: plugins.avm
        password: <geheim>
        host: 10.0.0.4
        port: 49443
        cycle: 300
        ssl: true    # use https or not
        verify: false    # verify ssl certificate
        call_monitor: 'True'
        instance: willy_tel
    In den Items sieht das bai mir so aus:

    Code:
            uptime_wt:
                type: num
                visu_acl: ro
                avm_data_type@willy_tel: uptime
                avm_identifier: willy_tel
    Du musst also instance in der plugin.yaml definieren und avm_identifier in der item.yaml

    Einen Kommentar schreiben:


  • psilo
    antwortet
    schuma hast du mal den minimalansatz probiert? also erstmal nur ein item reinkopieren und das beobachten?

    Du kannst in Blöcken wie
    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)
                xml = minidom.parseString(response.content)
            except Exception as e:
                self.logger.error("Exception when sending POST request or parsing response: %s" % str(e))
                return
    auch einfach mal ein self.logger.debug(response.content) vor das xml = ... schreiben.
    Zuletzt geändert von psilo; 27.12.2017, 17:25.

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Also
    Plugin.yaml:

    Code:
    fb1:
        class_name: AVM
        class_path: plugins.avm
        username: user    # optional
        password: pass
        host: '192.168.178.1'
        port: 49443
        cycle: 300
        ssl: True    # use https or not
        verify: False    # verify ssl certificate
        call_monitor: 'True'
        # call_monitor_incoming_filter: "...    ## optional, don't set if you don't want to watch only one specific number with your call monitor"
        avm_identifier: fritzbox_1
    Items:

    Code:
    avm:
    
        uptime_7490:
            type: num
            visu_acl: ro
            avm_data_type@fritzbox_1: uptime
    
        serial_number_7490:
            type: str
            visu_acl: ro
            avm_data_type@fritzbox_1: serial_number
    
        firmware_7490:
            type: str
            visu_acl: ro
            avm_data_type@fritzbox_1: software_version
    
        hardware_version_7490:
            type: str
            visu_acl: ro
            avm_data_type@fritzbox_1: hardware_version
    
        myfritz:
            type: bool
            avm_data_type@fritzbox_1: myfritz_status
    
        monitor:
    
            trigger:
                type: bool
                avm_data_type@fritzbox_1: monitor_trigger
                avm_incoming_allowed: xxxxxxxx
                avm_target_number: xxxxxxxx
                enforce_updates: 'yes'
    
            trigger2:
                type: bool
                avm_data_type@fritzbox_1: monitor_trigger
                avm_incoming_allowed: xxxxxxxx
                avm_target_number: xxxxxxxx
                enforce_updates: 'yes'
    
            trigger3:
                type: bool
                avm_data_type@fritzbox_1: monitor_trigger
                avm_incoming_allowed: xxxxxxxx
                avm_target_number: xxxxxxxx
                enforce_updates: 'yes'
    
            trigger4:
                type: bool
                avm_data_type@fritzbox_1: monitor_trigger
                avm_incoming_allowed: xxxxxxxx
                avm_target_number: xxxxxxxx
                enforce_updates: 'yes'
    
            incoming:
    
                is_call_incoming:
                    type: bool
                    avm_data_type@fritzbox_1: is_call_incoming
    
                duration:
                    type: num
                    avm_data_type@fritzbox_1: call_duration_incoming
    
                last_caller:
                    type: str
                    avm_data_type@fritzbox_1: last_caller_incoming
    
                last_calling_number:
                    type: str
                    avm_data_type@fritzbox_1: last_number_incoming
    
                last_called_number:
                    type: str
                    avm_data_type@fritzbox_1: last_called_number_incoming
    
                last_call_date:
                    type: str
                    avm_data_type@fritzbox_1: last_call_date_incoming
    
                event:
                    type: str
                    avm_data_type@fritzbox_1: call_event_incoming
    
            outgoing:
    
                is_call_outgoing:
                    type: bool
                    avm_data_type@fritzbox_1: is_call_outgoing
    
                duration:
                    type: num
                    avm_data_type@fritzbox_1: call_duration_outgoing
    
                last_caller:
                    type: str
                    avm_data_type@fritzbox_1: last_caller_outgoing
    
                last_calling_number:
                    type: str
                    avm_data_type@fritzbox_1: last_number_outgoing
    
                last_called_number:
                    type: str
                    avm_data_type@fritzbox_1: last_called_number_outgoing
    
                last_call_date:
                    type: str
                    avm_data_type@fritzbox_1: last_call_date_outgoing
    
                event:
                    type: str
                    avm_data_type@fritzbox_1: call_event_outgoing
    
            newest:
    
                direction:
                    type: str
                    avm_data_type@fritzbox_1: call_direction
                    cache: 'yes'
    
                event:
                    type: str
                    avm_data_type@fritzbox_1: call_event
                    cache: 'yes'
    
        tam:
            index: 1
            type: bool
            visu_acl: rw
            avm_data_type@fritzbox_1: tam
    
            name:
                type: str
                visu_acl: ro
                avm_data_type@fritzbox_1: tam_name
    
            message_number_old:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: tam_old_message_number
                eval: (sh.avm.tam.message_number_total()-sh.avm.tam.message_number_new())
                eval_trigger:
                  - avm.tam.message_number_total
                  - avm.tam.message_number_new
    
            message_number_new:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: tam_new_message_number
    
            message_number_total:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: tam_total_message_number
    
        wan:
    
            connection_status:
                type: str
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_connection_status
    
            connection_error:
                type: str
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_connection_error
    
            is_connected:
                type: bool
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_is_connected
    
            uptime:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_uptime
    
            ip:
                type: str
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_ip
    
            upstream:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_upstream
    
            downstream:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_downstream
    
            total_packets_sent:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_total_packets_sent
    
            total_packets_received:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_total_packets_received
    
            current_packets_sent:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_current_packets_sent
    
            current_packets_received:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_current_packets_received
    
            total_bytes_sent:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_total_bytes_sent
    
            total_bytes_received:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_total_bytes_received
    
            current_bytes_sent:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_current_bytes_sent
    
            current_bytes_received:
                type: num
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_current_bytes_received
    
            link:
                type: bool
                visu_acl: ro
                avm_data_type@fritzbox_1: wan_link
    
        wlan:
    
            gf_wlan_1:
                type: bool
                visu_acl: rw
                avm_data_type@fritzbox_1: wlanconfig    # 2,4ghz
                avm_wlan_index: 1
    
            gf_wlan_1_ssid:
                type: str
                visu_acl: ro
                avm_data_type@fritzbox_1: wlanconfig_ssid    # 2,4ghz
                avm_wlan_index: 1
    
            gf_wlan_2:
                type: bool
                visu_acl: rw
                avm_data_type@fritzbox_1: wlanconfig    # 5 GHz
                avm_wlan_index: 2
    
            gf_wlan_3:
                type: bool
                visu_acl: rw
                avm_data_type@fritzbox_1: wlanconfig    # Guest
                avm_wlan_index: 3
    
            gf_wlan_3_ssid:
                type: str
                visu_acl: ro
                avm_data_type@fritzbox_1: wlanconfig_ssid    # 2,4ghz
                avm_wlan_index: 3
    
            gf_wlan_3_tr:
                type: num
                visu_acl: rw
                avm_data_type@fritzbox_1: wlan_guest_time_remaining    # Guest
                avm_wlan_index: 3
    
        devices:
    
            fritzbox_KG:
    
                iphone_2:
                    mac: 60:F4:45:BF:13:45
                    avm_data_type@fritzbox_1: network_device
                    type: bool
                    visu_acl: ro
    
                    # these items need to be child items from network_device, an @... must not be set
                    ip:
                        type: str
                        avm_data_type: device_ip
                        visu_acl: ro
    
                    # these items need to be child items from network_device, an @... must not be set
                    connection_type:
                        type: str
                        avm_data_type: device_connection_type
                        visu_acl: ro
    
                    # these items need to be child items from network_device, an @... must not be set
                    hostname:
                        type: str
                        avm_data_type: device_hostname
                        visu_acl: ro
    
                iphone_1:
                    mac: B4:8B:19:DD:23:8B
                    avm_data_type@fritzbox_1: network_device
                    type: bool
                    visu_acl: ro
    
                    # these items need to be child items from network_device, an @... must not be set
                    ip:
                        type: str
                        avm_data_type: device_ip
                        visu_acl: ro
    
                    # these items need to be child items from network_device, an @... must not be set
                    connection_type:
                        type: str
                        avm_data_type: device_connection_type
                        visu_acl: ro
    
                    # these items need to be child items from network_device, an @... must not be set
                    hostname:
                        type: str
                        avm_data_type: device_hostname
                        visu_acl: ro
        dect:
    
            socket_3D_Drucker:
                type: bool
                avm_data_type@fritzbox_1: aha_device
                ain: 08761 0044245    # has to be identical to id in fritzbox (also with spaces!)
                visu_acl: rw
    
                # these items need to be child items from aha_device, an @... must not be set
                energy:
                    avm_data_type: energy
                    type: num
                    visu_acl: ro

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Dann fang mal an mit Infos rauszurücken, damit wir einen Ansatzpunkt zum helfen haben:
    • etc/plugin.yaml (zumindest die Abschnitte in denen Du AVM Instanzen des Plugins konfigurierst
    • items/*.yaml (zumindest die Teile in denen Du Items für AVM Komponenten definierst.
    Dann kann ich mal schauen ob ich Dein Problem finde.

    Einen Kommentar schreiben:

Lädt...
X