Richtige Reihenfolge der Befehle nach eine templist Änderung

Begonnen von bforpc, 03 März 2016, 10:23:20

Vorheriges Thema - Nächstes Thema

bforpc

Moin,

ich benötige die richtige Reihenfolge der Befehle, wenn ich die templist.templ geändert habe und alle Heizkörper entsprechend upgedatet werden sollen.
"autoReadReg" steht auf  "5_readMissing" (sollte das besser anders sein?)
Ein "set hm templist restore" scheint nicht oder nicht komplett zu funktionieren.
Manchmal wird zu dem einen oder anderen Thermostat was übertragen, manchmal nicht.
Wie kann ich alles komplett zurücksetzten und übertragen ?

bfo


bforpc

Da ist aber wirklich Schade, das zu so einer "Standard" Aufgabe niemand eine Antwort hat ....

bfo

Jamo

Hi bfo,
bin mir nicht sicher was bei Dir nicht geht, aber set hm templist restore hat bei mir auch niezufriedenstellend funktioniert, ich habe 6 Heizkörper-Ventiltriebe und 5 Wand-Raumthermostate, die gleichzeitig versorgt werden wollten. Und dann bekam ich immer ein "CMDs_pending" die stundenlang nucht weggingen, oder "Register_read timeout" oder so was. Die Temperaturlisten waren manchmal nur teilweise geschrieben, teilweise "incomplete" und oft der state nur auf "set" anstatt auf verifiziert

Letztendlich habe ich mich entschieden, ein restore für jedes Device individuell zu machen, und alle 15 Sekunden dann das nächste Device, das hat zum Erfolg geführt.

Also sowas wie:
fhem ("define atTmp_01 at +00:00:15 set HKT_Schlaf tempListTmpl restore FHEM/tempListTags.cfg:TempListSchlaf");
fhem ("define atTmp_02 at +00:00:30 set HKT_Bad    tempListTmpl restore FHEM/tempListTags.cfg:TempListBad");
... usw...

Vielleicht hilfts bei Dir auch. Über eine Rückmeldung freue ich mich :-)

Gruss, Ingolf
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

bforpc

#4
Hallo,

das ist doch mal eine Idee.
Ich habe scheinbar das gleiche Problem. Denn je mehr Thermostate hinzu kamen, deste weniger hat das funktioniert.
Allerdings werde ich aus obigem Befehl nicht ganz schlau. Wozu dieses "atTmp_01..."
Wozu musst du es definieren, wenn du alle 15 Sekunden es dann sowieso von Hand ausführen musst !?
Da sich meine templist selten ändert, hatte ich mir vorgestellt, ich rufe einen entsprechenden Befehl für jeden Thermostat einmal auf, warte ne viertel Stunden und fertig!?


jan

Jamo

Ich führe es ja nicht von Hand aus, ich habe ein Notify, das ich über ein "at" um 12:00 mittags aufrufe:

define set_defaults_at at *12:00:00 trigger set_defaults

und das notify:

define set_defaults notify set_defaults { \
  if ( Value("HeizungsAutomatik") eq "on" ) {\
#  fhem("attr hm configTempFile FHEM/tempListTags.cfg,FHEM/tempListUrlaub.cfg;;set hm tempListG restore");;\
    fhem("define atTmp_0_00 at +00:00:15 set RTC_Bad_Climate    tempListTmpl restore FHEM/tempListTags.cfg:TempList_Bad");;\
    fhem("define atTmp_0_01 at +00:00:30 set RTC_Flur_Climate   tempListTmpl restore FHEM/tempListTags.cfg:TempList_Flur");;\
    fhem("define atTmp_0_02 at +00:00:45 set RTC_Kueche_Climate tempListTmpl restore FHEM/tempListTags.cfg:TempList_Kueche");;\
    fhem("define atTmp_0_05 at +00:01:00 set HKT_Bad1_Clima     tempListTmpl restore FHEM/tempListTags.cfg:TempList_Bad");;\
    fhem("define atTmp_0_06 at +00:01:15 set HKT_Flur1_Clima    tempListTmpl restore FHEM/tempListTags.cfg:TempList_Flur");;\
    fhem("define atTmp_0_07 at +00:01:30 set HKT_Kueche1_Clima  tempListTmpl restore FHEM/tempListTags.cfg:TempList_Kueche");;\
  }\
}


Gruss, Ingolf
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

bforpc

Hallo,

muss noch mal nachfragen: Wenn ich bei mir den Befehl absetze (ich habe nur eine cfg tempList.cfg im root von FHEM):

set eg.flur_Clima tempListTmpl eg   
oder
set eg.flur_Clima tempListTmpl restore eg

sagt fhem: eg.flur_Clima: tempList not verified

Zweite Frage: Ich dachte die Templist wird nur "Clima" zugeordnet. Wozu machst du das auch zu "Climate" ? (Wo ist der Unterschied?)

Bfo

Jamo

Hi,
zur zweiten Frage:

Ich habe 2 devices pro Raum, HM-TC-IT-WM-W-EU (heisst bei mir RTC, also Raumthermostat) und HM-CC-RT-DN (heisst bei mir HKT, also Heizkoerperthermostat), deswegen einmal RTC*_climate und HKT*_clima .

Wenn Du da ein "tempList not verified" hast, kann es sein das das Temperaturprofil zwar korrekt geladen ist (siehst Du in den Readings im kanal), aber das es nicht verifiziert werden kann gegen das, was Du als template in den attributen gesetzt hast.

Also guck mal ob die attribute für die Templisten richtig gesetzt sind. Unter folgendem Link hier im Forum habe ich ein Beispiel:
https://forum.fhem.de/index.php/topic,50218.msg421322.html#msg421322

Gruss, Ingolf
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

bforpc

#8
Hallo,

danke für deine Bemühungen. Ich bin nicht ganz schlau aus dem Link geworden. Habe jetzt alle Attribute der Thermostate für die Templis gelöscht und neu zugewiesen. Immerhin hat er jetzt nicht gemeckert "tempList not verified", nur bei einem Thermostat. Ich werde das heute beobachten ob alle anderen sich jetzt so verhalten, wie sei sollen.

Generelle Frage: Wenn ich an der templist.cfg etwas ändere, wie ist dann der Befehl, damit alle die jeweiligen Daten neu einlesen?
Ich habe auch irgendwo gelesen, man solle zuerst ein "clear register" absenden!?

bfo

Jamo

Dann ist bei einem Thermostat immer noch was im argen schätze ich.

Der Befehl ist dann einfach set <Device>  tempListTmpl restore FHEM/tempList.cfg:room1, aus
http://www.fhemwiki.de/wiki/HomeMatic_Type_Thermostat

"clear register" ist mir nicht bekannt.

Wenn es jetzt klappt, können wir den Fall ja als gelöst betrachten ... :-)

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

bforpc

Hallo,

also irgendwie klappt das bei mir nicht (mehr).
Ich habe für jedes Thermostat den den Befehl
set <Device Name>_Clima  tempListTmpl restore tempList.cfg:<entity name>
ausgeführt. Zwischen dem Absenden eines Kommandos habe ich 15 Minuten gewartet.
Einige Thermostate fahren dennoch nicht in den gewünschten Zeitraum die Temperatur hoch oder runter.
Wie kann ich verifizieren, dass alles korrekt ist?

Jan

dancatt

Hallo,

ich setze auch alle Templisten auf einmal und es funktioniert nicht richtig.
Bei fast allen steht im Reading R_tempList_State "set".
Bei diesen muss ich dann mehrmals ein getConfig machen und dazwischen immer wieder ein restore.
Ich muss mir hier auch eine Alternative überlegen.

