Modulentwicklung für Rhasspy Sprachassistent

Begonnen von drhirn, 11 März 2021, 15:59:50

Vorheriges Thema - Nächstes Thema

JensS

Hier tut sich ja einiges in Sachen gSD.  :)
Sollte dafür ein extra Thread im Development aufgemacht werden, um den Entwicklern anderer Module den Mehrwert nahe zu bringen?

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Beta-User

Zitat von: JensS am 04 Januar 2022, 10:43:25
Sollte dafür ein extra Thread im Development aufgemacht werden, um den Entwicklern anderer Module den Mehrwert nahe zu bringen?
...von mir aus gerne, die Frage ist allerdings, wer sich (im Moment) noch dafür interessiert. Die "großen Systeme" (mit externer "cloud" Spracherkennung wie gassistant usw.) brauchen anscheinend die Devices auch "externalisiert"...

Zitat von: Prof. Dr. Peter Henning am 04 Januar 2022, 10:34:55
Das halte ich für wenig hilfreich, weil das bedeuten würde, entfernte Nluis auch zu konfigurieren. Das oben beschriebene Verfahren mit einem ganz schlanken Code auf Seite der Slaves, der keine Konfiguration benötigt, halte ich für nutzerfreundlicher
"Keine" stimmt ja auch nicht, die Attribute müssen a) vorhanden sein, und b) gesetzt werden. Unklar ist mir dann noch, wie Geräte auf der entfernten Instanz geschaltet/angefragt werden sollen. Muss mir wohl mal reinziehen, was in deinem obigen Kontext das
FW_pO $json;bewirkt...

Zitat
OK, Du meinst "Operationen", nehme ich an.
Ja, sorry.

Zitat
Aber wir haben doch Gruppenstrukturen in FHEM - warum das Rad zum zweiten Mal erfinden? Siehe unten.
Die Gruppenstrukturen in FHEM sind - mit Verlaub - "Murks".
Den Rest (optionaler Versatz, ersetzen von internen durch externe Gruppen, setter-Mappings) kann RHASSPY bereits, das muss man nicht nochmal erfinden ;) . Und zwar weniger pauschal als structure, und ohne dass man groß was manuell konfigurieren müßte :P .

Zitat
Nein, wenn man es richtig macht, eben nicht. Schau mal in den (angefangenen) Wiki-Eintrag dazu
Es weicht in zwei Punkten massiv von meinem bisherigen Weltbild ab, weiß noch nicht, ob ich das gut oder erforderlich finde:
- mehrere gDT-Angaben waren bisher afaik nicht usus, das gibt uU. Probleme mit anderen Sprachsteuerungssystemen, wenn man mehrere parallel nutzen will
- "weniger ist mehr": warum "switch" auf "on/off" beschränken? Ist imo dasselbe wie "outlet" und kann ggf. auch ein power-Reading haben.
- "light" und "dimmer": Wenn ein Device pct, dim, bri oder brightness kann, ist es dimmbar. Es braucht keinen Dualismus, und v.a. keine Einschränkung auf pct-Setter, sonst muss man wieder zu viel umrechnen, ohne dass das einen Mehrwert bringt (was nicht bedeutet, dass Nlui nicht intern in 0-100-Skalen "ticken" sollte!).
- "blind" - da muss ich mir jetzt überlegen, wie ich den ZWave und CUL_HM-Geräten open/closed beibiege.
- ein gDT "hygrometer" bringt uns keinen Deut weiter, außer dass explizit damit verbunden ist, dass Nlui ein Reading suchen soll, das dazu paßt. Kann man bei einem Erstdurchlauf auch zwanglos machen, wenn es "nur" ein "sensor" oder ein "thermostat" (oder was auch immer) ist.
Vorteil: Man hat eine Einschränkung der in Frage kommenden Devices, ok. Muss man sonst anders lösen, wenn die Anfrage zu wenige Daten liefert, um direkt zum Ergebnis zu kommen (RHASSPY-Lösung: priority)
Unklar: Was tun, wenn das zugehörige Reading nicht ermittelt werden kann. Dann muss man so oder so manuell eingreifen.

