Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Weitere Attribute für Items?

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

    [Featurewunsch] - √ - Weitere Attribute für Items?

    Hallo,

    ich könnte da noch was gebrauchen:
    Wäre es möglich einem Item n Attribute mitzugeben?
    Beispiel:
    Fensterkontakt Wohnzimmer:
    würde die Attribute Alarm_intern und Alarm_extern bekommen.

    So könnte ich in meiner Logik einfach berücksichtigen ob dieses Objekt für den jeweiligen Alarmtyp relevant ist.

    Umsetzung:
    Durch die mögliche Verschachtelung in den Items könnte dies wie folgt abgebildet werden.
    items.conf
    Code:
    [fk]
        [[wohnzimmer]]
            type       = bool
            knx_dpt    = 1
            knx_listen = 1/1/1
            knx_init   = 1/1/1
            [[[intern]]]
            [[[extern]]]
    Damit ich die diese Attritbute nun noch auf einfach auf Existens abprüfen kann müsste ich smarthome.py um folgende Zeilen erweitern:
    Code:
        def item_exisits(self, string):
            if string in self.__items:
                return True
            else:
                return False
    Marcus, was hältst du von dieser Idee?

    Bin auch gerne für Alternativen offen

    LG

    Mode

    PS: Sieh an, ein Item von mir ohne enforce

    #2
    Hi,

    wir müssen an der Kommunikation arbeiten. Irgendwie sehe ich nicht was Du möchtest.

    Um die Existens eines Items zu prüfen kannst Du
    Code:
    if sh.return_item('foo.bar') is None:
      print 'existiert nicht'
    ausführen.

    Ein Attribut ist in Deinem Beispiel knx_dpt.

    EDIT: Und Du kannst beliebigen Attribute angeben.

    Ich habe eine Methode für meine Plugins eingeführt: find_children(parent, conf) mit der man nach Attributen von Kinder-Items suchen kann.

    Code:
    for child in sh.find_children(sh.mein.item, 'knx_dpt'):
        print child.id()
    Die ist noch nicht offizielle released und evtl. bennene ich sie noch vor dem nächsten Release um.

    Bis bald

    Marcus

    Kommentar


      #3
      Hi,

      wie komme ich denn zB an den Wert von knx_dpt eines Items?
      Das ist eingentlich das einzige was ich wissen wollte.

      EDIT:
      Code:
      sh.fk.wc.conf['extern'])

      did the Job!

      Mir war einfach nicht bewusst dass alle weiteren Attribute im array .conf[] zu finden sind. Hab ich in der items.py gefunden.
      Damit wäre das Thema auch erledigt :-)



      VG

      Mode

      Kommentar


        #4
        Arg, dieses Python treibt mich in den Wahnsinn. Ich erkenne nie welcher Datentyp jetzt in einer Variable ist.
        Kann man das irgendwie komfortabel debuggen?

        Mit
        Code:
        for alarm_items in sh.find_items('alarm_ext'):
        findet er mir nun alle Items die das Attribut alarm_ext besitzen.
        Was ist in alarm_items drin? Nur ein String? Bräuchte ich nicht eher ein Objekt um auf den Wert des Attributs zuzugreifen?
        Wie kann ich jetzt am einfachsten abfragen welcher Wert alarm_ext zugewiesen ist?

        EDIT:
        Lösung, so gehts:
        Code:
        # Alle Objekte, die Alarm_ext als Attribut mit Wert 1 haben
            for alarm_ext in sh.find_items('alarm_ext'):
                if alarm_ext.conf['alarm_ext'] == '1':
                    wert = alarm_ext()
        Eigentlich ganz einfach :-)



        VG
        Mode

        Kommentar

        Lädt...
        X