Autor Thema: Rhasspy: mein Weg zu neuen Ufern?!  (Gelesen 971 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #15 am: 24 November 2021, 10:19:46 »
Also nochmal von vorn, wir scheinen aneinander vorbei zu reden:

Wenn ich von "devspec=genericDeviceType=.+" gesprochen(*) hatte, meinte ich damit eine Angabe im RHASSPY-Device. Die Wirkung dieser devspec ist schlicht, dass RHASSPY alle FHEM-Devices als "Zielgeräte" ansehen soll, die _mindestens ein Zeichen_ in dem betreffenden Attribut(**) stehen haben. _Was dort konkret steht_, ist dabei in Schritt 1 erst mal völlig egal.

Ergo ist es nicht nötig, _genau_ ".+" in das Attribut zu schreiben, sondern das kann u.a. sein: "blind", "blinds", "light", "X", ....
Welche das bei dir sind und welche Werte gesetzt sind, würdest du mit "list genericDeviceType=.+ genericDeviceType" sehen. Falls da irgendwas kommt, kannst du es erst mal gut sein lassen.

((**) - ja, theoretisch umfasst das auch Geräte, die ein entsprechendes Reading oder Internal gesetzt haben...)

(*) Seit 0.5.01 ist "devspec=genericDeviceType=.+" das, was RHASSPY automatisch setzt, wenn man gar keine Angabe macht (abgesehen von einer einzigen Ausnahme).

Nochmal zum grundsätzlichen Verständnis "meiner Philosophie" bei der Überarbeitung des ursprünglichen Moduls: Der User soll möglichst wenig selbst machen _müssen_, das meiste soll automatisch passieren. Dafür genügen sehr wenige Angaben, die Quintessenz ist eigentlich immer: Was ist das für ein "Grund-Typ" (Rollladen, Licht, Relay, Medienspieler, ...)? Anhand dieses Grund-Typs (der in genericDeviceType zu finden ist) versucht das RHASSPY-Modul dann die vorhandenen Setter auszuwerten.
Also sowas wie:
- 'Aha, das ist ein Licht. Es versteht aber nur "an" und "aus".' Oder:
- 'Aha, das ist ein Licht. Es versteht nicht nur "an" und "aus", sondern auch noch Helligkeit und Farbe (in HUE, von ... bis ...).'

Im Ergebnis musst du also eigentlich bitte erst mal alle verkrampften Versuche unterlassen, irgendwas "geradebiegen" zu wollen. Du brauchst an den Devices dann nämlich nur noch das im Detail nachzukonfigurieren, was dir nach der Automatik noch nicht gefällt. Das sind in der Regel eher Dinge wie Namen und Gruppenzugehörigkeiten. Lass' diese ganzen Gimmicks für die ersten Schritte bitte einfach weg! Falls noch nicht vorhanden, setz den gDT und lass die Erkennung drüber laufen, basta. Wenn dann in dem RHASSPY-list alles einigermaßen sauber aussieht, schaust du, ob die Infos auch bei Rhasspy (in den slots) angekommen sind. Erst wenn das soweit geklappt hat, geht es ggf. an die Feinarbeiten.

Ergo:
delete Zuhause.Felixund starte mit diesen hier:defmod rhasspyMQTT2 MQTT2_CLIENT 192.168.1.46:12183
attr rhasspyMQTT2 clientOrder RHASSPY
attr rhasspyMQTT2 subscriptions setByTheProgram
(unterstellt, IP und Port passen noch)

Und
defmod Rhasspy RHASSPY baseUrl=http://192.168.1.46:12101
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Gisbert

  • Hero Member
  • *****
  • Beiträge: 2372
  • Das Ziel ist das Ziel !
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #16 am: 24 November 2021, 21:08:24 »
Hallo Jörg,

im wesentlichen konnte ich deinen Ausführungen folgen.
In den Slots (insgesamt 14 Stück) stehen unter z.B. in de.fhem.AllKeywords jetzt folgende Einträge:
Zitat
zuhause.felix
rollladen gisbert
wzsüd
rollladen schlafzimmer
network
rollladen westseite
heizung
rollladen
googleassistant
szfelix
wzterrasse
Manche Einträge scheinen ein Überbleibsel meiner Bemühungen zu sein, es sind auch Fhem-Raumnamen dabei. Manche Fhem-Rollladendevices werden verständlich wiedergegeben (rollladen schlafzimmer) andere etwas verschmurgelt (szfelix, wzsüd, wzterrasse), man ahnt/weiß aber, worauf es sich bezieht.

Ok, ein Schritt weiter - wir sind aber noch nicht beim Sprechen.

Zur Sicherheit nochmals die beiden für Rhasspy benötigten Fhem-Devices:
Internals:
   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.01
   MSGCNT     3
   NAME       Rhasspy
   NR         1207
   STATE      online
   TYPE       RHASSPY
   baseUrl    http://192.168.1.46:12101
   defaultRoom default
   devspec    genericDeviceType=.+
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   rhasspyMQTT2_MSGCNT 3
   rhasspyMQTT2_TIME 2021-11-24 20:57:04
   useGenericAttrs 1
   READINGS:
     2021-11-24 20:56:48   IODev           rhasspyMQTT2
     2021-11-24 20:56:48   intents         ChangeLightState,GetTemperature,GetTime,GetGarageState
     2021-11-20 14:23:28   listening_default 0
     2021-11-20 14:36:02   listening_master 0
     2021-11-21 21:16:59   siteIds         Pixel4a
     2021-11-24 20:57:04   state           online
     2021-11-24 20:57:04   training        Training completed in 6.56 second(s)
     2021-11-19 20:34:33   updateSentences Wrote 21 char(s) to ['/opt/rhasspy/profiles/de/intents/de.fhem.Shortcuts.ini']
     2021-11-24 20:56:58   updateSlots     OK
   TIMER:
     Rhasspy_null:
       HASH       Rhasspy
       MODIFIER   null
       NAME       Rhasspy_null
       enable     false
       toDisable:
         ConfirmAction
         CancelAction
         ChoiceRoom
         ChoiceDevice
   helper:
     bm:
       CODE(0x55c8cb525340):
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        24.11. 20:49:06
         max        0.0168130397796631
         tot        0.0323879718780518
         mAr:
           HASH(0x55c8cb5209b0)
           ARRAY(0x55c8cdabdc08)
           HASH(0x55c8cd538700)
       CODE(0x55c8cb527370):
         cnt        58
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        24.11. 17:28:20
         max        0.403781890869141
         tot        0.767587900161743
         mAr:
           HASH(0x55c8cb5209b0)
           ARRAY(0x55c8cc27d098)
           HASH(0x55c8cdcf7f58)
     devicemap:
       Channels:
       Colors:
       devices:
         RollladenSchlafzimmerFelix:
           alias      szfelix
           groups     rollladen
           names      szfelix
           rooms      googleassistant,rollladen
           intents:
             SetNumeric:
               setTarget:
                 cmdStop    Stop
         RollladenSchlafzimmerGisbert:
           alias      rollladen schlafzimmer
           groups     rollladen
           names      rollladen schlafzimmer, rollladen gisbert
           rooms      rollladen
           intents:
             GetOnOff:
               GetOnOff:
                 currentVal state
                 type       GetOnOff
                 valueOff   off
             SetNumeric:
               setTarget:
                 cmdStop    Stop
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 response   "All right"
                 type       SetOnOff
         RollladenWohnzimmerSued:
           alias      wzsüd
           groups     rollladen
           names      wzsüd
           rooms      googleassistant,rollladen
           intents:
             SetNumeric:
               setTarget:
                 cmdStop    Stop
         RollladenWohnzimmerTerrasse:
           alias      wzterrasse
           groups     rollladen
           names      wzterrasse
           rooms      googleassistant,rollladen
           intents:
             SetNumeric:
               setTarget:
                 cmdStop    Stop
         RollladenWohnzimmerWest:
           alias      rollladen westseite
           groups     rollladen
           names      rollladen westseite
           rooms      rollladen
           intents:
             SetNumeric:
               setTarget:
                 cmdStop    Stop
         Zuhause.Felix:
           alias      zuhause.felix
           names      zuhause.felix
           rooms      heizung,network
           intents:
       rhasspyRooms:
         googleassistant:
           szfelix    RollladenSchlafzimmerFelix
           wzsüd     RollladenWohnzimmerSued
           wzterrasse RollladenWohnzimmerTerrasse
         heizung:
           zuhause.felix Zuhause.Felix
         network:
           zuhause.felix Zuhause.Felix
         rollladen:
            rollladen gisbert RollladenSchlafzimmerGisbert
           rollladen schlafzimmer RollladenSchlafzimmerGisbert
           rollladen westseite RollladenWohnzimmerWest
           szfelix    RollladenSchlafzimmerFelix
           wzsüd     RollladenWohnzimmerSued
           wzterrasse RollladenWohnzimmerTerrasse
     lng:
       responses:
         DefaultCancelConfirmation Thanks aborted
         DefaultChangeIntentRequestRawInput change command to $rawInput
         DefaultChoiceNoOutstanding no choice expected
         DefaultConfirmation OK
         DefaultConfirmationBack So once more
         DefaultConfirmationNoOutstanding no command is awaiting confirmation
         DefaultConfirmationReceived ok will do it
         DefaultConfirmationRequestRawInput please confirm: $rawInput
         DefaultConfirmationTimeout Sorry too late to confirm
         DefaultError Sorry but something seems not to work as expected
         NoActiveMediaDevice Sorry no active playback device
         NoDeviceFound Sorry but I could not find a matching device
         NoMappingFound Sorry but I could not find a suitable mapping
         NoMediaChannelFound Sorry but requested channel seems not to exist
         NoNewValDerived Sorry but I could not calculate a new value to set
         NoTimedOnDeviceFound Sorry but device does not support requested timed on or off command
         NoValidData Sorry but the received data is not sufficient to derive any action
         RequestChoiceDevice there are several possible devices, choose between $first_items and $last_item
         RequestChoiceRoom more than one possible device, please choose one of the following rooms $first_items and $last_item
         SilentCancelConfirmation
         duration_not_understood Sorry I could not understand the desired duration
         reSpeak_failed i am sorry i can not remember
         timeRequest it is $hour o clock $min minutes
         timerCancellation $label for $room deleted
         weekdayRequest today is $weekDay, $month the $day., $year
         Change:
           brightness $device was set to $value
           desired-temp target temperature for $location is set to $value degrees
           humidity   air humidity in $location is $value percent
           knownType  $mappingType in $location is $value percent
           setTarget  $device is set to $value
           soilMoisture soil moisture in $location is $value percent
           unknownType value in $location is $value percent
           volume     $device set to $value
           waterLevel water level in $location is $value percent
           battery:
             0          battery level in $location is $value
             1          battery level in $location is $value percent
           temperature:
             0          temperature in $location is $value
             1          temperature in $location is $value degrees
         timerEnd:
           0          $label expired
           1          $label in room $room expired
         timerSet:
           0          $label in room $room has been set to $seconds seconds
           1          $label in room $room has been set to $minutes minutes $seconds
           2          $label in room $room has been set to $minutes minutes
           3          $label in room $room has been set to $hours hours $minutetext
           4          $label in room $room has been set to $hour o clock $minutes
           5          $label in room $room has been set to tomorrow $hour o clock $minutes
       stateResponses:
         inOperation:
           0          $deviceName is ready
           1          $deviceName is still running
         inOut:
           0          $deviceName is out
           1          $deviceName is in
         onOff:
           0          $deviceName is off
           1          $deviceName is on
         openClose:
           0          $deviceName is open
           1          $deviceName is closed
       units:
         unitHours:
           0          hours
           1          one hour
         unitMinutes:
           0          minutes
           1          one minute
         unitSeconds:
           0          seconds
           1          one second
     shortcuts:
     tweaks:
Attributes:
   room       Rhasspy

Internals:
   BUF       
   Clients    :RHASSPY:
   ClientsKeepOrder 1
   DEF        localhost:1883
   DeviceName localhost:1883
   FD         72
   FUUID      61978527-f33f-e986-ee32-8a8fd1dc8a8f3bb5
   NAME       rhasspyMQTT2
   NR         1206
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   rhasspyMQTT2
   lastMsgTime 1637784344.46074
   nextOpenDelay 5
   MatchList:
     1:RHASSPY  ^.
   READINGS:
     2021-11-24 20:52:40   state           opened
   helper:
     bm:
       MQTT2_CLIENT_Attr:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        24.11. 20:52:40
         max        0.0464980602264404
         tot        0.0464980602264404
         mAr:
           set
           rhasspyMQTT2
           subscriptions
           setByTheProgram
       MQTT2_CLIENT_Read:
         cnt        1330
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        24.11. 14:43:51
         max        0.0424458980560303
         tot        0.583535432815552
         mAr:
           HASH(0x55c8cb46a0d0)
       MQTT2_CLIENT_Set:
         cnt        21
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        24.11. 20:51:42
         max        0.000118017196655273
         tot        0.00121641159057617
         mAr:
           HASH(0x55c8cb46a0d0)
           rhasspyMQTT2
           ?
       MQTT2_CLIENT_connect:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        24.11. 14:44:43
         max        0.00244498252868652
         tot        0.00421881675720215
         mAr:
           HASH(0x55c8cb46a0d0)
Attributes:
   clientOrder RHASSPY
   room       Rhasspy
   subscriptions setByTheProgram
   username   gis23

Viele Grüße Gisbert
Aktuelles FHEM | HP ThinClient T610 | Debian11 | UniFi-Controller, AP, USG-3 | Homematic, VCCU, HMUART | ESP8266, Eigenbau | Gas-, Wasser-, Stromzähler | Sonoff | 1-Wire-Temperatursensoren | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF |  Heizungssteuerung komplett in FHEM

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #17 am: 25 November 2021, 07:24:48 »
 :) Geht doch voran...

Jetzt sollten wir als erstes mal versuchen, dein Handy zu einer Sprachantwort zu überreden. Leider war mir insgesamt nicht mehr gegenwärtig, dass RHASSPY etwas anders "filtert" als früher, und daher der eingestellte "GetTime"-Intent nicht mehr unmittelbar funktioniert.
Da bei dir
     2021-11-24 20:56:48   intents         ChangeLightState,GetTemperature,GetTime,GetGarageStatekommt, wird entsprechender Input als "nicht für mich" verworfen. Alles, was an diese RHASSPY-Instanz gehen soll, braucht "de.fhem:" vorneweg. In der sentences.ini muss der Intent also so benannt werden:
[de.fhem:GetTime]

In den "keywords" sind keine "Überbleibsel", die slots werden jedes mal nach einem "update slots" neu generiert und komplett überschrieben. Da hier aber zu erkennen ist, dass manches von vornherein keinen Sinn macht (room: googleassistant), werde ich mir mal überlegen, wie man sowas vorab rausfiltern kann (=> bitte hin und wieder in den dev-Thread schauen, ob da was kommt). Es stört aber auch im Moment nicht zu sehr => erst mal ignorieren.

Deine Rollladen-Devices scheinen sehr speziell zu sein. Bitte mal zeigen, was
{getAllSets('RollladenSchlafzimmerGisbert')} liefert (und Infos zum TYPE).
Falls da ein ESP8266 werkelt, würde ich mal einen Blick auf Tasmota empfehlen, falls es was anderes ist, wäre evtl. ROLLO als Zwischenschicht eine Idee. Jedenfalls sind das anscheinend keine guten Einsteigergeräte.

Hast du nicht irgendein "normales" dimmbares Licht, dem du mal  gDT "light" verpassen kannst?
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Gisbert

  • Hero Member
  • *****
  • Beiträge: 2372
  • Das Ziel ist das Ziel !
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #18 am: 25 November 2021, 18:13:06 »
Hallo Jörg,

unter Sentences, sentences.ini steht jetzt:
[GetTime]
wie spät ist es
sag mir die uhrzeit

[GetTemperature]
wie ist die temperatur
wie (heiß | kalt) ist es

[GetGarageState]
ist das garagentor (offen | geschlossen)

[ChangeLightState]
light_name = (wohnzimmerlampe | garagenlicht) {name}
light_state = (ein | aus) {state}
schalte (die | das) <light_name> <light_state>

[de.fhem:GetTime]
wie spät ist es
sag mir die uhrzeit

Speichern und set Rhasspy update all führt zu folgendem Reading:
2021-11-25 17:55:09   intents         GetTime,GetTemperature,ChangeLightState,GetGarageState,de.fhem:GetTime
{getAllSets('RollladenSchlafzimmerGisbert')} liefert
opens:noArg closes:noArg DriveUp:noArg Stop:noArg DriveSlit:noArg DriveDown:noArg Event:Up,Stop,Slit,DownEs ist kein Problem ein on/off open/close ... in die Liste mitaufzunehmen, das geht mit dem Attribut eventMap.
opens/closes hat Google Assistant verlangt, also hab ich es zugefügt - die anderen hab ich mir ausgedacht:
eventMap /Event Up:opens/Event Down:closes/Event Up:DriveUp/Event Stop:Stop/Event Slit:DriveSlit/Event Down:DriveDownDas physische Device ist ein ESP8266 mit Tasmota - in FHEM allerdings ein MQTT_DEVICE.

Viele Grüße Gisbert
Aktuelles FHEM | HP ThinClient T610 | Debian11 | UniFi-Controller, AP, USG-3 | Homematic, VCCU, HMUART | ESP8266, Eigenbau | Gas-, Wasser-, Stromzähler | Sonoff | 1-Wire-Temperatursensoren | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF |  Heizungssteuerung komplett in FHEM

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #19 am: 25 November 2021, 18:27:39 »
Mobil&kurz: intents-Namen in sentences.INI ändern/ergänzen.
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #20 am: 25 November 2021, 18:51:58 »
Langform:
Den Doppeleintrag habe ich nicht gesehen. Starte bitte einfach mal mit nur dem hier (keine weiteren intents):
[de.fhem:GetTime]
wie spät ist es
sag mir die uhrzeit

Dann: Um den Rollladen müssen wir uns gesondert kümmern. Das geht besser...

Zuletzt: wir brauchen ein Licht, bitteschön :) .
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Gisbert

  • Hero Member
  • *****
  • Beiträge: 2372
  • Das Ziel ist das Ziel !
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #21 am: 25 November 2021, 19:31:36 »
1. Punkt erledigt.
2. Punkt: bitteschön, hier ist ein Licht (das Device heißt Wohnzimmer.Licht), Auszug aus helper:
         Wohnzimmer.Licht:
           alias      wohnzimmer.licht
           groups     switch
           names      wohnzimmer.licht
           rooms      homehm
           intents:
             GetOnOff:
               GetOnOff:
                 currentVal state
                 type       GetOnOff
                 valueOff   off
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | HP ThinClient T610 | Debian11 | UniFi-Controller, AP, USG-3 | Homematic, VCCU, HMUART | ESP8266, Eigenbau | Gas-, Wasser-, Stromzähler | Sonoff | 1-Wire-Temperatursensoren | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF |  Heizungssteuerung komplett in FHEM

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #22 am: 25 November 2021, 21:20:16 »
Notiz an mich selbst: nicht mehr wie 1-2 Aspekte auf einmal...

1a) ...dann sollte jetzt eine Antwort* auf "wie spät ist es" kommen?
1b) *die ist denglisch... => languageFile.
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Gisbert

  • Hero Member
  • *****
  • Beiträge: 2372
  • Das Ziel ist das Ziel !
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #23 am: Gestern um 07:30:32 »
Guten Morgen Jörg,

die Spracheingabe in der Android-App funktioniert, es kommt eine denglische Antwort zurück. Ich denke, dass damit ein erster Meilenstein geschafft ist.

Eine kleine Klippe konnte ich selbst umschiffen. In Rhasspy (Rhasspy Voice Assistant) musste ich die SiteId auf den Wert einstellen, der im Reading von RHASSPY steht (gleicher Wert steht auch in der Einstellung der Android-App).

Antwort ist schon mal schön, englisch oder deutsch noch schöner, wobei mir die Antworten eigentlich weniger wichtig sind.

Mit dem Licht hab ich folgendes experimentiert (in sentences.ini):
[de.fhem:SetOnOff]
(schalte an){Value:on} $de.fhem.Device{Device} [$de.fhem.Room{Room}]
(schalte aus){Value:off} $de.fhem.Device{Device} [$de.fhem.Room{Room}]
Hinweis: Github hat einen kleinen Fehler, ")" statt "}", hinter on.

Reaktion in der Android-App: "ok", und Anzeige der identifizierten Worte. Allerdings wird die Eingabe so erwartet: "schalte ein wohnzimmer.licht", damit was sinnvolles passiert.

Der Groschen kommt gerade mächtig ins Rutschen :)

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | HP ThinClient T610 | Debian11 | UniFi-Controller, AP, USG-3 | Homematic, VCCU, HMUART | ESP8266, Eigenbau | Gas-, Wasser-, Stromzähler | Sonoff | 1-Wire-Temperatursensoren | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF |  Heizungssteuerung komplett in FHEM

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #24 am: Gestern um 09:26:24 »
Zitat
Der Groschen kommt gerade mächtig ins Rutschen :)
:) "blink" wird gerne unterschätzt... ;D

Zitat
Allerdings wird die Eingabe so erwartet: "schalte ein wohnzimmer.licht", damit was sinnvolles passiert.
Dann kümmern wir uns jetzt mal um die zwei Aspekte, die da drin stecken:

Ziel ist sowas:
"Schalte die Stehleuchte im Wohnzimmer an" oder "Schalte die Stehleuchte an" (gesprochen im Wohnzimmer*) soll denselben Effekt haben.

Dazu gibt es zum einen die Stellschraube sentences.ini:
[de.fhem:SetOnOff]
schalte (den|die|das) $de.fhem.Device{Device} [(im|in (der|dem))  $de.fhem.Room{Room}] ( an{Value:on} | aus{Value:off} )
Da sind ein paar Alternativen und optionale Elemente drin, neben der offiziellen Doku würde ich mal empfehlen, dieses Video zu schauen: https://www.youtube.com/watch?v=sWVl0ZoXZEo

Weiter wäre meine Empfehlung, in diesem Kontext dann einen anderen slot zu wählen, nämlich den, der nur die Geräte enthält, die "an" und "aus" "können": $de.fhem.Device-SetOnOff

Jetzt sollte funktionieren:
"Schalte die wohnzimmer.licht in der Wohnzimmer an" oder "Schalte das wohnzimmer.licht an" (gesprochen im Wohnzimmer*)
Zu * könntest du bei Gelegenheit "siteId2room" in der commandref suchen, ist aber eher eine Zusatzaufgabe für Fortgeschrittene ;) . (Wer nicht die App benutzt, kann seine siteId's bitte direkt passend benennen!)

2. Aspekt: Namensvergabe in FHEM
Wie du gesehen hast, greift sich RHASSPY bei der Auswertung deiner Geräte das an Infos, was vorhanden ist. Bei diesem Gerät gibt es z.B. keinen "alias" oder auch keinen "siriName", also nimmt RHASSPY notgedrungen erst mal den technischen Gerätenamen. Zur Vermeidung von Tippfehlern auf beiden Seiten wird dann (fast) für alles einheitlich Kleinschreibung verwendet. Nur Variablen und die Namen der "Übergabe-Felder" werden anders behandelt.

Ergo vergibst du jetzt bitte als erstes mal einen "alias" für dein Licht. Danach "update devicemap" und schauen, was im RHASSPY-list und in den slots zu finden ist.

Falls ein "Sprechname" nicht reicht, kannst du dich danach mal mit dem ersten "echten" RHASSPY-Attribut beschäfigen: rhasspyName. Tipp: nimm da mal was anderes als das, was in "alias" zu finden ist... (dann wieder update devicemap etc...).

PS: der nächste sinnvolle Schritt (wenn das alles klappt und RHASSPY deutsch spricht), wäre dann (mind.) eine weitere Lampe, optimalerweise dimmbar und farbig.
« Letzte Änderung: Gestern um 09:29:29 von Beta-User »
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #25 am: Gestern um 09:46:48 »
OT-Exkurs zu dem Rollladen-Thema:
In https://tasmota.github.io/docs/Blinds-and-Shutters/ ist die Info für die Grundkonfiguration zu finden. Damit sollten sich Tasmota-Versionen ab ca. 8.5 so konfigurieren lassen, dass ein "Prozent"-Fahrbefehl möglich ist. Nach dem, was in attrTemplate zu MQTT2_DEVICE zu finden ist, muss zum Anfahren von prozentualen Positionen weder JSON versandt werden noch braucht man für die Auswertung der Rückgabe ergänzenden Code, ergo sollte das auch als MQTT_DEVICE gehen.

Kommandos im Detail sind zu finden in https://tasmota.github.io/docs/Commands/#shutters, als Topics für den Prozentwert für das erste Relay-Paar werden (an den ESP) "CMNDTOPIC/ShutterPosition1" und kommend vom ESP "STATTOPIC/SHUTTER1" verwendet.
Damit sollte jemand mit Erfahrung in MQTT_DEVICE auch in der Lage sein, das Ding zu konfigurieren. Alternative: MQTT2_SERVER für anderen Port aufziehen und MQTT2_DEVICE anschauen.

Bitte bei Bedarf diese Infos kopieren und einen neuen Thread im MQTT-Bereich aufmachen. Dabei klarstellen, ob Ziel die Erweiterung des MQTT_DEVICE ist (da kann und will ich nicht helfen), oder der (testweise) Wechsel zu MQTT2_DEVICE.
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16244
Antw:Rhasspy: mein Weg zu neuen Ufern?!
« Antwort #26 am: Gestern um 13:42:55 »
Nachtrag noch: Unter https://wiki.fhem.de/wiki/Rhasspy habe ich jetzt mal einen "Quick-Start" ins Wiki gestellt.
Darfst gerne Rückmeldung geben, wenn da was unklar oder verbesserungswürdig ist, und ansonsten kannst du ja damit erst mal noch etwas weiterarbeiten.
Server: HP-T620@Debian 10, 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:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}
Gefällt mir Gefällt mir x 1 Liste anzeigen