39_gassistant.pm (Google Assistant, Google Home)

Begonnen von dominik, 29 Januar 2019, 21:59:53

Vorheriges Thema - Nächstes Thema

a_quadrat

Hallo Gisbert,

ich habe die Rollläden als "blinds" definiert und da funktioniert es so wie beschrieben.

VG Andreas


Gisbert

Hallo Andreas,

ich hab bei einem Device den Typ auf blinds (deutsch: Jalousien) geändert. Es wird in der Home App auf dem Handy auch so angezeigt.
Wenn den den Sprachbefehl "Stelle Rollladen <Device> auf 90%" spreche, bekomme ich die Antwort: "... kann nur vollständig oder gar nicht geöffnet stehen."
Kannst du mehr Details liefern, damit ich es auch hinbekomme?
Muss man noch etwas in gassistant machen?

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

a_quadrat

Dein Rollladen scheint nicht automatisch unterstützt zu werden.

Schau Mal bei folgendem Link unter Konfiguration -> Open Close

https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect

Das könnte dir weiter helfen.

VG Andreas

Gisbert

Hallo Andreas,

tatsächlich verabeitet mein Fhem-Device "opens" und "closes" - jeweils mit "s" am Ende. Diese Information kommt von Google Home.
In Fhem setze ich darauf das Attribut:
eventMap /Event Up:opens/Event Down:closes
Mein Rollladen weiß, was er dann mit Up und Down zu tun hat.

Im Fhem-Wiki-Link kommen die beiden Worte opens und closes nicht vor, auch nicht im weiterführend Link: https://developers.google.com/assistant/smarthome/traits/openclose
Dort hat man den Eindruck, dass eine Teilfahrt wohl irgendwie möglich ist - aber wie genau ich sie umsetzen kann, steht natürlich nicht da.

Ich glaube wir drehen uns hier im Kreis, bis sich jemand meldet, der sagt, wie er es bei sich umgesetzt hat.

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

a_quadrat

Hmm, ich habe Mal ein Testdummy gebaut und es funktioniert wie im Link beschrieben.

Internals:
   CFGFN     
   FUUID      619ab2cc-f33f-a497-e6f7-c3a5cd2988ca6211
   NAME       Testrollladen
   NR         248673
   STATE      70
   TYPE       dummy
   READINGS:
     2021-11-21 22:36:51   close           
     2021-11-21 22:29:57   open           
     2021-11-21 22:35:00   position        70
   hmccu:
Attributes:
   DbLogExclude .*
   genericDeviceType blind
   homebridgeMapping {
  "OpenClose": {
    "reading": "state",
    "values": ["/^closed/:CLOSED", "/.*/:OPEN"],
    "cmdOpen": "open",
    "cmdClose": "close"
  },
  "TargetPosition": {
    "reading": "position",
    "cmd": "position",
    "invert": true,
  },
  "CurrentPosition": {
    "reading": "position",
    "invert": true,
  }
}
   readingList open close position
   realRoom   Test
   room       GoogleAssistant,Jalousie
   setList    open close position
   stateFormat position


VG Andreas

a_quadrat

Hallo Gisbert,

bist du mit dem "homebridgeMapping" voran gekommen?
Du musst die Werte auf deine Bedürfnisse anpassen.

VG Andreas

Gisbert

Hallo Andreas,

vielen Dank für deine Nachfrage.
Ich hatte einen Versuch am vergangenen Sonntag gestartet, den ich aber mangels direktem Erfolg abgebrochen habe; die Änderungen habe ich dann zunächst rückgängig gemacht.
Ich bleibe auf jeden Fall am Ball, habe aber erst wieder Zeit am Wochenende - die Lösung liegt wahrscheinlich zum Greifen nah, aber wie alles mit Fhem braucht es Zeit.

Ich melde mich auf jeden Fall im Laufe des kommenden Wochenendes.
Bis dahin
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

desmoloch

#2812
Hallo,

Erstmal vielen Dank für das tolle Modul!
Benutze es nun seit einiger Zeit und wollte heute Mal wieder versuchen meine Miele Waschmaschine einzubinden.
Leider wird meine Waschmaschine nur als "Thermostat" erkannt. Und es wird auch noch dauern als aus angezeigt. Also in der Google Home App.
Stelle ich den Typ auf "Washer" so bekomme ich immer nur die Einstellungen in der Google Home App angezeigt.
Was mache ich falsch?
Hier Mal ein List der Waschmaschine:

Internals:
   DEF        000149707711@MieleGateway 120
   DEVICE_ID  000149707711
   FUUID      60cfc991-f33f-f685-9224-ed424d15ea186191
   FVERSION   48_MieleAtHome.pm:v1.2.0-s25100/2021-10-21
   HAS_MimeBase64 1
   INTERVAL   120
   IODevName  MieleGateway
   NAME       Waschmaschine
   NR         231
   STATE      Finished (18:27)
   TYPE       MieleAtHome
   VERSION    1.2.0
   READINGS:
     2021-11-27 18:27:09   actions_deviceName 1
     2021-11-27 18:27:09   actions_light   
     2021-11-27 18:27:09   actions_modes   
     2021-11-27 18:27:09   actions_powerOff 1
     2021-11-27 18:27:09   actions_powerOn 0
     2021-11-27 18:27:09   actions_processAction
     2021-11-27 18:27:09   actions_programId
     2021-11-27 18:27:09   actions_startTime
     2021-11-27 18:27:09   actions_targetTemperature
     2021-11-27 18:27:09   actions_ventilationStep
     2021-11-27 18:27:09   communicationModuleReleaseVersion 03.88
     2021-11-27 18:27:09   communicationModuleTechType EK037
     2021-11-27 18:27:09   deviceHardwareFabIndex 17
     2021-11-27 18:27:09   deviceHardwareFabNumber 000149707711
     2021-11-27 18:27:09   deviceHardwareMatNumber 10691920
     2021-11-27 18:27:09   deviceHardwareTechType WWE660
     2021-11-27 18:27:09   deviceName     
     2021-11-27 18:27:09   deviceType      Washing machine
     2021-11-27 18:27:09   dryingStep     
     2021-11-27 18:27:09   ecoFeedbackCurrentEnergyConsumption 0.6
     2021-11-27 18:27:09   ecoFeedbackCurrentWaterConsumption 50
     2021-11-27 18:27:09   ecoFeedbackEnergyForecast 0.3
     2021-11-27 18:27:09   ecoFeedbackWaterForecast 0.3
     2021-11-27 18:27:09   elapsedTime     0:00
     2021-11-27 18:27:09   eta             18:27
     2021-11-27 18:27:09   etaHR           Ende
     2021-11-27 18:27:09   programID       Minimum iron
     2021-11-27 18:27:09   programPhase    Anti-crease
     2021-11-27 18:27:09   programType     Own programme
     2021-11-27 18:27:09   remainingTime   0:00
     2021-11-27 18:27:09   remoteEnableFullRC 1
     2021-11-27 18:27:09   remoteEnableSmartGrid 0
     2021-11-27 18:27:09   signalDoor      0
     2021-11-27 18:27:09   signalFailure   0
     2021-11-27 18:27:09   signalInfo      0
     2021-11-27 18:27:09   spinningSpeed   1200
     2021-11-27 18:27:09   startTime       0:00
     2021-11-27 18:27:09   state           Finished (18:27)
     2021-11-27 18:27:09   status          Finished
     2021-11-27 18:27:09   statusRaw       7
     2021-11-27 18:27:09   targetTemperature 40
     2021-11-27 18:16:11   temperature     
     2021-11-27 18:27:09   ventilationStep
Attributes:
   devStateIcon .*:noIcon
   gassistantName Waschmaschine
   genericDeviceType washer
   room       GoogleAssistant,Keller,MieleAtHome


