This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

[OLD] LogicMachine firmware 2019.10
#1
New FW here: https://forum.logicmachine.net/showthread.php?tid=2710

Changelog:
Code:
2018.05.16
  modbus - fix multiple read for coils / discrete inputs
  modbus - fix handling of profiles where read_count is smaller than data type width
  modbus - separate modbus error logs from scripting error logs
  touch visualization - add home/logout buttons

2018.05.23
  object logs - fix source address display, add sender field

2018.06.05
  fix storage server not starting up when storage database is corrupt

2018.06.13
  fix scripting category filter scroll jumping due to reload

2018.07.12
  allow spaces in host name
  fix internal limit of 8 characters for ftp passwords
  enocean - change only active button state for "Rocker Switch, 1 Rocker (separate)" profile

2018.07.13
  add current ip display and static dns settings to ppp/3g

2018.07.20
  allow "@" and "." in user login name

2018.07.27
  dali - add 2/3 byte raw telegram support
  improve shutdown procedure

2018.07.31
  modbus - add float64/double support

2018.08.02
  fix rgb picker color selection when control is scaled via CSS

2018.08.20
  allow usage of 4-bit objects as scene triggers

2018.08.28
  change grp.create duplicate name search procedure to ignore case

2018.09.06
  dali - fix broken addressing after raw command has been implemented

2018.09.12
  luaencdec library - add sha384/sha512 hash/hmac calculation
  sort widgets/layouts by name instead of creation order

2018.09.18
  lm5 rio - fix edge case with object value update when enabling input mode for port that is already in active state

2018.09.21
  lmwall - fix sensor values not being displayed
  fix checkwrite/checkupdate always writing a value when passing non-boolean value to a boolean object

2018.09.28
  modbus - remove unused partial xml profile support

2018.10.10
  increase maximum user login size from 20 to 50 characters

2018.10.22
  increase maximum number of active connections from about 50 to 200

2018.11.16
  fix tag event scripts not being executed until saved again when tag is then assigned to a new object
  fix knx/ip rx telegram counter

2018.11.28
  dali - add partial dt8 command support to internal dali library

2018.11.29
  add forced https options - either redirect from http to https or http (port 80) disabled completely

2018.12.05
  luasocket - add "*r" receive pattern - for lines ending with "\r" ("\n" is ignored)

2018.12.14
  add additional garbage collection steps to resident scripts to prevent open file descriptor limit issues

2018.12.21
  improve trends deletion/resize procedure to flush data to disk immediately
  1-wire - allow seting send delta to 0 (always send new value)

2019.01.10
  dali - add Rainbow/Ecodim DALI Lux commands

2019.01.23
  dali - add Rainbow/Ecodim DALI Combisence commands

2019.01.25
  modbus - fix datatype display in mapping window when object datatype is different from modbus datatype

2019.02.19
  modbus - add "float" datatype alias for "float32"

2019.02.20
  modbus - add persistent connection mode for TCP devices

2019.02.21
  apps - add periodical app update check

2019.03.04
  visualization - fix incorrect element size display

2019.03.11
  visualization - fix alignment issue between labels and object value text in "value" mode

2019.03.13
  schedulers - add multiple scheduler display option for direct link view

2019.03.19
  bacnet - fix overridden flag behaviour

2019.04.03
  bacnet - fix scale/angle data type maximum value handling, fix 1 byte ASCII character data type
  fix no value display for objects after custom values have been deleted via mass edit

2019.04.11
  lm5ex - fix current measurement incorrect value display when value is negative

2019.05.08
  luasocket - add "*c" (custom) receive pattern:
   second argument is ending character (defaults to \n)
   third argument character to skip (defaults to \0)

2019.05.21
  add quotes around string table keys in log() function, otherwise there's no visual difference between numeric and string keys

2019.05.31
  visualization - add remote url option to camera element

2019.06.06
  ftp - add forced secure (FTPS) mode
  vis. graphics - add search
  scenes - add optional status object
  object logs - allow wildcard (*) search in object name
  system config - add system configuration backup/restore

2019.06.14
  schedulers - add on/off object for scheduler control
  visualization - add background color setting for pop-up control elements (sliders, text input, etc)
  add drag/drop sort via separate window to trends, schedulers, scene sequence and visualization structure

2019.06.28
  add brute force protection for HTTP/FTP

2019.07.08
  modbus - fix object tag/comment being cleared when mapping an existing object to a modbus register/coil

2019.08.02
  add LM5RDC model

2019.08.05
  luasocket - set default TLS version to 1.2 for HTTPS requests

2019.08.12
  improve LuaSocket HTTP requests:
    1. HTTPS is now handled by socket.http.request, ssl.https is not needed for HTTPS anymore
    2. Response is returned automatically if no sink is set, setting sink is not needed
    3. POST body can be set by adding "body" request key
    4. POST body can be a table which will is automatically encoded to a string according to x-www-form-urlencoded format

2019.08.13
  trends - show total trend size in MB

2019.08.20
  modbus - fix potential out-of-bounds read in slave mode

2019.08.26
  fix typos in documented datatypes

2019.08.28
  bacnet client - add "command" object type support

2019.10.02
  modbus - force send of value_default for remaining objects when polling cycle for a given device hits 3 consecutive errors

2019.10.08
  dali - add partial addressing mode (only new ballasts without short address)

2019.10.10
  luasocket - add TCP port to HTTP host header for requests to non-standard ports
  luasocket - fix HTTP redirect

2019.10.11
  schedulers - use sub-datatype text for boolean value select options instead of generic on/off

Attached Files Thumbnail(s)
   
#2
(31.10.2019, 12:44)admin Wrote: /snip


Use "LM5 Power with extensions" for the DW1?
#3
Hi Admin, thanks for this good info, could you attach some change log?
Done is better than perfect
#4
(31.10.2019, 13:35)fiLLLip Wrote: Use "LM5 Power with extensions" for the DW1?
Yes, if you go to System Config > System > Upgrade Firmware it will show your device mode.

(31.10.2019, 13:51)buuuudzik Wrote: Hi Admin, thanks for this good info, could you attach some change log?
It's posted, have a look
#5
Hi,
Will this update be avaliable for the Load Balancer?
#6
(07.11.2019, 07:42)gtsamis Wrote: Hi,
Will this update be avaliable for the Load Balancer?
+1
Done is better than perfect
#7
Maybe after final release. I cannot promise anything right now as I'm not sure if the only device that we have here is working or not.
#8
Any comments on RC1?

RC2 is coming in several weeks with several changes/fixes:
  1. bacnet - add optional object units/suffix conversion to BACnet units
  2. schedulers - fix incorrect execution time for sunrise/sunset events during daylight saving chang
  3. dali - fix mode select window height
#9
I've upgraded recenly LM5 RIO 2. Which packages should I also upgrade to have it fully upgraded? After upgrade e.g. Modbus could not work properly (it is not used on this installation but I want fully upgrade this device)?
Done is better than perfect
#10
This is very urgent!!!
After upgrade client told me that buttons connected to LM RIO2 are not working now. How can I solve this issue?
Its LM using only KNX and buttons, no modbus, no other interface.

You have so much versions, every piece is important(I/O, modbus, 1wire etc.) so I think upgrade should be done by LM automatically (including packages). Or at least LM should list in standarized way packages which should be used.

I've attached photo of his LM to simplify recognizing it.

Im attaching also screenshot from packages view

Attached Files Thumbnail(s)
       
Done is better than perfect
#11
Since this is a pre-release test version we recommend using it only in your personal installations where you have immediate physical access to the device.

As for packages all firmwares have everything pre-installed depending on what the device has on-board. Extra packages are needed for additional functionality like SNMP or 1-wire via USB on devices without on-board chip etc.

Can you provide remote access to this device that is not working? Have you checked that outputs are working?
#12
The problem were in scripts not in buttons. I have such configuration:

button => tag => eventbased script => udp => resident script

And resident script didn't receive any command until I saved, disabled, enabled eventbased script.

So please check what is the configuration of startup scripts, and other users please check this in your scripts.
Done is better than perfect
#13
Thanks for testing. Can you reboot the device and check if the event script is working or not after reboot?
#14
Yes, I've did reboot and all works fine now.

Does reboot is also one of a step in upgrade process?

Please test such things:
- if after upgrading device with event-based tag scripts they are in idle state,
- or what is the state of resident scripts after reboot?

I had such situation that GA appeared on the bus but probably event-based script not react on a tag becaue probably it was in some idle state. When I've saved, disabled, enabled this script and once again send that command to the bus then resident script logged that it received command.

In this idle state it was not important if the ga appeared from bus, from other device or from Object tab. Both not worked.
Done is better than perfect
#15
Did you get any entries in Errog Log like file not found or similar?
#16
No, there was no errors in Error tab.
Done is better than perfect
#17
Hi,

