[SOLVED] Homematic QuantityType in M6 build problem

Is the error caused by rule coding or does it also accur when you simply change a item’s value? If it is caused by a rule please post the relevant code from you rule.

The quantity type was introduced in M6. Maybe it was not completly tested. If it happens if you simply set a item’s value via a front-end I would suggest to create an isue in the Smarthome github. repo.

one of the rules: (others are similar)
Code was ok and running before updating to 2.4 M6

var Timer startedTimer = null // Timer 
val String filename = "heizung-modus.rules"

// Deklaration für den Timer
var Timer myTimer = null

// vordefinierte Temperaturen
val Number tempHigher = 23.0
val Number tempComfort = 21.0
val Number tempMid = 19.0
val Number tempLower = 17.0
val Number tempChill = 18.0
val Number tempAway = 18.0
val Number tempAwayLonger = 15.0
val Number tempOff = 4.5

// Heizmodi für die ganze Wohnung:
//  0 = Automatik: Betriebsmodus wie in der CCU2 hinterlegt für die normale Arbeitswoche
//  1 = Arbeit: Konstante Beheizung mit Zeitprogramm
//	2 = Keiner zuhause
//  3 = Urlaub / jemand zuhause
//	4 = Aus (Sommerbetrieb)

rule "System started"
when
	System started
then
	createTimer(now.plusSeconds(180)) [ |
		logInfo(filename, "Whg Heizung gestartet")
		if (Whg_Heating_Mode.state == NULL) Whg_Heating_Mode.postUpdate("1")
		gHeatPreset.members.filter[item | item.state == NULL].forEach[item | item.postUpdate(tempMid) ]
	]
end

// Die folgende Regel arbeit mit der Regel "System Started" aus systems.rules zusammen, dort wird der Timer gesetzt
rule "Setzen des Heiz Modus" // Läuft erst nach Beendigung der Init. der Heizungsstellglieder und basiert auf der Außen- Temp.
when
   Item SystemStarting received command OFF
then
  	if (Season_Name.state.toString.contains ("SUMMER")) { //Sommerbetrieb und 
  		if (Temperature.state > 12) {// Aupentemp. größer 12 Grad 
  		Whg_Heating_Mode.postUpdate("4") // --> Heizung aus
  		} 
  		}
  	else if //Wenn Frühling oder Herbst und wärmer als 12 Grad
  	(Season_Name.state.toString.contains ("SPRING")|| Season_Name.state.toString.contains ("AUTUMN") && Temperature.state > 15)
  	Whg_Heating_Mode.postUpdate("4") //Sommerbetrieb, Heizung aus
  	
  	else Whg_Heating_Mode.postUpdate("1") // --> Heizung an
end



rule "Heizmodus umschalten und Stellglieder setzen"
when
	Item Whg_Heating_Mode received update or
	Item Whg_Heating_UpdateHeater received command ON
