[Modul] Rollladensteuerung (BlindControl)

Das hört sich doch erst einmal gut an. Und diese Positionsvariable ist in der Rollladeninstanz als Level ID eingetragen?
Bei der Fahrt wartet das Modul 90 Sekunden lang darauf, dass der Rollladen die erreichte Zielposition meldet.

Das passiert auch. Die Totzeit beträgt 40 Sekunden.

Soweit die Theorie :slight_smile:

Könntest du mal das Debug der Instanz aktivieren? Dann sieht man genauer, was passiert.

@bumaas
So… jetzt hatte ich nochmal ein paar Minuten Zeit… schau mal den Screenshot an.

Hier kannst es sehen… Problem ist wohl manchmal sendet der KNX ein bisschen ein anderer Wert zurück z.B: Steuerung auf 30% - KNX sendet 31% …
Das wertet dann BlindControl als neue Steuerung… Wahrscheinlich bei mir ein Sonderfall, da die Aktoren etwas ungenau sind.
Im Prinzip müsste BlindControl hier ne Unschärfe drin haben. Heißt die erste Rückmeldung des neuen Wertes sollte nicht wirklich als manuelle Beeinflussung gelten…
Kann ich hier noch was drehen? Ansonsten muss ich einfach damit leben…
Ich lass jetzt mal noch von einem Rollladen ein Debug laufen… Vielleicht kannst da mehr sehen…

Gruß Stephan / epogo

Im Log sieht man, dass um 6:59:59 die Zielposition von 30% als erreicht gemeldet wurden. Dann nach 60 Sekunden wird die neue Position gemeldet. Damit ist die Totzeit überschritten.

Kann es sein, dass die Levelvariabel sofort auf 30% geht, wenn der Rollladen die Zielposition vorgegeben bekommt?

Siehe auch den Hinweis in der Doku (Voraussetzungen):

Zudem dürfen die Statusvariablen nicht emuliert werden. Dies ist wichtig, um manuell ausgelöste Bewegungen eindeutig von automatisch ausgeführten Bewegungen unterscheiden zu können.

Bitte prüfe das einmal.

Wird berücksichtigt: die Toleranz ist 1%.

Wird auch berücksichtigt :slight_smile: Die Toleranz beträgt 5 Sekunden.

Ich vermute stark, es liegt an der zu früh gemeldeten Zielposition.

Hallo,
noob bräuchte Hilfe mit 2 Themen zu Blindcontrol:

  1. Irgendwie scheine ich Probleme mit der Berechnung der automatischen Beschattung zu haben - für meinen Geschmack fährt Blind Control zu wenig herunter. Beispiel eines Westfensters. Aktuell z.B. auf 26% wenn bei meinen Vorgaben eher 50% und mehr notwenig wären. Die maximale Beschattungsposition ist auch eher „die geringste“. Ansonsten sin aber 0% offen und 100% geschlossen, die Fahrzeiten habe ich entsprechend eingetragen.Gerichtet habe ich mich nach der genauen Methode, 80cm Schattenwurf habe ich eingetragen. Konfig sieht so aus.

Gross Wohnzimmer EG (#21952)

Array
(
    [ActivatedIndividualDayLevels] => 
    [ActivatedIndividualNightLevels] => 
    [ActivatorIDShadowingBrightness] => 0
    [ActivatorIDShadowingBySunPosition] => 43533
    [AltitudeFrom] => 0
    [AltitudeID] => 41167
    [AltitudeTo] => 90
    [AzimuthFrom] => 177
    [AzimuthID] => 28994
    [AzimuthTo] => 360
    [BedTimeID] => 0
    [BedTimeOffset] => 0
    [BlindLevelHighBrightnessShadowingBrightness] => 0
    [BlindLevelID] => 40164
    [BlindLevelLessBrightnessShadowingBrightness] => 0
    [BrightnessAvgMinutes] => 0
    [BrightnessAvgMinutesShadowingBrightness] => 0
    [BrightnessAvgMinutesShadowingBySunPosition] => 0
    [BrightnessID] => 0
    [BrightnessIDShadowingBrightness] => 0
    [BrightnessIDShadowingBySunPosition] => 0
    [BrightnessThresholdID] => 0
    [BrightnessThresholdIDShadowingBySunPosition] => 0
    [ContactClose1ID] => 0
    [ContactClose2ID] => 0
    [ContactCloseLevel1] => 0
    [ContactCloseLevel2] => 0
    [ContactCloseSlatsLevel1] => 0
    [ContactCloseSlatsLevel2] => 0
    [ContactOpen1ID] => 0
    [ContactOpen2ID] => 0
    [ContactOpenLevel1] => 0
    [ContactOpenLevel2] => 0
    [ContactOpenSlatsLevel1] => 0
    [ContactOpenSlatsLevel2] => 0
    [ContactsToCloseHaveHigherPriority] => 
    [DayBlindLevel] => 0
    [DayEndID] => 0
    [DaySlatsLevel] => 0
    [DayStartID] => 0
    [DayUsedWhenHoliday] => 0
    [DeactivationAutomaticMovement] => 20
    [DeactivationManualMovement] => 120
    [DelayTimeDayNightChange] => 0
    [DelayTimeDayNightChangeIsRandomly] => 
    [DepthSunLight] => 80
    [EmergencyContactID] => 0
    [HalfShadeRelevantBlindLevel] => 5,4
    [HighSunPositionAltitude] => 0
    [HighSunPositionBlindLevel] => 0
    [HighSunPositionSlatsLevel] => 0
    [HolidayIndicatorID] => 0
    [IsDayIndicatorID] => 29010
    [LowSunPositionAltitude] => 0
    [LowSunPositionBlindLevel] => 0
    [LowSunPositionSlatsLevel] => 0
    [MaximumShadeRelevantBlindLevel] => 11,2
    [MaximumShadeRelevantSlatsLevel] => 0
    [MinMovement] => 5
    [MinMovementAtEndPosition] => 2,5
    [MinimumShadeRelevantBlindLevel] => 0
    [MinimumShadeRelevantSlatsLevel] => 0
    [NightBlindLevel] => 0
    [NightSlatsLevel] => 0
    [ParapetHeight] => 70
    [ShowNotUsedElements] => 
    [SlatsLevelHighBrightnessShadowingBrightness] => 0
    [SlatsLevelID] => 0
    [SlatsLevelLessBrightnessShadowingBrightness] => 0
    [TemperatureIDShadowingBySunPosition] => 19980
    [ThresholdIDHighBrightness] => 0
    [ThresholdIDLessBrightness] => 0
    [UpdateInterval] => 10
    [WakeUpTimeID] => 0
    [WakeUpTimeOffset] => 0
    [WeeklyTimeTableEventID] => 46250
    [WindowHeight] => 135
    [WindowOrientation] => 270
    [WindowsSlope] => 90
    [WriteDebugInformationToIPSLogger] => 
    [WriteDebugInformationToLogfile] => 
    [WriteLogInformationToIPSLogger] => 
)

Dump hänge ich an. dump.txt (14,8 KB)
Wo ist mein Fehler?

  1. Terrassentür mit Drehgriffsensor (geschlossen, offen, gekippt)
    Was will ich:

-Rollos sollen nur bei „offen“ nicht automatisch herunterfahren, den Status gekippt sollen sie ignorieren.Da ich keine Ahnung von Skrpiten habe löse ich das im Moment so, dass ich zum Sensor zwei Ereignisse angelegt habe die eine Bool-Variable bei „offen“ auf true und bei allen anderen Stati (gekippt und geschlossen) als False setzten und ich diese Variable als Kontakt einbinde. Ein Problem dabei ist aber, dass der Drehgriff von „gekippt“ nach „geschlossen“ natürlich über „offen“ geht und den Rollo triggert. Wie kann ich das verhindern?

-Gleichzeitig würde ich mir wünschen, dass der Rollo auf den Drehgriff garnicht mehr reagiert wenn er vorher schon heruntergefahren wurde. Denn wenn ich bei geschlossenem Rollo die Tür öffne fährt der Rollo logischerweise auf die vorgegebene Position auf… Wie könnte man soetwas lösen?

EDIT: Dazu fällt mir gerade ein dass ich ein weiteres Ereigniss anlegen könnte dass bei einer Rollo Postion > XY meinen virtuellen Türkontakt immer auf false setzt. Nur wie bringe ich eine Hierachie in meine Ereignisse da sich dieses Ereigniss ja zwangsläufig mit meinen anderen Beiden Ereignissen des Türsensors beisst…

Danke für das tolle Modul & die Mithilfe

Hi,

zu 1)
Da scheinen deine Einstellungen nicht zu passen:

