MDT Heizungsaktor Betriebsart anzeigen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

sushiprinz
Beiträge: 9
Registriert: 1. Dez 2019 15:17

MDT Heizungsaktor Betriebsart anzeigen

Beitrag von sushiprinz »

Hallo liebe openHAB Gemeinde,

ich mache meine ersten Schritte mit openHAB und meiner KNX Installation und bin noch im "Auslesen"-Modus. Beim Heizungsaktor MDT AKH-0800.02 konnte ich die Ist- und Solltemperatur für einen Kanal auslesen. Nun will ich auch noch die Betriebsart anzeigen, aber da komm ich leider nicht weiter. Hier die Definitionen:

Things:

Code: Alles auswählen

Type number: KG_Flur_Betriebsart "KG Flur Betriebsart" [ ga="20.102:<5/0/34" ]
Items:

Code: Alles auswählen

Number KG_Flur_Betriebsart "KG Flur Betriebsart: [%d]" {channel="knx:device:bridge:heizaktor_kg_eg:KG_Flur_Betriebsart"}
Sitemaps:

Code: Alles auswählen

Text item=KG_Flur_Betriebsart label="KG Flur Betriebsart: [%d]"
Die State-Formatierung mit [%d] ist nur geraten. Ich wollte überhaupt mal etwas vom Bus sehen. Später soll da natürlich "Komfort", "Standby", usw. stehen. Der Aktor ist so eingestellt, dass er alle 5 Minuten die Betriebsart auf die Gruppenadresse 5/0/34 schicken (Objekt 10 für diesen Kanal). Ich bin der Meinung aus der MDT Doku rauszulesen, dass dieses Objekt als DPT HVAC Mode 20.102 gesendet wird. Im Bus-Monitor sehe ich auch alle 5 Minuten eine Nachricht mit einem RawDpValue von $02 (Standby). In der BasicUI von openHAB ist es leider nur ein Strich. :(

In den mir bekannten Logs konnte ich keine Fehler entdecken. Aber vielleicht schau ich auch nicht an die richtigen Stellen.

Vielen Dank vorab für eure Hilfe!

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

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von udo1toni »

Als ersten Versuch solltest Du das < Zeichen mal weg lassen, da das L-Flag für das KO 10 nicht gesetzt ist.

Versuchsweise kannst Du auch den DPT weg lassen (vor allem, um zu schauen, ob die Daten dann ankommen, wenn auch vielleicht falsch ;) )
DPT20 ist 1Byte, Untergruppe 102 ist Wertebereich 0...4. Du könntest auch ausprobieren, DPT 5.010 zu verwenden - letztlich spielt der genaue DPT keine Rolle, solange die Anzahl der Bits stimmt, eine identische Codierung hilft natürlich (DPT5.010 und DPT20.102 sind kompatibel, unsigned 0-255)

Zum testen kannst Du das Label hinten auf [%s] setzen, alles lässt sich als String darstellen ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

tlrider
Beiträge: 27
Registriert: 1. Sep 2016 12:54

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von tlrider »

Hallo sushiprinz,

DPT 20.102 ist die Betriebsartvorwahl, bei deinem Aktor würde ich DPT 16.000 nehmen.
Bei mir war es DPT 16.001 und sieht so aus:

Code: Alles auswählen

Type string        : Channel_D_diag     "Diagnosetext Bad EG"                       [ ga="16.001:<2/5/3" ]
Bild
mdt_habpanel.PNG
Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

sushiprinz
Beiträge: 9
Registriert: 1. Dez 2019 15:17

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von sushiprinz »

Vielen Dank für Eure Antworten!

@udo1toni: Ich habe im Aktor eingestellt, dass er die Betriebsart zyklisch alle 5 Minuten senden soll. Dann ist auch ein L-Flag da. ;)
Danke für den Tipp mit dem String! Ich hab jetzt nur in den Items und in der Sitemap auf [%s] umgeschaltet und prompt zeigt er auch was an. Sogar mehr als erwartet: Ich dachte nur eine Zahl aber in der GUI steht tatsächlich "Comfort" und "Standby". Woher weiß er das? Ich vermute mal, dass das in der Implementierung vom DPT 20.102 hinterlegt ist.

@tlrider: Danke, probier ich mal aus! Noch eine Frage: Wie kommst Du auf den finalen Text in der Visu "Wi H Komfort 1". Ist des eine Rule oder ein Mapping?

Beste Grüße!

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

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von udo1toni »

sushiprinz hat geschrieben: 8. Dez 2019 16:09 Ich hab jetzt nur in den Items und in der Sitemap auf [%s] umgeschaltet und prompt zeigt er auch was an. Sogar mehr als erwartet: Ich dachte nur eine Zahl aber in der GUI steht tatsächlich "Comfort" und "Standby". Woher weiß er das? Ich vermute mal, dass das in der Implementierung vom DPT 20.102 hinterlegt ist.
Was es dann erklären würde :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

tlrider
Beiträge: 27
Registriert: 1. Sep 2016 12:54

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von tlrider »

Hi

@tlrider: Danke, probier ich mal aus! Noch eine Frage: Wie kommst Du auf den finalen Text in der Visu "Wi H Komfort 1". Ist des eine Rule oder ein Mapping?

Nein das kommt direkt vom Aktor als "Diagnosetext".

Grüße

sushiprinz
Beiträge: 9
Registriert: 1. Dez 2019 15:17

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von sushiprinz »

Hallo zusammen,

ich hab endlich wieder Zeit gefunden, weiter an meiner Heizungssteuerung zu arbeiten. Leider trete ich schon wieder auf der Stelle. :( Der letzte Stand war, das ich die Betriebsart angezeigt bekomme (z.B. "Comfort" in der PaperUI). Das ging mit folgenden Definitionen:

Code: Alles auswählen

Thing
Type number: KG_Flur_Betriebsart "KG Flur Betriebsart" [ ga="20.102:<5/0/34" ]

Item
String KG_Flur_Betriebsart_item "KG Flur Betriebsart: [%s]" {channel="knx:device:bridge:heizaktor_kg_eg:KG_Flur_Betriebsart"}
Das entscheidene war, das Item als String und mit [%s] zu definieren. Als Number kommt immer "NaN" bzw. "-" in den GUIs.

Jetzt will ich die Betriebsart in einer Rule setzen:

Code: Alles auswählen

// Turn on heating at 6:00 every Mon to Fri
rule "Turn on heating - Mon-Fri"
when
    Time cron "0 0/1 * ? * MON-FRI"
then
    KG_Flur_Betriebsart_item.sendCommand(???)
end
Laut dem VSCode Plugin kann ich nur auf Items in der Rule zugreifen. Mein Item ist in dem Fall aber ein String. Wie kann ich dort die Betriebsart setzen?
Die Betriebsart Komfort müsste man als Hex-Wert 0x01 setzen.

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von Darkwin101 »

Das müsste so Funktionieren

Code: Alles auswählen

// Turn on heating at 6:00 every Mon to Fri
rule "Turn on heating - Mon-Fri"
when
    Time cron "0 0/1 * ? * MON-FRI"
then
    KG_Flur_Betriebsart_item.sendCommand("0x01")
end

sushiprinz
Beiträge: 9
Registriert: 1. Dez 2019 15:17

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von sushiprinz »

Danke für die schnelle Antwort! Leider funktioniert es nicht (keine Nachricht an den Bus):

Code: Alles auswählen

2020-02-25 12:51:00.011 [ome.event.ItemCommandEvent] - Item 'KG_Flur_Betriebsart_item' received command 0x01
2020-02-25 12:51:00.012 [nt.ItemStatePredictedEvent] - KG_Flur_Betriebsart_item predicted to become 0x01
2020-02-25 12:51:00.013 [vent.ItemStateChangedEvent] - KG_Flur_Betriebsart_item changed from Comfort to 0x01
2020-02-25 12:51:53.238 [vent.ItemStateChangedEvent] - KG_Flur_Ist changed from 22.5 to 22.54
2020-02-25 12:52:00.007 [ome.event.ItemCommandEvent] - Item 'KG_Flur_Betriebsart_item' received command 0x01
2020-02-25 12:52:00.008 [nt.ItemStatePredictedEvent] - KG_Flur_Betriebsart_item predicted to become 0x01
2020-02-25 12:52:53.219 [vent.ItemStateChangedEvent] - KG_Flur_Ist changed from 22.54 to 22.52
2020-02-25 12:53:00.010 [ome.event.ItemCommandEvent] - Item 'KG_Flur_Betriebsart_item' received command 0x02
2020-02-25 12:53:00.011 [nt.ItemStatePredictedEvent] - KG_Flur_Betriebsart_item predicted to become 0x02
2020-02-25 12:53:00.011 [vent.ItemStateChangedEvent] - KG_Flur_Betriebsart_item changed from 0x01 to 0x02
2020-02-25 12:53:50.637 [vent.ItemStateChangedEvent] - KG_Flur_Betriebsart_item changed from 0x02 to Comfort
2020-02-25 12:54:00.003 [ome.event.ItemCommandEvent] - Item 'KG_Flur_Betriebsart_item' received command 0x02
2020-02-25 12:54:00.004 [nt.ItemStatePredictedEvent] - KG_Flur_Betriebsart_item predicted to become 0x02
2020-02-25 12:54:00.005 [vent.ItemStateChangedEvent] - KG_Flur_Betriebsart_item changed from Comfort to 0x02
2020-02-25 12:54:53.198 [vent.ItemStateChangedEvent] - KG_Flur_Ist changed from 22.52 to 22.5
2020-02-25 12:55:00.003 [ome.event.ItemCommandEvent] - Item 'KG_Flur_Betriebsart_item' received command 0x02
2020-02-25 12:55:00.004 [nt.ItemStatePredictedEvent] - KG_Flur_Betriebsart_item predicted to become 0x02
Was bedeutet dieses "predicted to become"?

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

Re: MDT Heizungsaktor Betriebsart anzeigen

Beitrag von udo1toni »

Also, ganz ehrlich, was Du da beschreibst, kann nicht sein.

Wenn Du einen Channel vom Typ number hast, dann ist das eine Zahl, und die wird auch in einem Number Item gehalten. Was gerne passiert: aus irgendeinem Grund macht openHAB aus einer Ganzzahl eine Float Zahl. Das sollte aber kein ernstes Problem darstellen.

Das String Item sendet Strings. Wenn Du da einen Hex-Wert sendest, ist das trotzdem ein String. Der Number Channel kann noch nicht mal mit einer Dezimalzahl als String etwas anfangen, geschweige denn mit einer Hex Zahl.
Was Du im Log siehst, sind auch nur die Informationen zum Item, nicht der Channel.

Ich bin mir gerade nicht sicher, welchen DPT ich bei mir nutze, kann sein, dass ich einen anderen als DPT20.102 verwende. z.B. 5.010 ist codierungskompatibel (unsigned Byte 0 -255), den könntest Du mal spaßeshalber versuchen.
Wie oben erwähnt könnte es sein, dass das Item dann ein 1.0 enthält, wenn die Daten empfangen werden. Zum Senden kannst Du aber auf jeden Fall den Integerwert angeben.
Damit aus der Zahl ein Text wird, kann man mit einem Mapping arbeiten, man muss dann aber daran denken, falls wirklich 1.0 als Wert zurück kommt, dass man im map-File diesen Wert verwenden muss.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten