kleines perl Problem mit if

Begonnen von ext23, 15 Juni 2019, 10:06:39

Vorheriges Thema - Nächstes Thema

ext23

Moin,

ich stehe gerade etwas auf dem Schlauch. Die If Anweisung wird jedes mal true obwohl es mathematisch false sein müsste.
ReadingsVal("ESPEasy_esp8266_espeasy03_A2","Analog","0") liefert 2.04 und
AttrVal("ESPEasy_esp8266_espeasy03_A2","Schwellwert_feucht","0") liefert 2.0

Das cast macht perl doch automatisch oder? Also selbst wenn das strings sind sollte er die doch da als float oder sowas erkennen oder?

# Bucht 3
if (ReadingsVal("ESPEasy_esp8266_espeasy03_A2","Analog","0") < AttrVal("ESPEasy_esp8266_espeasy03_A2","Schwellwert_feucht","0"))
{
# Ventil schließen
fhem( "set HM_IO_04 datapoint 3.STATE zu" );
}
elsif (ReadingsVal("ESPEasy_esp8266_espeasy03_A2","Analog","0") > AttrVal("ESPEasy_esp8266_espeasy03_A2","Schwellwert_trocken","0"))
{
# Ventil öffnen
fhem( "set HM_IO_04 datapoint 3.STATE auf" );
}


/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

CoolTux

Zeig mal bitte ein list von ESPEasy_esp8266_espeasy03_A2
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

MadMax-FHEM

Wenn du sicher gehen willst, nimm ReadingsNum...

Und poste doch mal ein list von dem ESPEasy_esp8266_espeasy03_A2...

EDIT: ;)

Ansonsten bleibt das wohl Ratestunde...

Wo/wie kommt das if zum Einsatz?

Notify, DOIF, myUtils, ...

Du kannst die Werte auch erst mal jeweils in Variablen "schreiben" und dann auch loggen lassen, dann kannst du prüfen wie wo was verglichen wird...

Gruß, Joachim

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ext23

Das ist in einem AT drin, also ein Timer. Irgend was muss ich doch da übersehen verdammt.

Internals:
   DEF        192.168.0.76 80 espBridge esp8266_espeasy03_A2
   ESP_BUILD  20102
   ESP_BUILD_GIT mega-20180503
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   3
   ESP_VERSION 2
   FUUID      5c4aea31-f33f-2323-e74d-eee3d8898bfbd6a2
   HOST       192.168.0.76
   IDENT      esp8266_espeasy03_A2
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MAX_CMD_DURATION 1
   MSGCNT     2103
   NAME       ESPEasy_esp8266_espeasy03_A2
   NOTIFYDEV  global
   NR         2396
   NTFY_ORDER 50-ESPEasy_esp8266_espeasy03_A2
   PORT       80
   STATE      Ana: 2.05
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   espBridge_MSGCNT 2103
   espBridge_TIME 2019-06-15 10:15:27
   Helper:
     DBLOG:
       Analog:
         logdb:
           TIME       1560586527.86111
           VALUE      2.05
   READINGS:
     2019-06-15 10:15:27   Analog          2.05
     2019-06-15 10:11:13   presence        present
     2019-06-15 10:15:27   state           Ana: 2.05
   helper:
     fpc        1560460384.45634
     pm:
       Encode     1
       JSON       1
     received:
       Analog     1560586527.85721
   sec:
     admpwd     
Attributes:
   DbLogInclude Analog
   IODev      espBridge
   Interval   300
   Schwellwert_feucht 2.0
   Schwellwert_trocken 2.1
   alias      Bucht03
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       Balkon
   setState   3
   userattr   Schwellwert_trocken Schwellwert_feucht
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

CoolTux

Du kannst es mit ReadingsNum probieren, und zusätzlich Logausgaben einbauen die Ausgaben machen generell und nach extra Bedingungsabfragen.

Schwellwert_trocken 2.1
Da ist ein Leerzeichen zwischen . und 1 wird also schon mal als String erkannt nicht als Zahl.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ext23

ReadingsNum bringt nichts, gibt sowas auch für attribute?

Leerzeichen? Wie? Da ist keins, jedenfalls nicht in den Attributen.
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

CoolTux

Zitat von: ext23 am 15 Juni 2019, 10:35:29
ReadingsNum bringt nichts, gibt sowas auch für attribute?

Leerzeichen? Wie? Da ist keins, jedenfalls nicht in den Attributen.

Mir nicht bekannt das es sowas für Attribute gibt. Wenn Du sagst im Wert für das Attribut
Schwellwert_trocken ist kein Leerzeichen dann muss ich Dir das glauben.

Dann mach das ganze doch erstmal in der Kommandozeile von FHEMWEB und lass dir irgendwas zurück geben wenn die Bedingung passt.

{ if (ReadingsNum('ESPEasy_esp8266_espeasy03_A2','Analog',0) < AttrVal('ESPEasy_esp8266_espeasy03_A2','Schwellwert_feucht',0)) { return 'jepp' } else { Return 'nope' } }

Aber als erstes solltest du einmal von Hand schauen was Deine Funktionen genau Auslesen. Also ReadingsNum und AttrVal. Das einfach mal in FHEMWEB auslesen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ext23

Hatte ich alles schon gemacht und das hat soweit gepasst. Aber OK, erstmal vielen Dank. Ich schau nochmal das Timer script durch, irgendwo muss ich da gepennt haben an einer stelle. Ich werd mal ein paar Log ausgaben einbauen, das ist eine gute Idee, danke.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)