2 Mirrors and one Sensor ( MMM-PIR-Sensor )



  • is it posible to add only one sensor to 2 Raspberry Pi?
    Regards



  • noone?
    I have in 1 Mirror 2 Display and Pi and want to add a sensor.



  • sorry, do not understand question… typically one uses ONLY 1 PIR sensor…



  • Sorry for my bad English.

    I have 2 Magic.Mirrors in a mirror and just wanted to use 1 PIR module for both.

    Therefore the question if this is technically possible or if I have to use a module for each raspberry.



  • @binia oh!.. you have two monitors inside your single mirror!.. wow…

    all u need is the signal pin of the PIR… and connect the grounds together on the two PI devices…

    otherwise you could have one PI send a MMM message to the other to wakeup…



  • 0_1551861410991_IMG_20180916_150055.jpg 0_1551861416010_IMG_20180916_150101.jpg 0_1551861420245_IMG_20181218_144954.jpg 0_1551861424435_IMG_20181218_145005.jpg



  • its 160cm x 65cm
    One is a TV and one a Display


  • Module Developer

    You can install one PIR on one RPI(A).
    Then, you can modify or build a module to send HTTPRequest to other RPI(B) on RPI(A) which has PIR sensor
    Then, you can also modify or build a module to catch HTTPRequest on RPI(B) to use it as a signal for your job.

    • MMM-PIR-Sensor (RPI(A)) : You can modify socektNotificationReceived() to emit your custom notification,
      Or send HTTPRequest directly to RPI(B)
    • MMM-NotificationTrigger (RPI(A)) : Or you can translate notification from MMM-PIR-Sensor to your custom notification for further relayed module,
      Or you can execute directly external shell command/internal javascript for sending HTTPRequest when notification is coming from MMM-PIR-Sensor
    • Or … you can build your own module for this job.

    • MMM-Remote-Controller (RPI(B)) : You can get HTTPRequest from RPI(A) to do something
    • MMM-NotificationTrigger(RPI(B)) : This module also can catch HTTPRequest and do something
    • Or … you can build your module for this job.

    • Or you can make scripts with javascript or python or any other language to communicate between two RPIs. It will be not so difficult to expert, but…


  • Thanks for your answer.
    I will try it.


  • Module Developer

    Here is a simple example for using MMM-NotificationTrigger. Not tested, but you can catch the concept.

    Assumption

    • RPI_A
      • MM IP : 192.168.178.101:8080
      • PIR_SENSOR is installed
      • This will emit notification "USER_PRESENCE" with payload true/false
    • RPI_B
      • MM IP : 192.168.178.102:8080
      • PIR_SENSOR IS not installed.
      • It needs payload value of USER_PRESENCE from RPI_A

    RPI_A MMM-NotificationTrigger config

    {
      module: "MMM-NotificationTrigger",
      config: {
        triggers: [
          {
            trigger: "USER_PRESENCE",
            triggerPayloadFilter: (payload) => {
              return payload
            },
            fires: [
              {
                fire: "DUMMY_NOTIFICATION",
                exec: `curl -d "notification=RELAYED_USER_PRESENCE&payload=true" http://192.168.178.102:8080/webhook`
              }
            ]
          },
          {
            trigger: "USER_PRESENCE",
            triggerPayloadFilter: (payload) => {
              return !payload
            },
            fires: [
              {
                fire: "DUMMY_NOTIFICATION",
                exec: `curl -d "notification=RELAYED_USER_PRESENCE&payload=false" http://192.168.178.102:8080/webhook`
              }
            ]
          },
        ]
      }
    },
    

    If USER_PRESENCE notification is emitted from MMM-PIR-Sensor, it will be translated to DUMMY_NOTIFICATION and curl shell command will be executed to transfer message(RELAYED_USER_PRESENCE) to RPI_B

    RPI_B MMM-NotificationTrigger config

    {
      module: "MMM-NotificationTrigger",
      config: {
        useWebhook: true,
        triggers: [
          {
            trigger: "RELAYED_USER_PRESENCE",
            fires: [
              {
                fire: "DOING_MY_JOB",
                payload: (payload) => {
                  return (payload == "true") ?  true : false
                }
              }
            ]
          }
        ]
      }
    },
    

    By useWebhook:true it can listen message from RPI_A. When RELAYED_USER_PRESENCE is coming, DOING_MY_JOB (or whatever you want) notification will be emitted on RPI_B