falsches dpt

Begonnen von Guybrush, 25 Januar 2024, 08:40:17

Vorheriges Thema - Nächstes Thema

Guybrush

Hallo zusammen,

ich hab ein seltsames Problem. Bei einem Device habe ich 2 KNX Adressen definiert:

defmod Buero.Heizen KNX 5/0/101:dpt1.001:state:listenonly:nosuffix 5/0/28:dpt1.011:stateAktor:listenonly:nosuffix
attr Buero.Heizen DbLogExclude .*
attr Buero.Heizen DbLogInclude state
attr Buero.Heizen DbLogRetentionPeriod 2592000
attr Buero.Heizen IODev KNX
attr Buero.Heizen devStateIcon on:rc_GREEN off:rc_RED
attr Buero.Heizen event-min-interval .*:3600
attr Buero.Heizen event-on-change-reading state
attr Buero.Heizen group Heizung
attr Buero.Heizen icon temp_temperature
attr Buero.Heizen room Keller->Büro
attr Buero.Heizen stateFormat state

Das Reading "state" sollte also 0/1 als off/on (dpt1.001) und das Reading "stateAktor" 0/1 als inactive/active (dpt1.011) interpretieren. Nun ist es aber so, dass das Reading "state" als dpt1.011 behandelt wird, also der state auch immer active/inactive ist. Lösche ich die Adresse 5/0/28 aus dem Define, dann ist state im dpt1.001 format. Bei allen anderen Devices mit mehreren Readings tritt dieses Problem nicht auf. Daher muss das irgendwas spezifisches von diesem Device sein. Allerdings sieht die Definition für mich richtig aus.

Weiß einer vielleicht was, was ich übersehe?

erwin

Hi,
defmod Buero.Heizen KNX 5/0/101:dpt1.001:state:listenonly:nosuffix 5/0/28:dpt1.011:stateAktor:listenonly:nosuffixdeine definition enthält eine alias-Namen 'state',
Alias-Names werden aber auch für die Erstellung von Readingsnamen verwendet...
das reading state hat aber eine spezielle Bedeutung, wird automatisch erzeugt und wird bei jedem event upgedatet....
Vorschlag: nenne 'state' in deiner definition anders, z.B. 'State' oder 'status'
Du musste dann natürlich auch stateformat, DbLogInclude,... anpassen.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Guybrush

danke für das feedback! ich probiere das mal aus. Was mich nur wundert ist der Umstand, dass ich das bei 50+ anderen devices auch so hab - mit state und da hab ich dieses Problem nicht. Ich werde es dann aber vorsorglich auch bei den anderen ändern

erwin

Was mich nur wundert ist der Umstand, dass ich das bei 50+ anderen devices auch so hab
das Problem tritt nur auf wenn: gadname=state UND option=nosuffix !
... und erkennbar ist es nur, wenn mehrere, unterschiedliche dpt's im define vokommen!
Dieses Problem werde ich in der nächste Version fixen - mit Errormessage im Log. -damit wird eine solche definition verhindert.

Grundsätzlich ist die Verwendung von state als gadNamen keine gute idee:
1) weil reading 'state' in core-fhem eine spezielle Bedeutung hat - z.B: wird reading state durch die core funktion nach INTERNAL STATE kopiert - und damit die Basis für devstateicon...., weiters schauen die EVENTs anders aus als bei anderen readings...
2) im KNX-Module wird jede ankommende bus-msg UND auch jeder set command Wert in einem eigenen reading gespeichert, weiters wird automatisch der Wert auch nach state kopiert. Das kann man allerdings auch noch durch die Attribute stateCmd und stateRegex, ... beeinflussen -siehe cmd-ref.

in deinem Beispiel war also eine "Mischung" aus on/off und inactive/active im state reading, jenachdem, welche msg zuletzt ankam.
klar erkennbar wird das, wenn du den event-monitor mitlaufen lässt!
Ich verwende für logging/EVENTS nur jene readings, die mich interessieren, ganz selten ist das state.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...