FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Elektrolurch am 08 März 2014, 09:51:51

Titel: set Listen funktionieren nicht mehr korrekt
Beitrag von: Elektrolurch am 08 März 2014, 09:51:51
Hallo,

seit einem der letzten Updates funktioniert das "set - Widgets" nicht mehr korrekt:
Die in %sets hinterlegten keys werden angezeigt, zusätzlich nun aber auch in der Hauptliste die Wertebereiche (Menüs) der einzelnen Eintragungen.
Beispie:
set HzAnlage ? liefert korrekt zurück:
Unknown argument ?, choose one of Anlagenfrostschutz:4, 5, 6, 7, 8, 9, 10 Brenner-Taktsperre:1, 2, 3, 4, 5, 6, 7, 8, 9 Gas-End: Gas-Start: Korrektur-Außenfühler:-4, -3, -2, -1, 0, 1, 2, 3, 4 Schaltdifferenz_VL:-1, 0, 1, 2, 3, 4, 5, 6, 7 Sondernieveau-Heizbetrieb:54, 55, 56, 57, 58, 59, 60, 61, 62 max-Ladezeit:26, 27, 28, 29, 30, 31, 32, 33, 34 max-Leistung-Hz:89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4 max-Leistung-WW:89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4 max-VL-Soll:52, 53, 54, 55, 56, 57, 58, 59, 60 min-VL-Soll:8, 9, 10, 11, 12 reload:GAS_F,GAS_P,HK1_B,HK1_F,HK1_P,HK2_B,HK2_F,HK2_P,SOL_F,SOL_P unload:GAS_F,GAS_P,HK1_P,HK2_P,SOL_P

Erzeugt wird die Ausgabe mit:

my @cList;
Wcmcom_Update_sets_gets($hash);
foreach my $k (sort keys %sets)
{
my $opts = undef;
$opts = $sets{$k};
if (defined($opts))
{
  push(@cList,$k . ':' . $opts);
}
else
{
push (@cList,$k);
}
} # end foreach

return "Unknown argument $rd, choose one of " . join(" ", @cList);


Das set Menü hat aber nun auch folgende Eintragungen:
--4, .. 1, -2, Anlagenfrostschutz...Gas-End..
d.h. die möglichen Werte für Anlagenfrostschutzbzw. aller schreibaren Readings mit Auswahlmenü  erscheinen nicht mehr im nnächsten Eingabefeld für den Wert, sondern bereits in der Auswahliste für die Readings.
Der Wertebereich für bspw.  Anlagenfrostschutz wird dynamisch berechnet:
if ($HzWerte{$k}{ACCESS} eq 'write')
{
my $vlist =  Wcmcom_CalcDefaultsetList($hash,$k);
Log3($name,5,"Wcmcom_Update_sets_sets: $name reading: $k $vlist");
$sets{$k} = $vlist if(defined($vlist));
} # if writeaable
Die Wcmcom_CalcDefaultsetList($hash,$k);
liefert einen String der Form -3,-2,..4 usw zurück, damit für Anlagenfrostschutz ein Auswahlmenü angezeigt wird.
In der Ausgabe von sort keys %sets erscheinen nur die Readings und nicht die Werte.
Wird aus der Liste der Readings "Anlagenfrostschutz" ausgewählt, so erscheint statt dem Wertemenü nur der aktuell eingestellte Wert von "8".

Ich kann in der Programmierung keinen Fehler entdecken, zumal das Ganze bis vor dem letzten Update vor einigen Tagen noch einwandfrei funktionierte.
Gruß

Elektrolurch
-4
Titel: Antw:set Listen funktionieren nicht mehr korrekt
Beitrag von: maxritti am 08 März 2014, 09:54:02
Zitat von: Elektrolurch am 08 März 2014, 09:51:51
Ich kann in der Programmierung keinen Fehler entdecken, zumal das Ganze bis vor dem letzten Update vor einigen Tagen noch einwandfrei funktionierte.
Gruß

Elektrolurch
-4

Ich auch nicht, denn das ist so nahezu unlesbar.
Die BB-Codes sind doch nicht so kompliziert oder?

Ups, habe gerade mal deine Signatur gelesen.
Sorry, wenn es daran liegt.