Hi Andi,
anbei ein Patch mit 2 Funktionen:
1) keine Get-Fn für dpt's, die mit set definert sind. (Analog zu: keine Set-Fn für get/listenonly)
2) Wenn ein dpt mit set definert ist:
... und es kommt ein write vom Bus mit diesem dpt, dann entsteht ein reading mit namen '' (blank/undef) mit dem korrekten value.
und zwar, weil in der KNX_parse $rdString undef bzw "" wird.
Bitte um check!
Danke & l.g erwin
Edit: diff file gelöscht, ist jetzt im Beitrag: https://forum.fhem.de/index.php/topic,115122.msg1100607.html#msg1100607 integriert.
Danke @Hauswart für die Mühe!
Erledigt: siehe thread: https://forum.fhem.de/index.php/topic,116737.0.html
DANKE!!
Hatte ich auch schon implementiert, aber nicht sauber genug um es zu veröffentlichen.
Eventuell sollten wir einen eigenen fort des Moduls in einem eigenen Thread pflegen, da es jetzt doch schon einige patches gibt,
die für den Betrieb hilfreich sind?!? (korrigierte DPDs, etc...) Hat niemand Lust, so etwas zu machen?
Hi JoeALLb,
ZitatEventuell sollten wir einen eigenen fort des Moduls in einem eigenen Thread pflegen
Warten wir ein paar Tage, wie sich Andi dazu äussert, alternativ können wir einen thread aufmachen mit einer "Liste" von patches, wobei mir bewußt ist, das sich die gegenseitig beißen können... Und wir müssten auch die Doku patchen, falls sich Funtionen/Bedienung ändern.
Auf die SVN Geschichte hab ich offengestanden keine Lust....
l.g. erwin
ZitatWarten wir ein paar Tage, wie sich Andi dazu äussert, alternativ können wir einen thread aufmachen mit einer "Liste" von patches, wobei mir bewußt ist, das sich die gegenseitig beißen können... Und wir müssten auch die Doku patchen, falls sich Funtionen/Bedienung ändern.
Auf die SVN Geschichte hab ich offengestanden keine Lust....
l.g. erwin
Andi war schon seit Anfang des Jahres nicht mehr online. Ich weiß nicht, ob da noch Interesse besteht das Modul weiter zu pflegen. Ich würde sagen einfach einen neuen Thread anlegen, und die Patches anhängen. Ich habe ein großes Interesse an den Updates.
Ich bin kein hauptberuflicher Programmierer aber habe schon mal ein Modul "unterhalten"....
Wichtig wäre, es geht vorwärts :)
Sehr schön!
Ich könnte keine Nebenwirkungen bisher feststellen.
Damit würden folgende Beiträge erledigt:
https://forum.fhem.de/index.php/topic,90594.0.html (https://forum.fhem.de/index.php/topic,90594.0.html) "[open] set funktioniert nicht korrekt?"
https://forum.fhem.de/index.php/topic,99801.0.html (https://forum.fhem.de/index.php/topic,99801.0.html) "Die Definition set erzeugt ein leeres Reading"
Würde ich freuen, wenn jemand ein Fork übernehmen würde und die Patches eingebaut werden können :)
Ich hatte letzten angefangen zu mergen aber es ist zeitlich etwas schwierig bei mir, daher reisse ich mich nicht drum.
Hallo Zusammen,
aktuell habe ich hier mal folgende Patches eingespielt:
* https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724
* https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807
Derzeit habe ich die Datei noch nicht selbst getestet, morgen komme ich dazu und dann stelle ich sie vorab mal hier online.
Top, vielen Dank. Würde sie dann auch testen. Habe mein FHEM für KNX gerade erst neu aufgesetzt und kann daher noch viel probieren, bevor ich es in Betrieb nehme.
ZitatWürde sie dann auch testen
Dito
Zitat von: Hauswart am 11 November 2020, 16:58:40
Hallo Zusammen,
aktuell habe ich hier mal folgende Patches eingespielt:
* https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724 (https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724)
* https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807 (https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807)
Derzeit habe ich die Datei noch nicht selbst getestet, morgen komme ich dazu und dann stelle ich sie vorab mal hier online.
So meine erste Version.
Edit: Zweite Version: https://forum.fhem.de/index.php/topic,115122.msg1100607.html#msg1100607
Hallo Zusammen,
aktuell habe ich hier mal folgende Patches eingespielt:
* https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724 (https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724)
* https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807 (https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807)
* https://forum.fhem.de/index.php/topic,112538.msg1068733.html#msg1068733 (https://forum.fhem.de/index.php/topic,112538.msg1068733.html#msg1068733)
Danke an @erwin
Edit: Version 3: https://forum.fhem.de/index.php/topic,115122.msg1100739.html#msg1100739
Die erste Version lief schon mal gut, dann spiele ich mal diese Version ein :)
Hier mal Rückmeldungen aus meinem Log. Habe eben die neue Datei eingespielt und nach dem Neustart folgende Meldung erhalten:
2020.11.12 14:18:36 1: PERL WARNING: Use of uninitialized value $numval in concatenation (.) or string at ./FHEM/10_KNX.pm line 2127.
2020.11.12 14:18:36 1: PERL WARNING: Use of uninitialized value $state in concatenation (.) or string at ./FHEM/10_KNX.pm line 2127.
2020.11.12 14:18:36 2: parse device hash (wpi): HASH(0x1337a28) name: KNX_0302003, message could not be decoded - see log for details
2020.11.12 14:28:36 2: parse device hash (wpi): HASH(0x1337a28) name: KNX_0302003, message could not be decoded - see log for details
Hier das Device:
defmod KNX_0302003 KNX 2/0/3:dpt1.017
attr KNX_0302003 IODev KNX
attr KNX_0302003 event-on-change-reading .*
attr KNX_0302003 room KNX
setstate KNX_0302003 trigger
setstate KNX_0302003 2020-11-12 14:38:36 getG1 trigger
setstate KNX_0302003 2020-11-12 14:38:36 last-sender 1/1/52
setstate KNX_0302003 2020-11-12 14:38:36 state trigger
Edit:
Scheint ein defintionsfehler von mir gewesen zu sein. Hier war ne andere Gruppenadresse hinterlegt, als sie sollte. Warum auch immer, den Fehler suche ich noch. Sorry
Mit dpt 19.001 kommt die Version noch nicht klar, oder? Irgendwie kommt das bei mir nicht richtig an. Gleiches gilt wohl auch für 1.024, oder?
Ansonsten bleibt es dabei, dass das Device KNX_0302003 Probleme bereitet, die ich nicht verstehe:
2020.11.12 16:51:02 5: parse: process message, device-name: KNX_0302003, rd-name: , gadCode: 02003, model:
2020.11.12 16:51:02 5: decode value: 07e4, gadName:
2020.11.12 16:51:02 5: decode model: , code: , value: 07e4
2020.11.12 16:51:02 2: decode model: , no valid model defined
2020.11.12 16:51:02 2: parse device hash (wpi): HASH(0x1337a28) name: KNX_0302003, message could not be decoded - see log for details
Hier das Device, wie es gerade ist:
Internals:
CFGFN
DEF 3/2/3:dpt1.017
DEVNAME KNX_0302003
FIRSTGADNAME g1
FUUID 5fad53fc-f33f-92c6-762b-2c132f9c50e7abec
GETSTRING g1:noArg
IODev KNX
NAME KNX_0302003
NR 323
NTFY_ORDER 50-KNX_0302003
SETSTRING g1:trigger,trigger
STATE ???
TYPE KNX
GADDETAILS:
g1:
CODE 03203
GROUP 3/2/3
MODEL dpt1.017
NO 1
OPTION
RDNAMEGET getG1
RDNAMEPUT putG1
RDNAMESET setG1
SETLIST :trigger,trigger
GADTABLE:
03203 g1
Attributes:
IODev KNX
room KNX
verbose 5
Und hier, wie es in der ETS aussieht (siehe Bild).
Das verrückte ist, dass ich nicht verstehe wieso auf 3/2/3 gesendet werden sollte. Es handelt sich um einen Rollladen und da passiert eigentlich aktuell nix. In der Gruppe selbst ist auch nur der Aktor drinnen und kein Sensor.
Zusätzlich habe ich mal ein FileLog für das Device angelegt, welcher leer bleibt. Auch verbose habe ich für das Device auf 0 gestellt und es kommt nix. In der FHEM.cfg findet sich auch nirgendwo anders als bei diesem Device die Zahlenkombination 0302003 sowie "3/2/3".
Siehe dir die Commandref an, die Datentypen werden unterstützt:
DPT - datapoint-types
The following dpt are implemented and have to be assigned within the device definition.
dpt1 on, off
dpt1.000 1, 0
dpt1.001 on, off
dpt1.002 true, false
dpt1.003 enable, disable
dpt1.004 no ramp, ramp
dpt1.005 no alarm, alarm
dpt1.006 low, high
dpt1.007 decrease, increase
dpt1.008 up, down
dpt1.009 open, closed
dpt1.010 start, stop
dpt1.011 inactive, active
dpt1.012 not inverted, inverted
dpt1.013 start/stop, ciclically
dpt1.014 fixed, calculated
dpt1.015 no action, reset
dpt1.016 no action, acknowledge
dpt1.017 trigger, trigger
dpt1.018 not occupied, occupied
dpt1.019 closed, open
dpt1.021 logical or, logical and
dpt1.022 scene A, scene B
dpt1.023 move up/down, move and step mode
dpt2 on, off, forceOn, forceOff
dpt3 -100..+100
dpt3.007 -100..+100 %
dpt5 0..255
dpt5.001 0..100 %
dpt5.003 0..360 °
dpt5.004 0..255 %
dpt6 -127..+127
dpt6.001 0..100 %
dpt7 0..65535
dpt7.001 0..65535 s
dpt7.005 0..65535 s
dpt7.006 0..65535 m
dpt7.007 0..65535 h
dpt7.012 0..65535 mA
dpt7.013 0..65535 lux
dpt8 -32768..32768
dpt8.005 -32768..32768 s
dpt8.010 -32768..32768 %
dpt8.011 -32768..32768 °
dpt9 -670760.0..+670760.0
dpt9.001 -670760.0..+670760.0 °
dpt9.004 -670760.0..+670760.0 lux
dpt9.005 -670760.0..+670760.0 m/s
dpt9.006 -670760.0..+670760.0 Pa
dpt9.007 -670760.0..+670760.0 %
dpt9.008 -670760.0..+670760.0 ppm
dpt9.009 -670760.0..+670760.0 m³/h
dpt9.010 -670760.0..+670760.0 s
dpt9.021 -670760.0..+670760.0 mA
dpt9.024 -670760.0..+670760.0 kW
dpt9.025 -670760.0..+670760.0 l/h
dpt9.026 -670760.0..+670760.0 l/h
dpt9.028 -670760.0..+670760.0 km/h
dpt10 01:00:00
dpt11 01.01.2000
dpt12 0..+Inf
dpt13 -Inf..+Inf
dpt13.010 -Inf..+Inf Wh
dpt13.013 -Inf..+Inf kWh
dpt14 -Inf.0..+Inf.0
dpt14.019 -Inf.0..+Inf.0 A
dpt14.027 -Inf.0..+Inf.0 V
dpt14.033 -Inf.0..+Inf.0 Hz
dpt14.056 -Inf.0..+Inf.0 W
dpt14.057 -Inf.0..+Inf.0 cosΦ
dpt14.068 -Inf.0..+Inf.0 °C
dpt14.076 -Inf.0..+Inf.0 m³
dpt16 String
dpt16.000 ASCII-String
dpt16.001 ISO-8859-1-String (Latin1)
dpt17.001 Scene number: 0..63
dpt18.001 Scene number: 1..64. Watch out - only "activation" works. "Learning" will be limited to 64...
dpt19 01.12.2010_01:00:00
dpt232 RGB-Value RRGGBB
für den dpt 1.024 kannst du imho einfach dpt1 nehmen, würde gehen. Beim 19.001 weiß nicht mehr spontan was dahinter steckt
Danke für den Hinweis mit der CommandRef aber es geht ja gerade darum, dass Hauswart einige Patches eingespielt hat. Damit ist die CommandRef nicht mehr aktuell für seine Version. Und sollten dann dpt noch fehlen, könnten wir ja helfen diese aufzuspüren und noch einpflegen.
Edit:
19.001 ist Datum und Uhrzeit zusammen aber hier scheint bei mir was nicht zu stimmen. Wenn ich dpt19 nehmen dann kommt aktuell folgendes raus:149.12.1911_13:34:00 und meine Zeiten auf dem Bus stimmen.
Hallo,
kurze Rückmeldung:
* DPT1.024 ist derzeit nicht implementiert. Wie @EinEinfach schrieb probiere mal dpt1
* DPT 19.001 ist auch nicht implementiert, ich meine ich hatte es mal bei mir gefixt, aber in dieser Version geht es aktuell nicht.
* Deine Fehler mit dem 3/2/3 finde ich merkwürdig, kommen diese mit der original 10_KNX.pm denn nicht? Bzw. kannst du dein Device mal löschen in FHEM und neu anlegen (lassen)? Er erkennt model und dpt nicht...
Hier Version 3 mit DPT19-Fix:
Hallo Zusammen,
aktuell habe ich hier mal folgende Patches eingespielt:
* https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724 (https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724)
* https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807 (https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807)
* https://forum.fhem.de/index.php/topic,112538.msg1068733.html#msg1068733 (https://forum.fhem.de/index.php/topic,112538.msg1068733.html#msg1068733)
* https://forum.fhem.de/index.php/topic,91650.msg1009476.html#msg1009476 (https://forum.fhem.de/index.php/topic,91650.msg1009476.html#msg1009476)
Edit: Neue Version: https://forum.fhem.de/index.php/topic,115122.msg1100840.html#msg1100840
ZitatHier Version 3 mit DPT19-Fix:
Das geht ja Fix... wenn ich gewusst hätte, dass die Veröffentlichungsintervalle so kurz sind, hätte ich auf die Version von heute noch gewartet ;D Aktuell läuft bei mir die Version von gestern ohne Auffälligkeiten.
Gruß
Zu meinen Fehlern von 3/2/3:
Ich hatte gestern schon das Device mehrfach gelöscht und mal einfach andere dpt gesetzt. Seit gestern Abend kam keine Meldung mehr, werde es weiter beobachten und mich melden.
Dpt1.024:
Dpt1 geht natürlich, ist dann halt on/off und nicht Tag/Nacht. Ist kein Problem, kann man natürlich in FHEM ummappen. Für mich war da eher die Frage, ob wir nach und nach alle fehlenden dpt nachtragen wollen, dass sie komplett sind. Allerdings weiß ich nicht, wie hoch der Aufwand ist, dass ich diese Entscheidung natürlich dir überlassen würde.
Dpt19:
Danke für den Fix mit 19, jetzt klappt es auch direkt.
Ich hätte noch eine weitere Frage. Mir ist aufgefallen, dass im Reading "last-sender" drinnen steht, wer zuletzt auf die Gruppenadresse geschrieben hat. Zu beginn hat mich das total verwirrt, weil ich mich gefragt habe, wie eine Gruppenadresse auf eine Gruppenadresse schreiben kann. Dann bin ich irgendwann dahinter gekommen, dass die physikalische Adresse gemeint ist. Daher wäre meine Frage, ob nur ich es verwirrend finde oder noch mehr und, ob vielleicht Konsens / eine Mehrheit gibt, die die Schreibweise auf x.x.x. ändern möchte, wie es in der ETS ist.
Wollen wir vll für deine Patches / Version einen eigenen Thread aufmachen? Kann mir vorstellen, dass zukünftig mehr dazu geschrieben wird und das sollte dann besser in einem eigenen Thread stehen.
Vielen Dank schonmal, dass du dich der Sache angenommen hast.
Zitat von: EinEinfach am 13 November 2020, 08:16:48
Das geht ja Fix... wenn ich gewusst hätte, dass die Veröffentlichungsintervalle so kurz sind, hätte ich auf die Version von heute noch gewartet ;D
Nur nicht daran gewöhnen :) Hatte gestern und auch heute etwas Zeit dafür.
Ich überlege derzeit, ob ich mir den Maintainer Hut wirklich anziehen soll, derzeit baue ich nur zur Verfügung stehende Patches ein. Alternativ könnte ich auch mal schnell ein Github eröffnen, damit wir wenigstens direkt aus FHEM updaten können. Mir ist das manuelle Updaten nämlich auch zu umständlich. )
Zitat von: Amenophis86 am 13 November 2020, 08:22:19
Zu meinen Fehlern von 3/2/3:
Ich hatte gestern schon das Device mehrfach gelöscht und mal einfach andere dpt gesetzt. Seit gestern Abend kam keine Meldung mehr, werde es weiter beobachten und mich melden.
Gerne.
Zitat von: Amenophis86 am 13 November 2020, 08:22:19Dpt1.024:Dpt1 geht natürlich, ist dann halt on/off und nicht Tag/Nacht. Ist kein Problem, kann man natürlich in FHEM ummappen. Für mich war da eher die Frage, ob wir nach und nach alle fehlenden dpt nachtragen wollen, dass sie komplett sind. Allerdings weiß ich nicht, wie hoch der Aufwand ist, dass ich diese Entscheidung natürlich dir überlassen würde.
Guter Hinweis, Tag und Nacht habe ich auch bei mir im Einsatz und eigentlich fände ich es auch gut das Feature. => Kommt demnächst in die nächste Version.
Zitat von: Amenophis86 am 13 November 2020, 08:22:19Dpt19:Danke für den Fix mit 19, jetzt klappt es auch direkt.
Sehr gut.
Zitat von: Amenophis86 am 13 November 2020, 08:22:19Ich hätte noch eine weitere Frage. Mir ist aufgefallen, dass im Reading "last-sender" drinnen steht, wer zuletzt auf die Gruppenadresse geschrieben hat. Zu beginn hat mich das total verwirrt, weil ich mich gefragt habe, wie eine Gruppenadresse auf eine Gruppenadresse schreiben kann. Dann bin ich irgendwann dahinter gekommen, dass die physikalische Adresse gemeint ist. Daher wäre meine Frage, ob nur ich es verwirrend finde oder noch mehr und, ob vielleicht Konsens / eine Mehrheit gibt, die die Schreibweise auf x.x.x. ändern möchte, wie es in der ETS ist.
Aufgefallen ist es mir auch schon, nur habe ich mir bisher keinen wirklichen Kopf darüber gemacht. Sehen es andere auch so?
Zitat von: Amenophis86 am 13 November 2020, 08:22:19Wollen wir vll für deine Patches / Version einen eigenen Thread aufmachen? Kann mir vorstellen, dass zukünftig mehr dazu geschrieben wird und das sollte dann besser in einem eigenen Thread stehen.
Werde ich heute Nachmittag mal starten. Wenn ihr noch offene Themen habt, bitte gerne sammeln.
Zitat von: Amenophis86 am 13 November 2020, 08:22:19Vielen Dank schonmal, dass du dich der Sache angenommen hast.
Gerne.
Gruss
Hat jemand einen Link zu den aktuellen KNX Specifications? Ich finde nur V2.1 zum Download und diese ist schon sehr alt. https://support.knx.org/hc/de/articles/360000040999-KNX-Spezifikationen
Finde auch keine neueren. Hast du schon im KNX UF gefragt?
Zitat von: Amenophis86 am 13 November 2020, 13:27:39
Finde auch keine neueren. Hast du schon im KNX UF gefragt?
Nein bisher nicht.
Hallo Zusammen,
aktuell habe ich hier mal folgende Patches eingespielt:
* https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724 (https://forum.fhem.de/index.php/topic,115122.msg1093724.html#msg1093724)
* https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807 (https://forum.fhem.de/index.php/topic,91462.msg839807.html#msg839807)
* https://forum.fhem.de/index.php/topic,112538.msg1068733.html#msg1068733 (https://forum.fhem.de/index.php/topic,112538.msg1068733.html#msg1068733)
* https://forum.fhem.de/index.php/topic,91650.msg1009476.html#msg1009476 (https://forum.fhem.de/index.php/topic,91650.msg1009476.html#msg1009476)
* Last-Sender in Form X.X.X anstatt X/X/X
Gruss
Zitat von: Hauswart am 13 November 2020, 14:25:57
Nein bisher nicht.
Ich frage mal nach, ob das die aktuellsten sind oder es neuer gibt.
neuere KNX-specs find ich auch nicht....
Ich hab mir die 2.1 specs heute nochmals runtergeladen, und da findet man unter extensions/Drafts in Progress/ ein AN163 Extended.... wo etliche "neue" Dpt's beschrieben sind.
Ich würde mich bereit erklären, einige dpt1.subtypen zu implementieren/testen und dann in Abstimmung mit Hauswart zu publizieren, denke aber wir sollten die jetzige Version eine Zeit lang ruhen lassen (abgesehen v. Fehlern, die durch die Patches verursacht wurden).
In diesen Sinn würd ich auch bitten, Fehler / Wünsche und andere Merkwürdigkeiten, welche auch mit der Standard-Version auftreten - in anderen/neuen Threads zu publzieren - und diesen Thread für neue Versionen, bzw. Fehlermeldungen dazu verwenden.
l.g. Erwin
Ich stimme dir fast komplett zu. Einzige Änderung, ich würde empfehlen für die Version von Hauswart auch einen eigenen Thread aufzumachen. So kann er im ersten Post immer die Version aktuell halten, Fixes dort publizieren etc. Das macht es sicher einfacher als in diesem Thread dann immer suchen zu müssen.
Den neuen Thread bin ich euch noch schuldig und erstelle ich noch (geplant heute Abend). Bzw. antworte später nochmal ausführlicher hier auf den Thread zu den beiträgen.
Kein Stress, sind ja nicht auf der Flucht. Es hat sich seit Februar nix getan, da müssen wir jetzt nicht zum Sprint ansetzen :D
Hey Leute, echt cool dass ihr euch dem hier annehmt!
Leider habe ich mittlerweile alleine wegen diesem Modul FHEM den Rücken gekehrt, aber wer weiß, vielleicht komme ich wieder zurück! :D
Top Arbeit, danke!
Joe
Vielen lieben dank lieber Hauswart für das neue, angepasste Modul. Für unsere Heizungssteuerung könnte ich noch folgende Datenpunkte gebrauchen, die das KNX Modul leider auch nicht versteht.
RHCC Status: dpt22.101
Verschiebung -128 bis 127: dpt6.010
Wäre klasse, wenn diese auch den Weg in das Modul finden würden!
Hi ReviloEgros,
ich bin gerade dabei, die dpt1 definitionen zu überarbeiten, es wird aber noch etwas dauern....
das mit dem dpt6.010 sollte kein Problem sein, das ist leicht! Frage dazu: funktionierts, wenn du dpt6 angibts ? sollte das gleiche sein!
zum dpt22.101: ich hab mir den standard angeschaut, das sind 16 Status-bits, jedes mit einem Text dargestellt. Wie sollte ein Reading ausschauen??
Vom coding her wärs kein Problem, ich weiß nur nicht wie ich das sinnvoll in ein reading packen soll... Vorschläge dazu?
Das sind die Bits und der text dazu:
bit 0 Fault
bit 1 StatusEcoH
bit 2 TempFlowLimit
bit 3 TempReturnLimit
bit 4 StatusMorningBoostH
bit 5 StatusStartOptim
bit 6 StatusStopOptim
bit 7 HeatingDisabled
bit 8 HeatCoolMode
bit 9 StatusEcoC
bit 10 StatusPreCool
bit 11 CoolingDisabled
bit 12 DewPointStatus
bit 13 FrostAlarm
bit 14 HeatCoolMode
bit 15 reserved
Eine denkbare Variante wär, einfach duch Bindestrich getrennt, NUR die aktiven Status-bits darzustellen, zB. so:
Fault-TempReturnLimit-HeatCoolMode- FrostAlarm
Andere Variante: du definierst ein dpt7 und machst ein userreading darauf - bei dem code könnt ich dich unterstützen, den hab ich fast fertig..
l.g. erwin
Hi,
dpt6 geht zur not auch, aber unschön ;D
Und zum dpt22.101... Das kommt aus der ETS:
(OverheatAlarm: no alarm,
FrostAlarm: no alarm,
DewPointStatus: no alarm,
CoolingDisabled: false,
StatusPreCool: false,
StatusEcoC: false,
HeatCoolMode: heating,
HeatingDisabled: false,
StatusStopOptim: false,
StatusStartOptim: false,
StatusMorningBoostH: false,
TempFlowReturnLimit: false,
TempFlowLimit: false,
StatusEcoH: false,
Fault: false)
Idealerweise wäre es schön, würden entsprechende Unterreadings gleich im Modul erzeugt. Also wenn ich es zum Beispiel mit 0/4/24:dpt22.101:rhcc definiere, das dann entsprechende readings so aussehen könnten:
rhcc-FrostAlarm-get
rhcc-DewPointStatus-get
usw. Ich weiß nicht, wieviel Arbeit das machen würde.
Hi,
Zitatdpt6 geht zur not auch, aber unschön
dpt6 ist genauso schön oder unschön 8) wie dpt6.010, weil exakt die gleiche definition - in FHEM und auch im ETX Standard.
den dpt6.010 werde ich implementieren, gemeinsam mit den dpt1 Änderungen.
Ad dpt22.101:
dein Vorschag geht so nicht (zumindest nicht im Modul). Das würde ein komplettes rework des Moduls bedeuten, dass massiv in die Logik eingreift. Das wird sicher nicht passieren, schon aus Kompatibilitätsgründen... Selbst wenn das machbar wär, was schreiben wir dann in state?
Was geht, wär eine Lösung mittels userreadings oder statecmd, dafür sind die Dinger ja da.
Zeig mir mal deine def mit dpt7, dann kann ich dir mit userreading helfen... Falls das ok ist, könnte ich den dpt22.101 so implementieren, dass bei der definition ein userreading automatisch generiert wird....
l.g. erwin
Ok, dann lassen wir das ;)
Wie wäre es dann, wenn das Reading dann einfach in binär dargestellt wird? Das wäre jetzt meine letzte Idee die ich noch hätte. Klar geht umwandeln mit einem userreading auch so, aber würde denke ich für einige die Sache etwas vereinfachen.
Was mir noch einfällt in Bezug auf dpt1.024 Tag/Nacht es müsste die Möglichkeit geben, dass ich die beiden umkehren kann. Ich habe viel MDT im Einsatz und die haben im Standard es leider genau anders herum als 1.024 es angelegt hat ist mir gerade aufgefallen. Vielleicht könnte man im KNX Client ein Reading setzen mit der Option 1.024 zu ändern.
Dies würde ich auch als steuerelement sehen um zum Beispiel automatisch ein Userreading anzulegen. Soll heißen man kann hier zum Beispiel die Option einfügen, wenn diese aktiv ist, dass in den entsprechenden GruppenDevice die Userreadings automatisch angelegt werden, sofern sie benötigt werden. Werfe die Idee mal so in Raum, da sie mir eben spontan gekommen ist.
Irgendwie hat mich der Ergeiz erwischt...
Falls noch Interesse besteht,so könnte ein userreading ausschauen:
attr <device> userReadings status1:getG1.* {
my $value = ReadingsNum("$NAME",'getG1',0);
my $txt = '';
$txt = 'Heating' if (($value & 0x0180) == 0x0100); #HeatCoolMode= 1,Heating disabled = 0
$txt = 'Cooling' if (($value & 0x0900) == 0x0000); #HeatCoolMode= 0,Cooling disabled = 0
$txt = 'Idle' if (($value & 0x0880) == 0x0880); #Heating disabled,Cooling disabled
$txt = 'Fault' if (($value & 0x0001) > 0);
$txt = 'Error' if ($txt eq '');
return $txt;
},
status2:getG1.* {
my $value = ReadingsNum("$NAME",'getG1',0);
my $mask = 0x01;
my @text_arr = qw/Fault StatusEcoH TempFlowLimit TempReturnLimit StatusMorningBoostH
StatusStartOptim StatusStopOptim HeatingDisabled HeatCoolMode StatusEcoC
StatusPreCool CoolingDisabled DewPointStatus FrostAlarm OverheatAlarm reserved/;
my $txt = '';
for (my $i = 0; $i<=15; $i++) {
if ($i == 0 || $i == 7 || $i == 8 || $i == 11) { #already decoded before
#already decoded before
} else {
$txt .= "$text_arr[$i]-" if (($value & $mask) > 0);
}
$mask = $mask<<1;
}
$txt =~ s/-$//x;
return $txt;
}
..basierend auf einer dpt7 definition, die bei mir so ausschaut:
define dpt22test KNX 11/2/3:dpt7:get
es werden 2 neue readings generiert:
status1: Zustände: Fault/Cooling/Heating/Idle
status2: alle anderen, wo die jeweiligen bits 1 sind - im wesentlichen Alarme.
Binärdarstellung wär auf dieser Basis auch möglich, ich find die Texte aber aussagekräftiger.
gib einfach Bescheid ob das Sinn ergibt, ich hab keine solche Heizung, kann das nicht beurteilen.
falls ja, könnte das die Basis einer dpt22 Implementation werden.
l.g. erwin
@Amenophis86
hast du ein KNX-Standard Dokument wo dpt1.024 vorkommt? falls ja, würd ich dringend darum bitten.
Alternative: dpt1.001 mit eventmap on:Tag off:Nacht (oder umgekehrt...)
l.g. erwin
Habe an Dokumenten auch nur die V2.1 welche wir auf der KNX Seite gefunden haben. Ich habe es bei mir in der ETS mal für meine Tag Nacht Adressen eingestellt und dabei gemerkt, dass es "falsch herum" ist.
Stimmt, könnte man in FHEM auch einfach ummappen.
Ich hab ein Wetterstation von MDT, ich glaube SCN-WS3HW.01 da gibts eine Dämmerungsfunktion bei der kann man einstellen (ETS) Tag=1 Nacht=0 oder Tag=0 Nacht=1 ...
Hatte je geschrieben, dass ich es bei allen andern könnte aber das wäre ein riesen Aufwand jetzt meine gesamte Anlage zu drehen, weil es in der ETS fest vorgegeben ist. Daher war die Überlegung, dass man es im KNX Modul auswählen kann, denke es wird noch mehr Leuten so gehen. Aber über mapping geht es ja zur Not auch, daran hatte ich nicht gedacht.
Zitat von: erwin am 15 November 2020, 19:49:20
gib einfach Bescheid ob das Sinn ergibt, ich hab keine solche Heizung, kann das nicht beurteilen.
Macht auf jeden Fall Sinn. Sehr viel aussagekräftiger als ein Binär oder Dezimalwert allemal!
Aktuell behelfe ich mir mit einem Notify. Ich poste das mal, falls es jemand gebrauchen könnte.
Über Sinn und Unsinn meiner Variablen und Formatierung lässt sich streiten, aber sollte ja nur für mich sein ;)
heizung.eg:rhcc-status-get:.*
{
my @myPART = split(//, sprintf("%016b", ReadingsVal($NAME,"rhcc-status-get","")));
my $myREADING = "";
my @myTEXT =({ name => "reserved", 0 => "reserved", 1 => "reserved" },
{ name => "OverheatAlarm", 0 => "no alarm", 1 => "alarm" },
{ name => "FrostAlarm", 0 => "no alarm", 1 => "alarm" },
{ name => "DewPointStatus", 0 => "no alarm", 1 => "alarm" },
{ name => "CoolingDisabled", 0 => "false", 1 => "true" },
{ name => "StatusPreCool", 0 => "false", 1 => "true" },
{ name => "StatusEcoC", 0 => "false", 1 => "true" },
{ name => "HeatCoolMode", 0 => "cooling", 1 => "heating" },
{ name => "HeatingDisabled", 0 => "false", 1 => "true" },
{ name => "StatusStopOptim", 0 => "false", 1 => "true" },
{ name => "StatusStartOptim", 0 => "false", 1 => "true" },
{ name => "StatusMorningBoostH", 0 => "false", 1 => "true" },
{ name => "TempFlowReturnLimit", 0 => "false", 1 => "true" },
{ name => "TempFlowLimit", 0 => "false", 1 => "true" },
{ name => "StatusEcoH", 0 => "false", 1 => "true" },
{ name => "Fault", 0 => "false", 1 => "true" });
for (my $i = 0; $i<=15; $i++)
{
$myREADING = "rhcc-" . $myTEXT[$i]->{"name"} . " " . $myTEXT[$i]->{$myPART[$i]};
fhem "setreading $NAME $myREADING";
}
}