[73_AutoShuttersControl.pm] Rolllos automatisiert steuern - Version 0.10

Begonnen von CoolTux, 22 Juni 2020, 12:38:36

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: Reinhard.M am 25 August 2021, 07:56:25
@Beta-User: Habe ich verlinkt  :)
Thx. Sorry, wenn ich das etwas kurz gefasst hatte: mit "zitieren" war ein Vollzitat gemeint; dann hat man alles direkt an einer Stelle beisammen, und jemand, der Verbesserungsvorschläge hat, kann es dann direkt wieder dort rauszitieren.
Vielleicht magst du einen Beitrag noch entsprechend editieren?


@WhyTea
Das hier sieht komisch aus:

monitoredDevs:
     EG_AZ_Helligkeitssensor[:

Da dürfte in der Attributangabe im Device EG_AZ_Rollade was schiefgegangen sein.
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

WhyTea

Wow das ging schnell!  ;D

Ok das wird es wohl sein aber wie muss ich denn angeben?
attr EG_AZ_Rollade ASC_BrightnessSensor EG_AZ_Helligkeitssensor:luminosity.avg
Aktuell habe ich den so definiert. Schwellenwerte brauch ich nicht daher habe ich die weg gelassen.

List des Helligkeitssensors den ich abfragen möchte:
Internals:
   CFGFN      /var/fhem/FHEM/EG_Arbeitszimmer.cfg
   DEF        3DF4DE
   FUUID      5ef8ba91-f33f-a5a6-78cd-0d1b9029158614b0
   IODev      LGW2
   LASTInputDev LGW2
   LGW1_MSGCNT 10
   LGW1_RAWMSG 0500004971A2703DF4DEF123FF00000000000014BFC50A8C
   LGW1_RSSI  -73
   LGW1_TIME  2021-08-25 10:01:05
   LGW2_MSGCNT 9
   LGW2_RAWMSG 0511004E71A2703DF4DEF123FF00000000000014BFC50A8C
   LGW2_RSSI  -78
   LGW2_TIME  2021-08-25 10:01:05
   MSGCNT     19
   NAME       EG_AZ_Helligkeitssensor
   NR         472
   NTFY_ORDER 50-EG_AZ_Helligkeitssensor
   STATE      T: 0.0 L: 13598
   TYPE       CUL_HM
   chanNo     01
   disableNotifyFn 1
   lastMsg    No:71 - t:70 s:3DF4DE d:F123FF 00000000000014BFC50A8C
   protCmdPend 3 CMDs_pending
   protLastRcv 2021-08-25 10:01:05
   protRcv    9 last_at:2021-08-25 10:01:05
   protResnd  1 last_at:2021-08-25 09:43:39
   protSnd    2 last_at:2021-08-25 09:43:34
   protState  CMDs_pending
   rssi_at_LGW1 cnt:10 min:-73 max:-72 avg:-72.59 lst:-73
   rssi_at_LGW2 cnt:9 min:-78 max:-77 avg:-77.77 lst:-78
   Helper:
     DBLOG:
       luminosity:
         mylogdb:
           TIME       1629878465.97269
           VALUE      13598
       luminosity.avg:
         mylogdb:
           TIME       1629878465.97269
           VALUE      10057.214
   READINGS:
     2021-08-25 09:48:33   Activity        alive
     2020-06-28 17:44:56   CommandAccepted yes
     2020-06-28 17:45:14   D-firmware      0.15
     2020-06-28 17:45:14   D-serialNr      JCR8241469
     2021-08-25 09:43:34   IODev           LGW2
     2020-07-07 11:30:58   PairedTo        0xF123FF
     2020-06-28 17:44:57   R-burstRx       off
     2020-06-28 17:44:57   R-pairCentral   0xF123FF
     2021-08-25 10:01:05   batVoltage      2.70
     2021-08-25 10:01:05   battery         ok
     2021-08-25 09:43:34   cfgState        updating
     2021-08-25 09:43:39   commState       CMDs_pending
     2021-08-25 10:01:05   luminosity      13598
     2021-08-25 10:01:05   luminosity.avg  10057.214
     2021-05-21 16:19:33   powerOn         2021-05-21 16:19:33
     2021-06-22 14:31:35   recentStateType info
     2021-08-25 10:01:05   state           T: 0.0 L: 13598
     2021-08-25 10:01:05   temperature     0.0
   cmdStack:
     ++A001F123FF3DF4DE010E
     ++A001F123FF3DF4DE00040000000000
     ##A001F123FF3DF4DE0103
   helper:
     HM_CMDNR   113
     cSnd       ,01F123FF3DF4DE010E
     getCfgListNo
     lastMsgTm  1629878465.96061
     mId        F102
     peerFriend peerRecT
     peerIDsState complete
     peerOpt    p:THPLSensor
     regLst     0
     rxType     156
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1629877123.2371
       TmplTs     1629877123.2371
       cmdKey     1:1:0::EG_AZ_Helligkeitssensor:F102:01:
       cmdLst:
         assignHmKey noArg
         burstXmit  noArg
         clear      [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
         deviceRename -newName-
         fwUpdate   <filename> <bootTime> ...
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         getSerial  noArg
         getVersion noArg
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerChan   0 <actChn> ... single [set|unset] [actor|remote|both]
         peerSmart  -peerOpt-
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         statusRequest noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt    EG_AZ_Thermostat_Weather,EG_BZ_Thermostat_Weather,EG_EG_Thermostat_Weather,EG_Kueche_Thermostat_Weather,EG_WZ_Thermostat_Terasse_Weather,EG_WZ_Thermostat_links_Weather,EG_WZ_Wandthermostat_Weather,KG_BZ_Thermostat_Weather,KG_GZ_Thermostat_Weather,OG1_AZ_Thermostat_Weather,OG1_BZ_Thermostat_Weather,OG1_Flur_Thermostat_Weather,OG1_SZ_Thermostat2_Weather,OG1_SZ_Thermostat_Weather,OG1_SZ_Wandthermostat_Weather,OG2_KZ_Thermostat_Weather,OG2_KZ_Wandthermostat_Weather
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     history:
       ARRAY(0x77525b8)
       ARRAY(0x757dcb4)
       ARRAY(0x7b88f6c)
       ARRAY(0x7a5a140)
       ARRAY(0x7b2b690)
       ARRAY(0x7c166d4)
       ARRAY(0x771da1c)
       ARRAY(0x6ef1fe8)
       ARRAY(0x7a6402c)
       ARRAY(0x7b004a8)
       ARRAY(0x7b497dc)
       ARRAY(0x774fbc4)
       ARRAY(0x7be730c)
       ARRAY(0x730fe08)
     io:
       flgs       2
       newChn     +3DF4DE,02,01,00
       nextSend   1629878466.27224
       rxt        2
       vccu       vccu
       p:
         3DF4DE
         00
         01
         00
       prefIO:
         LGW2
     mRssi:
       mNo        71
       io:
         LGW1:
           -73
           -73
         LGW2:
           -76
           -76
     peerIDsH:
       00000000   broadcast
     prt:
       bErr       0
       sProc      2
       sleeping   0
       wuReSent   2
     q:
       qReqConf   
       qReqStat   00
     role:
       chn        1
       dev        1
     rpt:
       IO         LGW1
       flg        A
       ts         1629878465.96061
       ack:
         HASH(0x580d33c)
         718002F123FF3DF4DE00
     rssi:
       at_LGW1:
         avg        -72.6
         cnt        10
         lst        -73
         max        -72
         min        -73
       at_LGW2:
         avg        -77.7777777777778
         cnt        9
         lst        -78
         max        -77
         min        -78
     shadowReg:
     tmpl:
Attributes:
   IOgrp      vccu:LGW2
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   event-min-interval luminosity:600,luminosity.avg:600
   event-on-change-reading luminosity:100,luminosity.avg:100
   expert     defReg,rawReg
   firmware   0.15
   model      HB-UW-Sen-THPL-O
   peerIDs    00000000
   room       Erdgeschoss->Arbeitszimmer,Zentralsysteme->Rolladen,Zentralsysteme->Wetter
   serialNr   JCR8241469
   subType    THPLSensor
   userReadings luminosity.avg {movingAverage("EG_AZ_Helligkeitssensor","luminosity",600)}

Beta-User

..war grad eh' am Tippen...

Eventuell war da irgendwann was kaputtes gestanden? Du solltest das notifydev neu ermitteln lassen und dann nachschauen, ob die eckige Klammer weg ist (kann sein, dass man dazu den Expertenmodus in ASC aktivieren muss).
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

Reinhard.M

Zitat von: Beta-User am 25 August 2021, 09:56:28
Thx. Sorry, wenn ich das etwas kurz gefasst hatte: mit "zitieren" war ein Vollzitat gemeint; dann hat man alles direkt an einer Stelle beisammen, und jemand, der Verbesserungsvorschläge hat, kann es dann direkt wieder dort rauszitieren.
Vielleicht magst du einen Beitrag noch entsprechend editieren?
Neuer Versuch :)
Schau doch bitte nochmals drauf ob es jetzt deinen Vorstellungen entspricht. Sorry für meine ungelenken Gehversuche, ich bin mit den Funktionen und Möglichkeiten des Forums noch nicht so vertraut  ::)

