für meine Beschattung habe ich ein Skript, das die Jalousien unter bestimmten Bedingungen auf eine jeweils definierte Höhe fährt. Da die Homematic-Aktoren manchmal nicht ordnungsgemäß reagieren, möchte ich sicherstellen, dass es in einem solchen Fall solange versucht wird, bis es klappt. Dazu möchte ich die Aktor-Variable „WORKING“ zur Hilfe nehmen wie folgt (die Aktor-Instanz hat die ID $JalID):
Frage 1:
Nun dauert es immer ein wenig, bis die Infos aus Homematic in IPS ankommen, d.h. auch dann, wenn der Aktor reagiert, springt die IPS-Aktor-Variable „WORKING“ erst nach ein paar Sekunden auf TRUE. Solange wird der Schaltbefehl aber immer wieder an Homematic gegeben. Schadet das in irgendeiner Form (zuviel Funk-Verkehr, Aktor wird zu oft angesprochen und geht auf Dauer kaputt oder ähnliches)?
Frage 2:
Darüber hinaus stammt der obige Skriptteil aus einem Skript, das für verschiedene Rolläden aus ihnen jeweils zugeordneten Skripten per INCLUDE einbezogen wird, was auch parallel für 9-12 Jalousien der Fall sein kann. Kann dies zu Problemen führen?
Danke für Eure Hilfe, auch wenn die Antworten aus Profi-Sicht ggf. vollkommen klar sind…
Fehlgeschlagene Befehle werden bei HM_WriteValueXxx mit false zurück gemeldet. Du musst also Working nicht auswerten.
Sondern nur den Rückgabewert von HM_WriteValueXxx auswerten.
// First run
$result = true;
$result = @HM_WriteValueFloat($JalID, "LEVEL", 0.15);
// Second run
if ($result === false) {
@HM_WriteValueFloat($JalID, "LEVEL", 0.15);
}
Was du schaltest ist egal. Der Rückgabewert ist false wenn die CCU den Aktor nicht schalten konnte und true wenn der Befehl erfolgreich war. Egal ob du State, Level oder sonstwas schaltest.
Wobei ich Wiederholungen nicht als Lösung sehe. Hier wäre es besser du findest die Ursache.
Eventuell ist einfach der duty-cycle der CCU erreicht und sie darf gerade nicht senden?
D.h. bei zwei Aktoren sind das 8 Schaltbefehle an die CCU.
Ich löse das so, dass ich nach dem ersten 4er Block ein IPS_Sleep(500) setzte, damit sichergestellt ist, dass die ersten vier durch sind und die zweiten vier Schaltbefehle gesendet werden können.
Wenn es so läuft, lass es doch.
Habe solche Geräte nicht.
Mir sind bisher immer nur die ganzen Anzeigen negativ aufgefallen, wenn man dort lange Strings versendet, die treiben immer den duty-cycle hoch.
Michael