Dein Profil sagt, dass der Wert 0 angenommen wird, wenn der Rollladen geöffnet und 100 wenn er geschlossen wird.

Die Beschreibung der Rollladenpositionen ist vielleicht nicht genau genug

Als minimale Beschattungsposition ist der Wert einzugegeben, den die Level Variable hat, wenn der Rollladen beginnt, das Fenster abzudecken.
Als halbe Beschattungsposition ist der Wert einzugeben, den die Level Variable hat, wenn der Rollladen das halbe Fenster abdeckt.
Und als maximale Beschattung ist der Wert einzugeben, den die Level Variable hat, wenn das Fenster komplett abgedeckt wird.

Bei einem Profil mit 0 = geöffnet und 100 = geschlossen, wären 10, 40 und 80 beispielhafte Werte.

zu 2)

Genau das gilt es zu verhindern. Du musst dafür sorgen, dass die auslösende Variable nur dann auf offen geht, wenn der Griff länger als einen gewissen Zeitraum (z.B.) 2 Sekunden auf ‚offen‘ verweilt.

Vielleicht kannst du das schon bei deiner Hardware einstellen. Bei Homematic Fenstergriffkontakten gibt es z.B. die Option „Meldeverzögerung“, bei der man den gewünschten Wert direkt eingeben kann.

1 „Gefällt mir“

Als minimale Beschattungsposition ist der Wert einzugegeben, den die Level Variable hat, wenn der Rollladen beginnt, das Fenster abzudecken.
Als halbe Beschattungsposition ist der Wert einzugeben, den die Level Variable hat, wenn der Rollladen das halbe Fenster abdeckt.
Und als maximale Beschattung ist der Wert einzugeben, den die Level Variable hat, wenn das Fenster komplett abgedeckt wird.<

Ah, okay. Ich meine im Faden irgendwo gelesen zu haben dass ich die Fahrzeit (Rohdaten) und nicht die Position eingeben muss. 5.4s=50% und mit 11,2s ist der Rollo zu. Mein Fehler - probiere ich sofort aus!

Drehgriff: ist Eltakto (Enocean), ich habe leider nichts entsprechendes gefunden.

Eine neue Frage hat sich ergeben:
Kann ich auch nur die Beschattung aktivieren? Habe eine Markise, und die soll logischerweise keinen automatischen Tag-Nacht Rhythmus durchmachen, aber eine automatische Beschattung (mit Bedingungen des Wettersensors wie Regen und Wind als Limitation) an heissen Tage wäre schon nett. Ich dachte schon an ein Wochenprofil mit „nur offen“, aber dann würde die Markise ja jedesmal wieder nach einer gewissen Zeit hochgefahren wenn ich sie manuell runterfahre… Denkfehler?! Aber vielleicht ist das Modul hierfür auch „overkill“ und ich bastle mit einfach entsprechende Ereignisse.

@bumaas Danke funktioniert mit den Prozentwerten!

Analog zum zweiten Teil meiner Frage („kann ich verhindern dass der Rollo aufgeht wenn der Rollo schon zu ist und ich das Fenster öffne“) habe ich noch einen zweiten, ähnlichen Usecase:

Wenn ich „Präsenz“ im Schlaffzimmer als Kontakt habe möchte ich erreichen dass der Rollo morgens nicht automatisch hochfährt. Trotzdem soll „Präsenz“ bei offenem Rollo nicht automatisch den offenen Rollo schliessen…

Dann würde ich mit einer Hilfsvariable „Fenster geöffnet (ja/nein)“ arbeiten, die du über einen Ablaufplan passend setzt, und die dann als Kontakt referenzieren.

Das sollte möglich sein.

nicht wenn du die „Zeit der Deaktivierung nach manueller Fahrt auf 0 setzt.“ Dann würde sie erst zum Tageswechsel wieder automatisch hochfahren.

