Hallo,
ich haben mit KNX Tul ein seltsames Problem. Sende ich über Fhem folgendes an den KNX Bus: "set Bezug_JCT_kwh_test steuern 99.5" erscheint wie zu erwarten bei ETS 99,5.
Sende ich aber "999999.5", erscheint als Wert 670433,3 kW. Also umso höher der Wert um so höher die Abweichung. Verwendet wird hier der Datenpunkt 9.024.
Verwende ich jedoch den Datenpunkt 13.013, also ohne komma Zahl dann erscheinen bei gesendet 999999 auch 999999.
Hier noch das list von den Device:
Internals:
CFGFN
DEF 8/2/0:dpt9.024:steuern
DEVNAME Bezug_JCT_kwh_test
FIRSTGADNAME steuern
FUUID 61ed7dee-f33f-7bd1-cadd-c26b08b713d3ce29
GETSTRING steuern:noArg
IODev KNX
KNX_MSGCNT 19
KNX_RAWMSG C00007w082007ffe
KNX_TIME 2022-01-23 20:21:54
LASTInputDev KNX
MSGCNT 19
NAME Bezug_JCT_kwh_test
NR 213
SETSTRING steuern:slider,-670760,13415,670760
STATE 670433.28 kW
TYPE KNX
model dpt9
GADDETAILS:
steuern:
CODE 08200
GROUP 8/2/0
MODEL dpt9.024
NO 1
OPTION
RDNAMEGET steuern-get
RDNAMEPUT steuern-put
RDNAMESET steuern-set
SETLIST :slider,-670760,13415,670760
GADTABLE:
08200 steuern
READINGS:
2022-01-23 20:21:00 IODev KNX
2022-01-23 20:21:54 last-sender 0.0.7
2022-01-23 20:21:54 state 670433.28 kW
2022-01-23 20:21:54 steuern-get 670433.28 kW
2022-01-23 20:21:54 steuern-set 999999.5 kW
Attributes:
comment set Bezug_JCT_kwh_test steuern
room KNX
Gruß
Thorsten
Hi,
ZitatSende ich aber "999999.5", erscheint als Wert 670433,3 kW.
Das passiert deswegen, weil 999999 ausserhalb des erlaubten Zahlenbereichs ist - lt. specs:
dpt | Name | Range | unit | resolution |
9.024 | DPT_Power | -670 760 kW ... 670 760 kW | kW | 0,01 kW
l.g. erwin
Also muss ich für größere Zahlen einen anderen Datenpunkt wählen?
Benötige das für den Zählerstand von Stromzähler....
Gruß
Thorsten
ZitatAlso muss ich für größere Zahlen einen anderen Datenpunkt wählen?
Ja !
der dpt9.024 ist mit kW spezifiziert, was du brauchst sind aber kWh !
Der richtige dpt muss in den specs vom Zähler zu finden sein.
Falls du die nicht hast, würde ich mit dem ETS-Monitor "zuschauen" und mögliche dpt's probieren, bis dass Ergebnis mit dem Wert am Zähler übereinstimmt.
Meine Vermutung: dpt13
l.g. erwin
Hallo,
Dpt 13 hat leider keine Komma stellen... muss ich nachher mal in Ruhe schauen....
beim dpt13 gibts die variante Wh (dpt13.010) oder kWh (dpt13.013).
Allerdings: im Modul wird beides völlig gleich behandelt, nichts umgerechnet/skaliert - es kommt nur darauf an, was der Zähler sendet!
l.g.erwin
Hallo,
Bei einem Wert von 19435.52 auch das Problem,
Müsste ja eigentlich gehen...
das ist ein grundsätzliches Problem der dpt9 encodierung (in 2 Bytes).
Da entstehen Ungenauigkeiten.... ( Im Prinzip wird da gerundet...allerdings nicht mathematisch im klassischen Sinn)
in 16bits = 2Bytes kann man maximal 65536 darstellen, wenn man mehr will (in unserem Fall +-670000...) muss man irgendwie die Genauigkeit reduzieren.
Darum ist dieser dpt für einen Zähler absolut ungeeignet.
Versuch mal folgendes: Vom ETS-Monitor mit dpt9.024 den
1) Wert 19435,52 schicken -> was kommt in FHEM an ?
2) Wert 19435 schicken -> was kommt in FHEM an ?
Und anschließend von FHEM -> ETS-Monitor
1) Wert 19435.52 schicken -> was kommt am ETS-Monitor an?
2) Wert 19435 schicken -> was kommt am ETS-Monitor an?
Wenn die "Fehler" in beiden Richtungen gleich sind, liegts an der codierung......
PS: Ich kenne keinen KNX-Stromzähler, der Komma Zahlen ausgibt. Die meisten senden Wh als Integer.
Zitat1) Wert 19435,52 schicken -> was kommt in FHEM an ?
19435,52
Zitat2) Wert 19435 schicken -> was kommt in FHEM an ?
19435,52 (In ETS wird dieser nach den abschicken auch angezeigt)
ZitatUnd anschließend von FHEM -> ETS-Monitor
19425,28
Zitat1) Wert 19435.52 schicken -> was kommt am ETS-Monitor an?
19435,52
Zitat2) Wert 19435 schicken -> was kommt am ETS-Monitor an?
19425,28
ZitatPS: Ich kenne keinen KNX-Stromzähler, der Komma Zahlen ausgibt. Die meisten senden Wh als Integer.
Ich lese über FHEM mit dem OBIS Modul den Zähler über die optische Schnitstelle aus. Den Wert gebe ich in einen neuen Reading als kwh an....
Ich werde jetzt einfach den Wert in Watt nehmen, und später den Wert umwandeln.....
Dann reicht auch der Datenpunkt 13.013 ohne Komma Stelle....