Zustandsanzeige Aktoren

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
maclada
Beiträge: 99
Registriert: 04.02.2008, 21:25

Zustandsanzeige Aktoren

Beitrag von maclada » 08.09.2009, 20:53

Hallo, ich habe es jeden Tag, dass die aktuellen Zustände einiger (wechselnder) Aktoren nicht richtig
angezeigt werden. Hauptsächlich sind es die Jalousieaktoren. Wenn man den Aktor manuell schaltet dann wird der aktuelle Zusand angezeigt.
Das kann es doch aber auch nicht sein, wie soll man auf dieser Basis weiterführende Programme schreiben. Ich verwende die aktuellste Version auf der CCU 1.58 90814 und VisuWin 1.8.
Habt Ihr eine Idee woran dies liegt?

tino
Beiträge: 249
Registriert: 04.09.2008, 18:56

Re: Zustandsanzeige Aktoren

Beitrag von tino » 08.09.2009, 23:28

Das Problem hatte ich auch. Die Rückmeldungen der RLUs kommen manchmal einfach nicht bei der CCU an, wenn die RLUs zu schnell hintereinander senden.
Ein User hier im Forum (ich glaube teddy war es) hatte mir Empfohlen,
jede Stunde mit einen Script den Zustand Abzufragen. Das geht Perfekt.
Das Script unten einfach periodisch z.B. jede Stunde oder auch nach einer Schalthandlung verzögert ablaufen lassen.
Wichtig ist, das du ein Gewerk anlegst, wo du alle RLUs reinlegst. Bei mir heißt das Gewerk "Ueberwachung"

string lst_channel = dom.GetObject("Ueberwachung").EnumUsedIDs();
string idx_channel;
boolean v_light = false;

foreach (idx_channel, lst_channel) {
v_light = v_light || (dom.GetObject(idx_channel).State() > 0);
}
HomeMatic süchtig :-)

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Zustandsanzeige Aktoren

Beitrag von buempi » 09.09.2009, 08:33

... und in Homeputer CL müsste es so funktionieren:

Code: Alles auswählen

Abfrage(Rollladen1)
Abfrage(Rollladen2)
Ausführungsintervall müsste dann jede Stunde sein. Weil diese Abfragen sehr zeitintensiv sind, und zur vollen Stunde vielleicht auch einiges anderes abläuft, würde ich ganz oben im Makro ein WARTE("00:00:15") einbauen. Sollten mehrere solche Abfragen nötig sein, auch zwischen den einzelnen Abfragen, damit die CCU sich in dieser Zeit auch ums aktuelle Tagesgeschäft kümmern kann.

Auszug aus der Homeputer-Hilfe:
ABFRAGE(Objektname)
Mit dieser Anweisung kann der aktuelle Zustand/Wert der Hardware eines Objekts abgefragt werden.
Normalerweise ist das nicht nötig, da Änderungen automatisch aktualisiert werden. In speziellen
Anwendungen kann es sinnvoll sein diese Anweisung zu verwenden, sie sollte jedoch nicht zu häufug und
möglichst nur bei sicherheitsrelevanten Objekten benutzt werden, da sie relativ zeitintensinv ist und es bei zu
häufiger Verwendung zu Verzögerungen bei der normalen Kommunikation kommen kann,
Um nicht unnötigerweise viele solche zeitintensiven Abfragen zu produzieren, und dann im Schaltzeitpunkt vielleicht doch einen nicht aktuellen Wert zu haben, könntest du es auch so machen, dass du stattdessen vor jeder Schaltung, die vom Zustand eines Rollladens abhängig ist, eine solche Abfrage machst

Code: Alles auswählen

// Makro im Fensterkontakt Schlafzimmer:

wenn FensterSchlafzimmer = "geschlossen" dann
   Abfrage(RollladenWohnzimmer)
   Abfrage(RollladenSchlafzimmer)
   // Wie lange die Wartezeit sein muss, musst du herausfinden
   warte("00:00:10")
   wenn RollladenWohnzimmer  = "unten" und RollladenSchlafzimmer <> "unten" dann
      RollladenSchlafzimmer := "unten"
   endewenn
endewenn
Diese "Einsparung" ist natürlich nur wirkungsvoll, wenn das Schlafzimmerfenster nicht mehr als 24x am Tag auf- und zugemacht wird!

Viele Grüsse
Bümpi

Antworten

Zurück zu „homeputer CL“