Hallo
Ich möchte eine Group Items mit Rules durchlaufen den Status des Items auslesen, mit 10 Multiplizieren
und den Wert an ein anderes Item mit "postUpdate" übergeben .
Items:
Rules:
Das durchlaufen der Group knx_modbus geht, wenn ich in der forEach Schleife
"postUpdate(element, 20.0 + (25.0 - (Math::random * 50.0).intValue) / 10.0)"
einfüge bekommen auch alle Group knx_modbus Items einen anderen Wert zugewiesen.
Ich möchte aber mit postUpdate die Items der Group modbus_knx den Wert übergeben.
Ich probiere es schon ein paar Tage und komme nicht weiter.
Google ist auch schon heiß gelaufen.
Was muss ich in Rules ändern?
Gruß NetFritz
Ich möchte eine Group Items mit Rules durchlaufen den Status des Items auslesen, mit 10 Multiplizieren
und den Wert an ein anderes Item mit "postUpdate" übergeben .
Items:
Code:
// Items fuer KNX to Modbus // KNX Group:Number knx_modbus "Temperature [%.1f °C]" <temperature> (Status) Number Solarspeicher_oben "Temperature [%.1f °C]" <temperature> (knx_modbus) {knx="0/0/15"} Number Solarspeicher_mitte "Temperature [%.1f °C]" <temperature> (knx_modbus) {knx="0/0/16"} Number Solarspeicher_unten "Temperature [%.1f °C]" <temperature> (knx_modbus) {knx="0/0/17"} // Modbus Group:Number modbus_knx "Temperature [%.1f °C]" <temperature> (Status) Number modbus_Solarspeicher_oben "Temperature [%.1f °C]" <temperature> (modbus_knx) { modbus="slave6:0" , autoupdate="false"} Number modbus_Solarspeicher_mitte "Temperature [%.1f °C]" <temperature> (modbus_knx) { modbus="slave6:1" , autoupdate="false"} Number modbus_Solarspeicher_unten "Temperature [%.1f °C]" <temperature> (modbus_knx) { modbus="slave6:2" , autoupdate="false"}
Code:
import org.openhab.core.library.types.* import org.openhab.core.persistence.* import org.openhab.model.script.actions.* rule "knx_to_modbus" when System started or Time cron "0/1 * * * * ?" then knx_modbus?.members.forEach(element,index| // Item auslesen und mit mit 10 Multiplizieren // var value = (element.state as DecimalType).intValue *10) // value in ein anderes Item einfügen // postUpdate("modbus" + element,value) ) end
"postUpdate(element, 20.0 + (25.0 - (Math::random * 50.0).intValue) / 10.0)"
einfüge bekommen auch alle Group knx_modbus Items einen anderen Wert zugewiesen.
Ich möchte aber mit postUpdate die Items der Group modbus_knx den Wert übergeben.
Ich probiere es schon ein paar Tage und komme nicht weiter.
Google ist auch schon heiß gelaufen.
Was muss ich in Rules ändern?
Gruß NetFritz
Kommentar