Hello Community,
i have a problem with my configuration.
I want to control the temperature in my living room using openhab and knx.
The config runs since several years and works as aspected.
After the upgrade from openhab 3.x to 4.x the communication between openhab and the RTR doesn´t work anymore.
Here´s my configuration for the input of the room-temperature:
The Item:
label: Eingabe Solltemperatur
type: Number
category: heating
groupNames:
- Heizung_Wohnzimmer
tags:
- Point
The Channel:
- id: Temperature_Setpoint
channelTypeUID: knx:number
label: Eingabe Solltemperatur
description: “”
configuration:
ga: 7/2/1+<7/2/2
Can someone give me a hint why this config doesn´t work?
Greets
Jan
This is one of my Gira TS2plus Things:
Thing device GiraTSplus1_1_140 "TS2plus Technik" @ "KNX" [
address="1.1.140",
fetch=false,
pingInterval=600,
readInterval=0
] {
Type number : tempIs "Temperatur ist" [ ga="<5/7/23" ]
Type number : tempSet "Temperatur soll" [ ga="9.001:5/7/26+<5/7/50" ]
Type number : opMode "Betriebsart ist" [ ga="5.005:<5/7/36" ]
Type number : opSet "Betriebsart soll" [ ga="5.005:5/7/28" ]
}
These are the Items:
Number NEGTechnik_OpMode "Betriebsart ist" <heating> (gHeat_Mode) ["Status"] {channel="knx:device:bridge:GiraTSplus1_1_140:opMode"}
Number NEGTechnik_OpSet "Betriebsart soll" <heating> (gHeat_Set) ["Control"] {channel="knx:device:bridge:GiraTSplus1_1_140:opSet"}
Number:Temperature NEGTechnik_TempIs "Technik ist" <temperature> (gHeat_Is) ["Temperature"] {channel="knx:device:bridge:GiraTSplus1_1_140:tempIs", unit="℃", stateDescription=""[pattern="%.1f ℃"] }
Number:Temperature NEGTechnik_TempSet "Technik soll" <temperature> (gHeat_Soll) ["Temperature"] {channel="knx:device:bridge:GiraTSplus1_1_140:tempSet", unit="℃", stateDescription=""[pattern="%.1f ℃"] }
The rule to set the OpMode item correct when system is started or OpMode is changed in knx:
rule "Betriebsart RTR"
when
Member of gHeat_Mode changed
then
var Integer newMode = 2
val mode = (triggeringItem.state as DecimalType).toBigDecimal.toBigInteger
val iName = triggeringItem.name.split("_").get(0).toString
logDebug("rtr","Name is: {}, Mode is: {}",iName,mode)
switch(mode) {
case mode.testBit(0) : newMode = 1
case mode.testBit(2) : newMode = 3
case mode.testBit(3) : newMode = 4
}
var myItem = gHeat_Set.members.filter[ f | f.name.startsWith(iName) ].head
var Integer oldMode = 0
if(myItem.state instanceof Number) oldMode = (myItem.state as Number).intValue
if(oldMode != newMode) {
logDebug("rtr","Name is: {}, oldMode is: {}, newMode is: {}",myItem.name,oldMode,newMode)
myItem.postUpdate(newMode)
}
end