Matrix Voice: Matrixoi-Malos Installation klappt nicht

Moin,

ich versuch es auch nochmal hier, in meiner Muttersprache :slight_smile:

Setup: Pi3+, Matrix Voice Modul, Snips - läuft.

Jetzt möchte ich aber auch die LEDs des Moduls beleben und muss dazu als erstes
Matrixio-Malos installieren.

Dabei bekomme ich folgende Fehlermeldung:

pi@assi:~ curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add - pi@assi:~ echo “deb https://apt.matrix.one/raspbian (lsb_release -sc) main” | sudo tee /etc/apt/sources.list.d/matrixlabs.list pi@assi:~ sudo apt-get update
pi@assi:~ sudo apt-get upgrade pi@assi:~ sudo apt-get install matrixio-malos
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen… Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
matrixio-malos : Hängt ab von: matrixio-protobuf soll aber nicht installiert werden
Hängt ab von: libmatrixio-malos soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

Falls also einer von Euch hier schon durch ist und Lust hast mir zu helfen, bitte Ping geben.

Cheers…

Hi!
Schau mal wie ich den Matrix mit Snips Led Control installiere: https://github.com/Psychokiller1888/snipsLedControl/tree/master/installers

Hi zurück!
Erstmal danke für Deine Rückmeldung am Sonntag :slight_smile:

Um ehrlich zu sein, ich bin zwar in Python unterwegs, aber eher als Anwenderprogrammierer.
Diese ganzen Installationen und Abhängigkeiten sind mir unheimlich…

Hab jetzt herausgefunden, dass matrix_lite eher was für mich sein soll (einfacher zu handhaben).

Dabei wird wohl ein matrix_lite modul installiert, mit welchem dann auch die LEDs geschaltet werden können.

Mein einziges Python-Modul ist jedoch der snip-action-code.

Wo und wie ich jetzt mit anderen Python-Scripts die LEDs schalten kann, ist mir unklar.

Ohne eine Anleitung oder Tutorial werde ich wohl auch hier nicht weiterkommen :frowning:

Falls Du da einen Hinweis hast, wäre nett.

Aber auf jeden Fall noch einen schönen Restsonntag!

Cheers

Naja, Snips Led Control ist da für dich, einfache installation, und nichts zu tun, reagiert selber auf dein Snips install. Schau mal da, steht ja alles drin: https://github.com/Psychokiller1888/snipsLedControl/wiki

Oha!
Das ist was für die nächsten freien Tage (wenn die Prinzessin arbeiten ist).

Und das mit dem Bier mache ich garantiert, wenn die erste LED leuchtet, versprochen…

Cheers

Good luck :slight_smile: Bier saufe ich nicht mehr so viel, hab schon ne fette bierranze!

Was Dein PP damit macht, musst Du selbst aushandeln :slight_smile:

Hi @Psycho,

heute frei, also mal angefangen, bis zu " Run in debug mode"

pi@assi:~ $ sudo systemctl stop snipsledcontrol
pi@assi:~ $ cd snipsLedControl_v1.7.1/

pi@assi:~/snipsLedControl_v1.7.1 $ python main.py --debug=True
Traceback (most recent call last):
  File "main.py", line 19, in <module>
    handler = logging.FileHandler(filename='logs.log', mode='w')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/home/pi/snipsLedControl_v1.7.1/logs.log'

pi@assi:~/snipsLedControl_v1.7.1 $ ls -la
insgesamt 124
drwxr-xr-x 11 root root  4096 Jun  7 05:02 .
drwxr-xr-x 20 pi   pi    4096 Jun  7 04:59 ..
-rw-rw-r--  1 root root    32 Feb  1 20:55 _config.yml
drwxrwxr-x  3 root root  4096 Feb  1 20:55 .github
-rw-rw-r--  1 root root    55 Feb  1 20:55 .gitignore
-rw-rw-r--  1 root root  1962 Feb  1 20:55 hardware.json
drwxrwxr-x  2 root root  4096 Feb  1 20:55 installers
-rwxrwxr-x  1 root root  4787 Feb  1 20:55 install.sh
drwxrwxr-x  2 root root  4096 Jun  7 05:02 interfaces
drwxrwxr-x  2 root root  4096 Jun  7 05:02 ledPatterns
drwxrwxr-x  2 root root  4096 Jun  7 05:02 libraries
-rw-rw-r--  1 root root 35149 Feb  1 20:55 LICENSE
drwxr-xr-x  2 pi   root  4096 Jun  7 05:02 logs
-rw-r--r--  1 root root   778 Jun  7 05:05 logs.log
-rw-rw-r--  1 root root  5559 Feb  1 20:55 main.py
drwxrwxr-x  2 root root  4096 Jun  7 05:02 models
drwxrwxr-x  2 root root  4096 Feb  1 20:55 MqttSpyScripts
drwxrwxr-x  2 root root  4096 Feb  1 20:55 plugins
-rw-rw-r--  1 root root   911 Feb  1 20:55 README.md
-rw-rw-r--  1 root root   586 Feb  1 20:55 slc_download.sh
-rw-rw-r--  1 root root   296 Feb  1 20:55 snipsledcontrol.service
pi@assi:~/snipsLedControl_v1.7.1 $ 

