MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord
    MagicMirror² v2.20.0 is available! For more information about this release, check out this topic.

    SOLVED Module Sending notification to a python project

    Requests
    2
    12
    2222
    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
      bimbim2401 last edited by

      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.

      idoodler 1 Reply Last reply Reply Quote 0
      • idoodler
        idoodler Module Developer @bimbim2401 last edited by

        @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
          bimbim2401 last edited by bimbim2401

          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

          idoodler 1 Reply Last reply Reply Quote 0
          • idoodler
            idoodler Module Developer @bimbim2401 last edited by

            @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
              bimbim2401 last edited by bimbim2401

              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

              idoodler 1 Reply Last reply Reply Quote 0
              • idoodler
                idoodler Module Developer @bimbim2401 last edited by

                @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
                  bimbim2401 last edited by

                  F12 and then network ? Right ?

                  idoodler 1 Reply Last reply Reply Quote 0
                  • idoodler
                    idoodler Module Developer @bimbim2401 last edited by idoodler

                    @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
                      bimbim2401 last edited by bimbim2401

                      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

                      idoodler 1 Reply Last reply Reply Quote 0
                      • idoodler
                        idoodler Module Developer @bimbim2401 last edited by

                        @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
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy