FHT80b Programm Anzeigen: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „Um eine Übersicht darüber zu bekommen, welche Schaltzeiten für "Tagestemperatur" und "Nachttemperatur" für die gesamte Woche in einem FHT80b hinterlegt sin…“)
 
K (Formatierung korrigiert...)
Zeile 2: Zeile 2:


Als Lösung gibts daher zwei Funktionen, mit denen man sich die Programme etwas übersichtlicher darstellen kann.  
Als Lösung gibts daher zwei Funktionen, mit denen man sich die Programme etwas übersichtlicher darstellen kann.  
{FHTProgramm("NAME.DES.FHT.DEVICES")} -> zeigt das Programm eines Devices
<nowiki>{FHTProgramm("NAME.DES.FHT.DEVICES")}</nowiki> -> zeigt das Programm eines Devices
{FHTProgramme} -> zeigt die Programme aller FHTs
<nowiki>{FHTProgramme}</nowiki> -> zeigt die Programme aller FHTs
 
"NAME.DES.FHT.DEVICES" muss natürlich durch den Namen eines eigenen Devices ersetzt werden...


== Voraussetzungen ==
== Voraussetzungen ==
Zeile 11: Zeile 13:


== Das Ergebnis sieht dann zum Beispiel so aus ==
== Das Ergebnis sieht dann zum Beispiel so aus ==
<nowiki>
<nowiki>Alle Programme:
Alle Programme:
Heizungsprogramm für HZ.EG.Bad
Heizungsprogramm für HZ.EG.Bad
mon: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°)
mon: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°)
Zeile 47: Zeile 48:
fri: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°)  
fri: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°)  
sat: Tag (21.0°): 09:00-19:40 und 24:00-24:00, sonst Nacht (17.0°)  
sat: Tag (21.0°): 09:00-19:40 und 24:00-24:00, sonst Nacht (17.0°)  
sun: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°)
sun: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°)</nowiki>
</nowiki>
 
 
== Und hier noch der Code ==
== Und hier noch der Code ==
Dieser Code muss in die 99_myUtils.pm
Dieser Code muss in die 99_myUtils.pm
<nowiki>
<nowiki>#Programm für ein Device abfragen
#Programm für ein Device abfragen
sub FHTProgramm($) {
sub FHTProgramm($) {
  my($fht) = @_;
  my($fht) = @_;
Zeile 79: Zeile 76:
  }
  }
  return $resultstring;
  return $resultstring;
}
}</nowiki>
</nowiki>
[[Kategorie:Code Snippets]]
[[Kategorie:FHT Components]]
--[[Benutzer:Dron72|Dron72]] ([[Benutzer Diskussion:Dron72|Diskussion]]) 20:37, 23. Feb. 2016 (CET)
--[[Benutzer:Dron72|Dron72]] ([[Benutzer Diskussion:Dron72|Diskussion]]) 20:37, 23. Feb. 2016 (CET)

Version vom 23. Februar 2016, 21:49 Uhr

Um eine Übersicht darüber zu bekommen, welche Schaltzeiten für "Tagestemperatur" und "Nachttemperatur" für die gesamte Woche in einem FHT80b hinterlegt sind, kann man zwar in die einzelnen Readings des Devices schauen - dies ist aber recht unübersichtlich.

Als Lösung gibts daher zwei Funktionen, mit denen man sich die Programme etwas übersichtlicher darstellen kann.

{FHTProgramm("NAME.DES.FHT.DEVICES")} -> zeigt das Programm eines Devices
{FHTProgramme} -> zeigt die Programme aller FHTs

"NAME.DES.FHT.DEVICES" muss natürlich durch den Namen eines eigenen Devices ersetzt werden...

Voraussetzungen

Die FHTs müssen im FHEM bekannt sein. Die Programme der FHTs müssen in den Readings stehen. Falls nicht per Report2 255 abfragen... Der unten stehende Code muss zum Beispiel in der 99_myUtils.pm eingefügt sein.

Das Ergebnis sieht dann zum Beispiel so aus

Alle Programme:
Heizungsprogramm für HZ.EG.Bad
mon: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°)
tue: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°) 
wed: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°) 
thu: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°) 
fri: Tag (21.0°): 06:00-19:00 und 24:00-24:00, sonst Nacht (18.0°) 
sat: Tag (21.0°): 08:00-19:30 und 24:00-24:00, sonst Nacht (18.0°) 
sun: Tag (21.0°): 08:00-19:30 und 24:00-24:00, sonst Nacht (18.0°) 

Heizungsprogramm für HZ.EG.Flur 
mon: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 
tue: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 
wed: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 
thu: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 
fri: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 
sat: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 
sun: Tag (19.0°): 06:00-23:00 und 24:00-24:00, sonst Nacht (16.5°) 

Heizungsprogramm für HZ.EG.Kueche 
mon: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 
tue: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 
wed: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 
thu: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 
fri: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 
sat: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 
sun: Tag (19.5°): 07:30-22:30 und 24:00-24:00, sonst Nacht (16.0°) 

Heizungsprogramm für HZ.EG.Spielzimmer 
mon: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°) 
tue: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°) 
wed: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°) 
thu: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°) 
fri: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°) 
sat: Tag (21.0°): 09:00-19:40 und 24:00-24:00, sonst Nacht (17.0°) 
sun: Tag (21.0°): 09:00-23:00 und 24:00-24:00, sonst Nacht (17.0°)

Und hier noch der Code

Dieser Code muss in die 99_myUtils.pm

#Programm für ein Device abfragen
sub FHTProgramm($) {
 my($fht) = @_;
 my $daytemp = ReadingsVal($fht,"day-temp","???");
 my $nighttemp = ReadingsVal($fht,"night-temp","???");
 my @wdays = qw(mon tue wed thu fri sat sun);
 my $resultstring='Heizungsprogramm für ' . $fht . "\n";
foreach(@wdays){
 	my $f1 = ReadingsVal($fht,$_ . "-from1","???");
 	my $f2 = ReadingsVal($fht,$_ . "-from2","???");
 	my $t1 = ReadingsVal($fht,$_ . "-to1","???");
 	my $t2 = ReadingsVal($fht,$_ . "-to2","???");
	$resultstring .= $_ . ": Tag ($daytemp°): " . $f1 . "-" . $t1 . " und " . $f2 . "-" . $t2 . ", sonst Nacht ($nighttemp°)\n"
	}
return $resultstring . "\n";
}

#Programm für alle FHTs abfragen und ausgeben
sub FHTProgramme(){
 my @fhts = devspec2array("TYPE=FHT");
 my $resultstring="Alle Programme: \n";
 foreach(@fhts){
 	$resultstring .= FHTProgramm($_);
 }
 return $resultstring;
}

--Dron72 (Diskussion) 20:37, 23. Feb. 2016 (CET)