1 „Gefällt mir“

Bin ich richtig in der Annahme, dass Somfy io Rolladen nicht funktionieren? Bekomme beim Steuerungslauf immer einen „Fehler“.

Habe die „Position“ des Somfy Rolladen als Rolladen LevelID angegeben.

Ich kenne den Somfy nicht. Aber die Voraussetzungen findest du in der Doku.

Moin zusammen,
ich denke ich habe einen Fehler in der Doku und damit in den Einstellungen lokalisiert (nach meiner Frau und den Nachbarn sollte es so sein:-))

In den Experten Einstellungen wird die Zeit der Deaktivierung nach automatischer Fahrt
wie folgt angegeben:

image

Demzufolge sind das jetzt 600 Minuten bis zur nächsten Fahrt.

In der Dokumentation (und auch nach den Nachbarn und der Ehefrau )
wird aber wie folgt angegeben:

Demzufolge war ich vorher auf 20 Sekunden und das war für die Frau einfach zuviel des guten :slight_smile:

Kannst Du das bestätigen oder liege ich dort falsch?

MfG

Ingo

Vielen Dank für deine schnelle Reaktion!

Wie kann ich herausfinden ob Somfy io sich über RequestAction steuern lassen?

Danke!

Ihr habe alle Recht :slight_smile:

In der Instanz wird die Zeit in Minuten angegeben.

Dann gibt es aber noch die Testfunktion „BLC_MoveBlind()“. Die von dir zitierte Beschreibung bezieht sich auf den Parameter der Funktion. Dort ist der Wert in Sekunden zu übergeben.

Ich antworte mir mal selber…

Also Somfy kann RequestAction ausführen. Jetzt ist die Frage warum ich die Meldung „Fehler“ erhalte.

Ich poste mal meine Konfiguration:

