Ich möchte einfach Werte von OpenHab auf KNX-GAs schreiben. Das funktioniert an anderer Stelle bereits mit Temp-Werten (OpenHab bildet einen Mittelwert).
Ich habe Folgendes gemacht. Dazu noch die Info: Ich habe unter Things einen "Allgemein" - Bereich, der für virtuelle Objekte steht die nichts mit einem tatsächlichen KNX-Gerät zu tun haben.
Number i_Jalousien_Hoehe_Test { channel="knx:device:bridge:Allgemein:t_Jalousien_Hoehe_Test" }
Das Item hat stets den aktuellen Wert. Auf der GA landen aber keine Daten. Eine Abfrage via ETS liefert keinen Wert zurück.
An anderer Stelle funktioniert es genau so bereits - dann allerdings mit GAs zu welchen auch "echte" Geräte verknüpft sind. Hier handelt es sich um eine leere GA
Doch, das sollte schon funktionieren. Setzt Du den Wert auch mit postUpdate()? number-control sendet Status, aber keine Befehle.
Ich bin mit nicht sicher, ob 5.001 als DPT für einen Number Channel funktioniert. Im Zweifel (wenn Du auf dem Bus 5.001 haben willst) nimm lieber einen Dimmer-Control Channel, der kann definitiv 5.001 im position-Parameter.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte
rule "r_1OG_Wohnzimmer_Beschattung_Hoehe"
when
Item gJalousienABC_Hoehe changed
then
i_Jalousien_Hoehe_Test_1.postUpdate(gJalousienABC_Hoehe.state)
i_Jalousien_Hoehe_Test_2.postUpdate(gJalousienABC_Hoehe.state as DecimalType)
end
Dazu hab ich eben mal bei den Things auch number-control ohne DPT-Typ versucht und auch dimmer-control ... da kommt auch nix auf dem Bus an
Nicht irritieren lassen, ich hab den eigentlichen Code in meinem Post oben abgeändert - es gibt jeweils 2 Items und 2 Things zum Test ... wie man hier sieht
Du könntest es mal mit einem normalen Number channel probieren und dann sendCommand verwenden. grundsätzlich sollte es aber gerade bei Number keine Rolle spielen.
weiterhin könntest Du statt as DecimalType einfach .toString verwenden: