Structure bleibt immer undefined..

Begonnen von shawly, 27 August 2015, 17:15:55

Vorheriges Thema - Nächstes Thema

shawly

Hi zusammen,

solange ich nur meine Funksteckdosen (sind alles Dummies mit on und off als state) in die Structure mit aufnehme, funktioniert alles, wenn also ein Device an ist, dann ist der State der Structure auch on, also alles richtig.
Jetzt füge ich aber meinen AVR hinzu, welcher das DENON_AVR Module benutzt, dieser schreibt aber in den state stattdessen "opened" oder "disconnected", wenn das Modul eine Verbindung hat, eigentlich ja kein Problem ich muss einfach ein anderes reading auslesen, nämlich power, dieses liefer on oder off zurück.

Mein AVR hat die userattr "device device_map structexclude" (device ist der Type der Structure) und laut FHEM Referenz, muss ich um ein anderes Reading auszulesen, beim AVR <struct_type>_map also in diesem falle beim Attribut device_map "power" eintragen um den wert des Readings "power" auszulesen.

Doch es steht weiterhin einfach undefined in der Strucure... Wenn ich die behaviour auf last stelle und dann meinen AVR ein oder ausschalte, wird weiterhin state ausgelesen und dieser ist ja opened, das erklärt dann auch warum die Structure dann auf undefined steht.  >:(

Hier nochma der Teil aus der Config

define livingroomTvStandAvReceiver_avr DENON_AVR 192.168.0.5:23
attr livingroomTvStandAvReceiver_avr userattr device device_map structexclude
attr livingroomTvStandAvReceiver_avr alias Denon
attr livingroomTvStandAvReceiver_avr devStateIcon on:10px-kreis-gruen off:10px-kreis-rot volumeUp:audio_volume_high volumeDown:audio_volume_low
attr livingroomTvStandAvReceiver_avr device livingroomDevices_structure
attr livingroomTvStandAvReceiver_avr device_map power
attr livingroomTvStandAvReceiver_avr group Heimkino
attr livingroomTvStandAvReceiver_avr icon it_server
attr livingroomTvStandAvReceiver_avr room Wohnzimmer
attr livingroomTvStandAvReceiver_avr sortby 2b
attr livingroomTvStandAvReceiver_avr stateFormat power
attr livingroomTvStandAvReceiver_avr structexclude livingroomDevices_structure:state
attr livingroomTvStandAvReceiver_avr webCmd on:off:volumeStraight:input

define livingroomDevices_structure structure device livingroomTvStandAvReceiver_avr livingroomTvStandTelevision livingroomTvStandXboxOne livingroomTvStandWii livingroomTvStandXbox360 livingroomTvStandPlaystation3

Hollo

Zitat von: shawly am 27 August 2015, 17:15:55
...laut FHEM Referenz, muss ich um ein anderes Reading auszulesen, beim AVR <struct_type>_map also in diesem falle beim Attribut device_map "power" eintragen um den wert des Readings "power" auszulesen...

Ich würde nicht das Reading wechseln, sondern einfach die "Ausgaben" Deines state ändern.
Die biegst Du (wie bei EventMap) so, dass alle Mitglieder Deiner structure im state ein "on" oder "off" melden.
Dann ist auch Deine structure definiert.

Zitat<struct_type>_map
Mit diesem Attribut, das dem Struktur-Mitglied zugewiesen werden muss, koennen die Werte, die die einzelnen Struktur- Mitglieder melden, umdefiniert werden, damit man unterschiedliche Geraeteklassen zusammenfassen kann. Es existieren drei Varianten:

    readingName
    nehme den Wert von readingName anstatt von state
    oldVal:newVal
    falls der Wert der state Reading oldVal (als regex) ist, dann ersetze diesen mit newVal.
    readingName:oldVal:newVal
    falls der Wert der readingName oldVal (als regex) ist, dann ersetze diesen mit newVal.

Beispiel:

    define tuer OWSWITCH <ROMID>
    define lampe1 dummy
    attr lampe1 cmdlist on off
    define kueche structure struct_kitchen lamp1 door
    attr kueche clientstate_priority An|on OK|Aus|off
    attr lampe1 struct_kitchen_map on:An off:Aus
    attr tuer struct_kitchen_map A:open:on A:closed:off
    attr tuer2 struct_kitchen_map A
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

shawly

Zitat von: Hollo am 28 August 2015, 09:05:59
Ich würde nicht das Reading wechseln, sondern einfach die "Ausgaben" Deines state ändern.
Die biegst Du (wie bei EventMap) so, dass alle Mitglieder Deiner structure im state ein "on" oder "off" melden.
Dann ist auch Deine structure definiert.

Ja und wo geb ich dann die jetztigen Augaben meines states aus? Dann muss ich irgendwie den Wert von power auf state ausgeben lassen, das is doch kacke..
Ich dachte <struct_type>_map ist EXTRA dafür da, dass ich andere Readings verwenden kann um eben nicht solche "Hacks" nutzen zu müssen... Wenn ich alles richtig gemacht habe und das trotzdem nicht funktioniert, dann ist doch das Structure Module verbuggt oder??