Gelöst - DOIF: Prozentzeichen aus Abfrage herausnehmen

Begonnen von r00t2, 12 April 2020, 15:57:40

Vorheriges Thema - Nächstes Thema

r00t2

Hallo zusammen,

ich habe momentan ein DOIF laufen, welches in einem definierten Zeitraum auf den Alarm eines Bewegungsmelders triggert und dann, abhängig von zwei weiteren Readings - ein Licht anschaltet bzw. verlängert.

Ziel des DOIF ist es:
- Es soll im Zeitraum von 1600 - 1000 (Des Folgetags) scharf geschaltet sein (Bewegungsmelder-Events bearbeiten)
- Abhängig von 3 Parametern soll ein Aktor angesteuert werden
- Die Parameter sind:
-- Bewölkungskorrigierte Außenhelligkeit (wtr_Twilight:twilight_weather) hat höchste Prio
-- Tageszustand / Dämmerungszustand (wtr_Twilight:state) hat zweithöchste Prio
-- Innenhelligkeit gemessen beim Auslesen des Bewegungsmelders (se_Wohnzimmer:luminance) soll dritthöchste Prio haben

Das Listing schaut momentan so aus:
([?16:00-10:00] and [se_Wohnzimmer:alarm] =~ "Motion" and [se_Wohnzimmer:alarm] !~ "cleared")
(
  {
    if([wtr_Twilight:twilight_weather] < 50 or [wtr_Twilight:state] > 9)
    {
      # Tu was
    }
  }
)
DOELSE
(
  {
    # Tu was anderes
  }
)

attr doif_Ganglicht_an_by_Sensor checkReadingEvent 1
attr doif_Ganglicht_an_by_Sensor do always


Das funktioniert auch ganz gut, nur bekomme ich die dritte "or" Verknüpfung nicht eingebaut.

Ändere ich das
if([wtr_Twilight:twilight_weather] < 50 or [wtr_Twilight:state] > 9)
ab in
if([wtr_Twilight:twilight_weather] < 50 or [wtr_Twilight:state] > 9 or [se_Wohnzimmer:luminance < 10])
, erhalte ich eine Fehlermeldung, weil das< luminance Reading noch ein Prozentzeichen angehängt hat. Folglich kann FHEM einen Ausdruck wie
if((100 < 50) || (5 > 9) || (30.66 % < 10))
evaluieren.

Wie bekomme ich das Prozentzeichen in der Abfrage entfernt bzw. nur den reinen Zahlenwert, damit er ordentlich evaluiert werden kann?

Danke für eure Hilfe und euch alle frohe und vor allem gesunde Ostern.

BTW: Die geschweiften Klammern direkt nach den runden Klammern bei DOIF bzw. DOELSE kann ich vermutlich weglassen, oder?

Edit: Manchmal hat man Tomaten auf den Augen. Habe es mit ReadingsNum in der Abfrage selbst hin bekommen. Wobei die Mischung aus Abfrage in eckigen Klammern und ReadingsNum jetzt nicht so stimmig aussieht. Ggf. ändere ich die anderen Abfragen auch noch in ReadingsNum Abfragen um.

Könnte ein Mod das Thema bitte zudem in den DOIF Bereich verschieben? Vielen Dank.
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF