Ich vermute du hast den Teil aus dem github wiki kopiert. Der Artikel dort setzt voraus das du schon ein funktionierendes Setup für rhasspy-hermes-app hast und gibt nur an, was man dort ergänzen muss damit rhasspy_weather funtioniert. Wenn du den Forenpost über deinem anguckst, siehst du dort mein komplettes Skript. Das kannst du einfach kopieren und in eine python Datei einfügen (pass auf die Formatierung auf, Einrückung ist wichtig). Damit dieses Skript funktioniert musst du rhasspy-hermes-app und rhasspy_weather installiert haben. Wenn du das gemacht hast, kannst du das Skript auf der Konsole ausführen und es sollte was tun. Falls du vorher noch nicht mit python gearbeitet hast würde ich dir empfehlen dir die Grundlagen zum installieren und ausführen anzulesen, das ist zum arbeiten mit rhasspy recht gut zu wissen.
Ich persönlich benutze das Skript mit docker-compose um es in einem Container laufen zu lassen. Das hat vor allem für mich den Vorteil, dass ich sonst in recht große Probleme mit verschiedenen python Versionen laufen würde da rhasspy_weather nicht mit python 3.9 läuft, andere Software das aber braucht. Alles in seinem eigenen Container und es läuft problemlos.
Wenn du es mit docker versuchen möchtest ist hier der Inhalt meines Dockerfile:
FROM python:3.7
RUN apt-get update && apt-get install -y git python3-pip && \
pip install rhasspy-hermes-app rhasspy-hermes && \
git clone https://github.com/Daenara/rhasspy_weather.git && \
pip install ./rhasspy_weather
COPY rhasspy_weather_config.ini /
COPY SkillListener.py /
COPY config.ini /
WORKDIR /
ENTRYPOINT ["python", "-u", "SkillListener.py"]
Diese Datei installiert einen Container mit rhasspy-hermes-app und der aktuellsten Version von rhasspy_weather, kopiert SkillListener.py (das python script vom Post über deinem), rhasspy_weather_config.ini (die Config für rhasspy_weather) und config.ini (Config für rhasspy-hermes-app, siehe unten) in den Container und führt dann SkillListener.py aus. Die drei Dateien müssen dazu im selben Ordner liegen wie das Dockerfile. Ich habe alle diese Dateien in einem Ordner namens mqtt_skill_listener was relevant ist weil dieser Ordner in der docker-compose.yml steht.
config.ini
[mqtt]
client=MQTTSkillListener
server=
port=
user=
password=
[rhasspy_weather]
config=rhasspy_weather_config.ini
Um die config.ini zu benutzen musst du unter mqtt die Daten von deinem mqtt Server eintragen.
Um das Ganze mit Docker zu benutzen kannst du entweder docker-compose benutzen, hier meine (gekürzte) docker-compose.yml:
version: '3'
services:
mqtt_skill_listener:
container_name: mqtt_skill_listener
build:
context: ./mqtt_skill_listener/
dockerfile: ./Dockerfile
restart: unless-stopped
network_mode: host
Es geht auch nur mit docker, dafür kenne ich mich mit docker allerdings zu wenig aus.
Grundsätzlich musst du rhasspy-hermes-app und rhasspy_weather installieren und dann muss in irgendeiner Form ein python Skript laufen für rhasspy-hermes-app was die Funktion die du in deinem Post hast beinhaltet (auch in abgeänderter Form).
Da du blutiger Anfänger bist solltest du dich etwas in python einlesen und entweder in python venv oder in docker da du sonst in Probleme laufen wirst wenn du verschiedene Python Programme hast deren Voraussetzungen inkompatibel sind. Meine Wahl ist dafür auf docker und docker-compose gefallen da venv nur für python funktioniert und es aber auch mit Linux Paketen Probleme geben kann.
Ich hoffe meine zusammenkopierte Anleitung hilft dir, ich bin für Fragen offen aber ich bin selbst noch relativer Anfänger was Linux angeht, ich arbeite sehr viel mit google um vorwärts zu kommen. Das Setup mit docker was ich beschrieben habe läuft bei mit, ist aber noch recht neu und ich finde vermutlich noch einiges daran was ich ändern werde wenn ich wieder aktiv an rhasspy_weather arbeite, deshalb ist das nicht in der wiki enthalten. Die wiki selbst setzt python Kenntnisse voraus (es steht soweit ich weiß nirgends wie man rhasspy_weather überhaupt installiert) und gehört verbessert, im Moment liegt mein Fokus aber eher auf anderen Projekten und ein Tag hat nur eine begrenzte Anzahl an Stunden daher beantworte ich lieber Setupfragen im Forum wenn jemand rhasspy_weather benutzen will statt Stunden in ein wiki zu investieren was vermutlich eh kaum jemand benutzt.
Daenara
Short English explanation for anyone trying to use the docker stuff provided here. Take the script from two posts above, name it SkillIstener.py, put it in the same folder as the Dockerfile (first codeblock above). copy the content of the 2nd codeblock to a file named config.ini, that is the config used for rhasspy-hermes-app. Add your mqtt credentials in that file abd said file in the same folder as the Dockerfile. Put a rhasspy_config file named rhasspy_weather_config.ini in the same folder. 3rd codeblock is my docker-compose.yms stripped to only contain the skill listener stuff. Rename your folder that contains that stuff mqtt_skill_listener (or change the foldername in the docker-compose.yml) and you should be good to go. This setup works for me but is pretty untested (which is why it is not in the wiki)