Ankündigung

Einklappen
Keine Ankündigung bisher.

item Funktion für optionalen Namen

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

    #16
    Zitat von walldi Beitrag anzeigen
    => warum ???
    Weil diverse Anwender item.id() nicht gefunden haben bzw. dahinter nicht den Pfad vermuteten.

    Die Pfadangabe ist zwar auch eine Form von ID, allerdings nicht das was man sich in der IT gemeinhin darunter vorstellt (einen unveränderlichen Primärschlüssel).
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #17
      ​einen unveränderlichen Primärschlüssel​​​​​​
      Hi Martin,

      Da muss ich dir klar widersprechen! Der vollständige item-Pfad ist ein unveränderlicher Primärschlüssel. Das soll es denn sonst sein?

      Gruß Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #18
        Da muss ich Dir klar widersprechen

        Wenn Du ein Item an eine andere Stelle des Item-Trees verschiebst, würde sie immer noch das selbe Item beschreiben, während sich die Pfadangabe ändert.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #19
          Nee Martin,

          auch wenn Du an ein Verschieben denkst - so ist es nicht. Du löscht das Item (samt seiner Id) an der alten Stelle und fügst es neu (mit neuer Id) an einer anderen Stelle ein. Es ist nicht das selbe Item, sondern ein neues mit gleicher Defninition (außer eben der Id).

          Gegenbeispiel: Wenn ich ein Item mit identischer Definition an der neuen Stelle einfüge, ohne es an der alten zu löschen, würdest Du ja auch nicht von dem selben Item sprechen.

          Aber bevor wir hier weiter das Spiel "Ich hab recht! Nein, Ich!" spielen, möchte ich auf was anderes hinweisen. Falls Du vor hast, eine neue Id einzuführen, also ein entsprechendes Item-Attribut, dann vergib es bitte nicht automatisch, sonder lass es manuell vergeben - zumindest sollte man es auf Wunsch manuell vergeben können. Sinnvoll wäre ja eine solche Id für die Datenbanken, damit man diese Daten nicht verliert, nur weil ein Item einen neuen Pfad bekommt. Eine automatische Id-Vergabe wurde von Marcus in callidomus versucht, inclusive UI-Funktionen wie "verschieben", dies hat aber auch zu Problemen geführt. Da das jetzt sehr OT ist, will ich nicht weiter ins Detail gehen, ich würde eine manuelle Id-Vergabe empfehlen (zumindest optional).

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #20
            Zitat von Msinn Beitrag anzeigen
            Noch ein paar Anmerkungen als Kommentare:

            Code:
            for item in sh.match_items('EG.Wohnzimmer.Fenster3'):
            
            # item() gibt den Item Wert aus, item gibt den Namen/Pfad aus
            logger.warning("Ausgabe von item(): ( {0})".format(item()))
            
            logger.warning("Ausgabe von item.id(): ( {0})".format(item.id()))
            logger.warning("Ausgabe von item: ( {0})".format(item))
            
            # in das conf dictionary werden nur Konfigurationsattribute übernommen, die von der
            # Item Klasse nicht intern verwendet werden.
            # Eine Möglichkeit ohne Exception ist item.conf.get('name', ''), wobei der 2. Parameter ''
            # der Wert ist, der Zurückgeliefert wird, falls es den Key nicht gibt.
            logger.warning("Ausgabe von item.conf['name']: ( {0})".format(item.conf['name']))
            
            # Verstehe ich nicht ganz: Wenn der Wert des Items < 2 ist, wird der Name des Items
            # an eine Liste angehängt die den Namen 'Counter' trägt?
            if item() < 2:
            counter.append(item)
            Hi,

            der Ordnung halber.

            Fenster3 ist nicht wirklich ein Fenster. Sondern ein Sammler für die verschiedenen Status(0=offen, 1=gekippt, 2=geschlossen) pro Fenster. Mit dem Skript sammle ich alle Fenster die nicht geschlossen sind um mir am Abend eine Nachricht zu schicken welche Fenster kontrolliert werden sollten.

            Kommentar

            Lädt...
            X