Feature requests für den EIB-Nachfolger

Begonnen von Andi291, 04 Februar 2016, 19:04:28

Vorheriges Thema - Nächstes Thema

erwin

Hi Andi!

Vorab: Danke, dass du den Aufwand treibst, das zu moderniseren!!!!

Ich habe die Version von heute mal auf einem Testsystem probiert, ein erstes Feedback:

1) Der Connect zum einem EIBD funktioniert, es kommen Pakete beim TUL an.
2) Es scheint ein Problem/Konflikt im autocreate zu geben, zwischen EIB und KNX Modul.
folgende Definition:
Internals:
   .eventMapCmd now:noArg
   .triggerUsed 0
   DEF        0/0/9:dpt10
   DEVNAME    KNXtime
   IODev      myTUL
   NAME       KNXtime
   NR         66
   STATE      16:00:05
   TYPE       KNX
   Gaddr:
     1          0/0/9
   Gcode:
     1          0009
   Model:
     1          dpt10
   Readings:
     2016-03-10 10:15:15   getG1           16:00:05
     2016-03-10 10:15:15   sender          5/1/251
     2016-03-10 10:15:15   setG1           12:59:59
     2016-03-10 10:15:15   state           16:00:05
Attributes:
   IODev      myTUL
   eventMap   /value now:now/
   listenonly 1
   room       KNXtest
   webCmd     now

Es sieht so aus, als ob der event nicht an das KNX Modul geroutet wird, sonder autocreate versucht, ein EIB device anzulegen, siehe Log:
2016.03.10 10:24:23 3: EIB Unknown device 0009 (0/0/9), Value 8a1816, please define it
in der TUL definition ist useEIB auf 0 gesetzt.
ich hab auch versucht, in der autocreate-Definition ignoreTypes auf EIB.* zu setzen, ohne Erfolg!
Die einzige Variante, wo die events im KNX Modul ankommen ist, wenn ich autocreate komplett disable!
So schaut der verbose 5 Log aus:
2016.03.10 10:56:09 5: SimpleRead msg.type: write, msg.src: 51fb, msg.dst: 0009
2016.03.10 10:56:09 5: SimpleRead data: 8a3809
2016.03.10 10:56:09 4: myTUL: B51fbw00098a3809
2016.03.10 10:56:09 5: myTUL dispatch B51fbw00098a3809
2016.03.10 10:56:09 3: EIB Unknown device 0009 (0/0/9), Value 8a3809, please define it
2016.03.10 10:56:10 5: SimpleRead msg.type: write, msg.src: 51fb, msg.dst: 0009
2016.03.10 10:56:10 5: SimpleRead data: 8a3809
2016.03.10 10:56:10 4: myTUL: B51fbw00098a3809
2016.03.10 10:56:10 5: myTUL dispatch B51fbw00098a3809
2016.03.10 10:56:10 3: EIB Unknown device 0009 (0/0/9), Value 8a3809, please define it
2016.03.10 10:56:10 5: SimpleRead msg.type: write, msg.src: 51fb, msg.dst: 0009
2016.03.10 10:56:10 5: SimpleRead data: 8a3809
2016.03.10 10:56:10 4: myTUL: B51fbw00098a3809
2016.03.10 10:56:10 5: myTUL dispatch B51fbw00098a3809
2016.03.10 10:56:10 3: EIB Unknown device 0009 (0/0/9), Value 8a3809, please define it
2016.03.10 10:56:10 5: SimpleRead msg.type: write, msg.src: 51fb, msg.dst: 0009
2016.03.10 10:56:10 5: SimpleRead data: 8a3809
2016.03.10 10:56:10 4: myTUL: B51fbw00098a3809
2016.03.10 10:56:10 5: myTUL dispatch B51fbw00098a3809
2016.03.10 10:56:10 3: EIB Unknown device 0009 (0/0/9), Value 8a3809, please define it


3)Was mir noch aufgefallen ist:
bei gesetzem Attr: listenonly, sollte ein GET funktionieren, oder ?
bei gesetzem Attr: listenonly, könnte man die SET option komplett weglassen?

l.g. und danke 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,...

Andi291

Hallo Erwin,

sehr gerne :-)

Muss ich nachstellen. Doofe Frage vorab: die TUL hast Du auch ersetzt, oder? Mit der "alten" TUL wird der KNX nicht getriggert...

Grüße, Andi

erwin

Doofe Frage gibts nicht.....

Ja, TUL hab ich ersetzt, sonst wär das attr useEIB ncht da gewesen.

l.g. & danke 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,...

Andi291

Hallo Erwin,

das zeigt mir, dass nach Programmieren nach 14h "normaler" Arbeit Mist ist :-P
Der Event-Fehler ist repariert. Hättest Du useEIB auf 1 gestellt, hätte der KNX funktioniert :-)

Bei ListenOnly soll kein get gehen, bei readonly schon (bei den Namen bin ich flexibel).

Mit dem Ausblenden des set hast Du recht - aber das will ich nicht dynamisch machen. Wäre unübersichtlich (im Code) und irgendwie nicht sooo der wahnsins-use-case...