Blind Controller (#13581)

Array
(
    [ActivatedIndividualDayLevels] => 
    [ActivatedIndividualNightLevels] => 
    [ActivatorIDShadowingBrightness] => 0
    [ActivatorIDShadowingBySunPosition] => 14941
    [AltitudeFrom] => 0
    [AltitudeID] => 51833
    [AltitudeTo] => 65
    [AzimuthFrom] => 188
    [AzimuthID] => 52802
    [AzimuthTo] => 360
    [BedTimeID] => 0
    [BedTimeOffset] => 0
    [BlindLevelHighBrightnessShadowingBrightness] => 0
    [BlindLevelID] => 55260
    [BlindLevelLessBrightnessShadowingBrightness] => 0
    [BrightnessAvgMinutes] => 0
    [BrightnessAvgMinutesShadowingBrightness] => 0
    [BrightnessAvgMinutesShadowingBySunPosition] => 5
    [BrightnessID] => 0
    [BrightnessIDShadowingBrightness] => 0
    [BrightnessIDShadowingBySunPosition] => 1
    [BrightnessThresholdID] => 0
    [BrightnessThresholdIDShadowingBySunPosition] => 52066
    [ContactClose1ID] => 0
    [ContactClose2ID] => 0
    [ContactCloseLevel1] => 0
    [ContactCloseLevel2] => 0
    [ContactCloseSlatsLevel1] => 0
    [ContactCloseSlatsLevel2] => 0
    [ContactOpen1ID] => 0
    [ContactOpen2ID] => 0
    [ContactOpenLevel1] => 0
    [ContactOpenLevel2] => 0
    [ContactOpenSlatsLevel1] => 0
    [ContactOpenSlatsLevel2] => 0
    [ContactsToCloseHaveHigherPriority] => 
    [DayBlindLevel] => 0
    [DayEndID] => 0
    [DaySlatsLevel] => 0
    [DayStartID] => 0
    [DayUsedWhenHoliday] => 0
    [DeactivationAutomaticMovement] => 20
    [DeactivationManualMovement] => 120
    [DelayTimeDayNightChange] => 0
    [DelayTimeDayNightChangeIsRandomly] => 
    [DepthSunLight] => 0
    [EmergencyContactID] => 0
    [HalfShadeRelevantBlindLevel] => 0
    [HighSunPositionAltitude] => 65
    [HighSunPositionBlindLevel] => 0
    [HighSunPositionSlatsLevel] => 0
    [HolidayIndicatorID] => 0
    [IsDayIndicatorID] => 0
    [LowSunPositionAltitude] => 0
    [LowSunPositionBlindLevel] => 68
    [LowSunPositionSlatsLevel] => 0
    [MaximumShadeRelevantBlindLevel] => 0
    [MaximumShadeRelevantSlatsLevel] => 0
    [MinMovement] => 5
    [MinMovementAtEndPosition] => 2,5
    [MinimumShadeRelevantBlindLevel] => 0
    [MinimumShadeRelevantSlatsLevel] => 0
    [NightBlindLevel] => 0
    [NightSlatsLevel] => 0
    [ParapetHeight] => 0
    [ShowNotUsedElements] => 
    [SlatsLevelHighBrightnessShadowingBrightness] => 0
    [SlatsLevelID] => 0
    [SlatsLevelLessBrightnessShadowingBrightness] => 0
    [TemperatureIDShadowingBySunPosition] => 1
    [ThresholdIDHighBrightness] => 0
    [ThresholdIDLessBrightness] => 0
    [UpdateInterval] => 1
    [WakeUpTimeID] => 0
    [WakeUpTimeOffset] => 0
    [WeeklyTimeTableEventID] => 19800
    [WindowHeight] => 0
    [WindowOrientation] => 0
    [WindowsSlope] => 90
    [WriteDebugInformationToIPSLogger] => 1
    [WriteDebugInformationToLogfile] => 1
    [WriteLogInformationToIPSLogger] => 1
)

Kann man damit was Anfangen?

Wenn ich auf „Steuerungslauf durchführen“ klicke, kommt einfach nur:
image

Im Debug gibt es keine Ausgabe.

Da hast du mehrere Möglichkeiten.

  • über ein Skript:
  • oder über einen Ablaufplan mit der Aktion „schalte Variable“

  • oder über das Kontextmenü der Variable → Variable verändern → … → schalten

Ja, habe es gesehen und mit einem PHP-Skript probiert, was auch funktioniert hat.

Das kann eigentlich nicht sein. Dort sollte der Grund zu finden sein.

Jetzt hab ich die Meldung gesehen:
image

Ist irgendwie untergegangen…

Hab mal wie in dem Beispiel auf github die Eintragung für den Wochenplan vorgenommen.

Jetzt scheint er auch etwas zu machen :slight_smile:

Aber noch eine Frage zum Verständnis… Auf github gibt es dieses Beispiel:

Wieso wird hier am Tag die ID für Rolladen hoch genommen? Wenn die Sonne am Tag scheint, sollen sie doch runterfahren?

Oder verstehe ich da etwas falsch?

Edit: Ich richte mir das mal so ein wie in der Anleitung beschrieben, da ich die Rolladen nur zum Sonnenschutz steuern möchte. Also setze ich hier die ID 2 (Rolladen hoch) auf 24/7.

So sollte es ja dann passen :slight_smile:

Edit2: Doch nicht…
Setze ich die Zeit für Rolladen hoch von 00:00:00 bis 23:59:59, dann bekomme ich die Meldung dass die Zeiten des Wochenplans ungültig sind.

Oder reicht es hier auch einfach aus die Zeiten anzugeben, wann das Rollo gesteuert werden soll? Oder fährt er dann die Rollos außerhalb der „Rolladen hoch“-Zeiten einfach herunter? Das möchte ich nicht.

Aktuell sieht mein Wochenplan so aus:

Aber führt zu oben genannten Fehler.

Edit3:
So, hab jetzt eine Zeitspanne von Mo-So und keine Fehlermeldung mehr :slight_smile:
Schwere Geburt :smiley:

Edit4:
So richtig komme ich aber nicht damit klar, der fährt hier hoch und runter in Stellungen wie er will… Naja, muss ich mich wohl noch mehr einlesen.

Ich stelle folgendes ein:

Und aktuell steht das Rollo auf 85%?!

Wo ist mein Fehler?

Bei welcher Sonnenhöhe?

Sonst hilft auch das Debug weiter.