Hi,
I’m running Rotary on Volumio V4 and it looks like WebSocket actions are no longer working.
I tested with:
Command: callMethod
Data: {"endpoint":"user_interface/randomizer","method":"randomTracks","data":[]}
Nothing happens.
The built‑in FusionDSP toggle also fails in the same way.
Could you check whether WebSocket handling in V4 needs an update, as it looks like the websocket isn’t even triggered. (debug on, but no entries in log)
info: [ROTARYENCODER2] uninstallAllOverlays: end of recursion.
info: [ROTARYENCODER2] removeEventListeners: Remaining listeners STDOUT: 0 STDERR: 0
info: [ROTARYENCODER2]{"_events":{},"_eventsCount":0,"_closesNeeded":3,"_closesGot":0,"connected":false,"signalCode":null,"exitCode":null,"killed":false,"spawnfile":"/bin/cat","_handle":{"pid":5670},"spawnargs":["/bin/cat","/dev/input/by-path/platform-button@16-event"],"pid":5670,"stdin":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdout":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stderr":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdio":[{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null}]}
info: [ROTARYENCODER2] removeEventListeners: successfully killed handler process
info: [ROTARYENCODER2] dtoverlayRemove: {"pinA":22,"type":"gpio-key"}
info: [ROTARYENCODER2] dtoverlayL
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -l
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayL returned: [{"no":1,"type":"rotary-encoder","pinA":5,"pinB":6,"relativeAxis":true,"stepsPerPeriod":1},{"no":2,"type":"gpio-key","pinA":13,"activeLow":false,"gpioPull":"up","keycode":"20"},{"no":3,"type":"rotary-encoder","pinA":17,"pinB":27,"relativeAxis":true,"stepsPerPeriod":1},{"no":4,"type":"gpio-key","pinA":22,"activeLow":false,"gpioPull":"up","keycode":"20"}]
info: [ROTARYENCODER2] dtoverlayRemove: removing: 4
info: [ROTARYENCODER2] {"no":4,"type":"gpio-key","pinA":22,"activeLow":false,"gpioPull":"up","keycode":"20"}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -r 4
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay -r 4
info: [ROTARYENCODER2] uninstallAllOverlays: removed{"pinA":22,"type":"gpio-key"}
info: [ROTARYENCODER2] removeEventListeners: Remaining listeners STDOUT: 0 STDERR: 0
info: [ROTARYENCODER2]{"_events":{},"_eventsCount":0,"_closesNeeded":3,"_closesGot":0,"connected":false,"signalCode":null,"exitCode":null,"killed":false,"spawnfile":"/bin/cat","_handle":{"pid":5660},"spawnargs":["/bin/cat","/dev/input/by-path/platform-rotary@11-event"],"pid":5660,"stdin":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdout":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stderr":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdio":[{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null}]}
info: [ROTARYENCODER2] removeEventListeners: successfully killed handler process
info: [ROTARYENCODER2] dtoverlayRemove: {"pinA":17,"type":"rotary-encoder"}
info: [ROTARYENCODER2] dtoverlayL
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -l
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayL returned: [{"no":1,"type":"rotary-encoder","pinA":5,"pinB":6,"relativeAxis":true,"stepsPerPeriod":1},{"no":2,"type":"gpio-key","pinA":13,"activeLow":false,"gpioPull":"up","keycode":"20"},{"no":3,"type":"rotary-encoder","pinA":17,"pinB":27,"relativeAxis":true,"stepsPerPeriod":1}]
info: [ROTARYENCODER2] dtoverlayRemove: removing: 3
info: [ROTARYENCODER2] {"no":3,"type":"rotary-encoder","pinA":17,"pinB":27,"relativeAxis":true,"stepsPerPeriod":1}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -r 3
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay -r 3
info: [ROTARYENCODER2] uninstallAllOverlays: removed{"pinA":17,"type":"rotary-encoder"}
info: [ROTARYENCODER2] removeEventListeners: Remaining listeners STDOUT: 0 STDERR: 0
info: [ROTARYENCODER2]{"_events":{},"_eventsCount":0,"_closesNeeded":3,"_closesGot":0,"connected":false,"signalCode":null,"exitCode":null,"killed":false,"spawnfile":"/bin/cat","_handle":{"pid":5650},"spawnargs":["/bin/cat","/dev/input/by-path/platform-button@d-event"],"pid":5650,"stdin":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdout":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stderr":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdio":[{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null}]}
info: [ROTARYENCODER2] removeEventListeners: successfully killed handler process
info: [ROTARYENCODER2] dtoverlayRemove: {"pinA":13,"type":"gpio-key"}
info: [ROTARYENCODER2] dtoverlayL
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -l
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayL returned: [{"no":1,"type":"rotary-encoder","pinA":5,"pinB":6,"relativeAxis":true,"stepsPerPeriod":1},{"no":2,"type":"gpio-key","pinA":13,"activeLow":false,"gpioPull":"up","keycode":"20"}]
info: [ROTARYENCODER2] dtoverlayRemove: removing: 2
info: [ROTARYENCODER2] {"no":2,"type":"gpio-key","pinA":13,"activeLow":false,"gpioPull":"up","keycode":"20"}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -r 2
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay -r 2
info: [ROTARYENCODER2] uninstallAllOverlays: removed{"pinA":13,"type":"gpio-key"}
info: [ROTARYENCODER2] removeEventListeners: Remaining listeners STDOUT: 0 STDERR: 0
info: [ROTARYENCODER2]{"_events":{},"_eventsCount":0,"_closesNeeded":3,"_closesGot":0,"connected":false,"signalCode":null,"exitCode":null,"killed":false,"spawnfile":"/bin/cat","_handle":{"pid":5640},"spawnargs":["/bin/cat","/dev/input/by-path/platform-rotary@5-event"],"pid":5640,"stdin":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdout":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":true,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stderr":{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},"stdio":[{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":true,"endEmitted":true,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null,"readable":false},"_events":{},"_eventsCount":1,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":true,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null},{"connecting":false,"_hadError":false,"_parent":null,"_host":null,"_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":true,"ended":false,"endEmitted":false,"reading":true,"constructed":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":0,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null}]}
info: [ROTARYENCODER2] removeEventListeners: successfully killed handler process
info: [ROTARYENCODER2] dtoverlayRemove: {"pinA":5,"type":"rotary-encoder"}
info: [ROTARYENCODER2] dtoverlayL
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -l
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayL returned: [{"no":1,"type":"rotary-encoder","pinA":5,"pinB":6,"relativeAxis":true,"stepsPerPeriod":1}]
info: [ROTARYENCODER2] dtoverlayRemove: removing: 1
info: [ROTARYENCODER2] {"no":1,"type":"rotary-encoder","pinA":5,"pinB":6,"relativeAxis":true,"stepsPerPeriod":1}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -r 1
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay -r 1
info: [ROTARYENCODER2] uninstallAllOverlays: removed{"pinA":5,"type":"rotary-encoder"}
info: [ROTARYENCODER2] updateEncoder: Changing Encoder 2 Settings to new values
info: [ROTARYENCODER2] installAllOverlays: 4
info: [ROTARYENCODER2] [{"rotaryIdx":0,"type":"rotary-encoder","pinA":5,"pinB":6,"dialAction":2,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1},{"rotaryIdx":0,"type":"gpio-key","pinA":13,"debounce":900,"action":14,"socketCmdPush":"callMethod","socketDataPush":"{\"endpoint\":\"user_interface/randomizer\",\"method\":\"randomTracks\",\"data\":[]}","longPushAction":0,"socketCmdLongPush":"","socketDataLongPush":"","delayLongPush":1500,"doublePushAction":0,"socketCmdDoublePush":"","socketDataDoublePush":"","delayDoublePush":700,"activeLow":true,"gpioPull":"up","keycode":20},{"rotaryIdx":1,"type":"rotary-encoder","pinA":17,"pinB":27,"dialAction":1,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1},{"rotaryIdx":1,"type":"gpio-key","pinA":22,"debounce":900,"action":3,"socketCmdPush":"","socketDataPush":"","longPushAction":0,"socketCmdLongPush":"","socketDataLongPush":"","delayLongPush":1500,"doublePushAction":0,"socketCmdDoublePush":"","socketDataDoublePush":"","delayDoublePush":700,"activeLow":true,"gpioPull":"up","keycode":20}]
info: [ROTARYENCODER2] installAllOverlays: 3
info: [ROTARYENCODER2] [{"rotaryIdx":0,"type":"rotary-encoder","pinA":5,"pinB":6,"dialAction":2,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1},{"rotaryIdx":0,"type":"gpio-key","pinA":13,"debounce":900,"action":14,"socketCmdPush":"callMethod","socketDataPush":"{\"endpoint\":\"user_interface/randomizer\",\"method\":\"randomTracks\",\"data\":[]}","longPushAction":0,"socketCmdLongPush":"","socketDataLongPush":"","delayLongPush":1500,"doublePushAction":0,"socketCmdDoublePush":"","socketDataDoublePush":"","delayDoublePush":700,"activeLow":true,"gpioPull":"up","keycode":20},{"rotaryIdx":1,"type":"rotary-encoder","pinA":17,"pinB":27,"dialAction":1,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1}]
info: [ROTARYENCODER2] installAllOverlays: 2
info: [ROTARYENCODER2] [{"rotaryIdx":0,"type":"rotary-encoder","pinA":5,"pinB":6,"dialAction":2,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1},{"rotaryIdx":0,"type":"gpio-key","pinA":13,"debounce":900,"action":14,"socketCmdPush":"callMethod","socketDataPush":"{\"endpoint\":\"user_interface/randomizer\",\"method\":\"randomTracks\",\"data\":[]}","longPushAction":0,"socketCmdLongPush":"","socketDataLongPush":"","delayLongPush":1500,"doublePushAction":0,"socketCmdDoublePush":"","socketDataDoublePush":"","delayDoublePush":700,"activeLow":true,"gpioPull":"up","keycode":20}]
info: [ROTARYENCODER2] installAllOverlays: 1
info: [ROTARYENCODER2] [{"rotaryIdx":0,"type":"rotary-encoder","pinA":5,"pinB":6,"dialAction":2,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1}]
info: [ROTARYENCODER2] installAllOverlays: 0
info: [ROTARYENCODER2] []
info: [ROTARYENCODER2] installAllOverlays: end of recursion.
info: [ROTARYENCODER2] dtoverlayAdd
info: [ROTARYENCODER2] {"rotaryIdx":0,"type":"rotary-encoder","pinA":5,"pinB":6,"dialAction":2,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay rotary-encoder pin_a=5 pin_b=6 relative_axis=true steps-per-period=1
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
rotary-encoder rotary@5: gray
input: rotary@5 as /devices/platform/rotary@5/input/input66
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay rotary-encoder pin_a=5 pin_b=6 relative_axis=true steps-per-period=1
info: [ROTARYENCODER2] attachEventEmitter: path: /dev/input/by-path/platform-rotary@5-event, type: rotary-encoder
info: [ROTARYENCODER2] addEventListeners for rotary: {"pinA":5,"type":"rotary-encoder"}
info: [ROTARYENCODER2] dtoverlayAdd
info: [ROTARYENCODER2] {"rotaryIdx":0,"type":"gpio-key","pinA":13,"debounce":900,"action":14,"socketCmdPush":"callMethod","socketDataPush":"{\"endpoint\":\"user_interface/randomizer\",\"method\":\"randomTracks\",\"data\":[]}","longPushAction":0,"socketCmdLongPush":"","socketDataLongPush":"","delayLongPush":1500,"doublePushAction":0,"socketCmdDoublePush":"","socketDataDoublePush":"","delayDoublePush":700,"activeLow":true,"gpioPull":"up","keycode":20}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay gpio-key gpio=13 active_low=true gpio_pull=up keycode=20
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
input: button@d as /devices/platform/button@d/input/input67
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay gpio-key gpio=13 active_low=true gpio_pull=up keycode=20
info: [ROTARYENCODER2] attachEventEmitter: path: /dev/input/by-path/platform-button@d-event, type: gpio-key
info: [ROTARYENCODER2] addEventListeners for rotary: {"pinA":13,"type":"gpio-key"}
info: [ROTARYENCODER2] dtoverlayAdd
info: [ROTARYENCODER2] {"rotaryIdx":1,"type":"rotary-encoder","pinA":17,"pinB":27,"dialAction":1,"socketCmdCW":"","socketDataCW":"","socketCmdCCW":"","socketDataCCW":"","relativeAxis":true,"stepsPerPeriod":1}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay rotary-encoder pin_a=17 pin_b=27 relative_axis=true steps-per-period=1
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
rotary-encoder rotary@11: gray
input: rotary@11 as /devices/platform/rotary@11/input/input68
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay rotary-encoder pin_a=17 pin_b=27 relative_axis=true steps-per-period=1
info: [ROTARYENCODER2] attachEventEmitter: path: /dev/input/by-path/platform-rotary@11-event, type: rotary-encoder
info: [ROTARYENCODER2] addEventListeners for rotary: {"pinA":17,"type":"rotary-encoder"}
info: [ROTARYENCODER2] dtoverlayAdd
info: [ROTARYENCODER2] {"rotaryIdx":1,"type":"gpio-key","pinA":22,"debounce":900,"action":3,"socketCmdPush":"","socketDataPush":"","longPushAction":0,"socketCmdLongPush":"","socketDataLongPush":"","delayLongPush":1500,"doublePushAction":0,"socketCmdDoublePush":"","socketDataDoublePush":"","delayDoublePush":700,"activeLow":true,"gpioPull":"up","keycode":20}
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay gpio-key gpio=22 active_low=true gpio_pull=up keycode=20
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
input: button@16 as /devices/platform/button@16/input/input69
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayAdd executed: /usr/bin/sudo /usr/bin/dtoverlay gpio-key gpio=22 active_low=true gpio_pull=up keycode=20
info: [ROTARYENCODER2] attachEventEmitter: path: /dev/input/by-path/platform-button@16-event, type: gpio-key
info: [ROTARYENCODER2] addEventListeners for rotary: {"pinA":22,"type":"gpio-key"}
info: [ROTARYENCODER2] dtoverlayL
volumio : PWD=/ ; USER=root ; COMMAND=/usr/bin/dtoverlay -l
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: [ROTARYENCODER2] dtoverlayL returned: [{"no":1,"type":"rotary-encoder","pinA":5,"pinB":6,"relativeAxis":true,"stepsPerPeriod":1},{"no":2,"type":"gpio-key","pinA":13,"activeLow":false,"gpioPull":"up","keycode":"20"},{"no":3,"type":"rotary-encoder","pinA":17,"pinB":27,"relativeAxis":true,"stepsPerPeriod":1},{"no":4,"type":"gpio-key","pinA":22,"activeLow":false,"gpioPull":"up","keycode":"20"}]
info: [ROTARYENCODER2] getI18nString("TOAST_SAVE_SUCCESS"):Successfully saved
info: [ROTARYENCODER2] getI18nString("TOAST_MSG_SAVE"):Settings for Encoder
info: [ROTARYENCODER2] updateEncoder: SUCCESS with Toast: Successfully saved Settings for Encoder 2
info: [ROTARYENCODER2] getI18nString("TOAST_SAVE_SUCCESS"):Successfully saved
info: [ROTARYENCODER2] getI18nString("TOAST_MSG_SAVE"):Settings for Encoder
time="2025-12-15T13:02:35+01:00" level=trace msg="sent dealer ping"
time="2025-12-15T13:02:35+01:00" level=trace msg="received dealer pong"
time="2025-12-15T13:03:05+01:00" level=trace msg="sent dealer ping"