(Gelöst) Remapping von "over range" in eine Zahl

Begonnen von kassi, 02 April 2026, 15:35:56

Vorheriges Thema - Nächstes Thema

kassi

Ich teste gerade das Verhalten des Lichtsensors in EMDCA (Bewegungsmelder mit Lichtsensor) bei EEP A5-07-03 (PIR with light level sensor).
In diesem EEP wird die Lichtstärke (FHEM: brightness) mit 10-bit zwischen 0 ... 1000 rapportiert.
1001 hat in diesem EEP die spezielle Bedeutung "Saturation" (= mehr als 1000), 1002 ... 1023 sind RFU.

In FHEM wird 1001 als brightnes: "over range" rapportiert, was ein Problem mit meinem Frontend ist.
Ich hätte deshalb gerne den Wert 1001 statt "over range".

Ich habe gedacht, dass sich das über ein User Reading (Illuminace) lösen lassen müsste, dass bei brightness == "over range" den Wert 1001 hat und sonst den Wert von brightness. Definition bei mir:

Illuminance {if (ReadingsVal("EnO_042FDC6F","brightness","") == "over range" ) {return 1001} else  {return ReadingsVal("EnO_042FDC6F","brightness","")}}
Das funktioniert insoweit, als brightness = "over range" tatsächlich durch Illuminance = 1001 ersetzt wird.
Auch brightness zwischen 1 und 1000 funktioniert das wie erwartet (Illuminance = brightness).
Das Problem ist, das bei brightness = 0 für Illuminace der Wert 1001 ausgegeben wird.

Mir ist nicht klar, wieso das so ist und würde mich über Hinweise freuen.

Viele Grüße,
Matthias

Beta-User

Versuche es mal mit "eq" statt "==".

Tipps noch:
userReadings immer mit Trigger versehen.
Und hin und wieder ins Log schauen, v.a., wenn was nicht so funktioniert wie erwartet.
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kassi

"eq" macht tatsächlich den Unterschied, damit geht es wie erwartet.
DANKE!!!