fhem cmd "list" in/für 99_myUtils.pm

Begonnen von Markus_F, 04 Februar 2019, 20:35:40

Vorheriges Thema - Nächstes Thema

Markus_F

Hallo Leute,

ich möchte alle readings eines device in 99_myUtils.pm auslesen.
Auf der Kommando-ebene gibt es list, beim Aufruf der dazu gehörende Funktion CommandList() kommt diese Fehlermeldung:
Error evaluating WZ_LAMPE_DECKE_TASMOTA userReading Liste: Can't use string ("FritzBox") as a HASH ref while "strict refs" in use at fhem.pl line 5363.
Zeile 5363 ist leer, die Fehlermeldung ist nicht von dieser Zeile ...

in 99_myUtils:
my @List = CommandList(undef, "FritzBox");

Wie muß "list" programiert werden ? Besten Dank im Voraus, Gruß Markus

KernSani

Guck dir mal devspectoarray an, Da bemmst du einen hash, der wiederum einen hash pro gefundem Device hat und steckt ein hash namens READINGS drin



Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...


betateilchen

Zitat von: Markus_F am 04 Februar 2019, 20:35:40
Wie muß "list" programiert werden ?

list liefert kein Array zurück, sondern einen String.

Probier mal:


my @List = split(/\n/,fhem("list FritzBox"));
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Markus_F am 04 Februar 2019, 20:35:40
ich möchte alle readings eines device in 99_myUtils.pm auslesen.

Dazu...


  • braucht man kein devspec, wenn es nur um ein einziges device geht
  • verwendet man besser nicht "list" sondern "jsonlist2", denn damit werden die Werte schon in einem Format zurückgeliefert, das man vollautomatisch weiterverarbeiten kann
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus_F

Hallo, besten Dank an alle, Durch Eure Hinweise konnte ich das Problem lösen. Gruß Markus