LogicMachine Forum
communication vbus solar resol - Printable Version

+- LogicMachine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10)
+--- Thread: communication vbus solar resol (/showthread.php?tid=346)

Pages: 1 2 3


RE: communication vbus solar resol - KoBra - 24.01.2023

(09.01.2023, 10:45)KoBra Wrote:
(09.01.2023, 09:29)admin Wrote: You need to remove these lines from the library:
Code:
  for _, searcher in ipairs(package.searchers or package.loaders) do     name = "cjson"     local loader = searcher(name)     if type(loader) == 'function' then       package.preload[name] = loader       cjson  = require (name)       break     end     name = "json"     local loader = searcher(name)     if type(loader) == 'function' then       package.preload[name] = loader       cjson  = require (name)       break     end   end   for _, searcher in ipairs(package.searchers or package.loaders) do     name = "vbusprofiles"     local loader = searcher(name)     if type(loader) == 'function' then       package.preload[name] = loader       vbusprofiles  = require (name)       break     end     name = "user.vbusprofiles"     local loader = searcher(name)     if type(loader) == 'function' then       package.preload[name] = loader       vbusprofiles  = require (name)       break     end   end   for _, searcher in ipairs(package.searchers or package.loaders) do     name = "luavbuspacket"     local loader = searcher(name)     if type(loader) == 'function' then       package.preload[name] = loader       luavbuspacket  = require (name)       break     end     name = "user.luavbuspacket"     local loader = searcher(name)     if type(loader) == 'function' then       package.preload[name] = loader       luavbuspacket  = require (name)       break     end   end

now we go to 
Code:
User library vbus:303: bad argument #3 to 'format' (no value) stack traceback: [C]: in function 'format' User library vbus:303: in function 'packetExtract' User library vbus:205: in function 'waitData'

nobody with a clue?


RE: communication vbus solar resol - admin - 24.01.2023

Most likely that's a "luavbus.log" call. Find the relevant line in the library and add comments before this luavbus.log (--) to disable it:
Code:
-- luavbus.log(...)
But I think that it will fail somewhere else as the original error is caused by a missing variable/value.


RE: communication vbus solar resol - KoBra - 28.02.2026

I finally got it working thanks to AI. For everybody struggeling. Please find my working script below.
Code:
local http = require('socket.http') local bit = require('bit') -- CONFIGURATION local url = 'http://192.168.1.1/current/current_packets.vbus' local alarm_obj = '0/4/28' -- DPT 1.005: 1 = ALARM, 0 = OK function parseVBus()   local response, status = http.request(url)     -- 1. HTTP Connection Check (Network/KM2 Failure)   if status ~= 200 or not response then     grp.checkupdate(alarm_obj, true) -- ALARM ON     log("[SLL ALARM] KM2 unreachable. Network or Power issue.")     return   end   local function getVal(b1, b2)     if not b1 or not b2 then return 0 end     local v = (b2 * 256) + b1     if v > 32767 then v = v - 65536 end     return v * 0.1   end   -- 2. Find the primary SLL Data Header   local p = response:find('\16\00\113\34\16')     if p then     -- System is healthy     grp.checkupdate(alarm_obj, false) -- ALARM OFF (OK)     -- SENSORS     local s1 = getVal(response:byte(p+16), response:byte(p+17))     local s2 = getVal(response:byte(p+18), response:byte(p+19))     local s3 = getVal(response:byte(p+20), response:byte(p+21))         local s4 = 0     local p_extra = response:find('\16\00\00\01\76', p)     if p_extra then        s4 = getVal(response:byte(p_extra+18), response:byte(p_extra+19))     end     -- PWM & RELAYS (Verified Mapping)     local pwa = response:byte(p+32) or 0 -- PWM A     local r2  = response:byte(p+33) or 0 -- Relay 2 (Diverting Valve)     local mask = response:byte(p+40) or 0     local r1  = (bit.band(mask, 0x01) == 0x01) and 100 or 0 -- Relay 1 (Pump Power)     -- Safety Cleanup     if pwa > 100 then pwa = 0 end     if r1 > 100 then r1 = 100 end     if r2 > 100 then r2 = 100 end     -- KNX UPDATES     grp.checkupdate('0/4/26', s1)     grp.checkupdate('0/4/20', s2)     grp.checkupdate('0/4/23', s3)     grp.checkupdate('0/4/21', s4)     grp.checkupdate('0/4/24', pwa)     grp.checkupdate('0/4/27', r1)     grp.checkupdate('0/4/25', r2)   else     -- 3. Data Header Missing (VBus Cable or Controller Mode Failure)     grp.checkupdate(alarm_obj, true) -- ALARM ON     log("[SLL ALARM] KM2 online but VBus data stream invalid.")   end end parseVBus()