[73_AutoShuttersControl.pm] - Version 0.8.x DEVEL, !!!FEATURE FREEZE!!!

Begonnen von CoolTux, 17 September 2019, 13:46:12

Vorheriges Thema - Nächstes Thema

CoolTux

Es ist soweit. Ich habe soeben Version 0.6.102 ins Devel auf Github geladen.
Hier gibt es nun die Möglichkeit bei den meisten Pos und Time Attributen Perlcode zu verwenden. Dieser muss in {} eingeschlossen sein.
Denkt bitte auch daran das Ihr das korrekte Package mit angibt wenn Ihr mit Funktionen anderer Module arbeiten wollt. Beispiel für FHEM Funktionen wäre main::

Also:
main::ReadingsVal()

Bitte schaut Euch die deutsche Commandref an welche natürlich von Hand erstellt werden muss wenn Ihre die Devel aus dem Git nehmt.
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

FunkOdyssey

Wie machst du das denn bei den Positionswerten z.B. für das Shading, wenn diese sich im Laufe des Tages verändern können?
Soweit ich das mitbekommen habe, prüfst du doch, ob das Rollo auf der ShadingPos ist. Via Perl könnte sich diese Position aber verändern.
Geht das dann überhaupt?

CoolTux

Da muss ich mir noch was einfallen lassen. Eventuell speichere ich die letzten 3 zwischen oder so. Mal schauen.
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

Kai-Alfonso

Ich hab mal eine Frage zur Beta. Seit der 0.6.101 ändert sich immer irgendwann das Reading ShuttersLastDrive auf manual und der Timestamp ändert sich bei allen Rollladen

Bug? Fehlkonfiguration von mir? Einzige was noch geändert wurde ist ein event-on-change-reading state auf die Fenster-Sensoren

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

CoolTux

Zitat von: Kai-Alfonso am 19 September 2019, 09:56:35
Ich hab mal eine Frage zur Beta. Seit der 0.6.101 ändert sich immer irgendwann das Reading ShuttersLastDrive auf manual und der Timestamp ändert sich bei allen Rollladen

Bug? Fehlkonfiguration von mir? Einzige was noch geändert wurde ist ein event-on-change-reading state auf die Fenster-Sensoren

Was für Deine Fenstersensoren gilt, gilt auch für die Rollo Devices. Setze auf das Reading für die Erkennung der Position ein event-on-changeupdate-reading.
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

Kai-Alfonso

Zitat von: CoolTux am 19 September 2019, 10:14:15
Was für Deine Fenstersensoren gilt, gilt auch für die Rollo Devices. Setze auf das Reading für die Erkennung der Position ein event-on-change-update.

Das war aber früher nicht nötig, oder? Weil ich hatte es ewig ohne laufen
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

Zitat von: CoolTux am 19 September 2019, 10:14:15
event-on-change-update.

du meinst change reading? Oder update? Change würde mehr Sinn machen, oder?  8)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

CoolTux

Zitat von: Kai-Alfonso am 19 September 2019, 10:22:13
Das war aber früher nicht nötig, oder? Weil ich hatte es ewig ohne laufen

Doch es wäre immer nötig gewesen. Das selbe Prinzip. ASC reagiert auf Events der Rollos. Speziell auf das Event welches das Reading für die Positionsbestimmung enthalten ist.
Kommt ein Event ohne eine tatsächliche Aktion von ASC wird dieses als manuell eingestuft. War schon immer so.
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

CoolTux

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

Kai-Alfonso

Zitat von: CoolTux am 19 September 2019, 10:27:31
Ja change reading

hm..komisch, hatte bei mir bis jetzt immer funktioniert   - andererseits schadet es ja auch nicht, die Events zu begrenzen. Hab mal ein event-on-change-reading pct gemacht, da dass bei meinen HM Aktoren das relavante Reading ist für den Rollladen-Stand
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

CoolTux

Zitat von: Kai-Alfonso am 19 September 2019, 10:30:29
hm..komisch, hatte bei mir bis jetzt immer funktioniert   - andererseits schadet es ja auch nicht, die Events zu begrenzen. Hab mal ein event-on-change-reading pct gemacht, da dass bei meinen HM Aktoren das relavante Reading ist für den Rollladen-Stand

Bitte achte auf die Zusammenhänge bei solch einer Änderung. Wenn Du zum Beispiel über eine leere Batterie informiert werden willst oder über ein Änderung des alive Status. Dann musst Du entsprechend Anpassungen machen. Also Bei einem Batteriereading das Reading mit in den event-on-change-reading aufnehmen. Dürfte bei Rollo jetzt nicht unbedingt dabei sein aber achte bei anderen Änderungen einfach drauf.
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

Beta-User

Das mit Perl finde ich klasse,

aber zumindest ein paar Kernfunktionen wie ReadingsNum/-Val, Value ... sollte man ohne main:: erreichen können. Gibt es da keinen besseren Weg? (eigentlich sollte es doch genügen, Perl zu detektieren und das dann an main::AnalyzePerlCommand() weiterzugeben, oder denke ich da mit meinen begrenzten Perl-Kenntnissen zu einfach?)

Zitat von: CoolTux am 18 September 2019, 17:50:33
Da muss ich mir noch was einfallen lassen. Eventuell speichere ich die letzten 3 zwischen oder so. Mal schauen.
Hmm, im Prinzip mußt du ja nur unterscheiden, ob manuell gefahren war oder nicht, dafür sollte eigentlich der letzte verwendete (errechnete) Wert (pro Attribut) hinreichend sein; das ganze darf nur nicht zu schnell getriggert werden, so dass der Rollladen auch die Chance hat, die Zeilposition bereits zurückmelden zu können.



Was die Doku angeht: Das ist doch ein offizielles Modul, nur zur Verwendung in FHEM! (Auch wenn's ggf. etwas mühsam ist:) Das sollte dann auch innerhalb der FHEM-Infrastruktur dokumentiert sein (=>Wiki).

Just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

CoolTux

Weitere Änderungen stehen an

Es sollen folgende Attribute abgelöst/vereinfacht werden:

  • ASC_Shading_Direction
  • ASC_Shading_Angle_Left
  • ASC_Shading_Angle_Right
Werden durch

  • ASC_Shading_InOutAzimuth
ersetzt. Angabe mittels vollem Azimut Wert In:Out z.B.: 135:210



  • ASC_Shading_StateChange_Sunny
  • ASC_Shading_StateChange_Cloudy
Werden durch

  • ASC_Shading_StateChange_SunnyCloudy
ersetzt. Wieder mittels : getrennt

Wie steht Ihr dazu?
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

CoolTux

Zitat von: Beta-User am 19 September 2019, 10:55:57
Das mit Perl finde ich klasse,

aber zumindest ein paar Kernfunktionen wie ReadingsNum/-Val, Value ... sollte man ohne main:: erreichen können. Gibt es da keinen besseren Weg? (eigentlich sollte es doch genügen, Perl zu detektieren und das dann an main::AnalyzePerlCommand() weiterzugeben, oder denke ich da mit meinen begrenzten Perl-Kenntnissen zu einfach?)
Ich arbeite bewusst ausserhalb von AnalyzePerlCommand(). Ich hatte mir das angeschaut und festgestellt das dies nicht nötig ist. Ich möchte die Möglichkeit des Einsetzens von Perl bewusst auf eine höhere Stufe stellen da es eigentlich nicht nötig ist. Daher auch keine Anpassungen an dem setzen der Attribute. Wer die Attribute mit Perlcode ändern will muss wissen was er da macht.
ASC arbeitet mit 3 Packages. Es wäre zu viel Aufwand alle möglichen FHEM Funktionen zu importieren. Daher immer das main davor. Und was ist mit Funktionen aus anderen Modulen. Einige Entwickler fangen an Module auf packages um zu schreiben. Wenn sie nicht gerade genau die Funktion exportieren welche der User im Attribut vom ASC aufrufen will muss hier auch der Packagename mit angegeben werden.


Zitat von: Beta-User am 19 September 2019, 10:55:57
Hmm, im Prinzip mußt du ja nur unterscheiden, ob manuell gefahren war oder nicht, dafür sollte eigentlich der letzte verwendete (errechnete) Wert (pro Attribut) hinreichend sein; das ganze darf nur nicht zu schnell getriggert werden, so dass der Rollladen auch die Chance hat, die Zeilposition bereits zurückmelden zu können.
Muss ich mir in Ruhe anschauen.


Zitat von: Beta-User am 19 September 2019, 10:55:57


Was die Doku angeht: Das ist doch ein offizielles Modul, nur zur Verwendung in FHEM! (Auch wenn's ggf. etwas mühsam ist:) Das sollte dann auch innerhalb der FHEM-Infrastruktur dokumentiert sein (=>Wiki).

Just my2ct.
Der Text kann natürlich sehr gerne ins Wiki mit übernommen werden. Dennoch möchte ich das gerne als schönes eBook gestalten.



Grüße
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

FunkOdyssey

Zitat von: CoolTux am 19 September 2019, 11:00:07
Weitere Änderungen stehen an

Es sollen folgende Attribute abgelöst/vereinfacht werden:

  • ASC_Shading_Direction
  • ASC_Shading_Angle_Left
  • ASC_Shading_Angle_Right
Werden durch

  • ASC_Shading_InOutAzimuth
ersetzt. Angabe mittels vollem Azimut Wert In:Out z.B.: 135:210



  • ASC_Shading_StateChange_Sunny
  • ASC_Shading_StateChange_Cloudy
Werden durch

  • ASC_Shading_StateChange_SunnyCloudy
ersetzt. Wieder mittels : getrennt

Wie steht Ihr dazu?

Ich bin ja ein Freund von Konfigurations-ReadingsGroups und bin voll diesen Änderungen nicht wirklich begeistert. Dies hatte ich bei der Brightness-Zusammenfassung auch schon erwähnt. Aber ich werde mich damit arrangieren. Besonders die Winkel müssen ja nicht häufig geändert werden. Den Sonnen- und Wolkenwert habe ich dynamisch gemacht, da in der Anfangszeit halt noch der richtige Wert gefunden werden muss.
Meiner Meinung nach lassen sich die zusammengesetzten Attribute auch schlechter lesen. Ich muss ständig in die CommandRef schauen, um die richtigen Reihenfolge nachzuschauen.

Aber ich gebe mich geschlagen. :-)
Es wird übersichtlicher und logischer zusammengefasst.