Binding to Domoticz
Re: Binding to Domoticz
My config.json looks like this. HC2-user is the same as Domoticz user? Anything that looks wrong?
{
"spc_gw_host":"localhost",
"spc_gw_port":"8088",
"spc_ws_user":"pi",
"spc_ws_password":"rena4747",
"spc_get_user":"pi",
"spc_get_password":"rena4747",
"hc2_user":"<rena>",
"hc2_password":"<rena4747>",
"domo_host":"<192.168.1.7>"
"domo_port":"8080", // Default Port 8080
"naming":"0" // 0 for numbering, 1 for naming
}
{
"spc_gw_host":"localhost",
"spc_gw_port":"8088",
"spc_ws_user":"pi",
"spc_ws_password":"rena4747",
"spc_get_user":"pi",
"spc_get_password":"rena4747",
"hc2_user":"<rena>",
"hc2_password":"<rena4747>",
"domo_host":"<192.168.1.7>"
"domo_port":"8080", // Default Port 8080
"naming":"0" // 0 for numbering, 1 for naming
}
Re: Binding to Domoticz
Comments are not allowed in JSON, and you should skip the <> characters and there is a missing comma in "domo_host"-line. Try something like this:Rena wrote:My config.json looks like this. HC2-user is the same as Domoticz user? Anything that looks wrong?
{
"spc_gw_host":"localhost",
"spc_gw_port":"8088",
"spc_ws_user":"pi",
"spc_ws_password":"rena4747",
"spc_get_user":"pi",
"spc_get_password":"rena4747",
"hc2_user":"<rena>",
"hc2_password":"<rena4747>",
"domo_host":"<192.168.1.7>"
"domo_port":"8080", // Default Port 8080
"naming":"0" // 0 for numbering, 1 for naming
}
{
"spc_gw_host":"localhost",
"spc_gw_port":"8088",
"spc_ws_user":"pi",
"spc_ws_password":"rena4747",
"spc_get_user":"pi",
"spc_get_password":"rena4747",
"hc2_user":"rena",
"hc2_password":"rena4747",
"domo_host":"192.168.1.7",
"domo_port":"8080",
"naming":"0"
}
Re: Binding to Domoticz
Now it works better, also changed from localhost to IP-address.gol wrote:Comments are not allowed in JSON, and you should skip the <> characters and there is a missing comma in "domo_host"-line. Try something like this:Rena wrote:My config.json looks like this. HC2-user is the same as Domoticz user? Anything that looks wrong?
{
"spc_gw_host":"localhost",
"spc_gw_port":"8088",
"spc_ws_user":"pi",
"spc_ws_password":"rena4747",
"spc_get_user":"pi",
"spc_get_password":"rena4747",
"hc2_user":"<rena>",
"hc2_password":"<rena4747>",
"domo_host":"<192.168.1.7>"
"domo_port":"8080", // Default Port 8080
"naming":"0" // 0 for numbering, 1 for naming
}
{
"spc_gw_host":"localhost",
"spc_gw_port":"8088",
"spc_ws_user":"pi",
"spc_ws_password":"rena4747",
"spc_get_user":"pi",
"spc_get_password":"rena4747",
"hc2_user":"rena",
"hc2_password":"rena4747",
"domo_host":"192.168.1.7",
"domo_port":"8080",
"naming":"0"
}
How to do if I want to add status of a PIR from the SPC?
Re: Binding to Domoticz
ok so you now have all your spc alarm statuses in Domoticz as variables and can see them on the user variables page.
If you want to see them on the dashboard, you will need to setup dummy switches and dummy pir switches in domoticz and use a lua script to update them based on the user variable status.
In your domoticz/scripts/lua directory, place a script named script_variable_spc.lua
This is my script, you will need to modify this to suit you system.
If you want to see them on the dashboard, you will need to setup dummy switches and dummy pir switches in domoticz and use a lua script to update them based on the user variable status.
In your domoticz/scripts/lua directory, place a script named script_variable_spc.lua
This is my script, you will need to modify this to suit you system.
Code: Select all
commandArray = {}
logging = true
if (uservariablechanged['G_SPC_AREA_House'] == 'unset') then
commandArray['House Alarm Set/Unset']='Off'
elseif (uservariablechanged['G_SPC_AREA_House'] == 'set') then
commandArray['House Alarm Set/Unset']='On'
end
if (uservariablechanged['G_SPC_AREA_Shed'] == 'unset') then
commandArray['Shed Alarm Set/Unset']='Off'
elseif (uservariablechanged['G_SPC_AREA_Shed'] == 'set') then
commandArray['Shed Alarm Set/Unset']='On'
end
if (uservariablechanged['G_SPC_ZONE_INPUT_PIR_Front_Door'] == 'open') then
commandArray['Hall Motion']='On'
print('Hall PIR Motion')
else commandArray['Hall Motion']='Off'
end
if (uservariablechanged['G_SPC_ZONE_INPUT_Shed_PIR'] == 'open') then
commandArray['Shed Motion']='On'
print('Shed PIR Motion')
else commandArray['Shed Motion']='Off'
end
if (uservariablechanged['G_SPC_ZONE_INPUT_Kitchen_PIR'] == 'open') then
commandArray['Kitchen Motion']='On'
print('Kitchen PIR Motion')
else commandArray['Kitchen Motion']='Off'
end
if (uservariablechanged['G_SPC_ZONE_INPUT_Front_Door'] == 'open' and otherdevices['Front Door']=='Closed') then
commandArray['UpdateDevice']='122|1|Open'
print('Front Door Open')
elseif (uservariablechanged['G_SPC_ZONE_INPUT_Front_Door'] == 'closed' and otherdevices['Front Door']=='Open') then
commandArray['UpdateDevice']='122|0|Closed'
print('Front Door Closed')
end
if (uservariablechanged['G_SPC_ZONE_INPUT_Shed_Door_MC'] == 'open' and otherdevices['Shed Door']=='Closed') then
commandArray['UpdateDevice']='109|1|Open'
print('Shed Door Open')
elseif (uservariablechanged['G_SPC_ZONE_INPUT_Shed_Door_MC'] == 'closed' and otherdevices['Shed Door']=='Open') then
commandArray['UpdateDevice']='109|0|Closed'
print('Shed Door Closed')
end
if (uservariablechanged['G_SPC_ZONE_INPUT_DN_Windows_B'] == 'open' and otherdevices['Back Door']=='Closed') then
commandArray['UpdateDevice']='120|1|Open'
print('Back Door Open')
elseif (uservariablechanged['G_SPC_ZONE_INPUT_DN_Windows_B'] == 'closed' and otherdevices['Back Door']=='Open') then
commandArray['UpdateDevice']='120|0|Closed'
print('Back Door Closed')
end
return commandArray
Re: Binding to Domoticz
Yes - now I see them under user variables.fergalom wrote:ok so you now have all your spc alarm statuses in Domoticz as variables and can see them on the user variables page.
If you want to see them on the dashboard, you will need to setup dummy switches and dummy pir switches in domoticz and use a lua script to update them based on the user variable status.
In your domoticz/scripts/lua directory, place a script named script_variable_spc.lua
This is my script, you will need to modify this to suit you system.Code: Select all
commandArray = {} logging = true if (uservariablechanged['G_SPC_AREA_House'] == 'unset') then commandArray['House Alarm Set/Unset']='Off' elseif (uservariablechanged['G_SPC_AREA_House'] == 'set') then commandArray['House Alarm Set/Unset']='On' end if (uservariablechanged['G_SPC_AREA_Shed'] == 'unset') then commandArray['Shed Alarm Set/Unset']='Off' elseif (uservariablechanged['G_SPC_AREA_Shed'] == 'set') then commandArray['Shed Alarm Set/Unset']='On' end if (uservariablechanged['G_SPC_ZONE_INPUT_PIR_Front_Door'] == 'open') then commandArray['Hall Motion']='On' print('Hall PIR Motion') else commandArray['Hall Motion']='Off' end if (uservariablechanged['G_SPC_ZONE_INPUT_Shed_PIR'] == 'open') then commandArray['Shed Motion']='On' print('Shed PIR Motion') else commandArray['Shed Motion']='Off' end if (uservariablechanged['G_SPC_ZONE_INPUT_Kitchen_PIR'] == 'open') then commandArray['Kitchen Motion']='On' print('Kitchen PIR Motion') else commandArray['Kitchen Motion']='Off' end if (uservariablechanged['G_SPC_ZONE_INPUT_Front_Door'] == 'open' and otherdevices['Front Door']=='Closed') then commandArray['UpdateDevice']='122|1|Open' print('Front Door Open') elseif (uservariablechanged['G_SPC_ZONE_INPUT_Front_Door'] == 'closed' and otherdevices['Front Door']=='Open') then commandArray['UpdateDevice']='122|0|Closed' print('Front Door Closed') end if (uservariablechanged['G_SPC_ZONE_INPUT_Shed_Door_MC'] == 'open' and otherdevices['Shed Door']=='Closed') then commandArray['UpdateDevice']='109|1|Open' print('Shed Door Open') elseif (uservariablechanged['G_SPC_ZONE_INPUT_Shed_Door_MC'] == 'closed' and otherdevices['Shed Door']=='Open') then commandArray['UpdateDevice']='109|0|Closed' print('Shed Door Closed') end if (uservariablechanged['G_SPC_ZONE_INPUT_DN_Windows_B'] == 'open' and otherdevices['Back Door']=='Closed') then commandArray['UpdateDevice']='120|1|Open' print('Back Door Open') elseif (uservariablechanged['G_SPC_ZONE_INPUT_DN_Windows_B'] == 'closed' and otherdevices['Back Door']=='Open') then commandArray['UpdateDevice']='120|0|Closed' print('Back Door Closed') end return commandArray
I will try to set up a lua-script.
Thansk!
Re: Binding to Domoticz
I have made a Lua-script according to the example. At the moment I´m only interested if the alarm is ON or OFF so I can trigger a away-scenario.
Does the script look OK?
commandArray = {}
logging = true
if (uservariablechanged['G_SPC_AREA_MODE_1'] == 'unset') then
commandArray['House Alarm Set/Unset']='Off'
elseif (uservariablechanged['G_SPC_AREA_MODE_1'] == 'set') then
commandArray['House Alarm Set/Unset']='On'
end
return commandArray
I don´t really understand how to add the alarmstatus as a dummy-switch? Can anyone please try to show an example?
Does the script look OK?
commandArray = {}
logging = true
if (uservariablechanged['G_SPC_AREA_MODE_1'] == 'unset') then
commandArray['House Alarm Set/Unset']='Off'
elseif (uservariablechanged['G_SPC_AREA_MODE_1'] == 'set') then
commandArray['House Alarm Set/Unset']='On'
end
return commandArray
I don´t really understand how to add the alarmstatus as a dummy-switch? Can anyone please try to show an example?
Re: Binding to Domoticz
Now I have figured out how to solve it. Next problem. I need something that start up the binding on reboot and most important of all, runs in the background.
As soons as I have started the binding and shut down Putty. It stops working. How to solve this?
As soons as I have started the binding and shut down Putty. It stops working. How to solve this?
Re: Binding to Domoticz
Hi,
I'm, trying to get this to work but unfortunally i get the below result (look at the first attempt below)
It looks like the binding works with the the spc gateway but it fails with domoticz.
In the node-spc-domticz-bindings.js i've found this
/*auth: config.hc2_user + ':' + config.hc2_password + '@',*/
in two places.
If I remove the comments I instead get result as in the second attempt below.
(the lines now looks like: auth: config.hc2_user + ':' + config.hc2_password + '@',)
I'm quite convinced that i've put the correct user and password in the config file.
I'm running domoticz 3.4834
Any suggestion?
Best Regards
Mattias
-----------------------------------------------------------------------------
First attempt
-----------------------------------------------------------------------------
pi@pih:~/node-spc-domoticz-binding$ ./node-spc-domoticz-binding.js
SPC WebSocket client connected
{ area:
[ { id: '1',
name: 'Boyta',
mode: '0',
last_set_time: '1472625780',
last_set_user_id: '5',
last_set_user_name: 'Vänerblick',
last_unset_time: '1472650562',
last_unset_user_id: '5',
last_unset_user_name: 'Vänerblick' },
{ id: '2',
name: 'Garage',
mode: '0',
last_set_time: '1472485130',
last_set_user_id: '9999',
last_set_user_name: 'Engineer',
last_unset_time: '1472485136',
last_unset_user_id: '9999',
last_unset_user_name: 'Engineer',
last_alarm: '1472485136' },
{ id: '3', name: 'Utomhus', mode: '0' } ] }
unset
unset
unset
{ status: 'success',
data: { area: [ [Object], [Object], [Object] ] } }
{ status: 'success',
data:
{ zone:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ] } }
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
-----------------------------------------------------------------------------
Second attempt with auth
-----------------------------------------------------------------------------
i@pih:~/node-spc-domoticz-binding$ ./node-spc-domoticz-binding.js
SPC WebSocket client connected
{ area:
[ { id: '1',
name: 'Boyta',
mode: '0',
last_set_time: '1472625780',
last_set_user_id: '5',
last_set_user_name: 'Vänerblick',
last_unset_time: '1472650562',
last_unset_user_id: '5',
last_unset_user_name: 'Vänerblick' },
{ id: '2',
name: 'Garage',
mode: '0',
last_set_time: '1472485130',
last_set_user_id: '9999',
last_set_user_name: 'Engineer',
last_unset_time: '1472485136',
last_unset_user_id: '9999',
last_unset_user_name: 'Engineer',
last_alarm: '1472485136' },
{ id: '3', name: 'Utomhus', mode: '0' } ] }
unset
unset
unset
{ status: 'success',
data: { area: [ [Object], [Object], [Object] ] } }
{ status: 'success',
data:
{ zone:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ] } }
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Service Unavailable</title></head><body><h1>503 Service Unavailable</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Service Unavailable</title></head><body><h1>503 Service Unavailable</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Service Unavailable</title></head><body><h1>503 Service Unavailable</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
-----------------------------------------------------------------------------------------------------------
I'm, trying to get this to work but unfortunally i get the below result (look at the first attempt below)
It looks like the binding works with the the spc gateway but it fails with domoticz.
In the node-spc-domticz-bindings.js i've found this
/*auth: config.hc2_user + ':' + config.hc2_password + '@',*/
in two places.
If I remove the comments I instead get result as in the second attempt below.
(the lines now looks like: auth: config.hc2_user + ':' + config.hc2_password + '@',)
I'm quite convinced that i've put the correct user and password in the config file.
I'm running domoticz 3.4834
Any suggestion?
Best Regards
Mattias
-----------------------------------------------------------------------------
First attempt
-----------------------------------------------------------------------------
pi@pih:~/node-spc-domoticz-binding$ ./node-spc-domoticz-binding.js
SPC WebSocket client connected
{ area:
[ { id: '1',
name: 'Boyta',
mode: '0',
last_set_time: '1472625780',
last_set_user_id: '5',
last_set_user_name: 'Vänerblick',
last_unset_time: '1472650562',
last_unset_user_id: '5',
last_unset_user_name: 'Vänerblick' },
{ id: '2',
name: 'Garage',
mode: '0',
last_set_time: '1472485130',
last_set_user_id: '9999',
last_set_user_name: 'Engineer',
last_unset_time: '1472485136',
last_unset_user_id: '9999',
last_unset_user_name: 'Engineer',
last_alarm: '1472485136' },
{ id: '3', name: 'Utomhus', mode: '0' } ] }
unset
unset
unset
{ status: 'success',
data: { area: [ [Object], [Object], [Object] ] } }
{ status: 'success',
data:
{ zone:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ] } }
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
-----------------------------------------------------------------------------
Second attempt with auth
-----------------------------------------------------------------------------
i@pih:~/node-spc-domoticz-binding$ ./node-spc-domoticz-binding.js
SPC WebSocket client connected
{ area:
[ { id: '1',
name: 'Boyta',
mode: '0',
last_set_time: '1472625780',
last_set_user_id: '5',
last_set_user_name: 'Vänerblick',
last_unset_time: '1472650562',
last_unset_user_id: '5',
last_unset_user_name: 'Vänerblick' },
{ id: '2',
name: 'Garage',
mode: '0',
last_set_time: '1472485130',
last_set_user_id: '9999',
last_set_user_name: 'Engineer',
last_unset_time: '1472485136',
last_unset_user_id: '9999',
last_unset_user_name: 'Engineer',
last_alarm: '1472485136' },
{ id: '3', name: 'Utomhus', mode: '0' } ] }
unset
unset
unset
{ status: 'success',
data: { area: [ [Object], [Object], [Object] ] } }
{ status: 'success',
data:
{ zone:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ] } }
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Service Unavailable</title></head><body><h1>503 Service Unavailable</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Service Unavailable</title></head><body><h1>503 Service Unavailable</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Service Unavailable</title></head><body><h1>503 Service Unavailable</h1></body></html>
Failed to parse reply, expected JSON
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
Failed to parse reply, expected JSON
-----------------------------------------------------------------------------------------------------------
Re: Binding to Domoticz
Hi,
Instead of using this Binding to Domoticz i'm now using the MQTT binding to connect to Domoticz and so far everything seems to work fine.
Regards
Mattias
Instead of using this Binding to Domoticz i'm now using the MQTT binding to connect to Domoticz and so far everything seems to work fine.
Regards
Mattias