![]() |
|
Telegram message with blocking - Printable Version +- LogicMachine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: Telegram message with blocking (/showthread.php?tid=4335) |
Telegram message with blocking - AlexLV - 30.10.2022 Hi, Boiler status I receive from powertag, updating periodically. I want message to telegram should be sent only once, when status changed. But my simple script not working, could not find where is the problem.. Can you please check where I am wrong.. Code: require("user.telegram")
local statuss = event.getvalue('42/2/10')----Boiler status
local alarm = event.getvalue('0/0/102') ---alarm status
--log(statuss)
--log (alarm)
if statuss == true then
if alarm == false then
message = 'Бойлер включен' ---message is not working, boiler is on
telegram(message)
grp.write('0/0/102', true) -- trying to block next alarm
alarm = true -- t
end
else
message = 'Бойлер выключен' --message working, boiler is off
telegram(message)
grp.write('0/0/102', false) -- trying to unblock next alarm when statuss is changed
alarm = false
endAlex RE: Telegram message with blocking - admin - 31.10.2022 event.getvalue() does not accept any arguments. You need to use grp.getvalue() for all other groups than the event source. Your script blocks multiple "on" messages but does not block "off" messages. Use this instead: Code: require('user.telegram')
key = 'boiler_status'
curr = event.getvalue()
prev = storage.get(key)
if curr ~= prev then
message = curr and 'boiler on' or 'boiler off'
telegram(message)
storage.set(key, curr)
endRE: Telegram message with blocking - AlexLV - 31.10.2022 Thank you for explanation!! Alex |