A better one:
2020-06-26 15:57:43.163 [vent.ItemStateChangedEvent] - string_haspplate01_statejson changed from {"event":"p[8].b[4].val", "value":"0"} to {"event":"p[8].b[4]", "value":"ON"}
2020-06-26 15:57:43.165 [vent.ItemStateChangedEvent] - string_haspplate01_statejsonvalue changed from 0 to ON
2020-06-26 15:58:30.435 [DEBUG] [.eclipse.smarthome.model.script.HASP] - debug else path
and after this
2020-06-26 15:58:56.790 [vent.ItemStateChangedEvent] - string_haspplate01_statejson changed from {"event":"p[8].b[4].val", "value":"0"} to {"event":"p[8].b[4]", "value":"ON"}
2020-06-26 15:58:56.791 [vent.ItemStateChangedEvent] - string_haspplate01_statejsonvalue changed from 0 to ON
2020-06-26 15:58:56.796 [DEBUG] [.eclipse.smarthome.model.script.HASP] - debug else path
The rule
rule "handle HASP plate01"
when
Item string_haspplate01_statejsonvalue received update /*or
Item switch_haspplate01_motion changed*/
then
try{
logInfo ("Handle HASP", "triggered" + string_haspplate01_statejsonvalue.state.toString)
//parse out data from JSON string (page, button, value)
logDebug("HASP", "debug start")
//var String eventbutton = string_haspplate01_statejso"nevent.state.toString.split("\\[").get(2).split("\\]").get(0)
if (string_haspplate01_statejsonvalue.state == '0')
{
//Do nothing (button release event)
logInfo ("HASP", "Ignoring OFF event")
}
else
{
logDebug("HASP", "debug else path")
logInfo ("HASP", "ON event ")
var String local_statejsonevent = string_haspplate01_statejsonevent.state.toString
val String eventpage = local_statejsonevent.split("\\[").get(1).split("\\]").get(0)
val String eventbutton = local_statejsonevent.split("\\[").get(2).split("\\]").get(0)
//Handle Page/button/dimmer value event
if(switch_haspplate01_light.state == OFF)
{
switch_haspplate01_light.sendCommand(ON)
}
if ((eventbutton == '1' || eventbutton == '2' || eventbutton == '3') && eventpage != '0')
{
switch(eventbutton)
{
case '1':
{
number_haspplate01_page.sendCommand(globalvar_number_plate01_pagebutton1page)
}
case '2':
{
number_haspplate01_page.sendCommand(globalvar_number_plate01_pagebutton2page)
}
case '3':
{
number_haspplate01_page.sendCommand(globalvar_number_plate01_pagebutton3page)
}
}
switch_haspplate01_light.sendCommand(ON) //refresh backlight timer following button press
}
else
{
switch(eventpage)
{
case '2':
{
if (eventbutton == '4')
{ //Insert action to perform if button 4 was pressed
switch switch_Master.state
{
case ON:
{
globalvar_string_plate01_jsonstring = '["p[2].b[4].bco=65535"]'
switch_Master.sendCommand(OFF)
}
case OFF:
{
globalvar_string_plate01_jsonstring = '["p[2].b[4].bco=25388"]'
switch_Master.sendCommand(ON)
}
}
string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
}
else if (eventbutton == '5')
{ //Insert action to perform if button 4 was pressed
if ( number_openhab2operatingmodus_specialmode.state == 2)
{
globalvar_number_openhab2operatingmodus_specialmode = 0
}
else if (number_openhab2operatingmodus_specialmode.state != NULL && number_openhab2operatingmodus_specialmode.state != UNDEF)
{
globalvar_number_openhab2operatingmodus_specialmode = (number_openhab2operatingmodus_specialmode.state as DecimalType).intValue
globalvar_number_openhab2operatingmodus_specialmode = globalvar_number_openhab2operatingmodus_specialmode + 1
}
else
{
globalvar_number_openhab2operatingmodus_specialmode = 0
}
if (globalvar_number_openhab2operatingmodus_specialmode == 0)
{
globalvar_string_plate01_jsonstring = '["p[2].b[5].txt=\\"Urlaub\\""]'
number_openhab2operatingmodus_specialmode.sendCommand(globalvar_number_openhab2operatingmodus_specialmode)
}
else if (globalvar_number_openhab2operatingmodus_specialmode == 1)
{
globalvar_string_plate01_jsonstring = '["p[2].b[5].txt=\\"Alarm\\""]'
number_openhab2operatingmodus_specialmode.sendCommand(globalvar_number_openhab2operatingmodus_specialmode)
}
else if (globalvar_number_openhab2operatingmodus_specialmode == 2)
{
globalvar_string_plate01_jsonstring = '["p[2].b[5].txt=\\"Alarm Aus\\""]'
number_openhab2operatingmodus_specialmode.sendCommand(globalvar_number_openhab2operatingmodus_specialmode)
}
string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
}
}
case '6':
{
if (eventbutton == '4')
{ //Insert action to perform if button 4 was pressed
switch switch_hueonoffgroup10.state
{
case ON:
{
globalvar_string_plate01_jsonstring = '["p[6].b[4].bco=65535"]'
switch_hueonoffgroup10.sendCommand(OFF)
}
case OFF:
{
globalvar_string_plate01_jsonstring = '["p[6].b[4].bco=25388"]'
switch_hueonoffgroup10.sendCommand(ON)
number_huescenegroup10.sendCommand(10)
dimmer_hueonoffgroup10.sendCommand(100)
}
}
}
else if (eventbutton == '5')
{ //Insert action to perform if button 4 was pressed
switch switch_hueonoffgroup3.state
{
case ON:
{
globalvar_string_plate01_jsonstring = '["p[6].b[5].bco=65535"]'
switch_hueonoffgroup3.sendCommand(OFF)
}
case OFF:
{
globalvar_string_plate01_jsonstring = '["p[6].b[5].bco=25388"]'
switch_hueonoffgroup3.sendCommand(ON)
number_huescenegroup10.sendCommand(10)
dimmer_hueonoffgroup3.sendCommand(100)
}
}
}
string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
}
case '7':
{
/*
Act on buttons/dimmers from Page 7 here
*/
if (eventbutton == '4')
{
if (globalvar_number_plate01_tempdoublepage == 1)
{
globalvar_number_plate01_tempdoublepage = 11
}
else
{
globalvar_number_plate01_tempdoublepage = 1
}
//HASP_Plate01_Page_Current.sendCommand(1)
//Insert action to perform if button 4 was pressed
}
else if (eventbutton == '5')
{
number_haspplate01_pagecurrent.sendCommand(2)
//Insert action to perform if button 5 was pressed
}
else if (eventbutton == '6')
{
number_haspplate01_pagecurrent.sendCommand(3)
//Insert action to perform if button 6 was pressed
}
else if (eventbutton == '7')
{
number_haspplate01_pagecurrent.sendCommand(4)
//Insert action to perform if button 7 was moved
}
else if (eventbutton == '8')
{
number_haspplate01_pagecurrent.sendCommand(5)
//Insert action to perform if button 8 was moved
}
else if (eventbutton == '9')
{
number_haspplate01_pagecurrent.sendCommand(6)
//Insert action to perform if button 9 was moved
}
else if (eventbutton == '10')
{
number_haspplate01_pagecurrent.sendCommand(7)
//Insert action to perform if button 10 was moved
}
else if (eventbutton == '11')
{
number_haspplate01_pagecurrent.sendCommand(8)
//Insert action to perform if button 11 was moved
}
else if (eventbutton == '12')
{
number_haspplate01_pagecurrent.sendCommand(9)
//Insert action to perform if button 12 was moved
}
else if (eventbutton == '13')
{
//Insert action to perform if button 13 was moved
}
else if (eventbutton == '14')
{
logInfo("handle HASP plate01 page", globalvar_number_plate01_tempdoublepage.toString())
if ( globalvar_number_plate01_tempdoublepage == 1)
{
globalvar_number_plate01_tempdoublepage = 10
}
else
{
number_haspplate01_pagecurrent.sendCommand(0)
}
//Insert action to perform if button 14 was moved
}
else if (eventbutton == '15')
{
logInfo("handle HASP plate01 page ", globalvar_number_plate01_tempdoublepage.toString())
number_haspplate01_pagecurrent.sendCommand(globalvar_number_plate01_tempdoublepage)
globalvar_number_plate01_tempdoublepage = 0
//Insert action to perform if button 15 was moved
}
switch_haspplate01_light.sendCommand(ON) //refresh backlight timer following button press
}
case '8':
{
if (eventbutton == '4')
{ //Insert action to perform if button 4 was pressed
switch switch_hueonoffgroup10.state
{
case ON:
{
globalvar_string_plate01_jsonstring = '["p[8].b[4].bco=65535"]'
switch_hueonoffgroup10.sendCommand(OFF)
}
case OFF:
{
globalvar_string_plate01_jsonstring = '["p[8].b[4].bco=25388"]'
number_huescenegroup10.sendCommand(10)
switch_hueonoffgroup10.sendCommand(ON)
dimmer_hueonoffgroup3.sendCommand(100)
}
}
string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
}
else if (eventbutton == '5')
{
if ( number_huescenegroup10.state == 13)
{
globvar_number_huescenegroup10 = 0
}
else if (number_huescenegroup10.state != NULL && number_huescenegroup10.state != UNDEF)
{
globvar_number_huescenegroup10 = (number_huescenegroup10.state as DecimalType).intValue
globvar_number_huescenegroup10 = globvar_number_huescenegroup10 + 1
}
else
{
globvar_number_huescenegroup10 = 0
}
if (globvar_number_huescenegroup10 == 0)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"OFF\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 1)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"ON\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 2)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Sonnenuntergang Savanne\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 3)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Tropendämmerung\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 4)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Nordlichter\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 5)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Entspannen\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 6)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Lesen\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 7)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Frühlingsblüten\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 8)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Konzentration\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 9)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Aktivieren\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 10)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Hell\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 11)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Gedimmt\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 12)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Nachtlicht\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else if (globvar_number_huescenegroup10 == 13)
{
globalvar_string_plate01_jsonstring = '["p[8].b[5].txt=\\"Auto\\""]'
number_huescenegroup10.sendCommand(globvar_number_huescenegroup10)
}
else
{
logInfo("loggerName", "else")
}
}
else if (eventbutton == '6')
{
if (number_huescenegroup10.state == 12)
{
globalvar_string_plate01_jsonstring = '["p[8].b[6].bco=65535"]'
switch_hueonoffgroup10.sendCommand(OFF)
number_huescenegroup10.sendCommand(0)
}
else
{
switch_hueonoffgroup10.sendCommand(ON)
globalvar_string_plate01_jsonstring = '["p[8].b[6].bco=25388"]'
number_huescenegroup10.sendCommand(12)
}
}
else if (eventbutton == '9')
{
dimmer_hueonoffgroup10.sendCommand(Double.parseDouble(string_haspplate01_statejsonvalue.state.toString()))
//logInfo("handle HASP plate01 dimmer_hueonoffgroup10 ", dimmer_hueonoffgroup10.state.toString())
}
string_haspplate01_commandjson.sendCommand(globalvar_string_plate01_jsonstring)
}
}
}
}
}
catch(Throwable T) {
logError("Error", "Some bad stuff happened in \"handle HASP plate01\": " + T.toString)
}
finally {
}
end
These ar my settings running on a 8GB pi
EXTRA_JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/var/log/openhab2/java.log"