lua i odczyt z interfejsu szeregowego

Zaczynam wstępną implementację daemona w lua.

Na szybko stworzyłem prosty daemon odczytujący dane z interfejsu szeregowego:

local SERIAL_DEV = '/dev/ttyATH0'
local serial = assert(io.open(SERIAL_DEV, 'rb'))
assert(os.execute('stty -F '..SERIAL_DEV..' raw 9600'))
while true do
local ret = ""
repeat
   local msg = serial:read(1)
   ret = ret..msg
until msg == "n" or msg == ""
print(ret)
end
root@sensbase:/# lua serial.lua 
{"nodeid":"2.0","light":"1023.0","humi":"96.2","temp":"2.9","press":"999.8","batvol":"416.0","lobat":"0.0"}
{"nodeid":"5.0","light":"0.0","humi":"0.0","temp":"21.3","press":"0.0","batvol":"298.0","lobat":"0.0"}