Read the statement by Michael Teeuw here.
PIR sensor to turn on LED strip
-
@sdetweil said in PIR sensor to turn on LED strip:
but this module rpi-leds, only toggles the leds ON the pi board… not led strip…
Maybe this module could fit https://github.com/jc21/MMM-PiLights, using SPI and a LPD8806 or WS2801 LED strip.
@sdetweil said in PIR sensor to turn on LED strip:
if u can find one that works the ed strip with a python command, then we can make that work
It appears to respond to notifications:
this.sendNotification('PILIGHTS_SEQUENCE', 'blue_pulse');
-
@Egnos it has a way for all off. but not all on.
-
@Egnos use my updated fork…
https://github.com/sdetweil/MMM-PiLights
it responds to the PIR modules USER_PRESENCE notification (true = turn on, false = turn off)
if lights are off and on is sent, it will restore the previous sequence set with the normal
SEQUENCE notification -
Hi,
I would suggest the solution of @sdetweil as well.
An other, but much more complicate version would be to use my PythonLedControl and control it with the MMM-MQTTbridge module.
-
@sdetweil said in PIR sensor to turn on LED strip:
use my updated fork…
https://github.com/sdetweil/MMM-PiLights
it responds to the PIR modules USER_PRESENCE notification (true = turn on, false = turn off)
if lights are off and on is sent, it will restore the previous sequence set with the normal
SEQUENCE notificationThanks @sdetweil
Let’s see if I understand:
- By default the LEDs will be off, until the “MMM-GPIO-Notifications” module detects something.
- If the PIR detects the movement the “MMM-GPIO-Notifications” module will send the notification USER_PRESENCE = true and the LEDs will turn on
- After some time without movement the “MMM-GPIO-Notifications” module will send the notification USER_PRESENCE = false and the LEDs will turn off
Correct?
I’m not a developer, but I’m still trying to understand your change in the code:
else if (notification === ' USER_PRESENCE'){ if(payload == false){ this.leds.allOFF(); } else { // user present, restore the last active sequence Promise.resolve(this.runSequence(this.lastSequence.sequence, thi,lastSequence.iterations,this.lastSequence.delay) .catch((err) => { this.log('user present Sequence error: ' + err.message); }));
why can’t I see this notification in the code?
(notification === ' USER_PRESENCE'){ if(payload == true){ this.leds.allON(); }
Thanks again!
-
@Egnos
' USER_PRESENCE'
!=='USER_PRESENCE'
-
@Egnos fixed the typo, git pull for the update
-
@MMRIZE good catch
-
@Egnos u don’t need the GPIO_Notifications module. as the PIR modules send the USER_PRESENCE notification
-
@sdetweil said in PIR sensor to turn on LED strip:
u don’t need the GPIO_Notifications module. as the PIR modules send the USER_PRESENCE notification:
The module I use for sending notifications when the PIR detects motion is MMM-GPIO-Notifications
I believe he is sending the “USER_PRESENCE” notification:notifications: [ { notification: 'USER_PRESENCE', payload: true },
Thanks for your patience @sdetweil ! ;-)