Hallo Zusammen,
ich habe einen RasPi mit FHEM der an unterschiedlichen Standorten (verschiedene IPs) zum Einsatz kommt
darum habe ich mir eine IP-Abfrage beim Systemstart "global:INITIALIZED"
Es klappt auch soweit, allerdings frage ich mich, ob ich die Ausgabe der Namen im log-File unterdrücken kann.
defmod ntfy_myFHEM_Start notify global:INITIALIZED {\
my $myName = fhem("list RasPi.*");;\
$myName =~ tr/\n/,/;;\
my @myName = split(/,/,$myName);;\
$myName = $myName[0];;\
Log 3, "Ich heiße $myName";;\
my $IPdum = "000.000.000.000";;\
my $IP = ReadingsVal($myName,"eth0_ip",$IPdum);;\
my $Age = ReadingsAge($myName,"eth0_ip",999);;\
if ($Age < 300) {\
Log 3, "Meine LAN-IP lautet $IP";;\
Log 3, "Mein LAN-IP Alter $Age";;\
} else {\
Log 3, "Ich habe keine LAN-IP!";;\
}\
$IP = ReadingsVal($myName,"wlan0_ip",$IPdum);;\
$Age = ReadingsAge($myName,"wlan0_ip",999);;\
if ($Age < 300) {\
Log 3, "Meine WLAN-IP lautet $IP";;\
Log 3, "Mein WLAN-IP Alter $Age";;\
} else {\
Log 3, "Ich habe keine WLAN-IP!";;\
}\
}
attr ntfy_myFHEM_Start room System->FHEM
sodass ich diesen Eintrag nicht bekomme.
2025.02.14 23:03:29 3: list RasPi.* : RasPi4_xx
RasPi_Dummy
Versuche mit verbose 0-2 am Device haben keine Veränderung gebracht.
Den Weg mit den zwei RasPi Einträgen habe ich gewählt,
dass ich beim List überhaupt nur die Namen bekomme.
Das List bei nur einem Namen war mir zu umfangreich um es dann auf den diskreten Namen zu filtern.
Hat jemand einen Tipp?
Danke im Voraus und Grüße Knut
Tipp: Doku lesen! (Commandref -> Perl Specials)
Du musst in Deinem Aufruf von fhem() den Parameter für ,silent' mitgeben.
Moin,
oder devspec2array verwenden?
Statt:
fhem("list RasPi.*")
devspec2array("NAME=RasPi.*")
Gruß Thomas
Zitat von: KNUT345 am 15 Februar 2025, 10:30:47 my $myName = fhem("list RasPi.*");;\
$myName =~ tr/\n/,/;;\
my @myName = split(/,/,$myName);;\
$myName = $myName[0];;\
Betreibst Du diesen ganzen Aufwand eigentlich nur, um den Namen eines einzigen devices rauszubekommen?
Das geht auch einfacher:
my $myName = (defInfo("RasPi.*","NAME"))[0];
Falls es so nicht funktioniert, würde mich ein list des gesuchten device "RasPi.*" interessieren.
Ja, der ganze Aufwand nur wegen einem Namen.
Doku habe ich reingeschaut, aber nicht gefunden.
Vielen Dank Knut
Zitat von: KNUT345 am 15 Februar 2025, 14:15:10Doku habe ich reingeschaut, aber nicht gefunden.
In der commandref steht:
ZitatTo use FHEM commands from the perl expression, use the function fhem(), which takes a string argument, this string will be evaluated as a FHEM command:
{ fhem "set light on" }
define n1 notify piri:on { fhem "set light on" }
Note: if this function returns a value, it will also be logged into the global FHEM log. Use 1 as a second argument to disable this logging, this makes sense when obtainig some values via FHEM "get...".