Grüße, Andi

erwin

Hi Andi,

danke fürs update funktioniert!

Next one: wenn ein Telegram mit dpt5 (oder dpt5.001) empfangen wird und der value 0 ist - dann geht das schief!
Siehe:
2016.03.11 12:21:34 5: decode model: dpt5.001, code: dpt5, value: 00
2016.03.11 12:21:34 5: decode model: dpt5.001, code: dpt5, value: 00, numval: 0, state:  %
2016.03.11 12:21:34 5: received hash: HASH(0x3bb58c0) name: Jalousie_Balkon_posstatus, STATE:  %, GNO: 1, SENDER: 510a

Abhilfe schafft die folgende Änderung in der 10_KNX.pm (ca. Zeile 1179)
#               $state = sprintf ("%.0d", $state);
                $state = sprintf ("%d", $state);

Ich hab bisher nur mit dpt5 versucht, denke aber das gilt auch für alle anderen numerischen Werte....
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,...

EIB-Fan

Hallo Andi,

danke für die Weiterentwicklung im Bereich KNX.

Ich habe mein Fhem schon komplett auf 10_KNX.pm umgetsellt. Die Grundfunktionen laufen. Bin hier weiter am testen.

Die Probleme mit dem Wert "0", wie es Erwin beschrieben hat, habe ich auch.

Viele Grüße
Jens

Andi291

Morgen Ihr beiden,

schau ich mir morgen an - Erwins Vorschlagt schein plausibel.

Grüße, Andi

Andi291

#22
...und repariert.

Hinweis: die TUL ist unverändert. Aber dann muss niemand suchen :-)

EDIT:
Einen hab ich noch - Syntax von redaingRegex und writingRegex hab ich geändert. Neu: /zu suchender String1/neuer String/ /getG2:// zweiter Fall schneidet getG2: aus.

EIB-Fan

Hallo Andi,

bisher läuft mein System ohne Auffälligkeiten.  8)

Nur beim Senden der Zeit hängt sich Fhem immer wieder auf.

Per Telnet konnte ich beobachten, dass "perl" immer mehr Speicher benötigt ("schaukelt sich hoch").

Im fhem.log war der Eintrag "Out of memory!" ohne Zeitstempel. Nach Neustart funktionierte Fhem wieder normal.


define timedev KNX 0/2/0:dpt10
attr timedev IODev tul
attr timedev webCmd now


Wenn ich, wie in der commandref beschrieben,

set timedev value now

nutze, hängt sich fhem auf.

Wenn ich

set timedev value 09:32:00

nutze, wird die Zeit gesendet und fhem funktioniert weiter.

Kannst du dir das bei Gelegenheit bitte noch einmal anschauen.

Noch ein kleiner Hinweis zur commandref. In den Beispielen zu KNX ist noch mehrfach von "EIB" statt "KNX" die Rede.

Viele Grüße
Jens


Andi291

Servus Jens!

Interessant  - ich hatte so was befürchtet. Lass mich raten, useEIB steht auf 1, aber Du hast kein EIB-Device angelegt?
Dann nämlich setzt FHEM alle empfangenen Meldungen parallel auf EIB und KNX ab. Wenn EIB nie abgerufen wird - ...

Kannst Du vom Timedev ein verbose-5-Log schicken? Bei mir ist alles gut:

2016.03.16 20:39:57 5: set timedev: model: dpt10, GAD: 15/2/15, GAD hex: f20f, gno: 1
2016.03.16 20:39:57 5: check value: now, gno: 1
2016.03.16 20:39:57 5: check value: now, gno: 1, model: dpt10, pattern: (?^:((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9]))|([nN][oO][wW]))
2016.03.16 20:39:57 5: encode value: now, gno: 1
2016.03.16 20:39:57 5: encode model: dpt10, code: dpt10, value: now
2016.03.16 20:39:57 5: encode normalized value: now
2016.03.16 20:39:57 5: encode model: dpt10, code: dpt10, value: 116:39:57, numval: 13903673, hexval: 00d42739
2016.03.16 20:39:57 5: set timedev: cmd: value, value: now, translated: 00d42739
2016.03.16 20:39:57 5: decode value: 00d42739, gno: 1
2016.03.16 20:39:57 5: decode model: dpt10, code: dpt10, value: 00d42739
2016.03.16 20:39:57 5: decode model: dpt10, code: dpt10, value: 00d42739, numval: 13903673, state: 20:39:57
2016.03.16 20:39:57 5: exit set


Grüße, Andi

EIB-Fan

Hallo Andi,

danke für die schnelle Antwort!

Hier das List vom tul


Internals:
   AckLineDef
   Clients    :KNX:EIB:
   DEF        eibd:localhost 1.1.250
   DevType    EIBD
   DeviceAddress 11fa
   DeviceName eibd:localhost
   FD         41
   NAME       tul
   NR         27
   PARTIAL
   RAWMSG     C110dw22211e46
   REFUSED
   STATE      Initialized
   TYPE       TUL
   tul_MSGCNT 4355
   tul_TIME   2016-03-18 18:11:47
   Matchlist:
     2:KNX      ^C.*
     3:EIB      ^B.*
