Hallo, ich bräuchte mal die Hilfe der Perl-Profis. Ich möchte ein Reading auslesen und über eine Variable in ein dummy schreiben:
define FBDECT_20000_temp dummy
FBCECT_20000 {
my $temp=ReadingsVal("FBDECT_20000","temperature","");
fhem ("set FBCECT_20000_temp $temp");
}
Mein dummy lässt sich "davon nicht beeindrucken" :)
Ich hätte ein ganz anderen Ansatz (wenn es dir als Readings reicht und kein state sein muss:
attr FBDECT_20000_temp userReadings temperature {sprintf(ReadingsVal("FBDECT_20000","temperature","0"));}
Ansonsten probiere deines mal mit setstate, wenn du es als State haben willst.
FBCECT_20000 {
my $temp=ReadingsVal("FBDECT_20000","temperature","");
fhem ("setstate FBCECT_20000_temp $temp");
}
Was hast du denn damit vor?
Es gibt doch auch das Modul ReadinsgProxy
http://fhem.de/commandref#readingsProxy (http://fhem.de/commandref#readingsProxy)
Ansonsten liegt der fehler doch glaube ich darin, dass es heißen muss:
FBCECT_20000 {
my $temp=ReadingsVal("FBDECT_20000","temperature","");
{fhem ("set FBCECT_20000_temp $temp")};
}
Gruß
Igami
die erste frage hierbei ist immer warum soll das reading als kopie in einen dummy? in den aller meisten fällen ist das unnötig.
ansonsten ist ein ganz einfaches notify (mit der passenden regex) auf das original device und einem set <dummy device> %EVTPART1 das mittel der wahl.
user readings sind hier keine möglichkeit weil sie nur durch events im eigenen device getriggert werden.
gruss
andre
Zitat von: justme1968 am 12 September 2014, 10:02:42
die erste frage hierbei ist immer warum soll das reading als kopie in einen dummy?
Danke Andre, ich möchte "einfach nur" ein Reading aus einer FBDECT Instanz in einen floorplan platzieren
das geht wie oben beschrieben per notify.define FBDECT_20000_temp dummy
define myNotify notify FBCECT_20000:temperature.* set FBDECT_20000_temp %EVTPART1
ansonsten schau dir mal readingsGroup an. beispiele im forum und im wiki. damit kannst du die readings die du anzeigen willst auch formatieren. und (was bei einem einzigen reading noch nicht wirklich relevant ist) longpoll updates werden nur gemacht wenn die readingsGroup auch irgendwo angezeigt wird.
gruss
andre
Damit kommt der Fehler Unknown module FBCECT_20000:temperature.*
oben hat ein notify gefehlt.
gruss
andre
Danke Andre, genau das hab ich gesucht!
Hallo Andre,
ich hatte ein ähnliche Problem und dank deiner erklärung gelöst.
Zitatdefine Zaehlerstand dummy
define myNotify notify HCN2_Gas:countsOverall.* set Zaehlerstand %EVTPART1
Ich benötige aber nur 1/10 von %EVTPART1 ! , bekommen das aber nicht hin hin , weder
%EVTPART1\./10
noch
%EVTPART1\/10 geht
:'( schon klar das sind sicher Basic´s ... stehe dennoch auf dem Schlauch !
Danke
klaus
rechnen kannst du nur auf perl ebene. du brauchst etwas in der art:
{ fhem("set Zaelerstand ". $EVTPART1 / 10 ) }
gruß
andre
genau das war´s
define myNotify notify HCN2_Gas:countsOverall.* { fhem("set Zaehlerstand ". $EVTPART1 / 10 ) }
Danke & Gruss
klaus