Bin eher nicht überzeugt, dass dieser Ansatz zielführend ist.

Zitat
Habe ich im Developer-Bereich bisher nicht gesehen, muss ich mir ansehen. Ich wäre dafür, die gDT-Liste stark einzuschränken und nur für diese mandatorische Readings/Settings festzulegen
Das mit den mandatorischen Settern halte ich für bestehende Module für schwierig, und manche Einschränkungen ergeben sich aus der Hardware. Für künftige Entwicklungen hatte ich hier mal was geschrieben: https://forum.fhem.de/index.php/topic,117933.msg1123606.html#msg1123606

Zitat
Wer so etwas macht, ist selbst Schuld. Pro Raum sollte es nur eine Stelle geben, an der man die Temperatur regelt - wenn nicht, muss eben "Wohnzimmer:Ostseite" und "Wohnzimmer: Westseite" unterschieden werden.
Jein. Zum einen arbeiten meine CUL_HM-Thermostate eh' im Verbund, und das war eher auch ein Testszenarium, was das "set" angeht. Für Abfragen ist es was anderes, da will ich in der Regel den Raumfühler haben (definiert über prio in room), kann aber auch meine Thermostate eigenständig abfragen (was in der Regel auch sinnlos ist, aber es geht erst mal um die strukturellen Fragen. Hat man im selben Raum einen Backofen, ändert sich das Abfrage- und Setter-Szenarium doch deutlich, oder?).

Zitat
"Spiele Musik" mündet bei mir in einen Dialog, um weitere Parameter abzufragen.
Es braucht imo keinen Dialog, wenn das Ergebnis an sich eindeutig ist, und mein Beispiel war "mach lauter", nicht: "Spiele Musik"... Die läuft also schon, und jedenfalls in eindeutigen Fällen nervt dann ein Dialog...

Zitat
Geht in Babble längst im Web-Frontend.
Na ja, kommt eben darauf an, wie man das Gesamtsystem sieht. Soweit erkennbar, macht Babble die Konfiguration bisher zentral, nicht dezentral. Tendenziell finde ich es flexibler, wenn man Device-spezifische Einstellungen auch da erledigt, sobald man eine Mischung mit zentralen Kommandos hat, kommt sich das gerne mal ins Gehege. Aber "die" Lösung gibt es für diese Anforderung nicht.

Zitat
Na ja, Wettbewerb der Systeme. Ich bin immer für die Konfiguration auf der Web-Oberfläche, andere bevorzugen das Editieren einer Datei.
Bin auch eher bei Konfiguration über das Web-Interface, sehe aber auch kein Problem darin, das mit sowas wie (relativ unveränderlichen und in vielen Installationen verwendbaren) Einstellungen in der language-file zu kombinieren. Viel Device-spezifisches Zeug in externen Files zu konfigurieren ist imo nicht erstrebenswert. Andererseits: wenn es jemand haben will, braucht man halt einen passenden parser und "gut ist"...

Grüße,
Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Prof. Dr. Peter Henning

ZitatEs weicht in zwei Punkten massiv von meinem bisherigen Weltbild ab
Ich war noch nie politisch korrekt...


ZitatDie Gruppenstrukturen in FHEM sind - mit Verlaub - "Murks".
structure gibt es in 6473 Instanzen auf 1378 verschiedenen FHEM-Systemen... Wenn ein Nlui-Modul genutzt werden soll, kannst Du nicht gleichzeitig verlangen, dass alle ihre structures auf den Müll werfen.


FW_pO $json;

Das macht nur die Ausgabe im FHEMWEB. Installier doch einfach den Code aus meinem Post auf einer Deiner Kisten, und frage im Webbrowser http://<ip>:8083/fhem/Babble_devlist ab. Vorausgesetzt, dass ein babbleGenericDevice Attribut gesetzt ist, sonst musst Du den Code umschreiben.

Die Ausführung auf dem remote FHEM erfolgt entweder durch Ausführen der remoteFunc0..3 mit dem Kommando als Parameter (meine FHEMs kommunizieren über eine Perlfunktion fhemxxCmd(") miteinander, die xx steht für das letzte Tripel der IP-Adresse) oder über

my $url    = "http://".$ip."/fhem?XHR=1&amp;fwcsrf=".$token."&amp;cmd.$fhemdev=$cmd";
          HttpUtils_NonblockingGet({
            url => $url,
            callback => sub($$$){}
          });


LG

pah

Beta-User

Zitat von: Prof. Dr. Peter Henning am 04 Januar 2022, 12:05:57
Ich war noch nie politisch korrekt...
Ich bin auch nicht eben berühmt dafür, unpopuläre Dinge nicht auszusprechen...

Die Frage bleibt aber, ob es sinnvoll ist, "Revolution" zu rufen, wenn ein kleiner Evolutionsschritt es auch schon tut, und die Revolution keine wirklichen Vorteile bietet.

Zitat
structure gibt es in 6473 Instanzen auf 1378 verschiedenen FHEM-Systemen... Wenn ein Nlui-Modul genutzt werden soll, kannst Du nicht gleichzeitig verlangen, dass alle ihre structures auf den Müll werfen.
Tue ich doch nicht. Wer eine structure hat und die schalten will, darf und kann das doch gerne auch weiterhin tun, wo ist das Problem?

Mein Ansatz ist nur: Wer (heute) keine structure hat, muss die nicht extra basteln, nur um einen simplen Befehl wie "mach alle Lichter im Esszimmer aus" ausführen zu können... Und wenn die Gruppenanweisung an einer kleinen Stelle Schwierigkeiten hat (z.B. ein einzelnes Device, das einen Zeit-Versatz braucht) , oder cleverer gelöst werden kann (Beispiel: HUE-Gruppe oder virtueller Taster in CUL_HM), sehe ich keinen Vorteil, die User auf bereits existierende 6,5T structure-Devices hinzuweisen, sondern dann wollen die vermutlich genau ein solches kleines "Special" haben und mit dem Rest nicht behelligt werden :P ...

Zitat
Das macht nur die Ausgabe im FHEMWEB. [...]
Ok, damit ist es klarer, werd's mal testen (wird aber etwas dauern) :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Zitat von: Beta-User am 04 Januar 2022, 12:20:01
Ok, damit ist es klarer, werd's mal testen (wird aber etwas dauern) :) .
Das Einsammeln habe ich doch schon mal ausgetestet. Nice :) .

Prinzipiell kann man das auch recht einfach ausbauen, soweit klar.

Meine gedanklichen Probleme haben sich daher auf diesen Punkt verlagert:
ZitatDie Ausführung auf dem remote FHEM erfolgt entweder durch Ausführen der remoteFunc0..3 mit dem Kommando als Parameter (meine FHEMs kommunizieren über eine Perlfunktion fhemxxCmd(") miteinander, die xx steht für das letzte Tripel der IP-Adresse) oder über
Um zu wissen, was dann passieren soll, muss man uU. Werte kennen, (unterscheiden, ob man "in Bulk" ist), eine Queue anlegen für die Rückmeldung/Auswertung, ... Oder eben laufend dafür sorgen, dass die möglichen, zur Abfrage oder Berechnung benötigten Werte aktuell gehalten werden. Auch nicht schön.
Klingt jedenfalls auf den ersten Blick alles in allem ziemlich komplex.

Oder man muss eine vergleichsweise intelligente Gegenstelle aufrufen, die z.B. mit "mach im Wohnzimmer 15 % heller" was anfangen kann. Dann ist es aber mit dem Einfach-Code vorbei, mit dem man mehr oder weniger einmalig ein paar einfache Daten abruft, und man wäre wirklich bei einer Server/Client-Struktur...

Hmm, wird wohl etwas dauern, bis ich mir dazu den Kopf zerbrochen habe... Bin mal gespannt, was andere dazu meinen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: Beta-User am 21 Dezember 2021, 06:54:52
Da es im Wiki stand, wollte ich das schlicht ausprobieren und kann nicht sagen, ob "float" das genauso gut kann...
Hatte dann auch die "1...9"-Version ausprobiert, allerdings mit demselben Ergebnis. Wenn wir "customFloat" nicht brauchen, sollte man es aus dem Wiki werfen. @drhirn: Schaust du dir das bei Gelegenheit an?

Sicher brauchen wir den. Rhasspy kann leider mit "zweiundzwanzig komma fünf" nichts anfangen. Der Custom-Converter hat früher also mal aus dem gesprochenen eine brauchbare Zahl gemacht. Ich frag mal im Rhasspy-Forum, was da los ist.

Beta-User

Zitat von: drhirn am 04 Januar 2022, 13:28:47
Sicher brauchen wir den. Rhasspy kann leider mit "zweiundzwanzig komma fünf" nichts anfangen. Der Custom-Converter hat früher also mal aus dem gesprochenen eine brauchbare Zahl gemacht. Ich frag mal im Rhasspy-Forum, was da los ist.
Danke!

Ansonsten könnten wir notfalls auch noch einen "Decimal"-Tag für sowas einführen und dann einfach eine "Value += 0.{Decimal}"-Sonderlocke im JSON-Parser berücksichtigen. Aber schön ist was anderes...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: Beta-User am 04 Januar 2022, 13:39:21
Ansonsten könnten wir notfalls auch noch einen "Decimal"-Tag für sowas einführen und dann einfach eine "Value += 0.{Decimal}"-Sonderlocke im JSON-Parser berücksichtigen. Aber schön ist was anderes...

Ja. Bin schon der Meinung, dass Rhasspy das von sich aus können sollte. In meiner Test-Umgebung funktioniert der Converter übrigens. In meiner produktiven aber genau so wenig, wie bei euch.

https://community.rhasspy.org/t/nluexception-with-custom-converter/3395

JensS

(0..255[komma:.(0..9)]){Value} und =~ s/ . /./
wäre auch möglich. Dann müssten die User keinen extra Konverter installieren.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Gisbert

Zitat von: Beta-User am 02 Januar 2022, 08:17:36
Hmmm....

Leider habe ich Schierigkeiten, diese Fehlerbeschreibung in konkrete Code-Stellen umzusetzen.
Zum einen bin ich ziemlich sicher, dass nirgendwo eine Funktion verbaut ist, die einen vorhandenen "senkrechten-Strich-Text" erst auseinandernimmt und dann wieder anders zusammensetzt. Wenn es also unterschiedliche Ausgaben gibt, waren die auch bereits unterschiedlich notiert - irgendwo in deiner Konfiguration. Die kenne ich aber nicht im Detail. Das hier gepostete sieht nach "DefaultConfirmation" aus, und da hatte ich bisher keinen vergleichbaren Effekt bei mir beobachten können, wenn die Antwort aus den Standardroutinen generiert wird.

Das kann durchaus anders sein, wenn die response aus einen individuellen Mapping kommt, und da bin ich nämlich auch nicht sicher, dass das "shuffle" nicht an allen Stellen korrekt implementiert ist.

Daher brauche ich etwas spezfischere Info:

- Wenn das passiert, ist es immer so? Oder beim nächsten vergleichbaren Befehl an dasselbe Gerät wieder anders?
- Ist es die Antwort aus dem "Standard-Repertoire" oder ist sie gerätespezfisch (rhasspyMapping)? Wenn du was gerätespezifisches angegeben hast, würde ich empfehlen, dort was anzugeben, das sich vom Standard unterscheidet (sonst macht es so oder so keinen Sinn, außer zum debuggen...).
- wenn es wirklich aus dem Standard käme (was ich mir noch nicht recht vorstellen kann), und nach "kaputt" auch erst mal dauerhaft auf "kaputt" bleibt: Ist das Verhalten nach einem Neustart wieder "zufällig" (und mit einzelnen Antworten), oder gibt es (empfunden) keine erkennbare Logik hinter dem, was passiert?

Hallo Jörg,

ich komme (leider) erst jetzt dazu dir zu antworten.
Das Verhalten tritt bei jedem Device mit allen (aber nur) wenigen Befehlen immer auf.

Ich habe mal testweise in der Rhasspy-de.cfg meine Lieblingsantworten (Sir, yes Sir und Ai Captain ;) ;D) reingesetzt und ein Update des Fhem-RHASSPY-Moduls durchgeführt. Bis auf die Tatsache, dass ich eine deutsch gesprochene Antwort bekomme, sind diese beiden Optionen auch dabei.

Hier mal ein list meines RHASSPY-Moduls:

Internals:
   CFGFN      ./FHEM/GoogleAssitant.cfg
   CONFIGFILE ./rhasspy-de.cfg
   DEF        baseUrl=http://192.168.1.46:12101 devspec=genericDeviceType=.+ language=de
   FUUID      61978863-f33f-e986-532e-c2d28847a3d59476
   IODev      rhasspyMQTT2
   LANGUAGE   de
   LASTInputDev rhasspyMQTT2
   MODULE_VERSION 0.5.04a
   MSGCNT     6
   NAME       Rhasspy
   NR         1206
   STATE      http://192.168.1.46:12101/api/intents: empty answer received
   TYPE       RHASSPY
   baseUrl    http://192.168.1.46:12101
   defaultRoom default
   devspec    genericDeviceType=.+
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   rhasspyMQTT2_MSGCNT 6
   rhasspyMQTT2_TIME 2022-01-05 20:01:17
   useGenericAttrs 1
   READINGS:
     2022-01-04 11:02:11   IODev           rhasspyMQTT2
     2022-01-01 20:20:22   intents         de.fhem:SetOnOff,de.fhem:SetNumeric
     2022-01-05 20:01:16   lastIntentPayload {"Device":"rollladen westseite","Value":"off","customData":null,"input":"fahr den rollladen westseite off","intent":"SetOnOff","lang":null,"probability":1,"rawInput":"fahr den rollladen westseite runter","requestType":"voice","sessionId":"9bfaa119-372c-bd7e-e875-111b10f27890","siteId":"Pixel4a"}
     2022-01-05 20:01:16   lastIntentTopic hermes/intent/de.fhem_SetOnOff
     2021-11-20 14:23:28   listening_default 0
     2021-11-26 06:27:56   listening_master 0
     2021-11-26 06:49:16   listening_pixel4a 0
     2022-01-05 20:01:16   responseType    voice
     2021-12-18 20:51:27   siteId2room_Pixel4a wohnzimmer
     2021-11-21 21:16:59   siteIds         Pixel4a
     2022-01-04 11:02:21   state           http://192.168.1.46:12101/api/intents: empty answer received
     2022-01-01 20:20:29   training        Training completed in 7.16 second(s)
     2021-11-19 20:34:33   updateSentences Wrote 21 char(s) to ['/opt/rhasspy/profiles/de/intents/de.fhem.Shortcuts.ini']
     2022-01-01 20:20:22   updateSlots     OK
     2022-01-05 20:01:16   voiceResponse   gerne|wird erledigt|ok|jawohl|zu diensten
   TIMER:
   helper:
     bm:
       CODE(0x5644f21446c8):
         cnt        15
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        04.01. 21:07:11
         max        0.0001068115234375
         tot        0.00118827819824219
         mAr:
           HASH(0x5644f2131a70)
           ARRAY(0x5644f5e36d30)
           HASH(0x5644f48b14b8)
     devicemap:
       devices:
         RollladenSchlafzimmerFelix:
           alias      rollladen
           groups     rollladen
           names      rollladen
           rooms      schlafzimmer felix,schlafzimmer von felix,zimmer felix,zimmer von felix
           intents:
             SetNumeric:
               setTarget:
                 cmd        pct
                 cmdStop    Stop
                 type       setTarget
             SetOnOff:
               SetOnOff:
                 cmdOff     DriveDown
                 cmdOn      DriveUp
                 type       SetOnOff
           numeric_ValueMap:
             10         Event Slit
         RollladenSchlafzimmerGisbert:
           alias      rollladen
           groups     rollladen
           names      rollladen
           rooms      schlafzimmer von gisbert,schlafzimmer gisbert,meinem schlafzimmer
           intents:
             SetNumeric:
               setTarget:
                 cmd        pct
                 cmdStop    Stop
                 type       setTarget
             SetOnOff:
               SetOnOff:
                 cmdOff     DriveDown
                 cmdOn      DriveUp
                 type       SetOnOff
           numeric_ValueMap:
             10         Event Slit
         RollladenWohnzimmerSued:
           alias      rollladen südseite
           groups     rollladen
           names      rollladen südseite
           rooms      wohnzimmer
           intents:
             SetNumeric:
               setTarget:
                 cmd        pct
                 cmdStop    Stop
                 type       setTarget
             SetOnOff:
               SetOnOff:
                 cmdOff     DriveDown
                 cmdOn      DriveUp
                 type       SetOnOff
           numeric_ValueMap:
             10         Event Slit
         RollladenWohnzimmerTerrasse:
           alias      rollladen terrasse
           groups     rollladen
           names      rollladen terrasse,rollladen terrassentür
           rooms      wohnzimmer
           intents:
             SetNumeric:
               setTarget:
                 cmd        pct
                 cmdStop    Stop
                 type       setTarget
             SetOnOff:
               SetOnOff:
                 cmdOff     DriveDown
                 cmdOn      DriveUp
                 type       SetOnOff
           numeric_ValueMap:
             10         Event Slit
         RollladenWohnzimmerWest:
           alias      rollladen westseite
           groups     rollladen
           names      rollladen westseite
           rooms      wohnzimmer
           intents:
             SetNumeric:
               setTarget:
                 cmd        pct
                 cmdStop    Stop
                 type       setTarget
             SetOnOff:
               SetOnOff:
                 cmdOff     DriveDown
                 cmdOn      DriveUp
                 type       SetOnOff
           numeric_ValueMap:
             10         Event Slit
         Wohnzimmer.Licht:
           alias      licht
           groups     switch
           names      licht
           rooms      wohnzimmer
           intents:
             GetOnOff:
               GetOnOff:
                 currentVal state
                 type       GetOnOff
                 valueOff   off
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
       rhasspyRooms:
         meinem schlafzimmer:
           rollladen  RollladenSchlafzimmerGisbert
         schlafzimmer felix:
           rollladen  RollladenSchlafzimmerFelix
         schlafzimmer gisbert:
           rollladen  RollladenSchlafzimmerGisbert
         schlafzimmer von felix:
           rollladen  RollladenSchlafzimmerFelix
         schlafzimmer von gisbert:
           rollladen  RollladenSchlafzimmerGisbert
         wohnzimmer:
           licht      Wohnzimmer.Licht
           rollladen südseite RollladenWohnzimmerSued
           rollladen terrasse RollladenWohnzimmerTerrasse
           rollladen terrassentür RollladenWohnzimmerTerrasse
           rollladen westseite RollladenWohnzimmerWest
         zimmer felix:
           rollladen  RollladenSchlafzimmerFelix
         zimmer von felix:
           rollladen  RollladenSchlafzimmerFelix
     lng:
       commaconversion 1
       mutated_vowels:
         Ä         Ae
         Ö         Oe
         Ü         Ue
         ß         ss
         ä         ae
         ö         oe
         ü         ue
       responses:
         DefaultCancelConfirmation Habe abgebrochen
         DefaultChangeIntentRequestRawInput wechseln zu $rawInput
         DefaultChoiceNoOutstanding warte grade nicht auf eine Auswahl
         DefaultConfirmation gerne|wird erledigt|ok|jawohl|zu diensten
         DefaultConfirmationBack also nochmal
         DefaultConfirmationNoOutstanding warte grade nicht auf eine bestätigung
         DefaultConfirmationReceived Ok, werde ich machen
         DefaultConfirmationRequestRawInput bestätige $rawInput
         DefaultConfirmationTimeout Tut mir leid, da hat etwas zu lange gedauert
         DefaultError Da passt irgend was nicht
         NoActiveMediaDevice Tut mir leid, es ist kein Wiedergabegerät aktiv
         NoDeviceFound Tut mir leid, ich konnte kein passendes Gerät finden
         NoMappingFound Tut mir leid, ich konnte kein passendes Mäpping finden
         NoMediaChannelFound Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
         NoNewValDerived Tut mir leid, ich konnte den Zielwert nicht ausrechnen
         NoTimedOnDeviceFound Das gewählte Gerät unterstützt leider keine taimer Kommandos
         NoValidData ich habe leider zu wenig Daten um den Vorgang auszuführen
         RequestChoiceDevice Es kommen mehrere Geräte in Frage, bitte wähle zwischen $first_items oder $last_item
         RequestChoiceRoom Es kommen mehrere Geräte in verschiedenen Räumen in Frage, wähle einen Raum von  $first_items oder $last_item
         SilentCancelConfirmation
         duration_not_understood Tut mir leid, ich habe die Dauer nicht verstanden
         reSpeak_failed Tut mir leid, ich kann mich nicht erinnern
         timeRequest Es ist $hour Uhr $min
         timerCancellation $label im $room gelöscht
         weekdayRequest Heute ist $weekDay
         Change:
           brightness $deviceName ist auf $value gestellt
           desired-temp Die Solltemperatur von $location beträgt $value Grad
           humidity   Die Luftfeuchtigkeit von $location beträgt $value Prozent
           knownType  $mappingType von $location beträgt $value Prozent
           setTarget  $device ist auf $value gesetzt
           soilMoisture Die Bodenfeuchte von $location beträgt $value Prozent
           unknownType Der Wert von $location beträgt $value Prozent
           volume     $deviceName ist auf $value gestellt
           waterLevel Der Wasserstand von $location beträgt $value Prozent
           battery:
             0          Der Batteriestand von $location ist $value
             1          Der Batteriestand von $location beträgt $value Prozent
           temperature:
             0          Die Temperatur von $location ist $value
             1          Die Temperatur von $location beträgt $value Grad
         timerEnd:
           0          $label abgelaufen
           1          $label im raum $room abgelaufen
         timerSet:
           0          $label im Raum $room ist gestellt auf $seconds sekunden
           1          $label im Raum $room ist gestellt auf $minutetext $seconds
           2          $label im Raum $room ist gestellt auf $minutetext
           3          $label im Raum $room ist gestellt auf $hours stunden $minutetext
           4          $label im Raum $room ist gestellt auf $hours uhr $minutes
           5          $label im Raum $room ist gestellt auf morgen, $hours uhr $minutes
       stateResponses:
         inOperation:
           0          $deviceName ist fertig
           1          $deviceName läuft noch
         inOut:
           0          $deviceName ist ausgefahren
           1          $deviceName ist eingefahren
         onOff:
           0          $deviceName ist ausgeschaltet|$deviceName ist aus
           1          $deviceName ist eingeschaltet|$deviceName ist an
         openClose:
           0          $deviceName ist geöffnet|$deviceName ist offen
           1          $deviceName ist geschlossen|$deviceName ist zu
       units:
         unitHours:
           0          stunden
           1          eine stunde
         unitMinutes:
           0          minuten
           1          eine minute
         unitSeconds:
           0          Beispiel 1a: einige Sekunden
           1          Beispiel 1b: genau eine Sekunde
       words:
         and        und
         off        aus
         on         an
Attributes:
   comment    Installation von Modulen.
in FHEM: { Svn_GetFile('contrib/RHASSPY/10_RHASSPY.pm', 'FHEM/10_RHASSPY.pm') }
in Linux: "wget https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/RHASSPY/10_RHASSPY.pm -O ./FHEM/10_RHASSPY.pm"
   languageFile ./rhasspy-de.cfg
   room       Rhasspy


Viele Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Beta-User

#1090
Zitat von: Gisbert am 05 Januar 2022, 20:24:16

Internals:
   MODULE_VERSION 0.5.04a

...wie hast du es geschafft, wieder downzugraden?
Im svn ist 0.5.10 verfügbar:
https://svn.fhem.de/trac/browser/trunk/fhem/contrib/RHASSPY/10_RHASSPY.pm#L323

@pah: Anbei auch die letzte Überarbeitung, bringt aber gg. der von neulich nur eine Beschreibung der neuen Attribute in der commandref.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Gisbert

#1091
Hallo Jörg,

Zitatwie hast du es geschafft, wieder downzugraden?
Im svn ist 0.5.10 verfügbar:

Ich hab das Modul hiermit runter geladen:
{ Svn_GetFile('contrib/RHASSPY/10_RHASSPY.pm', 'FHEM/10_RHASSPY.pm') }
Anschließend habe ich das Modul per reload in Fhem aktualisiert. Es bleibt dabei bei der Version 5.04a.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Beta-User

Zitat von: Gisbert am 06 Januar 2022, 20:53:03
Anschließend habe ich das Modul per reload in Fhem aktualisiert. Es bleibt dabei bei der Vetsion 5.04a.
Ein "reload" führt zwar dazu, dass die aktualisierten Funktionen verwendet werden, ändert aber nicht per se die  Internals. Dazu muss die Funktion ausgeführt werden, die das betreffende Internal "füttert", für dieses Internal hier ist das die "Define"-Funktion.

Von daher: die Versionsanzeige paßt nach einem Neustart oder dem Anfassen der DEF...

Wichtiger: Bereits nach dem reload müßte das "shuffle" eigentlich (wieder)  funktionieren. Dazu fehlt aber eine aktuelle Rückmeldung von dir.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Gisbert

Guten Morgen Jörg,

ZitatWichtiger: Bereits nach dem reload müßte das "shuffle" eigentlich (wieder)  funktionieren. Dazu fehlt aber eine aktuelle Rückmeldung von dir.

Nach dem reload funktioniert die Antwort von Rhasspy wie geplant, d.h. es wird nur eine Option geantwortet ohne die "schrägen Striche".
Nach einem modify der Fhem-Definition des Rhasspy-Devices bekomme ich die Version 5.10.0.

Merkwürdig ist allenfalls noch, dass ich dieses Verhalten (... "schräger Strich") schon mal hatte, dann ist es verschwunden, wieder aufgetaucht - und jetzt wieder behoben.

Viele​n Dank und viele​ Grüße​
Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

Hallo Jörg,

so, neue Erkenntnis. Nach einem heutigen Fhem-Update trat der Fehler wieder auf. Ich hab das Modul jetzt vom update ausgeschlossen; ich hoffe, dass dies die richtige Maßnahme ist.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY