Das Problem ist hier vermutlich, dass Du Number:Temperature als Itemtyp verwendest, aber keine Einheit mit angibst.
Das eine wäre (einfach um sicherzustellen, dass es wie geplant funktioniert), ein bisschen Logging einzubauen, das andere wäre, die Einheit zu ergänzen. So:
rule "Komma zu Punkt"
when
Member of gIN changed
then
logInfo("kommapunkt","Triggerndes Item: {}",triggeringItem.name)
val myOut = gOUT.members.filter[i|i.name == triggeringItem.name.split("_").get(1)+"_OUT"].head
logInfo("kommapunkt","Item Out: {}",myOut.name)
myOut.postUpdate(Float::parseFloat(String::format("%s",triggeringItem.state).replace(',','.'))|°C)
end
Natürlich funktioniert das dann nur mit Number:Temperature Items als Output.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
rule "Istwert HK1"
when
Item HTTPLWZAnlage_IstwertHK1 changed
then
LWZ_Istwert_HK1.postUpdate(Float::parseFloat(String::format("%s",HTTPLWZAnlage_IstwertHK1.state).replace(',','.')))
end
Da hat es funktioniert.
Ich habe für die neue all-in-one-rule den Itemtyp für _OUT trotzdem jetzt auf Number geändert. Da die Items Temperaturen, Druck, Volumenstrom und Dimensionless sind, klappt es sonst nicht mit der Einheit. Leider funktioniert es trotzdem noch nicht. Logging ist auch eingebaut und es kommt folgende Meldung:
beides gerade nochmal per copy&paste aus der UI gezogen. Das _IN Item wird im log als triggerndes Item auch mit dem korrekten Namen ausgegeben: LWZAnlageIstwertHK1_IN
The value of the local variable myOut is not used(org.eclipse.xtext.xbase.validation.IssueCodes.unused_local_variable)
Type mismatch: type void is not applicable at this location(org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types)
myOut ist gelb unterstrichen, alles danach bis zum ] ist rot unterstrichen
Genau, das ist der Punkt...
Die erste Meldung stammt von der Val Definition... Die Schleife wurde dennoch durchlaufen, das ist ja gut. Wir probieren weiter...
rule "Komma zu Punkt"
when
Member of gIN changed
then
logInfo("kommapunkt","Triggerndes Item: {}",triggeringItem.name)
logInfo("kommapunkt","Teilstring: {}",triggeringItem.name.split("_").get(1))
// val myOut = gOUT.members.filter[i|i.name.startsWith(triggeringItem.name.split("_").get(1))].head
// logInfo("kommapunkt","Item Out: {}",myOut.name)
// myOut.postUpdate(Float::parseFloat(String::format("%s",triggeringItem.state).replace(',','.'))|°C)
end
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet