Hey,
ich hab in einem Reading einen Wert, denn ich gern bearbeiten möchte. Allerdings geht dies nicht mit einem Einzeiler, daher würde ich gern eine Sub dazu schreiben.
Die 99_Myutils.pm hab ich angelegt, die Sub ist auch geschrieben. Ich hab mir ein Userreading angelegt und ein notify. Aber es passiert nichts....
userReading: attr <device> userReadings usrURLX { }
notify: define n_URLmod notify <device> { clean_url(ReadingsVal("<device>","<reading>","")) }
sub:
sub clean_url($) {
my ($obj) = @_;
my $url = Value($obj);
$url = "nur ein test";
fhem ("set usrURLX $url");
}
Hab auch schon hinters device n reading gesetzt (beim notify) oder in die sub es device vors userreading... aber keine änderung.
Logfile is auch kein Eintrag, daher geh ich davon aus - es liegt am notify?
An den Reload der 99_Myutils.pm hab ich natürlich gedacht...
*thx*
Da ist so gut wie alles falsch.
Was soll das mit dem userReading und dem set userURLX.
Du weißt aber schon wazu ein userReading da ist?
{ clean_url(ReadingsVal("<device>","<reading>","")) }
Geht so sofern man den Readings Wert auch wirklich an die sub übergeben will.
Aber was soll das dann hier
my $url = Value($obj);
Ist der Readingswert ein Devicename?
das... is natürlich ungünstig.
hatte die sub erst ohne userReading. dann hab ich gedacht... naja.. iwohin muss ers ja schreiben.
naja, ich hätte des jetzt grob definiert... n reading is ne variable. die wird gefüllt wenn das gerät
die werte übergibt. n userreading is ne selbst definierte variable die ich mit werten befüllen kann.
hab auch schon ein paar angelegt die halt dann z.b. aus dem standard-reading (kw/h) den preis
multiplizieren und dann die summe im reading ablegen - klappt auch.
des grundgerüst der sub hab ich mir iwo her kopiert und nur leicht modifiziert ...
Nein im Reading (des was an die sub übergeben wird) steht eben ein String (ne URL)
Mach bitte ein list vom Notify und von den beteiligten Devices.
list ist ein FHEM Befehl.
Das was du mit ReadingsVal aus ließt, ist das eventuell schon Teil des Events welcher das Notify triggert?
Ganz vergessen. Wozu dient das eigentlich? Willst du den Wert eines einzelnes Reading in ein neues Device schreiben?
jup. der ausgelesene wert is auch der grund fürs notify
ich will eine url die vom device in einem reading übergeben wird so in ein userreading speichern damit ich sie im tablet ui verwenden kann.
So ganz verstanden habe ich Dich zwar nicht, aber schau Dir Mal readingsProxy an.
im prinzip recht simple..
ich hab im device ein reading welches z.b. so aussieht
url -> web: http%3a%2f%2fwww.blablabla.de$2fsowieso
und ich möchte n userreading welches dann so aussieht
usrURL -> http://www.blablabla.de/sowieso
also von der idee... recht einfach :D
und du willst das Ergebnis in ein userreading des selben devices schreiben? Dann brauchst du kein notify...
jup alles 1 device - original reading und user reading.
notfiy war die einzige möglichkeit die ich gefunden hab die sub aufzurufen...
Da reicht ein userReading völlig aus.
Aber wir brauchen immer noch ein list des Devices
Versuch mal in UserReading in dieser Art:
usrURL:url.* {urlDecode ( substr (ReadingsVal($NAME,"url",""),4))}
des decode war die lösung.. vielen dank. mehr brauchte ich net :D
Dann bitte noch ein [Gelöst] vor das subject des ersten Posts.