Abend!
Ich plane einige größere Änderungen. Nachdem ich diese nicht rückwärtskompatibel hinbekomme, werde ich ein neues Modul erstellen.
Hat noch jemand Wünsche und wäre bereit, ein neues Modul auch zu testen?
Grüße, Andi
Hallo Andi
Also ich stelle mich schonmal als Tester zur Verfügung. :)
Was planst du denn für Neuerung vielleicht bringt das ja einen Denkanstoß bei den Wünschen!
Gruß
Michael
Ich möchte
- die Datentypen ausmisten und vervollständigen
- Offset / Faktor / Einheit per Attribut zufüttern
- Slider per Attribut rauslegen
- Die "regexerei" ein wenig ausbauen
- Generell internas massiv ausmisten - i.B. Logging und Methoden...
Ich bin noch am sammeln - aber allein der Slider reicht schon, um das Modul auf den Kopf zu stellen :-)
Hallo Andi,
ich hätte da noch einen Wunsch:
- Unterscheidbarkeit von KNX - Write und KNX - Response z.b. ein Reading für den Typ
p.s. Das mit dem Slider habe ich nicht ganz verstanden
lG
Wolfgang
Hallo Wolfgang,
die Unterscheidbarkeit (ist) und bleibt selbstverständlich drin :-)
Slider:
Aktuell kannst Du ja nur fest skalierte Slider für einige DPT rauslegen. Ich zum Beispiel hab ein riesenkonstrukt mit einem EIB, einem Dummy, und zwei Notifies für 16 Räume zusammengeschraubt, nur um meine Solltemperaturen per Slider verstellen zu können.
Ich möchte den Slider per Attribut aktivier- und skalierbar machen.
Grüße, Andi
Implementierung von X_DbLog_splitFn($) wäre toll!
Zitat von: guna83 am 23 Februar 2016, 08:31:34
Implementierung von X_DbLog_splitFn($) wäre toll!
Auw ja!! Dann könnte ich endlich meine stored-procedures in der datenbank deaktivieren, die versucht, mir die falsch eingetragenen Logwerte korrekt zu stellen!
Hallo
Ich habe das Problem das alle von FHEM aus auf den Bus gesendeten Telegramme auch noch einmal lesend verarbeitet werden.
Also quasi 2x ein doif ect. Triggern.
Soweit ich gesehen habe ist das wohl nicht anders zu lösen, wäre das eine Option für das neue Modul?
M.f.G.
Frank
Guten Abend!
Sooo...das Projektchen macht Fortschritte, ist allerdings aufwändiger, als gedacht. Und mein Nachwuchs ist grad recht fordernd - aber ich bin dran.
Die Split-FN krieg ich wohl rein...Dürfte nicht das Ding sein. Gibt's ein Referenzmodul dafür?
@Franky: das Problem kannst Du heute bereits lösen! Mittels EIBReadingX wird für FHEM das Senden und Empfangen unterscheidbar. Mittels event-on-update-reading kannst Du dann entsprechend nur auf die Get-Events reagieren.
Grüße, Andi
Ein Referenzmodul ist mir leider nicht bekannt, aber vielleicht hilft das ja weiter:
http://www.fhemwiki.de/wiki/DevelopmentModuleIntro#X_DbLog_splitFn
Mir fehlt im Moment die Idee dazu, daher wäre es toll wenn das beim neuen Modul geht :-D. Zuerst wollte ich das Event nach Leerzeichen splitten - das funktioniert aber nicht mehr wenn man userreadings nutzt... .
Abend!
Soho...Apparat ist zum testen fertig. Mache noch ein wenig Doku. Kommendes WoE gibt's eine Testversion...
Grüße, Andi
Hallo liebe Leute,
so - ein erster, oberflächlich getesteter Stand ist fertig. Tiefere Tests mache ich die nächsten zwei Wochen...
Deutsche und englische Doku sind up-to-date. Bitte beide Module im FHEM-Verzeichnis austauschen. Zum generieren der Doku bitte im FHEM-Verzeichnis perl ./contrib/commandref_join.pl
ausführen. Damit müssten Euch dann alle Info zur Verfügung stehen.
So - und nun happy testing. Bitte um zahlreiches Feedback!
Ich seh gerade 2 downloads vom KNX und 0 von der TUL.
Bitte ZWINGEND die neue TUL verwenden - wird mit der alten nicht gehen :-)
Abend!
Zefix...in der TUL war noch ein Fehler drin. Hab ich im obigen Beitrag korrigiert.
Abend zusammen!
einige fixes im Anhang. Bitte TUL und KNX übernehmen. KNX läuft nicht mit alter TUL.
Grüße, Andi
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
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
Doofe Frage gibts nicht.....
Ja, TUL hab ich ersetzt, sonst wär das attr useEIB ncht da gewesen.
l.g. & danke erwin
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
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
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
Morgen Ihr beiden,
schau ich mir morgen an - Erwins Vorschlagt schein plausibel.
Grüße, Andi
...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.
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
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
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
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
Noch ne Frage zum Speicherüberlauf:
Hast Du Autocreate ein oder aus?
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
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
Hallo Andi,
nach deinem Hinweis, dass du dein System nicht "kaputt" bekommst, habe ich mich noch einmal mit dem Problem beschäftigt.
Zum Schluss war es eine einfache >:( Lösung.
Ich habe die Device von datedev & timedev gelöscht und neu definiert ... und siehe da ... es funktioniert. :D
Aus meiner Sicht ist der Fehler bei der Umstellung von EIB auf KNX entstanden, da ich dies größtenteils in der fhem.cfg augetauscht hatte. Asche auf mein Haupt :( , habe ca. 3000 Zeilen Code.
Ich möchte nochmals für dir für deine Unterstützung danken!!!
Viele Grüße
Jens
Abend!
Ein Traum - bin beruhigt :-)
Ich mach über Ostern noch ein bisschen was, dann checke ich das Modul ein, und schreibe einen Umstellungsthread.
Grüße, Andi
Abend zusammen,
so, einige Sachen hab ich noch ausgemerzt und einiges noch geändert.
Die finale Version ist hochgeladen.
Viel Erfolg damit :-P
Grüße, Andi
P.S.: siehe auch hier: https://forum.fhem.de/index.php/topic,51758.0.html (https://forum.fhem.de/index.php/topic,51758.0.html)