Problems with item changed and-received-update

Hello all,
I have an issue with a rule triggered after some time round about 2h.

I have an esp8266 dash button which send via mqtt a mesage to a item. If this item is changed it should trigger a rule but after around 2 hours silence of this button the item is changed but the rule is not triggered

here is the code

Thing mqtt:topic:button (mqtt:broker:mosquitto) {
Type string : JSONstate_value "JSONstate_value" [stateTopic="button/state/json", transformationPattern="JSONPATH:$.value"]

String	string_button_statejsonvalue			"button JSON State Value"					<mobile>			{channel="mqtt:topic:button:JSONstate_value"}

rule "Handle button"
    Item string_button_statejsonvalue changed

is there a better way or any issues with my code???

Can you show us that in your events,log ?
What un-changed the Item from a previous button press?

How do you know?
The rule shown is incomplete.
Does your rules file load? (look in your openhab.log)

attached the log

2020-06-03 16:00:51.992 [vent.ItemStateChangedEvent] - string_button_statejson changed from {"event":"p[6].b[4].val", "value":0} to {"event":"p[6].b[4]", "value":"ON"}

2020-06-03 16:00:51.994 [vent.ItemStateChangedEvent] - string_button_statejsonvalue changed from 0 to ON

and the rule

rule "Handle   Master"
    Item string_button_statejsonvalue changed
    logInfo ("Handle ", "triggerd")
    //parse out data from JSON string (page, button, value)
    var String eventpage = string_button_statejsonevent.state.toString.split("\\[").get(1).split("\\]").get(0)
    var String eventbutton = string_button_statejsonevent.state.toString.split("\\[").get(2).split("\\]").get(0)

the loginfo is not written that’s why i know it is not triggerd

Have you ensured the rle “name” is unique across all your rules files?


Unless you have some other very badly behaved rules hogging all the execution threads, there’s nothing wrong. You’ve missed something somewhere.

Make yourself another rule as well

rule "Extra diagnostic"
    Item string_button_statejsonvalue changed
    logInfo ("diag", "triggered")

After editing, look in your openhab.log for a rules file refreshed message.

Done this but this time the new function is not triggered only my old one

Okay, that does sound like you’ve got other rules blocking new rule starts.

how can I check this?

Easy way probably to disable other rules by renaming files xxx.rules to xxx.rules.bak or something. You’d then need to restart openHAB to kill any rules already running and looping.

means i need to disable every rule file and enable it one by one?

Only if you want to eliminate them as suspects.