//Edit: habe die Waschmaschine Mal gelöscht und per Autocreate neu erzeugt. Nun bekomme ich bei Google Home das Gerät gar nicht mehr angezeigt :(

Gisbert

Guten Morgen Andreas,

heir ist die raw-Definition meines Rollladen-Devices:
defmod RollladenSchlafzimmerGisbert MQTT_DEVICE
attr RollladenSchlafzimmerGisbert IODev MyBroker
attr RollladenSchlafzimmerGisbert alias SZGisbert
attr RollladenSchlafzimmerGisbert autoSubscribeReadings +/RollladenSZGisbert/+
attr RollladenSchlafzimmerGisbert cmdIcon DriveUp:fts_shutter_up@#2e5e87 Stop:fts_shutter_manual@grey DriveSlit:fts_shutter_shadding_stop@green DriveDown:fts_shutter_down@green
attr RollladenSchlafzimmerGisbert comment Platine: Shutter.zip
attr RollladenSchlafzimmerGisbert eventMap /Event Up:open/Event Down:close/Event Up:DriveUp/Event Stop:Stop/Event Slit:DriveSlit/Event Down:DriveDown
attr RollladenSchlafzimmerGisbert gassistantName Rollladen Schlafzimmer
attr RollladenSchlafzimmerGisbert genericDeviceType blind
attr RollladenSchlafzimmerGisbert group Rollladen
attr RollladenSchlafzimmerGisbert homebridgeMapping {\
  "OpenClose": {\
    "reading": "state",\
    "values": ["/^closed/:CLOSED", "/.*/:OPEN"],\
    "cmdOpen": "open",\
    "cmdClose": "close"\
  },\
  "TargetPosition": {\
    "reading": "position",\
    "cmd": "position",\
    "invert": true,\
  },\
  "CurrentPosition": {\
    "reading": "position",\
    "invert": true,\
  }\
}
attr RollladenSchlafzimmerGisbert icon fts_shutter_automatic
attr RollladenSchlafzimmerGisbert publishSet_Event Up Stop Slit Down cmnd/RollladenSZGisbert/Event
attr RollladenSchlafzimmerGisbert readingList open close position
attr RollladenSchlafzimmerGisbert rhasspyGroup Rollladen
attr RollladenSchlafzimmerGisbert rhasspyMapping SetOnOff:cmdOn=DriveUp,cmdOff=DriveDown\
SetNumeric:cmdStop=Stop,type=setTarget\
SetNumeric:currentVal=pct,cmd=dim,minVal=0,maxVal=99,step=10,type=setTarget
attr RollladenSchlafzimmerGisbert rhasspyName Rollladen Schlafzimmer Gisbert
attr RollladenSchlafzimmerGisbert rhasspyRoom Rollladen
attr RollladenSchlafzimmerGisbert room GoogleAssistant,Rollladen
attr RollladenSchlafzimmerGisbert setList open close position
attr RollladenSchlafzimmerGisbert sortby 2
attr RollladenSchlafzimmerGisbert stateFormat <b><div style='color:#2e5e87'>[$name:cmd]</div></b></br>\
[$name:Zeitstempel]</br>\
uptime: [$name:Laufzeit]</br>\
[$name:IPaddress]</br>\
RSSI: [$name:Wifi_RSSI]% ([$name:LastActivity])</br>\
<div style='font-size: 85%'><i>Aussentemperatur: [TH.Kuhlmannweg8:temperature]°C</br>\
Schlafzimmer Gisbert: [Temp.OG:SZ.Gisbert]°C</div></i>
attr RollladenSchlafzimmerGisbert subscribeReading_Event cmnd/RollladenSZGisbert/Event
attr RollladenSchlafzimmerGisbert subscribeReading_INFO1 tele/RollladenSZGisbert/INFO1
attr RollladenSchlafzimmerGisbert subscribeReading_INFO2 tele/RollladenSZGisbert/INFO2
attr RollladenSchlafzimmerGisbert subscribeReading_INFO3 tele/RollladenSZGisbert/INFO3
attr RollladenSchlafzimmerGisbert subscribeReading_LWT tele/RollladenSZGisbert/LWT
attr RollladenSchlafzimmerGisbert subscribeReading_POWER cmnd/RollladenSZGisbert/POWER
attr RollladenSchlafzimmerGisbert subscribeReading_POWER1 stat/RollladenSZGisbert/POWER1
attr RollladenSchlafzimmerGisbert subscribeReading_POWER2 stat/RollladenSZGisbert/POWER2
attr RollladenSchlafzimmerGisbert subscribeReading_RESULT stat/RollladenSZGisbert/RESULT
attr RollladenSchlafzimmerGisbert subscribeReading_SENSOR tele/RollladenSZGisbert/SENSOR
attr RollladenSchlafzimmerGisbert subscribeReading_STATE tele/RollladenSZGisbert/STATE
attr RollladenSchlafzimmerGisbert subscribeReading_UPTIME tele/RollladenSZGisbert/UPTIME
attr RollladenSchlafzimmerGisbert subscribeReading_cmd stat/RollladenSZGisbert/cmd
attr RollladenSchlafzimmerGisbert userReadings Zeitstempel {substr(ReadingsTimestamp($name,'cmd',''),0,16)}, \
System.Info {round(formatUptime2sec(ReadingsVal($name,'Uptime',''))/60,0)}, \
Laufzeit {min2human(ReadingsVal($name,'System.Info',''))}, \
LastActivity {substr(ReadingsTimestamp($name,'STATE',''),11,5)}, \
IPaddress {"<a href='http://192.168.2.22' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.2.22</a>"}
attr RollladenSchlafzimmerGisbert webCmd DriveUp:Stop:DriveSlit:DriveDown


Google Assitant hat bisher opens and closes (jeweils mit s am Ende) verstanden. Mit Hilfe von eventMap kann ich die passende Rollladenfahrt im Device umsetzen.
Wenn ich das Attribut homebridgeMapping  wie vorgeschlagen setze, passiert nichts (mit eventMap, welches auf open und close reagieren soll).

Wenn ich nach "Ok Google" "Rollladen Schlafzimmer 90 (oder 90 Prozent)" sage, macht Google eine Internetsuche.
Zum Verständnis "Rollladen Schlafzimmer hoch|runter" funktioniert(e) mit opens und closes.

Wo muss ich ansetzen, damit es läuft?
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

a_quadrat

Hallo Gisbert,

hast du nach dem Definieren des homebridgeMappings ein reload des gassistant-Moduls gemacht? Danach sind erst die Einstellungen für Google verfügbar.

Beim Attribut gassistantname lösche Rollladen weg, Google weiß schon, durch das Attribut genericDeviceType, dass es sich um einen Rollladen/Jalousie handelt und es kann so zu Problemen führen, dass das Gerät nicht richtig erkannt wird. Leider musst du den Namen auch in der Google-App ändern, da Google nur beim Anlegen des Gerätes den Namen ausliest.

Danach versuche Mal "stelle Rollladen Schlafzimmer auf 90 Prozent".

Wenn Google dein Gerät jetzt erkennt, können wir uns nochmal EventMap anschauen.

VG Andreas

Gisbert

Guten Morgen Andreas,

im wesentlichen hab ich es wie von dir vorgegeben umgesetzt. Da opens und closes bereits verstanden wird, habe ich diese belassen und open und close betreffendes in hombridgeMapping entfernt.

Google Assistant erkennt wohl meinen Rollladen, verweigert aber die Ausführung mit dem Kommentar:
ZitatEntschuldigung, der Rollladen kann nur ganz oder gar nicht geöffnet stehen.
Einerseits positiv, dass keine Internetsuche gestartet wird, andererseits frustierend, dass ich so nicht weiterkomme.

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

