Homematic sehr träge sowie evtl. überfordert?

Hallo zusammen,

da ich keinen passenden Thread gefunden habe an den ich mich hätte hängen können mache ich mal einen neuen auf.

Bei der Homematic-Kommunikation scheint es 2 grundlegende Probleme zu geben:

  • langsame Reaktion der bidirektionalen Übertragung
  • Überforderung einer CCU bei zu vielen Komponenten

Meine Erfahrungen:
Ein HM-Script zur Ermittlung der noch offenen Fenster (oder auch der aktuell eingeschalteten Lichter) dauert ca. 1-2 Sekunden je untersuchtem Aktor.
In der Praxis: Ich schließe die Haustür und will mit einem Codeschloss von außen die Alarmanlage scharf stellen.
Dieses Schließen der Tür startet ein HM-Script das prüft, ob alle Fenster+Türen geschlossen sind.
Somit stehe ich über 10 Sekunden vor der Tür bis die „Positiv-Quittung“ über ein Kontrolllämpchen eintrudelt.
Suboptimal bis unpraktikabel.

Wer hat noch Erfahrungen mit derart langsamen Reaktionszeiten?
(Script über IPS an dieser Stelle nicht sinnvoll, da das ganze auch laufen soll falls mal der IPS-Server aus ist).

Weiterhin gibt es von Raketenschnecke einen recht versteckten Hinweis zur Überforderung der HM bei zu vielen Modulen.
Gelöst scheint er es durch Aufteilung auf 2 Lan-Adapter mit load-balancing zu haben.

Meine CCU meldet querbeet Kommunikationsproblem mit diesem oder jenem Modul ohne dass irgend ein Grund ersichtlich ist.
Dies scheinbar ansteigend mit derzeit wachsender Funkmodulzahl.

Gibt es hier jemand mit Erkenntissen?

Alexander

ich bin mir nicht mehr ganz sicher, ob ein Loadbalancing das Thema löst. Ich beobachte gerade jetzt wieder seit einigen Tagen das die Reaktion (vom HM Bewegungsmelder bis zum ENO-Lichtdimmer) 2-4 Sekunden dauert. Alle Systemparameter die mir so einfallen und die ich monitoren kann scheinen normal zu sein. Wahrscheinlich werde ich am WE mal wieder beide LAN-Adapter stromlos machen und beobachten wie sie danach reagieren. Ich bin nach wie vor der Meinung das -wenn es wirklich ein problem gibt - an den Dingern liegt.

wobei ich hier NUR genau 1 CCU habe die mir so träge erscheint…

Hast Du schon mal ein Reset der CCU probiert?

diverse Resets sowie Backup-Werkszustand-Restores schon x-mal.

(Insbesondere nachdem manch „kreatives“ Script ungewollt Speicherbereiche überschrieben hatte. Das ist aber NICHT die Ursache der Langsamkeit)

Ich habe zwar keine 10 Sensoren, die ich abfragen könnte, um die Verzögerungen zu verifizieren, aber meine Schalter schalten alle recht schnell. Sobald ich beim iPhone einen Button drücke, geht auch schon das Licht aus, das dauert keine 1/2 Sekunde.

Wie fragst Du eigentlich alle Sensoren ab? Die aktuellen Stände stehen doch schon in den Variablen „STATE“… 10 Variablen abzufragen geht rasend schnell.
Nur die letzte Türe, die Du gerade schliesst, konnte auf sich warten lassen, bis Du zusperren kannst. Aber das dauert normal keine 10 Sekunden. Die von der CCU gemeldeten Funk-Störungen könnten jedoch diese Verzögerungen verursachen.

Hi Simba,

vielleicht sollte man noch ein wenig zu den Rahmenbedingungen des o.b. Problems sagen:

es geht nicht darum, dass das System ständig „zu langsam“ ist. Zumindest bei mir ist es so das mein System 1-2 Monate ausreichend schnell reagiert, dann langsamer wird - aber nicht dauerhaft. Setzt man die LAN-Adapter zurück (Stromlos machen) läuft alles wieder wie gewohnt.
Ich hab derzeit 49 (? - kann ich gar nicht glauben - ich zähl bei Gelegenheit nochmal) HM-Devices angebunden.

Ein Abfragen des jeweiligen Aktorenstatus macht durchaus Sinn: z.B. dann wenn IPS neu gestartet wird ist es absolut zu empfehlen das IPS per Abfrage mit demn Zustand der Sensoren und Aktoren synchronisieren zu lassen.

Zur Verdeutlichung des Geschwindigkeitsproblems habe ich mal zwei Scripts gefertigt. (Es geht hier nur um Homematic-Scripts!)

Das erste Script geht alle Module durch, die in der Favoritengruppe „Licht“ sind und ermittelt deren Status. Man sieht an den Zeitstempeln, dass die Analyse 7 Sekunden dauert.


WriteLine(system.Date("%H:%M:%S Start"));

var lili = dom.GetObject("Lichterliste");
string ListeLichter;
ListeLichter = "- ";
var myFavorite = dom.GetObject("Licht");
string itemId;

foreach(itemId, myFavorite.EnumUsedIDs())
{
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL))
{
WriteLine(system.Date("%H:%M:%S ")+  item.Name());
if ( item.State()  <> 0) { ListeLichter = ListeLichter + item.Name()+  ", ";}
}
}
WriteLine(system.Date("%H:%M:%S ")+ "Lichter:" + ListeLichter);
lili.Variable(ListeLichter)

WriteLine(system.Date("%H:%M:%S Ende"));

Ergebnis:


19:09:15 Start
19:09:15 BÜ DI Schreibtischlampe
19:09:15 BÜ RE Deckenlampe
19:09:15 EI RE Licht Haustür
19:09:16 EI RE Licht Windfang
19:09:17 EZ DI Esstisch
19:09:17 EZ RE Bücherregal
19:09:17 EZ RE Deckenlampe
19:09:18 F0 DI Flurlicht
19:09:18 F1 TA Licht Bad
19:09:19 F1 TA Licht Treppenhaus oben
19:09:19 GA RE Garagenlicht innen
19:09:20 KÜ RE Küchenfenster
19:09:20 TE RE Licht Terrasse
19:09:20 VG RE Licht Garage
19:09:21 WZ DI Deckenlampe
19:09:21 WZ DI Stehlampe
19:09:22 WZ RE Schrankwand
19:09:22 Lichter:- 
19:09:22 Ende


Interessant das zweite minimal modifizierte Script, in dem die Statusabfrage ausgeblendet ist (Zeile 15):
Hier zeigt sich dass das ganze in 1 Sekunde erledigt.


WriteLine(system.Date("%H:%M:%S Start"));

var lili = dom.GetObject("Lichterliste");
string ListeLichter;
ListeLichter = "- ";
var myFavorite = dom.GetObject("Licht");
string itemId;

foreach(itemId, myFavorite.EnumUsedIDs())
{
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL))
{
WriteLine(system.Date("%H:%M:%S ")+  item.Name());
! hier ausgeblendet  if ( item.State()  <> 0) { ListeLichter = ListeLichter + item.Name()+  ", ";}
}
}
WriteLine(system.Date("%H:%M:%S ")+ "Lichter:" + ListeLichter);
lili.Variable(ListeLichter)

WriteLine(system.Date("%H:%M:%S Ende"));


Ergebnis:

19:11:30 Start
19:11:30 BÜ DI Schreibtischlampe
19:11:30 BÜ RE Deckenlampe
19:11:30 EI RE Licht Haustür
19:11:30 EI RE Licht Windfang
19:11:30 EZ DI Esstisch
19:11:30 EZ RE Bücherregal
19:11:30 EZ RE Deckenlampe
19:11:30 F0 DI Flurlicht
19:11:30 F1 TA Licht Bad
19:11:30 F1 TA Licht Treppenhaus oben
19:11:30 GA RE Garagenlicht innen
19:11:30 KÜ RE Küchenfenster
19:11:30 TE RE Licht Terrasse
19:11:30 VG RE Licht Garage
19:11:30 WZ DI Deckenlampe
19:11:30 WZ DI Stehlampe
19:11:30 WZ RE Schrankwand
19:11:30 Lichter:- 
19:11:30 Ende

—> Die Zeit wird bei der Statusabfrage „verbraten“.

Nun ist die sporadische Abfrage des Lichtstatus nicht ganz so kritisch - aber bei der Abfrage der offenen Fensterkontakte während man vor der Haustür wartet dauert einfach zu lang. Man könnte sich natürlich vorstellen, dass die wichtigsten Fenster schon VOR dem Verlassen des Hauses analysiert sind - aber hier geht es um das Zeitverhalten der Homematic.

Mit 10 Sekunden biste aber gut dabei…