Attributes:
   room       System
   useEIB     0


Während der Umstellung EIB --> KNX hatte zwischenzeitlich useEIB=1 genutzt. Jetzt steht es auf 0.

Habe verbose 5 bei timedev eingestellt und folgende Ergebnisse:

1. set timedev value 18:18:18 (Zeit wird korrekt auf demn Bus gesendet)

2016.03.18 18:17:43 5: enter set timedev: hash: HASH(0xa601c8), attributes: timedev, value, 18:18:18
2016.03.18 18:17:43 5: set timedev: model: dpt10, GAD: 0/2/0, GAD hex: 0200, gno: 1
2016.03.18 18:17:43 5: check value: 18:18:18, gno: 1
2016.03.18 18:17:43 5: check value: 18:18:18, gno: 1, model: dpt10, pattern: (?^:((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9]))|([nN][oO][wW]))
2016.03.18 18:17:43 5: encode value: 18:18:18, gno: 1
2016.03.18 18:17:43 5: encode model: dpt10, code: dpt10, value: 18:18:18
2016.03.18 18:17:43 5: encode normalized value: 18:18:18
2016.03.18 18:17:43 5: encode model: dpt10, code: dpt10, value: 18:18:18, numval: 1184274, hexval: 00121212
2016.03.18 18:17:43 5: set timedev: cmd: value, value: 18:18:18, translated: 00121212
2016.03.18 18:17:43 5: decode value: 00121212, gno: 1
2016.03.18 18:17:43 5: decode model: dpt10, code: dpt10, value: 00121212
2016.03.18 18:17:43 5: decode model: dpt10, code: dpt10, value: 00121212, numval: 1184274, state: 18:18:18
2016.03.18 18:17:43 5: exit set
2016.03.18 18:17:43 5: parse device hash: HASH(0xa601c8) name: timedev, GADDR: 0/2/0, GCODE: 0200, MODEL: dpt10
2016.03.18 18:17:43 5: decode value: 121212, gno: 1
2016.03.18 18:17:43 5: decode model: dpt10, code: dpt10, value: 121212
2016.03.18 18:17:43 5: decode model: dpt10, code: dpt10, value: 121212, numval: 1184274, state: 18:18:18
2016.03.18 18:17:43 5: received hash: HASH(0xa601c8) name: timedev, STATE: 18:18:18, GNO: 1, SENDER: 0000


2. set timedev value now (Zeit kommt auf dem Bus nicht an)

2016.03.18 18:17:51 5: enter set timedev: hash: HASH(0xa601c8), attributes: timedev, value, value, now
2016.03.18 18:17:51 5: set timedev: model: dpt10, GAD: 0/2/0, GAD hex: 0200, gno: 1
2016.03.18 18:17:51 5: check value: value, gno: 1


3. set timedev now (Fhem hängt sich auf - Out off Memory!)

2016.03.18 18:19:00 5: enter set timedev: hash: HASH(0xa601c8), attributes: timedev, value, now
2016.03.18 18:19:00 5: set timedev: model: dpt10, GAD: 0/2/0, GAD hex: 0200, gno: 1
2016.03.18 18:19:00 5: check value: now, gno: 1
2016.03.18 18:19:00 5: check value: now, gno: 1, model: dpt10, pattern: (?^:((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9]))|([nN][oO][wW]))
2016.03.18 18:19:00 5: encode value: now, gno: 1
2016.03.18 18:19:00 5: encode model: dpt10, code: dpt10, value: now
2016.03.18 18:19:00 5: encode normalized value: now
2016.03.18 18:19:00 5: encode model: dpt10, code: dpt10, value: 178:19:0, numval: 22156032, hexval: 001521300


Unter 10_EIB.pm hatte ich immer mit now ohne Probleme (model time) gearbeitet.

Ich hoffe die Infos helfen dir weiter.

Viele Grüße
Jens

Andi291

Hm - also bei mir geht's anstandslos. Kannst Du bitte mit den beiden Dateien nochmal retesten?

Nicht, dass ich unwissentlich was geändert habe :-)

Grüße, Andi

Andi291

Noch ne Frage zum Speicherüberlauf:

Hast Du Autocreate ein oder aus?

EIB-Fan

Guten Morgen Andi,

Autocreate ist bei mir an.


define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log


Habe die beiden Dateien (TUL,KNX) noch einmal ersetzt. Die Problematik besteht weiterhin. :(

Bin jetzt erst einmal für 3 Tage im Urlaub.  :)

Danke erst einmal bis hierher für deine Unterstützung!

Viele Grüße
Jens

Andi291

Hallo Jens,

sorry, ich kriegs nicht kaputt...

Magst mir mal Deine fhem.cfg und ein komplettes verbose 5 log schicken? Gerne auch per PN...

Grüße, Andi