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?
Zustandsanzeige Aktoren
Moderator: Co-Administratoren
Re: Zustandsanzeige Aktoren
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);
}
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
-
- Ehrenmitglied
- Beiträge: 12194
- Registriert: 29.07.2006, 15:58
- Wohnort: Schweiz
- Danksagung erhalten: 5 Mal
Re: Zustandsanzeige Aktoren
... und in Homeputer CL müsste es so funktionieren:
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:
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
Code: Alles auswählen
Abfrage(Rollladen1)
Abfrage(Rollladen2)
Auszug aus der Homeputer-Hilfe:
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 machstABFRAGE(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,
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
Viele Grüsse
Bümpi