20:22:08 Start
20:22:08 IO-M1-Vert:out01 Licht WZ Esstisch
20:22:12 IO-M1-Vert:out02 Licht Keller oberer Teil
20:22:14 IO-M1-Vert:out03 Licht GZ
20:22:17 IO-M1-Vert:out04 Licht Flur Halogen
20:22:17 IO-M2-Vert:out01 Licht Flur LED
20:22:17 IO-M2-Vert:out04 Licht Kueche
20:22:18 IO-M3-Vert:out01 Licht WZ TVEcke
20:22:19 IO-M3-Vert:out02 Licht WZ Sideboard
20:22:22 IO-M3-Vert:out03 Licht SZ Bett Yvonne
20:22:22 IO-M3-Vert:out04 WZ Tannebaum
20:22:23 IO-M3-Vert:out06 Licht SZ Bett Sven
20:22:23 IO-M4-KBuero:out01 Licht KeBü Neon1
20:22:23 IO-M4-KBuero:out02 Licht KeBü Halogen1
20:22:23 IO-M4-KBuero:out03 Licht KeBü Halogen2
20:22:25 IO-M4-KBuero:out04 Licht KeBü Neon2
20:22:25 IO-M4-KBuero:out05 Poker innen
20:22:25 IO-M4-KBuero:out06 Poker außen
20:22:25 IO-M4-KBuero:out07
20:22:27 IO-M5-Vert:out01 Aussen LED Licht1
20:22:27 IO-M5-Vert:out02 Aussen LED Licht2
20:22:27 IO-M5-Vert:out04 Tuerlicht
20:22:33 IO-M5-Vert:out05 LichtKellergang
20:22:38 IO-M6-Vert:out01 Licht SZ Schrank
20:22:38 IO-M6-Vert:out02 Licht SZ uebern Bett
20:22:40 IO-M6-Vert:out03 Küche LED
20:22:41 IO-M7-Vert:out02 Licht BAD
20:22:41 IO-M7-Vert:out04 Pool Licht
20:22:42 IO-M7-Vert:out06 Licht Sauna
20:22:46 IO-M8-Vert:out01
20:22:47 IO-M8-Vert:out02
20:22:49 IO-M8-Vert:out03
20:22:54 IO-M8-Vert:out04
20:22:55 IO-M8-Vert:out05
20:22:58 IO-M8-Vert:out06
20:22:58 IO-M8-Vert:out07
20:22:59 IO-M9-Vert:out01 Carport Licht1
20:22:59 IO-M9-Vert:out02 Carport Licht2
20:23:00 IO-M9-Vert:out03 Carport Holzlager
20:23:00 Steller-OG-BAD:1
20:23:01 Steller-OG-Küche:1
20:23:01 Steller-OG-SZ:1
20:23:01 Steller-OG-WZ-Süd:1
20:23:01 Steller-OG-WZ-West:1
20:23:01 Lichter:- IO-M3-Vert:out04 WZ Tannebaum, IO-M3-Vert:out06 Licht SZ Bett Sven, IO-M5-Vert:out02 Aussen LED Licht2, IO-M6-Vert:out03 Küche LED, IO-M9-Vert:out02 Carport Licht2, Steller-OG-BAD:1, 

//Sven

ach guck: iss scho’ Weihnachten?!
:smiley:

:stuck_out_tongue: aktuell hängt da nix dran…

@Sven: In deiner Liste fällt mir auf, dass du „elektronisches“ Licht in Form von Halogen und LED dabei hast, außerdem auch „Neon“.

Diese Lichtarten sollen schon für manche Störstrahlung zuständig gewesen sein. Möglich dass viele Retransmits beim HM-Protokoll hier zuschlagen?

Hi HM-Sorgenkinder,

hab gestern ein Monitoring auf den BidCos-Service aufgeschaltet. Ich will versuchen Messdaten zu sammeln um damit evtl. das Problem einzugrenzen.

Was mich heute überrascht hat: ich hab den BidCos-Service um 21:30 neu gestartet. Reaktion war eine nahezu Verdopplung des Arbeitssatz-Speichers. Kann mir aber noch keinen Reim drauf machen. Protokoll-Größen hab ich mir auch angesehen - ide liegen ziemlich konstant bei 5MB pro Tag

Heisst das, dass der Bidcos Service nach dem Neustart mehr Speicher braucht als vorher???

die Grafik ist wohl recht eindeutig - in diesem Falle heißt es das wohl (eigentlich haben sich keine Rahmenbedingungen geändert). Interessant ist auch das sich die Anzahl der Handles deutlich verringert hat. Vielleicht ist das ein Hinweis auf die Trägheit. Mal sehen was das Langzeit-Monitoring ergibt.