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
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
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
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);
}