FHEM Forum

FHEM => Sonstiges => Thema gestartet von: JoeALLb am 10 April 2018, 12:54:47

Titel: userreadings sollte Zugriff auf den Trigger erlauben.
Beitrag von: JoeALLb am 10 April 2018, 12:54:47
Hallo,

bei vielen KNX-Devicen muss ich diese Userreadings hinterlegen, da
egal ob ein Reading mit -set -get oder -put aktualisiert wird. Und das Pro gruppenadresse pro Device,
also durchaus hunderte male.
Jeder Wert ist relevant und wird daher in das reading
measured-temp (hier im beispiel)
kopiert.
Dazu nutze ich folgendes reading.
measured-temp:measured-temp-set.* {   
ReadingsNum($name,"measured-temp-set",-10);
},
measured-temp:measured-temp-get.* {   
ReadingsNum($name,"measured-temp-get",-10);
},
Ruecklauftemperatur:Ruecklauftemperatur-set.* {   
ReadingsNum($name,"Ruecklauftemperatur-set",-10);
},


Wenn ich auf den Trigger zugreifen könnte, wäre folgende Schreibweise viel eleganter:

measured-temp:measured-temp-.* {   
ReadingsNum($name,$trigger,-10);
}


$trigger existiert sogar, beinhaltet jedoch leider nicht den tatsächlichen trigger, sondern ebenfalls
den Text "measured-temp-.*".
$reading enthält leider auch nicht den gesuchten Text.
Vielleicht wäre deshalb eine andere Variable notwendig?

Noch ein Wunsch: Optimal wäre es natürlich, wenn ich wie aus Perl gewohnt auch Zugriff
auf den Klammerinhalt bekommen würde.
Dann wäre
measured-temp:measured-temp-(...)\s?(.*) {   
return $2
}

möglich.

sG Joe
Titel: Antw:userreadings sollte Zugriff auf den Trigger erlauben.
Beitrag von: rudolfkoenig am 13 April 2018, 21:57:11
Ich habe den Code etwas angepasst, damit beim aktivierten userReadings-Trigger folgende Variablen gesetzt werden:
- $event: enthaelt das Event (komplett!)
- $eventName: enthaelt den Namen des Events
- $eventValue: enthaelt den Wert.

Beispiel:
Zitatfhem> attr d userReadings state:basicR.* { "EV: $event NAME:$eventName VALUE:$eventValue" }
fhem> info timer
fhem> setreading d basicReport 255
2018-04-13 21:51:54 dummy d basicReport: 255
2018-04-13 21:51:54 dummy d EV: basicReport: 255 NAME:basicReport VALUE:255
Mit $1 / $2 habe ich so meine Probleme: da die Suche nach dem Trigger in einer Schleife erfolgt, scheint $1/$2 auch nur innerhalb der Schleife gesetzt zu sein. Wenn jemand eine Alternative kennt....
Titel: Antw:userreadings sollte Zugriff auf den Trigger erlauben.
Beitrag von: JoeALLb am 16 April 2018, 08:56:11
Vielen Dank! Sehr hilfreiche Erweiterung!!! Hab Sie soeben großflächig zum Einsatz gebracht und meinen Code stark reduzieren können!!