Hallo zusammen,
ich möchte in meinem 99_myUtils.pm in einem kleinen Script über eine Liste von Geräten iterieren.
Die Geräte frage ich wie folgt ab: list NAME=.*_WSENSOR_.*:FILTER=TYPE=MQTT_DEVICE
und hier einen Schnipsel wie ich es verwenden möchte:
sub phCheckDeviceStatus
{
my @devices = split(' ',fhem("list NAME=.*_WSENSOR_.*:FILTER=TYPE=MQTT_DEVICE"));
my $maxTime_s = 10*60*60; ## hours*min*seconds
my $reading = "Status";
foreach my $dev (@devices)
{
....
Derzeit findet die Abfrage list NAME=.*_WSENSOR_.*:FILTER=TYPE=MQTT_DEVICE
nur ein Gerät, das wird aber dann mit all seinen Details angezeigt statt nur den Verweis auf das Gerät.
Internals:
FUUID 5f4264af-f33f-9f5a-ebb0-2475dc979ad93d45
IODev MqttBroker
NAME KHZ_WSENSOR_1
NR 1131
STATE ???
TYPE MQTT_DEVICE
.attraggr:
.attrminint:
.qos:
* 0
.retain:
* 0
.userReadings:
HASH(0x65d6698)
Helper:.......
mit list NAME=.*_WSENSOR_.*:FILTER=TYPE=MQTT_DEVICE NAME
bekomme ich die gewünschte Referenz aber gleich 2x in der Liste.
Hat Jemand eine Idee wie ich das einzelne Gerät als Referenz bekommen kann.
Danke
Ich hab jetzt nicht detailliert geschaut, aber warum nutzt du
my @devices = split(' ',fhem("list NAME=.*_WSENSOR_.*:FILTER=TYPE=MQTT_DEVICE"));
und nicht devspec2array (Wiki (https://wiki.fhem.de/wiki/DevelopmentModuleAPI#devspec2array))
my @devices = devspec2array("NAME=.*_WSENSOR_.*:FILTER=TYPE=MQTT_DEVICE");
?
Möglicherweise löst das dein Problem schon.
Danke das funktioniert wie erwartet !
Super wie schnell die Antwort da war.