Wie ein einzelnes Programm die CCU komplett lahmlegt (ein Erfahrungsbericht)

Hallo zusammen,

nach 2 Nächten konfigurieren, fluchen, konfigurieren, wieder fluchen … Voodoo … bin ich ein klein wenig schlauer :rolleyes:

Evtl. hilft das nachfolgend Beschriebene ja dem einen oder anderen Probleme (sprich: haufenweise Servicemeldungen und andere Seltsamkeiten) zu identifizieren und zu lösen (konnte ein Problem in der Art im Forum bisher nicht finden).

Hier die Aufgabe:

Ziel war es eine automatische Treppenbeleuchtung per CCU-Programm zu realisieren, die nur „anspringt“ wenn es nicht mehr hell genug im Raum ist (Tageslicht) und die entsprechenden Lampen in der Umgebung des Treppenabgangs ausgeschaltet sind. Die Beleuchtung wird wieder ausgeschaltet sofern keine Bewegung mehr im Bereich der Treppe / des Treppenabgangs mehr vorhanden ist und ebenso wenn das Licht per Tastdimmer eingeschaltet wurde und keine Bewegung im Raum registriert wird (für ca. 3 min. + 2 min. Verzögerung). Klingt ja vorerst nicht übermäßig komplex …

Vereinfacht logisch beschrieben:

  • WENN Licht „aus“ bzw. 0% (Aktor „A“ UND „B“ UND „C“) UND kleiner als 50% (Aktor „D“ -> die Treppenbeleuchtung) UND Helligkeit im Raum „X“ kleiner als bestimmter Wert UND Bewegung im Raum „Y“ (Treppenabgang) DANN Dimmer auf 50% (Aktor „D“)
  • ODER WENN Dimmer GRÖßER oder GLEICH 0% (Aktor „D“) UND keine Bewegung im Raum „Y“ DANN Dimmer nach 2 min. auf 0% (Aktor „D“)

Hier sei noch gesagt: das CCU-Programm „an sich“ hat perfekt funktioniert und war deshalb auch bei der Fehlersuche anfangs nicht der Fokus. Der Plan war sowieso es bei Gelegenheit durch ein IPS-Skript abzulösen. Hätte ich das mal gleich so umgesetzt … :rolleyes:

Effekte nach Aktivierung des Programms:

  • nach ca. 10 min. normalem Betrieb die ersten Servicemeldungen (UNREACH) verschiedener Aktoren/Sensoren
  • nach ca. 30 min. im Schnitt pro Minute 10-20 UNREACH-Meldungen irgendwelcher an der CCU angelernter Devices
  • teilweise sind Aktoren überhaupt nicht mehr bedienbar (weder direkt von der CCU, noch über IPS und manche auch nicht über die eigentlichen Taster)
  • andere Programme funktionieren nur noch sporadisch
  • Befehle aus IPS heraus wie z.B. „HW_WriteValue…“ kamen bei der CCU zu 90% nicht mehr an
  • das XML-API gab nur noch selten Daten her
  • Direktverknüpfungen (z.B. Thermostat <> Fensterkontakt) funktionieren teilweise nicht mehr

Interessant war auch, dass bei der kleinsten nachträglichen Modifikation (Namensänderung des Programms hat ausgereicht!) in eben diesem Programm ALLE zeitabhängigen Einstellungen in SÄMTLICHEN Programmen auf der CCU weg waren :eek: Zurück bekam man diese nur durch Rücksicherung der Konfig oder erneutem, manuellen Einstellen.

Nachvollzogen habe ich das Verhalten mit FW 1.506 und 1.507 auch nach Rücksetzen auf die Werkseinstellungen und anschließendem Restore der Konfig.

Schlussfolgerung:

Ich bin mir zu 99,8% sicher, dass der 1. Teil des Programms (Bedingung: Schaltzustand/Dimmwert der 4 Aktoren „auf Aktualisierung“ prüfen) das Chaos ausgelöst hat. Mit nur einem statt der ursprünglich 4 Aktoren geht es problemlos. Nebenbei ist mir noch aufgefallen, dass eine installierte XML-API (V1.1) das Auftreten der Probleme merklich beschleunigt hat.

Mein Fazit (mag für einige Spezis hier nicht neu sein):

  • der CCU so wenig Logik wie möglich zumuten (sind die Dinger eigentlich weiblichen Geschl… lassen wir das!) :smiley:
  • Zusatzsoftware, Erweiterungen und andere Spielereien nur auf der CCU installieren wenn unbedingt notwendig (SetTime wäre da z.B. für mich argumentierbar)

So … wer es bis zu dieser Stelle im Text geschafft hat ist herzlich eingeladen seine eigenen Erfahrungen, Meinungen, Voodoo-Flüche o.ä. kundzutun :wink:

Cheers
/Jens

Ich kann Deine Schlussfolgerung die CCU nur zur Einbindung von Homematic Geräten und zur Kommunikation an IPS zu benutzen bestätigen.
Aus den div. Foren weiss ich das es zwar auch viele Nutzer gibt die recht komplexe Sachen auf der CCU laufen lassen allerdings gab es bei mir immer wieder bestimmte Konfigurationen die dazu führen das sich die CCU in den langsamen Selbstmord stürzte.
Seit ich konsequent die obige Strategie verfolge ist mein System eigentlich recht stabil. IPS kann zwar auch Probleme machen aber mir fällt es leichter diese zu beheben da das System wesentlich transparenter ist und die Tools doch viel ausgereifter sind
Was auch gut funktioniert sind Direktverbindungen zwischen zwei Geräten. Bestimmte Aufgabestellungen sind jedoch zu komplex um darüber gelöst zu werden

unterm Strich: Geld sparen und Lan-Adapter kaufen :wink:

Habe mit Direktverknüpfung für kritische Sachen und IPS-Scripte bisher keinerlei Phänomene gehabt ^^

Nö, zur Überwachung und Statuslieferung im Ausfallszenario ist die CCU genial.
Ich vermisse meinen Adapter nicht mehr.

Die CCU ist nicht besonders leistungsstark und man kann Sie sehr schnell mit Programmen überfordern - wie jeden kleinen stromsparenden Rechner. Funktioniert auch prima mit IPS und ATOM-Systemen denen man zu viel zumutet.

Den beschriebenen Effekt hatte ich bei mir auch schon mit einem Programm welches Statusmeldungen automatisch bestätigt. Ein zu kurzes Ausführungsintervall führte dazu, dass die CCU nicht mehr hinterher kam, alles extrem träge und verspätet angezeigt wurde. Bis hin zu schlicht falschen Angaben in der WebGUI. Nachdem ich das Intervall größer eingestellt hatte normalisierte sich der Zustand nach und nach wieder.

Nö, zur Überwachung und Statuslieferung im Ausfallszenario ist die CCU genial.

Ansonsten kann ich Boui nur zustimmen.

Danke für Euer Feedback!
Dann sind wir uns im Grunde ja alle einig :wink:

@dapor

Die Idee mit dem LAN-Adapter kam mir auch schon. Verworfen habe ich sie genau aus diesem Grund:

Frage zu …

Sind Direktverbindungen denn über den LAN-Adapter auch so komfortabel einzurichten wie mit der CCU?

@kronos

Bei mir läuft das bei Auftauchen einer Servicemeldung verzögert um 10 Sek. (hat wahrscheinlich im beschriebenen Fehlerfall zusätzlich zur Verschlimmbesserung beigetragen). Ab wann wurde es denn bei Dir im Normalbetrieb kritisch?

Lessons learned … was mich allerdings immer noch richtig anfräst ist die Sache mit dem Verlust der Timereinstellungen in allen anderen Skripten. Vermutet habe ich zuerst, dass evtl. nur der NTP-Client gestorben ist, aber da die Settings nach einem Reboot nicht wiederkamen heißt das ja, dass in bestimmten Fehlersituation „unbeteilgte“ Konfigurationen direkt verändert werden. Unschön … deswegen wird jetzt vor jeder kleinsten Änderung ein Backup gezogen und nicht nur nach jeder fünften :rolleyes:

Cheers
/Jens

Bei mir läuft das bei Auftauchen einer Servicemeldung verzögert um 10 Sek. (hat wahrscheinlich im beschriebenen Fehlerfall zusätzlich zur Verschlimmbesserung beigetragen). Ab wann wurde es denn bei Dir im Normalbetrieb kritisch?

Es wurde bei mir kritisch wenn viele Kommunikationsstörungen (geschätzt >10) kamen weil z.b. ein LAN-Adapter nicht erreichbar war und die betreffenden HM-Geräte (gewollt) nicht auf Roaming standen.

Lessons learned … was mich allerdings immer noch richtig anfräst ist die Sache mit dem Verlust der Timereinstellungen in allen anderen Skripten. Vermutet habe ich zuerst, dass evtl. nur der NTP-Client gestorben ist, aber da die Settings nach einem Reboot nicht wiederkamen heißt das ja, dass in bestimmten Fehlersituation „unbeteilgte“ Konfigurationen direkt verändert werden. Unschön … deswegen wird jetzt vor jeder kleinsten Änderung ein Backup gezogen und nicht nur nach jeder fünften

Ich wäre mir da gar nicht so sicher dass die CCU die Sachen wirklich über Board geworfen hatte. Ich vermute sie hinkt nur ewig hinter Ihrer Job-Queue hinterher und das das Malheur erst dann passiert, wenn man Sie auch noch resettet. Weiss der Geier was die dann als Geräte- und Programmstati noch sichert. Wenn der Reset gar über Telnet/reboot ausgelöst wird brauchen wir über Integrität der Konfigurationsdaten sowieso nicht mehr reden.

O.k. … sollte bei mir so nicht passieren, da ich die Devices rein entfernungs-/empfangstechnisch völlig getrennt auf 2 CCUs verteilt habe.

Den Reboot habe ich über die GUI der CCU ausgelöst, nach Entfernung des Chaos-Skripts und das auch nicht sofort. Die CCU hatte sich schon wieder einige Zeit beruhigt (ich kam auch erst auf den Trichter als beim Besorgen neuen Brauwassers zur Beruhigung der Nerven die autom. Kellerbeleuchtung den Dienst versagte) :smiley:

Wenn ich mal wieder viel Zeit und ein frauenfreies Haus habe, werde ich das nochmals versuchen zu reproduzieren.

Off Topic:

neuen Brauwassers zur Beruhigung der Nerven die autom. Kellerbeleuchtung den Dienst versagte)

Dafür brauchst Du Licht?

Off Topic:

Nur wenn´s draußen regnet! :smiley:

Meine folgende Erkenntnis ist entweder grenzenlos trivial ODER aber vielleicht ein Lösungsansatz:

Bei HM-Scripts sorge ich immer dafür dass ein „nur prüfen“ nie auftritt ohne vorheriges „auslösen auf …“.

Scripts werden „von oben nach unten“ abgearbeitet. D.h. wenn der erste Eintrag von einem Wechsel eines Schaltzustandes abhängig ist werden die nachfolgenden gar nicht erst beachtet (Ausnahme: Oder-Verknüpfungen).

Folge 1:
Ein Script das mit „nur prüfen“ auf z.B. einen Helligkeitswert BEGINNT wird laufend gestartet und sorgt für entsprechende Last auch wenn nachfolgende Bedingung(en) dann nicht mehr zutreffen.

Folge 2:
Laufende Statusüberprüfungen kopple gleich in der ersten Zeile an einen regelmäßigen Timer

Hallo und vielen Dank für den Bericht. Zeigt er doch wieder einmal ganz klar auf, dass es keinen Sinn macht Programme in der CCU abzulegen. Die Logik war mir eh immer etwas zu suspekt. PHP ist dagegen einfach nur Ehrlich :slight_smile:
Ähnliches bekommt mach übrigens wesentlich einfacher hin. Es reicht aus eine HM-RC-19-B leerlaufen zu lassen (Ich berichtete schonmal). Wenn die Akkus nämlich richtung null laufen weil sie z.b. nicht korrek in der Ladeschale steht, geht nach ganz kurzer Zeit mal gar nichts mehr!
LG und ein schönes WE
//Sven

Ich habe das „nur prüfen“ deshalb noch nie verwendet. Da die Bedingung ja war, „WENN einer von 4 DANN“ machte „auf Aktualisierung“ mehr Sinn (das Problem war in meinem Fall nachweislich die Anzahl…).

Meines Wissens nach wird bei beiden Varianten laufend geprüft, der Unterschied ist aber bei „nur prüfen“ wird nichts direkt ausgelöst, aber alle weiteren Bedingungen gecheckt. Bei „auf Aktualisierung“ wird sofort beim ersten Treffer auf „wahr“ gesetzt und nicht mehr weitergeprüft.
Oder hab ich da ´nen logischen Kurzschluss?

Cheers
/Jens

Je öfter ich die verschiedenen Erklärungen der 3 Auswahlmöglichkeiten lese desto mehr verwirrt mich die vermeintliche Logik und die Folgewirkungen.
Ich werde mal meine HM-Scripts Richtung IPS transferieren.

Ergänzend habe ich noch folgende Erfahrung machen dürfen:

Bei den 3 letzten FW-Versionen (V1.506, …07, …08) trat es immer wieder einmal auf, dass sich bei Änderung eines x-beliebigen CCU-Programms sämtliche oder ein Teil der Zeiteinstellungen in den anderen vorhandenen Programmen in Nichts auflösen.
Das Phänomen tritt scheinbar nicht auf wenn das anzupassende Skript vor Änderung deaktiviert wird (in der Übersicht Haken raus bei „aktiv“). Zufall?

Könnt Ihr das bestätigen/widerlegen?

Cheers
/Jens