Gerade heute habe ich bei allen das Profil geändert da es in RLP Ferien gab.
War ca. eine Stunde beschäftigt bis alles so war wie es sollt :-(

Zum überprüfen benutze ich immer:

set <HMInfo> tempList status


Gruß Daniel
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

Jamo

#12
Hallo Daniel,
das Problem hatte ich auch, ich glaube das liegt daran dass alle Templisten gleichzeitig geschrieben werden. Es ist einfach zuviel überlappender Funkverkehr.
Wenn man jedes Device einzeln schreibt, und dazwischen jeweils 30 Sekunden Zeit lässt, wird es besser, bzw bei mir funktioniert es so.

Ich habe mal die Zeiten aus dem Log file und von dem Timestamp im Register gecheckt, also die Zeit im Logfile vom absetzen des 'restore' Befehls, bis eine vollständige Templist (also alle 3 Wochenpläne) im Register 'verified' ist. Da vergehen bei mir zwischen 18 und 24 Sekunden. Ich mache also jetzt 30 Sekunden Pause zwischen den restore der tempLists der individuellen Devices (weiter oben hatte ich noch von 15 Sekunden geschrieben).

Ausserdem: Wenn man HM-TC-IT-WM-W-EU zusammen mit HM-CC-RT-DN betreibt, muss man nur die Templisten des HM-TC-IT-WM-W-EU schreiben, die TempListen der HM-CC-RT-DN kann man einmalig so setzen, das keine Schaltzeitpunkte enthalten sind (also "HM-CC-RT-DN tempList 24:00 6.0").  Das HM-TC-IT-WM-W-EU übeträgt zwar nicht die TempListen an sich, schaltet aber trotzdem die Temperatur zu den gewünschten Zeiten auch am HM-CC-RT-DN um.

Das heisst man muss sich in dem Fall nur um die TempListen der HM-TC-IT-WM-W-EU kümmern.

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

dancatt

#13
Zitat von: inoma am 18 März 2016, 14:01:18
Ausserdem: Wenn man HM-TC-IT-WM-W-EU zusammen mit HM-CC-RT-DN betreibt, muss man nur die Templisten des HM-TC-IT-WM-W-EU schreiben, die TempListen der HM-CC-RT-DN kann man einmalig so setzen, das keine Schaltzeitpunkte enthalten sind (also "HM-CC-RT-DN tempList 24:00 6.0").  Das HM-TC-IT-WM-W-EU übeträgt zwar nicht die TempListen an sich, schaltet aber trotzdem die Temperatur zu den gewünschten Zeiten auch am HM-CC-RT-DN um.
Das heisst man muss sich in dem Fall nur um die TempListen der HM-TC-IT-WM-W-EU kümmern.
Das habe ich vor längerer Zeit auch schon herausgefunden. Genauso habe ich das auch realisiert. Gesehen hatte ich das damals in den Plots.


Zitat von: inoma am 18 März 2016, 14:01:18
Hallo Daniel,
das Problem hatte ich auch, ich glaube das liegt daran dass alle Templisten gleichzeitig geschrieben werden. Es ist einfach zuviel überlappender Funkverkehr.
Wenn man jedes Device einzeln schreibt, und dazwischen jeweils 30 Sekunden Zeit lässt, wird es besser, bzw bei mir funktioniert es so.

Ich habe mal die Zeiten aus dem Log file und von dem Timestamp im Register gecheckt, also die Zeit im Logfile vom absetzen des 'restore' Befehls, bis eine vollständige Templist (also alle 3 Wochenpläne) im Register 'verified' ist. Da vergehen bei mir zwischen 18 und 24 Sekunden. Ich mache also jetzt 30 Sekunden Pause zwischen den restore der tempLists der individuellen Devices (weiter oben hatte ich noch von 15 Sekunden geschrieben).
Gefallen tut mir das überhaupt nicht. Ich setze das aktuell so um:

sub aktualisiereHeizung($)
{
my($temperaturprofil) = @_;

Log 3, "aktualisiereHeizung() temperaturprofil[$temperaturprofil]";

if ($temperaturprofil eq "Aus") {
fhem("set .*_Clima\$ controlManu off");
                fhem("set 1_02_WZ_Wandthermostat_Climate controlManu off");
} else {
if ($temperaturprofil =~ m/^Sommer/) {
fhem("attr 1_02_WZ_Wandthermostat_Climate tempListTmpl FHEM/SommerKonstant.cfg:1_02_WZ");
fhem("attr 2_03_SZ_Heizungsthermostat_Clima tempListTmpl FHEM/SommerKonstant.cfg:2_03_SZ");
fhem("attr 3_03_M2_Heizungsthermostat_Clima tempListTmpl FHEM/SommerKonstant.cfg:3_03_M2");
if ($temperaturprofil eq "SommerAbwesend") {
fhem("set 1_02_WZ_Wandthermostat_Climate regSet weekPrgSel prog1");
fhem("attr hminfo configTempFile SommerAbwesend.cfg,SommerAnwesend.cfg,SommerArbeit.cfg,WinterAbwesend.cfg,WinterAnwesend.cfg,WinterArbeit.cfg,SommerKonstant.cfg,WinterKonstant.cfg");
} elsif ($temperaturprofil eq "SommerAnwesend") {
fhem("set 1_02_WZ_Wandthermostat_Climate regSet weekPrgSel prog2");
fhem("attr hminfo configTempFile SommerAnwesend.cfg,SommerArbeit.cfg,WinterAbwesend.cfg,WinterAnwesend.cfg,WinterArbeit.cfg,SommerKonstant.cfg,WinterKonstant.cfg,SommerAbwesend.cfg");
} elsif ($temperaturprofil eq "SommerArbeit") {
fhem("set 1_02_WZ_Wandthermostat_Climate regSet weekPrgSel prog3");
fhem("attr hminfo configTempFile SommerArbeit.cfg,WinterAbwesend.cfg,WinterAnwesend.cfg,WinterArbeit.cfg,SommerKonstant.cfg,WinterKonstant.cfg,SommerAbwesend.cfg,SommerAnwesend.cfg");
}
} elsif ($temperaturprofil =~ m/^Winter/) {
fhem("attr 1_02_WZ_Wandthermostat_Climate tempListTmpl FHEM/WinterKonstant.cfg:1_02_WZ");
fhem("attr 2_03_SZ_Heizungsthermostat_Clima tempListTmpl FHEM/WinterKonstant.cfg:2_03_SZ");
fhem("attr 3_03_M2_Heizungsthermostat_Clima tempListTmpl FHEM/WinterKonstant.cfg:3_03_M2");
if ($temperaturprofil eq "WinterAbwesend") {
fhem("set 1_02_WZ_Wandthermostat_Climate regSet weekPrgSel prog1");
fhem("attr hminfo configTempFile WinterAbwesend.cfg,WinterAnwesend.cfg,WinterArbeit.cfg,SommerKonstant.cfg,WinterKonstant.cfg,SommerAbwesend.cfg,SommerAnwesend.cfg,SommerArbeit.cfg");
} elsif ($temperaturprofil eq "WinterAnwesend") {
fhem("set 1_02_WZ_Wandthermostat_Climate regSet weekPrgSel prog2");
fhem("attr hminfo configTempFile WinterAnwesend.cfg,WinterArbeit.cfg,SommerKonstant.cfg,WinterKonstant.cfg,SommerAbwesend.cfg,SommerAnwesend.cfg,SommerArbeit.cfg,WinterAbwesend.cfg");
} elsif ($temperaturprofil eq "WinterArbeit") {
fhem("set 1_02_WZ_Wandthermostat_Climate regSet weekPrgSel prog3");
fhem("attr hminfo configTempFile WinterArbeit.cfg,SommerKonstant.cfg,WinterKonstant.cfg,SommerAbwesend.cfg,SommerAnwesend.cfg,SommerArbeit.cfg,WinterAbwesend.cfg,WinterAnwesend.cfg");
}
}

fhem("set hminfo tempListG restore");
fhem("set .*_Clima\$ controlMode auto");
fhem("save");
}
}
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

MadMax-FHEM

Hallo,

Zitat
Ausserdem: Wenn man HM-TC-IT-WM-W-EU zusammen mit HM-CC-RT-DN betreibt, muss man nur die Templisten des HM-TC-IT-WM-W-EU schreiben, die TempListen der HM-CC-RT-DN kann man einmalig so setzen, das keine Schaltzeitpunkte enthalten sind (also "HM-CC-RT-DN tempList 24:00 6.0").  Das HM-TC-IT-WM-W-EU übeträgt zwar nicht die TempListen an sich, schaltet aber trotzdem die Temperatur zu den gewünschten Zeiten auch am HM-CC-RT-DN um.
Das heisst man muss sich in dem Fall nur um die TempListen der HM-TC-IT-WM-W-EU kümmern.

allerdings kann es dann passieren (wenn einmal keine Vorgabe vom Wandthermostat kommt), dass der Heizkörperthermostat in sein eigenes Automatikprogramm fährt.
Hatte ich zumindest schon ab und an (lasse soll und ist auch von den Heizkörperthermostaten plotten), dass der Heizkörperthermostat "komisch/unnötig" schaltet...
(also entweder mal kurz auf ohne erkennbaren Grund bzw. kurz zu)

Daher halte ich die immer synchron...

Per Temperaturlisten, klappt bei mir wobei ich selten viel ändere, also wohl nicht in die "viel senden Problematik" komme...

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)