FHEM - Hausautomations-Systeme > KNX/EIB

10_KNX.pm Neue Version - support

<< < (2/14) > >>

THW:
Servus zusammen,

ist die Definition eines KNX devices nicht etwas _zu_ streng ausgelegt?

Laut cmdref ist z.B. folgendes erlaubt:


--- Code: ---define mySwitch KNX 9/2/11:dpt1.001:onoff:set
--- Ende Code ---
oder

--- Code: ---define myThermostat 8/4/125:dpt9.001:setpoint_heating_comfort:set
--- Ende Code ---

das neue Modul meckert, weil im gadNamen weder set noch get noch onoff etc. als PRE-fixe verwendet werden dürfen


--- Code: ---define mySwitch KNX 9/2/11:dpt1.001:onoff:set
--- Ende Code ---
muß ich also umschreiben zu z.B.

--- Code: ---define mySwitch KNX 9/2/11:dpt1.001:K_onoff:set
--- Ende Code ---
dann gehts....

ich hab' über 500 derartige definitionen....

oder verstehe ich da die cmdref falsch??

Gruß,
Thomas.

erwin:
Hi Thomas,
ich hoffe die cmd-ref ist eindeutig:

--- Zitat ---The gadName must not begin with one of the following strings: on, off, on-for-timer, on-until, off-for-timer, off-until, toggle, raw, rgb, string, value, set, get, listenonly, nosuffix.
--- Ende Zitat ---
Auf Deutsch:  ... darf nicht beginnen mit ...
Dass Problem ist, dass historisch bedingt  die einzelnen parameter positional ausgewertet werden.
beispiel:

--- Code: ---define xxx KNX1/1/1:dpt1:nosuffix
--- Ende Code ---
würde ich das erlauben, dann würde das ein GAD-Name sein, und nicht das was es sein soll!
Noch schlimmer wird's dann bei den set-cmd's:

--- Code: ---set xxx on
--- Ende Code ---
setzt die ERSTE GAD (g1) auf value on  (= gültiges cmd) und gilt sinngemäß auch für (fast) alle anderen Device-Module in FHEM
falls ich aber on als GAD-namen erlauben, dann passiert folgendes:

--- Code: ---set xxx on
--- Ende Code ---
  - setzt GAD-namen on auf value undefined!
not easy...
um das zu umgehen, müsste man eine Key->value syntax erfinden, z.b.: Model=dpt1 Alias=on Dir=set Suffix=no ... - und dann wär die kompatibilität komplett zerstört!

l.g erwin

baerm:
Hallo Erwin,
ich habe noch eine Frage. Es ist zwar nicht anders mit der neuen Version, aber vlt gibt es hier ein Möglichkeit dies zu ändern.

Für Jalousien habe ich mehrere Gruppenadressen in einem Device definiert. Trotzdem wird dann für alle Gruppenadressen ein Device benötigt (also auch 3/3/8, 3/3/9 und 3/3/23). Was ist der Grund dafür, bzw wie kann ich das verhindern?


