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

Probleme mit Weiterleitung von Werten zw. knx und mqtt

Beitrag von MaxE. »

Hallo zusammen,
ich bin gerade fleißig an meiner frischen openHAB Installation dran und habe schon einige Erfolge erzielen können. Nun komm ich aber nicht mehr wirklich weiter.
Ich lese ein Smartmeter über die Serielle aus. Dort werden die Werte in Wh angezeigt. Die leite ich dann per mqtt an die OpenWB weiter. Das klappt prima. Nun möchte ich diese Werte auf den KNX Bus senden. Dazu habe ich folgendes thing als KNX device angelegt:

Code: Alles auswählen

UID: knx:device:f423254707:1d3c7030b6
label: IP-Router
thingTypeUID: knx:device
configuration:
  pingInterval: 600
  address: 1.1.0
  readInterval: 0
  fetch: false
bridgeUID: knx:ip:f423254707
channels:
   - id: einspeiser
    channelTypeUID: knx:number
    label: Zählerstand Einspeiser
    description: ""
    configuration:
      ga: 6/6/61
  - id: wb
    channelTypeUID: knx:number
    label: Zählerstand Bezug
    description: ""
    configuration:
      ga: 6/6/60
Das thing OpenWB sieht so aus (Ausschnitt):

Code: Alles auswählen

UID: mqtt:topic:087b14ce6d:4fa1c9bd58
label: openWB
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:087b14ce6d
location: Einfahrt
channels:
  - id: openWB_evu_WhImported
    channelTypeUID: mqtt:number
    label: Bezogene Energie an OpenWB
    description: ""
    configuration:
      commandTopic: openWB/set/evu/WhImported
  - id: openWB_evu_WhExported
    channelTypeUID: mqtt:number
    label: Eingespeiste Energie an OpenWB
    description: ""
    configuration:
      commandTopic: openWB/set/evu/WhExported
nun gibt es ein je ein Item für Bezug und Einspeiser, das mit dem Smartmeter und sowohl OpenWB als auch IP Router mit "Folgen" verlinkt ist.
Das die Verlinkung funktioniert, sehe ich ja an den aktuellen Werten in der OpenWB. Die stimmen ja. Nur auf den knx wird nichts geschickt...

Kann mir wer sagen, was ich da falsch mach?

Danke schonmal und viele Grüße

Max

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

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

Beitrag von udo1toni »

Du darfst Dir nicht einfach physikalische Adressen ausdenken. Die 1.1.0 ist ohnehin für den Linienkoppler reserviert.
Wenn Du mit virtuellen knx Devices arbeiten willst, setze einfach gar keine physikalische Adresse.
Die GA (GruppenAdresse) kannst Du nicht im knx/IP Router hinterlegen, da dieser keine KO (KommunikationsObjekte) hat. Zuordnungen in die einzelnen Things sollten sich immer an der Hardware orientieren.

Weiter: Da openHAB gegenüber dem knx Bus als Sensor auftreten soll (openHAB liefert den Messwert, bzw. den Zählerstand), solltest Du hier einen number-control Channel verwenden.
Damit wird ein ankommendes Status Update des Zählerstands auf das verlinkte Item direkt nach knx weitergeleitet.
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,
hab mich da evtl. doof ausgedrückt. Es gibt einen KNX IP gateway als bridge - das ist auch so eingetragen und hat keine Channel.

Ich habe dann noch ein knx device names IP router angelegt (eben, weil es über deses physische Gerät auf den Bus schreibt) - das hat ja sehr wohl auch KO's. ich habe es jetzt einfach als "device1" umbenannt und die GA entfernt

Die entsprechenden Kanäle als number-control gesetzt:

Code: Alles auswählen

  - 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: null
    configuration:
      ga: 6/6/61
Nur werden nach wie vor keine Daten auf den Bus geschickt. Muss ich evtl. noch was an den DPT abändern?

Merci und LG

Max

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

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

Beitrag von udo1toni »

Der DPT hängt vom verwendeten Empfänger ab, den kenne ich ja nicht. Ein knx/IP Router hat keine KO (oder andersrum: welche sollten das bitte sein)?

Das Gateway wird aber ohnehin nicht als Thing abgebildet, denn die knx Bridge ist die Entsprechung des Gateways.
Und nein, auch in der Bridge darfst Du nicht die localSourceAddr auf die physikalische Adresse setzen, im Gegenteil darf localSourceAddr überhaupt nicht im System vorkommen, nicht mal als physikalische Adresse aus einem Block reservierter Adressen für bereitgestellte Tunnel.
Du darfst in der ETS aber ein Device anlegen, welchem Du die localSourceAddr als physikalische Adresse zuordnest. Nur darf dieses Gerät niemals tatsächlich programmiert werden, es dient dann lediglich als Platzhalter innerhalb der ETS. Man kann es mit einem Label versehen, so dass im Busmonitor das Label angezeigt wird, wenn openHAB etwas sendet.
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. »

Hi nochmal,
Das Gateway wird aber ohnehin nicht als Thing abgebildet, denn die knx Bridge ist die Entsprechung des Gateways.
dann doofe Frage...warum taucht die Bridge dann bei mir in der things-Liste auf? Ich hab da ja nix extra angelegt. Und nein, die bridge hat keine eigene physikalische Adresse eingetragen bekommen.
Ich habe nun - zum besseren Verständnis - ein reguläres KNX device angelegt.

Code: Alles auswählen

UID: knx:device:f423254707:64938f8825
label: KNX-Gerät-0815
thingTypeUID: knx:device
configuration:
  pingInterval: 600
  readInterval: 0
  fetch: false
bridgeUID: knx:ip:f423254707
location: Keller
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-control
    label: Zählerstand OpenWB
    description: ""
    configuration:
      ga: 6/6/62
  - id: testschalter
    channelTypeUID: knx:switch
    label: testschalter
    description: ""
    configuration:
      ga: 1/4/22
Der Testhalber einen channel "switch" angelegt. Der funktioniert auch tadellos. Nur eben die Zählerstände wandern einfach nicht auf den Bus. Lege ich mit ein item "Dimmer" an und verbinde das mit einem der Kanäle der Zählerstände, dann wird auch dort wieder fleißig auf den Bus geschrieben. Nur eben der Wert aus dem Smartmeter wird nicht durchgereicht. Zum DPT Thema... der Empfänger ist xhome - dort läuft meine komplette Visu drüber. Nachdem ja die ausgelesenen Zählerwerte nicht 1:1 auf den Bus wollen, vermute ich, dass innerhalb von openHAB einfach ein Problem mit den Datentypen vorliegt. Gibt's dafür irgendwo einen log, wo ich nachsehen kann?

VG Max

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

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

Beitrag von udo1toni »

MaxE. hat geschrieben: 24. Jan 2023 14:38dann doofe Frage...warum taucht die Bridge dann bei mir in der things-Liste auf?
Ja, nachdem ich den Post abgeschickt habe, hab ich noch drüber nachgedacht, das nochmal zu ändern...

Eine Bridge ist halt auch ein Thing, aber eben kein Thing unterhalb der Bridge, sondern die Bridge selbst. Da knx kein Autodiscovery bietet, ist alles, was gelistet wird, auch von Dir selbst definiert :)

Zurück zu den Zählerständen...
Da zeigst weiter oben ein mqtt Thing für die Zählerstände. Dort sendest Du die Zählerstände an openWB. Aber wie sieht die Quelle aus?
Wie sieht das zugehörige Item aus?
Leider gibt es keine Code-Ansicht der Items, es sei denn, man definiert sie über eine Textdatei.
Hast Du bei beiden Links als Profile follow angegeben? mach das follow beim knx Channel mal weg, wenn er nun als number-control Channel definiert ist, braucht es dafür kein follow Profile mehr.

Und noch mal die Frage nach dem Ziel. Wenn Du den Zählerstand nach knx senden willst, brauchst Du dort auch einen Empfänger, das ist nicht verhandelbar. :) Welchen DPT erwartet der Empfänger?
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. »

Hi,
Eine Bridge ist halt auch ein Thing, aber eben kein Thing unterhalb der Bridge, sondern die Bridge selbst. Da knx kein Autodiscovery bietet, ist alles, was gelistet wird, auch von Dir selbst definiert :)
Da sind wir dann ja auf der gleichen Wellenlänge. Genauso ist es ja eigentlich mit jeder anderen bridge auch. Die tauchen da halt auf.
Und knx hat ja bisher mit openHAB einwandfrei funktioniert.
Dort sendest Du die Zählerstände an openWB. Aber wie sieht die Quelle aus?
Ich habe das openHAB smartmeter binding installiert: This binding retrieves and reads SML messages (PUSH) and supports IEC 62056-21 modes A,B,C (PULL) and D (PUSH).
Danach ein thing angelegt. Dort wählt man den COM aus und er legt dann selbständig die channels dazu an.

Code: Alles auswählen

Wie sieht das zugehörige Item aus?
Das ist ein Number:Energy item. verlinkt zwischen Smartmeter per standard und OpenWB per follow. und auch an knx per follow ->wobei ich das gerade eben auf standard geändert habe - was aber auch nicht funktioniert.
Die OpenWB zählt brav den übermittelten Zählerstand mit, so wie es soll. Nur am knx ist es sehr schweigsam :-(

Code: Alles auswählen

Und noch mal die Frage nach dem Ziel. Wenn Du den Zählerstand nach knx senden willst, brauchst Du dort auch einen Empfänger, das ist nicht verhandelbar
Braucht Empfänger ist "halbrichtig". Grundsätzlich ist es dem Sender egal ob ein Telegramm bestätigt wird. Geschickt hat er es ja trotzdem. Kann man auch schön am Busmonitor mitverfolgen. Aber da ist in meinem Fall nix.
Der Empfänger ist wie gesagt eine xhome-Installation, die die am Bus lauscht und sendet. Die kommt mit so ziemlich allen DPT's klar - einzig was dann halt an Datenmüll rauskommt ist eine andere Sache. Nur so weit bin ich ja leider nicht. Wird ja nix geschickt :-(

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. »

Kleiner Nachtrag, es muss definitiv an dem Format liegen, wie die Smartmeter Bridge den Wert weiterreicht.
Weil der Weg in die andere Richtung
Zählerstand OpenWB per mqqt -> knx mit folgenden Einstellungen im knx device

Code: Alles auswählen

  - id: openwb
    channelTypeUID: knx:number
    label: Zählerstand OpenWB
    description: ""
    configuration:
      ga: 6/6/62


funktioniert problemlos. Bin echt gerade etwas ratlos

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

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

Beitrag von udo1toni »

Number:Energy ist aber schon die halbe Miete.

Nutzt Du openHAB3.4? Dann musst Du wegen UoM an dieser Stelle auch den exakten DPT angeben, vermutlich 13.013 (kWh) oder 13.010 (Wh).
Alternativ müsstest Du die Einheit weg strippen, allerdings geht das dann vermutlich nur über eine Rule.
Du könntest auch noch versuchen, das Ganze als String zu senden, kann aber sein, dass openHAB das nicht mag.

Falls Du openHAB < 3.4 nutzt kannst Du kein UoM weiterleiten, dann ist die Einheit zwingend zu entfernen.
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,
ich habe heute früh extra mal auf die 3.4.1 upgedated. Allerdings hat sich da leider auch wieder was verändert. Das Smartmeter thing empfängt die Werte wie vorher auch in Wh, gibt sie aber dann in kWh aus. Damit kommt jetzt auch die WB nicht mehr klar. Man man man. Auf den Bus wird trotz korrekt gesetztem DPT (beide 13.01x probiert) nach wie vor nichts gesendet. Bin leider noch nicht so affin mit den rules. Vermutlich muss ich für jeden Wert nun noch ein zusätzliches item anlegen, wobei das eine item mit dem smartmeter thing verlinkt ist und das andere dann mit dem knx bus thing, oder? Ändert sich der Wert am smartmeter item, dann soll der Wert durch die rule angepasst werden und an das am knx item weitergegeben werden?

Merci und VG

Max

Antworten