Read the statement by Michael Teeuw here.
MMM-PIR-Sensor-Lite modification
-
From SSH connection:
pi@raspberrypi:~ $ echo ‘scan’ | cec-client -s -d 1
opening a connection to the CEC adapter…
requesting CEC bus information …
CEC bus information===================
device #1: Recorder 1
address: 1.0.0.0
active source: no
vendor: Pulse Eight
osd string: CECTester
CEC version: 1.4
power status: on
language: engcurrently active source: unknown (-1)
pi@raspberrypi:~ $ -
Update: I’m not sure how it happened, but I believe that my monitor had the controls disabled. It is an LG monitor using Simplink, and when I enable it, I can now see the device:
pi@raspberrypi:~ $ echo ‘scan’ | cec-client -s -d 1
opening a connection to the CEC adapter…
requesting CEC bus information …
CEC bus information===================
device #0: TV
address: 0.0.0.0
active source: yes
vendor: LG
osd string: TV
CEC version: 1.3a
power status: on
language: engdevice #1: Recorder 1
address: 1.0.0.0
active source: no
vendor: LG
osd string: CECTester
CEC version: 1.3a
power status: on
language: engcurrently active source: TV (0)
However, when I attempt to turn OFF the monitor using the CEC control commands, it doesn’t seem to work. The commands appear to be working (ie. no error messages returned), but the monitor remains ON when I issue the standby command. I also use the ‘power’ command to check the status of the monitor, and it confirms that it is ON.
pi@raspberrypi:~ $ echo ‘pow 0.0.0.0’ | cec-client -s -d 1
opening a connection to the CEC adapter…
power status: on
pi@raspberrypi:~ $ echo ‘standby 0.0.0.0’ | cec-client -s -d 1
opening a connection to the CEC adapter…
pi@raspberrypi:~ $ echo ‘pow 0.0.0.0’ | cec-client -s -d 1
opening a connection to the CEC adapter…
power status: on
pi@raspberrypi:~ $ -
I have also tried:
sudo echo ‘standby 0.0.0.0’ | sudo cec-client -s -d 1but got the same result…
-
@Freddy_boy ok, I have a CEC tv which I can turn OFF, but not back on…
-
Yes, but this used to work previously. I suspect that none of the commands are working (even if no error message is returned). I attempted other commands, and they also do not seem to work. For example, I tried to change HDMI inputs, and the monitor remains at the same input. I think I need to determine if I can get ANY HDMI CEC command to work at all. It seems to be a missing step somewhere…
-
@Freddy_boy I have not studied the CEC commands
-
Here is the last portion of the debug log when I attempt to issue the standby command:
WARNING: [ 3123] FIXME: LG seems to have bugged out. resetting to ‘in transition standby to on’. the return button will not work
DEBUG: [ 3123] Recorder 1 (1): power status changed from ‘on’ to ‘in transition from standby to on’
DEBUG: [ 3123] << Recorder 1 (1) -> TV (0): in transition from standby to on
TRAFFIC: [ 3123] << 10:90:02
DEBUG: [ 3123] >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG: [ 3175] expected response not received (90: report power status)
DEBUG: [ 3189] CLinuxCECAdapterCommunication::Process - ioctl CEC_RECEIVE - rx_status=01 len=2 addr=01 opcode=46
DEBUG: [ 3276] CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT - tx_status=01 len=3 addr=10 opcode=90
TRAFFIC: [ 3276] << 10:8f
DEBUG: [ 3276] Recorder 1 (1): power status changed from ‘in transition from standby to on’ to ‘on’
DEBUG: [ 3366] CLinuxCECAdapterCommunication::Process - ioctl CEC_RECEIVE - rx_status=01 len=3 addr=01 opcode=89
DEBUG: [ 3428] CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT - tx_status=01 len=2 addr=10 opcode=8f
TRAFFIC: [ 3429] >> 01:90:00
DEBUG: [ 3429] TV (0): power status changed from ‘unknown’ to ‘on’
DEBUG: [ 3429] expected response received (90: report power status)
DEBUG: [ 3429] >> TV (0) -> Recorder 1 (1): report power status (90)
NOTICE: [ 3429] << putting ‘TV’ (0) in standby mode
TRAFFIC: [ 3429] << 10:36
TRAFFIC: [ 3429] >> 01:1a:01
DEBUG: [ 3429] >> TV (0) -> Recorder 1 (1): give deck status (1A)
DEBUG: [ 3494] CLinuxCECAdapterCommunication::Process - ioctl CEC_RECEIVE - rx_status=01 len=2 addr=01 opcode=46
DEBUG: [ 3557] CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT - tx_status=01 len=2 addr=10 opcode=36
DEBUG: [ 3557] unregistering all CEC clients
NOTICE: [ 3557] unregistering client: libCEC version = 6.0.2, client version = 6.0.2, firmware version = 0, logical address(es) = Recorder 1 (1) , physical address: 1.0.0.0, compiled on Linux-5.10.63-v8+ … , features: P8_USB, DRM, P8_detect, randr, RPi, Exynos, Linux, AOCEC
DEBUG: [ 3557] Recorder 1 (1): power status changed from ‘on’ to ‘unknown’
DEBUG: [ 3557] Recorder 1 (1): vendor = Unknown (000000)
DEBUG: [ 3557] Recorder 1 (1): CEC version unknown
DEBUG: [ 3557] Recorder 1 (1): osd name set to ‘Recorder 1’
DEBUG: [ 3557] Recorder 1 (1): device status changed into ‘unknown’
DEBUG: [ 3557] CLinuxCECAdapterCommunication::SetLogicalAddresses - ioctl CEC_ADAP_S_LOG_ADDRS - log_addr_mask=0000 num_log_addrs=0
DEBUG: [ 3557] CLinuxCECAdapterCommunication::SetLogicalAddresses - ioctl CEC_ADAP_S_LOG_ADDRS - log_addr_mask=0000 num_log_addrs=0
DEBUG: [ 3557] unregistering all CEC clients
TRAFFIC: [ 3557] >> 01:46
DEBUG: [ 3558] CLinuxCECAdapterCommunication::SetLogicalAddresses - ioctl CEC_ADAP_S_LOG_ADDRS - log_addr_mask=0000 num_log_addrs=0
TRAFFIC: [ 3558] >> 01:89:01
TRAFFIC: [ 3558] >> 01:46
DEBUG: [ 3558] CLinuxCECAdapterCommunication::Process - CEC_DQEVENT - CEC_EVENT_STATE_CHANGE - log_addr_mask=0000 phys_addr=1000
DEBUG: [ 3558] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG: [ 3558] >> TV (0) -> Recorder 1 (1): vendor command (89)
DEBUG: [ 3558] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG: [ 4564] CLinuxCECAdapterCommunication::Process - stopped - m_path=/dev/cec0 m_fd=4
DEBUG: [ 4564] CLinuxCECAdapterCommunication::Close - m_path=/dev/cec0 m_fd=4This seems to indicate that it will not take the command, and returns the monitor to the ON state. But I don’t know where to look next…
-
@Freddy_boy google is your friend… sort of…lol… i would search the messages…
-
As I dig more into this, I am finding that there seem to be a lot of reports that some LG monitors do not support using the Standby command. I am not certain of how this was working before, but now I am beginning to suspect that the Magic Mirror app simply went hidden when the timeout occurred. Perhaps the monitor was ON all along, but the app disappeared from the screen? I don’t know if this applies in my situation, because I can’t seem to make any of the CEC commands work at all.
I attempted to turn OFF the monitor, and then issue the CEC ON command, but that also did not work. It appears to be some fundamental issue with the CEC commands that I may not be able to use. Are you aware of any modules that simply blackout the Magic Mirror app using the PIR sensor? I know that isn’t really saving as much energy, but it might be worthwhile implementing…
-
@Freddy_boy you can try my MMM-SleepWake
https://github.com/sdetweil/MMM-SleepWakeit listens for pir sensor or lite to signal user presence
and mode HIDE will hide all the modules and show them again when a user appears
I built this to use this with a webcam as I don’t have any pirs, and none of my monitors will behave (big ‘no power’ warning when hdmi goes off)
I just added the code for sensor-lite, just a check …