--- Code: ---Internals:
   DEF        3/3/10:dpt5.001:position 3/3/8:dpt1:Auf_Ab 3/3/9:dpt1:Stop 3/3/23:dpt5.001:Status_Hoehe
   DEVNAME    Jalousie_Kinderzimmer_Ost
   FIRSTGADNAME position
   FUUID      5e9c0868-f33f-e2c0-7caa-783d23bb89d25150
   FVERSION   10_KNX.pm:0.248910/2021-08-29
   FVERSIONE  04.67 18-08-2021
   GETSTRING  Status_Hoehe:noArg Auf_Ab:noArg position:noArg Stop:noArg
   IODev      KNX
   KNX_MSGCNT 82
   KNX_RAWMSG C01138w0330801
   KNX_TIME   2021-09-19 20:06:19
   LASTInputDev KNX
   MSGCNT     82
   NAME       Jalousie_Kinderzimmer_Ost
   NOTIFYDEV  global,Jalousie_Kinderzimmer_Ost
   NR         848
   NTFY_ORDER 50-Jalousie_Kinderzimmer_Ost
   SETSTRING  Status_Hoehe:slider,0,1,100 Auf_Ab:off,on position:slider,0,1,100 Stop:off,on
   STATE      on
   TYPE       KNX
   GADDETAILS:
     Auf_Ab:
       CODE       03308
       GROUP      3/3/8
       MODEL      dpt1
       NO         2
       OPTION     
       RDNAMEGET  Auf_Ab-get
       RDNAMEPUT  Auf_Ab-put
       RDNAMESET  Auf_Ab-set
       SETLIST    :off,on
     Status_Hoehe:
       CODE       03317
       GROUP      3/3/23
       MODEL      dpt5.001
       NO         4
       OPTION     
       RDNAMEGET  Status_Hoehe-get
       RDNAMEPUT  Status_Hoehe-put
       RDNAMESET  Status_Hoehe-set
       SETLIST    :slider,0,1,100
     Stop:
       CODE       03309
       GROUP      3/3/9
       MODEL      dpt1
       NO         3
       OPTION     
       RDNAMEGET  Stop-get
       RDNAMEPUT  Stop-put
       RDNAMESET  Stop-set
       SETLIST    :off,on
     position:
       CODE       0330a
       GROUP      3/3/10
       MODEL      dpt5.001
       NO         1
       OPTION     
       RDNAMEGET  position-get
       RDNAMEPUT  position-put
       RDNAMESET  position-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     03308      Auf_Ab
     03309      Stop
     0330a      position
     03317      Status_Hoehe
   READINGS:
     2021-09-10 22:10:11   ASC_Enable      on
     2021-09-11 23:07:27   ASC_ShadingMessage <html> WARN:  global shading active but ASC_Shading_Mode attribut is not set or off </html>
     2021-09-10 22:10:11   ASC_ShuttersLastDrive manual
     2021-09-19 19:31:15   ASC_Time_DriveDown 20.09.2021 - 19:31
     2021-09-19 19:31:15   ASC_Time_DriveUp 20.09.2021 - 08:00
     2021-09-19 20:06:19   Auf_Ab-get      on
     2021-09-10 22:10:11   Auf_Ab-set      off
     2021-09-10 22:10:11   IODev           KNX
     2021-09-19 20:06:19   Position        100 %
     2021-09-19 19:46:07   Status_Hoehe-get 100 %
     2021-09-18 06:43:21   Stop-get        on
     2021-09-10 22:10:11   Stop-set        on
     2021-09-10 22:10:11   associatedWith  ASC
     2021-09-10 22:10:11   getG2           off
     2021-09-10 22:10:11   getG3           on
     2021-09-10 22:10:11   getG4           0 %
     2021-09-19 20:06:19   last-sender     1.1.56
     2021-09-10 22:10:11   position-set    100 %
     2021-09-10 22:10:11   setG2           off
     2021-09-10 22:10:11   setG3           on
     2021-09-19 20:06:19   state           on
Attributes:
   ASC        1
   ASC_AutoAstroModeMorning CIVIL
   ASC_BrightnessSensor KNX_0000005:Helligkeit
   ASC_Closed_Pos 100
   ASC_DriveUpMaxDuration 17
   ASC_Mode_Down off
   ASC_Mode_Up off
   ASC_Open_Pos 0
   ASC_Pos_Reading position
   ASC_PrivacyDown_Pos 50
   ASC_RainProtection off
   ASC_Shading_Min_OutsideTemperature 10
   ASC_Shading_Mode off
   ASC_Shading_Pos 100
   ASC_Shading_StateChange_SunnyCloudy 20000:15000
   ASC_Shading_WaitingPeriod 600
   ASC_Sleep_Pos 100
   ASC_TempSensor KNX_0004000:WERT
   ASC_Time_Up_Early 08:00
   ASC_Up     astro
   IODev      KNX
   alias      Jalousie_Kinderzimmer_Ost
   andFHEM_alias Jalousie_KiZi_Ost
   cmdIcon    Auf:rc_DOWN Ab:rc_UP Stop:rc_RED
   devStateIcon { my $wert = 10* int(0.1*ReadingsNum($name,'state',0)+0.5);; ".*:fts_shutter_1w_".$wert.":noFhemwebLink"}
   event-on-change-reading .*
   eventMap   /on g3:Stop/off g2:Auf/on g2:Ab/off
   group      Jalousien_OG
   icon       fts_shutter_30
   room       Jalousien,OG->Kinderzimmer
   userReadings Position { ReadingsVal("Jalousie_Kinderzimmer_Ost","Status_Hoehe-get",0) }
   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 room_map structexclude
   webCmd     Ab:Stop:Auf
--- Ende Code ---

lg,
Matthias

erwin:
Hi Matthias,

