Ankündigung

Einklappen
Keine Ankündigung bisher.

AVM Plugin

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

  • psilo
    antwortet
    Das AVM Plugin ist im DEV nun auf das neue Multinstanz-System von smarthomeNG umgestellt. Bitte Änderungen an Items / Plugin, die in der README dokumentiert sind, beachten.

    PS: zudem am Rande interessant http://www.heise.de/newsticker/meldu...r-3221613.html
    Zuletzt geändert von psilo; 30.05.2016, 06:27.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    also folgendes geht DEFINITIV:

    Code:
            [[[trigger1]]]
                type = bool
                avm_identifier = fritzbox_1
                avm_data_type = monitor_trigger
                avm_incoming_allowed = xxx
                avm_target_number = xxx3
                enforce_updates = yes
            [[[trigger2]]]
                type = bool
                avm_identifier = fritzbox_1
                avm_data_type = monitor_trigger
                avm_incoming_allowed = xxx
                avm_target_number = xxx2
                enforce_updates = yes
    Code:
    [PhoneCallLogic]
        filename = phone_call.py
        watch_item = avm.monitor.trigger1 | avm.monitor.trigger2
    Code:
    if sh.avm.monitor.trigger1():
        sh.office.light(1)
    if sh.avm.monitor.trigger2():
        sh.office.light(0)
    Das sollte doch genau das sein, was Du möchtest?
    Ein Nummernpaar zum Ausschalten, eines zum Einschalten.

    x-fach reproduzierbar, so lange ich nach dem "ein" den "aus" Anruf auf die 2er Nummer mache - oder halt das Licht anderweitig ausschalte und wieder den "ein" Anruf auf die 3er Nummer mache.

    und wie gesagt der Code aus dem Plugin ist eindeutig:
    erst ein trigger_item(0), dann ein trigger_item(1). und das bei jedem neuen "RING" Event das auf die Nummern matched. Dadurch "feuert" die 1 wenn Du das trigger item watched auch jedesmal.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    also bei mir geht es schon reproduzierbar wenn ich: anruf (licht an), schalter (licht aus), anruf (licht an) usw mache. daher verstehe ich das problem ehrlich gesagt nicht. bei sandman das gleiche (korrekte) verhalten. log halt mal raus was passiert. ich teste jetzt noch mit 2 nummern

    Einen Kommentar schreiben:


  • SwenS
    antwortet
    Zitat von psilo Beitrag anzeigen
    Also es sind immer beide zu setzen. eigentlich dürfte es ohne avm_incoming_allowed gar nicht gehen..
    Code:
    # process "trigger items"
    for trigger_item in self._trigger_items:
    trigger_item(0)
    if trigger_item.conf['avm_data_type'] == 'monitor_trigger':
    if trigger_item.conf['avm_incoming_allowed'] == call_from and trigger_item.conf['avm_target_number'] == call_to:
    trigger_item(1)
    Hallo,
    ich hatte bei mir das avm_incoming_allowed raus genommen da ich sonst 10 Rufnummer n für Tor Auf und 10 für Tor Zu vergeben müsste (1 Tor 4 Wohnungen).
    Es hat ja soweit funktioniert aber halt nur beim ersten Anruf danach wurde der Trigger nie zurück gesetzt. Erst nach SmartHome restart war er wieder auf Null.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich habe gerade eine neue Version gepusht, die bei trigger items mit nur einem oder keinem der attribute einen Error rausloggen sollte. bitte mal testen!

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Also es sind immer beide zu setzen. eigentlich dürfte es ohne avm_incoming_allowed gar nicht gehen..
    Code:
                # process "trigger items"
                for trigger_item in self._trigger_items:
                    trigger_item(0)
                    if trigger_item.conf['avm_data_type'] == 'monitor_trigger':
                        if trigger_item.conf['avm_incoming_allowed'] == call_from and trigger_item.conf['avm_target_number'] == call_to:
                            trigger_item(1)

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Mehrfacher Aufruf ist schon angedacht. Verstehe ich das richtig, dass Du je nach Zielnummer Tor auf oder Tor zu machen willst?

    Wo ich unsicher bin ist, ob der Trigger ohne Angabe einer Source Number geht. Ich hatte das eigentlich so gebaut, dass man Source UND Target setzen muss. Alles andere ist untested

    also die beiden:
    Code:
    avm_incoming_allowed = ...
    avm_target_number = ...

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hmm, ich glaub jetzt dämmerts mir, muß aber psilo was dazu sagen... Bin mir nicht sicher ob die mehrfache Verwendung von monitor_trigger vorgesehen ist, auch wenn es unterschiedliche "avm_target_number" gibt....

    Einen Kommentar schreiben:


  • SwenS
    antwortet
    die Logik hab ich zum Test so:

    Code:
    if sh.fb1.monitor.trigger1() or sh.tor.auf():
    logger.warning("TOR AUF") #nur Test
    sh.tor.auf ('on')
    beim ersten Anruf (Tor Auf) geht es
    jeden weiterer (Tor ZU) nicht mehr.

    Ich lass mir die Trigger in der Visu anzeigen, nach dem erste Anruf geht der Trigger nicht mehr auf false...

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Ohne es geprüft zu haben... Kannst Du mal in die Logik zu Beginn ein
    Code:
    if trigger ['value'] = true
    einbauen?

    Beim Testen hatte ich mal Situationen wo der CallMon ausgelöst hatte (mit einem false) wenn auf einer der anderen Nummern angerufen worden ist. Damit könnte es klappen...

    Einen Kommentar schreiben:


  • SwenS
    antwortet
    mit enforce_updates = yes hab ich dasselbe Problem nur das jetzt die Logik zweimal unmittelbar nach einander aufgerufen wird und das nur beim ersten Call. Bei jeden weiteren passiert nichts.
    Items
    [[[trigger1]]]
    type = bool
    avm_identifier = fritzbox_1
    avm_data_type = monitor_trigger
    avm_target_number = ****16
    enforce_updates = yes
    [[[trigger2]]]
    type = bool
    avm_identifier = fritzbox_1
    avm_data_type = monitor_trigger
    avm_target_number = ****17
    enforce_updates = yes
    Logic aufruf
    [Tor_auf]
    filename = tor_auf.py
    watch_item = fb1.monitor.trigger1 | tor.auf

    [Tor_zu]
    filename = tor_zu.py
    watch_item = fb1.monitor.trigger2 | tor.zu

    Einen Kommentar schreiben:


  • psilo
    antwortet
    ja bitte mit enforce_updates = yes..Die README stimmt da noch nicht. Reset dann siehe Codeauszug:

    Code:
    for trigger_item in self._trigger_items:
        trigger_item(0)
        if trigger_item.conf['avm_data_type'] == 'monitor_trigger':
            if trigger_item.conf['avm_incoming_allowed'] == call_from and trigger_item.conf['avm_target_number'] == call_to:
                trigger_item(1)
    direkt nach der (1) ein (0) senden hat - warum auch immer - bei mir dazu geführt, dass das Item nicht gezogen hat...
    Zuletzt geändert von psilo; 08.05.2016, 05:08.

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Nee, bitte nicht, das hatten wir beim Betatesten schon.dafür gibt es enforce_updates = yes, dann löst es auch mehrfach aus.

    Einen Kommentar schreiben:


  • SwenS
    antwortet
    Zitat von psilo Beitrag anzeigen
    Am Ende vom Wochenende gibts ein neues Feature, sog. Trigger-Items.

    Dort kann man ne Quellrufnummer (bspw. Handy) und eine Zielrufnummer (bspw. 3te VOIP Nummer daheim) definieren. Wenn der CallMonitor einen Call registriert, dann prüft er Quelle und Ziel und bei Match setzt er den bool auf true. Beim nächsten Anruf wird der bool auf false resetted und erneut geprüft...

    Nutze das jetzt um per Call das Tor zu öffnen. Man muss nichtmal zahlen, weil es ja reicht, dass es 1mal klingelt..

    Feature geht bereits und ist aktuell im Test.

    Code:
    [[[trigger]]]
    type = bool
    avm_identifier = fritzbox_1
    avm_data_type = monitor_trigger
    avm_incoming_allowed = xxx
    avm_target_number = xxx

    Hallo,

    ich will das Feature bei mir auch einsetzten.
    Hab alles soweit am laufen, ausser das es nur genau einmal geht und beim nächsten Call geschied nichts.
    Der Bool wird anscheinent nicht resetted.
    Kann der Bool beim Auflegen schon auf FALSE reseted werden.

    Vielen Dank
    S.


    Einen Kommentar schreiben:


  • psilo
    antwortet
    Also erstmal hast Du recht, da die Methode ein bool zurückgibt, habe ich die Prüfung reingenommen.

    das _update_hosts wird ja automatisch aufgerufen und befüllt die Standarditems wie das hier:
    Code:
    [[[iPad]]]
        mac = 96:B9:35:8F:7F:A2
        avm_data_type = network_device
        type = bool
        visu_acl = ro
        avm_identifier = fritzbox_1
        [[[[ip]]]] # no avm_identifier necessary, attributes are parsed via child items
            type = str
            avm_data_type = device_ip
            visu_acl = ro
        [[[[connection_type]]]]
            type = str
            avm_data_type = device_connection_type
            visu_acl = ro
        [[[[hostname]]]]
            type = str
            avm_data_type = device_hostname
            visu_acl = ro
    Zum Direktaufrufen ist die nicht gedacht.

    PS: Bugfix ist im DEV
    Zuletzt geändert von psilo; 04.05.2016, 18:38.

    Einen Kommentar schreiben:

Lädt...
X