[another one solved] email notification when a user disarmed the alarm
Moderator: leecollings
-
- Posts: 30
- Joined: Tuesday 01 May 2018 8:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.9440
- Location: Rijen, The Netherlands
- Contact:
[another one solved] email notification when a user disarmed the alarm
Hi all,
Is it possible to send an email notification if one of the users has armed or disarmed the alarm?
E.g if user X has logged in and disarmed the alarm an email notification is send to the other users like:
user X has disarmed the alarm
Thanks for your help.
Eric
Is it possible to send an email notification if one of the users has armed or disarmed the alarm?
E.g if user X has logged in and disarmed the alarm an email notification is send to the other users like:
user X has disarmed the alarm
Thanks for your help.
Eric
Last edited by EricT on Thursday 14 June 2018 13:00, edited 1 time in total.
if it was easy everybody would do it
-
- Posts: 543
- Joined: Saturday 02 July 2016 5:17
- Target OS: Linux
- Domoticz version: Beta
- Contact:
Re: email notification when a user disarmed the alarm
Yes this is easily possible but I don't see the need to explain it specifically for your use case in this post.
The alarm is simply a device of which the typical Domoticz home usually has dozens if not hundreds.
You need to read the Wiki and perhaps some threads in this forum to find how to send a notification when a device state changes.
Eg: Bed light turned off = send notification to x user
It's the same thing as: Device alarm turned off (disarmed or whatever) send notification to x user or users.
The alarm is simply a device of which the typical Domoticz home usually has dozens if not hundreds.
You need to read the Wiki and perhaps some threads in this forum to find how to send a notification when a device state changes.
Eg: Bed light turned off = send notification to x user
It's the same thing as: Device alarm turned off (disarmed or whatever) send notification to x user or users.
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
-
- 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 am sorry but maybe I was not clear enough.
I can send an email when something is switched on or off, no problem with that. What I am looking for that it mentioned in the email which user has done it, to be more specific name of the user that has logged in and made the change.
This email has to be send to the other users to notify them that it was user X that has done it.
I can see in the log which user activated an event but I do not know how to get that user name in an email notification.
I hope this explains what I am looking for.
Eric
I can send an email when something is switched on or off, no problem with that. What I am looking for that it mentioned in the email which user has done it, to be more specific name of the user that has logged in and made the change.
This email has to be send to the other users to notify them that it was user X that has done it.
I can see in the log which user activated an event but I do not know how to get that user name in an email notification.
I hope this explains what I am looking for.
Eric
if it was easy everybody would do it
-
- Posts: 543
- Joined: Saturday 02 July 2016 5:17
- Target OS: Linux
- Domoticz version: Beta
- Contact:
Re: email notification when a user disarmed the alarm
How exactly will Domoticz know which user disarmed the alarm?
What is the interface with Domoticz?
What is the interface with Domoticz?
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
- DewGew
- Posts: 579
- Joined: Thursday 21 April 2016 12:01
- Target OS: Raspberry Pi / ODroid
- Domoticz version: V4.10618
- Location: Sweden
- Contact:
Re: email notification when a user disarmed the alarm
You can add several users to domoticz. In my head it should work some how.
When you switch a device it says in the log:
When you switch a device it says in the log:
2018-05-16 13:04:30.438 User: Dewgew initiated a switch command (130/Lamp outside/On)
Raspberry Pi 3 | domoticz | Aeon Labs Z-Stick GEN5 | RFlink gateway
NanoPi NEO-air | REGO6XX interface | Machinon theme | Homebridge | Domoticz Google Assistant | ideAlarm
NanoPi NEO-air | REGO6XX interface | Machinon theme | Homebridge | Domoticz Google Assistant | ideAlarm
-
- 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
That is exactly my question.
In the log it is visable who made a change thus somehow Domoticz knows who made the change (see attachment). So the question is how to get that name in an email to other users.
In the log it is visable who made a change thus somehow Domoticz knows who made the change (see attachment). So the question is how to get that name in an email to other users.
- Attachments
-
- user log.png (3.36 KiB) Viewed 3597 times
if it was easy everybody would do it
-
- Posts: 543
- Joined: Saturday 02 July 2016 5:17
- Target OS: Linux
- Domoticz version: Beta
- Contact:
Re: email notification when a user disarmed the alarm
Now I understand, the logic you are looking for:
If x user controls x device and state = x then perform x (send an email in your case).
One solution I can think of is this:
Create a dummy device for each user and in security lock it down so only they and the domoticz admin user can see their dummy device.
User can turn dummy device on to arm or off to disarm etc... (you will need to use a Lua script, Dzvents or maybe blockly can do it)
Then you can use blockly or a script in events eg: If x device (the dummy device for that user) becomes x state then send an email to x.
If x user controls x device and state = x then perform x (send an email in your case).
One solution I can think of is this:
Create a dummy device for each user and in security lock it down so only they and the domoticz admin user can see their dummy device.
User can turn dummy device on to arm or off to disarm etc... (you will need to use a Lua script, Dzvents or maybe blockly can do it)
Then you can use blockly or a script in events eg: If x device (the dummy device for that user) becomes x state then send an email to x.
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
-
- 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
Thank you very much for your advice but I only want to make the dashboard available to the users.
I have the alarm arm/disarm switch on the Domoticz dashboard available for all users. If one of the users arms or disarms the alarm I want to notify the other users who done it.
I currently use a Lua script to send an email to all users that the alarm is armed or disarmed. I want to be more specific to avoid confusion among the users, therefore I want to know how to pull that name of the user into my Lua.
I have the alarm arm/disarm switch on the Domoticz dashboard available for all users. If one of the users arms or disarms the alarm I want to notify the other users who done it.
I currently use a Lua script to send an email to all users that the alarm is armed or disarmed. I want to be more specific to avoid confusion among the users, therefore I want to know how to pull that name of the user into my Lua.
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
So nobody knows how to pull the name of the user that has logged in into a Lua?
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: email notification when a user disarmed the alarm
if the name is in the log directly after a user disarmed the device (and therewith activated an event that can be picked up by dzVents), dzVents could be used to get the last loglines, - analyze these for that specific event and extract the name from it. It then can be used to create a message including the name obtained from the logfile.
using
openURL( http://domoticzIP:domoticzPORT/json.htm?type=command¶m=getlog)
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: email notification when a user disarmed the alarm
This is a nice idea to use the JSON call for retrieving the information. This is an example script that would do this in LUA:
Jos
Code: Select all
http = require "socket.http";
socket = require "socket";
https = require "ssl.https";
json = require "JSON";
DOMO_url = "http://192.168.xx.xx:8080"
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 = "Switch Name Here" -- define the switch you want to test for
if devicechanged[device] then
user,timeinfo,idx,status = getswitchedbyinfo(device)
if user ~= "" then
print("==> device "..device.." with IDX"..idx.." switched by ".. user.." at "..timeinfo .. " status:"..status)
else
print("==> Can't find log information for device ".. device)
end
end
return commandArray
Last edited by jvdz on Thursday 14 June 2018 23:19, edited 1 time in total.
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 543
- Joined: Saturday 02 July 2016 5:17
- Target OS: Linux
- Domoticz version: Beta
- Contact:
Re: email notification when a user disarmed the alarm
Very interesting! I had no idea it was possible to pull the log via JSON.
Initially looking at it though doesn't seem like it delivers much previous history, not sure if Lua polling every minute would be sufficient but a device trigger that immediately checks the log would likely be able to get the needed information.
Initially looking at it though doesn't seem like it delivers much previous history, not sure if Lua polling every minute would be sufficient but a device trigger that immediately checks the log would likely be able to get the needed information.
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
- 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 is more or less what the posted example LUA script does.ben53252642 wrote: ↑Tuesday 12 June 2018 15:19 .. but a device trigger that immediately checks the log would likely be able to get the needed information.
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: email notification when a user disarmed the alarm
This indeed the way I taught of to get to the required result. Still have a couple a questions / remarks.jvdz wrote: ↑Tuesday 12 June 2018 15:23That is more or less what the posted example LUA script does.ben53252642 wrote: ↑Tuesday 12 June 2018 15:19 .. but a device trigger that immediately checks the log would likely be able to get the needed information.
Jos
If the username ends up in the log it must be known to domoticz in the first place. I red a discussion on GIT about exposing this username. That would make a more natural method to get this information possible. But in the mean time it would be nice to see if we can turn this idea in something workable.
Please do not read the next lines as an attack on the use of Lua as opposed to dzVents (also Lua ) . I only want to know if my observations / assumptions are correct.
This Lua script is triggered by every device change on the system. In dzVents it would only be triggered when the specific device will trigger it.
This Lua script will stay alive until the system returned the JSON to script. dzVents use async communication to prevent that. It is my understanding that there was a discussion between the developers of dzVents and @gizmocuz on the use of this but cannot remember the exact worries that led to the use of async http calls.
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: email notification when a user disarmed the alarm
I don't know the internals of dzVent but the event system is indeed single threaded in domoticz, so correct that it will have to wait until it is finished.waaren wrote: ↑Tuesday 12 June 2018 16:35 This Lua script is triggered by every device change on the system. In dzVents it would only be triggered when the specific device will trigger it.
This Lua script will stay alive until the system returned the JSON to script. dzVents use async communication to prevent that. It is my understanding that there was a discussion between the developers of dzVents and @gizmocuz on the use of this but cannot remember the exact worries that led to the use of async http calls.
The LUA script also first checks for the changed device to only perform the logic when the appropriate device is changed.
I am honestly not worried in this case as the JSON call is likely done to 127.0.0.1 so the should be a very low delay.
The posted script is a simply example of how to retrieve the information based on your thoughts and anything is possible when you put your mind to it.
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: email notification when a user disarmed the alarm
@ben53252642. In the source the max number of lines in the (memory) buffer for loglines is hardcoded to 100. This should be sufficient in most cases but if not, it is easy to lift by changing the line #define MAX_LOG_LINE_BUFFER 100 in the file logger.cpp to a higher number before compiling.ben53252642 wrote: ↑Tuesday 12 June 2018 15:19 Very interesting! I had no idea it was possible to pull the log via JSON.
Initially looking at it though doesn't seem like it delivers much previous history, not sure if Lua polling every minute would be sufficient but a device trigger that immediately checks the log would likely be able to get the needed information.
For test purposes I changed it to 10000, compiled it and it executes without problems and without a noticeable raise in memory usage after 1 hour. (2000 loglines)
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: 543
- Joined: Saturday 02 July 2016 5:17
- Target OS: Linux
- Domoticz version: Beta
- Contact:
Re: email notification when a user disarmed the alarm
@warren it should probably default to 100 and be possible to specify a higher value in the JSON url.
A mild enhancement (if it ever gets added) .
A mild enhancement (if it ever gets added) .
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
- waaren
- Posts: 6028
- Joined: Tuesday 03 January 2017 14:18
- Target OS: Linux
- Domoticz version: Beta
- Location: Netherlands
- Contact:
Re: email notification when a user disarmed the alarm
Not sure if I understand you but because of the limit set in logger.cpp to 100 the buffer cannot have more than 100 lines. Before line 101 is added to this buffer line 1 is removed. The json can only get lines available in that buffer.ben53252642 wrote: ↑Tuesday 12 June 2018 21:52 @warren it should probably default to 100 and be possible to specify a higher value in the JSON url.
A mild enhancement (if it ever gets added) .
If the developers decide to increase this buffersize (and I strongly doubt they will as it just as easy to get more loglines via the OS) the API could be changed in such a way that you can ask "give me the last nnn loglines"
but indeed probably only a theoretical contemplation
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: email notification when a user disarmed the alarm
Wow guys, I am truly impressed.
I did not have the time to read it all, I will have a closer look at it later.
Eric
I did not have the time to read it all, I will have a closer look at it later.
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
Today I have tried the Lua proposed by Jos but I get the below error:
Am I missing some dependencies?
Code: Select all
Error: EventSystem: in name test: [string "..."]:3: module 'socket.http' not found:
if it was easy everybody would do it
Who is online
Users browsing this forum: No registered users and 0 guests