then
	Whg_Heating_UpdateHeater.postUpdate(OFF)
	switch Whg_Heating_Mode.state {
		case "0" : {
			logInfo(filename, "Wohnung Heizmodus: Automatik")
			WZ1_Heizung_Mode.sendCommand (0)
			WZ2_Heizung_Mode.sendCommand (0)
			KU1_Heizung_Mode.sendCommand (0)
			KU2_Heizung_Mode.sendCommand (0)
			SZ_Heizung_Mode.sendCommand (0)
			BD_Heizung_Mode.sendCommand (0)
			EZ_Heizung_Mode.sendCommand (0)
			BR_Heizung_Mode.sendCommand (0)
			Thread::sleep(30000)
			WZ1_Heizung_SetTemp.sendCommand(tempComfort)
			WZ2_Heizung_SetTemp.sendCommand(tempComfort)
			KU1_Heizung_SetTemp.sendCommand(tempComfort)
			KU2_Heizung_SetTemp.sendCommand(tempComfort)
			SZ_Heizung_SetTemp.sendCommand(tempComfort)
			BD_Heizung_SetTemp.sendCommand(tempComfort)
			EZ_Heizung_SetTemp.sendCommand(tempComfort)
			BR_Heizung_SetTemp.sendCommand(tempComfort)
		}
		case "1" : {
			logInfo(filename, "Wohnung Heizmodus: Arbeit")
			WZ1_Heizung_Mode.sendCommand (1)
			WZ2_Heizung_Mode.sendCommand (1)
			KU1_Heizung_Mode.sendCommand (1)
			KU2_Heizung_Mode.sendCommand (1)
			SZ_Heizung_Mode.sendCommand (1)
			BD_Heizung_Mode.sendCommand (1)
			EZ_Heizung_Mode.sendCommand (1)
			BR_Heizung_Mode.sendCommand (1)
			Thread::sleep(30000)
			WZ1_Heizung_SetTemp.sendCommand(WZ1_Heizung_PresetTemp.state as Number)
			WZ2_Heizung_SetTemp.sendCommand(WZ2_Heizung_PresetTemp.state as Number)
			KU1_Heizung_SetTemp.sendCommand(KU1_Heizung_PresetTemp.state as Number)
			KU2_Heizung_SetTemp.sendCommand(KU2_Heizung_PresetTemp.state as Number)
			SZ_Heizung_SetTemp.sendCommand(SZ_Heizung_PresetTemp.state as Number)
			BD_Heizung_SetTemp.sendCommand(BD_Heizung_PresetTemp.state as Number)
			EZ_Heizung_SetTemp.sendCommand(EZ_Heizung_PresetTemp.state as Number)
			BR_Heizung_SetTemp.sendCommand(BR_Heizung_PresetTemp.state as Number)
		}
		case "2" : {
			logInfo(filename, "Wohnung Heizmodus: keiner Zuhause")
			WZ1_Heizung_Mode.sendCommand (1)
			WZ2_Heizung_Mode.sendCommand (1)
			KU1_Heizung_Mode.sendCommand (1)
			KU2_Heizung_Mode.sendCommand (1)
			SZ_Heizung_Mode.sendCommand (1)
			BD_Heizung_Mode.sendCommand (1)
			EZ_Heizung_Mode.sendCommand (1)
			BR_Heizung_Mode.sendCommand (1)
			Thread::sleep(30000)
			WZ1_Heizung_SetTemp.sendCommand(tempAway)
			WZ2_Heizung_SetTemp.sendCommand(tempAway)
			KU1_Heizung_SetTemp.sendCommand(tempAway)
			KU2_Heizung_SetTemp.sendCommand(tempAway)
			SZ_Heizung_SetTemp.sendCommand(tempAway)
			BD_Heizung_SetTemp.sendCommand(tempAway)
			EZ_Heizung_SetTemp.sendCommand(tempAway)
			BR_Heizung_SetTemp.sendCommand(tempAway)
		}
		case "3" : {
			logInfo(filename, "Wohnung Heizmodus: Urlaub (Zuhause)")
			WZ1_Heizung_Mode.sendCommand (1)
			WZ2_Heizung_Mode.sendCommand (1)
			KU1_Heizung_Mode.sendCommand (1)
			KU2_Heizung_Mode.sendCommand (1)
			SZ_Heizung_Mode.sendCommand (1)
			BD_Heizung_Mode.sendCommand (1)
			EZ_Heizung_Mode.sendCommand (1)
			BR_Heizung_Mode.sendCommand (1)
			Thread::sleep(30000)
			WZ1_Heizung_SetTemp.sendCommand(tempComfort)
			WZ2_Heizung_SetTemp.sendCommand(tempComfort)
			KU1_Heizung_SetTemp.sendCommand(tempComfort)
			KU2_Heizung_SetTemp.sendCommand(tempComfort)
			SZ_Heizung_SetTemp.sendCommand(tempComfort)
			BD_Heizung_SetTemp.sendCommand(tempComfort)
			EZ_Heizung_SetTemp.sendCommand(tempComfort)
			BR_Heizung_SetTemp.sendCommand(tempComfort)
		}
		case "4" : {
			logInfo(filename, "Wohnung Heizmodus: Aus (Sommer)")
			WZ1_Heizung_Mode.sendCommand (3)
			WZ2_Heizung_Mode.sendCommand (3)
			KU1_Heizung_Mode.sendCommand (3)
			KU2_Heizung_Mode.sendCommand (3)
			SZ_Heizung_Mode.sendCommand (3)
			BD_Heizung_Mode.sendCommand (3)
			EZ_Heizung_Mode.sendCommand (3)
			BR_Heizung_Mode.sendCommand (3)
			Thread::sleep(30000)
			WZ1_Heizung_SetTemp.sendCommand(tempOff)
			WZ2_Heizung_SetTemp.sendCommand(tempOff)
			KU1_Heizung_SetTemp.sendCommand(tempOff)
			KU2_Heizung_SetTemp.sendCommand(tempOff)
			SZ_Heizung_SetTemp.sendCommand(tempOff)
			BD_Heizung_SetTemp.sendCommand(tempOff)
			EZ_Heizung_SetTemp.sendCommand(tempOff)
			BR_Heizung_SetTemp.sendCommand(tempOff)
		}
		//case "CALENDAR" : { logInfo(filename, "Wohnung Heizmodus: CALENDAR (nicht implementiert)") }
		//case "AUTO_DEVICE" : { logInfo(filename, "Wohnung Heizmodus: AUTO_DEVICE (nicht implementiert)") }
		//case "MANU_DEVICE" : { logInfo(filename, "Wohnung Heizmodus: MANU_DEVICE (nicht implementiert)") }
		default            : { logError(filename, "Wohnung Heizmodus ungültig: " + Whg_Heating_Mode.state) }
	}
end

// Nachfolgend generelles Zeitprogramm: Änderungen nur wenn unbedingt notwendig 

rule "05:00 Uhr wochentags (Alle Heizungen)"
when
	Time cron "0 0 5 ? * MON-FRI *"
then
	if (Whg_Heating_Mode.state == "1") {
	//logInfo(filename, "Wohnung Heizmodus: Zeitprogramm: " + now.toString)
	WZ1_Heizung_PresetTemp.postUpdate(18.0)
	WZ2_Heizung_PresetTemp.postUpdate(18.0)
	KU1_Heizung_PresetTemp.postUpdate(21.0)
	KU2_Heizung_PresetTemp.postUpdate(21.0)
	SZ_Heizung_PresetTemp.postUpdate(18.0)
	BD_Heizung_PresetTemp.postUpdate(22.0)
	EZ_Heizung_PresetTemp.postUpdate(22.0)
	BR_Heizung_PresetTemp.postUpdate(19.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	//logInfo(filename, "Einschalten Heizung")
	}
end

rule "07:30 Uhr wochentags (Alle Heizungen)"
when
	Time cron "0 30 7 ? * MON-FRI *"
then
	if (gPresent.state == OFF) {
	logInfo(filename, "keiner daheim Heizung Standby " + now.toString)
	WZ1_Heizung_PresetTemp.postUpdate(19.0)
	WZ2_Heizung_PresetTemp.postUpdate(19.0)
	KU1_Heizung_PresetTemp.postUpdate(20.0)
	KU2_Heizung_PresetTemp.postUpdate(20.0)
	SZ_Heizung_PresetTemp.postUpdate(19.0)
	BD_Heizung_PresetTemp.postUpdate(20.0)
	EZ_Heizung_PresetTemp.postUpdate(20.0)
	BR_Heizung_PresetTemp.postUpdate(19.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	}
	else if (gPresent.state == ON) {
	logInfo(filename, "jemand daheim Heizung hochfahren " + now.toString)
	WZ1_Heizung_PresetTemp.postUpdate(21.0)
	WZ2_Heizung_PresetTemp.postUpdate(21.0)
	KU1_Heizung_PresetTemp.postUpdate(21.0)
	KU2_Heizung_PresetTemp.postUpdate(21.0)
	SZ_Heizung_PresetTemp.postUpdate(20.0)
	BD_Heizung_PresetTemp.postUpdate(22.0)
	EZ_Heizung_PresetTemp.postUpdate(21.5)
	BR_Heizung_PresetTemp.postUpdate(20.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	}
end

rule "10:00 Uhr"
when
	Time cron "0 0 10 ? * * *"
then
	if(gPresent.state == ON) {
	//logInfo(filename, "Wohnung Heizmodus: Zeitprogramm: " + now.toString)
	WZ1_Heizung_PresetTemp.postUpdate(21.0)
	WZ2_Heizung_PresetTemp.postUpdate(21.0)
	KU1_Heizung_PresetTemp.postUpdate(21.0)
	KU2_Heizung_PresetTemp.postUpdate(21.0)
	SZ_Heizung_PresetTemp.postUpdate(18.0)
	BD_Heizung_PresetTemp.postUpdate(21.0)
	EZ_Heizung_PresetTemp.postUpdate(21.0)
	BR_Heizung_PresetTemp.postUpdate(20.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	logInfo(filename, "Update Heizung Temperaturen")
	}
end

rule "15:10 Uhr"
when
	Time cron "0 10 15 ? * * *"
then
	if (Whg_Heating_Mode.state == "1") {
	WZ1_Heizung_PresetTemp.postUpdate(21.5)
	WZ2_Heizung_PresetTemp.postUpdate(21.5)
	KU1_Heizung_PresetTemp.postUpdate(21.0)
	KU2_Heizung_PresetTemp.postUpdate(21.0)
	SZ_Heizung_PresetTemp.postUpdate(20.0)
	BD_Heizung_PresetTemp.postUpdate(20.0)
	EZ_Heizung_PresetTemp.postUpdate(21.0)
	BR_Heizung_PresetTemp.postUpdate(20.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	//logInfo(filename, "Einschalten Heizung 15:10")
	}
end

rule "21:15 Uhr (Mo - Do, Son)"
when
	Time cron "0 15 21 ? * MON-THU,SUN *"
then
	if (Whg_Heating_Mode.state == "1") {
	WZ1_Heizung_PresetTemp.postUpdate(18.0)
	WZ2_Heizung_PresetTemp.postUpdate(18.0)
	KU1_Heizung_PresetTemp.postUpdate(19.0)
	KU2_Heizung_PresetTemp.postUpdate(19.0)
	SZ_Heizung_PresetTemp.postUpdate(18.0)
	BD_Heizung_PresetTemp.postUpdate(19.0)
	EZ_Heizung_PresetTemp.postUpdate(19.0)
	BR_Heizung_PresetTemp.postUpdate(18.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	}
end

// Wochenende

rule "6:30 Uhr (Wochenende)"
when
	Time cron "0 30 6 ? * SAT-SUN *"
then
	if (Whg_Heating_Mode.state == "1") {
	KU1_Heizung_PresetTemp.postUpdate(21.0)
	KU2_Heizung_PresetTemp.postUpdate(21.0)
	BD_Heizung_PresetTemp.postUpdate(22.0)
	EZ_Heizung_PresetTemp.postUpdate(22.0)
	BR_Heizung_PresetTemp.postUpdate(20.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	}
end

rule "8:30 Uhr (Wochenende)"
when
	Time cron "0 30 8 ? * SAT-SUN *"
then
	if (Whg_Heating_Mode.state == "1") {
	WZ1_Heizung_PresetTemp.postUpdate(21.0)
	WZ2_Heizung_PresetTemp.postUpdate(21.0)
	SZ_Heizung_PresetTemp.postUpdate(20.0)
	KU1_Heizung_PresetTemp.postUpdate(21.0)
	KU2_Heizung_PresetTemp.postUpdate(21.0)
	BD_Heizung_PresetTemp.postUpdate(21.0)
	EZ_Heizung_PresetTemp.postUpdate(21.0)
	BR_Heizung_PresetTemp.postUpdate(20.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	}
end

rule "22:00 Uhr (Fr - Sa)"
when
	Time cron "0 0 22 ? * FRI-SAT *"
then
	if (Whg_Heating_Mode.state == "1") {
	WZ1_Heizung_PresetTemp.postUpdate(18.0)
	WZ2_Heizung_PresetTemp.postUpdate(18.0)
	KU1_Heizung_PresetTemp.postUpdate(19.0)
	KU2_Heizung_PresetTemp.postUpdate(19.0)
	SZ_Heizung_PresetTemp.postUpdate(18.0)
	BD_Heizung_PresetTemp.postUpdate(19.0)
	EZ_Heizung_PresetTemp.postUpdate(19.0)
	BR_Heizung_PresetTemp.postUpdate(18.0)
	Whg_Heating_UpdateHeater.sendCommand(ON)
	}
end

Items:

Number SZ_Heizung_SetTemp           "SZ_Heizung Soll-Temperatur [%.1f %unit%]"                      <temperature>   (gSZHeat,gHeatSet)       { channel="homematic:HMIP-eTRV:574299e0:000393C98D23AB:1#SET_POINT_TEMPERATURE" }

Hi Martin,

in my case, the error occurs by changing an item manually that has a homematic binding connection.
Rule is not working as well.

Sebastian

I am currently using an older version of openHAB so I do not have any practical experience with units. But AFAIK you have to to add the unit within rules, see: https://www.openhab.org/docs/configuration/rules-dsl.html#number-item

Hi Sebastian,

if you have defined your items in Paper UI you could try to delete and recreate the item. Sometimes this helps (and is necessary) if an internal item definition was changed.

If the problem occurs if you change a value directly in PaperUI resp. Basic UI then I would assume that there is an error in the binding and I would recommend to create an issue.

Martin

Martin

Wow!!! Use a timer. See:

This is where your problem may lay:

		WZ1_Heizung_SetTemp.sendCommand((WZ1_Heizung_PresetTemp.state as QuantityType<Number>).doubleValue)

If WZ1_Heizung_SetTemp is a Number:Temperature then you need to convert it to a DecimalType
Converting it to a Number Type will not change anything as a QuantityType is a child of Number TYpe

The issue is probably related to the ESH #6512 and #6544 Homematic PRs.

There was actually also a fix in ESH (#6513) for improving backwards compatibility when dimensions get added to channels. It should not be necessary to remove/add Things when UoM is introduced in a binding.

Hi Martin,

sorry, this topic is still some days ago…
But I never created the items with PaperUI. I use Item files to create these.

Sebastian

Can you post your items and the rule that’s failing, please

HI,
actually I downgraded my openHAB system. So it is working again. But this item for example did the problem with M6. Also without working a rule, it was not possible to assign manually a new SV to Homematic device.

Number Wohnzimmer_FBH_SV "Soll Temperatur" <temperature> (gT_SV) {channel="homematic:HM-TC-IT-WM-W-EU:e7adadb7:MEQ1574558:2#SET_TEMPERATURE"}

You will need to change the item to:

Number:Temperature Wohnzimmer_FBH_SV "Soll Temperatur" <temperature> (gT_SV) {channel="homematic:HM-TC-IT-WM-W-EU:e7adadb7:MEQ1574558:2#SET_TEMPERATURE"}

Once that’s done then we can have a look at the rules

1 Like

This is what I tried after reading the documentation.
But also didn´t work to me. Same error message.

Regarding the error created by the rule: Actually I faven´t this error anymore, due to my downgrade to M5. I cannot remeber in detail. Sorry for that.

Well, you are going to have to bite the bullet and upgrade again and work your way through the errors.
It’s likely to be the same error everywhere. So once we solved one, you’ll be able to do the rest.
BUT
Change you homematic items to add the unit, just as above

Then in the rules, whenever you are working with an item state do this:

(item.state as QuantityType<Number>).doubleValue

To convert the UoM value to a plain number

Also get rid of your Thread::sleep for 30s. BAD IDEA
Use a timer instead:

	        case "4" : {
			logInfo(filename, "Wohnung Heizmodus: Aus (Sommer)")
			WZ1_Heizung_Mode.sendCommand (3)
			WZ2_Heizung_Mode.sendCommand (3)
			KU1_Heizung_Mode.sendCommand (3)
			KU2_Heizung_Mode.sendCommand (3)
			SZ_Heizung_Mode.sendCommand (3)
			BD_Heizung_Mode.sendCommand (3)
			EZ_Heizung_Mode.sendCommand (3)
			BR_Heizung_Mode.sendCommand (3)
			createTimer(now.plusSeconds(30), [ |
			    WZ1_Heizung_SetTemp.sendCommand(tempOff)
			    WZ2_Heizung_SetTemp.sendCommand(tempOff)
			    KU1_Heizung_SetTemp.sendCommand(tempOff)
			    KU2_Heizung_SetTemp.sendCommand(tempOff)
			    SZ_Heizung_SetTemp.sendCommand(tempOff)
			    BD_Heizung_SetTemp.sendCommand(tempOff)
			    EZ_Heizung_SetTemp.sendCommand(tempOff)
			    BR_Heizung_SetTemp.sendCommand(tempOff)
                        ])
		}

1 Like

Yes, you are right. I need some time to do the upgrade and the investigation. Maybe end of this week.

The Thread::sleep came from another user, I know about these behaviours and try to use timers if necessairy.
Thanks for your support.

Sebastian

I was asking Wouter, how to downgrade the homematic binding back to M5.
For those who want to keep M6 within the older rules: follow the instructions below.

Yes you could try the M5 version again by:

  1. Uninstalling the Homematic binding via Paper UI
  2. Download the org.eclipse.smarthome.binding.homematic-0.10.0.oh240M5.jar
  3. Add the JAR to the /addons directory

Another way is to use that download URL for updating the bundle to the M5 version using the Console.
This is what it looks like when reverting a SNAPSHOT version of the binding to the M5 version again:

openhab> bundle:list|grep Homematic
209 │ Active   │  80 │ 0.10.0.201811171951    │ Eclipse SmartHome Homematic Binding
openhab> bundle:update 209 https://openhab.jfrog.io/openhab/libs-milestone-local/org/eclipse/smarthome/binding/org.eclipse.smarthome.binding.homematic/0.10.0.oh240M5/org.eclipse.smarthome.binding.homematic-0.10.0.oh240M5.jar
openhab> bundle:list|grep Homematic
209 │ Active   │  80 │ 0.10.0.oh240M5         │ Eclipse SmartHome Homematic Binding
2 Likes

In the mean time there have been some fixes for the binding, e.g. https://github.com/eclipse/smarthome/pull/6565 , but I am not sure whether they will solve this problem. But you can try install the latest version of the Homematic binding manually.

M7 still has the described problem. I did some further testing, here are the results:

M7, M6, M5 fail with the following setup:
Item definition:

Number:Temperature HM_Wohnzimmer_RTherm_SetTemp "Set Temperature"    (gTemperatureSet)  {channel="homematic:HM-CC-RT-DN:ccu:OEQ2084718:4#SET_TEMPERATURE"}

Rule:

rule "TestSwitch"
when
    Item TestSwitch changed to ON
then
    TestSwitch.sendCommand(OFF)
    var test = 20.5|°C
    logInfo("Test", "set " + test.toString + " " + test.class.toString)
    logInfo("Test", "get " + HM_Wohnzimmer_RTherm_SetTemp.state.toString + " " + HM_Wohnzimmer_RTherm_SetTemp.state.class.toString)
    HM_Wohnzimmer_RTherm_SetTemp.sendCommand(test);
end

Log output:

2018-12-01 21:08:53.026 [INFO ] [.eclipse.smarthome.model.script.Test] - set 20.5 °C class org.eclipse.smarthome.core.library.types.QuantityType
2018-12-01 21:08:53.035 [INFO ] [.eclipse.smarthome.model.script.Test] - get 20.5 °C class org.eclipse.smarthome.core.library.types.QuantityType
2018-12-01 21:08:53.055 [WARN ] [ematic.handler.HomematicThingHandler] - Can't convert type QuantityType with value '20.5 °C' to FLOAT value with DecimalTypeConverter for 'OEQ2084718:4#SET_TEMPERATURE', please check the item type and the commands in your scripts

M5 works with the following setup:
Item definition:

Number HM_Wohnzimmer_RTherm_SetTemp "Set Temperature"    (gTemperatureSet)  {channel="homematic:HM-CC-RT-DN:ccu:OEQ2084718:4#SET_TEMPERATURE"}

Rule:

rule "TestSwitch"
when
    Item TestSwitch changed to ON
then
    TestSwitch.sendCommand(OFF)
    var test = 20.5
    logInfo("Test", "set " + test.toString + " " + test.class.toString)
    logInfo("Test", "get " + HM_Wohnzimmer_RTherm_SetTemp.state.toString + " " + HM_Wohnzimmer_RTherm_SetTemp.state.class.toString)
    HM_Wohnzimmer_RTherm_SetTemp.sendCommand(test);
end

Log output (no error):

2018-12-01 21:13:11.626 [INFO ] [.eclipse.smarthome.model.script.Test] - set 20.5 class java.lang.Double
2018-12-01 21:13:11.641 [INFO ] [.eclipse.smarthome.model.script.Test] - get 21.5 class org.eclipse.smarthome.core.library.types.DecimalType

I installed the homematic binding included in the M5 build of Openhab into an M7 Openhab installation as mentioned by @alkaline above. So the issue is definitely in the binding and not in other components of Openhab. If I should test anything else, just let me know.

Link to the homematic binding included in the M5 build: https://openhab.jfrog.io/openhab/libs-milestone-local/org/eclipse/smarthome/binding/org.eclipse.smarthome.binding.homematic/0.10.0.oh240M5/org.eclipse.smarthome.binding.homematic-0.10.0.oh240M5.jar

just a note: Since M5, there have been several PRs on the [homematic] binding, so maybe one of them broke this HomematicThingHandler for your case. You can check which recent ones were included in the M7 here.

I didn’t find a similar Issue open on https://github.com/eclipse/smarthome/issues?q=homematic

Maybe this is worth posting an Issue there. You have all the info for a developer to reproduce this.

Jep, I will post an issue in the ESH repo. Just wanted to give an update here. Maybe you could keep in mind that this is currently broken and should be fixed before Openhab 2.4 is released (or just ship the binding version included in the M5 build for a release build).

1 Like

I don’t think that this is possible :slight_smile:

There have been many bug fixes implemented since M5 in the binding. They need to check your situation and fix it.

I am not 100% sure that your rule is correct… I will try to check some stuff and post more info.
Meanwhile, plz go ahead and post your configs on the ESH github issue.