WhyTea

Zitat von: Beta-User am 25 August 2021, 10:24:57
Eventuell war da irgendwann was kaputtes gestanden? Du solltest das notifydev neu ermitteln lassen und dann nachschauen, ob die eckige Klammer weg ist (kann sein, dass man dazu den Expertenmodus in ASC aktivieren muss).

Ja, das wird es sein. Ich habe den Expertenmodus eingeschaltet und sehe den Wert mit eckiger Klammer aber wie lass ich die notifydevs neu ermitteln?

WhyTea


sukram

Hallo miteinander,

Ich bräuchte mal einen Schubs in die richtige Richtung. Stand jetzt habe ich meine Rollos aus einer Wago-SPS angesteuert (die macht Ansteuerung, Fensterkontakte und manuelle Bedienung intern). Um von FHEM darauf zuzugreifen habe ich je Rollo ein 16Bit Register, in das die SPS die aktuelle Position zurückliefert (0-100). Zum Ansteuern schreibe ich in dieses Register die Zielposition und setze kurz Bit 10 (+1024), damit diese angefahren wird. Wahlweise kann auch mit Bit 8 (+256) oder Bit 9 (+512) ganz oben oder ganz unten angefahren werden.

Um das nun in der Oberfläche zu nutzen, habe ich nach einigen Experimenten (u.a. mit separaten ModbusCoil Devices je Fahrtrichtung und einem ROLLO-Device) jetzt versucht, das ganze in einem einzelnen ModbusRegister Device unterzubekommen. Zusammen mit einem cmdalias kann ich jetzt das Rollo per Slider auf Position fahren lassen, auch ein "set wago00_Rollo_QW263 position x" fährt wie gewünscht.

Nun habe ich für das Device ASC aktiviert und einige Randparameter gesetzt. Leider steuert ASC nicht den cmdalias an, sodass der Fahrbefehl nicht ausgelöst wird.

Dieses Setup hat mit einem ROLLO-Device schon mal funktioniert, aber da habe ich es nicht hinbekommen, die Positionsrückmeldung und das Zielposition anfahren sauber zu verknüpfen. Außerdem erschien es mir ziemlich überflüssig, in FHEM Ressoucen zur Positionsberechnung/Zeitsteuerung zum Fahren zu binden, wenn das meine SPS schon alles macht. Kurzum, ich möchte, dass ASC direkt mit der SPS interagiert.

Bisher hatte ich das so verstanden, dass ASC auf das Rollodevice die Zielposition in das in "ASC_Pos_Reading" benannte Reading schreibt. Nur wie bekomme ich den cmdalias getriggert? Oder muss ich mit einem Notify um die Ecke das Bit setzen lassen?

Listing ModbusRegister wago00_Rollo_QW262

Internals:
   DEF        wago QW262
   FUUID      6125583f-f33f-64c3-c2f9-641a763edf45848b
   IODev      wago00server
   LASTInputDev wago00server
   MSGCNT     291310
   ModbusRegister_lastRcv 2021-08-29 10:02:44
   NAME       wago00_Rollo_QW262
   NOTIFYDEV  global
   NR         159
   NTFY_ORDER 50-wago00_Rollo_QW262
   STATE      0
   TYPE       ModbusRegister
   lastUpdate Sun Aug 29 10:02:44 2021
   nextUpdate Sun Aug 29 10:02:44 2021
   wago00server_MSGCNT 291310
   wago00server_TIME 2021-08-29 10:02:44
   READINGS:
     2021-08-27 22:11:57   ASC_Enable      on
     2021-08-29 07:16:14   ASC_ShuttersLastDrive manual
     2021-08-29 06:30:02   ASC_Time_DriveDown 29.08.2021 - 20:39
     2021-08-29 06:30:02   ASC_Time_DriveUp 30.08.2021 - 06:30
     2021-08-27 21:27:44   IODev           wago00server
     2021-08-29 10:02:44   RAW             0000
     2021-08-28 23:10:39   associatedWith  myASControl
     2021-08-29 10:02:44   position        0
     2021-08-29 10:02:44   state           0
   helper:
     addr       3 0 262
     address    262
     disableRegisterMapping 1
     lastUpdate 1630224164.05688
     nextUpdate 1630224164.45751
     nread      1
     readCmd    
     register   262
     registerType 3
     unitId     0
     updateIntervall 0.1
     wago       1
     wagoDataType W
     cnv:
       a          1
       b          0
       max        65535
       min        0
       step       100
Attributes:
   ASC        1
   ASC_Closed_Pos 100
   ASC_Down   astro
   ASC_Mode_Down always
   ASC_Mode_Up always
   ASC_Open_Pos 0
   ASC_Pos_Reading position
   ASC_Time_Up_Early 06:30
   ASC_Up     astro
   IODev      wago00server
   alias      Rollo EG Seite
   cmdIcon    0:fts_shutter_up 100:fts_shutter_down
   devStateIcon 0:fts_shutter_10:closed 100:fts_shutter_100:open 90:fts_shutter_80:closed 80:fts_shutter_80:closed 70:fts_shutter_70:closed 60:fts_shutter_60:closed 50:fts_shutter_50:closed 40:fts_shutter_40:open 30:fts_shutter_30:open 20:fts_shutter_20:open 10:fts_shutter_10:open
   event-on-change-reading .*
   group      egRollo
   room       0 Erdgeschoss,ASC,Wago
   setList    position:slider,0,5,100
   userReadings position { (ReadingsVal($name,'state',0)&0x00FF)*1 }
   userattr   ASC_Adv:on,off ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos: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_BlockingTime_afterManual ASC_BlockingTime_beforDayOpen ASC_BlockingTime_beforNightClose ASC_BrightnessSensor 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,roommate ASC_DriveUpMaxDuration ASC_Drive_Delay ASC_Drive_DelayStart ASC_ExternalTrigger ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection 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_PrivacyDownValue_beforeNightClose ASC_PrivacyDown_Pos ASC_PrivacyUpValue_beforeDayOpen ASC_PrivacyUp_Pos ASC_RainProtection:on,off ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_AbsentDelay ASC_Self_Defense_Mode:absent,gone,off ASC_Shading_BetweenTheTime ASC_Shading_InOutAzimuth ASC_Shading_MinMax_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_SunnyCloudy ASC_Shading_WaitingPeriod ASC_Shutter_IdleDetection ASC_ShuttersPlace:window,terrace,awning ASC_SlatPosCmd_SlatDevice ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_TempSensor 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,roommate ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindParameters ASC_WindProtection:on,off ASC_WindowRec ASC_WindowRec_PosAfterDayClosed:open,lastManual ASC_WindowRec_subType:twostate,threestate
   webCmd     position


Listing cmdAlias RolloQW262A

Internals:
   ALIAS      set
   CFGFN     
   DEF        set wago00_Rollo_QW262 position .* AS { fhem("set wago00_Rollo_QW262 ".($EVTPART2+1024)); fhem("set wago00_Rollo_QW262 0")}
   FUUID      612a9c75-f33f-64c3-8bca-79da28fd7812647c
   NAME       RolloQW262A
   NEWCMD     { fhem("set wago00_Rollo_QW262 ".($EVTPART2+1024)); fhem("set wago00_Rollo_QW262 0")}
   NR         5380
   PARAM      wago00_Rollo_QW262 position .*
   STATE      defined
   TYPE       cmdalias
Attributes:


Listing myASControl

Internals:
   FUUID      5ee53d76-f33f-64c3-06df-022250a7c508620d
   FVERSION   73_AutoShuttersControl.pm:v0.10.15-s24586/2021-06-05
   MID        da39a3ee5e6b4b0d3255bfef95601890afd80709
   NAME       myASControl
   NOTIFYDEV  MQTT2_rtl_433_a6b9ffff,global,myASControl,DUOFERN_42E2AC,wago00_Rollo_QW262,wago00_Rollo_QW263,wago00_Rollo_QW264
   NR         68
   NTFY_ORDER 51-myASControl
   STATE      manual
   TYPE       AutoShuttersControl
   VERSION    v0.10.15
   OLDREADINGS:
   READINGS:
     2021-08-29 06:30:17   DUOFERN_42E2AC_PosValue 0
     2021-08-29 06:30:02   DUOFERN_42E2AC_lastPosValue 100
     2021-08-29 06:30:02   DUOFERN_42E2AC_nextAstroTimeEvent 29.08.2021 - 20:39
     2021-08-28 22:39:39   ascEnable       on
     2020-06-13 22:56:22   controlShading  off
     2021-08-27 20:44:15   egRolloKueche_PosValue 100
     2021-08-29 06:30:02   egRolloKueche_lastPosValue 0
     2021-08-27 20:44:09   egRolloWC_PosValue 100
     2021-08-29 06:30:02   egRolloWC_lastPosValue 0
     2021-08-27 20:46:14   egRolloWZLinks_PosValue 100
     2021-08-29 06:30:02   egRolloWZLinks_lastPosValue 0
     2021-08-27 20:46:42   egRolloWZRechts_PosValue 100
     2021-08-29 06:30:02   egRolloWZRechts_lastPosValue 0
     2021-08-27 20:44:10   egRolloWZSeite_PosValue 100
     2021-08-29 06:30:02   egRolloWZSeite_lastPosValue 0
     2020-06-13 22:56:22   hardLockOut     off
     2021-08-28 23:10:39   room_0_Erdgeschoss_ASC DUOFERN_42E2AC
     2021-08-28 23:10:39   room_0_Erdgeschoss_ASC_Wago wago00_Rollo_QW262,wago00_Rollo_QW263,wago00_Rollo_QW264
     2020-06-13 22:56:22   selfDefense     off
     2021-08-29 07:16:55   state           manual
     2020-06-13 22:56:22   sunriseTimeWeHoliday off
     2021-08-28 23:10:39   userAttrList    rolled out
     2021-08-29 07:16:14   wago00_Rollo_QW262_PosValue 0
     2021-08-29 06:30:02   wago00_Rollo_QW262_lastPosValue 100
     2021-08-29 06:30:02   wago00_Rollo_QW262_nextAstroTimeEvent 29.08.2021 - 20:39
     2021-08-29 07:16:51   wago00_Rollo_QW263_PosValue 0
     2021-08-29 06:30:02   wago00_Rollo_QW263_lastPosValue 100
     2021-08-29 06:30:02   wago00_Rollo_QW263_nextAstroTimeEvent 29.08.2021 - 20:39
     2021-08-29 07:16:55   wago00_Rollo_QW264_PosValue 0
     2021-08-29 06:30:02   wago00_Rollo_QW264_lastPosValue 100
     2021-08-29 06:30:02   wago00_Rollo_QW264_nextAstroTimeEvent 29.08.2021 - 20:39
   helper:
     shuttersList:
       DUOFERN_42E2AC
       wago00_Rollo_QW262
       wago00_Rollo_QW263
       wago00_Rollo_QW264
   monitoredDevs:
     MQTT2_rtl_433_a6b9ffff:
       myASControl ASC_windSensor
Attributes:
   ASC_autoAstroModeEvening CIVIL
   ASC_autoAstroModeMorning REAL
   ASC_autoShuttersControlEvening on
   ASC_autoShuttersControlMorning on
   ASC_expert 1
   ASC_tempSensor MQTT2_rtl_433_a6b9ffff:1_16_temperature_C
   ASC_windSensor MQTT2_rtl_433_a6b9ffff:wind_speed
   devStateIcon { ShuttersControl_DevStateIcon($name) }
   icon       fts_shutter_automatic
   room       ASC

bene80

Hallo zusammen,

ich bin begeistert von diesem Modul! Fast alles funktioniert so wie ich mir das vorstelle.
Wo ich mir nicht sicher bin. Fährt die Rollo am Morgen direkt in die Beschattungsposition, wenn die Bedingungen für eine Beschattung erfüllt sind, oder macht sie vorher immer ganz auf?
Heute hat das bei mir nicht richtig funktioniert. Rollo ist zuerst ganz aufgegangen und dann nach ein paar Minuten in die Beschattungsposition gefahren.

Jetzt liegt es entweder an ASC_Shading_WaitingPeriod, oder der Helligkeitssensor (ist bei mir noch ein Testdummy mit fixem Wert) hat nicht genügend Werte geliefert. Wenn ich es richtig verstanden habe, wird ja immer ein Durchschnitt aus mehreren Werten berechnet bevor geöffnet wird.

Beta-User

Zitat von: sukram am 29 August 2021, 10:07:56
Ich bräuchte mal einen Schubs in die richtige Richtung.
...ich versuch's mal - muss aber zugeben, 0 Ahnung von Modbus zu haben...

Generell: ASC nutzt direkt CommandSet und umgeht daher das (üblicherweise vorhergehende) "command-aliasing" in AnalyzeCommand@fhem.pl. Das war bisher nie problematisch... Ergo sollten wir schauen, ob man das Device so hingebogen bekommt, dass es geht. Dazu braucht es eigentlich eine passende setter-Reading-Konstellation. Hin und wieder hatten wir da in der Vergangenheit schon "sperrige Device-Typen", bei denen ging es meistens, was über eventMap hinzubiegen. Das könnte hier auch Teil der Lösung sein, mal sehen...

Zum einen gehe ich davon aus, dass es um die (inoffiziellen) Module von hier geht: https://github.com/ChrisD70/FHEM-Modules (falls mal jemand was dazu im Source-Code suchen müßte...?)

Zum anderen ist das ziemlich speziell, ich meine, es wäre besser, das gesondert zu diskutieren und ggf. dann auch die Modbus- (Register-) Experten ins Boot holen.

Meine weiteren ersten Gedanken:
- es gibt ein Attribut stateAlias. K.A., ob das irgendwie weiterhilft, jedenfalls hast du das hier nicht gesetzt.
- Du brauchst den zweiten ("0") Befehl, damit irgendwas geschrieben wird? Wenn das immer so ist, müßte das nach meinem Verständnis eigentlich direkt im Modul (optional) einstellbar sein - kann sein, dass dazu Änderungen im Code erforderlich wären, die auch für andere nützlich wären.
- evtl. würde readingsProxy helfen?
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

FFHEM

Hallo zusammen,
ich verwende ACS bereits mit 8 Rolläden und bin begeistert davon.
Nun möchte ich unser Südwestfenster mit Außen-Raffstores (Lamellen) für den Hitzeschutz ausrüsten. Für meine Rolläden habe ich HM (klassisch) als auch vermehrt Shelly 2.5 (FHEM-MQTT2-Server) als Rolladenaktor verwendet.
Mit den Shellys bin ich auch sehr zufrieden, ich frage deshalb, ob sich die Shellys (MQTT2) auch für die Lamellensteuerung von Raffstores in Verbindung mit ASC eignen. Wie ich lese, kommt es bei Raffstores im Gegensatz zu Rolläden ja vielmehr auf die Möglichkeit an, die Lamellen korrekt zu stellen, als auf die Behanghöhe.
Es gab einmal einen Stand (sowohl der Shellys als auch ASC), da war das unklar, ich erkenne aber aus den vielen Threads nicht so ganz, ob das jetzt halbwegs gut funktioniert.
Auch mit der Commandref zum SlatPos-Befehl (ASC_SlatPosCmd_SlatDevice) komme ich nicht ganz klar. Kann man darüber eine eigene Routine zum Ansteuern der Slat-Position realisieren?

Bitte um Eure Erfahrungen!
Gruß
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Beta-User

Also:
- ASC kann das mit der Lamellenstellung grundsätzlich, wenn die Hardware das unterstützt.
- Man gibt dazu einfach entweder nur den "Lamellen-Befehl" an (wenn es dasselbe Device ist), oder eben den Lamellen-Befehl für ein anderes Device (Beispiel: Ich habe Fibaro-Shutter-Geräte. Das alte Modell -222 ist ein "Einheitsdevice" und kennt einen slatPos-Befehl auf das Einheitsdevice, das neue -223 macht drei Kanäle, von denen der dritte mit normalem "dim"-Befehl für die Lamellendrehung zuständig ist).

Vor den ZWave-Modellen hatte ich "normale" CUL_HM-Rollladenaktoren an den Jalousien und eine Zeitlang mit einer eigenen Routine rumgespielt (das müßte im "ASC-Hardware-Thread" zu finden sein), weil die - wie der Shelly - keine separate Funktionalität für Jalousien haben (falsches Modell).

Hier wirst du auch was "spezielles" basteln müssen, wobei MQTT2_DEVICE es grundsätzlich erlaubt, weitere Setter zu definieren und auch Perl-Code direkt anzusteuern. Von daher sollte es möglich sein, die Lamellenstellung über (nachlaufende!) kurze "on-for-timer"-Befehle an die jeweiligen Relays nachzuregeln; das ganze ist aber relativ kompliziert, weil man wissen muss, von wo man startet (pct+slat) und wie lange ggf. der "sowieso" zu fahrende pct-Befehl denn dauern wird.
Weiter ist dann das Ergebnis auch "interpretationsbedürftig", weil uU. die sich letztlich dann ergebende pct-Rückmeldung dann auch wieder für ASC "geschönt" werden muss. (Siehe dazu auch meinen "Toleranzcode" zu den ZWave-Aktoren, da paßt das formal nämlich am Ende auch nur "in etwa").

Kurzum: Neuer Thread, wenn du dich da rauntrauen willst, das wird was längeres....
Einfacher geht es mit Aktoren, die das von Hause aus können (gibt's afaik nur in HM-classic (wenn man das richtige Modell nimmt), HM-IP und ZWave).

Da ich die Commandref zu dem Punkt auch nicht unbedingt besonders aufschlussreich finde und sowieso eine "id"-Umstellung vorbereitet hatte, mit der man dann den jeweiligen Hilfetext auch direkt in "fremden" Modulen sieht, anbei eine aktualisierte Fassung des Moduls sowie des Basis-Codes "ShutterControl.pm" (letzteres müßte typischerweise nach /opt/fhem/lib/FHEM/Automation).

(@CoolTux: das entspricht dem pull-Request auf dem Repo)
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

FFHEM

Hallo Beta-User,

vielen Dank für Deine ausführliche Antwort und besonders die Bewertung der techn. Möglichkeiten/Probleme!

Dass es nicht so ganz einfach werden würde, hatte ich schon geahnt. Speziell die pct-Korrektur würde ASC verwirren.
Z-Wave habe ich noch nicht in meinem System, würde ich nur ungern auch noch machen, schaue ich mir aber trotzdem mal an.
Aber falls es dann doch Homematic (klassisch) werden würde, wäre dann wohl dieser hier richtig:?

https://de.elv.com/elv-homematic-komplettbausatz-jalousiesteuerung-hm-lc-ja1pbu-fm-fuer-smart-home-hausautomation-150093?fs=520117766&c=0

Gruß,
Friedhelm

Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Beta-User

#1947
Das sollte der richtige Aktor sein.

Das mit der Korrektur ist eher andersrum gemeint: das tatsächliche weitere Hoch- bzw.- Runterfahren kann ggf. dazu führen, dass der Aktor eine andere Position zurückmeldet, als ASC ursprünglich mal anfahren wollte. Dann muss man "so tun als ob" die Jalousie noch auf dem Level steht, der ursprünglich angewiesen wurde...

Leider finde ich meinen "CUL_HM"-Code grade nicht mehr. Im Kern war es (soweit ich mich entsinne...) so, dass da die Fahrbefehle betr. die Lamellen (alle) an einen (einzigen) dummy umgeleitet worden waren und dann erst mal eine Korrektur im echten Fahrbefehl auf eine Zwischenposition erfolgte, verbunden mit einem benannten "sleep", das dann auf den Event "Jalousie ist auf der Zwischenposition" lauerte und dann die Korrekturfahrt veranlasste...
Danach hatten die dann einen korrekten Stand, allerdings war die Positionierung der Lamellen tricky, weil auf die Art nur 0.5%-Schritte möglich sind. Habe dann erst danach rausgefunden, dass "o.*-for-timer"-Anweisungen auch möglich gewesen wären, damit wäre es ggf. noch etwas filigraner gegangen...

Insgesamt ist es vermutlich so, dass einige Leute Interesse an einer Shelly (oder Tasmota-) Lamellensteuerung haben dürften. (Es wäre natürlich klasse, wenn das die firmware direkt könnte). Insofern wäre es vermutlich so oder so ganz gut, wenn jemand bei Interesse mal einen Thread dazu aufmachen würde... Falls es ein passables Ergebnis gibt, könnte man ja dann auch entsprechende attrTemplate erstellen.

EDIT: Der Code war hier zu finden: https://forum.fhem.de/index.php/topic,110277.msg1049050.html#msg1049050 (bzw. Teile ein paar Beträge weiter oben)
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

Reinhard.M

Zitat von: Beta-User am 01 September 2021, 16:19:18
Kurzum: Neuer Thread, wenn du dich da rauntrauen willst, das wird was längeres....
Einfacher geht es mit Aktoren, die das von Hause aus können (gibt's afaik nur in HM-classic (wenn man das richtige Modell nimmt), HM-IP und ZWave).
Falls HM und HM-IP zumindest ähnliche Befehlssequenzen für die Lamelleneinstellung verwenden ist das im ASC leider nicht so ganz einfach umsetzbar. Ich hatte vor ein paar Tagen dazu eine Lösung gepostet:
https://forum.fhem.de/index.php/topic,112325.msg1171561.html#msg1171561
Funktioniert bei mir soweit recht gut, wir können uns gerne dazu austauschen.

Gruß Reinhard

Beta-User

Zitat von: Reinhard.M am 01 September 2021, 19:44:22
Falls HM und HM-IP zumindest ähnliche Befehlssequenzen für die Lamelleneinstellung verwenden [...]
Soweit mir bekannt, ist das wohl signifikant unterschiedlich. Bei den CUL_HM-Geräten ist es zumindest möglich, beide Befehle getrennt auf das jeweilige Reading abzusetzen (analog zu ZWave). Das war einer der Gründe, warum ASC diese Befehle sequentiell erzeugt - was grade bei den HM-IP-Geräten für Probleme zu sorgen scheint.

Vielleicht muss man sich mit dem Thema auch hinter den Kulissen nochmal befassen. "Damals" gab es zwar mal eine Sammlung vorab, wer was braucht an Kommandos für die Lamellensteuerung, aber da war HM-IP noch nicht besonders verbreitet gewesen, und Lamellen hatte schon gleich keiner...
Andererseits ist jeder weitere "Tweak" geeignet, für weitere Verwirrung und/oder Komplexität zu sorgen, und rückwärtskompatibel sollte es dann auch noch sein. Schwierig.

@CoolTux: evtl. könnte man (doch) sowas wie
command="set $DEVICE $cover; set xyz $slat"
oder
command="set $DEVICE pct $cover slats $slat"
zulassen?

In der Ausführung müßte man dann erst checken, ob was "spezielles" da steht, dann entweder normal weiter oder diese drei Parameter vorher extrapolieren und dann das Ergebnis z.B. an AnalyzeCommandChain() übergeben; damit sollte sich (fast) alles erschlagen lassen, was so "kreucht und fleucht"?

(Sowas für den normalen Fahr-Command würde dann auch das SPS-Problem von weiter oben lösen?).
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