I have noticed non working scripts by TAG several times and reported it to the team, this was already in 2.3.0, i think it occurs when adding a TAG to a event based script first and then add the TAG to the object. After dis/enabling the script it starts working, so yes we should check this especially when it also occurs after a upgrade.

BR,

Erwin
#18
Hi,

I recently install the new firmare and MQTT don´t works . Just receive but don´t send MQTT..(with previous version it works fine)

Has something changed?
Code:
if not broker then
  broker = 'MosquitoBroker'

  mqtt_to_object = {
    ['MyObject'] = 'command...',
  }

 

  object_to_mqtt = {
    ['MyObject'] = 'command...',
  } 

datatypes = {}

  grp.sender = 'mq'
  require('socket')

  for addr, _ in pairs(object_to_mqtt) do
    local obj = grp.find(addr)
    if obj then
      datatypes[ addr ] = obj.datatype
    end
  end

  mclient = require('mosquitto').new()
  -- mclient:login_set('username', 'password')

  mclient.ON_CONNECT = function()
    --log('mqtt connected')
    if grp.getvalue('33/1/116') then WriteSendTo("David","MQTT Conectado") end
    for topic, _ in pairs(mqtt_to_object) do
      mclient:subscribe(topic)
    end
  end

  mclient.ON_MESSAGE = function(mid, topic, payload)
    local addr = mqtt_to_object[ topic ]
    if addr then
      grp.write(addr, payload)
    end
  end

  mclient.ON_DISCONNECT = function(...)
    --log('mqtt disconnect', ...)
    if grp.getvalue('33/1/116') then WriteSendTo("David","MQTT Desconectado") end
    mclientfd = nil
  end

  function mconnect()
    local fd

    mclient:connect(broker)
    fd = mclient:socket()

    -- fd ref is valid
    if fd then
      mclientfd = fd
    end
  end

  mconnect()

  function publishvalue(event)
    -- message from us or client is not connected
    if event.sender == 'mq' or not mclientfd then
      return
    end

    local addr = event.dst
    local dpt = datatypes[ addr ]
    local topic = object_to_mqtt[ addr ]

    -- unknown object
    if not dpt or not topic then
      return
    end

    local value = busdatatype.decode(event.datahex, dpt)
    if value ~= nil then
      if type(value) == 'boolean' then
        value = value and 1 or 0
      end

      mclient:publish(topic, tostring(value))
    end
  end

  lbclient = require('localbus').new(1)
  lbclient:sethandler('groupwrite', publishvalue)

  lbclientfd = socket.fdmaskset(lbclient:getfd(), 'r')

  -- run timer every 5 seconds
  timer = require('timerfd').new(5)
  timerfd = socket.fdmaskset(timer:getfd(), 'r')
end

-- mqtt connected
if mclientfd then
  --log("mclientfd")
  mclientfdset = socket.fdmaskset(mclientfd, mclient:want_write() and 'rw' or 'r')
  res, lbclientstat, timerstat, mclientstat =
      socket.selectfds(10, lbclientfd, timerfd, mclientfdset)
-- mqtt not connected
else
  res, lbclientstat, timerstat =
    socket.selectfds(10, lbclientfd, timerfd)
end

if mclientstat then
  if socket.fdmaskread(mclientstat) then
    mclient:loop_read()
  end

  if socket.fdmaskwrite(mclientstat) then
    mclient:loop_write()
  end
end

if lbclientstat then
  lbclient:step()
end

if timerstat then
  -- clear armed timer
  timer:read()

  if mclientfd then
    mclient:loop_misc()
  else
    mconnect()
  end
end


Thanks
#19
Add logging to your script:
Code:
mclient.ON_CONNECT = function(...)
  log('on_connect', ...)

Code:
function mconnect()
    local fd

    log('connect', mclient:connect(broker))
    fd = mclient:socket()

    -- fd ref is valid
    if fd then
      mclientfd = fd
    end
  end
#20
(23.11.2019, 09:19)admin Wrote: Add logging to your script:
Code:
mclient.ON_CONNECT = function(...)
  log('on_connect', ...)

Code:
  function mconnect()
    local fd

    log('connect', mclient:connect(broker))
    fd = mclient:socket()

    -- fd ref is valid
    if fd then
      mclientfd = fd
    end
  end

I add log and when I reset Mqtt scritp this is the result:
   
   

When I send object to Mqtt don´t log anything.


Forum Jump: