Userreadings wird bei jedem Event getriggert

Begonnen von newby, 14 April 2016, 09:53:33

Vorheriges Thema - Nächstes Thema

Mihca

sorry, ich bin etwas verloren, was nun zu ändern ist. Ich hatte bisher folgendes userreading:

attr Temp.Feuchte.Norden userReadings TDach:temperature {ReadingsVal("Temp.Dach","temperature",0);;}

und der Trigger hat funktioniert. Nun habe ich es auf folgendes umgestellt:

attr Temp.Feuchte.Norden userReadings TDach:temperature$ {ReadingsVal("Temp.Dach","temperature",0);;}

und es funktioniert nicht mehr. Was mache ich falsch?

Vielen Dank vorab
Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

newby


Versuchs mal damit

attr Temp.Feuchte.Norden userReadings TDach:temperature.* {ReadingsVal("Temp.Dach","temperature",0);;}


das hat bei mir funktioniert.
Gruß
Sven

rudolfkoenig

Merkregel: Regexp genauso wie in notify/FileLog/watchdog/etc.
Der Regexp muss das komplette Event erwischen, d.h. mit dem dazugehoerigen Wert.

Mihca

Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Mihca

... fast alles geht jetzt, außer Folgendem:

attr Stromzaehler userReadings power:energy.* differential {ReadingsVal("Stromzaehler","energy",0)*3600;;}

"power" wird bei dem Triggerevent nicht berechnet. Hat jemand eine Idee?

Vielen Dank für Hilefe vorab.

Gruß Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

FunkOdyssey

#20
Ich habe bei meinem HM-Sen-DB-PCB ein userreading wie folgt hinzugefügt:

lastAction:trigger {ReadingsTimestamp("$name","trigger","")}

Es sieht danach aus, als hätte ich bei diesem Commit einfach Pech, weil ich auf das Reading "trigger" gesetzt habe, oder?

Schaue ich mir meine anderen Geräte (BM) an, so funktioniert es nämlich grundsätzlich:

lastAction:motion {ReadingsTimestamp("$name","motion","")}

Ich suche mir mal ein neues Readings aus, welches ich dafür benutzen kann. Hoffentlich liegt es daran. :-)




Nachtrag: Ich glaube, dass ich es jetzt verstanden habe. Ich habe nun auch die Schreibweise geändert und warte mal ab.


lastAction:state.* {ReadingsTimestamp("$name","state","")}

scooty

#21
Zitat von: Mihca am 18 April 2016, 16:08:59
... fast alles geht jetzt, außer Folgendem:

attr Stromzaehler userReadings power:energy.* differential {ReadingsVal("Stromzaehler","energy",0)*3600;;}

"power" wird bei dem Triggerevent nicht berechnet. Hat jemand eine Idee?

Vielen Dank für Hilefe vorab.

Gruß Achim

Kann es sein, dass das Reading "energy" einen Wert mit Einheit enthält, z.B. "5 kWh"?
Probiere 'mal:
attr Stromzaehler userReadings power:energy.* differential {ReadingsNum("Stromzaehler","energy",0)*3600;;}

Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

Mihca

Hallo Scooty,
vielen Dank. Nein, das reading "energy" hat keine Einheit. Es funktioniert nun ohne weitere Änderungen doch.
Grüße Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Dr. Boris Neubert

Hallo,

Zitat von: rudolfkoenig am 15 April 2016, 18:37:22
@Boris: gibt es einen Grund, warum der userreadings Trigger nur mit einem ^ ergaenzt wird, und nicht mit ^$, so wie bei notify? Ich wuerde es sonst auf ^$ aendern.

sorry, bin erst jetzt auf dieses Thema aufmerksam geworden - lese dieses Board nicht.

Ich finde es richtig, dass sich Regexe durchgehend gleich verhalten.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

sw586

Hallo,

wenn ich es richtig verstanden habe muss jetzt immer ein ".*" angehängt werden.
Damit funktioniert es bei mir jedenfalls wieder.

Sollte dann nicht auch die Dokumentation geändert werden?

z.B. hier: http://fhem.de/commandref.html#userReadings

Gruß
Stefan

rudolfkoenig


MEitelwein

Ein kleiner Tip, wenn man Readings mit gleichem Wortanfang hat, z.B. die Readings

rain
rain_min
rain_max

Ein userReading mit rain als Trigger kann dann über die Wortgrenze eindeutig identifiziert werden, die im Regex über \b definiert wird:

... userReading rain_1h:rain\b.* {myDiff(   60*60, "logDB", "out_Wetterstation:rain_total")}

dev0

Ein Doppelpunkt statt einer regexp erscheint mir lesbarer/sinnvoller...

drdownload

#28
sorry, verlesen, gelöscht.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

unimatrix

habe ich es richtig verstanden, dass man die userReadings nicht von ausserhalb eines Moduls triggern kann? Hintergrund: In einer HTTPMOD Definition berechne ich auch eine verbleibende Zeit in Minuten. Die soll minuetlich neu gerechnet werden (um eben immer zu stimmen), aber das Modul soll nicht alle 60 Sekunden auch die URL abfragen.