--- Zitat ---Trotzdem wird dann für alle Gruppenadressen ein Device benötigt
--- Ende Zitat ---
..Du meinst zusätzliche FHEM-devices ? - wozu? - ich verstehe die Frage nicht .
Ein Beispiel von mir - für einen Rolladen:

--- Code: ---Internals:
   DEF        5/1/53:dpt1.008:aufab:set:nosuffix
5/1/55:dpt1.010:stop:set:nosuffix
5/1/57:dpt1:moving:listenonly:nosuffix
5/1/58:dpt5.001:position:set:nosuffix
5/1/60:dpt5.001:posstatus:get:nosuffix
5/1/72:dpt1:block:set:nosuffix
5/1/65:dpt1:uppos:listenonly:nosuffix
5/1/66:dpt1:dnpos:listenonly:nosuffix
   DEVNAME    Jal_Kueche
   FIRSTGADNAME aufab
   FUUID      5c7ceaf9-f33f-5c4d-a2bd-3f2aea40d3a26d86
   FVERSIONE  04.67 18-08-2021
   GETSTRING  posstatus:noArg
   IODev      myKNXD
   LASTInputDev myKNXD
   MSGCNT     360
   NAME       Jal_Kueche
   NOTIFYDEV  global,Jal_Kueche
   NR         31
   NTFY_ORDER 50-Jal_Kueche
   SETSTRING  position:slider,0,1,100 stop:stop,start block:off,on aufab:up,down
   STATE      0
   TYPE       KNX
   myKNXD_MSGCNT 360
   myKNXD_RAWMSG C00151w0513900
   myKNXD_TIME 2021-09-20 06:45:16
   GADDETAILS:
     .......
   READINGS:
     2021-08-27 12:13:22   IODev           myKNXD
     2021-09-20 06:44:47   aufab           up
     2021-09-20 06:44:48   dnpos           off
     2021-09-20 06:45:16   last-sender     0.1.81
     2021-09-20 06:45:16   moving          off
     2021-09-20 06:45:16   position        0 %
     2021-09-20 06:45:16   posstatus       0 %
     2021-09-20 06:45:16   state           0
     2021-09-15 20:54:01   stop            stop
     2021-09-20 06:45:13   uppos           on
   helper:
   ......
Attributes:
   DbLogExclude last-sender,.*:1
   IODev      myKNXD
   cmdIcon    Auf:black_up Ab:black_down Stop:remotecontrol/black_btn_RED
   comment    GA's: aufab,stop,movestatus,posstatus,Setposition,block,uppos,dnpos
   devStateIcon {Jal_devStateIcon()}
   eventMap   { usr=>{"Stop"=>"stop stop","Auf"=>"aufab up","Ab"=>"aufab down"} }
   fp_FP_EG   82,1037,5,Jal_Kueche,
   group      Jalousie
   room       Jalousie
   stateCmd   {Jal_stateCmd($name,$gadName,$state)}
   webCmd     Auf:Ab:position
   widgetOverride position:slider,0,5,100

--- Ende Code ---
Das GAD moving schickt mein MDT-Aktor, solang der Rolladen sich bewegt (Parameter ETS)! das ist wichtig, sonst funktioniert das nicht...
Die GAD's: block,uppos,dnpos sind optional.

was es dazu noch braucht, sind 2 subs (in 99_myUtils.pm) damit:
1) der state jeweils vernüftig gesetzt  wird,
2) das DevstateIcon die Position des Rollladen anzeigt und der stop cmd durch anklicken der Icons realisiert wird.
3) noch ein notify, dass das posstatus-reading (= Rückmeldung RollladenPosition) in das position-reading kopiert, damit der slider jederzeit richtig steht!

bei Interesse schick ich die die entsprechenden subs / notify...
Ich hatte schon einmal überlegt, das als Beispiel in die cmd-ref aufzunehmen, aber es gab Kritik über "überbordende cmd-ref's".....
l.g.erwin

baerm:
Hallo Erwin,
danke. Ich muss mir Deine Definition einer Jalousie genauer ansehen ob hier die Lösung liegt.
Ich bekommen bei meiner Defintion dann folgende Einträge im Log:


--- Code: ---KNX_Parse (wp): KNX_0303008, READINGNAME: getG1, message C01138w0330800 could not be decoded
--- Ende Code ---

sprich, es wird KNX_0303008 (3/3/8) verlangt, obwohl in der Jalousie definiert.
lg,
Matthias

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln