FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: holgerschlegel am 18 April 2016, 10:09:05

Titel: Register werden nicht gesetzt
Beitrag von: holgerschlegel am 18 April 2016, 10:09:05
Hallo,

ich verwende eine Perl Funktion um bei bestimmten Bedingungen die Heizprogramme aller meine Wandthermostate (HM-TC-IT-WM-W-EU) umzustellen.
Dazu wird je Thermostat ein "regSet weekPrgSel prog2" (natürlich mit der jeweils passenden Programmnummer) abgesetzt.
Aufgrund der Einstellung "autoReadReg" auf "5_readMissing" erfolgt kurz danach ein "getConfig" auf den Climate Kanal.

Meine Erwartung ist, das danach alle Thermostate auf dem entsprechenden Programm stehen.
Leider ist dem aber nicht so.
Nach früheren Tipps hier im Forum hatte ich nach jedem regSet ein "sleep(60)" eingebaut.
Das hat aber scheinbar nicht zum gewünschten Ergebnis geführt.

Hier der entsprechende Auszug aus der fhem.log Datei.

2016.04.18 09:30:40 3: CUL_HM set Az.Thermostat.Climate regSet weekPrgSel prog2
2016.04.18 09:31:40 3: CUL_HM set Ba.Thermostat.Climate regSet weekPrgSel prog2
2016.04.18 09:32:40 3: CUL_HM set Ku.Thermostat.Climate regSet weekPrgSel prog2
2016.04.18 09:33:41 3: CUL_HM set Sz.Thermostat.Climate regSet weekPrgSel prog2
2016.04.18 09:34:41 3: CUL_HM set Wz.Thermostat.Climate regSet weekPrgSel prog2
2016.04.18 09:35:53 3: CUL_HM set Az.Thermostat.Climate getConfig
2016.04.18 09:36:09 3: CUL_HM set Ba.Thermostat.Climate getConfig
2016.04.18 09:36:25 3: CUL_HM set Ku.Thermostat.Climate getConfig
2016.04.18 09:36:41 3: CUL_HM set Sz.Thermostat.Climate getConfig
2016.04.18 09:36:57 3: CUL_HM set Wz.Thermostat.Climate getConfig

Weitere Log-Zeilen davor oder danach gibt es nicht.

Wenn ich mir jetzt die entsprechenden Werte in der Oberfläche anschaue, stehen "Az.Thermostat.Climate" und "Ba.Thermostat.Climate" wie gewünscht auf "prog2".

Jedoch stehen "Ku.Thermostat.Climate", "Sz.Thermostat.Climate" und "Wz.Thermostat.Climate" immer noch auf "prog1".
In diesen 3 Devices steht dafür unter "protIOerr" der Wert "1 last_at:2016-04-18 09:35:41". Mit genau der gleichen Uhrzeit bei allen 3 Devices.
Vermutlich ist dies die Uhrsache für die fehlgeschlagenen Registeränderung..

Alle Devices stehen auf "CMDs_done".

Im HMLAN ist die "msgLoadHistory" "5min steps: 0/0/0/28/0/0/0/0/0/0/0/1", also laut meiner Interpretation kein Overload.


Hat noch jemand Ideen oder Tipps woran es liegen kann, oder wo ich noch nach Fehlern suchen kann?

Grüße
Holger
Titel: Antw:Register werden nicht gesetzt
Beitrag von: martinp876 am 18 April 2016, 20:50:44
Ioerr besagt, dass das io einen Fehler hat. Evtl overload.
Hast du hminfo? Dann mache ein get hm protoevents.
Titel: Antw:Register werden nicht gesetzt
Beitrag von: holgerschlegel am 18 April 2016, 21:31:00
Hier das Ergebnis des HMInfo get protoEvents.
Ich sehe die IOerr der 3 Devices die nicht umgeschaltet haben.
Speziell den Teil unter der Tabelle kann ich aber nicht interpretieren.

protoEvents done:
    name             :State           |CmdPend   |Snd       |Resnd     #CmdDel    |ResndFail |Nack      |IOerr
    Au.Lampe         : done           |  -       | 3:       |  -       #  -       |  -       |  -       |  -
    Au.Temperatur    :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Az.Fenster_Dach  :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Az.Fenster_Front : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Az.Heizung       :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Az.Thermostat    : done           |  -       | 53:      | 1:       #  -       |  -       |  -       |  -
    Ba.Heizung       : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Ba.Thermostat    : done           |  -       | 52:      |  -       #  -       |  -       |  -       |  -
    Fl.Fenster       : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Fl.Heizung       :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Ku.Fenster       : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Ku.Heizung       :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Ku.Thermostat    : done           |  -       | 48:      |  -       # 5        |  -       |  -       | 1:
    Sz.Fenster       :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Sz.Heizung       : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Sz.Thermostat    : done           |  -       | 63:      | 1:       # 5        |  -       |  -       | 1:
    Wz.Fenster_Dach  : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Wz.Fenster_Front : done           |  -       | 1:       |  -       #  -       |  -       |  -       |  -
    Wz.Heizung_Dach  :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Wz.Heizung_Front :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
    Wz.Thermostat    : done           |  -       | 77:      | 2:       # 5        |  -       |  -       | 1:
    Ze.Stromzaehler  :  -             |  -       |  -       |  -       #  -       |  -       |  -       |  -
================================================================================================================
    sum              0                |0         |303       |4         #15        |0         |0         |3

    CUL_HM queue length:0

    requests pending
    ----------------
    autoReadReg          :
        recent           : Wz.Thermostat
    status request       :
    autoReadReg wakeup   : Az.Fenster_Front Wz.Fenster_Dach Wz.Fenster_Front
    status request wakeup:
    autoReadTest         : Az.Thermostat.Climate Ba.Thermostat.Climate Ku.Thermostat.Climate Sz.Thermostat.Climate Wz.Thermostat.Climate

    IODevs:HMLAN1:opened pending=0 condition:ok


Nebenfrage:
Kann es sein das ein sleep(60) hinter einem notify gleich den ganzen FHEM schlafen legt?
Zumindest kommt der Browser für die komplette Zeit (hier 5*60 Sekunden) nicht zurück und zeigt in den Tab nur eine Sanduhr.

Grüße
Holger
Titel: Antw:Register werden nicht gesetzt
Beitrag von: franky08 am 18 April 2016, 21:49:39
Ja, wenn hinter dem sleep nicht´s weiter steht. Siehe commandref:

ZitatBemerkung: falls sleep von keinem Befehl gefolgt wird, dann wird FHEM blockiert. Das ist unerwünscht, und im FHEM-Log wird eine Warnung protokolliert.
Titel: Antw:Register werden nicht gesetzt
Beitrag von: holgerschlegel am 19 April 2016, 08:05:27
ZitatJa, wenn hinter dem sleep nicht´s weiter steht. Siehe commandref:

Da der Sleep in einer Perl Funktion in MyUtils steht, stehen dahinter sehrwohl beitere Befehle. In diesem Fall wird der Befehl in einer Schleife über alle Wandthermostate ausgeführt.
Titel: Antw:Register werden nicht gesetzt
Beitrag von: franky08 am 19 April 2016, 09:07:59
Na, dann informier dich mal über sleep in Zusammenhang mit Perl!