Nach meinem Umstieg von OH2.5 auf OH3 will die rule zur Pinabfrage nicht mehr.
Visual Studio Code meldet:
„the method reverse() is undefined for the type string“
secure_sequenz.postUpdate(secure_sequenz.state.toString().reverse().substring(0,sequenzlaenge -1).reverse() + secure_pin_eingabe)
Code: Alles auswählen
//String secure_pin // Eingabeitem
//String secure_sequenz // Eingegebene Pinfolge"
//Switch secure_ok // EIN wenn pin richtig
//Selection item= secure_pin mappings=[ '1'='1', '2'='2', '3'='3']
//Selection item= secure_pin mappings=[ '4'='4', '5'='5', '6'='6']
//Selection item= secure_pin mappings=[ '7'='7', '8'='8', '9'='9']
//Selection item= secure_pin mappings=[ '*'='*', '0'='0', '#'='#']
//Text item=secure_pin label="secure_pin [%s]"
//Text item=secure_sequenz label="secure_sequenz [%s]"
//Switch secure_ok
val Integer sequenzlaenge = 5
val String geheimePin = '1234#'
rule "Codeeingabe zu String"
when
Item secure_pin changed
then
var String secure_pin_eingabe = secure_pin.state.toString()
secure_sequenz.postUpdate(secure_sequenz.state.toString().reverse().substring(0,sequenzlaenge -1).reverse() + secure_pin_eingabe)
end
rule "Sequenz Tastenkombi prüfen"
when
Item secure_sequenz changed
then
if (secure_sequenz.state.toString() == geheimePin) {
secure_ok.sendCommand(ON) // freigabeitem
Thread::sleep(500)
secure_sequenz.postUpdate('XXXX') // Code löschen aus String-Speicher
}
else {secure_ok.sendCommand(OFF)}
end
Ich sehe den Wald vor lauter Bäumen nicht, daher benötige ich BITTE eure Hilfe.
LG Merlin