Du meintest, man soll erst machen, wenn man genau weiß, was man tut.
Ich fliege hier aber ehrlich gesagt, recht tief…

Von daher warte ich lieber auf einen Hinweis von Dir, wie weiter.

Bei der Installation hatte ich matrixvoice angegeben und keine Installation notwendig, da der Mic-Teil davon bereits läuft.

Danke soweit und bis hoffentlich später.

Cheers

Halli hallo!

Also, installieren muss du, weil du packages brauchst um die LEDs zu nützen.

Um dein Problem zu lösen:

cd snipsLedControl_v1.7.1
sudo chown -R pi logs
sudo chown pi logs.log

Ich werde das noch ändern, aber du kannst es auch selber machen:

sudo nano /etc/systemd/system/snipsledcontrol.service

An die Linie #11:

User=pi

1 Like

Moin Moin @Psycho,

soweit, so gut:

pi@assi:~/snipsLedControl_v1.7.1 $ cat logs.log 
2019-06-08 04:47:58,881 [MainThread] - [INFO] - Starting Snips Led Control v. 1.7.1
2019-06-08 04:47:58,893 [MainThread] - [INFO] - Initializing SnipsLedControl
2019-06-08 04:47:58,894 [MainThread] - [INFO] - Loading configurations
2019-06-08 04:47:58,899 [MainThread] - [INFO] - Loaded 11 hardware references
2019-06-08 04:47:58,900 [MainThread] - [INFO] - - Mqtt server set to localhost
2019-06-08 04:47:58,901 [MainThread] - [INFO] - - Mqtt port set to 1883
2019-06-08 04:47:58,902 [MainThread] - [INFO] - - Client id set to default
2019-06-08 04:47:58,903 [MainThread] - [INFO] - - Hardware set to Matrix Voice
2019-06-08 04:47:58,904 [MainThread] - [INFO] - - Using alexa as pattern with 18 leds
2019-06-08 04:47:58,905 [MainThread] - [INFO] - Initializing leds controller
pi@assi:~/snipsLedControl_v1.7.1 $ 

Das logfile dazu sieht so aus:

pi@assi:~/snipsLedControl_v1.7.1/logs $ cat 20190608-logs.log 
2019-06-08 04:51:44,383 [MainThread] - [INFO] - Starting Snips Led Control v. 1.7.1
2019-06-08 04:51:44,394 [MainThread] - [INFO] - Initializing SnipsLedControl
2019-06-08 04:51:44,395 [MainThread] - [INFO] - Loading configurations
2019-06-08 04:51:44,400 [MainThread] - [INFO] - Loaded 11 hardware references
2019-06-08 04:51:44,400 [MainThread] - [INFO] - - Mqtt server set to localhost
2019-06-08 04:51:44,402 [MainThread] - [INFO] - - Mqtt port set to 1883
2019-06-08 04:51:44,402 [MainThread] - [INFO] - - Client id set to default
2019-06-08 04:51:44,403 [MainThread] - [INFO] - - Hardware set to Matrix Voice
2019-06-08 04:51:44,404 [MainThread] - [INFO] - - Using alexa as pattern with 18 leds
2019-06-08 04:51:44,405 [MainThread] - [INFO] - Initializing leds controller
2019-06-08 04:51:49,845 [MainThread] - [INFO] - Starting Snips Led Control v. 1.7.1
2019-06-08 04:51:49,856 [MainThread] - [INFO] - Initializing SnipsLedControl
2019-06-08 04:51:49,857 [MainThread] - [INFO] - Loading configurations
2019-06-08 04:51:49,861 [MainThread] - [INFO] - Loaded 11 hardware references
2019-06-08 04:51:49,862 [MainThread] - [INFO] - - Mqtt server set to localhost
2019-06-08 04:51:49,863 [MainThread] - [INFO] - - Mqtt port set to 1883
2019-06-08 04:51:49,864 [MainThread] - [INFO] - - Client id set to default
2019-06-08 04:51:49,864 [MainThread] - [INFO] - - Hardware set to Matrix Voice
2019-06-08 04:51:49,865 [MainThread] - [INFO] - - Using alexa as pattern with 18 leds
2019-06-08 04:51:49,866 [MainThread] - [INFO] - Initializing leds controller
pi@assi:~/snipsLedControl_v1.7.1/logs $ 

Aber, es leuchtet halt keine LED.
Eine snips-App arbeitet fleißig, reagiert auf wake-word, erkennt intend und slot usw.
Mir ist halt nicht klar, ob ich jetzt noch irgendetwas machen muss, damit SLC weiß, wann es arbeiten darf.
Muss ich jetzt noch irgendwas mit Hermes/Mqtt abgleichen?

Cheers und frohe Pfingsten

Hi @Psycho,

ich hab jetzt versucht:
pi@assi:~/snipsLedControl_v1.7.1 python main.py --hardware=matrixvoice --pattern=alexa --debug=True Starting Snips Led Control v. 1.7.1 ... ImportError: No module named zmq pi@assi:~/snipsLedControl_v1.7.1

Also:
pip3 install pyzmq

Dann kam:
ImportError: No module named matrix_io.proto.malos.v1

Und bei:
pi@assi:~/snipsLedControl_v1.7.1 pip install matrix_io.proto.malos.v1 Collecting matrix_io.proto.malos.v1 Could not find a version that satisfies the requirement matrix_io.proto.malos.v1 (from versions: ) No matching distribution found for matrix_io.proto.malos.v1 pi@assi:~/snipsLedControl_v1.7.1

Da war es wieder, der Anlass für dieses Thread :frowning:

Cheers…

Nach sudo apt-get update && sudo apt-get upgrade…

Bekomme ich jetzt:

pi@assi:~/snipsLedControl_v1.7.1 $ pip install matrix_io.proto.malos.v1
Collecting matrix_io.proto.malos.v1
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
    timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
    total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
pi@assi:~/snipsLedControl_v1.7.1 $ 

Cheers

Das kann ich nicht lesen :slight_smile: Du hast einen codetag für den Forum :wink:

Python 3 ist noch nicht unterstützt, kommt bald. Deswegen, mit dem installer.sh => “Do you need to install your hardware? Yes”

Das war ein guter Hinweis :sweat_smile:

Jetzt bin ich debug mode:

pi@assi:~/snipsLedControl_v1.7.1 $ python main.py --debug=True
Starting Snips Led Control v. 1.7.1
Initializing SnipsLedControl
Loading configurations
Loaded 11 hardware references
- Mqtt server set to localhost
- Mqtt port set to 1883
- Client id set to default
- Hardware set to ReSpeaker 2
- Using google as pattern with 3 leds
Initializing leds controller
Snips Led Control started
On hotword triggered
On listen triggered
On think triggered
On hotword toggle on triggered
^CShutting down Snips Led Control

…die LEDs zucken nicht (steht ja auch ReSpeaker2 da…).

Ergänze ich manuell die Parameter:

pi@assi:~/snipsLedControl_v1.7.1 $ python main.py --hardware=matrixvoice --pattern=alexa --debug=True
Starting Snips Led Control v. 1.7.1
Initializing SnipsLedControl
Loading configurations
Loaded 11 hardware references
- Mqtt server set to localhost
- Mqtt port set to 1883
- Client id set to default
- Hardware set to Matrix Voice
- Using alexa as pattern with 18 leds
Initializing leds controller
Connected to data publisher with port 20024
^C

…hängt das Script :frowning:

Da hast Du Dir einen schweren Patienten eingefangen :face_with_head_bandage:

Update:
Letzteres steht auch im logfile nach restart des Systems.

Bin fast sicher dass es um den Installation geht. Das sieht genau so aus: https://github.com/Psychokiller1888/snipsLedControl/issues/22

