39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

eiten

Nachdem ich nun gassistant zu laufen gekriegt habe, schon die nächste Frage. Ich habe ein YeeLight (eigents Modul in Entwicklung, da ich ceiling4 mit Hintergrundbeleuchtung habe). Das Listing:
Internals:
   AttrFn     YLDevice_Attr
   AttrList   smooth event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading
   DEF        0x0000000005e38a87
   DefFn      YLDevice_Define
   DeviceName 10.120.120.46:55443
   FD         29
   FUUID      5fc109cc-f33f-9f51-64c5-9bf2f1e2a22a7ec1
   GetFn      YLDevice_Get
   LASTInputDev YLDetector
   MSGCNT     2
   Match      .*
   NAME       YLDevice_Wohnen
   NR         185
   PARTIAL   
   ParseFn    YLDevice_Parse
   ReadFn     YLDevice_Read
   ReadyFn    YLDevice_Ready
   STATE      opened
   SetFn      YLDevice_Set
   TYPE       YLDevice
   UndefFn    YLDevice_Undef
   YLDetector_MSGCNT 2
   YLDetector_TIME 2020-11-28 11:31:08
   AutoCreate:
     YLDevice_.*:
       noAutocreatedFilelog 1
   MSGIDS:
   READINGS:
     2020-11-28 11:47:09   active_bright   69
     2020-11-27 18:10:38   active_mode     daylight
     2020-11-27 18:10:38   bg_bright       1
     2020-11-27 18:10:38   bg_color_mode   rgb
     2020-11-27 18:10:38   bg_ct           2700
     2020-11-27 18:10:38   bg_flow_params  0,0,3000,4,16711680,100,3000,4,65280,100,3000,4,255,100
     2020-11-27 18:10:38   bg_flowing      0
     2020-11-27 18:10:38   bg_hue          240
     2020-11-28 11:28:46   bg_power        on
     2020-11-27 18:10:38   bg_proact       1
     2020-11-27 18:10:38   bg_rgb          0000FF
     2020-11-27 18:10:38   bg_sat          100
     2020-11-28 11:47:09   bright          69
     2020-11-27 18:10:38   color_mode      ct
     2020-11-28 11:49:37   ct              4000
     2020-11-27 18:10:38   flow_params     0,0,800,2,2700,50,800,2,2700,30,1200,2,2700,80,800,2,2700,60,1200,2,2700,90,2400,2,2700,50,1200,2,2700,80,800,2,2700,60,400,2,2700,70
     2020-11-27 18:10:38   flowing         0
     2020-11-28 08:55:43   gw_ver          56
     2020-11-27 18:10:38   init_power_opt  1
     2020-11-27 18:10:38   lan_ctrl        1
     2020-11-27 18:10:38   main_power      on
     2020-11-27 18:10:38   miband_sleep    1
     2020-11-28 08:55:43   model           ceiling4
     2020-11-27 18:10:37   name            Wohnen
     2020-11-27 18:10:38   nighttime       disable
     2020-11-27 18:10:38   nighttime_end   06:00:00
     2020-11-27 18:10:38   nighttime_start 22:00:00
     2020-11-27 18:10:38   nighttime_timer 03
     2020-11-27 18:10:38   nl_bright       0
     2020-11-28 11:28:46   power           on
     2020-11-27 18:10:38   save_state      1
     2020-11-27 18:10:38   smart_switch    0
     2020-11-28 11:31:08   state           opened
     2020-11-27 18:10:38   sub_model       0
   helper:
     support:
       get_prop
       set_default
       set_power
       toggle
       set_bright
       set_scene
       cron_add
       cron_get
       cron_del
       start_cf
       stop_cf
       set_ct_abx
       set_name
       set_adjust
       adjust_bright
       adjust_ct
       bg_set_rgb
       bg_set_hsv
       bg_set_ct_abx
       bg_start_cf
       bg_stop_cf
       set_scene_bundle
       bg_set_default
       bg_set_power
       bg_set_bright
       bg_set_adjust
       bg_adjust_bright
       bg_adjust_color
       bg_adjust_ct
       bg_toggle
       dev_toggle