a_quadrat

Hallo Gisbert,

lass ruhig das hombridgeMapping komplett. Du kannst einfach bei


"cmdOpen": "open",\
"cmdClose": "close"\


das "s" dranhängen, also


"cmdOpen": "opens",\
"cmdClose": "closes"\


Dann sollte wieder "opens" und "closes" bei dir ankommen.

Hast du mal einen Testrollladen bei dir angelegt, wie weiter oben beschrieben? Nur um sicher zu gehen, dass das Problem nicht an anderer Stelle liegt.

VG Andreas

Gisbert

Hallo Andreas,

im googleassistant-Device taucht folgendes Reading auf:
gassistant-fhem-lastServerError JSON error in homebridgeMapping: "{\n \"OpenClose\": {\n \"reading\": \"state\",\n \"values\": [\"/^closed/:CLOSED\", \"/.*/:OPEN\"],\n \"cmdOpen\": \"opens\",\n \"cmdClose\": \"closes\"\n },\n \"TargetPosition\": {\n \"reading\": \"position\",\n \"cmd\": \"position\",\n \"invert\": true,\n },\n \"CurrentPosition\": {\n \"reading\": \"position\",\n \"invert\": true,\n }\n}" => SyntaxError: Unexpected token } in JSON at position 249

Als Attribut ist homebridgeMapping so definiert, es scheint was nicht zu passen:
homebridgeMapping {
  "OpenClose": {
    "reading": "state",
    "values": ["/^closed/:CLOSED", "/.*/:OPEN"],
    "cmdOpen": "opens",
    "cmdClose": "closes"
  },
  "TargetPosition": {
    "reading": "position",
    "cmd": "position",
    "invert": true,
  },
  "CurrentPosition": {
    "reading": "position",
    "invert": true,
  }
}


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

a_quadrat

Hallo Gisbert,

auf die Schnelle kann ich nicht erkennen woran es liegt. Es sieht ganz gut aus.

probiere mal meins - das ist getestet  ;)


{
  "OpenClose": {
    "reading": "state",
    "values": ["/^closed/:CLOSED", "/.*/:OPEN"],
    "cmdOpen": "opens",
    "cmdClose": "closes"
  },
  "TargetPosition": {
    "reading": "position",
    "cmd": "position",
    "invert": false
  },
  "CurrentPosition": {
    "reading": "position",
    "invert": false
  }
}


VG Andreas



Reinhard.M

Zitat von: Gisbert am 29 November 2021, 14:23:40
Hallo Andreas,

im googleassistant-Device taucht folgendes Reading auf:
gassistant-fhem-lastServerError JSON error in homebridgeMapping: "{\n \"OpenClose\": {\n \"reading\": \"state\",\n \"values\": [\"/^closed/:CLOSED\", \"/.*/:OPEN\"],\n \"cmdOpen\": \"opens\",\n \"cmdClose\": \"closes\"\n },\n \"TargetPosition\": {\n \"reading\": \"position\",\n \"cmd\": \"position\",\n \"invert\": true,\n },\n \"CurrentPosition\": {\n \"reading\": \"position\",\n \"invert\": true,\n }\n}" => SyntaxError: Unexpected token } in JSON at position 249

Als Attribut ist homebridgeMapping so definiert, es scheint was nicht zu passen:
homebridgeMapping {
  "OpenClose": {
    "reading": "state",
    "values": ["/^closed/:CLOSED", "/.*/:OPEN"],
    "cmdOpen": "opens",
    "cmdClose": "closes"
  },
  "TargetPosition": {
    "reading": "position",
    "cmd": "position",
    "invert": true,
  },
  "CurrentPosition": {
    "reading": "position",
    "invert": true,
  }
}


Viele Grüße Gisbert

Hallo Gisbert,
du hast in deiner "invert" Zeile jeweils noch ein Komma hinter dem true. Das ist auf alle Fälle falsch.

Gruß Reinhard