[ASC] Variable Privacy Up Time

Begonnen von teufelchen, 06 September 2022, 10:32:08

Vorheriges Thema - Nächstes Thema

teufelchen

Hallo,

ich möchte gerne dass meine Rollos früh zu einer festen Zeit schon etwas öffnen.
Hierfür verwende ich ASC_PrivacyUpValue_beforeDayOpen.
Solange der Sonnenaufgang vor der Hochfahrzeit ist, funktioniert ein fester Wert.

Da es nun aber jeden Tag später hell wird ändert sich die Hochfahrzeit, und da der Wert für die Privacy Up Time fest ist auch das die Zeit für das teilweise Öffnen.

Ich habe mir über userReadings eine Variable berechnet, die jeden Tag die Privacy Up Time neu berechnet.

Wenn ich jeden Tag das Attribut aktualisiere, ist dies wie eine zu speichernde Änderung im System.
Deshalb würde ich im Attribut Privacy Up Time auf ein variables Reading verweisen.
Wenn ich nun jeden Tag den neu errechneten Wert in das Attribut "ASC_PrivacyUpValue_beforeDayOpen" schreiben lasse, funktioniert es.
Da sich aber das Attribut ändert ist jedes oben das Fragezeichen, dass es eine Systemänderung gab.

Nun habe ich, erfolglos, versucht das Attribut als Variable zum Reading zu setzen.
Ich weiß nicht ob es vom ASC-Modul überhaupt unterstütz wird
oder ob ich einfach nur falschen Code verwende.
Ich verwende diesen Code:
{ReadingsVal($name,"Z_My_ASC_PrivacyUpValue_beforeDayOpen","-1")}

Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

CoolTux

Du kannst es einmal versuchen über die API setzen zu lassen. Ich glaube das sollte gehen.

{ ascAPIset('PrivacyUpTime','ROLLODEVICENAME','VALUE') }

Bei VALUE muss dann der Wert Deiner Variablen rein welche Du über das userReadings berechnet hast.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

teufelchen

Hallo CoolTux,

bisher verwende ich im berechneten Reading diesen Code, wobei $PrivacyUpValue_offset mein berechneter Wert ist:
fhem("attr $name ASC_PrivacyUpValue_beforeDayOpen $PrivacyUpValue_offset");
Dadurch wird das Attribut am Rollo geändert.
Dein Code
{ ascAPIset('PrivacyUpTime','ROLLODEVICENAME','VALUE') }
ändert ebenfalls den Wert in den Attributen.
Dadurch wird in FHEM eine Änderung erzeugt die mit den Fragezeichen hinter "save config" signalisiert wird, was ich gerne anders lösen würde.

Ich habe gehofft, dass Perlcode möglich ist und ich damit zum Reading (was keine Änderung in der Config verursacht) einen Verweis bekomme.

So ähnlich wie es in der Beschreibung für die ASC_Sleep_Pos ist:
ASC_Sleep_Pos - in 10 Schritten von 0 bis 100 (default: ist abhängig vom AttributASC 75/25) !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

frank

ZitatSo ähnlich wie es in der Beschreibung für die ASC_Sleep_Pos ist:
ob mit oder ohne perl.
sobald ein attribut gesetzt wird, wird das fragezeichen rot.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CoolTux

Zitat von: teufelchen am 06 September 2022, 12:26:59
Hallo CoolTux,

bisher verwende ich im berechneten Reading diesen Code, wobei $PrivacyUpValue_offset mein berechneter Wert ist:
fhem("attr $name ASC_PrivacyUpValue_beforeDayOpen $PrivacyUpValue_offset");
Dadurch wird das Attribut am Rollo geändert.
Dein Code
{ ascAPIset('PrivacyUpTime','ROLLODEVICENAME','VALUE') }
ändert ebenfalls den Wert in den Attributen.
Dadurch wird in FHEM eine Änderung erzeugt die mit den Fragezeichen hinter "save config" signalisiert wird, was ich gerne anders lösen würde.

