Benutzer-Werkzeuge

Webseiten-Werkzeuge


rhasspy

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
rhasspy [2022/12/18 14:23] varnholtrhasspy [2024/01/17 18:54] (aktuell) varnholt
Zeile 171: Zeile 171:
 ==== Exchangelib ==== ==== Exchangelib ====
  
-Beim Umzug der Exchangelib-Aufrufe kam es zu Problemen, da die cryptography lib jetzt Rust braucht. Dann nehmen wir eben die Letzte, die noch kein Tust brauchte: Version 3.3.2 da aber die im pip-cache genommen wird, muss man den erst löschen. Es geht dann mit dem Aufruf:+Beim Umzug der Exchangelib-Aufrufe kam es zu Problemen, da die cryptography lib jetzt Rust braucht. Dann nehmen wir eben die Letzte, die noch kein Tust brauchte: Version 3.3.2 da aber die im pip-cache genommen wird, muss man den erst löschen. Ach, und dann kam noch der Fehler "ImportError: libxslt.so.1: cannot open shared object file: No such file or directory". Es geht dann mit den Aufrufen:
 <code> <code>
-pip3 cache purge +sudo apt-get install libxml2-dev libxslt-dev 
-pip3 install cryptography==3.3.2 +pip cache purge 
-pip3 install exchangelib+pip install cryptography==3.3.2 
 +pip install exchangelib
 </code>  </code> 
 +
 +==== Wetter ====
 +
 +Mit Snips hatte ich ein schönes Wettermodul. Wie ziehe ich das am besten um? Kopieren der wichtigsten Dateien: action-searchWeatherForecast-Wetter.py, weather_logic.py, weather.py und config.ini
 +
 +Da das ganze im Unterordner wetter liegt, findet skills.py es nicht. Dazu in den Unterordner eine leere Datei __init__.py und in skills.py 'from wetter.weather import Weather'
 +
 +Alles mit Hermes und snips auskommentieren. Mit 'sudo raspi-config' locale auf de_DE.utf8 setzen, den default aber sicherheitshalber auf en lassen. Testen mit 'locale -a'
 +
 +
 +In parse_intent_message 'intent = ForecastType.FULL' setzen und nur den letzten request lassen 'requests.append(WeatherRequest(DateType.FIXED, Grain.DAY, datetime.date.today(), intent, self.detail))'
 +
 +Probleme machen die Grain.DAY und so weiter. Dazu jeweils drei Zeilen an den Anfang.
 +<code>
 +from types import SimpleNamespace
 +d = {'DAY': 'day', 'key2': 'value2'}
 +Grain = SimpleNamespace(**d)
 +</code>
 +Nachdem jetzt aber Grain nicht mehr vom Type Grain, sondern vom Type sting ist, muss man auch die Zeile auskommentieren
 +<code>
 +    def grain(self, val):
 +        #if type(val) is Grain:
 +        self.__grain = val
 +</code>
 +Es gab Probleme, dass manchmal 'weather_for_interval' None war (irgendwas mit switch in der Fehlermeldung). Liegt möglicherweise an Uhrzeit oder Local oder was auch immer, denn erst fragt er bis 20:59 ab, aber findet dann erst was um 21:00 Uhr. Habe da einfach eingebaut
 +<code>
 +        if weather_for_interval == None:
 +            return None
 +</code>
 +Nächstes Problem, den richtigen tag zu übergeben, da snips das im Intent anders übergeben hat. Den nächsten Tag bekommt man, indem man 
 +<code>
 +dertag = datetime.date.today() + datetime.timedelta(days=1)
 +</code>
rhasspy.1671373400.txt.gz · Zuletzt geändert: 2022/12/18 14:23 von varnholt