tempList.cfg temperatur Profile

Begonnen von x347, 23 Oktober 2014, 14:03:07

Vorheriges Thema - Nächstes Thema

kadettilac89

Zitat von: martinp876 am 30 Oktober 2015, 21:41:41
Attr Schlafzimmer templist sru
Set hm templist -f Schlafzimmer restore

Für einzelne Files würde das gehen aber ich hab ein Template, in dem mehrere Profile enthalten sind. Ein Profil ist das sru neben etlichen mehr. Würde ich deinem Vorschlag folgen, muss ich dann alle Profile jedem Thermostat als Attribut zuweisen? Dann weiß aber das restore nicht welches nun verwendet werden soll.

Wie schon oben geschrieben, will ich nicht für jedes Thermostat ein eigenes File haben. Als Workaround habe ich das Modul mit "exclude-from-update" ausgenommen und bleibe auf der, für mich funktionierenden, Version.

Wenn du als Entwickler des Modules entschlossen hast, den Befehl "setTempTempl" obsolet zu setzen akzeptiere ich das. Sollte es aber durch einen Fehler nicht funktionieren kann ich dir auch Logs oder was auch immer liefern, wenn du genaue Anweisungen gibst.


Unten ein Auszug aus entsprechendem Template.

Danke schon mal.


entities:wza,sra
R_0_tempListSat>06:00 12.0 24:00 12.0
R_1_tempListSun>06:00 12.0 24:00 12.0
R_2_tempListMon>06:00 12.0 24:00 12.0
R_3_tempListTue>06:00 12.0 24:00 12.0
R_4_tempListWed>06:00 12.0 24:00 12.0
R_5_tempListThu>06:00 12.0 24:00 12.0
R_6_tempListFri>06:00 12.0 24:00 12.0

entities:srho
R_0_tempListSat>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_1_tempListSun>10:00 17.5 24:00 12.0
R_2_tempListMon>06:00 12.0 24:00 12.0
R_3_tempListTue>06:00 12.0 24:00 12.0
R_4_tempListWed>06:00 12.0 24:00 12.0
R_5_tempListThu>20:00 12.0 20:00 16.5 23:00 17.5 24:00 17.5
R_6_tempListFri>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5

entities:sru
R_0_tempListSat>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_1_tempListSun>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_2_tempListMon>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_3_tempListTue>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_4_tempListWed>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_5_tempListThu>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_6_tempListFri>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5

entities:srw
R_0_tempListSat>10:00 17.5 20:00 16.5 23:00 17.5 24:00 17.5
R_1_tempListSun>10:00 17.5 24:00 12.0
R_2_tempListMon>06:00 12.0 24:00 12.0
R_3_tempListTue>06:00 12.0 24:00 12.0
R_4_tempListWed>06:00 12.0 24:00 12.0
R_5_tempListThu>06:00 12.0 24:00 12.0
R_6_tempListFri>20:00 12.0 20:00 16.5 23:00 17.5 24:00 17.5

martinp876

ZitatFür einzelne Files würde das gehen aber ich hab ein Template, in dem mehrere Profile enthalten sind
Begriffsbestimmung: ein templatefile kann mehrere Templates enthalten. Ein template enthält ein Profil

ZitatEin Profil ist das sru neben etlichen mehr. Würde ich deinem Vorschlag folgen, muss ich dann alle Profile jedem Thermostat als Attribut zuweisen?
verstehe ich nicht. Du solltest jedem RT EIN profil zuordnen. Mehrere RTs können das selbe template nutzen. In welchen File die tempaltes liegen ist egal, können alle in einem liegen. Mehrere Files zu haben würden ich nur empfehlen, wenn man Erfahrung hat.

Was jetzt nicht mehr geht ist das dynamische Zuweisen per Kommando - man muss jetzt über das Attribut gehen. Ansonsten ist alles gleich.

Das Attribut tempList kann auch ein file beinhalten
attr schlZ tempList templistautlistung.cfg:sru
attr schlZ tempList ./setup/templistautlistung.cfg:sru

Die Vorteile sind, dass nach dem Zuweisen der Attribute HMInfo alle templisten prüfen und korrigieren kann, da für jeden RT die individuelle Liste definiert wurde. Systemweit.

set hm tempList restore
set hm tempList verify
set hm tempList status

Falls noch Fragen bestehen, gerne.


kadettilac89

Hallo,

ich frage noch etwas weiter ...

Meine Wohnung soll entsprechend meinen Projekten beheizt werden. Wenn ich normal arbeite bin ich die ganze Woche unterwegs, im FAlle Homeoffice bin ich zu Hause, Urlaub auch aber dann heizt das Büro nicht und dafür das Schlafzimmer länger, das Bad später ....

Was ich möchte ist einfach per Dropdown das Heizprofil umzustellen (oder per Google Kalender). Das File ist einfach zu editieren, das ganze in fhem direkt wären etliche notify und viel mehr Programmieraufwand.

So wie ich das jetzige lese bekommt das Thermostat ein festes Programm zugewiesen das nur geändert wird wenn ich das zugeordnete File anpasse und neu einlese. Ich ändere aktuell das Programm ggf. mehrfach in der Woche.

Ich häng mal die config an damit du siehst wie ich das aktuell handhabe. Habe das irgendwo hier im Forum gefunden und angepasst.


#### Schlafzimmer
define Programm_SR dummy
attr Programm_SR group Steuerung
attr Programm_SR room HomeMatic
attr Programm_SR setList state:Urlaub,Homeoffice,Arbeit,Aus
attr Programm_SR webCmd state

define Programm_SR_Urlaub notify Programm_SR:Urlaub set hm tempListTmpl -f Schlafzimmer sru restore tempList.cfg
define Programm_SR_HO notify Programm_SR:Homeoffice set hm tempListTmpl -f Schlafzimmer srho restore tempList.cfg
define Programm_SR_Work notify Programm_SR:Arbeit   set hm tempListTmpl -f Schlafzimmer srw restore tempList.cfg
define Programm_SR_Aus notify Programm_SR:Aus       set hm tempListTmpl -f Schlafzimmer sra restore tempList.cfg

Christian72D

Wo liegt mein Fehler? Wenn ich set hm tempList save tempList.cfg eingebe kommt die Meldung "Please define hm first".

Was mache ich falsch?

martinp876

Ich denke da sollte in HM nachgebessert werden.
Aktuell kannst du

define Programm_SR_Urlaub notify Programm_SR:Urlaub attr Schlafzimmer tempListTmpl sru; set hm tempList -f Schlafzimmer restore

was offen ist, ist ein ordentliches Filehandling. Man kann das tempListfile im attribut angeben
attr hv_Clima tempListTmpl setup/tempList.cfg:Verena
Im Dir ./setup (also fhem/setup) wird das File tempList.cfg gesucht und in diesem das template "verena".

Das Dir hat einen default, der in HMInfo festgelegt werden kann. Für den Filenamen muss ich das ergänzen. Dann wäre ein korrektes Vorgehen
attr hm configDir setup
attr hm configTempListFile myTempList.cfg

ich will meine setup files in einem eigenen Dir haben. setzt man das dir nicht ist der default ./fhem.

Wenn du nun Modi im Haus umstellen willst kannst du für jeden Fall ein File anlegen
TmplUrlaub.cfg
TmplHomeoffice.cfg
TmplArbeit.cfg   
TmplAus.cfg       
mit den jeweiligen templates.
Häufig will man die RTs in der ganzen Wohnung umstellen, das geht dann auf einmal
attr hm configTempListFile TmplAus.cfg
Mit dem Ändern des Files sollte dann automatisch ein
set hm tempList restore
ausgeführt werden.
Aber das ist Zukunft - würde dir das passen?

Heute kannst du es ähnlich machen
define Programm_SR_Urlaub notify Programm_SR:Urlaub set hm tempList -f Schlafzimmer sru restore UrlaubtempList.cfg
define Programm_SR_HO notify Programm_SR:Homeoffice set hm tempList -f Schlafzimmer sru restore HOtempList.cfg
define Programm_SR_Work notify Programm_SR:Arbeit   set hm tempList -f Schlafzimmer sru restore WorktempList.cfg
define Programm_SR_Aus notify Programm_SR:Aus       set hm tempList -f Schlafzimmer sru restore AustempList.cfg

Meinungen?

martinp876


bgewehr

Ich bin inzwischen nicht mehr sicher, ob man nicht lieber einfache weekdaytimer definiert und auf den ganzen komplizierten und sperrigen  tmplist Kram verzichten sollte. Das geht immer, reagiert sofort, ist einfach und flexibel, was meint Ihr?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Motivierte linke Hände

Ich benutze einfach nur eine Datei. In der habe ich dann Unterschiedliches definiert, z.B.:

entities:Gaestezimmer
tempListMon>24:00 17.0
tempListTue>24:00 17.0
tempListWed>24:00 17.0
tempListThu>24:00 17.0
tempListFri>24:00 17.0
tempListSat>24:00 17.0
tempListSun>24:00 17.0
entities:Gaestezimmer_abwesend
tempListMon>06:00 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
tempListTue>06:00 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
tempListWed>06:00 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
tempListThu>06:00 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
tempListFri>06:00 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
tempListSat>06:30 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
tempListSun>06:30 17.0 09:00 19.0 21:00 17.0 23:00 19.0 24:00 17.0
entities:Gaestezimmer_Gaeste
tempListMon>06:00 17.0 23:00 21.0 24:00 17.0
tempListTue>06:00 17.0 23:00 21.0 24:00 17.0
tempListWed>06:00 17.0 23:00 21.0 24:00 17.0
tempListThu>06:00 17.0 23:00 21.0 24:00 17.0
tempListFri>06:00 17.0 23:00 21.0 24:00 17.0
tempListSat>06:30 17.0 23:00 21.0 24:00 17.0
tempListSun>06:30 17.0 23:00 21.0 24:00 17.0


Je nach Bedarf kann ich den passenden Modus setzen, z.B. wenn Besuch da ist:

set Hzg_Gaestezimmer_Clima tempListTmpl restore /opt/fhem/tempList.cfg:Gaestezimmer_Gaeste

Fröhlichen Sonntag,
Christian
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

kadettilac89

Zitat von: martinp876 am 01 November 2015, 11:30:48

Aber das ist Zukunft - würde dir das passen?


Hi Martin,

schöne ausführliche Antwort, hab verstanden. Da muss ich wohl oder übel mein single Tempfile anpassen bzw. aufteilen. Ich überlege mir noch was ich mache. Aktuell hab ich das Modul vom Update ausgenommen und es funktioniert ohne dass ich was ändern muss. Vielleicht nehme ich es als Anlass meine ganzen Dinge die aktuell in der Config rumliegen in ein eigenes Modul zu packen, dann kann ich mir über die Steuerung nochmal Gedanken machen wenn ich sowieso schon rumprogrammiere.

Danke für deine Zeit und Geduld :)


kadettilac89

Zitat von: bgewehr am 01 November 2015, 11:55:48
Ich bin inzwischen nicht mehr sicher, ob man nicht lieber einfache weekdaytimer definiert und auf den ganzen komplizierten und sperrigen  tmplist Kram verzichten sollte. Das geht immer, reagiert sofort, ist einfach und flexibel, was meint Ihr?

Irgend einen Tod muss man sterben. Wenn man die Tempfiles mal verstanden hat ist es schön da alles in einer Textdatei liegt die man im Editor bearbeiten kann ohne FHEM anzufassen. Irgend wo muss man hinterlegen wann die Thermostate schalten sollen. Weekdaytimer müssen irgendwo definiert werden. Wenn man mehrere Programme pro Thermostat haben will (wie ich) dann kann es schnell unübersichtlich werden.

Für Programme die starr sind wäre es sicherlich eine Alternative.

martinp876

ich habe es soweit implementiert - werde es nachher einchecken. Es gibt der Optionen viele.

schon länger vorhanden ist
Zitatset Schlafzimmer tempListTmpl sru
set Schlafzimmer tempListTmpl sru verify
set Schlafzimmer tempListTmpl verify sru
set Schlafzimmer tempListTmpl verify tempList.cfg:sru
set Schlafzimmer tempListTmpl verify ./tempList.cfg:sru
Macht alles das gleiche. Neu wird sein, dass das template, bestehend aus <dir>/<file>:<templatename> mit HMinfo synchronisiert wird (wenn es HMInfo gibt). Will sagen man kann den Default für das File sowie das Dir in HMInfo setzen. Existiert es nicht ist default dir . und file tempList.cfg.

DeFacto überschreibt das template im Kommando das attribut tempListTmpl für die Dauer des Kommandos.
set Schlafzimmer tempListTmpl
macht ein Verify und nutzt das Attribut anstelle des expliziten templates.

Die angekündigten Möglichkeiten über das Attribut im HMInfo templates im großen Stil umzusetzen besteht damit auch.
Das kann man nun nach Gusto nutzen.

Selbstverständlich kann man auch alles über notifies u.ä. machen. auch wenn es nie mein Weg sein wird - eben nach Gusto.



DecaTec

Zitat von: martinp876 am 01 November 2015, 18:13:40
Die angekündigten Möglichkeiten über das Attribut im HMInfo templates im großen Stil umzusetzen besteht damit auch.
Das kann man nun nach Gusto nutzen.

Ich habe auch vor, mehrere Heizprofile im mehreren Config-Files zu verwalten.
Habe mir gerade das Update gezogen. Das Attribut, um ein Template-File zu "aktivieren" heßt nun configTempFile, oder?
Ein verify/restore, etc. ist nich mehr nötig?

martinp876

Noch ist das restore verify notwendig.
Auch sind die Möglichkeiten der Automatik begrenzt. Wenn es eingebaut ist kann beim setzen ein restore stattfinden. Sollten Änderungen im betrieb oder beim gestartet,..... Stattfinden wird nichts passieren. Fhem müsste es sonst zyklisch prüfen. Wenn du dies wünschst mache das z.b. täglich mit einem at, ein restore. Wenn nichts zu tun ist wird nichts getan

DecaTec

Ja, habe ich gestern probiert, nur das Setzen des configTempFile reicht hier nicht.
Sehe ich das dann richtig, dass dieses Attibut nur dafür gedacht ist, wenn man die TempList-Datei anders benennen will wie tempList.cfg?

Wenn dem so ist, dann muss ich dieses Attribut ja gar nicht setzen, wenn ich das Heizprofil umschalten will, dann müsste ein restore neueTempList.cfg reicht.
Sehe ich das richtig?

DecaTec

So, habe nun ein wenig rumprobiert, bekomme es aber nicht so hin wie gewünscht. Ich wälze schon seit Tagen Wiki-Einträge, komme aber nicht weiter. Wäre daher über jeden Tipp dankbar.

Folgende Situation:
Bei den verwendeten HM Geräten (siehe Signatur) ist autoReadReg auf 5_readMissing konfiguriert (in den Devices, nicht in den Channels).

Nun habe ich zwei TempListen (ich Liste hier nur die Einträge für einen Raum auf, die anderen Räume sind analog konfiguriert):

tempList.cfg (Normalbetrieb):

entities:Buero.Heizung_Clima
R_0_tempListSat>24:00 0.0
R_1_tempListSun>24:00 0.0
R_2_tempListMon>24:00 0.0
R_3_tempListTue>24:00 0.0
R_4_tempListWed>24:00 0.0
R_5_tempListThu>24:00 0.0
R_6_tempListFri>24:00 0.0
entities:Buero.Thermostat_Climate
R_P1_0_tempListSat>10:00 17.0 20:00 21.0 24:00 17.0
R_P1_1_tempListSun>10:00 17.0 20:00 21.0 24:00 17.0
R_P1_2_tempListMon>16:00 17.0 20:00 21.0 24:00 17.0
R_P1_3_tempListTue>16:00 17.0 20:00 21.0 24:00 17.0
R_P1_4_tempListWed>16:00 17.0 20:00 21.0 24:00 17.0
R_P1_5_tempListThu>16:00 17.0 20:00 21.0 24:00 17.0
R_P1_6_tempListFri>16:00 17.0 20:00 21.0 24:00 17.0
R_P2_0_tempListSat>24:00 17.0
R_P2_1_tempListSun>24:00 17.0
R_P2_2_tempListMon>24:00 17.0
R_P2_3_tempListTue>24:00 17.0
R_P2_4_tempListWed>24:00 17.0
R_P2_5_tempListThu>24:00 17.0
R_P2_6_tempListFri>24:00 17.0
R_P3_0_tempListSat>24:00 17.0
R_P3_1_tempListSun>24:00 17.0
R_P3_2_tempListMon>24:00 17.0
R_P3_3_tempListTue>24:00 17.0
R_P3_4_tempListWed>24:00 17.0
R_P3_5_tempListThu>24:00 17.0
R_P3_6_tempListFri>24:00 17.0


