bin im OH3 unterwegs und bekomme ein Unterprogramm einfach nicht hin:
Aufgabe soll sein anhand der Stelligkeit von Eingaben entweder eine führende "0" im Ausgabestring vorzusetzen oder nicht.
Dafür habe ich einen kleinen Test geschrieben - der so leider nicht funktioniert.
Hier sind die Rules dazu:
Code: Alles auswählen
// Sonderrules zu Testen mit S14
// immer nur einmalige Ausführung um bestimmte Zustände herzustellen
var Number va_h = 7
var Number va_m = 30
//var String Ausgabe
// Lambda für Ausgabe richtigstellen
val Functions$Function3< Number, Number, GenericItem >
Daten_umsetzter = [
In_h,
In_m,
Status |
val Number h = ((In_h))
val Number m = ((In_m))
if (m < 10) {
var Ausg = String::format("%.0f:0%.0f", h, m)
}
else {
var Ausg = String::format("%.0f:%.0f", h, m)
}
postUpdate(Status, new StringType(Ausg))
]
rule "1 - Systemstart"
when
System started
then
MyTestSwitch.sendCommand(OFF)
end
rule "2 - Einschalten"
when
Item MyTestSwitch changed to ON
then
// Grundwerte setzten
MyTest_in_h.postUpdate(7)
MyTest_in_m.postUpdate(30)
MyTest_in_tog.postUpdate("15")
va_h =((MyTest_in_h.state as DecimalType).floatValue)
va_m =((MyTest_in_m.state as DecimalType).floatValue)
Daten_umsetzter.apply( va_h, va_m, MyTest_in_tog )
// Ausgabe = String::format("%.0f:%.0f",va_h,va_m)
logInfo("Tester", "Werte festgelegt")
// MyTest_in_tog.postUpdate(Ausgabe)
end
Er kann also die letzte Zeile nicht zuordnen obwohl ich den String mitgegeben habe.[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'S14_testrules-2' failed: The name 'Ausg' cannot be resolved to an item or type; line 21, column 43, length 4 in S14_testrules
Anmerkung meinerseits die Definition mit
ist falsch, es müssteFunction3
heißen - aber dann wird über die Anzahl der Argumente gemeckert.Function2
Weiß jemand wie die Anweisung richtig heißt? Danke für eure Mühe