Gibt es einen "harten" Hinderungsgrund, das nicht nach "state" zu schreiben
Nein, siehe:
3) Jeder reading-Value wird auch nach reading state kopiert
Die Ausnahmen treffen nur bei komplexen devices zu, die mittels KNX-spezifischen Attributen gesteuert werden. Ein simples Beispiel: ein Windspeed-Aktor sendet Werte in m/sec - die kommen genau so ins reading windspeed - im state wird mittels Attribute auf km/h umgerechnet...
attr <device> stateCmd {sprintf("%.1f",(ReadingsNum($name,'windspeed',0) * 3.6))}
Ich bevorzuge aber als Einheit für Windgeschwindigkeit: kn
Das Problem wird dann virulent, wenn der Aktor z.b. zusätzlich zu on|off auch solche Werte wie Spannung/Strom/Leistung/%,.... liefert, dann muss man sehr genau steuern, welche Werte man in STATE (bzw via stateFormat) haben will - um ein vernüftiges devStateIcon darzustellen (oder auch mehrere....) und gleichzeitg in state einen konsistenten Wert, z.b. fürs logging....
READINGS:
2022-04-23 19:57:57 Status on
2022-04-23 19:53:41 state off
Mit diesen Timestamps wäre was falsch, wenn allerdings 'state' eine späteren Timestamp als Status hat, könnte das von einem anderen reading stammen....und man könnte nicht mehr sagen ob richtig oder falsch.
PS: Das reading Status in jw9's def stammt vermutlich von dem Versuch: 'setreading <device> Status on', zu dem ich ihm geraten habe um das devStateIcon zu testen...(3. Beitrag)
Im Prinzip ist die Logik ähnlich zu MQTT2_DEVICE:
dort wird mittels Attr die Zuordnung Topic->readingName gemacht,
bei KNX mittels def GA-Addresse->readingName gemappt (optional mehrfach). - und jede KNX-msg auf eine definierte GA-Addresse erzeugt/updated ein entsprechendes reading
Die Logik was/wann in STATE kommt, ist völlig standard FHEM, inkl. der FHEMWEB Attribute!