Be clear about the software, hardware and version you are running
- I'm running a pi 3b+ with the above image (2018-07-31 lightning preview)
- With the standard Wake Word
Try to provide steps that we can use to replicate the Issue
- Burn the image to Micro SD card
- Seat the Micro SD card in the RPi 3
- Connect a network cable
- Boot Picroft
- ssh into pi.
Item 3 above is due to the missing bracket in the /etc/wpa_supplicant/wpa_supplicant.conf that was pointed out in chat (Don't recall who, sorry!). Wifi does not start in AP mode with the mycroft network to connect to.
(tl;dr)
- missing mycroft-cli-client
- motd has punctuation issues (_ vs -) in the command names.
- not completing the first run through has consequences, either force it or have it completed before image is remade?
- having a custom wake word and precise won't work well until you edit the config for it...though to be fair this is not terribly common yet.
- on home, under devices, the picroft images are showing with the mk1 graphic now instead of the picroft one.
- remove extraneous TODO in first_run bits?
=====
After connecting, I declined to do first run. The MOTD which shows up uses underscores in the commands "say-to-mycroft" and "test-microphone", these should be dashes. The command "mycroft-cli-client" was also missing.
Upon reconnecting, dev_setup was run, and I was dropped into a mycroft cli. Unfortunately, it was not able to connect to the message bus and spammed with several errors (see log snippet 1, below). These continue until breaking out with ctrl-c. At which point you are dropped to a shell with venv activated. None of the mycroft processes were running. I had network connectivity (could look up and curl mycroft.ai, for instance).
At this point I touched /home/pi/first_run and reconnected. After microphone volume adjustments, it has a TODO: which made no sense, and I wish I had gotten to it before the dev_setup bits started, sorry!
The dev setup appeared to try and re-run, but repeated the same drop to CLI and the error messages seen below. In perusing the logs in /var/log, there's leftovers from the initial setup, not sure if that's something you want to clear or not (not a big deal, just cruft).
I touched first_ run again rebooted. This time it appears to have successfully gotten the mycroft pieces setup and running. Upon dropping me into the CLI, it was able to give me a pairing string, and after registering connected and is now working.
At this point I asked it to change its listener to precise, which did not seem to work very well(see log snippet 2, below), I attribute this to my custom wake word. On reboot, I got log snippet 3, also related to the wakeword.
The tool mycroft-cli-client does not exist on this image.
Log snippet 1:
> 05:13:42.104 - mycroft.messagebus.client.ws:on_error:84 - WARNING - WS Client will reconnect in 5 seconds.
05:13:47.120 - mycroft.messagebus.client.ws:on_error:75 - ERROR - === ConnectionRefusedError(111, 'Connection refused') ===
Traceback (most recent call last):
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_app.py", line 168, in run_forever
host=host, origin=origin)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_core.py", line 266, in connect
self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options))
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 63, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 116, in _open_socket
raise err
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 105, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_app.py", line 168, in run_forever
host=host, origin=origin)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_core.py", line 266, in connect
self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options))
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 63, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 116, in _open_socket
raise err
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 105, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
05:13:47.132 - mycroft.messagebus.client.ws:on_error:82 - ERROR - Exception closing websocket: Exception("Uncaught 'error' event.",)
05:13:47.141 - mycroft.messagebus.client.ws:on_error:84 - WARNING - WS Client will reconnect in 10 seconds.
Log snippet 2:
05:24:26.407 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
05:24:26.430 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx
05:24:28.803 - mycroft.client.speech.listener:create_wake_word_recognizer:243 - INFO - creating wake word engine
05:24:28.816 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my customized silliness" wake word via precise
05:24:30.979 - mycroft.client.speech.hotword_factory:on_download:182 - INFO - Downloading Precise executable...
05:24:34.410 - mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.
Traceback (most recent call last):
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 260, in initialize
instance = clazz(hotword, config, lang=lang)
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 128, in __init__
precise_exe = self.install_exe(precise_config['dist_url'])
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 155, in install_exe
on_download=self.on_download, on_complete=self.on_complete
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 121, in install_package
download_extract_tar(tar_url, folder, data_file)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 83, in download_extract_tar
tar.extractall(path=folder)
File "/usr/lib/python3.5/tarfile.py", line 1998, in extractall
numeric_owner=numeric_owner)
File "/usr/lib/python3.5/tarfile.py", line 2040, in extract
numeric_owner=numeric_owner)
File "/usr/lib/python3.5/tarfile.py", line 2110, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.5/tarfile.py", line 2158, in makefile
copyfileobj(source, target, tarinfo.size, ReadError)
File "/usr/lib/python3.5/tarfile.py", line 241, in copyfileobj
buf = src.read(BUFSIZE)
File "/usr/lib/python3.5/gzip.py", line 274, in read
return self._buffer.read(size)
File "/usr/lib/python3.5/_compression.py", line 68, in readinto
data = self.read(len(byte_view))
File "/usr/lib/python3.5/gzip.py", line 480, in read
raise EOFError("Compressed file ended before the "
EOFError: Compressed file ended before the end-of-stream marker was reached
05:24:37.120 - mycroft.client.speech.hotword_factory:during_download:194 - INFO - Still downloading executable...
05:24:38.830 - mycroft.client.speech.hotword_factory:load_module:273 - INFO - precise is taking too long to load
05:24:38.840 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my customized silliness" wake word via pocketsphinx
05:24:39.014 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
05:24:39.034 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx
05:24:39.192 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:24:39.531 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb HTTP/1.1" 401 38
05:24:39.554 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:24:39.873 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/auth/token HTTP/1.1" 401 38
05:24:41.646 - mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.
Traceback (most recent call last):
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 260, in initialize
instance = clazz(hotword, config, lang=lang)
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 128, in __init__
precise_exe = self.install_exe(precise_config['dist_url'])
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 155, in install_exe
on_download=self.on_download, on_complete=self.on_complete
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 121, in install_package
download_extract_tar(tar_url, folder, data_file)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 83, in download_extract_tar
tar.extractall(path=folder)
File "/usr/lib/python3.5/tarfile.py", line 1998, in extractall
numeric_owner=numeric_owner)
File "/usr/lib/python3.5/tarfile.py", line 2040, in extract
numeric_owner=numeric_owner)
File "/usr/lib/python3.5/tarfile.py", line 2110, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.5/tarfile.py", line 2158, in makefile
copyfileobj(source, target, tarinfo.size, ReadError)
File "/usr/lib/python3.5/tarfile.py", line 241, in copyfileobj
buf = src.read(BUFSIZE)
File "/usr/lib/python3.5/gzip.py", line 274, in read
return self._buffer.read(size)
File "/usr/lib/python3.5/_compression.py", line 68, in readinto
data = self.read(len(byte_view))
File "/usr/lib/python3.5/gzip.py", line 480, in read
raise EOFError("Compressed file ended before the "
EOFError: Compressed file ended before the end-of-stream marker was reached
05:26:00.477 - mycroft.client.speech.hotword_factory:on_complete:202 - INFO - Precise download complete!
Log snippet 3
05:35:52.246 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my silly wakeword" wake word via pocketsphinx
05:35:52.384 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
05:35:52.388 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx
05:35:52.531 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:35:52.820 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb HTTP/1.1" 200 353
05:35:52.835 - mycroft.api:send:115 - DEBUG - Updating etag for: device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb
05:35:53.848 - mycroft.client.speech.listener:run:335 - DEBUG - Config has changed, reloading...
05:35:54.351 - mycroft.client.speech.listener:create_wake_word_recognizer:243 - INFO - creating wake word engine
05:35:54.361 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my silly wakeword" wake word via precise
05:35:54.370 - mycroft.configuration.config:load_local:124 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
05:35:54.383 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): github.com:443
05:35:54.694 - urllib3.connectionpool - DEBUG - https://github.com:443 "GET /MycroftAI/precise-data/raw/dist/armv7l/latest HTTP/1.1" 302 141
05:35:54.703 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): raw.githubusercontent.com:443
05:35:54.919 - urllib3.connectionpool - DEBUG - https://raw.githubusercontent.com:443 "GET /MycroftAI/precise-data/dist/armv7l/latest HTTP/1.1" 200 111
05:35:56.225 - mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.
Traceback (most recent call last):
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 105, in install_package
remote_md5 = download(md5_url).decode('utf-8').split(' ')[0]
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 51, in download
with urllib.request.urlopen(url) as response:
File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.5/urllib/request.py", line 472, in open
response = meth(req, response)
File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.5/urllib/request.py", line 510, in error
return self._call_chain(*args)
File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
result = func(*args)
File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 260, in initialize
instance = clazz(hotword, config, lang=lang)
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 130, in __init__
precise_config['model_url'], key_phrase.replace(' ', '-')
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 166, in install_model
on_download=lambda: LOG.info('Updated precise model')
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 107, in install_package
raise ValueError('Invalid MD5 url: ' + md5_url)
ValueError: Invalid MD5 url: https://raw.githubusercontent.com/MycroftAI/precise-data/models/my_silly_wakeword.tar.gz.md5
05:35:56.231 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my silly wakeword" wake word via pocketsphinx
05:35:56.375 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
05:35:56.380 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx
05:35:56.524 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:35:56.809 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb HTTP/1.1" 304 0
05:35:56.823 - mycroft.api:send:111 - DEBUG - Etag matched. Nothing changed for: device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb