Kämpfe seit Stunden mit einer RegExp- Bitte Hilfe!

Begonnen von Mitch, 12 Januar 2016, 13:31:12

Vorheriges Thema - Nächstes Thema

Mitch

Hallo Zusammen,

ich kämpfe seit Stunden mit einer RegExp und bekomme es nicht hin.

Ich habe ein Device, das bekommt einReading im Format: Druck 2.595;ok
Darstellen im STATE will ich schlußendlich: 2.595 bar - was ich auch ohne Probleme hinbekommen habe

NUR kommt im Log immer der Fehler: PERL WARNING: Argument "2.595 bar" isn't numeric in numeric lt (<) at (eval 621230) line 1.

im Attribut stateFormat habe ich schon alles mögliche ausprobiert und bin jetzt hierbei "stehen geblieben" und mit meinen Ideen/Versuchen am Ende: {no warnings 'numeric';ReadingsNum("Druck","state",0)." bar"}

Vielen Dank für eure Unterstützung!
FHEM im Proxmox Container

frank

die fehlermeldung muss von wo anders herkommen, da auf einen vergleich lower then (lt) hingewiesen wird.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Mitch

Ah, okay, dann kann es nur an der cfg Datei liegen, wobei ich da auch schon alles (mir bekannte) ausprobiert habe.

Stand aktuell:
# Anlagendruck
get Druck cmd {"r -f Waterpressure\n"}
get Druck expect "\d+\.\d+\;.*\n\n"
get Druck postproc { no warnings 'numeric'; sprintf ( $_ ) }


Der übergebene Wert lautet: 2.595;ok
FHEM im Proxmox Container

justme1968

stacktrace einschalten und schauen woher die meldung genau kommt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Mitch

#4
Oh Mann, Danke.

Mit stacktrace habe ich rausgefunden, dass es ein zugehöriger DOIF war  :-[


EDIT: zu früh gefreut:

2016.01.12 14:21:44 3:     main::CallFn                        called by fhem.pl (661)
2016.01.12 14:21:44 3:     main::FW_Read                       called by fhem.pl (3201)
2016.01.12 14:21:44 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (444)
2016.01.12 14:21:44 3:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (890)
2016.01.12 14:21:44 3:     main::FileLog_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1177)
2016.01.12 14:21:44 3:     main::__ANON__                      called by ./FHEM/92_FileLog.pm (407)
2016.01.12 14:21:44 3: stacktrace:
2016.01.12 14:21:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/92_FileLog.pm line 407.
2016.01.12 14:21:23 3:     main::CallFn                        called by fhem.pl (661)
2016.01.12 14:21:23 3:     main::FW_Read                       called by fhem.pl (3201)
2016.01.12 14:21:23 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (444)
2016.01.12 14:21:23 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (889)
2016.01.12 14:21:23 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1531)
2016.01.12 14:21:23 3:     main::FW_dev2image                  called by ./FHEM/01_FHEMWEB.pm (2645)
2016.01.12 14:21:23 3:     main::__ANON__                      called by ./FHEM/01_FHEMWEB.pm (2366)
2016.01.12 14:21:23 3: stacktrace:
2016.01.12 14:21:23 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2366.
FHEM im Proxmox Container

justme1968

das ist aber der stacktrace für eine andere meldung. ganz unten. da fängt irgendeine regex mit einem * an. das ist sinnlos.

vermutlich in einem devStateIcon.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

@Puschel: Die angegebenen Konstrukte kommen normalerweise in ECMD classdef Dateien vor. Vielleicht ist das mit "cfg" gemeint ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

Das sieht nach Code aus einer ECMD Device classdef aus, nicht nach fhem.cfg  ;)

Und betateilchen war schneller

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Puschel74

@betateilchen
Kann sein das das mit "cfg" gemeint ist - dann kann man es aber auch schreiben  8)

@franky08
Sieht mir nicht unbedingt zwingend nach einer classdef aus.
So kann man das auch in die fhem.cfg "prügeln" - wenn man will  ;D

Aber nun BTT - dann kommt der Code eben aus der classdef.
Aber sicher ist sicher daher frag ich lieber mal nach  ;)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Mitch

@all:  vielen Dank, ja es war wohl ein Tippfehler bei devStateIcon.


Die cfg ist wikrlich eine classdef. Sorry, hätte ich genauer schreiben können  :-[
FHEM im Proxmox Container