Das du die parameter manuel ergänzen musst steht es auch am Installation :wink:

Ja, das sieht so aus…
…nur kann ich nicht sehen, wie die Jungs das gelöst haben.

Dein Tip:

mkdir -p /home/pi/matrixvoice
cd /home/pi/matrixvoice
wget "https://github.com/matrix-io/matrix-creator-malos/blob/master/src/python_test/Pipfile" -O Pipfile
wget "https://github.com/matrix-io/matrix-creator-malos/blob/master/src/python_test/Pipfile.lock" -O Pipfile.lock
wget "https://raw.githubusercontent.com/matrix-io/matrix-creator-malos/master/src/python_test/requirements.txt" -O requirements.txt
wget "https://raw.githubusercontent.com/matrix-io/matrix-creator-malos/master/src/python_test/utils.py" -O utils.py
sudo apt-get update
sudo apt-get install build-essential python-dev python-pip
pip install -r requirements.txt

endet bei mir mit:

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 821, in unpack_url
    hashes=hashes
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 659, in unpack_http_url
    hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 853, in _download_http_url
    stream=True,
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
    timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
    total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
pi@assi:~/matrixvoice $

Soll ich nochmal ganz neu aufsetzen?
Und wenn, dann erst wieder matrix voice, dann SLC?

Cheers

Hi @Psycho,
ich hab mich noch nie so über ein paar leuchtende LEDs gefreut :blush:
Das war es, erstmal.

Vielen Dank für Deine Arbeit und den Support :kissing_heart:

curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.matrix.one/raspbian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/matrixlabs.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install matrixio-malos
echo "deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/Debian_9.0/ ./" | sudo tee /etc/apt/sources.list.d/zeromq.list
wget https://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/Debian_9.0/Release.key -O- | sudo apt-key add

Super! Bin froh dass es bei dich klappt!

Nun muss du jetzt den service ändern da SLC mit respeaker 2 automatisch auf geht:

sudo nano /etc/systemd/system/snipsledcontrol.service

Auf die Linie 7 einfach anpassen, mit den richtige hardware sowie pattern. Ist bei installation normalerweise automatisch gemacht. Werde in die nächste Woche einen neuen Version für Python 3 developieren

Danke St---- Ri---- :wink:

1 Like

Ich nochmal…

Ich wollte die LED-Pattern anpassen.

Habe den Inhalt von KiboostLedPattern.py in CustomLedPattern kopiert.
In snipsledcontrol.service: --pattern=custom.

LEDs blieben dunkel, vermutlich User-Rechte…

Habe zurück auf --pattern=kiboost geändert.
(Reboot danach)
LEDs bleiben aus.

Im Debug-Mode habe ich jetzt:

pi@assi:~/snipsLedControl_v1.7.1 $ python main.py --debug=True --pattern=kiboost --hardware=matrixvoice
Traceback (most recent call last):
File “main.py”, line 9, in
from models.SnipsLedControl import SnipsLedControl
File “/home/pi/snipsLedControl_v1.7.1/models/SnipsLedControl.py”, line 6, in
from models.LedsController import LedsController
File “/home/pi/snipsLedControl_v1.7.1/models/LedsController.py”, line 17, in
from ledPatterns.CustomLedPattern import CustomLedPattern
ImportError: cannot import name CustomLedPattern

Ich wollte gar kein eigenes LedPattern erzeugen, sondern nur das Blinken im IDLE mode nach ein paar Zyklen beenden.
Jetzt sieht es so aus, dass durch meinen Versuch mit --pattern=custom hier etwas zu importieren versucht wird, was nicht existiert und nicht benötigt wird.
Ich könnte jetzt in LedsController.py:

from ledPatterns.CustomLedPattern 	import CustomLedPattern

ändern in:

from ledPatterns.CustomLedPattern 	import KiboostLedPattern

Trotzdem verstehe ich nicht, warum bei --pattern=kiboost nach custom gesucht wird.

Cheers

Nach folgenden 2 Änderungen in LedsController.py:

Zeile 17:

from ledPatterns.CustomLedPattern import KiboostLedPattern

Und Zeile 63:

self._pattern = KiboostLedPattern(self)

Funktioniert debug mode mit Pattern kiboost und custom (inhaltlich gleich kiboot).

Jetzt kann ich an CustomLedPattern.py Anpassungen ausprobieren.

Cheers