FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: martinp876 am 10 April 2014, 15:00:14

Titel: hack temperaturwochenplan graphisch darstellen
Beitrag von: martinp876 am 10 April 2014, 15:00:14
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
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: peterk_de am 10 April 2014, 19:38:48
Martin - das ist mal wieder genial und genau das was ich mir schon ewig basteln wollte. Klasse. Ich teste umgehend und Berichte.
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: TomWest am 11 April 2014, 09:05:45
Vielen Dank dafür. Hatte ich auch schon mal drüber nachgedacht, wollte das aber über ein Webfrontend realisieren. Kann das ins Wiki?
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: martinp876 am 11 April 2014, 13:13:34
klar kann es ins Wiki
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: TomWest am 11 April 2014, 14:58:25
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
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: martinp876 am 11 April 2014, 15:32:01
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
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: TeeVau am 11 April 2014, 17:09:14
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?!
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: martinp876 am 11 April 2014, 18:26:51
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
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: justme1968 am 23 August 2014, 19:41:19
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
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: martinp876 am 24 August 2014, 11:06:16
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}};


Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: justme1968 am 24 August 2014, 11:13:30
perfekt. danke.
Titel: Antw:hack temperaturwochenplan graphisch darstellen
Beitrag von: justme1968 am 26 August 2014, 22:49:33
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:
define lp logProxy
#logProxy Func:logProxy_WeekProfile2Plot("<device>",$from,$to)

plot "<IN>" using 1:2 axes x1y3 title 'profile' ls l4 lw 1 with steps,\


gruss
  andre