new: KMTronic USB/485/TCP(Web) support
Moderator: leecollings
- RATA1
- Posts: 19
- Joined: Tuesday 08 December 2015 15:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Taunton, UK
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
This is what the script outputs for me from the gui. It is fine - if you don't get this but can browse to it from the same machine domoticz is on then don't know. If the two are on different networks you need to route between them.
I don't use windows so can't help with that platform but the script is fine on a pi
Good luck maybe Santa will bring you a pi.
Sent from my SM-G935F using Tapatalk
I don't use windows so can't help with that platform but the script is fine on a pi
Good luck maybe Santa will bring you a pi.
Sent from my SM-G935F using Tapatalk
Pi + RFX433 + AEOTEC Gen5 ZWave + HGI80 + CM180i + sensors
SolarEdge Inverter and PVOutput
SolarEdge Inverter and PVOutput
-
- Posts: 18
- Joined: Sunday 24 December 2017 10:15
- Target OS: -
- Domoticz version: 2023.2
- Location: Veneto, Italy
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
I have pi model b and pi3 model b (used with kodi and retropie)
tomorrow i write a sdcard with raspbian jessie and install domoticz.
there is a router between two networks, from the broswer i have access
the temperature board is also accessible from outside the network (i can give you the adress via PM and you can try your script with my board?)
Thank you very much!
Again merry christmas to you
tomorrow i write a sdcard with raspbian jessie and install domoticz.
there is a router between two networks, from the broswer i have access
the temperature board is also accessible from outside the network (i can give you the adress via PM and you can try your script with my board?)
Thank you very much!
Again merry christmas to you
- RATA1
- Posts: 19
- Joined: Tuesday 08 December 2015 15:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Taunton, UK
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
Hello,
Now that I had 5 mins to sit down and have a look the issue is that the virtual switch names were not changed and it was throwing an error but was for some reason not showing in the log file - maybe a bit different the way it does things when running Domoticz on Windows?
They need to be what your switch names are.
I have posted the modified script below and perhaps easier to modify/understand. I have PM'ed it to you too.
------------------------------------------------------------------------------
--
--
-- Domoticz lua script to convert XML output from KMTronic DS1820 LAN module
-- Reads the temperature based on the unique ID of the sensor and passes it
-- back to a virtual temperature sensor(s)
-- sensors in Domoticz
--
------------------------------------------------------------------------------
-- Rob Allen 12/04/2016
-- re written for "universal use" 25/12/2017
------------------------------------------------------------------------------
commandArray = {}
function XML_Capture(cmd,flatten)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if flatten then
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
end
return s
end
--set to true to print to log file.
debug = true
--Dummy switch names - important to get these to match - change as appropriate to YOUR Virtual switches you already created
Dummy_Switch_Name_1 = "ACS"
Dummy_Switch_Name_2 = "Interna"
Dummy_Switch_Name_3 = "Puffer"
Dummy_Switch_Name_4 = "Esterna"
--or comment out above uncomment below and edit your IDX numbers of YOUR Virtual switches you already created
--Dummy_Switch_Name_1 = 644
--Dummy_Switch_Name_2 = 645
--Dummy_Switch_Name_3 = 646
--Dummy_Switch_Name_4 = 647
--define temperature sensor UID's - i.e. the DS1820 serial number
--up to 4 per DS1820 LAN interface
sensorID_1 = "28FFA4555115031C"
sensorID_2 = "28FF228C541503EC"
sensorID_3 = "28FFE28B54150348"
sensorID_4 = "28FF0E8B541503B3"
-- Define your device IP@
Device_IP = "192.168.1.199" -- change this to the internal IP@ of KMtronic box
if debug == true then
print("Reading values from: 'http://"..Device_IP.."/status.xml'")
end
-- Read the XML data from the device
XML_string=XML_Capture("curl -s 'http://"..Device_IP.."/status.xml'",1)
valid = string.find(XML_string, "<response>") -- check we are looking in the right place
if debug == true then
print(XML_string)
end
if valid == nil then
print ("Bad XML status read - temperatures NOT updated")
else
--Find the first sensor based on its UID
i = string.find(XML_string,sensorID_1) -- find the unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature1=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[1] = {['UpdateDevice'] = Dummy_Switch_Name_1.."|0|"..TempTemperature1} --send updated values to Domoticz - must make sure the name matches the Dummy name you created above.
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_1.." = '"..TempTemperature1.."'")
end
-- Second sensor based on its UID
i = string.find(XML_string, sensorID_2) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature2=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[2] = { ['UpdateDevice'] = Dummy_Switch_Name_2.."|0|"..TempTemperature2 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_2.." = '"..TempTemperature2.."'")
end
-- Third sensor based on its UID
i = string.find(XML_string, sensorID_3) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature3=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[3] = {['UpdateDevice'] = Dummy_Switch_Name_3.."|0|"..TempTemperature3 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_3.." = '"..TempTemperature3.."'")
end
-- Fourth sensor based on its UID
i = string.find(XML_string, sensorID_4) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature4=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[4] = { ['UpdateDevice'] = Dummy_Switch_Name_4.."|0|"..TempTemperature4 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_4.." = '"..TempTemperature4.."'")
end
end
return commandArray
Now that I had 5 mins to sit down and have a look the issue is that the virtual switch names were not changed and it was throwing an error but was for some reason not showing in the log file - maybe a bit different the way it does things when running Domoticz on Windows?
They need to be what your switch names are.
I have posted the modified script below and perhaps easier to modify/understand. I have PM'ed it to you too.
------------------------------------------------------------------------------
--
--
-- Domoticz lua script to convert XML output from KMTronic DS1820 LAN module
-- Reads the temperature based on the unique ID of the sensor and passes it
-- back to a virtual temperature sensor(s)
-- sensors in Domoticz
--
------------------------------------------------------------------------------
-- Rob Allen 12/04/2016
-- re written for "universal use" 25/12/2017
------------------------------------------------------------------------------
commandArray = {}
function XML_Capture(cmd,flatten)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if flatten then
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
end
return s
end
--set to true to print to log file.
debug = true
--Dummy switch names - important to get these to match - change as appropriate to YOUR Virtual switches you already created
Dummy_Switch_Name_1 = "ACS"
Dummy_Switch_Name_2 = "Interna"
Dummy_Switch_Name_3 = "Puffer"
Dummy_Switch_Name_4 = "Esterna"
--or comment out above uncomment below and edit your IDX numbers of YOUR Virtual switches you already created
--Dummy_Switch_Name_1 = 644
--Dummy_Switch_Name_2 = 645
--Dummy_Switch_Name_3 = 646
--Dummy_Switch_Name_4 = 647
--define temperature sensor UID's - i.e. the DS1820 serial number
--up to 4 per DS1820 LAN interface
sensorID_1 = "28FFA4555115031C"
sensorID_2 = "28FF228C541503EC"
sensorID_3 = "28FFE28B54150348"
sensorID_4 = "28FF0E8B541503B3"
-- Define your device IP@
Device_IP = "192.168.1.199" -- change this to the internal IP@ of KMtronic box
if debug == true then
print("Reading values from: 'http://"..Device_IP.."/status.xml'")
end
-- Read the XML data from the device
XML_string=XML_Capture("curl -s 'http://"..Device_IP.."/status.xml'",1)
valid = string.find(XML_string, "<response>") -- check we are looking in the right place
if debug == true then
print(XML_string)
end
if valid == nil then
print ("Bad XML status read - temperatures NOT updated")
else
--Find the first sensor based on its UID
i = string.find(XML_string,sensorID_1) -- find the unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature1=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[1] = {['UpdateDevice'] = Dummy_Switch_Name_1.."|0|"..TempTemperature1} --send updated values to Domoticz - must make sure the name matches the Dummy name you created above.
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_1.." = '"..TempTemperature1.."'")
end
-- Second sensor based on its UID
i = string.find(XML_string, sensorID_2) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature2=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[2] = { ['UpdateDevice'] = Dummy_Switch_Name_2.."|0|"..TempTemperature2 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_2.." = '"..TempTemperature2.."'")
end
-- Third sensor based on its UID
i = string.find(XML_string, sensorID_3) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature3=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[3] = {['UpdateDevice'] = Dummy_Switch_Name_3.."|0|"..TempTemperature3 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_3.." = '"..TempTemperature3.."'")
end
-- Fourth sensor based on its UID
i = string.find(XML_string, sensorID_4) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature4=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[4] = { ['UpdateDevice'] = Dummy_Switch_Name_4.."|0|"..TempTemperature4 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_4.." = '"..TempTemperature4.."'")
end
end
return commandArray
Pi + RFX433 + AEOTEC Gen5 ZWave + HGI80 + CM180i + sensors
SolarEdge Inverter and PVOutput
SolarEdge Inverter and PVOutput
-
- Posts: 18
- Joined: Sunday 24 December 2017 10:15
- Target OS: -
- Domoticz version: 2023.2
- Location: Veneto, Italy
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
Thank you for yout work and your disponibility!
Sorry, i'm late :\
I have changed the script code and insert the new code, but in the log i have the same message:
2017-12-29 17:51:00.465 LUA: Bad XML status read - temperatures NOT updated
2017-12-29 17:52:00.171 LUA: Bad XML status read - temperatures NOT updated
2017-12-29 17:53:00.501 LUA: Bad XML status read - temperatures NOT updated
It's possible?
Sorry, i'm late :\
I have changed the script code and insert the new code, but in the log i have the same message:
2017-12-29 17:51:00.465 LUA: Bad XML status read - temperatures NOT updated
2017-12-29 17:52:00.171 LUA: Bad XML status read - temperatures NOT updated
2017-12-29 17:53:00.501 LUA: Bad XML status read - temperatures NOT updated
It's possible?
- RATA1
- Posts: 19
- Joined: Tuesday 08 December 2015 15:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Taunton, UK
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
Hello,
check all the error logs (not just the status) and make sure you have defined/created the virtual switches with what is in the code in the quotes - i.e. below.
Dummy_Switch_Name_1 = "ACS"
Dummy_Switch_Name_2 = "Interna"
Dummy_Switch_Name_3 = "Puffer"
Dummy_Switch_Name_4 = "Esterna"
It should be a copy and paste exercise and all you need to to is define/create what is needed in terms of dummy switches. If the dummy switches are not defined or wrong it will throw an error (that I am guessing you can't see in the info log) and print the "not updated". The script above works fine on my platform when using the public @ of your KMtronic box so it is something to do with your setup rather than the script or the KMtronic box.
Thanks
check all the error logs (not just the status) and make sure you have defined/created the virtual switches with what is in the code in the quotes - i.e. below.
Dummy_Switch_Name_1 = "ACS"
Dummy_Switch_Name_2 = "Interna"
Dummy_Switch_Name_3 = "Puffer"
Dummy_Switch_Name_4 = "Esterna"
It should be a copy and paste exercise and all you need to to is define/create what is needed in terms of dummy switches. If the dummy switches are not defined or wrong it will throw an error (that I am guessing you can't see in the info log) and print the "not updated". The script above works fine on my platform when using the public @ of your KMtronic box so it is something to do with your setup rather than the script or the KMtronic box.
Thanks
Pi + RFX433 + AEOTEC Gen5 ZWave + HGI80 + CM180i + sensors
SolarEdge Inverter and PVOutput
SolarEdge Inverter and PVOutput
- RATA1
- Posts: 19
- Joined: Tuesday 08 December 2015 15:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Taunton, UK
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
OK, For watchers here - did a TeamViewer session with mcgiak and the issue appears to be that cURL was not installed on the Windows box so failed to get anything back from the KMTronics module from the "curl" in the LUA script and fails with the:
"LUA: Bad XML status read - temperatures NOT updated"
Sadly there is no indication of failure due to curl not installed/working in the error logs (that I could see in the Window platform) ;(
I also made an error with the names or IDX. It needs to be the IDX value not the name. Sorry about the confusion there! The names can be used to reference the IDX for ease of debug.
Also there were no virtual switches created on mcgiak's install - it was pure vanilla:(
Below is the hopefully last update! We got it working on a fresh Pi install not the original Windows one so if you are having issues with it and on Windows OS I expect you will need to install cURL. I don't know and can't help there.
Thanks!
------------------------------------------------------------------------------
--
--
-- Domoticz lua script to convert XML output from KMTronic DS1820 LAN module
-- Reads the temperature based on the unique ID of the sensor and passes it
-- back to a virtual temperature sensor(s)
-- sensors in Domoticz
--
------------------------------------------------------------------------------
-- Rob Allen 12/04/2016
-- re written for "universal use" 25/12/2017
— corrected error with nave v IDX 29/12/2017
------------------------------------------------------------------------------
commandArray = {}
function XML_Capture(cmd,flatten)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if flatten then
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
end
return s
end
--set to true to print to log file.
debug = false
--Dummy switch names - change as appropriate to YOUR Virtual switches you already created - used for meaningful debug output
Dummy_Switch_Name_1 = "Name1"
Dummy_Switch_Name_2 = "Name2"
Dummy_Switch_Name_3 = "Name3"
Dummy_Switch_Name_4 = "Name4"
—below edit the IDX numbers marked ?? with YOUR virtual switches you already created
--Dummy_Switch_IDX_1 = ?? -- replace with your dummy switch IDX of Dummy_Switch_Name_1 above
--Dummy_Switch_IDX_2 = ?? --replace with your dummy switch IDX of Dummy_Switch_Name_2 above
--Dummy_Switch_IDX_3 = ?? --replace with your dummy switch IDX of Dummy_Switch_Name_3 above
--Dummy_Switch_IDX_4 = ?? --replace with your dummy switch IDX of Dummy_Switch_Name_4 above
--define temperature sensor UID's - i.e. the DS1820 serial number
--up to 4 per DS1820 LAN interface
sensorID_1 = “1234567890AAAAAA"
sensorID_2 = “1234567890BBBBBB"
sensorID_3 = “1234567890CCCCCC"
sensorID_4 = “1234567890DDDDDD"
-- Define your device IP@
Device_IP = "192.168.1.199" -- change this to the internal IP@ of KMtronic box
if debug == true then
print("Reading values from: 'http://"..Device_IP.."/status.xml'")
end
-- Read the XML data from the device
XML_string=XML_Capture("curl -s 'http://"..Device_IP.."/status.xml'",1)
valid = string.find(XML_string, "<response>") -- check we are looking in the right place
if debug == true then
print(XML_string)
end
if valid == nil then
print ("Bad XML status read - temperatures NOT updated")
else
--Find the first sensor based on its UID
i = string.find(XML_string,sensorID_1) -- find the unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature1=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[1] = {['UpdateDevice'] = Dummy_Switch_Name_1.."|0|"..TempTemperature1} --send updated values to Domoticz - must make sure the name matches the Dummy name you created above.
if debug == true then
print("Temp returned for "..Dummy_Switch_IDX_1.." = '"..TempTemperature1.."'")
end
-- Second sensor based on its UID
i = string.find(XML_string, sensorID_2) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature2=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[2] = { ['UpdateDevice'] = Dummy_Switch_IDX_2.."|0|"..TempTemperature2 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_2.." = '"..TempTemperature2.."'")
end
-- Third sensor based on its UID
i = string.find(XML_string, sensorID_3) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature3=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[3] = {['UpdateDevice'] = Dummy_Switch_IDX_3.."|0|"..TempTemperature3 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_3.." = '"..TempTemperature3.."'")
end
-- Fourth sensor based on its UID
i = string.find(XML_string, sensorID_4) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature4=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[4] = { ['UpdateDevice'] = Dummy_Switch_IDX_4.."|0|"..TempTemperature4 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_4.." = '"..TempTemperature4.."'")
end
end
return commandArray
"LUA: Bad XML status read - temperatures NOT updated"
Sadly there is no indication of failure due to curl not installed/working in the error logs (that I could see in the Window platform) ;(
I also made an error with the names or IDX. It needs to be the IDX value not the name. Sorry about the confusion there! The names can be used to reference the IDX for ease of debug.
Also there were no virtual switches created on mcgiak's install - it was pure vanilla:(
Below is the hopefully last update! We got it working on a fresh Pi install not the original Windows one so if you are having issues with it and on Windows OS I expect you will need to install cURL. I don't know and can't help there.
Thanks!
------------------------------------------------------------------------------
--
--
-- Domoticz lua script to convert XML output from KMTronic DS1820 LAN module
-- Reads the temperature based on the unique ID of the sensor and passes it
-- back to a virtual temperature sensor(s)
-- sensors in Domoticz
--
------------------------------------------------------------------------------
-- Rob Allen 12/04/2016
-- re written for "universal use" 25/12/2017
— corrected error with nave v IDX 29/12/2017
------------------------------------------------------------------------------
commandArray = {}
function XML_Capture(cmd,flatten)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if flatten then
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
end
return s
end
--set to true to print to log file.
debug = false
--Dummy switch names - change as appropriate to YOUR Virtual switches you already created - used for meaningful debug output
Dummy_Switch_Name_1 = "Name1"
Dummy_Switch_Name_2 = "Name2"
Dummy_Switch_Name_3 = "Name3"
Dummy_Switch_Name_4 = "Name4"
—below edit the IDX numbers marked ?? with YOUR virtual switches you already created
--Dummy_Switch_IDX_1 = ?? -- replace with your dummy switch IDX of Dummy_Switch_Name_1 above
--Dummy_Switch_IDX_2 = ?? --replace with your dummy switch IDX of Dummy_Switch_Name_2 above
--Dummy_Switch_IDX_3 = ?? --replace with your dummy switch IDX of Dummy_Switch_Name_3 above
--Dummy_Switch_IDX_4 = ?? --replace with your dummy switch IDX of Dummy_Switch_Name_4 above
--define temperature sensor UID's - i.e. the DS1820 serial number
--up to 4 per DS1820 LAN interface
sensorID_1 = “1234567890AAAAAA"
sensorID_2 = “1234567890BBBBBB"
sensorID_3 = “1234567890CCCCCC"
sensorID_4 = “1234567890DDDDDD"
-- Define your device IP@
Device_IP = "192.168.1.199" -- change this to the internal IP@ of KMtronic box
if debug == true then
print("Reading values from: 'http://"..Device_IP.."/status.xml'")
end
-- Read the XML data from the device
XML_string=XML_Capture("curl -s 'http://"..Device_IP.."/status.xml'",1)
valid = string.find(XML_string, "<response>") -- check we are looking in the right place
if debug == true then
print(XML_string)
end
if valid == nil then
print ("Bad XML status read - temperatures NOT updated")
else
--Find the first sensor based on its UID
i = string.find(XML_string,sensorID_1) -- find the unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature1=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[1] = {['UpdateDevice'] = Dummy_Switch_Name_1.."|0|"..TempTemperature1} --send updated values to Domoticz - must make sure the name matches the Dummy name you created above.
if debug == true then
print("Temp returned for "..Dummy_Switch_IDX_1.." = '"..TempTemperature1.."'")
end
-- Second sensor based on its UID
i = string.find(XML_string, sensorID_2) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature2=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[2] = { ['UpdateDevice'] = Dummy_Switch_IDX_2.."|0|"..TempTemperature2 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_2.." = '"..TempTemperature2.."'")
end
-- Third sensor based on its UID
i = string.find(XML_string, sensorID_3) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature3=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[3] = {['UpdateDevice'] = Dummy_Switch_IDX_3.."|0|"..TempTemperature3 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_3.." = '"..TempTemperature3.."'")
end
-- Fourth sensor based on its UID
i = string.find(XML_string, sensorID_4) -- find the next unique ID of the sensor
p = string.find(XML_string,"<temp>",i) --look for the next occurrence of <temp> after ID
TempTemperature4=string.sub(XML_string,p+6,p+10) --temperature is the 5 characters after <temp> - i.e. 6-10
commandArray[4] = { ['UpdateDevice'] = Dummy_Switch_IDX_4.."|0|"..TempTemperature4 } --send updated values to Domoticz
if debug == true then
print("Temp returned for "..Dummy_Switch_Name_4.." = '"..TempTemperature4.."'")
end
end
return commandArray
Pi + RFX433 + AEOTEC Gen5 ZWave + HGI80 + CM180i + sensors
SolarEdge Inverter and PVOutput
SolarEdge Inverter and PVOutput
-
- Posts: 8
- Joined: Thursday 01 March 2018 23:12
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
I would like to get a DS18B20 kmtronic sensor that I have on my PI3 but I can not. I compiled the script by copying that of RATA1 and I have a problem. I inserted the modified script with a text editor of windows but nothing happens, the script is ignored, after having lost a lot of time I realized that the same script inserted in the folder of domoticz for windows is activated ... Why? do? Am I wrong to modify it with a text editor? Thanks to those who will help me.
- gizmocuz
- Posts: 2350
- Joined: Thursday 11 July 2013 18:59
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Top of the world
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
In the next beta version (currently building) support has been added for the KMTronic temperature sensors.
https://github.com/domoticz/domoticz/co ... 0ba68bc830
Not sure why people are going very complicated with complex scripts while implementing this took less then 5 minutes in the native code
https://github.com/domoticz/domoticz/co ... 0ba68bc830
Not sure why people are going very complicated with complex scripts while implementing this took less then 5 minutes in the native code
Quality outlives Quantity!
-
- Posts: 8
- Joined: Thursday 01 March 2018 23:12
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
In my situation this happens because i’m not so good. I hope that the kmtronic temp will be implemented as soon as possible within this nice program. I like it so much that I contributed to the financing. Thank you
- gizmocuz
- Posts: 2350
- Joined: Thursday 11 July 2013 18:59
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Top of the world
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
@Dulka, thanks ! If you update to the latest beta version it should work. Just add the KMTronic TCP hardware
Quality outlives Quantity!
-
- Posts: 8
- Joined: Thursday 01 March 2018 23:12
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
I have done it and it works. Tank you very much!!!!
-
- Posts: 21
- Joined: Saturday 09 July 2016 8:27
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: U.K.-England
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
Hi my 8.channel kmtronic web relay keeps going idle after a period of time
I have to reset Domoticz to wake up the the relay any ideas
I’m using the latest beta version
Thank in advance
John
Sent from my iPhone using Tapatalk
I have to reset Domoticz to wake up the the relay any ideas
I’m using the latest beta version
Thank in advance
John
Sent from my iPhone using Tapatalk
- gizmocuz
- Posts: 2350
- Joined: Thursday 11 July 2013 18:59
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Top of the world
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
Looking at the code, it also tries to poll every 10 seconds the relay status, so it can not be a timeout problem.
It could be a firmware issue, try to see if there is a new firmware
Make sure the device has a fixed IP address, as well as Domoticz
It could be a firmware issue, try to see if there is a new firmware
Make sure the device has a fixed IP address, as well as Domoticz
Quality outlives Quantity!
-
- Posts: 18
- Joined: Sunday 24 December 2017 10:15
- Target OS: -
- Domoticz version: 2023.2
- Location: Veneto, Italy
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
At the moment I use the 4.9700 version and the native support for the KMTronic Temperature board does not seem to be present. Am I wrong?gizmocuz wrote: ↑Saturday 10 March 2018 9:48 In the next beta version (currently building) support has been added for the KMTronic temperature sensors.
https://github.com/domoticz/domoticz/co ... 0ba68bc830
Not sure why people are going very complicated with complex scripts while implementing this took less then 5 minutes in the native code
I am using the lua script at the moment, but unfortunately (and I can not understand why), domoticz does not send notifications although correctly set (sends them to other sensors).
- gizmocuz
- Posts: 2350
- Joined: Thursday 11 July 2013 18:59
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Top of the world
- Contact:
Re: new: KMTronic USB/485/TCP(Web) support
@mcgiak , send you a PM for a debug request
Quality outlives Quantity!
Who is online
Users browsing this forum: Bing [Bot] and 0 guests