Heating_Control_SetAllTemps() und verschiedene HC Profile je Raum

Begonnen von persching, 28 September 2015, 21:27:56

Vorheriges Thema - Nächstes Thema

persching

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

Dietmar63

Ansich sollte das egal sein, weil die inaktiven zwar auch berücksichtigt werden, aber weil sie inaktiv sind nicht schalten sollten - oder?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

persching

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.

persching

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

Dietmar63

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.


Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

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.

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

persching

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.

Dietmar63

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.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

Ich habe jetzt eine Version, die zu funktionieren scheint.
Sie muss noch ein wenig getestet werden, dann checke ich sie ein.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

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.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

sengelking

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?
FHEM aud RaspberryPi

Dietmar63

Habe die Änderung erst einmal zurückgenommen.
Das Feature ist nicht so wichtig.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

sengelking

FHEM aud RaspberryPi

persching

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...

Dietmar63

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>")
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm