<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[LogicMachine Forum - Scripting]]></title>
		<link>https://forum.logicmachine.net/</link>
		<description><![CDATA[LogicMachine Forum - https://forum.logicmachine.net]]></description>
		<pubDate>Sun, 17 May 2026 14:52:02 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Time delay command: suggestion]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6420</link>
			<pubDate>Wed, 13 May 2026 07:08:50 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=328">Domoticatorino</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6420</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i">Hi,</span><br />
<span style="font-style: italic;" class="mycode_i">I am preparing a logic to manage an heating system.</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Considering that I have to set TOF or TON (set to ON or OFF a grp address only if the condition is valid for more than 5 or 10 minutes). </span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Using "os.delay"  for minutes is not suggested as you know.</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Which is the best approach to manage it?</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Thanks.</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">BR</span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i">Hi,</span><br />
<span style="font-style: italic;" class="mycode_i">I am preparing a logic to manage an heating system.</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Considering that I have to set TOF or TON (set to ON or OFF a grp address only if the condition is valid for more than 5 or 10 minutes). </span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Using "os.delay"  for minutes is not suggested as you know.</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Which is the best approach to manage it?</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Thanks.</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">BR</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Script with Tag condition]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6416</link>
			<pubDate>Tue, 05 May 2026 07:01:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=328">Domoticatorino</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6416</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>-- 1. MAPPATURA: "Tag del Sensore" -&gt; "Tag dell'Abilitazione"<br />
local mappa_settori = {<br />
  ['sensore_area_1_settore_1'] = 'area_1_settore_1',<br />
  ['sensore_area_1_settore_2'] = 'area_1_settore_2',<br />
  ['sensore_area_1_settore_3'] = 'area_1_settore_3',<br />
  ['sensore_area_2_settore_1'] = 'area_2_settore_1',<br />
  ['sensore_area_2_settore_2'] = 'area_2_settore_2',<br />
  ['sensore_area_2_settore_3'] = 'area_2_settore_3',<br />
}<br />
<br />
local valore_allarme = event.getvalue()<br />
local addr_sorgente = event.dst<br />
<br />
if valore_allarme == true then<br />
    -- A. CONTROLLO ESCLUSIONE (5/2/x -&gt; 5/5/100+x)<br />
    local offset = tonumber(addr_sorgente:match("/([^/]+)&#36;"))<br />
    if offset then<br />
        local addr_esclusione = "5/5/" .. (100 + offset)<br />
        if grp.getvalue(addr_esclusione) == true then<br />
            log('ESCLUSO: ' .. addr_sorgente)<br />
            return <br />
        end<br />
    end<br />
<br />
    -- B. RECUPERO OGGETTO E IDENTIFICAZIONE<br />
    local oggetto_allarme = grp.find(addr_sorgente)<br />
    local tags = (oggetto_allarme and oggetto_allarme.tags) or {}<br />
    <br />
    local tag_abilitazione_da_cercare = nil<br />
<br />
    -- Cerchiamo quale dei tag del sensore è presente nella nostra mappa<br />
    for _, tag in ipairs(tags) do<br />
        local clean_tag = tag:gsub("%s+", ""):lower()<br />
        if mappa_settori[clean_tag] then<br />
            tag_abilitazione_da_cercare = mappa_settori[clean_tag]<br />
            break<br />
        end<br />
    end<br />
<br />
    -- C. VERIFICA STATO AREA<br />
    if tag_abilitazione_da_cercare then<br />
        -- Cerchiamo l'oggetto che ha il tag del settore (es. 'area_1_settore_1')<br />
        local ogg_settore = grp.tag(tag_abilitazione_da_cercare)<br />
        <br />
        if #ogg_settore &gt; 0 then<br />
            local stato_area = grp.getvalue(ogg_settore[1].address)<br />
            <br />
            if stato_area == true then<br />
                -- D. INVIO MAIL<br />
                local mailer = require('mail')<br />
                local nome_sensore = oggetto_allarme.name or addr_sorgente<br />
                local res, err = mailer.send('tua_mail@esempio.it', <br />
                    'ALLARME: ' .. nome_sensore, <br />
                    'Allarme reale in ' .. tag_abilitazione_da_cercare)<br />
                log('Mail inviata:', res)<br />
            else<br />
                log('Area disattivata: ' .. tag_abilitazione_da_cercare)<br />
            end<br />
        else<br />
            log('ERRORE: Nessun oggetto di comando trovato con tag: ' .. tag_abilitazione_da_cercare)<br />
        end<br />
    else<br />
        log('ERRORE: Sensore ' .. addr_sorgente .. ' non ha un tag "sensore_area_..." valido.')<br />
    end<br />
end</code></div></div><br />
Hi everybody,<br />
with this script I would like to send a notification (by mail) if an alarm sensor (tag alarm) goes to true but only if this sensor own to a sector (tag "area_x_sector_x) is armed.<br />
The sensor has a second tag "sensore_area_x_settore_x) in order to verify if it owns to the sector armed.<br />
It does not work because the tag value is empty.<br />
<br />
How can be possible? Is it possible to use 2 tags for a grp address?<br />
<br />
Thanks.]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>-- 1. MAPPATURA: "Tag del Sensore" -&gt; "Tag dell'Abilitazione"<br />
local mappa_settori = {<br />
  ['sensore_area_1_settore_1'] = 'area_1_settore_1',<br />
  ['sensore_area_1_settore_2'] = 'area_1_settore_2',<br />
  ['sensore_area_1_settore_3'] = 'area_1_settore_3',<br />
  ['sensore_area_2_settore_1'] = 'area_2_settore_1',<br />
  ['sensore_area_2_settore_2'] = 'area_2_settore_2',<br />
  ['sensore_area_2_settore_3'] = 'area_2_settore_3',<br />
}<br />
<br />
local valore_allarme = event.getvalue()<br />
local addr_sorgente = event.dst<br />
<br />
if valore_allarme == true then<br />
    -- A. CONTROLLO ESCLUSIONE (5/2/x -&gt; 5/5/100+x)<br />
    local offset = tonumber(addr_sorgente:match("/([^/]+)&#36;"))<br />
    if offset then<br />
        local addr_esclusione = "5/5/" .. (100 + offset)<br />
        if grp.getvalue(addr_esclusione) == true then<br />
            log('ESCLUSO: ' .. addr_sorgente)<br />
            return <br />
        end<br />
    end<br />
<br />
    -- B. RECUPERO OGGETTO E IDENTIFICAZIONE<br />
    local oggetto_allarme = grp.find(addr_sorgente)<br />
    local tags = (oggetto_allarme and oggetto_allarme.tags) or {}<br />
    <br />
    local tag_abilitazione_da_cercare = nil<br />
<br />
    -- Cerchiamo quale dei tag del sensore è presente nella nostra mappa<br />
    for _, tag in ipairs(tags) do<br />
        local clean_tag = tag:gsub("%s+", ""):lower()<br />
        if mappa_settori[clean_tag] then<br />
            tag_abilitazione_da_cercare = mappa_settori[clean_tag]<br />
            break<br />
        end<br />
    end<br />
<br />
    -- C. VERIFICA STATO AREA<br />
    if tag_abilitazione_da_cercare then<br />
        -- Cerchiamo l'oggetto che ha il tag del settore (es. 'area_1_settore_1')<br />
        local ogg_settore = grp.tag(tag_abilitazione_da_cercare)<br />
        <br />
        if #ogg_settore &gt; 0 then<br />
            local stato_area = grp.getvalue(ogg_settore[1].address)<br />
            <br />
            if stato_area == true then<br />
                -- D. INVIO MAIL<br />
                local mailer = require('mail')<br />
                local nome_sensore = oggetto_allarme.name or addr_sorgente<br />
                local res, err = mailer.send('tua_mail@esempio.it', <br />
                    'ALLARME: ' .. nome_sensore, <br />
                    'Allarme reale in ' .. tag_abilitazione_da_cercare)<br />
                log('Mail inviata:', res)<br />
            else<br />
                log('Area disattivata: ' .. tag_abilitazione_da_cercare)<br />
            end<br />
        else<br />
            log('ERRORE: Nessun oggetto di comando trovato con tag: ' .. tag_abilitazione_da_cercare)<br />
        end<br />
    else<br />
        log('ERRORE: Sensore ' .. addr_sorgente .. ' non ha un tag "sensore_area_..." valido.')<br />
    end<br />
end</code></div></div><br />
Hi everybody,<br />
with this script I would like to send a notification (by mail) if an alarm sensor (tag alarm) goes to true but only if this sensor own to a sector (tag "area_x_sector_x) is armed.<br />
The sensor has a second tag "sensore_area_x_settore_x) in order to verify if it owns to the sector armed.<br />
It does not work because the tag value is empty.<br />
<br />
How can be possible? Is it possible to use 2 tags for a grp address?<br />
<br />
Thanks.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[kWh meter, a ZIV E0090 P1 port]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6411</link>
			<pubDate>Fri, 01 May 2026 15:09:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=3178">cheist</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6411</guid>
			<description><![CDATA[I received a new kWh meter, a ZIV E0090. I think it’s DSMR 5.0.<br />
<br />
I’m currently using this script, which works, but can it be extended with real-time current values and such?<br />
<br />
I’d actually like to use everything that can be read out in graphs.<br />
<br />
<br />
<br />
<br />
-- P1 poort uitlezen (ultra-licht)<br />
local LAST = '!'<br />
local serial = require('serial')<br />
local port = serial.open('/dev/ttyUSB0', {<br />
  baudrate = 115200,  -- DSMR2/3: 9600, DSMR4: 115200<br />
  databits = 8,    -- DSMR2/3: 7,    DSMR4: 8<br />
  stopbits = 1,<br />
  parity  = 'none',-- DSMR4: 'none'<br />
  duplex  = 'full'<br />
})<br />
<br />
local function read_frame(p)<br />
  local buf = {}<br />
  while true do<br />
    local c = p:read(1)<br />
    if c == nil or c == LAST then break<br />
    elseif c ~= '\r' then buf[#buf+1] = c end<br />
  end<br />
  return table.concat(buf)<br />
end<br />
<br />
local data = read_frame(port)<br />
port:flush()<br />
if not data then return end<br />
<br />
-- Helper: parse getal met punt, return number of nil<br />
local function num(pat)<br />
  local s = data:match(pat)<br />
  return s and tonumber(s) or nil<br />
end<br />
<br />
-- Verbruik kWh (T1,T2) en totaal<br />
local t1 = num([[1%-0:1%.8%.1%((%d+%.%d+)]])<br />
local t2 = num([[1%-0:1%.8%.2%((%d+%.%d+)]])<br />
if t1 then grp.update('14/0/1', t1) end<br />
if t2 then grp.update('14/0/2', t2) end<br />
local v_tot = (t1 or 0) + (t2 or 0)<br />
if t1 or t2 then grp.update('14/0/0', v_tot) end<br />
<br />
-- Verbruik € (alleen als prijs aanwezig)<br />
do<br />
  local prijs = grp.getvalue('14/0/11')<br />
  if type(prijs) == 'number' and (t1 or t2) then<br />
    grp.update('14/0/13', v_tot * prijs)<br />
  end<br />
end<br />
<br />
-- Retour kWh (T1,T2) en totaal<br />
local r1 = num([[1%-0:2%.8%.1%((%d+%.%d+)]])<br />
local r2 = num([[1%-0:2%.8%.2%((%d+%.%d+)]])<br />
if r1 then grp.update('14/0/4', r1) end<br />
if r2 then grp.update('14/0/5', r2) end<br />
local r_tot = (r1 or 0) + (r2 or 0)<br />
if r1 or r2 then grp.update('14/0/3', r_tot) end<br />
<br />
-- Retour € (alleen als prijs aanwezig)<br />
do<br />
  local prijs = grp.getvalue('14/0/12')<br />
  if type(prijs) == 'number' and (r1 or r2) then<br />
    grp.update('14/0/14', r_tot * prijs)<br />
  end<br />
end<br />
<br />
-- Actueel tarief (T1/T2 laatste cijfer)<br />
do<br />
  local t = data:match([[0%-0:96%.14%.0%(%d%d%d(%d)]])<br />
  if t then grp.update('14/0/10', t) end<br />
end<br />
<br />
-- Actueel verbruik kW/W en €<br />
do<br />
  local p_kw = num([[1%-0:1%.7%.0%((%d+%.%d+)]])<br />
  if p_kw then<br />
    grp.update('14/0/6', p_kw)<br />
    grp.update('14/0/7', p_kw * 1000)<br />
    local prijs = grp.getvalue('14/0/11')<br />
    if type(prijs) == 'number' then grp.update('14/0/15', p_kw * prijs) end<br />
  end<br />
end<br />
<br />
-- Actueel retour kW/W<br />
do<br />
  local pr_kw = num([[1%-0:2%.7%.0%((%d+%.%d+)]])<br />
  if pr_kw then<br />
    grp.update('14/0/8', pr_kw)<br />
    grp.update('14/0/9', pr_kw * 1000)<br />
  end<br />
end<br />
<br />
-- Gas m³ en €<br />
do<br />
  local gas = num([[0%-1:24%.2%.1%(.+%)%((%d+%.%d+)]])<br />
  if gas then<br />
    grp.update('14/1/0', gas)<br />
    local prijs = grp.getvalue('14/1/1')<br />
    if type(prijs) == 'number' then grp.update('14/1/2', gas * prijs) end<br />
  end<br />
end]]></description>
			<content:encoded><![CDATA[I received a new kWh meter, a ZIV E0090. I think it’s DSMR 5.0.<br />
<br />
I’m currently using this script, which works, but can it be extended with real-time current values and such?<br />
<br />
I’d actually like to use everything that can be read out in graphs.<br />
<br />
<br />
<br />
<br />
-- P1 poort uitlezen (ultra-licht)<br />
local LAST = '!'<br />
local serial = require('serial')<br />
local port = serial.open('/dev/ttyUSB0', {<br />
  baudrate = 115200,  -- DSMR2/3: 9600, DSMR4: 115200<br />
  databits = 8,    -- DSMR2/3: 7,    DSMR4: 8<br />
  stopbits = 1,<br />
  parity  = 'none',-- DSMR4: 'none'<br />
  duplex  = 'full'<br />
})<br />
<br />
local function read_frame(p)<br />
  local buf = {}<br />
  while true do<br />
    local c = p:read(1)<br />
    if c == nil or c == LAST then break<br />
    elseif c ~= '\r' then buf[#buf+1] = c end<br />
  end<br />
  return table.concat(buf)<br />
end<br />
<br />
local data = read_frame(port)<br />
port:flush()<br />
if not data then return end<br />
<br />
-- Helper: parse getal met punt, return number of nil<br />
local function num(pat)<br />
  local s = data:match(pat)<br />
  return s and tonumber(s) or nil<br />
end<br />
<br />
-- Verbruik kWh (T1,T2) en totaal<br />
local t1 = num([[1%-0:1%.8%.1%((%d+%.%d+)]])<br />
local t2 = num([[1%-0:1%.8%.2%((%d+%.%d+)]])<br />
if t1 then grp.update('14/0/1', t1) end<br />
if t2 then grp.update('14/0/2', t2) end<br />
local v_tot = (t1 or 0) + (t2 or 0)<br />
if t1 or t2 then grp.update('14/0/0', v_tot) end<br />
<br />
-- Verbruik € (alleen als prijs aanwezig)<br />
do<br />
  local prijs = grp.getvalue('14/0/11')<br />
  if type(prijs) == 'number' and (t1 or t2) then<br />
    grp.update('14/0/13', v_tot * prijs)<br />
  end<br />
end<br />
<br />
-- Retour kWh (T1,T2) en totaal<br />
local r1 = num([[1%-0:2%.8%.1%((%d+%.%d+)]])<br />
local r2 = num([[1%-0:2%.8%.2%((%d+%.%d+)]])<br />
if r1 then grp.update('14/0/4', r1) end<br />
if r2 then grp.update('14/0/5', r2) end<br />
local r_tot = (r1 or 0) + (r2 or 0)<br />
if r1 or r2 then grp.update('14/0/3', r_tot) end<br />
<br />
-- Retour € (alleen als prijs aanwezig)<br />
do<br />
  local prijs = grp.getvalue('14/0/12')<br />
  if type(prijs) == 'number' and (r1 or r2) then<br />
    grp.update('14/0/14', r_tot * prijs)<br />
  end<br />
end<br />
<br />
-- Actueel tarief (T1/T2 laatste cijfer)<br />
do<br />
  local t = data:match([[0%-0:96%.14%.0%(%d%d%d(%d)]])<br />
  if t then grp.update('14/0/10', t) end<br />
end<br />
<br />
-- Actueel verbruik kW/W en €<br />
do<br />
  local p_kw = num([[1%-0:1%.7%.0%((%d+%.%d+)]])<br />
  if p_kw then<br />
    grp.update('14/0/6', p_kw)<br />
    grp.update('14/0/7', p_kw * 1000)<br />
    local prijs = grp.getvalue('14/0/11')<br />
    if type(prijs) == 'number' then grp.update('14/0/15', p_kw * prijs) end<br />
  end<br />
end<br />
<br />
-- Actueel retour kW/W<br />
do<br />
  local pr_kw = num([[1%-0:2%.7%.0%((%d+%.%d+)]])<br />
  if pr_kw then<br />
    grp.update('14/0/8', pr_kw)<br />
    grp.update('14/0/9', pr_kw * 1000)<br />
  end<br />
end<br />
<br />
-- Gas m³ en €<br />
do<br />
  local gas = num([[0%-1:24%.2%.1%(.+%)%((%d+%.%d+)]])<br />
  if gas then<br />
    grp.update('14/1/0', gas)<br />
    local prijs = grp.getvalue('14/1/1')<br />
    if type(prijs) == 'number' then grp.update('14/1/2', gas * prijs) end<br />
  end<br />
end]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Modbus help]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6402</link>
			<pubDate>Wed, 22 Apr 2026 09:35:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=3783">nisan</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6402</guid>
			<description><![CDATA[When using LM5 for Modbus communication, if the resident script queries the register status while the event script is writing to the register, it may not be possible to write to the register. How can this be better resolved?]]></description>
			<content:encoded><![CDATA[When using LM5 for Modbus communication, if the resident script queries the register status while the event script is writing to the register, it may not be possible to write to the register. How can this be better resolved?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[RS232 - HD Mediaplayer ProCLD 750]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6398</link>
			<pubDate>Mon, 20 Apr 2026 11:47:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=2114">epps</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6398</guid>
			<description><![CDATA[Hello everyone,<br />
<br />
we have a customer that has this Videoplayer<br />
ProCLD 750<br />
<a href="https://www.fms-infosysteme.de/procld-750" target="_blank" rel="noopener" class="mycode_url">https://www.fms-infosysteme.de/procld-750</a><br />
<br />
This device has a RS232 interface to control it.<br />
Is there a way to connect and control it with the Logicmachine via RS232 ?<br />
<br />
Thanks<br />
Kind regards<br />
Epps<br />
<div>
<img src="https://forum.logicmachine.net/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=4905" target="_blank">Gebrauchsanleitung ProCLD750_28_10_2020.pdf</a> (Size: 794.23 KB / Downloads: 5)</div>
]]></description>
			<content:encoded><![CDATA[Hello everyone,<br />
<br />
we have a customer that has this Videoplayer<br />
ProCLD 750<br />
<a href="https://www.fms-infosysteme.de/procld-750" target="_blank" rel="noopener" class="mycode_url">https://www.fms-infosysteme.de/procld-750</a><br />
<br />
This device has a RS232 interface to control it.<br />
Is there a way to connect and control it with the Logicmachine via RS232 ?<br />
<br />
Thanks<br />
Kind regards<br />
Epps<br />
<div>
<img src="https://forum.logicmachine.net/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=4905" target="_blank">Gebrauchsanleitung ProCLD750_28_10_2020.pdf</a> (Size: 794.23 KB / Downloads: 5)</div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Blink Output LM5R]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6397</link>
			<pubDate>Mon, 20 Apr 2026 07:47:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=2310">Frank68</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6397</guid>
			<description><![CDATA[Hi<br />
<br />
I need a digital output from the reactor that makes a lamp flash. Is it possible to create a reusable function that does this, passing it the flashing time?<br />
<br />
Thank you very much.]]></description>
			<content:encoded><![CDATA[Hi<br />
<br />
I need a digital output from the reactor that makes a lamp flash. Is it possible to create a reusable function that does this, passing it the flashing time?<br />
<br />
Thank you very much.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[TAG filtering in script]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6396</link>
			<pubDate>Fri, 17 Apr 2026 14:09:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=2310">Frank68</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6396</guid>
			<description><![CDATA[Good morning<br />
<br />
I've already created applications that, in the event of an alarm, send emails to a specific email list. Now the client is asking me if I can differentiate the emails sent based on the alarm. I was wondering if it's possible to use tags to differentiate who gets emails or text messages. How can I use tags?<br />
<br />
Thanks]]></description>
			<content:encoded><![CDATA[Good morning<br />
<br />
I've already created applications that, in the event of an alarm, send emails to a specific email list. Now the client is asking me if I can differentiate the emails sent based on the alarm. I was wondering if it's possible to use tags to differentiate who gets emails or text messages. How can I use tags?<br />
<br />
Thanks]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[API Datadis]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6393</link>
			<pubDate>Thu, 16 Apr 2026 11:32:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=2315">JRP</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6393</guid>
			<description><![CDATA[Hola<br />
Necesito integrar la API de Datadis (<a href="https://datadis.es/home" target="_blank" rel="noopener" class="mycode_url">https://datadis.es/home</a>), que permite acceder a los datos de consumo eléctrico de los contadores inteligentes en España, en una aplicación Wiser para KNX.<br />
<br />
Datadis requiere la creación de un nombre de usuario y una contraseña, así como un token de acceso.<br />
<br />
¿Cuál es la mejor manera de hacerlo?<br />
<br />
Gracias.<br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Hola<br />
Necesito integrar la API de Datadis (<a href="https://datadis.es/home" target="_blank" rel="noopener" class="mycode_url">https://datadis.es/home</a>), que permite acceder a los datos de consumo eléctrico de los contadores inteligentes en España, en una aplicación Wiser para KNX.<br />
<br />
Datadis requiere la creación de un nombre de usuario y una contraseña, así como un token de acceso.<br />
<br />
¿Cuál es la mejor manera de hacerlo?<br />
<br />
Gracias.<br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Lua script connecting to own KNXnet/IP tunnelling server — status 8]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6384</link>
			<pubDate>Wed, 08 Apr 2026 13:39:34 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=5867">Intelect</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6384</guid>
			<description><![CDATA[I am trying to send individual address KNX property write/read frames from a Lua event script on LM5 (IP Routing mode, KNX address 2.1.5). The script opens a UDP socket and sends a CONNECT_REQUEST . The CONNECT_RESPONSE always returns status 0x08 (which I assume is no more connections). This happens even after a reboot with no other clients connected. ETS connects successfully using NAT mode. Is it possible for a Lua script to connect to the LM's own tunnelling server, and if so what is the correct approach?]]></description>
			<content:encoded><![CDATA[I am trying to send individual address KNX property write/read frames from a Lua event script on LM5 (IP Routing mode, KNX address 2.1.5). The script opens a UDP socket and sends a CONNECT_REQUEST . The CONNECT_RESPONSE always returns status 0x08 (which I assume is no more connections). This happens even after a reboot with no other clients connected. ETS connects successfully using NAT mode. Is it possible for a Lua script to connect to the LM's own tunnelling server, and if so what is the correct approach?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[scripting knx]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6381</link>
			<pubDate>Wed, 08 Apr 2026 06:28:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=5801">ALEJANDRO</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6381</guid>
			<description><![CDATA[Good morning,<br />
<br />
I'm having a problem with the functions and I don't know how to solve it.<br />
<br />
Here's the problem:<br />
<br />
I currently have three logic machines taking KNX data from temperature, humidity, and CO2 sensors. I need them to calculate the average temperature, CO2, and humidity. But I only want to calculate this for the sensors located in rented properties.<br />
<br />
I have the following variables.<br />
<br />
<br />
Rented or non-rented status of 27 dwellings in group addresses from 2/0/176 to 2/0/202:<br />
<br />
- Rented = 1<br />
<br />
- Non-rented = 0<br />
Temperature values delivered by each dwelling sensor:<br />
<br />
'0/0/11','0/0/27','0/0/43','0/0/59','0/0/75','0/0/91','0/0/107',<br />
<br />
'0/0/123','0/0/139','0/0/155','0/0/171','0/0/187','0/0/203',<br />
<br />
'0/0/219','0/0/235','0/0/251',<br />
<br />
'0/1/11','0/1/27','0/1/43','0/1/59','0/1/75','0/1/91','0/1/107',<br />
<br />
'0/1/123','0/1/139','0/1/155','0/1/171'<br />
<br />
Variable where the average building temperature will be stored:<br />
<br />
2/0/164<br />
<br />
And now I'll show you the code I wrote:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>-- Direcciones de estado de las 27 viviendas (0=libre, 1=alquilada, 2=mantenimiento, 3=ocupada)<br />
local estados = {}<br />
for i = 1, 27 do<br />
    estados[i] = '2/0/' .. (175 + i)  -- 176 → 202<br />
end<br />
<br />
-- Direcciones de temperatura individuales<br />
local direcciones_temp = {<br />
    '0/0/11','0/0/27','0/0/43','0/0/59','0/0/75','0/0/91','0/0/107',<br />
    '0/0/123','0/0/139','0/0/155','0/0/171','0/0/187','0/0/203',<br />
    '0/0/219','0/0/235','0/0/251',<br />
    '0/1/11','0/1/27','0/1/43','0/1/59','0/1/75','0/1/91','0/1/107',<br />
    '0/1/123','0/1/139','0/1/155','0/1/171'<br />
}<br />
<br />
-- Dirección donde guardar la temperatura media<br />
local destino1 = '2/0/164'<br />
<br />
-- Rango válido de temperaturas<br />
local min_temp = -20<br />
local max_temp = 60<br />
<br />
-- Intervalo de espera: 5 minutos (300 segundos)<br />
local INTERVALO = 300<br />
<br />
<br />
-- ============================================================<br />
-- BUCLE PRINCIPAL (TU MISMO CÓDIGO, REPITIÉNDOSE PARA SIEMPRE)<br />
-- ============================================================<br />
<br />
while true do<br />
<br />
    local suma = 0<br />
    local contador = 0<br />
<br />
    -- Recorrer las 27 viviendas<br />
    for i = 1, 27 do<br />
        local estado = grp.getvalue(estados[i])<br />
        local valor = grp.getvalue(direcciones_temp[i])<br />
<br />
        -- Solo usar temperatura si la vivienda está alquilada<br />
        if estado == 1 then<br />
            if valor ~= nil and type(valor) == "number" then<br />
                if valor &gt;= min_temp and valor &lt;= max_temp then<br />
                    suma = suma + valor<br />
                    contador = contador + 1<br />
                else<br />
                    log("Temperatura fuera de rango en " .. direcciones_temp[i] .. ": " .. tostring(valor))<br />
                end<br />
            else<br />
                log("Valor de temperatura inválido o nulo en " .. direcciones_temp[i])<br />
            end<br />
        end<br />
    end<br />
<br />
    -- Guardar la media si hay datos válidos<br />
    if contador &gt; 0 then<br />
        local media = suma / contador<br />
        grp.write(destino1, media)<br />
        log("Temperatura media (solo alquilados) actualizada en " .. destino1 .. ": " .. media)<br />
    else<br />
        log("No hay viviendas alquiladas con temperatura válida para calcular la media")<br />
    end<br />
<br />
    -- Esperar 5 minutos antes de repetir<br />
    os.sleep(INTERVALO)<br />
<br />
end</code></div></div><br />
Lo he intentado por todos los medios posibles y no me  calcula la temperatura media y cuando lo hace satura la memoria de la logic machine.]]></description>
			<content:encoded><![CDATA[Good morning,<br />
<br />
I'm having a problem with the functions and I don't know how to solve it.<br />
<br />
Here's the problem:<br />
<br />
I currently have three logic machines taking KNX data from temperature, humidity, and CO2 sensors. I need them to calculate the average temperature, CO2, and humidity. But I only want to calculate this for the sensors located in rented properties.<br />
<br />
I have the following variables.<br />
<br />
<br />
Rented or non-rented status of 27 dwellings in group addresses from 2/0/176 to 2/0/202:<br />
<br />
- Rented = 1<br />
<br />
- Non-rented = 0<br />
Temperature values delivered by each dwelling sensor:<br />
<br />
'0/0/11','0/0/27','0/0/43','0/0/59','0/0/75','0/0/91','0/0/107',<br />
<br />
'0/0/123','0/0/139','0/0/155','0/0/171','0/0/187','0/0/203',<br />
<br />
'0/0/219','0/0/235','0/0/251',<br />
<br />
'0/1/11','0/1/27','0/1/43','0/1/59','0/1/75','0/1/91','0/1/107',<br />
<br />
'0/1/123','0/1/139','0/1/155','0/1/171'<br />
<br />
Variable where the average building temperature will be stored:<br />
<br />
2/0/164<br />
<br />
And now I'll show you the code I wrote:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>-- Direcciones de estado de las 27 viviendas (0=libre, 1=alquilada, 2=mantenimiento, 3=ocupada)<br />
local estados = {}<br />
for i = 1, 27 do<br />
    estados[i] = '2/0/' .. (175 + i)  -- 176 → 202<br />
end<br />
<br />
-- Direcciones de temperatura individuales<br />
local direcciones_temp = {<br />
    '0/0/11','0/0/27','0/0/43','0/0/59','0/0/75','0/0/91','0/0/107',<br />
    '0/0/123','0/0/139','0/0/155','0/0/171','0/0/187','0/0/203',<br />
    '0/0/219','0/0/235','0/0/251',<br />
    '0/1/11','0/1/27','0/1/43','0/1/59','0/1/75','0/1/91','0/1/107',<br />
    '0/1/123','0/1/139','0/1/155','0/1/171'<br />
}<br />
<br />
-- Dirección donde guardar la temperatura media<br />
local destino1 = '2/0/164'<br />
<br />
-- Rango válido de temperaturas<br />
local min_temp = -20<br />
local max_temp = 60<br />
<br />
-- Intervalo de espera: 5 minutos (300 segundos)<br />
local INTERVALO = 300<br />
<br />
<br />
-- ============================================================<br />
-- BUCLE PRINCIPAL (TU MISMO CÓDIGO, REPITIÉNDOSE PARA SIEMPRE)<br />
-- ============================================================<br />
<br />
while true do<br />
<br />
    local suma = 0<br />
    local contador = 0<br />
<br />
    -- Recorrer las 27 viviendas<br />
    for i = 1, 27 do<br />
        local estado = grp.getvalue(estados[i])<br />
        local valor = grp.getvalue(direcciones_temp[i])<br />
<br />
        -- Solo usar temperatura si la vivienda está alquilada<br />
        if estado == 1 then<br />
            if valor ~= nil and type(valor) == "number" then<br />
                if valor &gt;= min_temp and valor &lt;= max_temp then<br />
                    suma = suma + valor<br />
                    contador = contador + 1<br />
                else<br />
                    log("Temperatura fuera de rango en " .. direcciones_temp[i] .. ": " .. tostring(valor))<br />
                end<br />
            else<br />
                log("Valor de temperatura inválido o nulo en " .. direcciones_temp[i])<br />
            end<br />
        end<br />
    end<br />
<br />
    -- Guardar la media si hay datos válidos<br />
    if contador &gt; 0 then<br />
        local media = suma / contador<br />
        grp.write(destino1, media)<br />
        log("Temperatura media (solo alquilados) actualizada en " .. destino1 .. ": " .. media)<br />
    else<br />
        log("No hay viviendas alquiladas con temperatura válida para calcular la media")<br />
    end<br />
<br />
    -- Esperar 5 minutos antes de repetir<br />
    os.sleep(INTERVALO)<br />
<br />
end</code></div></div><br />
Lo he intentado por todos los medios posibles y no me  calcula la temperatura media y cuando lo hace satura la memoria de la logic machine.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Object not shown in Objects' tab]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6379</link>
			<pubDate>Sun, 05 Apr 2026 20:46:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=652">puntukas</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6379</guid>
			<description><![CDATA[I have an object from ETS 31/0/45 but this object is not displayed in the Object tab. Also I can not add another object with the same address.<br />
If I find ID thru <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>local obj = grp.find('31/0/45')<br />
if obj then<br />
  for k,v in pairs(obj) do<br />
    log(k .. ' = ' .. tostring(v))<br />
  end<br />
else<br />
  log('not found')<br />
end</code></div></div>and delete this object with "grp.delete(id)", and then add it manually, the operation is successful but it again dissapears from the list.<br />
<br />
Could you advice?<br />
<br />
Thanks<br />

<div>
<img src="https://forum.logicmachine.net/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=4876" target="_blank">Screenshot 2026-04-05 233807.png</a> (Size: 54.07 KB / Downloads: 72)</div>
]]></description>
			<content:encoded><![CDATA[I have an object from ETS 31/0/45 but this object is not displayed in the Object tab. Also I can not add another object with the same address.<br />
If I find ID thru <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>local obj = grp.find('31/0/45')<br />
if obj then<br />
  for k,v in pairs(obj) do<br />
    log(k .. ' = ' .. tostring(v))<br />
  end<br />
else<br />
  log('not found')<br />
end</code></div></div>and delete this object with "grp.delete(id)", and then add it manually, the operation is successful but it again dissapears from the list.<br />
<br />
Could you advice?<br />
<br />
Thanks<br />

<div>
<img src="https://forum.logicmachine.net/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=4876" target="_blank">Screenshot 2026-04-05 233807.png</a> (Size: 54.07 KB / Downloads: 72)</div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DMX lighting control]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6374</link>
			<pubDate>Tue, 31 Mar 2026 08:00:41 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=110">phongvucba</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6374</guid>
			<description><![CDATA[Hi everyone! I have a project that uses this kit and I want to integrate it with my LM. Can I connect it?<br />
<br />
It's this kit; can I connect it to the LM via the RS485 port?<br />
Thank so much everyone! <img src="https://forum.logicmachine.net/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<div>
<img src="https://forum.logicmachine.net/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=4863" target="_blank">z7676579473247_fa9cc63553269918aa5fc27114775656.jpg</a> (Size: 88.07 KB / Downloads: 87)</div>
<br />
<div>
<img src="https://forum.logicmachine.net/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=4864" target="_blank">z7676579486908_69b7525e52dd35185871196a589f75cd.jpg</a> (Size: 270.55 KB / Downloads: 86)</div>
]]></description>
			<content:encoded><![CDATA[Hi everyone! I have a project that uses this kit and I want to integrate it with my LM. Can I connect it?<br />
<br />
It's this kit; can I connect it to the LM via the RS485 port?<br />
Thank so much everyone! <img src="https://forum.logicmachine.net/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<div>
<img src="https://forum.logicmachine.net/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=4863" target="_blank">z7676579473247_fa9cc63553269918aa5fc27114775656.jpg</a> (Size: 88.07 KB / Downloads: 87)</div>
<br />
<div>
<img src="https://forum.logicmachine.net/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=4864" target="_blank">z7676579486908_69b7525e52dd35185871196a589f75cd.jpg</a> (Size: 270.55 KB / Downloads: 86)</div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[get version of installed app]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6360</link>
			<pubDate>Sat, 21 Mar 2026 13:33:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=4150">Fcs</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6360</guid>
			<description><![CDATA[Hello everyone,<br />
<br />
I’m trying to find out how to determine the version of an installed application, basically the information that appears in the control file.<br />
<br />
I don’t know whether it’s stored in a database or in a file somewhere.<br />
<br />
Thanks for the help.]]></description>
			<content:encoded><![CDATA[Hello everyone,<br />
<br />
I’m trying to find out how to determine the version of an installed application, basically the information that appears in the control file.<br />
<br />
I don’t know whether it’s stored in a database or in a file somewhere.<br />
<br />
Thanks for the help.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Syslog differences between Resident and Event Scripts]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6349</link>
			<pubDate>Thu, 12 Mar 2026 20:59:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=5430">BarryFromBondi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6349</guid>
			<description><![CDATA[I have the exact same Syslog set up in my Resident and Event Scripts - the Resident Scripts Syslog works, however the Event scripts doesnt<br />
<br />
The syslog set up that works in Resident is <br />
<br />
local socket = require("socket")<br />
<br />
-------------------------------------------------<br />
-- SYSLOG CONFIG<br />
-------------------------------------------------<br />
<br />
local SYSLOG_HOST = "192.168.1.51"<br />
local SYSLOG_PORT = 1514<br />
<br />
local HOSTNAME = "logicmachine"<br />
local APPNAME  = "solar-master"<br />
<br />
local LOG_INTERVAL = 60  -- seconds<br />
<br />
-------------------------------------------------<br />
-- PERSISTENT UDP SOCKET<br />
-------------------------------------------------<br />
<br />
storage.syslog_socket = storage.syslog_socket or socket.udp()<br />
<br />
local udp = storage.syslog_socket<br />
udp<img src="https://forum.logicmachine.net/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" />ettimeout(0)<br />
<br />
-------------------------------------------------<br />
-- RFC5424 TIMESTAMP<br />
-------------------------------------------------<br />
<br />
local function rfc5424_time()<br />
<br />
  local now = os.time()<br />
  local utc = os.time(os.date("!*t", now))<br />
  local offset = os.difftime(now, utc)<br />
<br />
  local sign = "+"<br />
  if offset &lt; 0 then sign = "-" end<br />
<br />
  offset = math.abs(offset)<br />
<br />
  local hours = math.floor(offset / 3600)<br />
  local mins  = math.floor((offset % 3600) / 60)<br />
<br />
  return os.date("%Y-%m-%dT%H:%M:%S") ..<br />
        string.format("%s%02d:%02d", sign, hours, mins)<br />
<br />
end<br />
<br />
-------------------------------------------------<br />
-- SYSLOG SENDER<br />
-------------------------------------------------<br />
<br />
local function slog(fields)<br />
<br />
  local timestamp = rfc5424_time()<br />
<br />
  local msg = "&lt;14&gt;1 "..timestamp.." "..HOSTNAME.." "..APPNAME.." - - - "..fields<br />
<br />
  udp<img src="https://forum.logicmachine.net/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" />endto(msg, SYSLOG_HOST, SYSLOG_PORT)<br />
<br />
end<br />
<br />
What needs to change for an Event Script to behave the same way and allow for logging to an external syslog server?<br />
<br />
Thanks]]></description>
			<content:encoded><![CDATA[I have the exact same Syslog set up in my Resident and Event Scripts - the Resident Scripts Syslog works, however the Event scripts doesnt<br />
<br />
The syslog set up that works in Resident is <br />
<br />
local socket = require("socket")<br />
<br />
-------------------------------------------------<br />
-- SYSLOG CONFIG<br />
-------------------------------------------------<br />
<br />
local SYSLOG_HOST = "192.168.1.51"<br />
local SYSLOG_PORT = 1514<br />
<br />
local HOSTNAME = "logicmachine"<br />
local APPNAME  = "solar-master"<br />
<br />
local LOG_INTERVAL = 60  -- seconds<br />
<br />
-------------------------------------------------<br />
-- PERSISTENT UDP SOCKET<br />
-------------------------------------------------<br />
<br />
storage.syslog_socket = storage.syslog_socket or socket.udp()<br />
<br />
local udp = storage.syslog_socket<br />
udp<img src="https://forum.logicmachine.net/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" />ettimeout(0)<br />
<br />
-------------------------------------------------<br />
-- RFC5424 TIMESTAMP<br />
-------------------------------------------------<br />
<br />
local function rfc5424_time()<br />
<br />
  local now = os.time()<br />
  local utc = os.time(os.date("!*t", now))<br />
  local offset = os.difftime(now, utc)<br />
<br />
  local sign = "+"<br />
  if offset &lt; 0 then sign = "-" end<br />
<br />
  offset = math.abs(offset)<br />
<br />
  local hours = math.floor(offset / 3600)<br />
  local mins  = math.floor((offset % 3600) / 60)<br />
<br />
  return os.date("%Y-%m-%dT%H:%M:%S") ..<br />
        string.format("%s%02d:%02d", sign, hours, mins)<br />
<br />
end<br />
<br />
-------------------------------------------------<br />
-- SYSLOG SENDER<br />
-------------------------------------------------<br />
<br />
local function slog(fields)<br />
<br />
  local timestamp = rfc5424_time()<br />
<br />
  local msg = "&lt;14&gt;1 "..timestamp.." "..HOSTNAME.." "..APPNAME.." - - - "..fields<br />
<br />
  udp<img src="https://forum.logicmachine.net/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" />endto(msg, SYSLOG_HOST, SYSLOG_PORT)<br />
<br />
end<br />
<br />
What needs to change for an Event Script to behave the same way and allow for logging to an external syslog server?<br />
<br />
Thanks]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[copy programming from one to another]]></title>
			<link>https://forum.logicmachine.net/showthread.php?tid=6347</link>
			<pubDate>Thu, 12 Mar 2026 12:13:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.logicmachine.net/member.php?action=profile&uid=5801">ALEJANDRO</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.logicmachine.net/showthread.php?tid=6347</guid>
			<description><![CDATA[Is it possible to copy scripts created in one logic machine to another?]]></description>
			<content:encoded><![CDATA[Is it possible to copy scripts created in one logic machine to another?]]></content:encoded>
		</item>
	</channel>
</rss>