FHEM Forum

FHEM => Automatisierung => Thema gestartet von: persching am 28 September 2015, 21:27:56

Titel: Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: persching am 28 September 2015, 21:27:56
Hallo,
ich habe je Raum 4 Heating_Control Profile, die ich über Dummys schalte. Es gibt dort die Profile "Aus", "Minimal", "Arbeitstag" und "KeinArbeitstag". Aus und Minimal für Sommer bzw. die Übergangszeit und Arbeitstag und KeinArbeitstag für Wochenende, Feiertage und Ferien. Es ist - logischerweise - je Raum nur ein Profil akiv. Die anderen haben den Status "inaktiv". Jetzt habe ich zusätzlich noch die Anwesenheitskontrolle integriert und bin dann auf den Befehl "Heating_Control_Setalltemps()" gestoßen. Das ist ja eine tolle Funktion, aber leider werden alle HC ausgeführt, auch die, die inaktiv sind. Somit entscheidet welches Heating Control zuletzt in der fhem.cfg steht, denn das wird auch als letztes ausgeführt.
Wäre es nicht sinnvoller, dass nur die Heating Controls aktualisiert werden, die nicht "inaktiv" sind???

gruß persching
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 28 September 2015, 22:59:45
Ansich sollte das egal sein, weil die inaktiven zwar auch berücksichtigt werden, aber weil sie inaktiv sind nicht schalten sollten - oder?
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: persching am 29 September 2015, 06:11:20
Doch die werden geschalten. Bei meinen Kinderzimmern läuft derzeit das Minimal Programm, aber nach dem setalltemps haben sie die Temperatur vom Aus-Programm. Beim nächsten Schaltpunkt korrigiert sich alles.
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: persching am 03 Oktober 2015, 11:36:41
Hallo Dietmar,
ist das Problem für dich nachvollziehbar? Kannst du das fixen? Wenn nicht muss ich versuchen mir selbst etwas in der myUtils.pm zu basteln.

gruß persching
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 03 Oktober 2015, 13:41:48
Jein,
Kannst du bei allen HC bevor du SetAllTemps ausführst und verbose 5 setzen und mir dann den Logauszug zur Verfügung stellen. Bitte auch alle deine Definitionen anhängen.

Das ganze ist nicht so trivial wie es aussieht.
Eigentlich kann man activie/inactive nicht wirklich feststellen, weil das immer auch von der Bedingung am  Ende des Define abhängig ist. Ich habe es aber trotzdem versucht.

Vielleicht gibt  es bei SetAllTemps noch eine Lücke. Vielleicht muss ich den Status irgendwie verändern oder gar  abschaffen, weil nicht wirklich machbar ist.

Sende mir die Daten dann werde ich den Fall untersuchen.


Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 03 Oktober 2015, 15:34:33
ich kann den Fall jetzt schon selbst nachvollziehen.
Es ist wie du sagst.

Ich habe aber noch keine schnelle Lösung parat. Das muss ich mir erst einmal durch den Kopf gehen lassen.
Es hat etwas damit zu tun, dass setAllTemps() sich für jeden existierenden timer die letze Schlatzeit ermittelt, leider in der definierten Reihenfolge. Das kann genau den Effekt haben, den du beschreibst.

Ich selbst nutze setAllTemps() sehr selten, da  fällt es mir nicht auf.

Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: persching am 03 Oktober 2015, 20:00:20
Ich nutze setalltemps nach dem wieder jemand Zuhause ist. Nach Abwesenheit fahre ich die Räume die stark geheizt sind um zwei Grad runter. In sofern wäre das korrekt funktionierende setalltemps perfekt um wieder zum normalen Modus zu wechseln.
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 03 Oktober 2015, 22:26:20
Das wird ein wenig dauern, weil ich erst einmal nachdenken muss, wie ich es am besten lösen kann.
Solange kannst du dir nur helfen die HC in verbesserter Reihenfolge anzulegen.

Hcs erzeugen Code der alles mögliche machen kann und übergibt ihn zur Ausführung an fhem(). Hat vom Inhalt keine Ahnung und kann nicht sagen zwischen welchen HC eine Abhängigkeit besteht.

IIch muss jetzt irgendwie für eine Synchronisation sorgen.
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 04 Oktober 2015, 20:12:35
Ich habe jetzt eine Version, die zu funktionieren scheint.
Sie muss noch ein wenig getestet werden, dann checke ich sie ein.
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 05 Oktober 2015, 20:38:53
habe es freigegeben  - bitte updaten und ausprobieren:

Zitat98_WeekdayTimer, 98_Heating_Control: bug in WeekdayTimer_SetAllParms() and Heating_Control_SetAllTemps() fixed. The old version could process the timers in a  random order. this will not.
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: sengelking am 07 Oktober 2015, 21:18:00
Hallo,
dieses Update scheint bei mir Probleme zu verursachen.
Ich habe unter anderem folgende Profile definiert:
################################################################################################################################
define dining_prof Heating_Control fht_dining Mo-Sa|06:30|21.5 Mo-Fr|09:30|15 Mo-Sa|12:00|21.5 Sa|10:30|15 So|08:30|21.5 So|11:00|15 So|12:30|21.5 14:30|15 17:40|21.5 19:30|15 22:00|13 05:30|15 ((ReadingsVal("@", "mode", "auto") !~ /holiday/) && (Value("bw") eq "none"))
attr dining_prof disable 0
attr dining_prof room Dining
################################################################################################################################
define dining_prof_hol Heating_Control fht_dining Mo-Fr|05:35|15 Mo-Fr|07:15|21.5 Mo-Fr|08:35|21 Mo-Fr|09:30|15 Mo-Sa|12:00|21.5 Sa|07:00|21.5 Sa|10:30|15 So|08:30|21.5 So|11:00|15 So|12:30|21.5 14:00|15 17:40|21.5 19:30|15 22:00|13 05:30|15 ((ReadingsVal("@", "mode", "auto") !~ /holiday/) && (Value("bw") eq "none" && Value("ferien") ne "none" ))
attr dining_prof_hol disable 1
attr dining_prof_hol room Dining
################################################################################################################################
define dining_prof_bank Heating_Control fht_dining Mo-Fr|05:35|15 Mo-Fr|08:35|21 Sa|07:05|15 Sa|10:35|15 Mo-Sa|12:05|15 08:30|21.5 11:00|15 12:30|21.5 14:00|15 17:40|21.5 19:30|15 22:00|13 05:30|15 ((ReadingsVal("@", "mode", "auto") !~ /holiday/) && (Value("bw") ne "none" ))
attr dining_prof_bank room Dining
################################################################################################################################


Im Log bekomme ich nun diese Meldung:
2015.10.07 12:00:00 3: [dining_prof] Timer 12:00 overwritten by 2015-10-07 14:30:00
2015.10.07 12:00:00 3: [dining_prof_hol] Timer 12:00 overwritten by 2015-10-07 12:30:00

Und die Heizung geht leider nicht an.
Der Zeitpunkt zum ausschalten funktioniert aber:
2015.10.07 14:30:00 2: FHT set fht_dining desired-temp 15.0

Kann man das irgendwie lösen?
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 07 Oktober 2015, 23:24:09
Habe die Änderung erst einmal zurückgenommen.
Das Feature ist nicht so wichtig.
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: sengelking am 07 Oktober 2015, 23:54:18
Danke
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: persching am 07 November 2015, 12:11:43
Wäre es denn möglich statt alle Temperaturen mit einem Aufruf die einzelnen heating controls einzeln zu setzen? Dann könnte man die Bedingungen ja so drum rum bauen. Wäre zwar schon viel einfacher mit einem Aufruf alles zu setzen, aber mit der anderen Version könnte ich auch sehr gut leben, da das ja nur einmal Programmierarbeit wäre...
Titel: Antw:Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum
Beitrag von: Dietmar63 am 08 November 2015, 17:21:25
Zitat von: persching am 07 November 2015, 12:11:43
Wäre es denn möglich statt alle Temperaturen mit einem Aufruf die einzelnen heating controls einzeln zu setzen? Dann könnte man die Bedingungen ja so drum rum bauen. Wäre zwar schon viel einfacher mit einem Aufruf alles zu setzen, aber mit der anderen Version könnte ich auch sehr gut leben, da das ja nur einmal Programmierarbeit wäre...

ja, das geht mit:

Heating_Control_SetTemp("<NameDesDevice>")