Attributes:
   gassistantName Wohnzimmerlampe
   genericDeviceType light
   homebridgeMapping {
"Brightness": {
"reading": "bright",
"cmd": "bright"
},
"colorTemperatureRange": {
"reading": "ct",
"cmd": "ct",
"temperatureMinK": 2700,
"temperatureMaxK": 6500
}
}
   realRoom   Wohnzimmer
   room       GoogleAssistant,YLDevice
   webCmd     ct

Nach dem hinzufügen zum Raum GoogleAssistant funktionierte nur ein/aus. Also habe ich ein HomeBridge mapping hinzugefügt:
homebridgeMapping {
"Brightness": {
"reading": "bright",
"cmd": "bright"
},
"colorTemperatureRange": {
"reading": "ct",
"cmd": "ct",
"temperatureMinK": 2700,
"temperatureMaxK": 6500
}

Helligkeit geht jetzt, allerdings die Frabtemperatur setzen noch nicht. Irgendwelche Ideen? Und wie erkennt gassistant automatisch, was gesetzt werden kann? Anhand der Readings/settings? Dann kann ich mein Modul noch entsprechend anpassen.

Danke und Gruss, Edi

Gear

Sry wegen OffTopic.

Zitat von: dominik am 28 November 2020, 11:35:18
Googlecast: Bitte das neue Googlecast verwenden welches noch nicht Teil von FHEM ist (https://github.com/dominikkarall/fhem_pythonbinding). Das alte Googlecast Modul ist mit den neuen pychromecast nicht mehr kompatibel

Hast du einen separaten Thread hier im Forum für das Modul?
Habe es wie auf GitHub installiert und es spuckt diese Fehler aus.
FHEM:
2020.11.28 13:22:36 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:36 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:36 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:36 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:46 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:46 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:46 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:46 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)
2020.11.28 13:22:54 3 : Pythonbinding_0: starting
2020.11.28 13:22:54 3 : Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-28.log
2020.11.28 13:22:55 3 : Pythonbinding_0: read: end of file reached while sysread
2020.11.28 13:22:55 3 : Pythonbinding_0: stopped


LogFile:
Traceback (most recent call last):
  File "FHEM/bindings/python/pythonbinding.py", line 79, in <module>
    import lib.fhem_pythonbinding as fpb
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 14, in <module>
    from . import pkg_installer
  File "/opt/fhem/FHEM/bindings/python/lib/pkg_installer.py", line 20, in <module>
    from importlib_metadata import (  # pylint: disable=import-error
ModuleNotFoundError: No module named 'importlib_metadata'
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

dominik

sudo pip3 install importlib_metadata

Bitte weiteres zu googlecast dann hier posten:
https://forum.fhem.de/index.php/topic,45505.870.html
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

@Edi
{
  "RGB": {
    "reading": "rgb",
    "cmd": "rgb"
  },
  "ColorTemperature": {
    "reading": "ct",
    "cmd": "ct"
  }
}


Achtung: RGB in Hex, ct in mired (nicht kelvin)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: Gear am 28 November 2020, 12:14:38
Danke für die schnelle Antwort! =)

LightScene hinzufügen klappt schonmal (gerade zum laufen bekommen), aber wenn ich mehrere Szenen habe mit gleichen Szene Namen dann geht das nicht mehr.
Also, wenn ich meine LightScene: WZ.LightScene (Gassiname: Wohnzimmer Licht; genericDeviceType: scene) über Ambiente hinzufügen will, dann geht das.
Nun hat die Wohnzimmer Scene folgende Szenen: ON, OFF, Couch, Media, Essen

Nun möchte ich die Schlafzimmer Szene auch hinzufügen, da sehen die Scene so aus: ON, OFF, Media, Sleeptimer

Hier gibt es dann Überschneidungen, muss ich hier wirklich jeder Scene einen eindeutigen Namen geben?
WZ-ON / SZ-ON usw? (oder ähnliches)
Ich hab gerade nachgeschaut, die ID bei Google generiere ich eindeutig aus LightScene devicename + Scenename. Der Name der Scene in der Home App ist dann aber gleich. Du musst also in der Home App schauen welche welche ist. Es sollte auch moeglich sein die Scene in der Home App umzubennen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

eiten

Zitat von: dominik am 28 November 2020, 19:16:52
Achtung: RGB in Hex, ct in mired (nicht kelvin)
Perfekt, hat geklappt. Aber: Kelvin funktioniert super. Mein mapping:
{
"Brightness": {
"reading": "bright",
"cmd": "bright"
},
"ColorTemperature": {
"reading": "ct",
"cmd": "ct",
"temperatureMinK": 2700,
"temperatureMaxK": 6500
}
}

Herzlichen Dank jedenfalls! Ideen, wie ich mein Modul gestalten muss, damit das automatisch erkannt wird?

SouzA

Zitat von: dominik am 28 November 2020, 19:26:05
Ich hab gerade nachgeschaut, die ID bei Google generiere ich eindeutig aus LightScene devicename + Scenename. Der Name der Scene in der Home App ist dann aber gleich. Du musst also in der Home App schauen welche welche ist. Es sollte auch moeglich sein die Scene in der Home App umzubennen.
Moin,
Wo sehe ich denn, außer in den Abläufen unter Ambiente, die Szenen? Bzw. Wo könnte man die noch bearbeiten? Habe die sonst nirgends gefunden.
In den Abläufen kannst du die Devices (hier die Szenen) nämlich nicht bearbeiten.

Thx für Info.
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

dominik

Stimmt, man sieht die Szenen sonst nirgendwo mehr. Ok, dann muss man die Scenen wirklich bereits in FHEM eindeutig benennen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Gear

Zitat von: dominik am 28 November 2020, 19:26:05
Ich hab gerade nachgeschaut, die ID bei Google generiere ich eindeutig aus LightScene devicename + Scenename. Der Name der Scene in der Home App ist dann aber gleich. Du musst also in der Home App schauen welche welche ist. Es sollte auch moeglich sein die Scene in der Home App umzubennen.

Habe es nach dem Ablauf gemacht, funktioniert nun wunderbar.

Eine Sache ist mir aufgefallen, wenn ich sage "Schalte alle Lichter aus", dann werden die Ambiente nicht abgeschaltet.
Ich gehe davon aus, dass ich hier alles über einen selbst angelegten Befehl machen muss, der alles an bzw. ausschaltet, oder stehe ich auf dem Schlauch?

Danke für die Anbindung an Google und co. alles tippi toppi =D
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

SouzA

Zitat von: Gear am 29 November 2020, 13:51:40
Habe es nach dem Ablauf gemacht, funktioniert nun wunderbar.

Eine Sache ist mir aufgefallen, wenn ich sage "Schalte alle Lichter aus", dann werden die Ambiente nicht abgeschaltet.
Ich gehe davon aus, dass ich hier alles über einen selbst angelegten Befehl machen muss, der alles an bzw. ausschaltet, oder stehe ich auf dem Schlauch?

Danke für die Anbindung an Google und co. alles tippi toppi =D
Das ist ja auch klar... Ambiente bedeutet ein bestimmtes Setting mit den vorhandenen Leuchten.
Die Leuchten an sich sollten ja als Device in der App sein... So googles Logik.
Das wir das hier teilweise anders machen, is ja unser "Fehler" ;)

Also, wenn du Ambiente mit "Lampen aus" ausschalten willst, brauchst du einen Ablauf.

Bis denn
SouzA




Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

st0ne

#2530
Guten Abend,
ich habe erfolgreich einen "Shelly Plug S" in FHEM eingebunden, ich kann ihn dort Ein-/Ausschalten. Den Schalter habe ich zum GoogleAssistant Raum zugeordnet, leider wird er in Google Home nicht angezeigt. Habe ich etwas nicht bedacht?


Hier die jsonlist2:
{
  "Arg":"Weihnachtsbaum",
  "Results": [
  {
    "Name":"Weihnachtsbaum",
    "PossibleSets":"config off off-for-timer on on-for-timer password toggle xtrachannels:noArg",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 verbose model:shelly2,shellyrgbw,shelly2.5,shellyplug,shelly1,shellydimmer,shelly1pm,shelly4 mode:relay,roller,white,color defchannel maxtime maxpower interval pct100:open,closed shellyuser event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading assistantName:textField cmdIcon devStateIcon:textField-long devStateStyle gassistantName:textField genericDeviceType:aircondition,coffeemaker,ac_unit,aircooler,airfreshener,airpurifier,audio_video_receiver,awning,bathtub,bed,blender,blinds,boiler,camera,carbon_monoxide_detector,charger,closet,coffee_maker,cooktop,curtain,dehumidifier,dehydrator,dishwasher,door,drawer,dryer,fan,faucet,fireplace,freezer,fryer,garage,gate,grill,heater,hood,humidifier,kettle,light,lock,remotecontrol,mop,mower,microwave,multicooker,network,outlet,oven,pergola,petfeeder,pressurecooker,radiator,refrigerator,router,scene,sensor,securitysystem,settop,shutter,shower,smoke_detector,sousvide,speaker,streaming_box,streaming_stick,streaming_soundbar,soundbar,sprinkler,standmixer,switch,tv,thermostat,vacuum,valve,washer,waterheater,waterpurifier,watersoftener,window,yogurtmaker homebridgeMapping:textField-long icon realRoom:textField sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
    "Internals": {
      "CFGFN": "",
      "DEF": "192.168.178.113",
      "DURATION": "0",
      "FUUID": "5fc3f9b7-f33f-04c4-8a37-acc5ab60bfde0a30",
      "INTERVAL": "60",
      "NAME": "Weihnachtsbaum",
      "NR": "301918",
      "STATE": "on",
      "TCPIP": "192.168.178.113",
      "TYPE": "Shelly"
    },
    "Readings": {
      "cloud": { "Value":"disabled", "Time":"2020-11-29 20:42:48" },
      "energy": { "Value":"1", "Time":"2020-11-29 21:10:40" },
      "firmware": { "Value":"v1.9.0", "Time":"2020-11-29 20:42:48" },
      "network": { "Value":"<html>connected to <a href=\"http://192.168.178.113\">192.168.178.113</a></html>", "Time":"2020-11-29 20:42:47" },
      "overpower": { "Value":"0", "Time":"2020-11-29 20:45:36" },
      "power": { "Value":"1.74", "Time":"2020-11-29 21:10:40" },
      "relay": { "Value":"on", "Time":"2020-11-29 20:45:36" },
      "state": { "Value":"on", "Time":"2020-11-29 20:45:36" }
    },
    "Attributes": {
      "model": "shellyplug",
      "room": "GoogleAssistant"
    }
  }  ],
  "totalResultsReturned":1
}


*Edit* Hat sich erledigt, ich habe es noch einmal versucht und jetzt klappt es.

Gear

Zitat von: SouzA am 29 November 2020, 15:48:42
Das ist ja auch klar... Ambiente bedeutet ein bestimmtes Setting mit den vorhandenen Leuchten.
Die Leuchten an sich sollten ja als Device in der App sein... So googles Logik.
Das wir das hier teilweise anders machen, is ja unser "Fehler" ;)

Also, wenn du Ambiente mit "Lampen aus" ausschalten willst, brauchst du einen Ablauf.

Also ich habe das so eingerichtet für die LightScene:
"Wohnzimmer Licht" (Dann der Name der Scene)
Das Flurlicht hat keine Scene, da ist es einfach "Flur Licht An / Aus"

Nun mache ich einen Ablauf, welcher alle Lichter aus, bzw. an machen soll.

"Alle Lichter an" / "Alle Lichter aus"
> Hier lege ich dann die Ambiente auf OFF, so dass alle LightScene's ausgehen.
> Dann nehme ich die ON / OFF Lampen, hier wähle ich "Intelligene Geräte steuern", dann die Lichter und sage Aktivieren oder Deaktivieren, hier bekomme ich dann eine Fehlermeldung, dass diese Geräte das nicht unterstützen würden.

