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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
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:
12
mclient.ON_CONNECT = function(...)   log('on_connect', ...)

Code:
1234567891011
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:
12
mclient.ON_CONNECT = function(...)   log('on_connect', ...)

Code:
1234567891011
  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: