Modul 10_KNX.pm - support

Begonnen von erwin, 23 August 2021, 08:59:59

Vorheriges Thema - Nächstes Thema

erwin

Hi KNX-Community!

Nach einem Jahr Weiterentwicklung des KNX-Moduls (siehe: https://forum.fhem.de/index.php/topic,116737.0.html)
habe ich jetzt in Abstimmung mit dem bisherigen Maintainer (Andi291) die Ownership des Moduls übernommen.
Das Modul ist im SVN verfügbar.
Danke Allen Testern, die Ideen, Vorschläge,Zeit und Geduld zum Testen hier eingebracht haben!

In Summe: Es ist ein heftiger rewrite des Moduls geworden, die wesentlichen Änderungen hier nochmal zusammengefasst:

Device Definition:
Keine Änderungen, aber eine strengere Auslegung der syntax - siehe cmdref. Beim ersten start nach dem update bitte das Log auf Fehlermeldungen checken.
Tip: vor dem shutdown-restart die fhem.cfg file sichern....

Changes:
1) Viele neue/geänderte (sub)-dpts. Als value wird der Text lt. KNX-Standard verwendet. Das kann evtl. Inkompatibilitäten für notifies, doif's,
        readingsproxy, ... Definitionen haben, bitte um Check bzw. Anpassung.
        z.B. wird ein dpt1.023 jetzt als <b>move_up_down</b> / <b>move_and_step_mode</b> dargestellt, bisher on/off.
        Alle Texe mit mehr als einem Wort sind mittels '_' verbunden, sonst funktioniert das FHEM-WEB pulldown nicht!
2) Set CMD Syntax - Im Log gibts Meldungen: "KNX_Set_oldsyntax:  you are still using "old syntax",..." - funktioniert trotzdem, nur als Hinweis...
        Alte und neue Set-cmd syntax gabs auch im bisherigen Modul, wird auch noch einige Zeit beibehalten, eleganter finde ich die neue syntax...
3) autocreate: Es wird kein neuer Log angelegt und das device wird disabled, bis ein dpt definiert wurde und das disabled attribute gelöscht wird!
        Begründung: Das device funktioniert sowieso nicht, bis ein korrekter dpt (manuell) definiert wurde und es ist sinnvoller ein gemeinsames Log
        für alle autocreate-KNX-devices zu definieren. Im Normalfall wird das device einen "sinnvollen" Namen bekommen, mittels rename <device>. Siehe Bsp. in der cmdref.
4) Neu: Attribute disable
5) Neu: Attribute KNX_toggle - Details siehe cmdref
6) fix DbLog_split Funktion
7) dpt10 compatibility with widgetoverride :time
8) package FHEM::KNX
9) Anpassung cmdref.

Change History
29.08.: fixed fhem-crash when using KNX_toggle Attribute
04.10.: IODev specification on define is now deprecated (but still working...)
            check for valid IO-Module during IODev-Attr definition
            changed policy on forbidden GADNames e.g.: onConnect is now allowed
            removed "private" eversion
            removed unnecessary "return $UNDEF"
            removed sub KNX_Notify - not needed! 
            fixed "old syntax" dpt16 set Forum #122779
            modified examples in cmdref - added wiki link
            prevent deletion of Attr disable until a valid dpt is defined
            changed AnalyzePerlCommand to AnalyzeCommandChain to allow multiple fhem cmds in eval's
            code cleanup
15.10    fix dpt1.004, .011, .012, .018 encoding
            fix stateregex (KNX_replacebyregex)
            fix off-for-timer
            add wiki links
            new cmd: blink dpt1, dpt1.001
02.11.  rework decode- encode- ByDpt (cascading if/else != performance)
            fix stateregex once more
            removed examples from cmdref -> now avail in wiki
18.11.  bugfixes: dpt10 "now", fix dpt19 workingdays,  dpt3 encode 0 != 1
### 2022 ###
07.01.  feature: KNX_scan utility, support for FHEM2FHEM as IO-Device
18.03.  feature: dpt22.101 (receive only), dpt20 deccode fix, UTF8 (units)
07.04.  allow 'nosuffix' as only option in define, minor corrections to cmdref
29.04.  minor additions to cmdref & some cleanup
19.10.  cleanup, replace doubleqoutes in Log3, sprintf,pack,....
            add devicename to every Log msg
            rework doKNXscan, stateregex
            add dpt4, dpt15, added sub-dpts for dpts 3,5,8,9,14; corrected min/max/pattern values in dpts
            fix dpt19, dpt11 parsing
            unify Log-Msg's
            prevent setting deprecated (since 2018!) Attr: readonly,listenonly,slider - with errormsg
            prevent setting IODev in define...
            .... both will be completly removed with next version
            new: Internal "RAWMSG" shows msg from Bus while device is disabled (debugging)
            bugfix: allowed group-format corrected: was 0-31/0-15/0-255 -> now: 0-31/0-7/0-255 lt.KNX-spec
30.10.  changed package name FHEM::KNX -> KNX
            changed svnid format
            fix dpt4,dpt16 encode/decode (ascii vs. ISO-8859-1)
            fix dpt14.057 unit 'dpt14.057' { cos&phi; vs. cosφ ) =>need UTF8 in DbLog spec !
            new dpt217 - for EBUSD KNX implementation
            no default slider in FHEMWEB-set/get for dpt7,8,9,12,13 - use widgetoverride slider !
13.11.  cleanup, cmd-ref formatting
05.12.  fix dpt217 range/fomatting, cmd-ref links,
            remove support for IODev in define
            modify disabled logic
27.12.  device define starts after init_complete
            remove $hash->{DEVNAME}
            modify autocreate, get/set logic
            changed not user relevant internals to {.XXXX}
            changed DbLog_split function
            disabled StateFn - no longer needed
### 2023 ###
22.01.  simplify DbLogSplitFn
            modify KNX_parse - reply msg code
            modify KNX_set
            add pulldown menu for attr IODev with vaild IO-dev
            KNX_scan now avail also from cmd-line - details: see "help KNX" !
28.01.  fix define parsing, PBP fixes
            NEW: syntax check on attr stateCmd & putCmd
27.03.      syntax check bei Attr stateregex
            Ankündigung Attr. answerreading als deprecated
            Hinweis auf das Modul KNXIO zu migrieren (für user von TUL/KNXTUL)
07.04.      Log messgages vereinheitlicht, minimale changes zu argument parsing (checkAndClean)
15.04.      fixed unint in define2 [line 543]
            fixed allowed range for dpt6.001
            add dpt7.002 - 7.004
            fixed scaling dpt8.003 .004 .010
25.05.  rework define parsing
            removed deprecated (since 2018!) Attr's: readonly,listenonly,slider
            removed deprecated IODEV from define - errormsg changed!
            remove FACTOR & OFFSET keys from %dpttypes where FACTOR = undef/1 or OFFSET= undef/0
            correct rounding on dpt5.003 encode
            remove trailing zero(s) on reading values
            integrate sub checkandclean into encodebydpt
            cmd-ref: correct wiki links,  W3C conformance...
            error-msg on invalid set dpt1 cmd (on-till...)
            Attr anwerReading now deprecated - converted to putCmd - autosave will be deactivated during fhem-restart if a answerReading is converted - use save!
15.6.    move KNX_scan Function to KNXIO-Module - update both KNXIO and KNX-Module !!!
            update cmd-ref
13.7.    moved KNX_scan function back to KNX-Module...
28.8.    verify allowed oldsyntax cmd's,
            deprecate announcement for cmd's: raw,value,string,rgb
            improve regex for dpt4, dpt16
            add sub-dpts to dpt1,7,8,12,13,14 (new KNX-spec)
            change max-limit for dpt9 acc. to new KNX-spec to 670433.28
            implementation beta-test dpt251.600, dpt221
            new dpt: dptRAW -allow unlimited hex char. w.o. any checking !
            do NOT remove leading & trailing zeros on reading values (hex values would be destroyed)
            allow more than 14 char on "set dpt16" - truncate during encoding to 1st 14 char
            hide set-pulldown for readonly dpts (dpt15,22,217,221)
4.10.  allow exponential numbers in set cmd for dpt14, formatting of dpt14 reading values
            corr dpt9 min-limit to -671088.64
            dpt9, dpt14: deny use of comma as dec-separator...
            fix replacebyregex
            rework KNX_scan
25.11. replace GP_export function
            PBP cleanup -1
            correct cmdref links for DbLog attr Fn's
            modified limit Log msg
            dpttypes optimisation (no variable case regex for numbers)
25.12. code optimisation KNX_scan, doKNX_scan
            adapt cmds ref set/get cmd's (new KNXIO feature - send queing)
            additional dpts 14.xxx - see cmdref
### 2024 ###
14.01. correct unit for dpt9.026
            additional dpts 14.xxx - see cmdref
            fix dpt14 min/max values
            performance tuning in define 
05.03. change dpt1.009 max-value from closed->close
            prevent gadName 'state' in define when nosuffix specified
            add on-for...|off-for... to forbidden gadNames
27.04. remove Attr answerreading & conversion to putcmd (announced 5/2023)
            modify set cmd
19.08. add sub-dpts for dpt14, cmdref
            enforce gadName rules
            prevent set- and get-cmd during fhem-start (e.g. in fhem.cfg)
            change dpt16 encoding - fix dblogsplit for dpt16
20.10. replace gettimeofday w. Time::HiRes::time
            replace encode & decode w. Encode::encode & Encode::decode
            replace looks_like_number w. Scalar::Util::looks_like_number
            prevent subsecond parameter in (on|off)-for-timer
            rework KNX_Set_dpt1 logic
            correct dpt1.009, dpt1.024, dpt1.100
            add dpt18 "learn" - still experimental
            cmd-ref update

Für die user des beta-Moduls: Bitte die GIT Version NICHT MEHR verwenden!
Die GIT version werdet ihr wie folgt los:
update delete https://raw.githubusercontent.com/erw111n/FHEM-KNX/main/controls_KNXevolution.txt
..und zusätzlich im device global attribute exclude_from_update den Eintrag:
fhem.de.*:FHEM/10_KNX.pm löschen.

Fehler/Fragen u. Wünsche zum Modul bitte in diesem (oder neuem) Thread posten, am besten unter Angabe von <list device> und Log (falls sinnvoll).

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Hauswart

Erstmal vielen lieben Dank, dass du dich um die Fortführung des KNX-Moduls kümmerst!

Deine Version läuft bisher sehr stabil.


Wirst du auch das FHEM/00_KNXTUL.pm-Modul in Zukunft weiterführen? :)

Gruss
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

erwin

Hi Hauswart,

danke für die Blumen.....
mal sehen vieviel Probleme es mit der neue Version gibt...

Re: KNXTUL - ich denke eher an ein neues Modul, (Arbeits-Name: KNXIO), dass TUL u. KNXTUL vereint und evtl. zusätzliche Optionen bietet:
Connection Types:
H  Host Mode -  connect to a KNX-router with UDP point-point protocol. You do not need a KNXD installation.
M  Multicast mode - defaut address:port is 224.0.23.12:3671 connect to KNXD's or KNX-router's multicast-tree.
    If you have a KNX-router that supports multicast, you do not need a KNXD installation.
    This mode requires the <code>IO::Socket::Multicast</code> perl-module to be installed on yr. system.
    On Debian systems this can be achieved by apt-get install libio-socket-multicast-perl
T  TCP Mode - uses a TCP-connection to KNXD (default port: 6720). This mode is the successor of the TUL-modul, but does not support direct USB connection to a TPUart-USB Stick.
    If you want to use a TPUart-USB Stick, use either the TUL Module, or connect the USB-Stick to KNXD and in turn use modes M,S or T to connect to KNXD.
S  Socket mode - communicate via KNXD's UNIX-socket on localhost. default Socket-path: /var/run/knxd

aber bis dahin ist's noch ein weiter Weg, ich muss mir was zu meinen Testoptionen überlegen...
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

Hi KNX-Community!
Das Modul ist  ab sofort im SVN und ab morgen per update verfügbar.
ich bin etwas nervös....  ;D
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

KOAL

Danke,
für die Pflege/Fortführung des Moduls.
Ich bin so froh das FHEM noch immer gepflegt wird und nicht von den vielen neuen Smarthome Systemen verdrängt wurde.

Danke an ALLE DEVS.

Wir sind gerade am bauen und haben vor die Verkabelung mit KNX zu machen aber alles was zu verknüpfen und intelligent sein soll wird über FHEM realisiert.

Off-topic:
Denkt ihr es wäre einmal möglich das FHEM sich selbst in kleinere FHEMS aufteilt, und so Multicore supportet.
Mein aktuelles FHEM wird recht wenig ausgelastet.



Danke
LG
Koal
1X DEBAIN 11 ESXI VM, Openvpn-Server, FHEM, DHCP, HM-LAN W, USB-Enocean, Smartvisu V3.X
1X UBUNU 20.X LTS ESXI VM, AUTO-SERVER, Openvpn-Backup Server
1X UBUNU 20.X LTS ESXI VM, MAILSERVER, CLOUD
1X Lockerstor 4, NAS + APC CS650
1X WIN-10 ESXI VM, BLUEIRIS CAM Server

THW

Servus zusammen,

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

Laut cmdref ist z.B. folgendes erlaubt:

define mySwitch KNX 9/2/11:dpt1.001:onoff:set
oder
define myThermostat 8/4/125:dpt9.001:setpoint_heating_comfort:set

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

define mySwitch KNX 9/2/11:dpt1.001:onoff:set
muß ich also umschreiben zu z.B.
define mySwitch KNX 9/2/11:dpt1.001:K_onoff:set
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:
ZitatThe 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.
Auf Deutsch:  ... darf nicht beginnen mit ...
Dass Problem ist, dass historisch bedingt  die einzelnen parameter positional ausgewertet werden.
beispiel:
define xxx KNX1/1/1:dpt1:nosuffix
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:
set xxx on 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:
set xxx on   - 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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

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?

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


lg,
Matthias

erwin

Hi Matthias,
ZitatTrotzdem wird dann für alle Gruppenadressen ein Device benötigt
..Du meinst zusätzliche FHEM-devices ? - wozu? - ich verstehe die Frage nicht .
Ein Beispiel von mir - für einen Rolladen:
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

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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

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:

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

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

erwin

#10
das kann nur passieren, wenn du in deiner config ein device:
KNX_0303008
definiert hast, vermutlich ohne :dptx.... und nicht disabled!
... weil sonst würde der device-name nicht in der err-msg vorkommen!

Einfach die def löschen!
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

baerm

Hallo Erwin,
also ich hatte in der Vergangenheit die Devices ausdefiniert, die vom Modul automatisch angelegt wurden.
Ich habe kürzlich etwas aufgeäumt und bei einigen Devices mehrere Gruppenadressen kombiniert und dann eine Vielzahl von Devices gelöscht.
KNX_0303008 war eines der gelöschten Devices. Ab dem 8.9. sehe ich die Logeinträge, obwohl diese Gruppenadresse in der Jalousie verwendet wird. Siehe List im letzten Posting.

pi@raspberrypi4:/opt/fhem/log $ less fhem-2021-08.log | grep KNX_0303008
pi@raspberrypi4:/opt/fhem/log $ less fhem-2021-09.log | grep KNX_0303008
2021.09.08 20:28:58 2: KNX_Parse (wp): KNX_0303008, READINGNAME: getG1, message C01138w0330801 could not be decoded
2021.09.09 07:10:38 2: KNX_Parse (wp): KNX_0303008, READINGNAME: getG1, message C01138w0330800 could not be decoded
2021.09.09 10:54:46 2: KNX_Parse (wp): KNX_0303008, READINGNAME: getG1, message C01138w0330801 could not be decoded
2021.09.09 13:21:51 2: KNX_Parse (wp): KNX_0303008, READINGNAME: getG1, message C01138w0330800 could not be decoded


Ich weiss, dass ich dptx hinzufügen müßte, dachte aber dass ich dieses Device nicht brauche. Liegt das an meiner Definition der Jalousie?
lg,
Matthias

erwin

ok, wenn es das device wirklich nicht mehr gibt (list KNX_....),

Mach mal einen fhem restart - Evtl. sind da "versteckte config-Leichen" noch im system.
PS: wenn es das device JETZT noch geben sollte - müsste diese msg jedesmal kommen, wenn du die Jal bedienst.... - einfach löschen!

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

baerm

Danke. Nach dem nochmaligen Löschen und Restart war das Problem dann weg.
lg,
Matthias

moustic999

hello
I have an issue with the new version, I have a Gad which was called "offset-control"
It is now marked as forbidden, but is not part of the forbidden words. I guess it is because it begins with "off" ?

Is it a bug or do I really need to update all my thermostats ?

regards