Hallo zusammen,
folgendes Problem:
ich habe z.B. mehere presence devices, die alle mit pres_ beginnen.
Nun möchte ich separate logfiles für alle anlegen.
Gibt es da eine ähnliche Möglichkeit wie bei attriuten (attr pres_.* room test1), das ich mit einem Befehl die Logfiles für alle devices, die mit pres_ beginnen, anlegen kann?
und gleich noch eine Frage:
kann ich mit rename alles Devices die z.B mit pres_ beginnen umbenennen? Also pres_.* -> presence_.*
Benutzer nur DbLog, aber zum umbenennen, defines und attribute ändern baue ich mir grad eine Funktion
sub modify($$$$){
my ($device,$value,$old,$new) = @_ ;
my @devices = devspec2array($device) ;
foreach $device (@devices){
if ($value eq "DEF"){
my $VALUE = InternalVal($device,$value,($value." error"));
$VALUE =~ s/$old/$new/g;
fhem("modify $device $VALUE");
}elsif ($value eq "NAME"){
my $VALUE = InternalVal($device,$value,($value." error"));
$VALUE =~ s/$old/$new/g;
fhem("rename $device $VALUE");
}else{
my $VALUE = AttrVal($device,$value,($value." error"));
$VALUE =~ s/$old/$new/g;
fhem("attr $device $value $VALUE");
}
}
}
Grüße
Igami
danke, das schaue ich mir am We mal an
Zitat von: igami am 19 November 2014, 17:37:39
Benutzer nur DbLog, aber zum umbenennen, defines und attribute ändern baue ich mir grad eine Funktion
sub modify($$$$){
my ($device,$value,$old,$new) = @_ ;
my @devices = devspec2array($device) ;
foreach $device (@devices){
if ($value eq "DEF"){
my $VALUE = InternalVal($device,$value,($value." error"));
$VALUE =~ s/$old/$new/g;
fhem("modify $device $VALUE");
}elsif ($value eq "NAME"){
my $VALUE = InternalVal($device,$value,($value." error"));
$VALUE =~ s/$old/$new/g;
fhem("rename $device $VALUE");
}else{
my $VALUE = AttrVal($device,$value,($value." error"));
$VALUE =~ s/$old/$new/g;
fhem("attr $device $value $VALUE");
}
}
}
Grüße
Igami
Hallo Igami
dieser Post ist lange her. Wo speicherst du das? in MyUtils? Und wie rufst du es auf.. Wenn ich folgendes eingebe
{modify("HM_40A3B3.*", "NAME", "HM_40A3B3", "Steckdose_Technik"}
krieg ich die Fehlermeldung
2018.01.21 10:42:10 1: ERROR evaluating {modify("HM_40A3B3.*", "NAME", "HM_40A3B3", "Steckdose_Technik"}: syntax error at (eval 10878) line 1, at EOF
Oder gilt das heute nicht mehr, da der Post aus Jahr 2014?
hat sich erledigt: es gibt ja den SET Befehl deviceRename... damit ist das obsolet.
Zitat von: choetzu am 21 Januar 2018, 10:43:05
Hallo Igami
dieser Post ist lange her. Wo speicherst du das? in MyUtils? Und wie rufst du es auf.. Wenn ich folgendes eingebe
{modify("HM_40A3B3.*", "NAME", "HM_40A3B3", "Steckdose_Technik"}
krieg ich die Fehlermeldung
2018.01.21 10:42:10 1: ERROR evaluating {modify("HM_40A3B3.*", "NAME", "HM_40A3B3", "Steckdose_Technik"}: syntax error at (eval 10878) line 1, at EOF
Oder gilt das heute nicht mehr, da der Post aus Jahr 2014?
Ist wirklich schon lange her :D
Es fehlt eine ) am Ende, daher der syntax error. Ansonsten wird es so gemacht wie du vermutet hast.