Sollte man den Thread nicht besser in den KNX-Bereich verschieben?
DPT14 sind Float mit höherer Auflösung (4 byte). Alternativ könnte man auch DPT 9.024 nutzen, das ist ebenfalls die Leistung, im Format 2 byte Float. Je nach Zielgerät, das die Daten anzeigen soll, ist evlt. nur eines der Formate verfügbar.
Vermutlich ist dir das klar, aber nur um sicher zugehen: Auf dem KNX-Bus wird beides als Zahl ohne Einheit übertragen, also sehen dort alle DPT 14.xxx gleich aus. Das bedeutet, daß wir in IPS ein generisches DPT14 oder DPT9 senden, der Untertyp „Leistung in W“ wird nicht im KNX-Telegramm übertragen.
Richtig, die neue GA zum Senden der Leistung braucht ein neues „KNX Device“. Die Besonderheit/Merkwürdigkeit bei IPS ist, daß die zugehörige Variable zwar beim Empfang automatisch aktualisiert wird, aber zum Senden darf man nicht der Variablen einen Wert zuweisen, sondern muß eine KNX-spezifische Funktion des Gerätes aufrufen. Und diese unterscheidet sich dann je nach EIS/DPT. [li] :rolleyes:[/li]
Machen wir’s konkret:
DPT14 entspricht EIS9, also legen wir das so an.
Machen wir noch Häkchen, damit der Wert nicht nur von IPS aktiv gesendet werden kann, sondern IPS auch auf Leseanfrage vom Bus antwortet (entspricht L-Flag).
Nun erzeugen wir wie zuvor ein neues Ereignis bei Wertänderung der Strom-Variablen…
… und anstatt einer Variablenzuweisung gibt’s nun den Aufruf einer Gerätefunktion, die spezifisch ist für KNX mit DPT14/EIS9:
EIB_FloatValue — IP-Symcon :: Automatisierungssoftware
VALUE ist wieder der Wert, den wir abgeprüft hatten, also der Strom in mA.
Wenn man DPT9/EIS5 verwendet hätte, so müsste die Funktion EIB_Value anstatt EIB_FloatValue verwendet werden.
Man könnte sich das irgendwie selbst programmieren, indem man den alten Wert in eine Variable wegspeichert, vergleicht usw. Aber bestimmt gibt’s in den Tiefen von IPS dafür schon hilfreichen Code, den ich nicht kenne.
Viel Erfolg!
Volker
[*] Es mag bei anderen Gerätentypen Gründe geben, das so umständlich mit Gerätefunktionen zu lösen. Mit meinem eingeschränkten Blick auf KNX hätte ich es sinnvoller gefunden, wenn man einfach die Float-Variable beschreiben dürfte und der passende Funktionsaufruf würde über den gewählten Datentyp automatisch ermittelt und ausgeführt. Wäre interessant zu erfahren, warum es so ist wie es ist.