Modul weekprofile + FHEMWEB widget

Begonnen von Risiko, 23 Dezember 2015, 20:16:54

Vorheriges Thema - Nächstes Thema

Risiko

Zitat von: cjung am 04 Januar 2016, 11:39:18
Alle Informationen zu den Kanälen kannst Du hier finden:
http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat

Bei mir hat es heuten (nach dem Update) nicht geklappt, ein Profil aus einem Device beim define zu lesen.
Ich habe es versucht mit: "define weekprofile weekprofile Thermostat.OG.Arbeitszimmer_Clima". Das erstellte Master Profil ist dann aber leer und lässt sich auch nicht bearbeiten.
Wenn ich es ohne master definiere "define weekprofile weekprofile" bekomme ich ein default Profil, das ich auch bearbeiten kann.
Erstmal danke für die Infos. Komme damit aber auch nicht so richtig weiter. Da steht nur "Beim HM-CC-RT-DN ist der Kanal 4 (_Clima) für die Temperaturlisten zuständig."
Wie lese ich dann nun die Profile aus?
Für das HM-CC-RT-DN werden aktuell die Readings "R_2_tempListMon, R_3_tempListTue,...R_1_tempListSun" verwendet. Habe ich auch nur übernommen.
Mann muss beim define natürlich den Namen des Devices angeben und nicht die Kanäle.

Zitat von: cjung am 04 Januar 2016, 11:39:18
Die aus HMInfo erzeugte TempList.cfg habe ich als Beispiel mal angehängt. Info hier: http://www.fhemwiki.de/wiki/HomeMatic_HMInfo#tempList_Templates
Sie liegt normalerweise im FHEM Verzeichniss neben den modulen.
Ok danke. Schaue ich mir bei Gelegenheit mal an.

Afterburner

Zwecks des Schaltpunktes, das hatte ich damals im Wiki gelesen
ZitatBitte folgendes beachten:

Es gibt im Zusammenhang mit dem Wochenprogramm ein Problem mit dem letzten Schaltpunkt des Tages. Der Workaround wurde hier beschrieben. Man muss dafür sorgen, dass man kurz vor Ende des Tages noch einen Schaltpunkt setzt! Bei mir hat sich ein Schaltpunkt (ohne Änderung der Soll-Temperatur) um 23:55 bewährt:
http://forum.fhem.de/index.php/topic,17231.msg112738.html#msg112738

Hatte es heute mal getestet den ganzen Tag auf eine Temperatur zu setzen und er hatte das nicht angenommen, stand noch 17° bei desiredtemperature drin statt 21,5°
laut list Thermostat war aber das Programm richtig übertragen.

Das mit dem Schaltpunkt auf die selbe Temperatur hatte ich nicht ausprobiert.

ZitatWenn ich das richtig verstehe, willst du wissen\auslesen welches Profil zuletzt an des assoziierte Device gesendet wurde? Also z.B. Profil heißt 'Urlaub' und wurde an das Device gesendet. --> das 'Master'-Profil ist dann gleich dem 'Urlaub'-Profil. Könnte mir dafür ein Reading (evtl. active_master_profile oder profile_master) vorstellen, dass die Info aufnimmt was zu letzt gesendet wurde und somit aktiv ist und natürlich nur wenn beide Profile (master, Urlaub) gleich sind. Sonst nimmt das Reading 'Unknown' an.

Das mit dem Masterprofil habe ich jetzt nicht verstanden, das hat doch andere Einstellungen wie z.B. das UrlaubsProfil.
Ich lege ein weekprofil an und bekomme dann als Erstkonfiguration die Daten vom Thermostat für das ich das Profil angelegt habe.
Jetzt kopiere ich das Profil und ändere die Daten in der Kopie z.B. in den Urlaubsmodus, wenn ich jetzt das Urlaubsprofil an das Thermostat schicke dann ändert sich ja nicht das Masterprofil.

Das Masterprofil ist doch ein eigenständiges Profil wohl nur mit dem Unterschied das wenn man darin was ändert das es wohl gleich ans Thermostat geschickt wird (nicht getestet nur gelesen)
Das Modul ist ja momentan so aufgebaut das man jedes Profil an jedes Device schicken kann, hat zwar seine Vorteile aber verwirrt dann auf der anderen Seite auch wieder. Naja kommt vermutlich auf sein Konzept an wie man es umgesetzt hat.

Ich bei mir habe für jeden Raum (jeweils nur ein Thermostat) ein eigenes "weekprofile" angelegt mit dann jeweils eigenen Profilen für den Raum

Heizung.Schlafzimmer
Profil: Urlaub
Profil: Tagschicht
Profil: Nachtschicht

Heizung.Arbeitszimmer
Profil: Urlaub
Profil: Tagschicht
Profil: Nachtschicht

Heizung.Bad
Profil: Urlaub
Profil: Tagschicht
Profil: Nachtschicht

usw

Wenn ich jetzt z.B. im Schlafzimmer auf Nachtschicht umschalte dann wäre es gut wenn man den Status irgendwo sehen wurde das gerade das Profil Nachtschicht im Raum Schlafzimmer aktiviert wurde in der Art
attr activeProfile Heizung.Profil.Schlafzimmer Nachtschicht

so das ich das dann in einer readingsGroup anzeigen kann (siehe Screenshot), evtl dort sogar per Dropdown ändern kann
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Risiko

Zitat von: Afterburner am 04 Januar 2016, 17:46:14
Das mit dem Masterprofil habe ich jetzt nicht verstanden, das hat doch andere Einstellungen wie z.B. das UrlaubsProfil.
Ich lege ein weekprofil an und bekomme dann als Erstkonfiguration die Daten vom Thermostat für das ich das Profil angelegt habe.
Jetzt kopiere ich das Profil und ändere die Daten in der Kopie z.B. in den Urlaubsmodus, wenn ich jetzt das Urlaubsprofil an das Thermostat schicke dann ändert sich ja nicht das Masterprofil.

Das Masterprofil ist doch ein eigenständiges Profil wohl nur mit dem Unterschied das wenn man darin was ändert das es wohl gleich ans Thermostat geschickt wird (nicht getestet nur gelesen)
Da ist wohl noch ein Fehler  ???
Das master-Profil soll immer das aktuelle Profil vom assoziierten Device darstellen. Wenn man also ein zweites Profil z.B. Urlaub anlegt und speichert, dann können die Profile unterschiedlich sein. Wenn man nun Urlaub überträgt, dann sollte master gleich Urlaub sein. Ändert man das Profil direkt im Device, dann sollte das master-Profil sich automatisch anpassen (das aber noch nicht umgesetzt).

cjung

Danke für Deine Mühe !!

Zitat von: Risiko am 04 Januar 2016, 17:25:19
Erstmal danke für die Infos. Komme damit aber auch nicht so richtig weiter. Da steht nur "Beim HM-CC-RT-DN ist der Kanal 4 (_Clima) für die Temperaturlisten zuständig."
Wie lese ich dann nun die Profile aus?
Für das HM-CC-RT-DN werden aktuell die Readings "R_2_tempListMon, R_3_tempListTue,...R_1_tempListSun" verwendet. Habe ich auch nur übernommen.
Das passt: nur das diese Werte beim HM-CC-RT-DN eben im Kanal 4 liegen. In meinem Fall also: Thermostat.OG.Arbeitszimmer_Clima. Das Device selbst hat die Readings nicht.
     2016-01-02 13:18:10   R_0_tempListSat 09:00 18.0 10:00 21.0 24:00 18.0
     2016-01-02 13:18:10   R_1_tempListSun 09:00 18.0 10:00 21.0 24:00 18.0
     2016-01-02 13:18:10   R_2_tempListMon 08:00 17.0 19:00 21.0 24:00 17.0
     2016-01-02 13:18:10   R_3_tempListTue 08:00 17.0 19:00 21.0 24:00 17.0
     2016-01-02 13:18:10   R_4_tempListWed 08:00 17.0 19:00 21.0 24:00 17.0
     2016-01-02 13:18:10   R_5_tempListThu 08:00 17.0 19:00 21.0 24:00 17.0
     2016-01-02 13:18:10   R_6_tempListFri 08:00 18.0 19:00 21.0 24:00 18.0
     2016-01-02 13:18:10   R_tempList_State verified 

Beim Wandthermostat HM-TC-IT-WM-W-EU liegen die Werte in Kanal 2. In meinem Fall also: Wandthermostat.OG.Atelier_Climate. Dort gibt es allerdings gleich 3 verschiedene Wochenprogramme.
Ich behaupte jetzt einfach mal, das viele nur das erste Programm nutzen.
     2016-01-02 12:21:58   R_P1_0_tempListSat 06:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_1_tempListSun 06:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_2_tempListMon 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_3_tempListTue 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_4_tempListWed 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_5_tempListThu 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_6_tempListFri 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
     2016-01-02 12:21:58   R_P1_tempList_State verified
     2016-01-02 12:22:02   R_P2_0_tempListSat 24:00 17.0
     2016-01-02 12:22:02   R_P2_1_tempListSun 24:00 17.0
     2016-01-02 12:22:02   R_P2_2_tempListMon 24:00 17.0
     2016-01-02 12:22:02   R_P2_3_tempListTue 24:00 17.0
     2016-01-02 12:22:02   R_P2_4_tempListWed 24:00 17.0
     2016-01-02 12:22:02   R_P2_5_tempListThu 24:00 17.0
     2016-01-02 12:22:02   R_P2_6_tempListFri 24:00 17.0
     2016-01-02 12:22:02   R_P2_tempList_State verified
     2016-01-02 12:22:06   R_P3_0_tempListSat 24:00 17.0
     2016-01-02 12:22:06   R_P3_1_tempListSun 24:00 17.0
     2016-01-02 12:22:06   R_P3_2_tempListMon 24:00 17.0
     2016-01-02 12:22:06   R_P3_3_tempListTue 24:00 17.0
     2016-01-02 12:22:06   R_P3_4_tempListWed 24:00 17.0
     2016-01-02 12:22:06   R_P3_5_tempListThu 24:00 17.0
     2016-01-02 12:22:06   R_P3_6_tempListFri 24:00 17.0
     2016-01-02 12:22:06   R_P3_tempList_State verified

Zitat von: Risiko am 04 Januar 2016, 17:25:19
Mann muss beim define natürlich den Namen des Devices angeben und nicht die Kanäle.

Leider funktioniert es bei mir weder mit dem Device noch mit dem Kanal :-(
Wenn ich irgendwie helfen kann, melde Dich einfach.
Raspberry Pi 2 B
Funk: HM_CFG_USB2, HM-CFG-LAN 8*HM_CC_RT_DN, 3*HM-SEC-SD, 3*HM_TC_IT_WM_W_EU, 1*HM-LC-Dim1TPBU-FM,5*HM-SEC-SC-2, 1*HM-SEC-SCo
Wired: HMW: CFG-LAN, 8*LC_Bl1_DR, LC_Dim1L_DR

martinp876

Hi,
ich habe soeben ein wiki zu templisten\woochenplaenen unter hminfo eingestellt. Das erklärt wie man wochenplan meiner Ansicht nach verwaltet.
Ein wochenplan sollte abstrakt abgelegt werden. Ich muss ihn auf unterschiedliche entities anwenden können, ohne ihn zu aendern. Die in hminfo passen für alle homematic Thermostaten.
Ferner muss ein template auf mehrere entities anwendbar sein. Will sagen ich muss einem template mehrere Namen geben können. Anders herum muss ich ein template mehreren entities zuweisen können. Somit setze ich im Thermostat ein attr tempListTmpl mit dem gewünschten Namen. Im template file hat ein template mehr als einen Namen.
Nun 3. müssen alle templates mit einem Rutsch ausgetauscht werden können. Z. B. Wenn der Sommer plötzlich kommt.
Das komplette handling ist implementiert. Was fehlt ist das editieren des template files.

Wäre schön, wenn der wochenplan sich auf das erstellen eines wochenplan  konzentriert. Das koennte man dann prima nutzen. Hminfo prüft u.a. einiges an Sinnhaftigkeit in der Implementierung. Wenn ihr hier eingreift stimmt das alles nicht mehr.
Mit anderen Worten: implementiert keine Funktionen, die schon auf den unteren layern existieren und auch dort bleiben sollten.

Vielleicht sind ein paar Anregungen im wiki. Falls ein interface zu hm fehlt kann ich dies bereitstellen.

Risiko

Hallo martinp876.
Danke für die Ausführungen.
Ich werden mir das zeitnah ansehen und dich ggf.  privat kontaktieren.
Wenn ich es so auf die Schnelle richtige verstehe, dann bräuchte man nur eine Schnittstelle zu HMInfo, da es alle HM-Thermostate unterstützt.
Im Fall von HMInfo bräuchten die Profile nicht in diesem Modul gespeichert zu werden. Wäre dann nur ein Aufsatz zur Bearbeitung!?
Bei anderen Geräten (MAX, HC, etc.) gibt es sowas wie HMInfo nicht, deshalb ist dieses Modul entstanden.


VolkerGBenner

#36
Hallo,
ich könnt euch knutschen.
Ich zerbrech mir seit Tagen, den Kopf, wie ich genau das hier umsetzen kann und stoße nur durch Zufall auf Sourceforge auf dieses neue Modul 98_weekprofile .
Ich habs gleich ausprobiert und es scheint bisher mal fehlerfrei zu arbeiten.

Seit wann arbeitest Du denn schon an dem Modul, Risiko? Das ist soo geil. Du musst all meine Weihnachtswünsche zur Wochenprofilsteuerung mitbekommen haben.

Gruß
Volker
1x  RasPiB3+  mit RPI-RF-MOD und piccu3
1x HM-TC-IT-WM-W-EU, 1x HM-CC-RT-DN, 1xHM-SEC-SCo,
HM-LC-Sw4-DR, HM-WDS30-OT2-SM, HM-Dis-WM55, 7x HmIP-eTRV-B,

martinp876

Korrekt. Wenn man das file generiert ist der Rest schon vorhanden. Zumindest einige Teile. Gerne passe ich das verhalten von hminfo entsprechend an, wenn es notwendig ist.
Da hminfo mehr ist als eine heizungssteuerung und weniger als ein Frontend sollte es Sinn machen. Heating controller scheint es schon mehrere zu geben.
Aus meiner Sicht sollte jede Familie ein hminfo-like Modul haben, das sich um Daten Konsistenz und Nutzung kümmert.
Gerne können wir es zusammenführen.

YellowBall

#38
Ich kriege das Modul nicht ans Laufen:

Habe die aktuelle Version von Sourceforge runtergeladen, ins Modulverzeichnis kopiert, User, Group und Rechte sind auch OK, aber ich bekomme die Fehlermeldung:


Error messages while initializing FHEM:
configfile: Cannot load module weekprofile


in der fhem.cfg steht testweise:


define wp weekprofile MAX_0914ea
attr wp room Thermostate



Wenn ich versuche die Datei via FHEM zu erstellen bekomme ich die Fehlermeldung:


ERROR:

Can't locate JSON.pm in @INC (@INC contains: ./FHEM/lib ./lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/98_weekprofile.pm line 13. BEGIN failed--compilation aborted at ./FHEM/98_weekprofile.pm line 13.


Mit dem Vorgänger  99_UtilsMaxProf.pm klappte alles einwandfrei...
Raspi 0,1,2,3,4 | HMUART | Broadlink | Harmony | Xiaomi | Milight | Homematic | Somfy | Sonos | Meross  | Sonoff  | Shelly | Comet DECT  | ioBroker

VolkerGBenner

Das weekprofile-Modul steckt in 98_weekprofile.pm  und ist mit "update" automatisch in Fhem. Musste nichts von Sourceforge holen.
1x  RasPiB3+  mit RPI-RF-MOD und piccu3
1x HM-TC-IT-WM-W-EU, 1x HM-CC-RT-DN, 1xHM-SEC-SCo,
HM-LC-Sw4-DR, HM-WDS30-OT2-SM, HM-Dis-WM55, 7x HmIP-eTRV-B,

cjung

Zitat von: YellowBall am 06 Januar 2016, 10:56:10

Error messages while initializing FHEM:
configfile: Cannot load module weekprofile



ERROR:

Can't locate JSON.pm in @INC (@INC contains: ./FHEM/lib ./lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/98_weekprofile.pm line 13. BEGIN failed--compilation aborted at ./FHEM/98_weekprofile.pm line 13.


Mit dem Vorgänger  99_UtilsMaxProf.pm klappte alles einwandfrei...

Du musst das Perl Modul JSON::PP installieren. Alternativ mit apt-get  das package libjson-pp-perl sonst gibt es beim "define" einen Fehler.
Raspberry Pi 2 B
Funk: HM_CFG_USB2, HM-CFG-LAN 8*HM_CC_RT_DN, 3*HM-SEC-SD, 3*HM_TC_IT_WM_W_EU, 1*HM-LC-Dim1TPBU-FM,5*HM-SEC-SC-2, 1*HM-SEC-SCo
Wired: HMW: CFG-LAN, 8*LC_Bl1_DR, LC_Dim1L_DR

VolkerGBenner

Darf ich hier auch noch Wünsche äußern : FeatureRequest

SirUli hat ja schon erwähnt, dass es nützlich wäre, die Tagesprofile innerhalb der Wochenprofile kopieren zu können. Zusätzlich wäre dann noch praktisch, die Wochenprofile der einzelnen Geräte untereinander kopieren zu können, so wie es im MAX!-UI gemacht werden kann. Das war bislang der einzige Grund, warum ich den Cube nicht schon längst rausgeschmissen habe.

1x  RasPiB3+  mit RPI-RF-MOD und piccu3
1x HM-TC-IT-WM-W-EU, 1x HM-CC-RT-DN, 1xHM-SEC-SCo,
HM-LC-Sw4-DR, HM-WDS30-OT2-SM, HM-Dis-WM55, 7x HmIP-eTRV-B,

YellowBall

Zitat von: cjung am 06 Januar 2016, 14:55:56
Du musst das Perl Modul JSON::PP installieren. Alternativ mit apt-get  das package libjson-pp-perl sonst gibt es beim "define" einen Fehler.

Perfekt! Das hat schon mal geklappt - vielen Dank!

Raspi 0,1,2,3,4 | HMUART | Broadlink | Harmony | Xiaomi | Milight | Homematic | Somfy | Sonos | Meross  | Sonoff  | Shelly | Comet DECT  | ioBroker

YellowBall

Ich habe das System noch nicht kapiert:

habe mal testweise folgendes definiert:

# TEST ---------------
define wp_Wohnzimmer weekprofile MAX_0914ea
attr wp_Wohnzimmer alias Wochenprofil Wohnzimmer
attr wp_Wohnzimmer room Thermostate


Und bekomme nur das im Webfrontend zu sehen was ich angehängt habe.
Gibt es dazu vielleicht ein einfaches HowTo?

Raspi 0,1,2,3,4 | HMUART | Broadlink | Harmony | Xiaomi | Milight | Homematic | Somfy | Sonos | Meross  | Sonoff  | Shelly | Comet DECT  | ioBroker

cjung

@YellowBall:

Zitat von: Afterburner am 24 Dezember 2015, 11:49:44
btw falls noch jemand sucht wie man die Profile bearbeitet, dazu muss man auf die 3 Zahnräder klicken ^^
Raspberry Pi 2 B
Funk: HM_CFG_USB2, HM-CFG-LAN 8*HM_CC_RT_DN, 3*HM-SEC-SD, 3*HM_TC_IT_WM_W_EU, 1*HM-LC-Dim1TPBU-FM,5*HM-SEC-SC-2, 1*HM-SEC-SCo
Wired: HMW: CFG-LAN, 8*LC_Bl1_DR, LC_Dim1L_DR