Modul weekprofile + FHEMWEB widget

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

Vorheriges Thema - Nächstes Thema

kadettilac89

Zitat von: treborst am 16 Februar 2018, 17:40:34
Bis zu meiner Anfrage hat es ja auch schon "zur Hälfte" funktioniert, die Vorgabe "OFF" wurde richtig umgesetzt, das Ventil ist dauerhaft geschlossen.
Nur der Wert "ON" wurde im Thermostat falsch gesetzt (OFF statt ON)

Das "zur Hälfte" ist eine Fehlinterpretation.

Risiko kann mit dem Weekprofile nur setzen was das Thermostat auch zulässt. Kannst selber testen, setze die Templist für einen Tag mal an auf "on" und auch mal auf "off". Egal was gesetzt ist, wird 00.0 eingetragen. Das ist ein Initialwert oder Dummy weil das Thermostat nicht weiß was du willst.

Beispiele

set Heizung_Clima tempListSat 06:00 18.0 07:00 19.0 16:00 21.5 24:00 on
set Heizung_Clima tempListSat 06:00 18.0 07:00 19.0 16:00 21.5 24:00 off

wird beide Male zu "R_0_tempListSat
06:00 18.0 07:00 19.0 16:00 21.5 24:00 00.0".

Als Workaround hat Risiko nun auf die Attribute tempON und tempOFF zurück gegriffen. Dein gewünschtes Verhalten sollte aber mit 4 bzw. 30 als Attribut erreichbar sein.

Bei 4 bleibt das Thermostat zu. Bei 30 wird es offen bleiben solange die Temperatur in deinem Zimmer darunter liegt.

Risiko

Zitat von: Tom_S am 15 Februar 2018, 22:31:17
kurze Frage. Nutzt jemand das attr "widgetEditOnNewPage"
wenn ich das gesetzt habe, kann ich das Profil nicht mehr ändern. Habe jetzt lange gesucht, und festgestellt, das es nur daran liegt.
Ich habe es jetzt noch mal auf einem anderen System getestet. Mit dem gleichen Ergebnis. Auf das Zahnrad klicken -> Temperatur ändern -> speichern, und alles ist wie es war. Ich meine das hat schon mal funktioniert.

LG Tom
Also ich konnte kein Fehler feststellen. Allerdings kann es sein, dass beim "Rückspringen" auf die vorherige Seite vor der Bearbeitung, die Seite aus dem Browser Cache  (also die 'alte' Seite) dargestellt wird. Hier hilft ein Reload.
Ich habe einen kleinen Fix eingebaut, welchen den "HTTP-Referrer" verwendet, falls er gesetzt ist.

Tom_S

#422
Browser Cache kann ich ausschließen. Es wir ja auch nichts an's Thermostat gesendet. Ich verwende MAX. Auf der gleichen Seite geht es, nur mit "widgetEditOnNewPage" wird nichts geändert. csrf-Token ist an. Funktioniert aber auch nicht ohne.
Ich gehe davon aus, das es bei dir funktioniert.

LG Tom
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Risiko

Also ich kann wie gesagt kein Fehler feststellen.
Stelle doch mal bitte verbose vom Weekprofile auf 4 und schaue im Log, was an das Thermostat bei "Speichern" gesendet wird.

Tom_S

also wenn attr "widgetEditOnNewPage"  0 ist  dann wird
2018.02.20 16:59:24 4: weekp_Thermostat_1(sendDevProfile): set Thermostat_1 weekProfile Mon 17.0,06:00,17.5,07:20,17.0,14:00,22.0,20:30,19.0,23:50,17.0
2018.02.20 16:59:24 4: weekp_Thermostat_1(Notify): reread master profile from Thermostat_1

gesendet.
und wenn attr "widgetEditOnNewPage" 1 ist, wird nichts gesendet.

LG Tom
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Risiko

Hmm. Kann ich leider nicht nachvollziehen. Welche Browser verwendest du?

Tom_S

hallo Risiko

ich verwende Firefox Quantum 58.02 64bit (Ubuntu, Mint, Debian).
Geht aber auch von iPhone mit Safari oder Firefox nicht.
Und gerade getestet - Windows mit IE das gleiche.
Hat wohl irgendwann mal funktioniert. Auf der gleichen Seite geht es ja.

LG Tom
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

mattes66

Hallo,
ich hatte das gleiche Problem wie Rewe2000 (https://forum.fhem.de/index.php/topic,46117.msg742961.html#msg742961). Auf meinem RPI3 mit Debian Stretch funktionierte das weekprofile Widget nicht.
Ich habe dann hier https://forum.fhem.de/index.php/topic,76842.msg687580.html#msg687580 eine Lösung "geklaut" und das Modul 98_weekprofile.pm an 6 Stellen angepasst
my $json = JSON->new;
geändert in
my $json = JSON->new->allow_nonref;
Jetzt gibt es keine JSON-Fehler mehr und Laden und Speichern der Wochenprofile geht wieder.
Vielleicht hilft es ja jemanden.
Gruß
Matthias

Risiko

Hallo mattes66,

vielen Dank.
Anbei mal eine Version mit der Änderung. Ich konnte keine Probleme feststellen.
Weiß jemand, ob das auch mit älteren Perlversionen funktioniert?

Risiko

AlexD_76

#429
Moin,

erstmal vielen Dank an Risiko für dieses geniale Modul!
Hab jetzt auch damit meine Wochenpläne für die Homematic Wandthermostate umgesetzt, vorher hatte ich eine Eigenkreation am laufen, die die Thermostate zur gegebenen Zeit im Manuellen Modus geschaltet hat.
Die Nachteile waren halt, dass man am Thermostat nicht sehen konnte, wann die nächste Änderung stattfindet und dass bei einem zeitweisen Ausfall von fhem keine Umschaltung mehr stattfindet.
Was mich jedoch beim Wochenprofil ein bischen gestört hat, waren die Datenmengen beim Umschalten der Topics, daher habe ich 98_weekprofile.pm so angepasst, dass nun die 3 Programme genutzt werden, die der Wandthermostat unterstützt.
Wenn ich also einen Topic anwende, schaltet weekprofile nun das aktive Programm des Wandthermostaten um und aktualisiert nur die entsprechenden Register, falls sie nicht übereinstimmen.
Dadurch kann ich mir einige Overloads ersparen und das Umschalten der Profile geht auch schneller.

Da ich das sehr praktisch finde, wollte ich das hier mal teilen. Sicher ist der Ansatz noch ausbaufähig, zu beachten ist z.B. dass dies nur bei den Wandthermostaten funktioniert (HM-TC-IT-WM-W-EU), da die Heizkörperthermostate leider nur über ein Profil verfügen. Im Mischbetrieb wird das wahrscheinlich zu fehlern führen, das habe ich nicht berücksichtigt, da müsste man vor dem Senden prüfen, um welches Modell es sich handelt und entsprechend unterschiedlich reagieren.

Um das ganze nutzen zu können, müssen für die Topics, die umgelagert werden sollen, Userattribute im weekprofile angelegt werden.
Beispiel:
attr S_Heizung_WochenProfil userattr Urlaub Sommer
attr S_Heizung_WochenProfil Sommer 3
attr S_Heizung_WochenProfil Urlaub 2

Das bewirkt, dass für die Topic Sommer immer das Programm 3 genutzt wird und für das Topic Urlaub das Programm 2.
Alle anderen Topics nutzen Programm 1, wie gewohnt. Mehrfache Belegungen für 2 und 3 sind auch möglich.

Meine angepasste Datei habe ich angehängt, die Änderungen sind jeweils #Svenchange start/end markiert.

Viele Grüße
Sven

Soc

Erstmal Danke für das tolle Modul.
Habe meine Homematic Thermostate damit versorgt und es funktioniert einwandfrei.

3 Thermostate habe ich über das Homematic Wandthermostat (HM-TC-IT-WM-W-EU) gesteuert und frage mich gerade ob das jemand schon für die Device am laufen hat.
Bisher habe ich ein weekprofile pro Device angelegt.
Wie funktioniert das mit dem Wandthermostat?

Kann mir jemand weiter helfen?

Risiko

Danke AlexD_76,

vielen Dank.
Ich schaue es mit bei Gelegenheit an und überlege, ob ich es übernehme.
Eigentlich wollte ich nicht so viel Device spezifische Sachen einbauen, zumal ich es wegen fehlender Hardware nicht wirklich supporten kann.
Ich melde mich wieder.

Risiko

Hallo AlexD_76,

so ganz kompatibel scheint mir das nicht zu sein. Es sieht für mich so aus, als wenn das jetzt nur noch für dieses spezielle Thermostat funktioniert.
Es müsste zumindest im Default-Fall  Profilselect auf undefined stehen und das "alte" Verhalten erhalten bleiben!
So kann ich es leider nicht einfach aufnehmen, zumal ich es nicht testen kann.
Vielleicht könntest du deine Version noch etwas überarbeiten?

Wie viele wären dann an so einer Lösung (das Thermostat unterstützt selbst mehrere Profile) interessiert?


AlexD_76

Oh, da hast du Recht, in Zeile 32 wird Profilselect auf "3" gesetzt, das sollte "1" sein, dann sollte das Verhalten gleich sein wie vor meiner Änderung.

Soc

Zitat von: Risiko am 15 April 2018, 14:13:40
Wie viele wären dann an so einer Lösung (das Thermostat unterstützt selbst mehrere Profile) interessiert?

Wäre toll wenn Du das machen könntest.

Mir ist noch was aufgefallen.
Ich habe 7 HM Heizungsthermostate und für alle habe ich das Modul eingebunden.
Wenn ich die Werte anpassen will, dann wird das selten durchgeführt.
Beim ändern von einen Wert geht es öfter; beim ändern von mehreren Werten kaum.

Habe noch keine Logik entdecken können wann es geht bzw. nicht geht.
Ändere ich einen Wert, dann muss ich ihn ein paarmal ändern bevor die Änderng an das Thermostat geschickt wird.