FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: peter_w am 26 August 2020, 17:01:22

Titel: Gelöst: list liefert bei einem Gerät ein anderes Ergebnis als bei
Beitrag von: peter_w am 26 August 2020, 17:01:22
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





 
 
Titel: Antw:list liefert bei einem Gerät ein anderes Ergebnis als bei mehreren Geräten
Beitrag von: yersinia am 26 August 2020, 17:07:42
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.
Titel: Antw:list liefert bei einem Gerät ein anderes Ergebnis als bei mehreren Geräten
Beitrag von: peter_w am 26 August 2020, 17:47:50
Danke das funktioniert wie erwartet !
Super wie schnell die Antwort da war.