Read the statement by Michael Teeuw here.
Module Sending notification to a python project
-
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.
-
@bimbim2401 You just have to establish a Websocket connection from your Python module to the MagicMirror at port
8080
. -
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 -
@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. -
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
-
@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.
-
F12 and then network ? Right ?
-
@bimbim2401 Yep, on Windows its
F12
, on macOS itsalt
+cmd
+i
.- Open the
Network
-Tab - Look for the status code
101
(Switching Protocols) or just look for the typewebsocket
- Open the request
- Inspect the Socket as you wish (View frames, headers…)
- Open the
-
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
-
@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…