DOIF erkennt Dezimalwert nicht

Begonnen von Micha1177, 17 Januar 2018, 15:35:08

Vorheriges Thema - Nächstes Thema

Micha1177

Hallo Zusammen,

ich habe mir einen Wolf gesucht, aber leider kein passendes Thema hierzu gefunden, daher hier meine Frage.
Die Rollladen unserer Badezimmer werden abhängig von der Außenhelligkeit gesteuert. Der Helligkeitswert kommt von einem KNX-Sensor, soll über DOIF regelmäßig ausgewertet werden und dann - abhängig von der Helligkeit - den Rolladen schließen oder öffnen. Ich habe folgende Definitionen hierfür:

Helligkeitssensor
define B19.1_Helligkeit KNX 1/2/220:dpt7.013
Der Wert steht dann im State von B19.1_Helligkeit in folgender Form: ### lux (z.B. 9000 lux)

DOIF
define Rolladen_R03_Helligkeit DOIF ([+:01] and [B19.1_Helligkeit:State:d] > 10000) (set R03.1_Bad Auf) DOELSE (set R03.1_Bad 75)

Problem:
Das DOIF führt immer cmd_2, also das DOELSE (set R03.1_Bad 75) aus.
Im DOIF finde ich folgende Warnung:
"warning: condition c01: Argument "" isn't numeric in numeric gt (>)"

Wenn ich mit dem Regular Expression Tester den String 9000 lux prüfe, dann wird die 9000 erkannt. DOIF kommt damit aber scheinbar nicht zurecht.

Wo liegt mein Fehler?

Ellert

Zitat von: Micha1177 am 17 Januar 2018, 15:35:08
Hallo Zusammen,

ich habe mir einen Wolf gesucht, aber leider kein passendes Thema hierzu gefunden, daher hier meine Frage.
Die Rollladen unserer Badezimmer werden abhängig von der Außenhelligkeit gesteuert. Der Helligkeitswert kommt von einem KNX-Sensor, soll über DOIF regelmäßig ausgewertet werden und dann - abhängig von der Helligkeit - den Rolladen schließen oder öffnen. Ich habe folgende Definitionen hierfür:

Helligkeitssensor
define B19.1_Helligkeit KNX 1/2/220:dpt7.013
Der Wert steht dann im State von B19.1_Helligkeit in folgender Form: ### lux (z.B. 9000 lux)

DOIF
define Rolladen_R03_Helligkeit DOIF ([+:01] and [B19.1_Helligkeit:State:d] > 10000) (set R03.1_Bad Auf) DOELSE (set R03.1_Bad 75)

Problem:
Das DOIF führt immer cmd_2, also das DOELSE (set R03.1_Bad 75) aus.
Im DOIF finde ich folgende Warnung:
"warning: condition c01: Argument "" isn't numeric in numeric gt (>)"

Wenn ich mit dem Regular Expression Tester den String 9000 lux prüfe, dann wird die 9000 erkannt. DOIF kommt damit aber scheinbar nicht zurecht.

Wo liegt mein Fehler?
Ist es wirklich das Reading State?

KernSani

Am besten ein ,,list" von KNX und DOIF, dann sieht man gleich was los ist...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Frank_Huber

State gibt es so nicht.

Es gibt ein internal "STATE" und ein Reading "state"

Es sei denn das "State" ist ein selbst erzeugtes User-Reading.
Denke aber eher das ist ein Schreibfehler...

Micha1177

Zitat von: Frank_Huber am 17 Januar 2018, 16:18:11
Es gibt ein internal "STATE" und ein Reading "state"
(-‸ლ)

Genau das war's - "state" statt "State". Ich Troddl!

Danke :)