[73_AutoShuttersControl.pm] Neues Modul zum automatisierten steuern von Rolläden

Begonnen von CoolTux, 30 Oktober 2018, 17:29:46

Vorheriges Thema - Nächstes Thema

Sommerfeld

Danke das du dir das anschaust

Internals:
   BTN        2
   DEF        05af 2
   IODev      CUL_1
   NAME       WZ_Rollo_1
   NR         135
   STATE      Zu
   TYPE       UNIRoll
   XMIT       05af
   CODE:
     1          05af 2
   READINGS:
     2018-11-18 16:09:10   ASC_ShuttersLastDrive day open
     2018-11-18 16:04:03   ASC_Time_DriveDown 19.11.2018 - 16:04
     2018-11-18 16:04:03   ASC_Time_DriveUp 19.11.2018 - 07:41
     2018-11-18 16:54:11   oldPos          19
     2018-11-18 16:54:11   oldstate        down 0
     2018-11-18 16:54:11   pos             19
     2018-11-18 16:54:11   state           down
   helper:
     bm:
       UNIRoll_Set:
         cnt        7
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        18.11. 16:00:00
         max        0.142786026000977
         tot        0.240652799606323
         mAr:
           HASH(0x563fbdd60768)
           WZ_Rollo_1
           down
Attributes:
   ASC        1
   ASC_Antifreeze off
   ASC_AntifreezePos 85
   ASC_AutoAstroModeEvening none
   ASC_AutoAstroModeEveningHorizon none
   ASC_AutoAstroModeMorning none
   ASC_AutoAstroModeMorningHorizon none
   ASC_BrightnessMaxVal -1
   ASC_BrightnessMinVal -1
   ASC_Closed_Pos 19
   ASC_ComfortOpen_Pos 20
   ASC_Down   astro
   ASC_Drive_Offset -1
   ASC_GuestRoom none
   ASC_LockOut off
   ASC_LockOut_Cmd none
   ASC_Mode_Down always
   ASC_Mode_Up always
   ASC_Open_Pos 1
   ASC_Partymode off
   ASC_Pos_Reading pos
   ASC_Roommate_Device none
   ASC_Roommate_Reading state
   ASC_Self_Defense_Exclude off
   ASC_Shading_Brightness_Reading brightness
   ASC_Shading_Brightness_Sensor none
   ASC_ShuttersPlace window
   ASC_Time_Down_Early 15:30
   ASC_Time_Down_Late 22:30
   ASC_Time_Up_Early 04:30
   ASC_Time_Up_Late 09:00
   ASC_Time_Up_WE_Holiday 08:30
   ASC_Up     astro
   ASC_Ventilate_Pos 15
   ASC_Ventilate_Window_Open off
   ASC_WiggleValue 5
   ASC_WindowRec none
   ASC_WindowRec_subType twostate
   AZ_Rollo_1 Rollos_Alle
   IODev      CUL_1
   StrukturalleRollos Rollos_Alle
   babbleDevice Rollo
   cmdIcon    up:fts_shutter_up down:fts_shutter_down stop:stop_1
   comment    Muss dazu sagen habe ein userReading für die UNIRoll     
pos:oldPos.* { ReadingsNum("og_wz_rollo","oldPos",0)}  um pos für ASC_Pos_Reading zu nutzen.
   devStateIcon Auf:fts_shutter_20@red Stopp:fts_shutter_40@yellow Zu:fts_shutter_90@green
   eventMap   up:Auf stop:Stopp down:Zu up:0 up:1 down:19 down:100 up:position 1 down:position 19
   fp_Erdgeschoss 466,203,2,WZ_Rollo_1,
   group      Rollos
   icon       shutter_5
   model      R_23700
   rMax       19
   rMin       15
   rPos       19
   room       02_0_EG->02_4_EG_Wohnzimmer
   useRolloPos 1
   userReadings pos:oldPos.* { ReadingsNum("WZ_Rollo_1","oldPos",0)}
   userattr   ASC_Antifreeze:off,soft,hard,am,pm ASC_AntifreezePos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BrightnessMaxVal ASC_BrightnessMinVal ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Down:time,astro,brightness ASC_Drive_Offset ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_Exclude:on,off ASC_Shading_Brightness_Reading ASC_Shading_Brightness_Sensor ASC_ShuttersPlace:window,terrace ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindowRec ASC_WindowRec_subType:twostate,threestate AZ_Rollo_1 AZ_Rollo_1_map StrukturalleRollos StrukturalleRollos_map structexclude
   webCmd     up:stop:down

