Probleme mit Weiterleitung von Werten zw. knx und mqtt

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

MaxE.
Beiträge: 20
Registriert: 23. Jul 2022 10:43

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von MaxE. »

also richtig weiter komme ich einfach nicht damit :-(
Folgendes habe ich gemacht:
- damit die WB wieder korrekte Daten bekommt, habe ich das item, das mit dem Smartmeter verlinkt ist als number definiert (ohne :energy)
- Damit empfange ich nun den korrekten Wert auf der Wallbox.
- Für die KNX Anbindung habe ich eine rule erstellt, die bei Änderung des Wallbox items triggert und ein Script ausführt:

Code: Alles auswählen

var wb, knx;


wb = itemRegistry.getItem('BezugopenWB').getState();
knx = wb / 1000;
events.postUpdate('KNXGerat0815_Zahlerstand_Bezug', knx);
- Das item, das mit dem KNX verlinkt ist, ist auch nur ein number item und die GA ist Standard.
- Die Rule wird ausgeführt, es steht im KNX item, das an den Bus geschickt wird nun der korrekte Wert /1000. Ändert schön mit.

Bei einem Stand von z.B. 8680536,1 am Wallbox-Item (brauch ja den Wert in Wh) kommen nun am KNX item 8680,536 an. Soweit ein Erfolg., aaaaber. Im Busmonitor kommt der Wert nun als DPT Typ Energie an - keine Ahnung warum und vor allem bekomme ich als Rohdaten 4E9F (8678,4)???

Hast Du evtl. ne Ahnung, was ich da machen kann?

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von udo1toni »

Na, wie ist denn nun der Channel definiert? Wenn Du ein einfaches Number Item hast, musst Du auch einen anderen DPT verwenden, z.B. 9.001.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

MaxE.
Beiträge: 20
Registriert: 23. Jul 2022 10:43

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von MaxE. »

Guten Morgen,

die Channels sind so konfiguriert:

Code: Alles auswählen

channels:
  - id: bezug
    channelTypeUID: knx:number-control
    label: Zählerstand Bezug
    description: ""
    configuration:
      ga: 6/6/60
  - id: einspeiser
    channelTypeUID: knx:number-control
    label: Zählerstand Einspeiser
    description: ""
    configuration:
      ga: 6/6/61
  - id: openwb
    channelTypeUID: knx:number
    label: Zählerstand OpenWB
    description: ""
    configuration:
      ga: 6/6/62
Sollte also dann doch als Standard-DPT interpretiert werden oder irre ich?

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von udo1toni »

Bei diesem Channel:

Code: Alles auswählen

- id: openwb
    channelTypeUID: knx:number
    label: Zählerstand OpenWB
    description: ""
    configuration:
      ga: 6/6/62
steht ja number als Typ, da musst Du in der Rule auf das verlinkte Item ein sendCommand anwenden.
Bei den anderen beiden Channels sollte ein postUpdate (bzw. ein Update des Status durch was auch immer) direkt weitergeleitet werden.
Gib versuchsweise mal den DPT 9.001 mit an. Wenn Du über UI konfigurierst, sollte das unmittelbar wirksam sein, bei Konfiguration über Textdateien könnte es notwendig sein, das knx Binding neu zu starten (am einfachsten, indem man openHAB selbst komplett neu startet)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

MaxE.
Beiträge: 20
Registriert: 23. Jul 2022 10:43

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von MaxE. »

Hallo,
der channel, den Du ansprichst, ist der einzige, der wirklich korrekt auf den knx gesendet wird. Da kommt der Wert aus der OpenWB per mqtt. Probleme macht nur noch der Smartmeter-Wert (die sind beide mit number-control definiert. Hab auch probehalber den DPT 9.001 gesetzt und auch openHAB neu gestartet. Kommt aber nicht korrekt an.

VG Max

MaxE.
Beiträge: 20
Registriert: 23. Jul 2022 10:43

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von MaxE. »

Hallo,

ich hab es nun endlich hinbekommen. War ein doofer Fehler von mir! Ist mir aber auch erst gar nicht aufgefallen. Und zwar ist der DPT 13.xxx ja ein 2 Byte Wert. Das bedeutet, dass ein Zählerstand angegeben in Wh ja nur bis maximal 65,535 kWh reicht.
Naja, welcher Zähler hat schon so einen niedrigen Stand. Lösung ist ganz einfach. Einen 4 Byte 14.xxx DPT verwenden.
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.
Aber vielen Dank für Deine Hilfe!

Max

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von udo1toni »

Nein, mit Verlaub, das ist Unsinn. DPT 13 ist 4-Byte Signed Integer aka Long. Wertebereich geht von -2 147 483 648 bis 2 147 483 647.

DPT 14 ist hingegen 4-Byte Signed Float, wobei das MSB das Vorzeichen gibt, dann folgen acht Bit Exponent und 23 Bit Mantisse, also Float mit einfacher Genauigkeit.

Ich könnte mir vorstellen (wenn ich so drüber nachdenke), dass der Nachkommaanteil das eigentliche Problem ist.

Die aktuelle DPT Definition kann man bei knx.org runterladen:

Code: Alles auswählen

https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

MaxE.
Beiträge: 20
Registriert: 23. Jul 2022 10:43

Re: Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von MaxE. »

Hallo,

ja bei DPT 13 hast da recht. Und ja, am Nachkommaanteil könnte es auch gelegen haben. Zumindest erklärt das, warum ohne Angabe eines DPT der Zählerstand der OpenWB schön auf den Bus ging. Der ist nämlich aktuell erst bei 57587Wh. Jedenfall funktioniert es jetzt. Werde probehalber mal den passenden 13er DPT verwenden und die Nachkommastellen runden, damit auch wirklich ein Integer übertragen wird.

VG Max

Antworten