Hyperion.NG, Amlogic improvements

@Portisch
I found the service.hyperion.ng folder at /.kodi/addons.
Is that the right one and which files or content do I have to copy into it?
Here is the link from the PR Hyperion PR Build

Here is the Threat
[https://hyperion-project.org/threads/hyperion-mit-4k-grabber.3649/page-7#post-24692"]Hyperion mit 4k Grabber](https://hyperion-project.org/threads/hyperion-mit-4k-grabber.3649/page-7#post-24692"]Hyperion mit 4k Grabber)

Here is a Preview from @Paulchen-Panther

How can I install the PR at CoreElec?

Patch is perfect working for me. Thx
Can you watch @Paulchen-Panther’s PR?
I want install them for regulate my digital Grabber.

Looks like this is broken in 2.0.0.alpha3: https://github.com/hyperion-project/hyperion.ng/commit/fe728b15434d9f960eca899efb1dfebd7b9c319d#diff-3e2ffa7d2146b6be9c4e1ffb4d539b4c
My LEDs remain dark after a supend resume. I need first to debug this before be able to bump the package.

At the moment I have no problems with 2.0.0 alpha3. I only want the latest PR from @Paulchen-Panther to regulate my digital Grabber. But I don’t know how install at CoreElec.

@Paulchen-Panther This is the error on 2.0.0.alpha3:

 [hyperiond AMLOGICGRABBER] (INFO) FB mode
 [hyperiond LEDDEVICE] (ERROR) An I/O error occurred when a resource becomes unavailable, e.g. when the device is unexpectedly removed from the system.
 [hyperiond LEDDEVICE] (ERROR) Device disabled, device 'adalight' signals error: 'Rs232 SerialPortError, see details in previous log lines!'
 [hyperiond LEDDEVICE] (DEBUG) (ProviderRs232.cpp:152:closeDevice()) Close UART: /dev/ttyACM0
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled

On resume from suspend the LED device get’s disabled because of the IO error. This is a different error handling like before. Before the LED device got closed and reopened on IO error. Now it remain disabled.
When I go to the web interface I can enable the LED device again after system resume and they work again like before suspend.

You can send the CoreELEC device by systemctl suspend into suspend and just resume it by the IR remote. I have a Arduino UNO clone connected by USB.

I guess the error is here:


Now the LED device get also closed when the com port get closed.

This would be needed I think:

diff --git a/libsrc/leddevice/dev_serial/ProviderRs232.cpp b/libsrc/leddevice/dev_serial/ProviderRs232.cpp
index 295dc491..fe2c86b3 100644
--- a/libsrc/leddevice/dev_serial/ProviderRs232.cpp
+++ b/libsrc/leddevice/dev_serial/ProviderRs232.cpp
@@ -51,7 +51,8 @@ bool ProviderRs232::init(const QJsonObject &deviceConfig)
 
 void ProviderRs232::close()
 {
-       LedDevice::close();
+       if (!_deviceReady)
+               LedDevice::close();
 
        // LedDevice specific closing activites
        closeDevice();

So the LED device get only closed when _deviceReady is set to false on “really bad” error in ProviderRs232::error function.

Here a new .103 with this patch included, untested!
https://test.coreelec.org/Portisch/service.hyperion.ng-9.2.103.zip

1 Like

The fundamental changes in the base class LedDevice come from Lord-Gray. I will contact him.
Thanks for your research. :+1:

I tried the patch above, did not solve the issue :frowning:
But I don’t have a log available now.

I will have a look.
Quickly looking at the proposed patch, it will not address the root cause. It will more create problems as the general infrastructure of timer etc. are not properly closed.

Seem we need to differentiate between real errors and no error scenarios. The real ones are to put the devices „In Error“.

When I refactored the code, I assumed that errors logged are real ones which need to be resolved before reopening a device. Let me review the code again.

I may need your support to differentiate between the scenarios.

1 Like

Just thinking

Shouldn‘t the scenario not be fixed in a way that after resume the device is triggered to be switched on again? switch on will try to reopen the device. Via remote control you can simulate this trigger manually.
The would avoid any polling in an undefined Hyperion environment


The “signal” from system to hyperion.ng got disabled. Maybe @Paulchen-Panther forgot about it:

1 Like

I’ll check again tomorrow. I seem to have forgotten that. I’m sorry about it.

If you have any better idea how to handle this just do it!

Would you be so nice and would you test?

Proof:

Diff:
SIGUSR.diff (2.3 KB)

2 Likes

@Paulchen-Panther Da sieht man mal wieder, dass Du Dich besser im Code auskennst


Ich hatte es erst mal versucht im main zu lösen, um zu schauen, ob es funktionert. Aber eine Instance Toggle-Methode ist natĂŒrlich cleverer.

ggf. magst Du ja was von dem Logging aus dem file ĂŒbernehmen :slight_smile:
Auf jeden Fall habe ich mal wieder etwas gelernt.

Der Test war bei mir auch erfolgreich. Die Devices werden schön wieder re-opened. Hoffentlich auch das RS232


1 Like

So easy? Looks nice! Will test as soon as possible! Thx!

1 Like

I tested now the patch and in general it’s working, LEDs getting switched off and are working after resume from suspend.

But now I see the issue what have been there already before this feature got deactivated in hyperion.ng: it work’s only every second supend/resume cycle or even only once!?

I just tried it and the signal get sent every time by this script:

#!/bin/sh
case "$1" in
pre)
# <do something on suspend>
pid=$(pgrep hyperiond)
echo "+++++++++++++ pre pid: $pid" >> /storage/.kodi/temp/hyperion.power
if [ -n "$pid" ]; then
	kill -SIGUSR1 $pid
fi
;;
post)
# <do something on resume>
pid=$(pgrep hyperiond)
echo "+++++++++++++ post pid: $pid" >> /storage/.kodi/temp/hyperion.power
if [ -n "$pid" ]; then
	kill -SIGUSR2 $pid
fi
;;
esac

Result (I did 3 times suspend & resume):

+++++++++++++ pre pid: 4603
+++++++++++++ post pid: 4603
+++++++++++++ pre pid: 4603
+++++++++++++ post pid: 4603
+++++++++++++ pre pid: 4603
+++++++++++++ post pid: 4603
CoreELEC:~ # ps | grep hyperiond
 4603 root      1:02 hyperiond --userdata /storage/.kodi/userdata/addon_data/service.hyperion.ng

So Kodi & kernel send the signal to the hyperiond pid.

This is the hyperion log (I added a debug print at the signal handler in main.cpp):

[hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 250 is now inactive
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 254
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond MAIN] (INFO) +++++++++++++ enter signum: 12
 [hyperiond MAIN] (INFO) +++++++++++++ signum == SIGUSR2
 [hyperiond MAIN] (INFO) +++++++++++++ _hyperion != nullptr
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:64:handleCompStateChangeRequest()) Enable Hyperion, recover previous component states
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Hyperion: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: enabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 250 is now active
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 250
 [hyperiond LEDDEVICE] (ERROR) Device disabled, device 'adalight' signals error: 'Timeout on write data to /dev/ttyACM0'
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
 [hyperiond LEDDEVICE] (DEBUG) (ProviderRs232.cpp:152:closeDevice()) Close UART: /dev/ttyACM0
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:204:sendClose()) send close: 1000 
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:192.168.1.109
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:107:handleInstanceSwitch()) Client '::ffff:192.168.1.109' switch to Hyperion instance 0
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1119:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.1.109
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1128:handleLoggingCommand()) log streaming deactivated for client  ::ffff:192.168.1.109
 [hyperiond MAIN] (INFO) +++++++++++++ enter signum: 10
 [hyperiond MAIN] (INFO) +++++++++++++ signum == SIGUSR1
 [hyperiond MAIN] (INFO) +++++++++++++ _hyperion != nullptr
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:51:handleCompStateChangeRequest()) Disable Hyperion, store current component states
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Hyperion: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: disabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: disabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:255:clearInput()) Removed source priority 250
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 254
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: disabled
 [hyperiond MAIN] (INFO) +++++++++++++ enter signum: 12
 [hyperiond MAIN] (INFO) +++++++++++++ signum == SIGUSR2
 [hyperiond MAIN] (INFO) +++++++++++++ _hyperion != nullptr
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:64:handleCompStateChangeRequest()) Enable Hyperion, recover previous component states
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Hyperion: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: enabled
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: enabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:158:registerInput()) Register new input 'System/GRABBER' with priority 250 as inactive
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: enabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 250 is now active
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 250
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:204:sendClose()) send close: 1000 
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:192.168.1.109
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:107:handleInstanceSwitch()) Client '::ffff:192.168.1.109' switch to Hyperion instance 0
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1119:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.1.109
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1128:handleLoggingCommand()) log streaming deactivated for client  ::ffff:192.168.1.109
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:204:sendClose()) send close: 1000 
 [hyperiond AMLOGICGRABBER] (INFO) VPU mode
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:192.168.1.5
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:107:handleInstanceSwitch()) Client '::ffff:192.168.1.5' switch to Hyperion instance 0
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1119:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.1.5

It worked only once, after second suspend the LEDs remain off, even when the log says VPU mode on.
It is working if I try it only on a debug device with no Rs232 client connected. Then every time the signals are received.

@Portisch

Can I use your modified script or do you need to change anything else?

And can you build this dropdown to set the resolution of the external grabber?

So after latest update to Hyperion.NG v. 103 from CoreElec repo my Hyperion Control addon stopped working. I have updated the addon to the latest version 1.0.1 and disabled API Authentication in my Hyperion web interface.

Screenshot 2020-04-11 at 00.54.02

It doesn’t seem like it’s doing anything at all. I’m trying to disable Hyperion in Kodi menu. Besides that, everything is working fine. Logs also don’t show what could be wrong. Any help is appreciated.

You need to reinstall the Hyperion Controll or delete its Settings file.