Read the statement by Michael Teeuw here.
Ideas Needed
-
Hi,
So I build a magic mirror with MMM-AssistantMk2 and it works pretty good. I have the assistant/mirror integrated with the following:Roborock vacuumers (1 on each floor)
Siemens EQ9 automatic coffeemachine
Hue Lighting
Video feed from the gate camera (doorbird 101D)So, I got the assistant to recognize the open gate “Open Gate” command and respond with “Ok, Opening the front gate”. However, in order to actually open the front gate, a HTTP GET needs to be sent to the gate camera. I can do that with a python script on the Raspberry PI, however in order to get the assistant to call that script I would need to do port forwards in my firewall, which I would rather not.
I need some way to interact with the mirror, so it calls the python script. It could be a physical button but I am looking for alternatives.
Does anyone have any ideas?
Best
MilkShake -
@MilkShake why do you need a python script to issue a get?
in javascript in a browser, use the builtin fetch function
fetch(url).then((info){})as u have the javascript to issue a message. its a one liner, maybe 5… i don’t know what the python needs to do
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
-
It doesn’t really matter how I do it. The point is that it has to be done from LAN, so I need a way to interact with the mirror and get it to fire the script.
-
@sdetweil this is two lines:
import requests x = requests.get('http://USERNAME:PASSWORD@192.168.1.XXX/bha-api/open-door.cgi') print(x.status_code) -
@MilkShake Isn’t the mirror on the same LAN? In that case you don’t have to do any port forwards.
-
@MilkShake right, but now you gotta figure out how to execute it and u can’t do that from the browser, so now you need a node_helper and all that communication, and launching the ting in the background, etc,etc,etc)
-
@sdetweil I’m not following your point. I get it that I could do the GET from javascript instead of running a script, but the rest you might elaborate a bit more on :)
-
@MilkShake show me your script that is called when the action occurs
-
@sdetweil my whole point is, since the action happens on the google assistant I would need to do port forwards in my firewall to be able to call a LAN URL with a GET method. I guess it would be possible to catch the event locally on the mirror and then call the python script or do the GET method in some other manner, but I don’t know how to do that.
One option would be to just add a physical button to the raspberry pi and when pressed it runs the GET method. It just annoys me that you can make the assistant understand a command, but not utilize it locally on LAN.
-
@retroflex The mirror and the gate are on the same LAN. The assistant understands the “Open Gate” command and replies with “Ok, Opening the gate”, but if I were to use a Google Action to do the GET, it would come from the internet.
I don’t know how to catch the event locally on the mirror. If I did, I would just call the python script and the gate would open.
-
@MilkShake the actions run locally on the mirror, they are TRIGGERED from the module… not as callbacks I don’t think
(i haven’t done that myself, but it seemed logical before) the old recipe stuffyou just create a little script in maybe the new A2D but old assistant had it to to trigger events…
here is fiddling with the radio on the mirror
https://github.com/bugsounet/MMM-Assistant2Display/wiki/Radio_help
-
How I do URL calls in python is through urllib.request - import that library then:
urllib.request.urlopen("http://pi.hole:60001/remote?action=MONITORTOGGLE")Depends on how far outside you wanna go outside the MM ecosystem.
edit: reminds me, I gotta re-write that for the new config, pi-hole and the mirror being two different units now.
-
@BKeyport but u have to use a helper to launch the python code…
way overhead for a fetch or post -
@sdetweil True, if you’re staying in the MM ecosystem - in my case, I couldn’t get the modules I wanted to work the way I wanted, so I wrote up a python script to cover it, and it runs independently of MM
He wanted a python method, so I gave him options.
-
-
I went the way of dataplicity.io/wormhole, NGINX, IFTTT and MMM-NotificationTrigger. That way I should be able to use a webhook to execute the python script.
-
@Bugsounet Thanks Bugs! I will look into that when I have time for it.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login