Hi,
wer lust hat kann die Temperaturprofile der Thermostate graphisch darstellen.
1) es ist keine Eingabe, nur eine Darstellung
2) Voraussetzung ist die Nutzung der File-basierenden Verwaltung der Wochenlisten. (tempList, tempListTmpl)
Ablauf:
Das progrämmchen formatiert die Wochenwerte um und schreibt sie in ein File <templist.cfg>.log - simuliert also ein logfile.
ausserdem wird ein passendes .gplot file erzeugt.
Was wäre zu tun:
1) die 2 Funktionen aus 99_myUtils.pm in das eigenen myUtils kopieren. So man noch keines hat kann man das ganze File nutzen.
2) definieren entities - setup/tempList.cfg wird die templiste sein, setup/tempList.cfg.log wird dann automatisch generiert.
define weekLogF FileLog setup/tempList.cfg.log none
define weekplan SVG weekLogF:tl:CURRENT
attr weekplan fixedrange 1
attr weekplan startDate 1
3) templist file erzeugen oder editieren
ggf. templist file erzeugen - z.b. mit set hm tempList save
4) Plotfiles updaten
{myfc("setup/tempList.cfg")}
in kommandozeile ausführen. setup/tempList.cfg ist mein temperaturfile
5) im web die Graphik ansehen.
das temlist file kann editiert werden. Nach Veränderung des files ab Punkt 4 wiederholen.
Die Anzeige ist nicht optimal. Begrenzt auf 8 RTs. Man kann aber manuell um schalten...
Die Beschriftung der x-achse beginnt 2000, januar. Leider ist kein Wochentag eingeblendet
Da es sehr gebastelt ist wird es nicht in die offizielle SW eingehen.
Gruss Martin
Martin - das ist mal wieder genial und genau das was ich mir schon ewig basteln wollte. Klasse. Ich teste umgehend und Berichte.
Vielen Dank dafür. Hatte ich auch schon mal drüber nachgedacht, wollte das aber über ein Webfrontend realisieren. Kann das ins Wiki?
klar kann es ins Wiki
Hi,
bekomme folgende Fehlermeldung mit der 99_myUtils.pm
Global symbol "$FW_gplotdir" requires explicit package name at ./FHEM/99_myUtils.pm line 68, <$fh> line 3
das sollte in FHEMWEB definiert werden. das hast du doch am laufen - oder?
ansonsten müsstest du
my $FW_gplotdir = "$attr{global}{modpath}/www/gplot";
setzen
Hallo,
Ist jemand so freundlich und postet von dem Plot mal einen Screenshot? Ich würde gerne ein paar Weekdaytimer irgendwie grafisch anzeigen. Vielleicht wäre das schon mal ein Start?!
so könnte es aussehen -
nur trainingszeiten...
Es werden in dieser Darstellung max 8 Programme dargestellt - da es aber aktuell nur 2 unterschiedliche sind, sind die Kurven deckungsgleich. Man kann sehr schön sehen, dass es einen Peak gibt, eine fehlprogrammierung also.
Die Skala auf der x-achse ist nicht optimal (also eigentlich falsch....) aber es ist eine Woche im Überblick
Gruss Martin
ich baue gerade ein modul mit dem man unter anderem das wochenprofil eines thermostaten direkt plotten und in andere plots einblenden kann ohne den umweg über ein log file zu machen. siehe hier: http://forum.fhem.de/index.php/topic,25998.msg194166.html#msg194166 (http://forum.fhem.de/index.php/topic,25998.msg194166.html#msg194166) und hier http://forum.fhem.de/index.php/topic,26108.0.html (http://forum.fhem.de/index.php/topic,26108.0.html)
Heating_Controll und WeekdayTimer profile gehen schon, MAX profile mache ich wenn ich zurück bin. homematic würde ich auch gerne einbauen habe aber kein passendes device.
es wäre schön wenn mir jemand ein list eines hm thermostaten mit wochenprofil senden könnte.
@martin: gibt es einen bevorzugen weg das wochenprofil aus den readings/internals/helper auszulesen? eine liste mit zeiten und Temperaturen pro wochentag wäre perfekt.
gruss
andre
Hallo Andre,
Die Readings sind aufgebaut
R[_P<list>]_<dayNo>_tempList<day>
dayNo ist die nummer des Tags, day der Tag lesbar.
die Liste ist bei TC-IT relevant, da gibt es 3 Listen für die Woche, nicht nur eine.
bei einem cc-tc oder tc-it wird das temp-profil im Kanal 02 festgelegt. Den Kanal findet man mit
devspec2array("TYPE=CUL_HM:FILTER=model=(HM-CC-TC|HM-TC-IT-WM-W-EU):FILTER=chanNo=02")
Ein RT (oder rtBom)
devspec2array("TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN.*:FILTER=chanNo=04")
ein List ist angehägt - von tc-it, cc-tc und rt.
sinnvoll ist es wohl, die devices zu simulieren. führe simu.txt aus. dann kannst du mit
set rt_Clima tempListMon 06:00 18.5 10:00 8.0 16:00 25.5 24:00 18.5
profile einstellen und simulieren.
Nutzen kannst du natürlich
get rt_Clima reg all
auch die templist erhalten. Ansonsten ein
my @rl = grep /^R_.*_tempList...$/,keys %{$defs{$name}{READINGS}};
oder
my @rl = map{"$_:".ReadingsVal($name,$_,"-")} grep /^R_.*_tempList...$/,keys %{$defs{$name}{READINGS}};
perfekt. danke.
eine erste version gibt es hier: http://forum.fhem.de/index.php/topic,26529.0.html (http://forum.fhem.de/index.php/topic,26529.0.html).
kurze version:
- logProxy device definieren:
define lp logProxy
- .gplot file erstellen mit einer #logProxy und einer plot zeile:
#logProxy Func:logProxy_WeekProfile2Plot("<device>",$from,$to)
plot "<IN>" using 1:2 axes x1y3 title 'profile' ls l4 lw 1 with steps,\
gruss
andre