[FUIP] [gelöst] ShutterControl bei Somfy

Begonnen von Surfer, 08 März 2019, 18:42:12

Vorheriges Thema - Nächstes Thema

Surfer

Hallo,
habe im Youtube Monatsrückblick vor einigen Tagen das erste Mal FUIP gesehen, dies hat mich sofort angesprochen.

Nun habe ich mein erstes Problem(chen), dies wird vermutlich auch nicht das letzte sein  ;)

Ich habe Somfy Rollos, die verhalten sich etwas anders in den Readings wie z.B. Homematic. Beim Einsatz des ShutterControlst habe ich folgendes Problem:

Setzen von minLevel=0 und maxLevel=100 führt dazu, dass bei "^" die Rollos runter gehen und bei "v" die Rollos rauf
Ich habe dann als Workaround minLevel=100 und maxLevel=0 gesetzt. Damit stimmen nun die Aktivitäten hinter "^" und "v", allerdings zählt er dann in der Statusanzeige im Control beim Schließen von Auf, 90, 80 ... bis Zu (und umgekehrt beim Öffnen). Richtig wäre nach Somfy-Lesart Auf, 10, 20, 30, .... Zu.

Ist zwar nur eine Kleinigkeit, finde ich persönlich doch unschön.

Hier noch ein List von dem entsprechenden Somfy-Device:

Internals:
   ADDRESS    000002
   CFGFN      ./FHEM/fhem_RollosMarkise.cfg
   CUL_OG_433_MSGCNT 21
   CUL_OG_433_RAWMSG YsA9460A09020000
   CUL_OG_433_TIME 2019-03-08 18:29:11
   DEF        000002 A9 0A09
   FUUID      5c4b343d-f33f-7bc2-bb17-3a3d465f28f10163
   IODev      CUL_OG_433
   LASTInputDev CUL_OG_433
   MSGCNT     21
   NAME       AZ_Rollo
   NR         1116
   STATE      closed
   TYPE       SOMFY
   move       stop
   CODE:
     1          000002
   READINGS:
     2019-03-08 18:29:10   enc_key         A9
     2019-03-08 18:29:27   exact           200
     2019-03-08 18:29:11   parsestate      on
     2019-03-08 18:29:27   position        200
     2019-03-08 18:29:11   received        40
     2019-03-08 18:29:10   rolling_code    0A09
     2019-03-08 18:29:27   state           closed
     2019-03-08 18:29:27   userposition    100
Attributes:
   IODev      CUL_OG_433
   alexaName  Rollo Arbeitszimmer
   alexaRoom  alexaroom
   alias      Rollo Arbeitszimmer
   devStateIcon closed:fts_shutter_90@black: my:fts_shutter_50@blue: open:fts_shutter_10@green: 9\d.*:fts_shutter_90@black: 8\d.*:fts_shutter_80@blue:  7\d.*:fts_shutter_70@blue:  6\d.*:fts_shutter_60@blue:  5\d.*:fts_shutter_50@blue:  4\d.*:fts_shutter_40@blue:  3\d.*:fts_shutter_30@blue:  2\d.*:fts_shutter_20@blue:  1\d.*:fts_shutter_10@green:
   drive-down-time-to-100 14
   drive-down-time-to-close 17
   drive-up-time-to-100 3
   drive-up-time-to-open 18
   eventMap   off:rauf on:runter on:close off:open go-my:stop off:rein on:raus go-my:halt off:auf off:hoch on:zu
   genericDeviceType blind
   group      Rollos
   homebridgeMapping clear CurrentPosition=userposition,minValue=0,maxValue=100,minStep=10 TargetPosition=userposition,minValue=0,maxValue=100,minStep=10,cmds=0:open;10:pos+10;20:pos+20;30:pos+30;40:pos+40;50:pos+45;60:pos+60;70:pos+70;80:pos+80;90:pos+90;100:close
   icon       fts_shutter_50
   model      somfyblinds
   room       Arbeitszimmer,Rollos / Markise,hidden,AlexaRoom,Homekit
   siriName   Rollo Arbeitszimmer
   userReadings userposition {(ReadingsVal($NAME,"state","open") eq "open")?0:(ReadingsVal($NAME,"state","open") eq "10")?10:(ReadingsVal($NAME,"state","open") eq "20")?20:(ReadingsVal($NAME,"state","open") eq "30")?30:(ReadingsVal($NAME,"state","open") eq "40")?40:(ReadingsVal($NAME,"state","open") eq "50")?50:(ReadingsVal($NAME,"state","open") eq "60")?60:(ReadingsVal($NAME,"state","open") eq "70")?70:(ReadingsVal($NAME,"state","open") eq "80")?80:(ReadingsVal($NAME,"state","open") eq "90")?90:100}
   webCmd     rauf:my:runter:halt



Wie bereits im Forum beschrieben ist das Control nicht voll kompatibel zu Somfy, aber vielleicht hat jemand eine Idee.

Ciao
Walter
FHEM unter Ubuntu18.04, Homematic, Homematic IP, Alexa, CUL, Alarmanlage, Somfy blind devices, Harmony, JeeLink Wettersensoren, Pushover, Hue Devices

Surfer

Hallo,
habe für mich eine Lösung gefunden, indem ich in der Datei "ShutterControl" unter lib/FUIP/View wenige Zeilen angepasst habe.  Ich poste die Anpassungen, falls auch andere Betroffene das Problem haben.

Hier die Änderungen als diff:


*** ShutterControl.pm   2019-03-09 13:33:54.375050408 +0100
--- ShutterControl.pm-orig      2019-03-09 07:33:30.888875323 +0100
***************
*** 17,23 ****
        # determine levels
        use integer;
        my @levels;
-         my @tmpDataAlias;
        for (my $i=0; $i <= 10; $i++) {
                push(@levels,$self->{minLevel} + ($self->{maxLevel} - $self->{minLevel}) * $i / 10);
        };
--- 17,22 ----
***************
*** 26,34 ****
        if($self->{minLevel} > $self->{maxLevel}) {
                @icons = reverse(@icons);
                @iconLevels = reverse(@iconLevels);
-               @tmpDataAlias = ( "Auf","10%","20%","30%","40%","50%","60%","70%","80%","90%","Zu");
-       }else{
-               @tmpDataAlias = ( "Auf","90%","80%","70%","60%","50%","40%","30%","20%","10%","Zu");
        };
        my $result = '
                <div style="position:relative;">
--- 25,30 ----
***************
*** 64,70 ****
                                <td>
                                        <div data-type="select" data-device="'.$device.'"
                                                data-items=\'["'.join('","',reverse(@levels)).'"]\'
!                                               data-alias=\'["'.join('","',@tmpDataAlias).'"]\'
                                                data-get="'.$self->{readingLevel}.'" data-set="'.$self->{setLevel}.'"
                                                style="width:65px">
                                        </div>
--- 60,66 ----
                                <td>
                                        <div data-type="select" data-device="'.$device.'"
                                                data-items=\'["'.join('","',reverse(@levels)).'"]\'
!                                               data-alias=\'["Auf","90%","80%","70%","60%","50%","40%","30%","20%","10%","Zu"]\'
                                                data-get="'.$self->{readingLevel}.'" data-set="'.$self->{setLevel}.'"
                                                style="width:65px">
                                        </div>



Damit funktioniert es bei mir mit den Somfy-Rollos. "Reverse Shutters" wurden bereits berücksichtigt, halt nicht an der beschriebenen Stelle.

Ciao
Walter
FHEM unter Ubuntu18.04, Homematic, Homematic IP, Alexa, CUL, Alarmanlage, Somfy blind devices, Harmony, JeeLink Wettersensoren, Pushover, Hue Devices

Thorsten Pferdekaemper

Hi,
meine Idee bei solchen Sachen ist eigentlich immer, dass die darunter liegende Hardware nicht zu stark bestimmen sollte, wie es am UI aussieht. ...oder anders gesagt: Ein durchgängiges UI ist wichtiger als was Somfy dazu zu sagen hat.
Aber egal: Ich habe sowas für den WeekdayTimer schon eingebaut und werde es wohl auch demnächst für ShutterControl ähnlich einbauen. Vorher habe ich nur noch ein paar andere Sachen, aber so lange hast Du ja Deine Lösung.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
ShutterControl kann jetzt auch levelType = inverted_shutter so wie bei WeekdayTimer.
Siehe FUIP News für Details.
Gruß,
   Thorsten
FUIP

Surfer

Hallo Thorsten,
Update eingespielt, funktioniert wunderbar. Danke.

Ciao
Walter
FHEM unter Ubuntu18.04, Homematic, Homematic IP, Alexa, CUL, Alarmanlage, Somfy blind devices, Harmony, JeeLink Wettersensoren, Pushover, Hue Devices