When you first activate the skill, Mycroft will attempt to find the ip.json which will hold the ip address of your MagicMirror. If that file does not exist Mycroft will say
"To activate the magic-mirror-voice-control-skill I need to know the I P address of the magic mirror. What is the I P address of the magic mirror you would like to control with your voice?"
Be ready, because Mycroft will expect an answer, and you will hear the listening chirp as soon as Mycroft finishes speaking. Be ready with the response “Set IP Address 192 dot 168 dot X dot XXX”. Replace the X’s with your MagicMirror’s IP Adress. It can be finicky. So if it doesn’t work, just say ‘Hey Mycroft’… 'Set IP Adress 192 dot 168 dot X dot XXX again. Be careful not to say ‘Set IP Adress to’ because Mycroft tries to add the word ‘to’ into the IP Adress.
magic-mirror-voice-control-skill connects to a working install of MagicMirror from …
which can be installed by 'git clone https://github.com/MichMich/MagicMirror.git'
WARNING!!! IF YOU PLAN TO HAVE BOTH MAGIC MIRROR AND MYCROFT OPERATING ON THE SAME RASPBERRY PI, YOU MUST USE MAGIC MIRROR V2.3.1 AND NOT THE LATEST VERSION 2.4.1 BECAUSE THE V2.4.1 HAS A NEWER VERSION OF ELECTRON WHICH WILL CAUSE EXTREMELY HIGH CPU USAGE AND WILL OVERHEAT YOUR RPi.
you can use git checkout 60b9a5b
in the config.js you will need to modify your ip whitelist like so:
where 192.168.X.1/24 -----------X is your local network address
In addition to the default modules the MMM-Remote-Control module and my fork of the MMM-kalliope module must be installed for the skill to function as it does in the video. To add the modules to the config.js follow the instructions for each module.
If you would like to see the steps I took to have both a working copy of MagicMirror and Mycroft operating on the same RPi you can check out these two links Creating my first skill… and Trying to install both…
How to test magic-mirror-voice-control-skill
Specify the steps the user should take to test the Skill, such as;
Speak —hey mycroft… hide clock
Mycroft should —remove the clock from the MagicMirror display
Mycroft has a number of different “system action keywords”
refresh
restart
reboot
shutdown
show
hide
turn on
turn off
update
conceal
display
wake up
go to sleep
save
When these system action keywords are combined with “System Keywords” like
article details
mirror
monitor
raspberry pi
pi
modules
screen
You can Reboot Pi for example or Turn Off Monitor or Save Pi or Update Mirror
You should see the action taken, and get an audible response from Mycroft.
There are also actions that can be directed at modules:
hide
show
display
conceal
install
add
turn on
turn off
update
That need to be coupled with “Module Keywords” like:
alert
update notification
clock
calendar
compliments
wunder ground
traffic
google traffic map
email
remote control
news feed
page indicator
remote control repository
button
buttons
carousel
carousel navigation
connection status
hide all
glance
module scheduler
on screen menu
tabulator
bitcoin
ethereum
lice
stock
stocks
In all, Mycroft can interact with 340 different modules. But the only commands that Mycroft will take action are on modules that are actually installed on the MagicMirror. Like hide clock, or show email, or turn off weather for example.
Mycroft will respond to every intent that is recognized with an action which you will see on the mirror and a verbal response from the success.dialog:
done
complete
success
as you wish
by your command
If the command doesn’t make sense, like install raspberry pi, Mycroft should respond with incrorrect.dialog.
‘That command is not valid, please restate it’ or
‘I cannot follow that command, please say it a different way’
‘That command does not make sense, please try again’
If a module is not installed, Mycroft will respond:
“That module does not appear to be installed.” or
“I cannot find that module installed on the magic mirror.”
Where feedback on magic-mirror-voice-control-skill should be directed to:
@dmwilsonkc,
Very interested in this project but currently don’t have the hardware to make it happen. It is on my wish list though. Few questions (unrelated to the skill).
How big is the mirror and display?
Did you use Glass or Acrylic?
Could you have a larger mirror with smaller display in one region of the mirror?
Can the MM be a separate installation (hardware) to mycroft?
@pcwii I have not built the physical mirror yet. My plan is to use an old 32” LCD monitor and acrylic mirror. As far as using a smaller display with a larger mirror, it is all up to you and your personal preference. You can use separate installations of Mycroft and Magic Mirror. You can even use this skill with a Mark 1 and a MagicMirror as long as it is on the same network, and the mirror has the proper modules installed and the IP whitelist is configured in the mirror’s config.js
I’m love your skill iv got to say and after finding out about picroft I would like to us this ai with my MagicMirror2, I’m running the latest MagicMirror2, you mentioned about over heating issues is this with no pi cooling or not as I have a heat sink and fan on the cpu and ram and a heat sink on the smsc chip?? Or is it better to just downgrade the mirror version, thanks for the great work, just one more thing is there any more progress with the skill??
@Jmh474 You can use any version of MagicMirror you like as long as the MMM-Remote Control Module and my branch of the MMM-kalliope Module are installed. My concern about the overheating is because I had both the MagicMirror and Picroft installed on the same RPi. If you experience overheating issues, you can always use a seperate RPi for Picroft, so long as they are on the same network and have access to the MM’s ip address. You could also use the skill (so long as the modules are installed on the Mirror) with a Mark 1 and quite probably a Mark II when they ship.
The the skill works by sending http requests to the MagicMirror, so as long as the modules are installed and you’ve properly whitelisted the Picroft’s ip, it should work perfectly.
@Jmh474 Oh… I haven’t been able to do anymore work on the skill for quite some time. I’m not sure what other functionality you’re looking for, but I’m super busy with work and I’m not sure when I could get to it. If you’ve got cooling with your mirror overheating will probably not be a problem for you, I am using a basic RPi 3b with a 16gb sd card. Nothing fancy, but overheating is a consideration for me.
as soon as the magic mirror server is not active, you will get a second error error message every second
“Bei der Verarbeitung der Anfrage ist ein Fehler im Skill Magic Mirror Voice
Control Skill aufgetreten.” pretty nerf.
@Anthony_36 You can create a Pull Request for the modules you want and I can add them. You could add them yourself but they will be replaced on an update, so you could create a backup of that file after you’ve added the modules you’d like added in case the skill gets updated. If you look at it, it is a simple json file and the parts for each module you want added are pretty self explanatory. If you do a PR please include a link to the module’s url. I will update it, but not if I have to hunt for the module.
I thought that I must do much more for it to work. So if I add in availablemodules.json a small array containing the module’s url, mycroftname etc like all the others it will work just like that? If so I will do ti my self with a back up folder as you mentioned. Thank you for the tip.
@gras64 So I had the opportunity to identify instances in the code that throw the “There was an error processing a request in the MagicMirrorVoiceControl skill” error. I think I have made the necessary code changes to account for possible errors and address them so the annoying “error processing request” errors no longer happen. I also made changes in the code to check for connection and whether my fork of the MMM-kalliope is installed and configured. If you get a chance, go to the magic-mirror-voice-control-skill directory in the skills directory /mycroft-core/skills/magic-mirror-voice-control-skill/ and type
git pull
To update the skill.
Let me know if you find any other errors I need to address.
This Skill is currently being reviewed to be included in the public Skills Marketplace. It sounds like you are all using the skill currently so your experience is the best indicator of whether it’s functioning as expected.
Based on the skills current README.md, if a User installed this from the Marketplace, would they be able to get setup and perform all the actions described in the example intents?
Is there anything that you think needs to be modified before it is merged into the Marketplace?
hello, I have a problem with Magic-mirror-Voice-Control-Skill.
All works before yesterday.
Yesterday I update mycroft to the latest version 19.8.0 and now at the start of Mycroft I have the following error:
2019-09-27 22:47:28.701 | ERROR | 9316 | mycroft.skills.skill_loader:_load_skill_source:209 | Failed to load skill: magic-mirror-voice-control-skill (ImportError("No module named 'mycroft.messagebus.client.ws'",))
Traceback (most recent call last):
File "/home/pi/mycroft-core/mycroft/skills/skill_loader.py", line 202, in _load_skill_source
('.py', 'rb', imp.PY_SOURCE)
File "/usr/lib/python3.5/imp.py", line 234, in load_module
return load_source(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 172, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 693, in _load
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 673, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/opt/mycroft/skills/magic-mirror-voice-control-skill/__init__.py", line 31, in <module>
from mycroft.messagebus.client.ws import WebsocketClient
ImportError: No module named 'mycroft.messagebus.client.ws'
2019-09-27 22:47:28.730 | ERROR | 9316 | mycroft.skills.skill_loader:_communicate_load_status:280 | Skill magic-mirror-voice-control-skill failed to load
I do not know why this error is occurring. Obviously if it happened after the update, something changed with Mycroft’s code. We can ask @gez-mycroft to look into what may have changed with Mycroft-core’s web socket.
I have the problem “No module named” also with many other skills. it seems to me that the dependent rent for updates are not installed properly. no idea.
@gez-mycroft Thanks! I’ve been swamped at work so I haven’t really had a chance to look at this. I’ll update the skill to the MessageBusClient, but I probably won’t be able to get to it for a couple of weeks. Thanks, Dave.