FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: herman am 10 Februar 2014, 17:24:12

Titel: Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: herman am 10 Februar 2014, 17:24:12
Hallo Martin,

ich versuche gerade abhängig vom Modus des TC Aktionen durchzuführen.

Bei einem TC habe ich Probleme. Der Wert von Reading controlMode ist scheinbar "central". Jedoch nur in der Anzeige. Beim Vergleichen auf den Wert kommt ein false raus.

folgende Reaktion erhalte ich im Telnet


{ReadingsVal("DG_WZ_Heizung","controlMode","notdef")}
central


Bei dem Vergleich auf den String bekomme ich keine 1 als Rückgabe


{(ReadingsVal("DG_WZ_Heizung","controlMode","notdef") eq "central")}



An einem anderen TC funktioniert die Abfrage mit dem modus "auto".


{(ReadingsVal("DG_SZ_Heizung","controlMode","notdef") eq "auto")}
1


Was kann hier das Problem sein?
Danke & Viele Grüße,
Merhan


Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: martinp876 am 10 Februar 2014, 17:56:21
passt alles.
wenn du das Reading "controlMode" ausliest bekommst du dessen Wert, also "central"

was für einen wert willst du bei der Bedingung erhalten?

probiere
{(ReadingsVal("DG_SZ_Heizung","controlMode","notdef") eq "auto")?"true":"false"}{(ReadingsVal("DG_SZ_Heizung","controlMode","notdef") eq "central")?"true":"false"}
Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: herman am 10 Februar 2014, 18:03:53
naja bei dem ersten TC (DG_WZ_Heizung) ist der Wert central. Wenn ich auf eq "central" prüfe bekomme ich keine 1.

bei dem zweiten TC (DG_SZ_Heizung) ist der Wert auto. Wenn ich hier auf "auto" prüfe bekomme ich eine 1. Irgendetwas scheint mit dem Reading nicht in Ordnung zu sein.

list controlMode=auto liefert mir alle TCs die auf auto stehen.

Dieser eine steht auf central.

list controlMode=central ist leer

seltsam...
Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: FilliFairy am 10 Februar 2014, 18:40:44
Hallo Merhan,

ich meine auch bei der Auswertung mal Leerzeichen im Reading gesehen zu haben. Ich verwende folgende Routine:

Zitat
sub
GetThermostatStatus() {
   Log 5, "GetThermostatStatus()";
   my $GesamtStatus =  "Smily";
   my $EinzelStatus = "Unbekannt";
   my @Messpunkte = ("TC1", "TC2");

   foreach(@Messpunkte) {
      $EinzelStatus = trim(ReadingsVal($_, "controlMode", "Lesefehler"));
      if ( $EinzelStatus ne "auto" ) {
         Log 3, "GetThermostatStatus: $_ steht auf ($EinzelStatus)";
         if ( $GesamtStatus eq "Smily" ) {
            $GesamtStatus = "$_($EinzelStatus)";
         } else {
            $GesamtStatus .= ", $_($EinzelStatus)";
         }
      }
   }
   Log 4, "GetThermostatStatus() - return $GesamtStatus";
   return($GesamtStatus);
}
#End GetThermostatStatus()

Viel Erfolg!

Gerhard
Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: herman am 10 Februar 2014, 19:06:11
In der Tat. Bei genau einem TC hängt immer ein Leerzeichen hintendran. Egal in welchem Modus (auto, manual, central) der Kollege ist.

Folgendes liefert gerade eine 1:


{(ReadingsVal("DG_WZ_Heizung","controlMode","nix") eq "auto "}
1


Egal, ob ich den Modus über die FHEMWEB oder Telnet absetze - und aktuell fällt es mir nur bei diesem TC auf.
Seltsam.
Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: FilliFairy am 10 Februar 2014, 19:48:41
trim() nimmt sich der Leerzeichen an :-)

Gruss

Gerhard

Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: betateilchen am 10 Februar 2014, 20:00:31
{(ReadingsVal("DG_WZ_Heizung","controlMode","nix") =~ m/auto/}
Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: herman am 10 Februar 2014, 21:49:41
Vielen Dank damit komme ich erst mal zurecht. Trotzdem ist es seltsam, oder?

z.B. funktioniert

list controlMode=auto auch nicht. Da muss dann auch ein Workaround her

list trim(controlMode)=auto geht schon mal nicht ;-)
Titel: Antw:Seltsames Verhalten beim Auslesen des Reading controlMode bei HM-CC-TC
Beitrag von: betateilchen am 10 Februar 2014, 21:51:10
list controlMode=~m/auto/