FHEM Forum

FHEM => Automatisierung => Thema gestartet von: gestein am 28 März 2020, 12:00:16

Titel: [gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 28 März 2020, 12:00:16
Hallo,

wie von CoolTux hier https://forum.fhem.de/index.php/topic,109424.msg1035273.html#msg1035273 (https://forum.fhem.de/index.php/topic,109424.msg1035273.html#msg1035273)
angeregt, mache ich dafür nun einen neuen Thread auf.

Ich verwende das ASC-Device zum Steuern meiner Somfy-Rollos mit RTS-Steuerung.
Die haben eine Tageslichtfunktion und können auch ganz zugemacht werden.

Es gibt also die folgenden Zustände:
0% ... vollkommen offen
1% - 99% ... der Rollo fährt runter, ist teilweise geschlossen und beim geschlossenen Bereich kann man durch kleine Schlitze durchschauen.
                    Das ist toll beim Beschatten, wenn man Zuhause ist, da die Sonne nicht reinkommt, aber es trotzdem heller ist.
100% ... der Rollo ist liegt unten auf und man kann durch kleine Schlitze durchschauen.
101% - 199% .. der Rollo macht weiter zu und von unten werden nun die Schlitze vollkommen geschlossen. Es kommt in dem Bereich keine Sonne mehr rein.
200% ... der Rollo ist vollkommen geschlossen und im Raum ist es finster.

Im ASC-Device sollte es also folgendes geben (nur als Beispiel):
Shading_Pos_1 ... 90%
Shading_Pos_2 ... 190%

Ich würde nun gerne die Beschattung so gestalten, dass wenn jemand Zuhause ist (das funktioniert mittlerweile über das Residents-Device wirklich zuverlässig) die Rollos auf Shading_Pos_1 fahren.
Wenn niemand mehr da ist, soll die Automatic auf Shading_Pos_2 fahren (am besten erst nach x Minuten, falls jemand nur kurz rausgeht).
Wenn jemand nach Hause kommt, dann sollte durch die Automatic relativ rasch die Shading_Pos_1 angefahren werden (sonst steht man ja vollkommen im Finstern).

Wie kann ich das richtig lösen?
Vielleicht muss man auch das Attribut ASC_Shading_WaitingPeriod (default 1200) verändern?
Ich möchte mich nicht von Anfang an in eine Lösung verrennen, wenn das eh nicht klappen kann.

Mir würde folgendes einfallen:
Perl-Code für ASC_Shading_Pos der einmal Shading_Pos_1 bzw. Shading_Pos_2 zurück gibt.
   Shading_Pos_1 ... wenn Residents-Device = abwesend, zusätzlich wird ASC_Shading_WaitingPeriod=1200 gesetzt
   Shading_Pos_2 ... wenn Residents-Device = zuhause, zusätzlich wird ASC_Shading_WaitingPeriod=1 gesetzt und nach einer gewissen Zeit wieder zurück auf 1200.

Oder ich setze mit einem Notify (vom Residents-Device) die ASC_Shading_Pos auf Shading_Pos_1 bzw. Shading_Pos_2 und die ASC_Shading_WaitingPeriod ebenfalls entsprechend.

Danke für Eure Hilfe.
lg, Gerhard
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 28 März 2020, 12:58:53
attr Rolloname ASC_ShadingPos { (ReadingsVal('Residentsname','state',home') eq 'home' ? 90 : 190) }

testen kannst Du dann in der FHEMWEB Eingabezeile mit

{ ascAPIget('ShadingPos','Rolloname') }
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 28 März 2020, 14:17:23
Hallo,

Danke. Aber dann muss man noch ASC_Shading_WaitingPeriod lang warten, bis sich was tut. Oder?

Beim Verlassen der Wohnung ist das nicht so schlimm.
Aber beim Nachhausekommen wäre es blöd so lange im Finstern zu stehen.

Lg, Gerhard
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 28 März 2020, 14:20:54
Zitat von: gestein am 28 März 2020, 14:17:23
Hallo,

Danke. Aber dann muss man noch ASC_Shading_WaitingPeriod lang warten, bis sich was tut. Oder?

Beim Verlassen der Wohnung ist das nicht so schlimm.
Aber beim Nachhausekommen wäre es blöd so lange im Finstern zu stehen.

Lg, Gerhard

Beim heim kommen kannst Du auswerten ob das Rollo in der Beschattung ist und wenn ja fährst Du es erstmal von Hand (eigene Notify Routine)  in die entsprechende Position. Ist nur so eine Idee.
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 28 März 2020, 15:24:28
Ok, Danke.
Das probiere ich mal.

lg, Gerhard
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 09 April 2020, 17:23:52
Hallo CoolTux,

jetzt muss ich mich doch noch mal mit einem Problem melden.

Heute sind durch einen Fehler in meinem Residenz-Device auf einmal alle weggegangen und damit war der Status auf nicht mehr auf "Zuhause".
Deswegen wurde dann auch die Beschattungsposition 190 angefahren. So weit so gut.

Allerdings fahren die Rollos nun nicht mehr auf die Beschattungsposition 92, nachdem alle wieder da sind und der Status des Residenz-Device wieder "Zuhause" ist.

Das Attribut ASC_Shading_Pos habe ich mal wie folgt gesetzt (damit ich einen Log-Eintrag bekomme):
{ my $myPos=ReadingsVal('Zuhause','state','home'); my $ret= ($myPos eq 'home' ? 92 : 190); Log 1, "Rollo.WZ.StiegeLinks: Zuhause='$myPos', ret=$ret"; return $ret; }

Im log steht dann folgendes:
ASC_DEBUG!!! 2020.04. 9 17:16:41 - EventProcessingShadingBrightness: Rollo.WZ.StiegeRechts - Alle Bedingungen zur weiteren Beschattungsverarbeitung sind erfüllt. Es wird nun die eigentliche Beschattungsfunktion aufgerufen
2020.04.09 17:16:41.535 4: AutoShuttersControl (Rollo.WZ.StiegeLinks) - EventProcessingShadingBrightness

ASC_DEBUG!!! 2020.04. 9 17:16:41 - EventProcessingShadingBrightness: Rollo.WZ.StiegeLinks - Es wird nun geprüft ob der übergebene Event ein nummerischer Wert vom Brightnessreading ist.
2020.04.09 17:16:41.535 4: AutoShuttersControl (Rollo.WZ.StiegeLinks) - EventProcessingShadingBrightness
            Brightness: 44517.97

ASC_DEBUG!!! 2020.04. 9 17:16:41 - EventProcessingShadingBrightness: Rollo.WZ.StiegeLinks - Nummerischer Brightness-Wert wurde erkannt. Der Brightness Average Wert ist: 45287 RainProtection: unprotected WindProtection: unprotected

ASC_DEBUG!!! 2020.04. 9 17:16:41 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1

ASC_DEBUG!!! 2020.04. 9 17:16:41 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1

ASC_DEBUG!!! 2020.04. 9 17:16:41 - ShadingProcessing: Rollo.WZ.StiegeLinks - Übergebende Werte - Azimuth:257.09, Elevation: 23.23, Brightness: 45287, OutTemp: 24.8, Azimut Beschattung: 220, Azimut Endschattung: 360, Ist es nach der Zeitblockadezeit: JA, Das Rollo ist in der Beschattung und wurde manuell gefahren: NEIN, Ist es nach der Hälfte der Beschattungswartezeit: JA
2020.04.09 17:16:41.541 4: AutoShuttersControl (myASControl) - Shading Processing, Rollladen: Rollo.WZ.StiegeLinks Azimuth: 257.09 Elevation: 23.23 Brightness: 45287 OutTemp: 24.8
2020.04.09 17:16:41.541 4: AutoShuttersControl (myASControl) - Shading Processing, Rollladen: Rollo.WZ.StiegeLinks Nach dem return
2020.04.09 17:16:41.542 1: Rollo.WZ.StiegeLinks: Zuhause='home', ret=92
2020.04.09 17:16:41.542 1: Rollo.WZ.StiegeLinks: Zuhause='home', ret=92

ASC_DEBUG!!! 2020.04. 9 17:16:41 - ShadingProcessing: Rollo.WZ.StiegeLinks - Alle Werte für die weitere Verarbeitung sind korrekt vorhanden und es wird nun mit der Beschattungsverarbeitung begonnen

ASC_DEBUG!!! 2020.04. 9 17:16:41 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
2020.04.09 17:16:41.545 4: AutoShuttersControl (myASControl) - Shading Processing, Rollladen: Rollo.WZ.StiegeLinks In der In Abfrage, Shadingwert: in, Zeitstempel: 1586436766

ASC_DEBUG!!! 2020.04. 9 17:16:41 - ShadingProcessing: Rollo.WZ.StiegeLinks - Alle Beschattungsbedingungen wurden erfüllt und somit wird der Beschattungsstatus um eine Stufe angehoben. Alter Status: in Neuer Status: in

ASC_DEBUG!!! 2020.04. 9 17:16:41 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1

ASC_DEBUG!!! 2020.04. 9 17:16:41 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
2020.04.09 17:16:41.550 1: Rollo.WZ.StiegeLinks: Zuhause='home', ret=92
2020.04.09 17:16:41.551 1: Rollo.WZ.StiegeLinks: Zuhause='home', ret=92
2020.04.09 17:16:41.551 4: AutoShuttersControl (myASControl) - Shading Processing - In der Routine zum fahren der Rolll▒den, Shading Wert: in

ASC_DEBUG!!! 2020.04. 9 17:16:41 - ShadingProcessingDriveCommand: Rollo.WZ.StiegeLinks - Der aktuelle Beschattungsstatus ist: in, Beschattungsstatus Zeitstempel: 2020.04. 9 14:52:46

ASC_DEBUG!!! 2020.04. 9 17:16:41 - EventProcessingShadingBrightness: Rollo.WZ.StiegeLinks - Alle Bedingungen zur weiteren Beschattungsverarbeitung sind erfüllt. Es wird nun die eigentliche Beschattungsfunktion aufgerufen
2020.04.09 17:16:41.552 4: AutoShuttersControl (Rollo.GZ) - EventProcessingShadingBrightness


Der gewünschte Positionswert wird also richtig zurückgegeben (92), aber der Rollo fährt nicht.
Die entsprechenden Readings im ASC sind wie folgt:
Rollo.WZ.StiegeLinks_PosValue 150 2020-04-09 16:14:05
Rollo.WZ.StiegeLinks_lastPosValue 0 2020-04-09 16:13:11
Rollo.WZ.StiegeLinks_nextAstroTimeEvent 9.04.2020 - 23:30 2020-04-09 06:00:01


Wieso fährt der Rollo nicht mehr auf 92?

Danke im Voraus
lg, Gerhard
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 09 April 2020, 18:04:58
Das ist korrekt. Ich habe das ganze in der morgen kommenden Version behoben.


Grüße
Titel: Antw:ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 09 April 2020, 19:23:02
Das gibt jetzt mal eine saftige Beschwerde.
Ich komme ja mit meinem Code-Review überhaupt nicht weiter bei Deinem Tempo.
Unglaublich. Jetzt sind schon Probleme gelöst, bevor ich sie beschreibe ;-) ;-)

Nein, im Ernst.
Unglaublich, was Du da lieferst.

Danke, lg, Gerhard
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 07 Mai 2020, 17:52:33
Hallo,

ich habe heute wiedermal das Beschatten mit 2 unterschiedlichen Positionen probiert.
Leider klappt es nicht mehr.

Das Attribut ASC_Shading_Pos habe ich wie folgt definiert:
{ my $myPos=ReadingsVal('Zuhause','state','home'); my $ret= ($myPos eq 'home' ? 92 : 190); Log 1, "Rollo.WZ.StiegeLinks: Zuhause='$myPos', ret=$ret"; return $ret; }

Im logfile erscheint folgendes:
ASC_DEBUG!!! 2020.05. 7 17:33:09 - ShadingProcessing: Rollo.WZ.StiegeLinks - Übergebende Werte - Azimuth:267.52, Elevation: 26.67, Brightness: 63566, OutTemp: 23.0, Azimut Beschattung: 220, Azimut Endschattung: 360, Ist es nach der Zeitblockadezeit: JA, Das Rollo ist in der Beschattung und wurde manuell gefahren: NEIN, Ist es nach der Hälfte der Beschattungswartezeit: JA
2020.05.07 17:33:09.984 1: Rollo.WZ.StiegeLinks: Zuhause='absent', ret=190
2020.05.07 17:33:09.985 1: Rollo.WZ.StiegeLinks: Zuhause='absent', ret=190


Weiters erscheint leider nichts weiter in der Richtung im log.
ASC_DEBUG!!! 2020.05. 7 17:47:25 - EventProcessingShadingBrightness: Rollo.WZ.StiegeLinks - Es wird nun geprüft ob der übergebene Event ein nummerischer Wert vom Brightnessreading ist.
ASC_DEBUG!!! 2020.05. 7 17:47:25 - EventProcessingShadingBrightness: Rollo.WZ.StiegeLinks - Nummerischer Brightness-Wert wurde erkannt. Der Brightness Average Wert ist: 57533 RainProtection: unprotected WindProtection: unprotected
ASC_DEBUG!!! 2020.05. 7 17:47:25 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
ASC_DEBUG!!! 2020.05. 7 17:47:25 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
ASC_DEBUG!!! 2020.05. 7 17:47:25 - ShadingProcessing: Rollo.WZ.StiegeLinks - Übergebende Werte - Azimuth:270.34, Elevation: 24.18, Brightness: 57533, OutTemp: 23.0, Azimut Beschattung: 220, Azimut Endschattung: 360, Ist es nach der Zeitblockadezeit: JA, Das Rollo ist in der Beschattung und wurde manuell gefahren: NEIN, Ist es nach der Hälfte der Beschattungswartezeit: JA
2020.05.07 17:47:25.296 1: Rollo.WZ.StiegeLinks: Zuhause='absent', ret=190
2020.05.07 17:47:25.297 1: Rollo.WZ.StiegeLinks: Zuhause='absent', ret=190
ASC_DEBUG!!! 2020.05. 7 17:47:25 - ShadingProcessing: Rollo.WZ.StiegeLinks - Alle Werte für die weitere Verarbeitung sind korrekt vorhanden und es wird nun mit der Beschattungsverarbeitung begonnen
ASC_DEBUG!!! 2020.05. 7 17:47:25 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
ASC_DEBUG!!! 2020.05. 7 17:47:25 - ShadingProcessing: Rollo.WZ.StiegeLinks - Alle Beschattungsbedingungen wurden erfüllt und somit wird der Beschattungsstatus um eine Stufe angehoben. Alter Status: in Neuer Status: in
ASC_DEBUG!!! 2020.05. 7 17:47:25 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
ASC_DEBUG!!! 2020.05. 7 17:47:25 - FnIsDay: Rollo.WZ.StiegeLinks Allgemein: 1
ASC_DEBUG!!! 2020.05. 7 17:47:25 - EventProcessingShadingBrightness: Rollo.WZ.StiegeLinks - Alle Bedingungen zur weiteren Beschattungsverarbeitung sind erfüllt. Es wird nun die eigentliche Beschattungsfunktion aufgerufen


Das hat schon mal funktioniert. Es scheint als ob da etwas geändert wurde.
lg, Gerhard
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 07 Mai 2020, 18:17:43
Welche Version verwendest Du?
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 07 Mai 2020, 20:02:41
VERSION: v0.8.27
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 07 Mai 2020, 20:12:31
Was bekommst Du wenn du

{ ascAPIget('ShadingPos','Rollo.WZ.StiegeLinks') }

auf rufst?
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 07 Mai 2020, 20:17:18
Wenn ich das Zuhause auf "zuhause" stelle, bekomme ich: 190
Wenn ich das Zuhause auf etwas anderes stelle, bekomme ich: 92

Muss es morgen wieder versuchen.
Jetzt sind die Rollos leider alle hochgefahren.

lg, Gerhard
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 07 Mai 2020, 20:19:13
Sollte dann passen. Kann aber sein daß ich ein paar Sachen erst in der 0.9er ausgebessert habe Die ist aktuell noch in Entwicklung.
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: gestein am 07 Mai 2020, 20:33:10
Soll ich umsteigen? Würde gerne in der aktuellen Version mittesten.
Oder ist es noch zu früh?

lg, Gerhard
Titel: Antw:[gelöst] ASC und 2 unterschiedliche Beschattungspositionen?
Beitrag von: CoolTux am 07 Mai 2020, 21:21:41
Zitat von: gestein am 07 Mai 2020, 20:33:10
Soll ich umsteigen? Würde gerne in der aktuellen Version mittesten.
Oder ist es noch zu früh?

lg, Gerhard

Wenn Du weißt wie man ein Modul von Hand installiert, kannst Du gerne testen.