Ich habe gehofft, dass Perlcode möglich ist und ich damit zum Reading (was keine Änderung in der Config verursacht) einen Verweis bekomme.

So ähnlich wie es in der Beschreibung für die ASC_Sleep_Pos ist:
ASC_Sleep_Pos - in 10 Schritten von 0 bis 100 (default: ist abhängig vom AttributASC 75/25) !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!

Schade, ich hatte gedacht das die Änderung ohne das Fragezeichen passiert. Dann ist das in der Tat aktuell nicht möglich.
Was ich aber nicht ganz verstehe. Wieso funktioniert das mit der Zeitberechnung eigentlich nicht für Dich.
Er berechnet doch den Sonnenaufgang für den nächsten Tag und zieht dann davon die angegebene Sekundenzahl ab so das er x Sekunden vor dem morgendlichen öffnen schon in die PrivacyPos fährt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

teufelchen

Es soll Werktags immer um 5:40 das Rollo zum lüften hoch fahren.
Wenn Sonnenaufgang vor 5:40 dann greift Time Up Early und öffnet ganz.
Wenn der Sonnenaufgang nach 5:40 soll der Rollo um 5:40 zum lüften ein Stück hochfahren und ganz öffnen wenn  Sonnenaufgang ist.
Deshalb muss ich jeden Tag die Differenz zwischen Sonnenaufgang und Rollo öffnet ganz zur Uhrzeit 5:40 Uhr neu berechnen und als Wert in  Sekunden bei Privacy open aktualisieren.
Oder gibt es eine andere Möglichkeit?
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

CoolTux

Zitat von: teufelchen am 06 September 2022, 20:26:36
Es soll Werktags immer um 5:40 das Rollo zum lüften hoch fahren.
Wenn Sonnenaufgang vor 5:40 dann greift Time Up Early und öffnet ganz.
Wenn der Sonnenaufgang nach 5:40 soll der Rollo um 5:40 zum lüften ein Stück hochfahren und ganz öffnen wenn  Sonnenaufgang ist.
Deshalb muss ich jeden Tag die Differenz zwischen Sonnenaufgang und Rollo öffnet ganz zur Uhrzeit 5:40 Uhr neu berechnen und als Wert in  Sekunden bei Privacy open aktualisieren.
Oder gibt es eine andere Möglichkeit?

Kann ich nicht nachvollziehen. Wenn Du tatsächlich mit PrivacyUp arbeitest dann sollte er nicht ganz hochfahren sondern in die PrivacyPos. Und das ganze X Sekunden vor dem eigentlichen Sunrise
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

teufelchen

Zitat von: CoolTux am 07 September 2022, 07:42:21
Kann ich nicht nachvollziehen. Wenn Du tatsächlich mit PrivacyUp arbeitest dann sollte er nicht ganz hochfahren sondern in die PrivacyPos. Und das ganze X Sekunden vor dem eigentlichen Sunrise

Ich versuche es mal an Beispielen zu erklären:
Sonnenaufgang 4:30 Uhr
Rollo soll ganz um 5:40 öffnen, da es draußen schon hell ist; Privacy Time = 0; funktioniert so im Modul

Sonnenaufgang 6:40 Uhr
Rollo soll um 5:40 in Privacy open gehen und zum Sonnenaufgang um 6:40 ganz öffnen; Privacy Time = 3600 Sekunden

Sonnenaufgang 6:50 Uhr
Rollo soll um 5:40 in Privacy open gehen und zum Sonnenaufgang um 6:50 ganz öffnen; Privacy Time = 4200 Sekunden

Die Öffnungszeit soll fix sein und nicht x Sekunden vor Öffnen.
Da aber jetzt jeden Tag die Sonne später aufgeht, muss täglich neu die Privacy Time berechnet werden.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD