hack temperaturwochenplan graphisch darstellen

Begonnen von martinp876, 10 April 2014, 15:00:14

Vorheriges Thema - Nächstes Thema

martinp876

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

peterk_de

Martin - das ist mal wieder genial und genau das was ich mir schon ewig basteln wollte. Klasse. Ich teste umgehend und Berichte.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

TomWest

Vielen Dank dafür. Hatte ich auch schon mal drüber nachgedacht, wollte das aber über ein Webfrontend realisieren. Kann das ins Wiki?
FHEM on R-π - HM-TC-IT-WM-W-EU - HM-LC-Sw1-FM - HM-SCI-3-FM - HM-CC-RT-DN

martinp876


TomWest

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
FHEM on R-π - HM-TC-IT-WM-W-EU - HM-LC-Sw1-FM - HM-SCI-3-FM - HM-CC-RT-DN

martinp876

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

TeeVau

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?!
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

martinp876

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

justme1968

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 und hier 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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

martinp876

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}};



justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

#11
eine erste version gibt es hier: 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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968