Gleichheitszeichen aus Reading entfernen

Begonnen von smurphy, 03 Oktober 2018, 17:02:39

Vorheriges Thema - Nächstes Thema

smurphy

Hallo Liebe Gemeinde,

ich hoffe, meine Frage so zu stellen, wie es sich gehört. Ich habe natürlich vorher auch die Suchfunktion benutzt, jedoch konnte ich keine Lösungsansätze für mich adaptieren.

Was ich gemacht habe:
Ich habe ein Temperatur/Luftfeichtigskeits-Sensor von Xiaomi über das Modul XiaomiBTLESens eingebunden.

define xiaomi1 XiaomiBTLESens xx:xx:xx:d8:ae:ef

Ich erhalte folgende Readings:
Readings
batteryPercent
76
batteryState
ok
firmware
00.00.66
humidity
=7.6
state
T: 14.9 H: =7.4
temperature
14.9

Leider komme ich mit = bei der Luftfeuchtigkeit nicht klar. die Graphen funktionieren damit einfach nicht und die dewpoint Berechnung auch nicht.

Im Logfile erscheint folgende Fehlermeldung:
2018.10.03 16:22:06 1: Error dewpoint: humidity invalid: 0
2018.10.03 16:25:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 113) line 1.
2018.10.03 16:25:46 3: eval: { "Xiaomi Humidity Min $data{min2}, Max $data{max2}, Last $data{currval2}, Taupunkt $data{currval3}" }

Komischerweise scheinen beim Neustart des Raspberry die ersten Werte ohne das blöde = übermittelt zu werden.
Siehe Logfile:

2018-10-03_16:26:03 xiaomi1 batteryPercent: 76
2018-10-03_16:26:03 xiaomi1 T: 0 H: 0
2018-10-03_16:26:03 xiaomi1 write sensor data
2018-10-03_16:26:13 xiaomi1 T: 15.1 H: 47.7 D: 4.1
2018-10-03_16:28:16 xiaomi1 write sensor data
2018-10-03_16:28:29 xiaomi1 T: 15.0 H: 11.9 D: -14.3
2018-10-03_16:31:14 xiaomi1 write sensor data
2018-10-03_16:31:24 xiaomi1 T: 14.9 H: =9.4
2018-10-03_16:37:00 xiaomi1 write sensor data
2018-10-03_16:37:10 xiaomi1 T: 15.0 H: =8.0
2018-10-03_16:41:55 xiaomi1 write sensor data


Kann mir jemand helfen?
Vielen Dank und Gruß

CoolTux

userReadings und ReadingsNum verwenden.


Aber irgendwas kann da eh nicht stimmen oder ist das echt so trocken bei Dir?
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

LuckyDay

2018-10-03_16:26:13 xiaomi1 T: 15.1 H: 47.7 D: 4.1
2018-10-03_16:28:16 xiaomi1 write sensor data
2018-10-03_16:28:29 xiaomi1 T: 15.0 H: 11.9 D: -14.


Ich behaupte mal , dass du eh ein anderes Problem noch hast,
es ist ziemlich unwarscheinlich, das innerhalb von 3 minuten der Hum von 47.7 auf 11.9 fällt

smurphy

Das mit der Hum passt schon. Ich habe eine Trockenbox, in der ich Filament für meinen 3D Drucker aufbewahre.

Wie könnte ich das mit userreadingslösen?

Danke schonmal!!!

JensS

Zuerst würde ich mal den Modulautor fragen, ob das = sein muss.
Als Zwischenlösung kannst du dir ein Userreading anlegen und dabei das = entfernen:attr xiaomi1 userReadings Luftfeuchte { my $luft = ReadingsVal("xiaomi1","humidity",0);$luft=~s/=//;$luft;}Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

CoolTux

Zitat von: dirigent am 03 Oktober 2018, 17:47:28
Zuerst würde ich mal den Modulautor fragen, ob das = sein muss.
Als Zwischenlösung kannst du dir ein Userreading anlegen und dabei das = entfernen:attr xiaomi1 userReadings Luftfeuchte { my $luft = ReadingsVal("xiaomi1","humidity",0);$luft=~s/=//;$luft;}Gruß Jens

Viel zu kompliziert.


attr xiaomi1 userReadings Luftfeuchte:humidity:.* { ReadingsNum($name,"humidity",0) }
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

smurphy

Vielen Dank schonmal, dass Ihr euch mit meinen Problemchen befasst.

Ich habe zuerst Userreading so angelegt wie von cooltux vorgeschlagen. Dies hat leider nicht dazu geführt, dass ein neues Readings angelegt wird. Liegt eventuell ein Syntax Fehler vor? Ich habe copy&paste gemacht.

Danach habe ich die Lösung von Jens versucht und das hat geklappt.

Ich kenne zwar noch nicht die Ursache für das Gleichzeitszeichen, aber das Problem ist gelöst.

Vielen vielen Dank Männer!!

@Cooltux, wenn du den Fehler in deiner Syntax ausmachen kannst, würde ich das gerne noch ausprobieren.

Gruß



CoolTux

Internals:
   CFGFN     
   NAME       testDummy
   NR         59
   STATE      ???
   TYPE       dummy
   READINGS:
     2018-10-03 20:53:15   Luftfeuchte     45
     2018-10-03 20:53:15   humidity        =45
Attributes:
   readingList humidity
   setList    humidity
   userReadings Luftfeuchte:humidity:.* { ReadingsNum($name,"humidity",0) }


Bei mir geht es als Test. Eventuell kam kein Event für humidity weil sich der Wert nicht verändert hat. Da muss man Geduld haben oder das Teil mal eben woanders hinlegen. Badezimmer beim duschen oder so.
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

smurphy

Das wird es gewesen sein!!

Vielen Dank!!

Ich werde mich jetzt mal schauen, dass ich mir eine e-mail notfification bastle, wenn die Luftfeuchtigkeit über 30% steigt. Dann ist mein Silicat gesättigt. Der E-Mail Versand über eine Funktion klappt schonmal.

CoolTux

Mache ich mit einem userReadings bei mir.


batteryState:batteryPercent:.* { if( ReadingsVal($name,'batteryPercent',0) < 30) {'low'} elsif( ReadingsVal($name,'batteryPercent',0) > 98) {'ok'} }


Als Beispiel gedacht. Und dann ein Notify was auf low oder ok triggert. Sollte bei dir dann besser high und low heißen und du triggerst auf high.
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