FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: StefanD am 11 Februar 2015, 17:29:03

Titel: [gelöst] 99_myUtils.pm: Ausgabe von fhem ("<befehl>") in Variable speichern
Beitrag von: StefanD am 11 Februar 2015, 17:29:03
Ich stehe grad so dermaßen auf dem Schlauch, da ich mich wohl auch zum Suchen hier, im Wiki und über Google zu doof anstelle...  ::)

Ich möchte die Ausgabe eines FHEM Kommandos, welches ich in einer Funktion in der 99_myUtils.pm ausführe gerne zur weiteren Verarbeitung in eine Variable speichern, scheitere aber kläglich...

Folgendes funktioniert nicht, die Variable bleibt leer:
my $mRawList = fhem ("list TYPE=CUL_HM actuator")

Im FHEM Log wird die Ausgabe protokolliert:
2015.02.11 17:06:53 3: list TYPE=CUL_HM actuator : dg_st_Heizkoerper    2015-02-11 17:05:47 30
eg_gt_Heizkoerper    2015-02-11 17:04:50 35
eg_wz_Heizkoerper_Essecke 2015-02-11 17:06:17 100
...


Any hints?

Viele Grüße
Stefan
Titel: Antw:99_myUtils.pm: Ausgabe von fhem ("<befehl>") in Variable speichern
Beitrag von: Mitch am 11 Februar 2015, 17:31:53
Bin mir jetzt auch nicht sicher, aber die Ausgabe von list kannst Du so nicht speichern.
Probier doch mal devspec2array

So in etwa:
my $mRawList = devspec2array("TYPE=CUL_HM actuator")

Ohne Gewähr  ;D
Titel: Antw:99_myUtils.pm: Ausgabe von fhem ("<befehl>") in Variable speichern
Beitrag von: StefanD am 11 Februar 2015, 17:47:32
Zitat von: Mitch am 11 Februar 2015, 17:31:53
Probier doch mal devspec2array
...Ohne Gewähr  ;D

Danke, das war der richtige Tipp, der mich vom Schlauch geschubst hat!  ;D
Ganz so tut's zwar nicht, aber ich bin dadurch auf diesen WikiArtikel (http://www.fhemwiki.de/wiki/Heizungskontrolle_Einfach (http://www.fhemwiki.de/wiki/Heizungskontrolle_Einfach)) aufmerksam geworden, der mich auch auf eine noch kompaktere Lösung gebracht hat.  :)

Viele Grüße
Stefan
Titel: Antw:[gelöst] 99_myUtils.pm: Ausgabe von fhem ("<befehl>") in Variable speichern
Beitrag von: StefanD am 11 Februar 2015, 17:57:03
Hier meine Funktion zum Ermitteln des höchsten Ventilöffnungswert:
my $GetCurrentMaxValvePosition;
sub GetCurrentMaxValvePosition()
{
my $mValveMax = 0;
my @mRawList = devspec2array("TYPE=CUL_HM");
foreach(@mRawList) {
    my $lValue = ReadingsVal($_, "actuator", 0);
if($lValue > $mValveMax) { $mValveMax = $lValue; }
  }
return ($mValveMax);
}