Aktuell habe ich das über ein Dummy gelöst, wäre aber schön, wenn das ohne den Umweg gehen würde.

Nun noch eine Frage, kann ich auch über Sprache ein FHEM Dummy setzen?
Bzw. gibt es da einen Befehl, mit dem ich das ausführen kann?


Danke =)
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

SouzA

Moin,

Zitat von: Gear am 01 Dezember 2020, 12:12:41
Also ich habe das so eingerichtet für die LightScene:
"Wohnzimmer Licht" (Dann der Name der Scene)
Das Flurlicht hat keine Scene, da ist es einfach "Flur Licht An / Aus"
Das bedeutet also, dass die Leuchten vom Flur als Device in der HomeApp vorhanden sind, die Leuchten im Wohnzimmer aber nicht?

Zitat von: Gear am 01 Dezember 2020, 12:12:41
Nun mache ich einen Ablauf, welcher alle Lichter aus, bzw. an machen soll.
So der Plan

Zitat von: Gear am 01 Dezember 2020, 12:12:41
"Alle Lichter an" / "Alle Lichter aus"
> Hier lege ich dann die Ambiente auf OFF, so dass alle LightScene's ausgehen.
Das bedeutet, dass du eine Scene hast, in der die Leuchten ausgeschaltet werden?

Zitat von: Gear am 01 Dezember 2020, 12:12:41
> Dann nehme ich die ON / OFF Lampen, hier wähle ich "Intelligene Geräte steuern", dann die Lichter und sage Aktivieren oder Deaktivieren, hier bekomme ich dann eine Fehlermeldung, dass diese Geräte das nicht unterstützen würden.
Kannst du beides (Scene und Flur-Device) getrennt voneinander "Aus" Schalten per Sprache?
Bei welchem gibt es den Fehler?

Zitat von: Gear am 01 Dezember 2020, 12:12:41
Aktuell habe ich das über ein Dummy gelöst, wäre aber schön, wenn das ohne den Umweg gehen würde.

Nun noch eine Frage, kann ich auch über Sprache ein FHEM Dummy setzen?
??? Hä, du hast es über einen Dummy gelöst und fragst jetzt, ob man Dummys per Sprache schalten kann?

Zitat von: Gear am 01 Dezember 2020, 12:12:41
Bzw. gibt es da einen Befehl, mit dem ich das ausführen kann?


Danke =)
Ja, erstelle einen Dummy im Gassistant-Raum und Sag "Hey Google, Dummy An".


   NAME Dummy
   TYPE dummy
Attributes:
   alias Dummy
   room gassistant
   setList on,off


Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

mr.ossi

Guten Morgen,

nachdem ich gestern gassistant versucht habe zum laufen zu bekommen habe ich im logfile folgendes stehen:

Another gassistant-fhem process is running!

Wieso läuft das schon solch ein Prozess und wie kann ich ihn beenden? Ich habe nirgends ein Modul "gassistant" in meinem FHEM...

Gruß
Manuel

Gear

Zitat von: mr.ossi am 03 Dezember 2020, 08:26:51
Wieso läuft das schon solch ein Prozess und wie kann ich ihn beenden? Ich habe nirgends ein Modul "gassistant" in meinem FHEM...

Warum, ist ne gute Frage.
Schon mal nen Neustart gemacht?
Hatte bei mir geholfen. =)
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <