• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Module Sending notification to a python project

Scheduled Pinned Locked Moved Solved Requests
12 Posts 2 Posters 4.3k Views 2 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    bimbim2401
    last edited by May 31, 2018, 2:45 PM

    Hello,

    can someone help me to create a simple module that send all notification from the magic mirror module to a python script. I need also some help to create the code in python to intercept the notification.

    Which goal ? I have a google assistant develop in python, i am using the facial recognition and i want to send notification from MMM-facial or other module to the google assistant which is develop in python to say something when a notification is received.

    here is the link of the google assistant project : https://github.com/shivasiddharth/GassistPi

    One other way is to create a module based on the python project but i do not know how to do it, and then it will received all the notification.

    I know there is a lot of assistant module for the magic mirror, but this one works very well, it has a lot of functionnality and i can configure it easyly in french.

    thanks so much.

    I 1 Reply Last reply May 31, 2018, 3:20 PM Reply Quote 0
    • I Offline
      idoodler Module Developer @bimbim2401
      last edited by May 31, 2018, 3:20 PM

      @bimbim2401 You just have to establish a Websocket connection from your Python module to the MagicMirror at port 8080.

      1 Reply Last reply Reply Quote 0
      • B Offline
        bimbim2401
        last edited by bimbim2401 May 31, 2018, 3:27 PM May 31, 2018, 3:25 PM

        so i just need to create a websocket in a python script like this below ? and it will listen to all notification from the magic mirror sending by the method sendnotification ?

        import SocketServer

        class MyTCPHandler(SocketServer.BaseRequestHandler):
        “”"
        The RequestHandler class for our server.

        It is instantiated once per connection to the server, and must
        override the handle() method to implement communication to the
        client.
        """
        
        def handle(self):
            # self.request is the TCP socket connected to the client
            self.data = self.request.recv(1024).strip()
            print "{} wrote:".format(self.client_address[0])
            print self.data
            # just send back the same data, but upper-cased
            self.request.sendall(self.data.upper())
        

        if name == “main”:
        HOST, PORT = “localhost”, 8080

        # Create the server, binding to localhost on port 8080
        server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
        
        # Activate the server; this will keep running until you
        # interrupt the program with Ctrl-C
        server.serve_forever()
        

        or do i have to add the MMM-WEBSOCKET module found here :
        https://github.com/JanLoebel/MMM-websocket

        I 1 Reply Last reply May 31, 2018, 3:34 PM Reply Quote 0
        • I Offline
          idoodler Module Developer @bimbim2401
          last edited by May 31, 2018, 3:34 PM

          @bimbim2401 Well, in Chrome I can see. That the MagicMirror Webclient establishes a Websocket connection to ws://IP:8080/socket.io/?EIO=3&transport=websocket&sid=SOME_ID. You can clearly see the communication, as the communication is not encrypted at all.

          1 Reply Last reply Reply Quote 0
          • B Offline
            bimbim2401
            last edited by bimbim2401 May 31, 2018, 4:13 PM May 31, 2018, 4:13 PM

            Thanks both for your response

            Do you think that the python code I have wrote is ok or can you give me the direction for the python code for listening to the notification

            I 1 Reply Last reply May 31, 2018, 5:36 PM Reply Quote 0
            • I Offline
              idoodler Module Developer @bimbim2401
              last edited by May 31, 2018, 5:36 PM

              @bimbim2401 Well, my Python times are a long time ago. Just try to run this script ans log the output. I also highly recogmend you to open Chrome and look at the Websocket frames.

              1 Reply Last reply Reply Quote 0
              • B Offline
                bimbim2401
                last edited by May 31, 2018, 9:31 PM

                F12 and then network ? Right ?

                I 1 Reply Last reply Jun 1, 2018, 7:23 AM Reply Quote 0
                • I Offline
                  idoodler Module Developer @bimbim2401
                  last edited by idoodler Jun 1, 2018, 7:24 AM Jun 1, 2018, 7:23 AM

                  @bimbim2401 Yep, on Windows its F12, on macOS its alt + cmd + i.

                  • Open the Network-Tab
                  • Look for the status code 101 (Switching Protocols) or just look for the type websocket
                  • Open the request
                  • Inspect the Socket as you wish (View frames, headers…)
                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    bimbim2401
                    last edited by bimbim2401 Jun 2, 2018, 1:52 PM Jun 2, 2018, 1:38 PM

                    Sorry but i cannot succeed to launch multiple script i found to intercept the get request from the module in python.

                    i need some help … sorry this is my first program in python language

                    Here is the script i want to modify : https://github.com/shivasiddharth/GassistPi/blob/master/src/main.py

                    I 1 Reply Last reply Jun 2, 2018, 2:03 PM Reply Quote 0
                    • I Offline
                      idoodler Module Developer @bimbim2401
                      last edited by Jun 2, 2018, 2:03 PM

                      @bimbim2401 I am not a Python guy either. Start small, create a simple Python script that establishes a Websocket connection, then interprete the websocket messages and so on…

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 1 / 2
                      1 / 2
                      • First post
                        7/12
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy