[another one solved] email notification when a user disarmed the alarm
Moderator: leecollings
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: email notification when a user disarmed the alarm
That means you are missing some LUA libraries.
I have them installed as described in the DTGBOT wiki: https://www.domoticz.com/wiki/Remote_Co ... _Libraries
Jos
I have them installed as described in the DTGBOT wiki: https://www.domoticz.com/wiki/Remote_Co ... _Libraries
Jos
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
Re: email notification when a user disarmed the alarm
Aah, ok.
Thanks Jos I will have another go at it tomorrow!
Eric
Thanks Jos I will have another go at it tomorrow!
Eric
if it was easy everybody would do it
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
Re: email notification when a user disarmed the alarm
Hi Jos,
I have created the Lua libraries as described here: https://www.domoticz.com/wiki/Remote_Co ... _Libraries and it WORKS!
I only received the error Error: EventSystem: in name test: [string "..."]:36: attempt to index global 'devicechanged' (a nil value) but changing the Lua type from All to Device solved the error.
Next step is using it in my email notification.
Thanks Jos! Thumbs Up!
Eric
I have created the Lua libraries as described here: https://www.domoticz.com/wiki/Remote_Co ... _Libraries and it WORKS!
I only received the error Error: EventSystem: in name test: [string "..."]:36: attempt to index global 'devicechanged' (a nil value) but changing the Lua type from All to Device solved the error.
Next step is using it in my email notification.
Thanks Jos! Thumbs Up!
Eric
Last edited by EricT on Thursday 14 June 2018 23:31, edited 1 time in total.
if it was easy everybody would do it
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: email notification when a user disarmed the alarm
You're welcome.
I've played a little more with the code and it is working pretty fast so no issues using it in the Event system thus far
I did set the domoticzurl to the below assuming it needs to stay on the same server:
Jos
I've played a little more with the code and it is working pretty fast so no issues using it in the Event system thus far
I did set the domoticzurl to the below assuming it needs to stay on the same server:
Code: Select all
DOMO_url = "http:///127.0.0.1:8080"
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
Re: email notification when a user disarmed the alarm
I have added the email notification and it is working like a charm!
Tanks again Jos!
BTW, I have used the local Raspberry Pi IP address and it issues an email immidiately when the switch is turned On/Off. It is working and I do not know the difference when using http:///127.0.0.1:8080
Eric
For those who are interested, here is my completed script updated with loglevel2 for latest beta's:
Tanks again Jos!
BTW, I have used the local Raspberry Pi IP address and it issues an email immidiately when the switch is turned On/Off. It is working and I do not know the difference when using http:///127.0.0.1:8080
Eric
For those who are interested, here is my completed script updated with loglevel2 for latest beta's:
Code: Select all
-- This script requires the installation of Lua 5.2 and the libraries
-- https://www.domoticz.com/wiki/Remote_Control_of_Domoticz_by_Telegram_Bot#Installing_Lua_Libraries
-- JQ dependencie is not requiered
--- This script sends an email when a user has turned the Test Switch On/Off
--- !!! Make sure this Lua is set as "Device", NOT as "All".
http = require "socket.http";
socket = require "socket";
https = require "ssl.https";
json = require "JSON";
DOMO_url = "http://192.168.x.xx:8080" -- Raspberry Pi local IP address
commandArray = {}
-- Get information recent log entries for switch action
function getswitchedbyinfo(device)
local response, returncode = http.request(DOMO_url..'/json.htm?type=command¶m=getlog&loglevel=2') ---&loglevel=2 is required with the latest beta's.
local suser=""
local stime=""
local sidx=""
local sstatus=""
local input = json:decode(response)
local result_table = input['result']
local tc = #result_table
for i = 1, tc do
for ltime,luser,lidx,ldevice,lstatus in string.gmatch(input.result[i].message, '(.-)%sUser:%s(.-)%sinitiated a switch command.-%((.-)/(.-)/(.-)%)')
do
if ldevice==device then
suser=luser
stime=ltime
sidx=lidx
sstatus=lstatus
end
end
end
return suser,stime,sidx,sstatus
end
device = "Test Switch" -- define the switch you want to use
if devicechanged[device] == 'On' then
user,timeinfo,idx,status = getswitchedbyinfo(device)
if user ~= "" then
commandArray['SendEmail'] = 'The Test Switch is turned On by '..user..', blabla # The Test Switch was turned On by '..user..' , blabla.#[email protected]'
end
end
if devicechanged[device] == 'Off' then
user,timeinfo,idx,status = getswitchedbyinfo(device)
if user ~= "" then
commandArray['SendEmail'] = 'The Test Switch is turned Off by '..user..', blabla # The Test Switch was turned Off by '..user..' , blabla.#[email protected]'
end
end
return commandArray
Last edited by EricT on Friday 15 June 2018 8:30, edited 2 times in total.
if it was easy everybody would do it
- waaren
- Posts: 6028
- Joined: Tuesday 03 January 2017 14:18
- Target OS: Linux
- Domoticz version: Beta
- Location: Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
@EricT @jvdz,
could you please share the logline with the username that you get using the getlog json ?
For some reason I only get the username on a "Status:" logline and these lines are not returned by the json command (on my system)
(I do see them in my os logfile so I can go ahead and create a dzVents version of this method but I like my initial idea more)
Thanks in advance !
could you please share the logline with the username that you get using the getlog json ?
For some reason I only get the username on a "Status:" logline and these lines are not returned by the json command (on my system)
(I do see them in my os logfile so I can go ahead and create a dzVents version of this method but I like my initial idea more)
Thanks in advance !
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
Here it is:
Code: Select all
2018-06-14 23:09:29.822 User: Eric initiated a switch command (52/Activity Main Switch/Off)
if it was easy everybody would do it
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
I am still running on version V3.8793 on the systems I worked with. That is returneing both Level 1 & 2 messages with the getlog JSON request.
Checked now also an other domoticz setup for development which is running on V3.9625 and there it defaults to level 1 only. You can change this to get level 2 by adding this to the URL: /json.htm?type=command¶m=getlog&loglevel=2
Jos
Checked now also an other domoticz setup for development which is running on V3.9625 and there it defaults to level 1 only. You can change this to get level 2 by adding this to the URL: /json.htm?type=command¶m=getlog&loglevel=2
Jos
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
- waaren
- Posts: 6028
- Joined: Tuesday 03 January 2017 14:18
- Target OS: Linux
- Domoticz version: Beta
- Location: Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
Many thanks Eric,EricT wrote: ↑Thursday 14 June 2018 23:11 Here it is:
Code: Select all
2018-06-14 23:09:29.822 User: Eric initiated a switch command (52/Activity Main Switch/Off)
please be aware that if you move on to a later version the way this is logged will change and therefore you then will need to add &loglevel=2 to the getlog json to get this type of message. Not sure with what version is starts but I know for sure >= V3.9580
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
I have added it to the earlier posted code as the older domoticz version simply ignores it and it's required for the latest versions.
Jos
Jos
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
please be aware that if you move on to a later version the way this is logged will change and therefore you then will need to add &loglevel=2 to the getlog json to get this type of message. Not sure with what version is starts but I know for sure >= V3.9580
Thanks guys!I have added it to the earlier posted code as the older domoticz version simply ignores it and it's required for the latest versions.
I do not have plans to update to a newer Domoticz version any time soon (last time I did I had to roll back due to issues) but just in case I have updated my script.
Just a little advice to whom it may concern; make sure you have an image of your Raspberry Pi when updating to a newer version. I only had an old image thus I had some work to get it back where I left before the update.
Eric
if it was easy everybody would do it
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
This is now the function i have in my general lua library file. It also limits the retrieval period of the log records to the last 15 seconds:
Jos
Code: Select all
http = require "socket.http";
socket = require "socket";
https = require "ssl.https";
json = require "JSON";
-- Get information from the last 15 seconds of log entries for the switch action details, returning User&Time and IDX&Status of the device
function getswitchedbyinfo(device)
local LastXXsecs = os.time()-15
local response, returncode = http.request('http://127.0.0.1:8080/json.htm?type=command¶m=getlog&loglevel=2&lastlogtime='..tostring(LastXXsecs))
local suser=""
local stime=""
local sidx=""
local sstatus=""
local input = json:decode(response)
local result_table = input['result']
local tc = #result_table
for i = 1, tc
do
for ltime,luser,lidx,ldevice,lstatus in string.gmatch(input.result[i].message, '(.-)%sUser:%s(.-)%sinitiated a switch command.-%((.-)/(.-)/(.-)%)')
do
if ldevice==device then
suser=luser
stime=ltime
sidx=lidx
sstatus=lstatus
end
end
end
return suser,stime,sidx,sstatus
end
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
Re: [another one solved] email notification when a user disarmed the alarm
by jvdz » Friday 15 June 2018 14:54
This is now the function i have in my general lua library file. It also limits the retrieval period of the log records to the last 15 seconds:
Thanks Jos!
Eric
if it was easy everybody would do it
Who is online
Users browsing this forum: No registered users and 1 guest