tempListAbsent.cfg (Heizungen sollen komplett aus sein):

entities:Buero.Heizung_Clima
R_0_tempListSat>24:00 0.0
R_1_tempListSun>24:00 0.0
R_2_tempListMon>24:00 0.0
R_3_tempListTue>24:00 0.0
R_4_tempListWed>24:00 0.0
R_5_tempListThu>24:00 0.0
R_6_tempListFri>24:00 0.0
entities:Buero.Thermostat_Climate
R_P1_0_tempListSat>24:00 0.0
R_P1_1_tempListSun>24:00 0.0
R_P1_2_tempListMon>24:00 0.0
R_P1_3_tempListTue>24:00 0.0
R_P1_4_tempListWed>24:00 0.0
R_P1_5_tempListThu>24:00 0.0
R_P1_6_tempListFri>24:00 0.0
R_P2_0_tempListSat>24:00 17.0
R_P2_1_tempListSun>24:00 17.0
R_P2_2_tempListMon>24:00 17.0
R_P2_3_tempListTue>24:00 17.0
R_P2_4_tempListWed>24:00 17.0
R_P2_5_tempListThu>24:00 17.0
R_P2_6_tempListFri>24:00 17.0
R_P3_0_tempListSat>24:00 17.0
R_P3_1_tempListSun>24:00 17.0
R_P3_2_tempListMon>24:00 17.0
R_P3_3_tempListTue>24:00 17.0
R_P3_4_tempListWed>24:00 17.0
R_P3_5_tempListThu>24:00 17.0
R_P3_6_tempListFri>24:00 17.0


Zu beachten: Ich lasse die Thermostate an der Heizung immer auf 0°C eingestellt, um die Last am HMlan möglichst gering zu halten, wenn zwischen den Heizprofilen hin und her geschaltet wird. Diese werden dann über die Wandthermostate gesteuert (Channels ,,Clima" am Heizungsthermostat und ,,Climate" am Wandthermostat sind gepeert).

Nun habe ich in 99_myUtils.pm zwei Funktionen definiert, die die Heizungsprofile umschalten sollen:

sub
SetTempListHeizung()
{
   { fhem ("set HMinfo tempList restore tempList.cfg")};
}
# End SetTempListHeizung

sub
SetTempListHeizungAbsence()
{
   { fhem ("set HMinfo tempList restore tempListAbsent.cfg")};
}
# End SetTempListHeizungAbsence


Ich habe gerade FHEM neu gestartet und dem HMlan kurz vom Strom getrennt (wegen Overload). Die Heizungen befanden sich im Zustand "anwesend" (tempList.cfg).
Sobald ich nun {SetTempListHeizungAbsence} aufrufe, würde ich erwarten, dass FHEM lediglich die Wochenprogramme 1 der Wandthermostate "umprogrammiert".

Im Log erscheint dann zunächst folgendes (für alle entsprechenden Channels):

2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListSat prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListSun prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListMon prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListTue prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListWed prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListThu prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListFri prep p1 24:00 0.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListSat prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListSun prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListMon prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListTue prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListWed prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListThu prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListFri prep p2 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListSat prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListSun prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListMon prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListTue prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListWed prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListThu prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListFri prep p3 24:00 17.0
2015.11.03 16:48:20 3: CUL_HM set Buero.Thermostat_Climate tempListFri exec p3 24:00 17.0


Anschließend:

passed: ./././FHEM/tempListAbsent.cfg:Buero.Thermostat_Climate for Buero.Thermostat_Climate
passed: ./././FHEM/tempListAbsent.cfg:Kueche.Heizung_Clima for Kueche.Heizung_Clima
passed: ./././FHEM/tempListAbsent.cfg:Kueche.Thermostat_Climate for Kueche.Thermostat_Climate
passed: ./././FHEM/tempListAbsent.cfg:Schlafzimmer.Heizung_Clima for Schlafzimmer.Heizung_Clima
passed: ./././FHEM/tempListAbsent.cfg:Schlafzimmer.Thermostat_Climate for Schlafzimmer.Thermostat_Climate
passed: ./././FHEM/tempListAbsent.cfg:Wohnzimmer.HeizungFenster_Clima for Wohnzimmer.HeizungFenster_Clima
passed: ./././FHEM/tempListAbsent.cfg:Wohnzimmer.HeizungTv_Clima for Wohnzimmer.HeizungTv_Clima
passed: ./././FHEM/tempListAbsent.cfg:Wohnzimmer.Thermostat_Climate for Wohnzimmer.Thermostat_Climate


get hm configCheck: Hier gibt's mismatches, soweit logisch.

incomplete register list
    Buero.Thermostat_Climate: RegL_07:
    Schlafzimmer.Thermostat_Climate: RegL_07:

Register changes pending
    Buero.Thermostat_Climate
    Kueche.Thermostat_Climate
    Schlafzimmer.Thermostat_Climate
    Wohnzimmer.Thermostat_Climate

trigger sent to undefined device
    triggerUndefined: Wohnzimmer.Killswitch_ButtonOff:2BAC0F
    triggerUndefined: Wohnzimmer.Killswitch_ButtonOn:2BAC0F

templist mismatch
    Buero.Thermostat_Climate: failed Entries:
     Buero.Thermostat_Climate :R_P1_0_tempListSat mismatch 10:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
     Buero.Thermostat_Climate :R_P1_1_tempListSun mismatch 10:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
     Buero.Thermostat_Climate :R_P1_2_tempListMon mismatch 16:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
     Buero.Thermostat_Climate :R_P1_3_tempListTue mismatch 16:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
     Buero.Thermostat_Climate :R_P1_4_tempListWed mismatch 16:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
     Buero.Thermostat_Climate :R_P1_5_tempListThu mismatch 16:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
     Buero.Thermostat_Climate :R_P1_6_tempListFri mismatch 16:00 17.0 20:00 21.0 24:00 17.0 ne 24:00 0.0 ##
Buero.Thermostat_Climate: tempList not verified
    Kueche.Thermostat_Climate: failed Entries:
     Kueche.Thermostat_Climate :R_P1_0_tempListSat mismatch 24:00 17.0 ne 24:00 0.0 ##
     Kueche.Thermostat_Climate :R_P1_1_tempListSun mismatch 24:00 17.0 ne 24:00 0.0 ##
     Kueche.Thermostat_Climate :R_P1_2_tempListMon mismatch 24:00 17.0 ne 24:00 0.0 ##
     Kueche.Thermostat_Climate :R_P1_3_tempListTue mismatch 24:00 17.0 ne 24:00 0.0 ##
     Kueche.Thermostat_Climate :R_P1_4_tempListWed mismatch 24:00 17.0 ne 24:00 0.0 ##
     Kueche.Thermostat_Climate :R_P1_5_tempListThu mismatch 24:00 17.0 ne 24:00 0.0 ##
     Kueche.Thermostat_Climate :R_P1_6_tempListFri mismatch 24:00 17.0 ne 24:00 0.0 ##
Kueche.Thermostat_Climate: tempList not verified
    Schlafzimmer.Thermostat_Climate: failed Entries:
     Schlafzimmer.Thermostat_Climate :R_P1_0_tempListSat mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
     Schlafzimmer.Thermostat_Climate :R_P1_1_tempListSun mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
     Schlafzimmer.Thermostat_Climate :R_P1_2_tempListMon mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
     Schlafzimmer.Thermostat_Climate :R_P1_3_tempListTue mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
     Schlafzimmer.Thermostat_Climate :R_P1_4_tempListWed mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
     Schlafzimmer.Thermostat_Climate :R_P1_5_tempListThu mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
     Schlafzimmer.Thermostat_Climate :R_P1_6_tempListFri mismatch 06:00 16.0 10:00 18.0 18:00 16.0 22:00 18.0 24:00 16.0 ne 24:00 0.0 ##
Schlafzimmer.Thermostat_Climate: tempList not verified
    Wohnzimmer.Thermostat_Climate: failed Entries:
     Wohnzimmer.Thermostat_Climate :R_P1_0_tempListSat mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
     Wohnzimmer.Thermostat_Climate :R_P1_1_tempListSun mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
     Wohnzimmer.Thermostat_Climate :R_P1_2_tempListMon mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
     Wohnzimmer.Thermostat_Climate :R_P1_3_tempListTue mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
     Wohnzimmer.Thermostat_Climate :R_P1_4_tempListWed mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
     Wohnzimmer.Thermostat_Climate :R_P1_5_tempListThu mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
     Wohnzimmer.Thermostat_Climate :R_P1_6_tempListFri mismatch 15:00 19.0 22:00 21.5 24:00 19.0 ne 24:00 0.0 ##
Wohnzimmer.Thermostat_Climate: tempList not verified


Nun passiert es aber: Innerhalb von Sekunden gibt es einen Overload am HMlan (msgLoadHistory 5min steps: 0/0/0/100/0/-/-/-/-/-/-/- )

get hm protoEvents liefert dann folgendes (hier hat er sich schon ein wenig erholt, nur noch HighLoad):

protoEvents done:
    name                      :State           |CmdPend   |Snd       |Resnd     #CmdDel    |ResndFail |Nack      |IOerr
    Buero.Heizung             :  -             | -        | -        | -        # -        | -        | -        | -
    Buero.Thermostat          : done_Errors:1  | -        |14:       |1:        #3         |1:        | -        | -
    Kueche.Heizung            :  -             | -        | -        | -        # -        | -        | -        | -
    Kueche.Thermostat         : pending        |5 pending |5:        | -        # -        | -        | -        | -
    Schlafzimmer.Heizung      :  -             | -        | -        | -        # -        | -        | -        | -
    Schlafzimmer.Thermostat   : done_Errors:1  | -        |13:       |3:        #3         |1:        | -        | -
    Wohnzimmer.HeizungFenster :  -             | -        | -        | -        # -        | -        | -        | -
    Wohnzimmer.HeizungTv      :  -             | -        | -        | -        # -        | -        | -        | -
    Wohnzimmer.Killswitch     :  -             | -        | -        | -        # -        | -        | -        | -
    Wohnzimmer.Thermostat     : done_Errors:1  | -        |5:        |59022:    #5         | -        | -        |1:
================================================================================================================
    sum                       3                |5         |37        |59026     #11        |2         |0         |1

    CUL_HM queue length:0

    requests pending
    ----------------
    autoReadReg          : Wohnzimmer.Thermostat
        recent           : none
    status request       :
    autoReadReg wakeup   :
    status request wakeup:
    autoReadTest         : Buero.Thermostat Buero.Heizung Schlafzimmer.Heizung Schlafzimmer.Thermostat Kueche.Heizung Kueche.Thermostat Wohnzimmer.HeizungTv Wohnzimmer.HeizungFenster Wohnzimmer.Thermostat Wohnzimmer.Killswitch Buero.Thermostat_Climate Kueche.Thermostat_Climate Schlafzimmer.Thermostat_Climate

    IODevs:HMLAN1:opened pending=0 condition:Warning-HighLoad


    Die Register R_P1_tempList_State der Climate-Channels der Wandthermostate stehen nun alle auf "set".

    Wenn ich nun noch einmal den Stecker vom HMlan ziehe und FHEM neu starte, fängt er sich soweit wieder. Das loadLvl des HMlan bleibt bei low. Allerdings werden nicht alle TempListen verified. Diese bleiben nach wie vor auf "set" stehen. Es wird auch kein automatisches getConfig aufgerufen.

    Meine Fragen sind nun:
  • Was kann der Auslöser dieser Message-Flut sein, die dann zum Overload führt? Ich meine, es werden ja eigentlich nur die Wochenprogramme von 4 Wandthermostaten umprogrammiert, das sollte mit dem HMlan doch auch ohne Overload möglich sein.
  • Habe ich hier evtl. etwas offensichtlich falsch gemacht?
  • Falls es mal halbwegs funktioniert, bleibt meist ein Gerät mit "CMDs_done_Errors:1" hängen. Weder das Log, noch der Eventmonitor gibt Auskunft darüber, was hier schief gelaufen ist. Gibt es hier eine Möglichkeit, die ich bis jetzt nicht gefunden habe?
Sorry für den langen Post, habe versucht, alle notwendigen Infos mit anzufügen. Falls noch was fehlt, reiche ich das gerne nach.