Integration into other systems
WebHMI allows you to interact with other systems by running HTTP requests. For this, WebHMI has a library Lua-cURLv3. Using it you can easily send data to third-party systems and also request the necessary data from these systems.
This function is available since version 2.6.4520.
An example of a program executing an HTTPS request to send data as a file at URL https://demo.com/upload:
function main (userId)
INFO("Doing CURL");
c = cURL.easy_init()
c:setopt_url("https://demo.com/upload")
postdata = {
name = {
file="dummy.html",
data="<html><bold>bold</bold></html>",
type="text/html"
}
}
c:post(postdata)
c:perform()
c:close()
INFO("CURL done");
end
Note that for SSL certificates correctly function, you need to have an exact local time. If there is a significant deviation of the local clock, https requests may not work. We recommend using time synchronization via NTP server.
Example of requesting a number in the GET request at URL http://demo.example.com/read-data?param=32 and writing it to the register with id=4356:
function main (userId)
c = cURL.easy_init()
c:setopt_url("http://demo.example.com/read-data?param=32")
local res = "";
c:perform({
writefunction = function(str)
res = res .. str;
end})
c:close()
WriteReg(4356, res);
end