Seite 1 von 1
Temperatur Datenpunkt umwandeln
Verfasst: 20. Mai 2021 18:58
von OlafH
Hallo zusammen,
ich versuche gerade folgendes Problem über Openhab zu lösen:
Ein Sonoff TH10 mit Tasmota Fimware gibt auf den KNX Bus eine Temperatur in 4-byte Format, das würde ich gerne auf einem MDT Glastaster darstellen, der kann aber nur 2byte Temperaturen anzeigen.
Ich habe dazu dieses Thing angelegt:
Code: Alles auswählen
Type number : Temperature "Temperatur" [ ga="14.068:<3/1/20" ]
Die Darstellung über dieses Item in Openhab funktioniert auch wie gedacht.
Code: Alles auswählen
Number Terrace_Pool_Temp "Terasse Pool Ist-Temp [%.1f °C]" <temperature> (Terrace, gHistoryDB) { channel="knx:device:bridge:SonoffTHPool:Temperature" }
Wenn ich jetzt ein weiteres Thing mit DPT 9.001 anlege, kann ich dann über ein Rule den obigen Wert umrechnen und wieder auf den Bus in eine entsprechende GA schreiben?
Hat da jemand vielleicht etwas ähnliches am laufen, bei dem ich ein wenig abkupfern könnte?
Vielen Dank im Vorraus
mfg
Olaf
Re: Temperatur Datenpunkt umwandeln
Verfasst: 20. Mai 2021 19:23
von udo1toni
Du möchtest die Temperatur an knx schicken. Dementsprechend ist es kontraproduktiv, die Temperatur vom knx Bus zu lesen. DPT14 wird grundsätzlich von openHAB unterstützt. Da openHAB per Definition gegenüber knx als Sensor auftritt, wäre es sinnvoll, den Channel als number-control zu definieren (obwohl das im Fall von Number nicht zwingend ist).
Re: Temperatur Datenpunkt umwandeln
Verfasst: 22. Mai 2021 10:17
von OlafH
Danke für den Tipp. Das könnte dann so aussehen?
Code: Alles auswählen
Thing device generic {
Type number-control : PoolTemp2B "Temperatur" [ ga="9.001:3/1/21" ]
}
Code: Alles auswählen
Number Terrace_Pool_Temp_2B "Terasse Pool Anzeige Ist-Temp [%.1f °C]" <temperature> (Terrace) { channel="knx:device:bridge:generic:PoolTemp2B" }
Hat noch jemand eine Idee, wie die Rule für die Umrechnung 4B -> 2B aussehen müsste?
Irgendwie so?
Code: Alles auswählen
rule "temperatur umrechnen"
when
Item Terrace_Pool_Temp changed
then
Terrace_Pool_Temp_2B.sendCommand(--- Umrechnung ---)
end
mfg
Olaf
Re: Temperatur Datenpunkt umwandeln
Verfasst: 22. Mai 2021 20:00
von udo1toni
?
Welches KO (KommunikationsObjekt) nutzt Du denn nun (bzw. welchen DPT nutzt das KO, der mit der GA 3/1/21 verknüpft ist)? Du kannst den DPT nicht frei auswählen, der wird vom KO fest vorgegeben.
Ist Dein KO DPT14.x, gibst Du 14.x an. Ist Dein KO DPT 9.x, gibst Du 9.x an.
Eine Umrechnung innerhalb openHAB braucht es dazu nicht.
Du brauchst auch keine Rule. Und wenn Du eine Rule verwendest, musst Du für *-control Channel postUpdate verwenden, NICHT sendCommand.
Ohne Rule verlinkst Du einfach den knx number-control Channel mit dem vorhandenen Number Item (also Terrace_Pool_Temp) und die Temperatur wird jedes Mal auf den knx Bus gesendet, wenn der Status von Terrace_Pool_Temp aktualisiert wird.
Re: Temperatur Datenpunkt umwandeln
Verfasst: 23. Mai 2021 09:19
von OlafH
Hmm, ok. Vielleicht habe ich da viel zu kompliziert gedacht.
Also der Sensor sendet die Temperatur in DPT 14.x und der Glastaster kann nur DPT 9.x anzeigen, deshalb kann ich sie im KNX nicht direkt miteinander Verknüpfen.
Daher wollte ich OpenHAB quasi als "Übersetzer" nutzen, und hab jeweils ein Objekt für die Temperatur vom Sensor und eins für die Temperatur zur Anzeige am Glastaster erstellt. Und hatte mir gedacht, dass der OpenHAB Server die Temperatur von dem DPT 14.x Object empfängt, und dann richtung DPT 9.x Objekt wieder auf den Bus schickt, deshalb die Rule.
Das mit dem "Ohne Rule verlinkst Du einfach den knx number-control Channel mit dem vorhandenen Number Item" hab ich nicht verstanden, wie müsste das denn dann aussehen? Da muss ich mir glaube ich die Grundlagen nochmal genauer ansehen ...
mfg
Olaf
Re: Temperatur Datenpunkt umwandeln
Verfasst: 23. Mai 2021 14:29
von udo1toni
Ah. Du hast gar nicht erwähnt, dass der Sensor ebenfalls in knx verbaut ist...
Du musst natürlich den DPT übersetze lassen, und es ist naheliegend, das von openHAB erledigen zu lassen.
Du legst also zwei Channel an, der eine ist ein number Channel mit der GA, über die der Sensor in DPT14 abliefert. Dort musst Du vermutlich den DPT mit angeben, da knx number Channel default DPT9 verwenden, wenn ich es richtig in Erinnerung habe.
Zusätzlich legst Du einen zweiten Channel an, Typ number-control, dort trägst Du die DPT9 GA ein.
Beide Channel verlinkst Du mit demselben Number Item. Anschließend sollte bei jedem Update, welches der Sensor sendet das Display aktualisiert werden.
Gesendet von iPad mit Tapatalk
Re: Temperatur Datenpunkt umwandeln
Verfasst: 24. Mai 2021 10:28
von OlafH
Ah, jetzt hab ich es verstanden. Das gleich Item zweimal verlinken ... wusste gar nicht das das geht.
Herzlichen Dank, funktioniert jetzt wie gewünscht!
mfg
Olaf
Re: Temperatur Datenpunkt umwandeln
Verfasst: 24. Mai 2021 10:39
von udo1toni
OlafH hat geschrieben:Ah, jetzt hab ich es verstanden. Das gleich Item zweimal verlinken ... wusste gar nicht das das geht.
Herzlichen Dank, funktioniert jetzt wie gewünscht!
mfg
Olaf
Das ist eine der Kernfunktionen in openHAB

es geht ja vornehmlich darum, verschiedene Technologien miteinander zu verbinden...
Gesendet von iPad mit Tapatalk