Verzoegert Befehle senden per Webinterface

Begonnen von seb, 14 Dezember 2013, 16:29:20

Vorheriges Thema - Nächstes Thema

seb

Hallo,

bin noch sehr neu in dem Thema...

Alles bei mir sind Homematic Heizkoerperthermostate HM-CC-RT-DN und der HMLAN am Raspberry.
Ich moechte gerne, wenn ich morgens Luefte, alle Heizkoerper abschalten.
Vorerst per Knopfdruck im Webinterface, einen Schalter dafuer kaufe ich erst spaeter.

Also habe ich eine Structure erstellt:

define ALLE_HEIZKOERPER structure room RT_BAD_EG RT_FLUR RT_KUECHE RT_KZ_OG RT_WZ_LINKS RT_WZ_RECHTS
attr ALLE_HEIZKOERPER room HEIZUNG

(ja, ich habe irgendwie noch keine einheitliche Namenskonvention)


Wenn ich bei dieser nun im Webinterface die desired temperature auf off setze, dann meckert der HMLAN

2013.12.14 14:23:38 2: CUL_HM set RT_BAD_EG desired-temp off
2013.12.14 14:23:38 2: CUL_HM set RT_FLUR desired-temp off
2013.12.14 14:23:38 2: CUL_HM set RT_KUECHE desired-temp off
2013.12.14 14:23:38 2: CUL_HM set RT_KZ_OG desired-temp off
2013.12.14 14:23:38 2: CUL_HM set RT_WZ_LINKS desired-temp off
2013.12.14 14:23:38 2: CUL_HM set RT_WZ_RECHTS desired-temp off
2013.12.14 14:23:41 2: HMLAN_Parse: HMLAN1 new condition ok
2013.12.14 14:23:55 2: HMLAN_Parse: HMLAN1 new condition Warning-HighLoad
2013.12.14 14:24:00 2: HMLAN_Parse: HMLAN1 new condition ERROR-Overload

Es ist ihm wohl zu viel auf einmal.
Wie kann ich das verhindern? Ist das ueberhaupt der richtige Weg ueber eine Structure?

Vielen Dank.

Puschel74

Hallo,

ZitatIch moechte gerne, wenn ich morgens Luefte, alle Heizkoerper abschalten.
So als Laie würd ich sagen - häng dir an die Fenster einen zugehörigen Fensterkontakt den du mit den RT pairst.
Die machen das dann schon selbst.

Ich verschieb mal in den HM-Bereich.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

martinp876

zum einen gibt es die interne Fenster-offen erkennung. Wenn die raumtemp fällt wird das als offenes Fenster gewertet und die temp für eine bestimmte Zeit runtergefahren. Alles einstellbar: ab welchen temp-gefälle, wie lange low-temp, was ist low temp.

Ansonsten ist das ok, was du machst. Das Problem ist die overload - und damit das stoppen der übertragung.

Der HMLAN sendet nur eine begrenzte Anzahl messages pro Stunde. Burst (aufwecken) kostet mehr.

Nutze einmal HMinfo
define hm HMinfo

Also erst einmal
- ist das Attribut burstAccess gesetzt? Wenn ja wie?
set hm param -d burstAccess

- wie  viele messages sind den gesendet worden
set hm protoEvents short


Gruss Martin

seb

Zitat von: martinp876 am 14 Dezember 2013, 16:52:39
zum einen gibt es die interne Fenster-offen erkennung. Wenn die raumtemp fällt wird das als offenes Fenster gewertet und die temp für eine bestimmte Zeit runtergefahren. Alles einstellbar: ab welchen temp-gefälle, wie lange low-temp, was ist low temp.

ja das stimmt, funktioniert aber nicht so recht bei mir. Ausserdem habe ich meiner Frau versprochen, dass sie da einen Knopf fuer bekommt :)

Zitat von: martinp876 am 14 Dezember 2013, 16:52:39
Ansonsten ist das ok, was du machst. Das Problem ist die overload - und damit das stoppen der übertragung.

Der HMLAN sendet nur eine begrenzte Anzahl messages pro Stunde. Burst (aufwecken) kostet mehr.

das hab ich mir gedacht. ah, es ist pro Stunde... dann bringt auch eine Verzoegerung nichts. doof[tm]

Zitat von: martinp876 am 14 Dezember 2013, 16:52:39
Nutze einmal HMinfo
define hm HMinfo

Also erst einmal
- ist das Attribut burstAccess gesetzt? Wenn ja wie?
set hm param -d burstAccess

- wie  viele messages sind den gesendet worden
set hm protoEvents short


Gruss Martin

hm  zu burst sagt er mir nicht wirklich was, zu den Messages schon

param done:
param list
    entity                 : burstAccess             |

protoEvents done:
    name                :State           |CmdPend  |Snd      |Resnd    |ResndFail|Nack     |IOerr   
    CUL_HM_HM_CC_RT_DN_22247A: done_events:32 |-        |1:       |30:      |-        |-        |2:       
    CUL_HM_HM_CC_RT_DN_22C368: done_events:24 |-        |1:       |22:      |-        |-        |2:       
    CUL_HM_HM_CC_RT_DN_22DCF3: pending        |1 pending|2:       |16:      |-        |-        |1:       
    CUL_HM_HM_CC_RT_DN_22DCFB: done_events:2  |-        |-        |-        |-        |-        |2:       
    CUL_HM_HM_CC_RT_DN_22E64B: done_events:2  |-        |-        |-        |-        |-        |2:       
    CUL_HM_HM_CC_RT_DN_232525: done_events:2  |-        |-        |-        |-        |-        |2:       
    JL_KUECHE           : -              |-        |-        |-        |-        |-        |-       

    CUL_HM queue:1
    status request pending:
    IODevs:HMLAN1:overload pending=0

martinp876

hm - burst wird nicht automatisch gesendet. da sollte es so schnell kein Problem geben.

dann müssen doch die logs her.
schalte einmal die logs ein mit

attr global verbose 1
attr global mseclog 1
attr <hmlan> logIDs all,sys

dann deine Aktion. Die logs stehen dann im generellen logfile

Gruss Martin

seb

#5
btw: danke fuer die schnellen Antworten :)

habe die verbosity mal auf 5 gesetzt, ich denke das war eher deine Absicht? Bei 1 hat er gar nichts mehr ins Log geschrieben
das dritte attribut hat er gar nicht genommen, LogID gefaellt ihm nicht.

Jedenfalls scheint fhem ein "unknown attribute" zu senden. Mitlerweile geht der HMLAN in overload wenn ich nur ein geraet triggern will.
wahrscheinlich habe ich es so verfukkelt, dass ich besser neu anfange. gibt es die ausgangsconfig irgendwo zum download?

2013.12.14 18:18:53.099 5: SET: Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
2013.12.14 18:18:53.115 5: SET: Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
Unknown argument ?, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed
2013.12.14 18:18:53.893 5: HMLAN_Parse: HMLAN1 R:RF21E29F7 stat:0408 t:00000000 d:FF r:7FFF     m:01 B112 23A6BE 22E64B
2013.12.14 18:18:53.894 2: HMLAN_Parse: HMLAN1 new condition ERROR-Overload
2013.12.14 18:18:53.897 5: Triggering HMLAN1 (3 changes)
2013.12.14 18:18:53.902 5: Notify loop for HMLAN1 cond: ERROR-Overload
2013.12.14 18:18:53.938 4: eventTypes: HMLAN HMLAN1 cond: ERROR-Overload -> cond: ERROR-Overload
2013.12.14 18:18:53.939 4: eventTypes: HMLAN HMLAN1 Xmit-Events: ERROR-Overload:1  -> Xmit-Events: ERROR-Overload:.*
2013.12.14 18:18:53.939 4: eventTypes: HMLAN HMLAN1 prot_ERROR-Overload: last -> prot_ERROR-Overload: last
2013.12.14 18:18:53.942 5: HMLAN_Parse: HMLAN1 no ACK from 22E64B
2013.12.14 18:18:54.169 5: HMLAN_Send:  HMLAN1 I:K
2013.12.14 18:18:54.177 5: HMLAN_Parse: HMLAN1 V:03C1 sNo:xxx d:23A6BE O:23A6BE t:0102E072 IDcnt:0000
2013.12.14 18:18:55.972 4: CUL_HM_Resend: CUL_HM_HM_CC_RT_DN_22E64B nr 251
2013.12.14 18:18:56.473 4: Connection closed for FHEMWEB:192.168.2.105:52706

Edith: Seriennumer geloescht

martinp876

Hi Seb,

dein HMLAN ist immer noch in overload.
mit
attr  global verbose 5
schaltest du alles ein. Das brauche ich nicht. Es reicht, wenn du alles ausschaltest und dann selektv einschaltest

attr global verbose 1
attr global mseclog 1
attr HMLAN1 logIDs all,sys

Den HMLAN bekommt man wieder flott,
wenn man 1h wartet :-( oder
wenn man des Stecker zieht :-)

also logs einschalten, stecker raus und rein, 2 min warten.

dann einmal schalten

daten schicken

Gruss Martin

seb

#7
da hatte ich aus Aerger schon neu installiert...  ::)
ich habe nun erstmal nur einen Thermostat gepaired und versuche etwas strukturierter drann zu gehen.
Was bei mir ueberhaupt nicht funktioniert ist ein Icon ueber den IconSelector auszuwaehlen.
Eine Fehlermeldung gibt es aber auch nicht


Edith: So, alles neu gebaut, nach Hinweis in anderen Beiträgen ein "update force" gemacht --> funktioniert! (jetzt liest er auch viel schönere Werte aus den neuen RTs aus).
DAnke!

seb

Hallo,

ich bastele immer noch daran, alle RT mit einem Knopfdruck auf "off" zu stellen, mit einem weiteren weiteren zurück auf "auto".
Zum Test erstmal nur mit einem RT in der Structure

define RT_ALL structure room UG_RT_BAD_XXXX_Clima
attr RT_ALL icon heizung.0
attr RT_ALL room Heizung
attr RT_ALL webCmd Automagisch:Manuell
attr RT_ALL event-on-change-reading .*

define Manuell notify HMLAN1 set RT_ALL controlManu off
define Automagisch notify HMLAN1 set RT_ALL controlMode auto

Das funktioniert leider nicht, wenn ich auf "Manuell (entspricht off)" klicke, sendet das System folgendes:

2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlMode auto
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlMode auto
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlMode auto
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlManu off
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlManu off
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlManu off

Dazu habe ich 2 Fragen:
a) ist die Idee richtig so? Das als notify ueber den HMLAN zu machen? Ich sehe im Log, dass die Befehle auch gesendet werden, wenn ich die fhem config speichere, also nicht nur auf Knopfdruck
b) event-change-reading, muss ich das in der structure als Attribut setzen oder bei jedem RT im Clima Channel?

Vielen Dank!

Puschel74

Hallo,

Zitatdefine Manuell notify HMLAN1 set RT_ALL controlManu off
define Automagisch notify HMLAN1 set RT_ALL controlMode auto

passt genau zu

Zitat2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlMode auto
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlMode auto
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlMode auto
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlManu off
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlManu off
2013.12.15 16:02:26 2: CUL_HM set UG_RT_BAD_22DCF3_Clima controlManu off

Die sicherste Methode um seine Sendehardware an den Rand des Zusammenbruchs zu bekommen.
Ein CUL (bzw. CUNO) füllt das Logfile dann gerne mit LOVF-Meldungen.

Zitata) ist die Idee richtig so?
Nein.
Wie du siehst werden die Befehle auch ohne Knopfdruck gesendet.
Welcher Knopf soll es den sein den du fragst hier keinen Knopf ab sondern HMLAN1.

Zitatwenn ich die fhem config speichere,
Und wieder mal.
Vergiss das es eine fhem.cfg gibt.
Du handelst dir nur mehr Ärger ein wenn du darin rumhantierst und du weißt nicht was du machst.
Schau dir mal meine Beiträge von den letzten 2 Tagen an.
Ich habe dort einige Male erklärt wie Anfänger am besten ein notify (oder at) erstellen.

Ich bin dran eine kleine Beschreibung zu erstellen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.