hexenmeister

Im Badezimmer sollte Ventilate Position immer ganz offen sein. Wird das Rollo nicht ganz geöffnet, kondensiert sich bei kälteren Temperaturen die Feuchtigkeit aus dem Zimmer und bildet sich Schimmel darauf.  :(
Daher wäre schon toll, wenn Ventilate Position gleich offen sein kann.

Was ich auch nicht ganz verstehe, ist das geänderte Verhalten beim schließen. Warum nicht einfach die zuletzt (vor dem Öffnen) vorhandene Position anzufahren bzw. lassen (wenn keine Änderung notwendig)? Wenn zwischenzeitlich (beim offenen Fenster) Fahrtbefehl kam, dann ersetzt seine Sollposition die gespeicherte.
Wäre so rum nicht logischer vom Standpunkt des Benutzers?

CoolTux

Zitat von: Sommerfeld am 18 November 2018, 17:47:30
Danke das du dir das anschaust

Internals:
   BTN        2
   DEF        05af 2
   IODev      CUL_1
   NAME       WZ_Rollo_1
   NR         135
   STATE      Zu
   TYPE       UNIRoll
   XMIT       05af
   CODE:
     1          05af 2
   READINGS:
     2018-11-18 16:09:10   ASC_ShuttersLastDrive day open
     2018-11-18 16:04:03   ASC_Time_DriveDown 19.11.2018 - 16:04
     2018-11-18 16:04:03   ASC_Time_DriveUp 19.11.2018 - 07:41
     2018-11-18 16:54:11   oldPos          19
     2018-11-18 16:54:11   oldstate        down 0
     2018-11-18 16:54:11   pos             19
     2018-11-18 16:54:11   state           down
   helper:
     bm:
       UNIRoll_Set:
         cnt        7
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        18.11. 16:00:00
         max        0.142786026000977
         tot        0.240652799606323
         mAr:
           HASH(0x563fbdd60768)
           WZ_Rollo_1
           down
Attributes:
   ASC        1
   ASC_Antifreeze off
   ASC_AntifreezePos 85
   ASC_AutoAstroModeEvening none
   ASC_AutoAstroModeEveningHorizon none
   ASC_AutoAstroModeMorning none
   ASC_AutoAstroModeMorningHorizon none
   ASC_BrightnessMaxVal -1
   ASC_BrightnessMinVal -1
   ASC_Closed_Pos 19
   ASC_ComfortOpen_Pos 20
   ASC_Down   astro
   ASC_Drive_Offset -1
   ASC_GuestRoom none
   ASC_LockOut off
   ASC_LockOut_Cmd none
   ASC_Mode_Down always
   ASC_Mode_Up always
   ASC_Open_Pos 1
   ASC_Partymode off
   ASC_Pos_Reading pos
   ASC_Roommate_Device none
   ASC_Roommate_Reading state
   ASC_Self_Defense_Exclude off
   ASC_Shading_Brightness_Reading brightness
   ASC_Shading_Brightness_Sensor none
   ASC_ShuttersPlace window
   ASC_Time_Down_Early 15:30
   ASC_Time_Down_Late 22:30
   ASC_Time_Up_Early 04:30
   ASC_Time_Up_Late 09:00
   ASC_Time_Up_WE_Holiday 08:30
   ASC_Up     astro
   ASC_Ventilate_Pos 15
   ASC_Ventilate_Window_Open off
   ASC_WiggleValue 5
   ASC_WindowRec none
   ASC_WindowRec_subType twostate
   AZ_Rollo_1 Rollos_Alle
   IODev      CUL_1
   StrukturalleRollos Rollos_Alle
   babbleDevice Rollo
   cmdIcon    up:fts_shutter_up down:fts_shutter_down stop:stop_1
   comment    Muss dazu sagen habe ein userReading für die UNIRoll     
pos:oldPos.* { ReadingsNum("og_wz_rollo","oldPos",0)}  um pos für ASC_Pos_Reading zu nutzen.
   devStateIcon Auf:fts_shutter_20@red Stopp:fts_shutter_40@yellow Zu:fts_shutter_90@green
   eventMap   up:Auf stop:Stopp down:Zu up:0 up:1 down:19 down:100 up:position 1 down:position 19
   fp_Erdgeschoss 466,203,2,WZ_Rollo_1,
   group      Rollos
   icon       shutter_5
   model      R_23700
   rMax       19
   rMin       15
   rPos       19
   room       02_0_EG->02_4_EG_Wohnzimmer
   useRolloPos 1
   userReadings pos:oldPos.* { ReadingsNum("WZ_Rollo_1","oldPos",0)}
   userattr   ASC_Antifreeze:off,soft,hard,am,pm ASC_AntifreezePos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BrightnessMaxVal ASC_BrightnessMinVal ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Down:time,astro,brightness ASC_Drive_Offset ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_Exclude:on,off ASC_Shading_Brightness_Reading ASC_Shading_Brightness_Sensor ASC_ShuttersPlace:window,terrace ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindowRec ASC_WindowRec_subType:twostate,threestate AZ_Rollo_1 AZ_Rollo_1_map StrukturalleRollos StrukturalleRollos_map structexclude
   webCmd     up:stop:down


Uniroll werden nicht automatisch unterstützt, bedeutet das der Wert des Attributes ASC_Pos_Reading sowohl das Reading wiederspiegeln muss welches die aktuelle Position des Rollos kennt als auch den set Befehl entsprechen muss welcher der Rollos in Position fährt. Mit numerischen Angaben. Bei Dir also: set Rolloname pos 50 fährt das Rollo auf 50%


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

CoolTux

Zitat von: hexenmeister am 18 November 2018, 18:00:36
Im Badezimmer sollte Ventilate Position immer ganz offen sein. Wird das Rollo nicht ganz geöffnet, kondensiert sich bei kälteren Temperaturen die Feuchtigkeit aus dem Zimmer und bildet sich Schimmel darauf.  :(
Daher wäre schon toll, wenn Ventilate Position gleich offen sein kann.
Das sollte jetzt gehen

Zitat von: hexenmeister am 18 November 2018, 18:00:36
Was ich auch nicht ganz verstehe, ist das geänderte Verhalten beim schließen. Warum nicht einfach die zuletzt (vor dem Öffnen) vorhandene Position anzufahren bzw. lassen (wenn keine Änderung notwendig)? Wenn zwischenzeitlich (beim offenen Fenster) Fahrtbefehl kam, dann ersetzt seine Sollposition die gespeicherte.
Wäre so rum nicht logischer vom Standpunkt des Benutzers?
Weiß nicht, für mich irgendwie nicht.Egal wie ich es durch spiele, Es ergibt für mich keinen Sinn warum die Rollladenposition eine andere sein sollte als geschlossen so lange das Fenster nicht auf gemacht wurde. Also wohl gemerkt Abends.
Kommt in der Zwischenzeit ein anderer Fahrbefehl, was eher selten ist (wir reden hier wohl gemerkt von einem Fahrbefehl vom Modul), dann wird dieser zwischen gespeichert.
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

hexenmeister

Bei dem Abend oder Nacht bin ich eher der selben Meinung. Da will man die Rollläden unten haben. Tagsüber sieht das anders aus. Wenn ich per Hand eine Rolllädenposition eingestellt habe, möchte ich ja nicht dass sie sich ungefragt ändert. Beispiel: Sonne blendet ich stelle eine entsprechende Position ein. Jetzt will ich kurz stoßlüften. Danach hätte ich am liebsten die vorher eingestellte Position.

CoolTux

Zitat von: hexenmeister am 18 November 2018, 18:39:26
Bei dem Abend oder Nacht bin ich eher der selben Meinung. Da will man die Rollläden unten haben. Tagsüber sieht das anders aus. Wenn ich per Hand eine Rolllädenposition eingestellt habe, möchte ich ja nicht dass sie sich ungefragt ändert. Beispiel: Sonne blendet ich stelle eine entsprechende Position ein. Jetzt will ich kurz stoßlüften. Danach hätte ich am liebsten die vorher eingestellte Position.

Stellt sich mir die Frage ob du der einzige bist der Luftenposition gleich offen Position hat. Dein Beispiel so gesehen macht Sinn sofern die Luftenposition oberhalb der Beschattungsposition ist und es am Tag ist. Aber wie viele machen das so. Warum willst du Stoßlüften wenn du beschattest? Kommt doch nur heiße Luft. Dann lieber durch den Beschattungsschlitz leicht Lüften
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

Sommerfeld

ZitatUniroll werden nicht automatisch unterstützt, bedeutet das der Wert des Attributes ASC_Pos_Reading sowohl das Reading wiederspiegeln muss welches die aktuelle Position des Rollos kennt als auch den set Befehl entsprechen muss welcher der Rollos in Position fährt. Mit numerischen Angaben. Bei Dir also: set Rolloname pos 50 fährt das Rollo auf 50%
Vielen Dank für die Info. Verstehe ich es richtig, dass ich lediglich im ASC_Pos_Reading "set Rolloname pos 50" hinterlegen muß?

Grüße

CoolTux

Zitat von: Sommerfeld am 18 November 2018, 19:09:37
Vielen Dank für die Info. Verstehe ich es richtig, dass ich lediglich im ASC_Pos_Reading "set Rolloname pos 50" hinterlegen muß?

Grüße

Nein. Du musst das Reading hinterlegen welches die aktuelle Position wieder gibt und da dein Modul nicht komplett erkannt wird muss das hinterlegte auch gleich den set Befehl entsprechen.

Also wenn du dein Rolladen manuell mit set Rolladen pos 80 fahren kannst und Dein Reading zur Positionsanzeige auch pos ist dann trägst du da pos ein ins Attribut.
Wenn Dein set Befehl pos ist aber Dein Reading position ist so hat Dein set Befehl vorrang und du musst ein Reading schaffen welches pos heißt und den selebn ihnhalt hat wie das Reading position. Readings kann man ändern/umleiten set Befehle nicht. Daher hat der set Befehl Vorrang und man muss ein gleichlautendes Reading haben.

Irgendwas war doch mit den Uniroll oder wieso haben wir sie noch nicht in der Liste?
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

Noch mal Thema Fenster.
Was mir gerade eingefallen ist, da wir Beschattung noch nicht haben ist das auch im Fensterevent noch nicht beachtet. Sprich es kann wird auch noch abgefragt ob aktueller Status Beschattungsposition ist und dann wird ? ja was ? was sol gemacht werden wenn das Fenster geöffnet wird und die Beschattungsposition angefahren wurde. Soll nichts gemacht werden? Soll sofern die ermittelte Position oberhalb der aktuellen Postion ist nach oben gefahren werden und somit die Beschattung beendet werden?
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

Sommerfeld

ZitatIrgendwas war doch mit den Uniroll oder wieso haben wir sie noch nicht in der Liste?


Danke für die Aufklärung. Es gab bereits die Überlegung den Typ aufzunehmen aber dann wurde es verworfen.
Ich würde es begrüßen, wenn Uniroll mit aufgenommen werden würde.
Schönen Abend

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


CoolTux

Hab's gefunden. Der set Befehl lässt wohl nur up down und Stop zu, das Modul benötigt aber wie mehrfach erwähnt einen numerischen Wert. Also sowas wie set NAME Position 40
Und nicht einfach set NAME up
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

hexenmeister

Zitat von: CoolTux am 18 November 2018, 18:57:43
Stellt sich mir die Frage ob du der einzige bist der Luftenposition gleich offen Position hat. Dein Beispiel so gesehen macht Sinn sofern die Luftenposition oberhalb der Beschattungsposition ist und es am Tag ist. Aber wie viele machen das so. Warum willst du Stoßlüften wenn du beschattest? Kommt doch nur heiße Luft. Dann lieber durch den Beschattungsschlitz leicht Lüften
Nun es war ja ein Beispiel. Beschattung dient nicht nur dem Schutz von der Temperatur, sondern auch gegen das blenden von der tief stehenden Sonne. Temperatur kann da durchaus niedrig sein.

Es geht aber um das allgemeine Verhalten. Mich stört es, wenn eine manuell eingestellte Position ohne not verändert wird. Daher sollte auch die vorherige Position angefahren werden und nicht die ggf. die vor der manuellen Änderung.

CoolTux

Das muss ich mir in Ruhe durch den Kopf gehen lassen wie man das auf Basis von was genau erkennen kann was derjenige genau will.
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