39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

a_quadrat

Zitat von: vw80 am 17 November 2020, 09:54:23
Hallo,
habe einen dummy um die Raumtemperatur zu verstellen. Was genau müsste ich eintragen damit ich über Google
Mit "STELLE DIE RAUMTEMPERATUR AUF 22" steuern kann?
Internals:
   
   NAME       Wohnung_EG_Wohnen_Temperatur_Soll
   NR         202
   STATE      18
   STILLDONETIME 0
   TYPE       dummy
   READINGS:
     2020-11-17 06:20:00   desiredTemperature 18
     
Attributes:
   fp_Heizung 100,100,2,Solltemperatur
   gassistantName Raumtemperatur
   homebridgeMapping {
  "TemperatureControlSetCelsius": {
    "reading": "desiredTemperature",
    "cmd": "desiredTemperature"
  }
}
   readingList desiredTemperature
   room       GoogleAssistant,Haus,Heizung
   setList    desiredTemperature:slider,16,0.5,28,1
   stateFormat desiredTemperature
   webCmd     desiredTemperature

MfG Heiko

Hallo,

es fehlt noch das Reading "temperature" für die aktuelle Raumtemperatur und als "genericDeviceType" musst du thermostat auswählen. Das "homebridgeMapping" brauchst du nicht.

VG Andreas

dominik

Zitat von: vw80 am 17 November 2020, 09:54:23
Hallo,
habe einen dummy um die Raumtemperatur zu verstellen. Was genau müsste ich eintragen damit ich über Google
Mit "STELLE DIE RAUMTEMPERATUR AUF 22" steuern kann?
Internals:
   
   NAME       Wohnung_EG_Wohnen_Temperatur_Soll
   NR         202
   STATE      18
   STILLDONETIME 0
   TYPE       dummy
   READINGS:
     2020-11-17 06:20:00   desiredTemperature 18
     
Attributes:
   fp_Heizung 100,100,2,Solltemperatur
   gassistantName Raumtemperatur
   homebridgeMapping {
  "TemperatureControlSetCelsius": {
    "reading": "desiredTemperature",
    "cmd": "desiredTemperature"
  }
}
   readingList desiredTemperature
   room       GoogleAssistant,Haus,Heizung
   setList    desiredTemperature:slider,16,0.5,28,1
   stateFormat desiredTemperature
   webCmd     desiredTemperature

MfG Heiko

TemperatureControl ist NICHT für Thermostate geeignet. Ich weiß, das ist leider verwirrend bei Google. Du musst TemperatureSetting nutzen, das ist nur für Thermostate.
Siehe auch: https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect#Konfiguration (in der Tabelle die Zeile TemperatureSetting, ThermostatModes kannst auch mal weglassen)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

ather

Zitat von: dominik am 31 Oktober 2020, 22:22:13
Kannst du mir vom EleroDrive ein jsonlist2 posten? Weil dann integriere ich das direkt, dann muss niemand umständlich weitere Devices oder Mappings definieren.

Hallo Dominik,
hier die Jsonlist2 von einem Rollo:

{
  "Arg":"RolloB",
  "Results": [
  {
    "Name":"RolloB",
    "PossibleSets":" ",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 disable disabledForIntervals readingList setExtensionsEvent:1,0 setList useSetExtensions 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 mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long realRoom:textField sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
    "Internals": {
      "FUUID": "5f9bd954-f33f-a2fd-f28e-bd7c9b4afe01e8ab",
      "NAME": "RolloB",
      "NR": "32",
      "STATE": "open",
      "TYPE": "dummy"
    },
    "Readings": {      "state": { "Value":"open", "Time":"2020-11-18 09:29:53" } },
    "Attributes": {
      "alias": "Rollo Büro",
      "genericDeviceType": "blinds",
      "group": "Unten",
      "homebridgeMapping": "{\n  \"OpenClose\": {\n    \"reading\": \"state\",\n    \"values\": [\"/^closed/:CLOSED\", \"/.*/:OPEN\"],\n    \"cmdOpen\": \"open\",\n    \"cmdClose\": \"close\"\n  },\n  \"TargetPosition\": {\n    \"reading\": \"position\",\n    \"cmd\": \"position\",\n    \"invert\": true\n  },\n  \"CurrentPosition\": {\n    \"reading\": \"position\",\n    \"invert\": true\n  }\n}",
      "room": "GoogleAssistant",
      "webCmd": "open:close"
    }
  }  ],
  "totalResultsReturned":1
}


Bei der Programmierung in Loxone sieht das ganze so aus: (Siehe Bild)
Dabei verwende ich bei FHEM ein Dummy mit devicetype "blinds".
Der Trigger "fhem_WolloWz_s...." kann dabei nur den Status 1(Öffnen) und 0(schließen) haben.

Dazu hätte ich eine Frage.
Gibt es eine Möglichkeit das von FHEM zwei separate Trigger/readings/status für Öffnen bzw. schließen gesendet werden?
Also ungefähr so:
Rollo hoch: 0/1 bzw. on/off
Rollo runter: 0/1 bzw. on/Off
Am besten wäre, wenn diese Signale dann auch als Taster kommen also kurz auf 1 schalten und dann wieder auf 0.
Dann könnte man das ganze gut integrieren mit dummy und Type blinds.

Habe das ganze auch schon mit dem Modul ROLLO in FHEM probiert. Leider wird hier aber im Google Home dann nur eine Dimmbare Lampe angezeigt und der Status bzw. die Befehle nicht weitergegeben. Vielleicht mach ich hier auch nen Fehler? Habe hier im Forum schon paar mal gelesen,dass andere user das selbe Problem haben.

Laut Loxone kann MQTT nicht direkt mit Loxone gelesen werden. Nur über die Gateway eben und einem raspi.

@Ein Modul für Loxone integration wäre natürlich super ist aber sicher nicht einfach.

Gruß
Ather






Delta80

Zitat von: dominik am 16 November 2020, 20:01:19
@Delta80, da war meine Aussage nicht ganz klar...ich habe es jetzt im Code korrigiert, nun sollte auch OFF klappen. Einfach ein reload machen. Ist in 30min online...

Spitze. Hab vielen Dank, scheint jetzt das zu tun was ich erwartet hatte :-) Coffee donation ist auf dem Weg ;-)

kriegerkl

#2479
Hallo Dominik,

Zitat von: dominik am 13 November 2020, 21:50:53
Ad Luftfeuchtigkeit:
Funktioniert nun auch bei SENSOR, da ist mir leider ein Fehler unterlaufen.
Ja, jetzt funktioniert es, Danke.

Ich habe es jetzt auch mit Modes statt Channels hinbekommen, die Radiosender wie Deutschlandfunk umzuschalten.
Über

  "Channel": {\
    "cmd":""\
  },\

kann man auch die Radiosender per Zahl umschalten.

Gesamtes homebridgeMapping :

attr WZ_Radio homebridgeMapping {\
  "On": {\
    "reading":"state",\
    "valueOff":"off",\
    "device":"WZ_Radio",\
    "cmdOn":"on",\
    "cmdOff":"off"\
  },\
  "Channel": {\
    "cmd":""\
  },\
  "Modes":[\
  {\
    "reading":"state",\
    "cmds":[\
      "B5:0",\
      "B3:3",\
      "DLF:5",\
      "SWR3:6",\
      "GONG:14"\
    ],\
    "mode_attributes":{\
      "name":"sender",\
      "name_values":[\
      {\
        "name_synonym":[\
          "sender",\
          "programm"\
        ],\
        "lang":"de"\
      }\
      ],\
      "settings":[\
      {\
        "setting_name":"B5",\
        "setting_values":[\
        {\
          "setting_synonym":[\
    "Bayern 5",\
    "B5 aktuell"\
  ],\
  "lang":"de"\
        }\
        ]\
      },\
      {\
        "setting_name":"B3",\
        "setting_values":[\
        {\
          "setting_synonym":[\
    "Bayern 3",\
    "B3"\
  ],\
  "lang":"de"\
        }\
        ]\
      },\
      {\
        "setting_name":"DLF",\
        "setting_values":[\
        {\
          "setting_synonym":[\
    "DLF",\
    "Deutschlandfunk"\
  ],\
  "lang":"de"\
        }\
        ]\
      },\
      {\
        "setting_name":"SWR3",\
        "setting_values":[\
        {\
          "setting_synonym":[\
    "SWR 3",\
    "SWF 3"\
  ],\
  "lang":"de"\
        }\
        ]\
      },\
      {\
        "setting_name":"GONG",\
"setting_values":[\
{\
          "setting_synonym":[\
            "Gong",\
            "Radio Gong"\
  ],\
  "lang":"de"\
}\
]\
      }\
      ]\
    }\
  }\
  ]\
}


Eine ganz andere Frage:
Wie kann ich auf GoogleCast Geräten von FHEM aus einen geschriebenen Text ausgeben, d.h. vorlesen lassen?
Ginge das mit einer Kombination aus Text2Speech und GOOGLECAST oder funktioniert es alleine mit einem GOOGLECAST-Device?

dominik

Hi,
danke für das bereitstellen der hilfreichen Infos.

Zur Textausgabe: Kannst du direkt mit Googlecast machen. Bitte dazu schon die neue Version nutzen (Python 3.7 wird benötigt!):
https://github.com/dominikkarall/fhem_pythonbinding
Einmal die Installation ausführen und dann kannst du folgende Befehle nutzen:
define cast PythonModule googlecast NAME
set cast speak "Test test"
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

kriegerkl

#2481
Hallo Dominik,
ich habe ein Problem mit dem fhem_pythonbinding:

Definition:

define local_pybinding BindingsIo Python
define Pythonbinding_0 PythonBinding 0


fhem.log

2020.11.19 17:28:39 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.11.19 17:28:50 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.11.19 17:28:56 3: Pythonbinding_0: starting
2020.11.19 17:28:56 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-19.log
2020.11.19 17:28:56 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.19 17:28:56 3: Pythonbinding_0: stopped


PythonBinding.log:

SyntaxError: invalid syntax
  File "FHEM/bindings/python/pythonbinding.py", line 13
    logging.getLogger(__name__).error(f"FHEM_PythonBinding requires Python {MIN_PYTHON_VERSION[0]}.{MIN_PYTHON_VERSION[1]}.{MIN_PYTHON_VERSION[2]}")


Daraus habe ich entnommen, dass die python-Version zu alt ist.
Ich habe deshalb gemäß folgendem Link phyton3.8 installiert: https://maker-tutorials.com/python3-pip-raspberry-pi-installieren/
Dann habe ich python3 auf python3.8 umgebogen.

Danach kam es zu folgendem Problem:

  File "/usr/local/lib/python3.8/subprocess.py", line 411, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/local/lib/python3.8/subprocess.py", line 512, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.


Um das zu lösen, habe ich in "/usr/bin/lsb_release" in der ersten Zeile "#!/usr/bin/python3 -Es" in "#!/usr/bin/python3.8 -Es" geändert.

Das nächste Problem war folgendes:

2020-11-19 20:29:35,924 - INFO     - __main__: Attempting install of websockets
2020-11-19 20:29:53,950 - ERROR    - __main__: Unable to install package websockets: WARNING: The directory '/root/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.local'
Check the permissions.


Um das zu lösen, habe ich websockets und cryptography folgendermaßen manuell installiert:

sudo pip install websockets
sudo pip install cryptography


Als nächstes gibt es folgese Problem:

2020-11-19 20:52:27,628 - INFO     - lib.fhem_pythonbinding: Starting pythonbinding...
2020-11-19 20:52:29,448 - INFO     - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-11-19 20:52:29,666 - INFO     - lib.pkg_installer: Attempting install of pychromecast>=7.3.0
2020-11-19 20:53:06,396 - ERROR    - lib.pkg_installer: Unable to install package pychromecast>=7.3.0: WARNING: The directory '/root/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.local'
Check the permissions.

Auch das habe ich gelöst durch


sudo pip install pychromecast


Und dann habe ich noch die anderen Module manuell installiert.
Danach endlich war das googlecast-Device online.

Woran kann es liegen, dass die Module nicht automatisch installiert werden können?

dominik

Danke für die Infos! Ich schau mir den Installationsprozess nochmals an wieso der bei dir fehlschlägt, ein paar Fragen dazu:
- Mit welchem User läuft fhem? fhem oder root? Mich wundert nämlich die Installation in /root, es sollte nur für den fhem User installiert werden.
- Was hast du für ein System? RPi, ...?
- Nutzt du Docker oder ähnliches?
- Fall Debian basiert, welche Version nutzt du? stretch?
- Mit den Anpassungen läuft es nun bei dir?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

kriegerkl

Zitat von: dominik am 19 November 2020, 21:50:19
Danke für die Infos! Ich schau mir den Installationsprozess nochmals an wieso der bei dir fehlschlägt, ein paar Fragen dazu:
- Mit welchem User läuft fhem? fhem oder root? Mich wundert nämlich die Installation in /root, es sollte nur für den fhem User installiert werden.
- Was hast du für ein System? RPi, ...?
- Nutzt du Docker oder ähnliches?
- Fall Debian basiert, welche Version nutzt du? stretch?
- Mit den Anpassungen läuft es nun bei dir?

Hallo Dominik:
zu 1) fhem läuft mit dem User fhem. Ich habe mich wie für alle Installationen auf dem RPi eingeloggt und die Installation per sudo vorgenommen.
zu 2)  RPi2 B
zu 3) Nein, kein Docker, ganz normale Installation
zu 4) Betriebssystem ist debian - stretch
zu 5) Ja, nach der manuellen Installation aller Pakete per pip, läuft es

kluge89

Hallo Dominik,
ich habe das FHEM Connect Modul seit heute im Einsatz und bin sehr begeistert! Aktuell habe ich mehrere LaCrosse Temperatur / Luftfeuchtesensoren eingebunden.
Über die Sprachabfrage kann ich mir diese Sensorwerte ausgeben lassen.

Kann man sich die Sensorwerte (Temp. / Luftfeuchte) auch in der Google Home App direkt anzeigen lassen?

dominik

Zitat von: kriegerkl am 21 November 2020, 10:02:43
Hallo Dominik:
zu 1) fhem läuft mit dem User fhem. Ich habe mich wie für alle Installationen auf dem RPi eingeloggt und die Installation per sudo vorgenommen.
zu 2)  RPi2 B
zu 3) Nein, kein Docker, ganz normale Installation
zu 4) Betriebssystem ist debian - stretch
zu 5) Ja, nach der manuellen Installation aller Pakete per pip, läuft es

Ich habe dazu was gefunden, werde das die nächsten Tage anpassen, dann sollte die Installation auch über fhem_pythonbinding automatisch klappen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: kluge89 am 21 November 2020, 14:49:49
Hallo Dominik,
ich habe das FHEM Connect Modul seit heute im Einsatz und bin sehr begeistert! Aktuell habe ich mehrere LaCrosse Temperatur / Luftfeuchtesensoren eingebunden.
Über die Sprachabfrage kann ich mir diese Sensorwerte ausgeben lassen.

Kann man sich die Sensorwerte (Temp. / Luftfeuchte) auch in der Google Home App direkt anzeigen lassen?

Freut mich, dass alles so gut geklappt hat :)

Leider bietet Google noch keine Möglichkeit die Werte in der Home App anzuzeigen. Das geht aktuell nur für Thermostate.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Gute News:
https://developers.google.com/assistant/smarthome/develop/scheduling?hl=de

Man kann nun Befehle via Google planen:
Schalte die Kaffeemaschine um 8Uhr ein.

Hab es selbst noch nicht probiert...
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

SouzA

Zitat von: dominik am 22 November 2020, 17:24:50
Gute News:
https://developers.google.com/assistant/smarthome/develop/scheduling?hl=de

Man kann nun Befehle via Google planen:
Schalte die Kaffeemaschine um 8Uhr ein.

Hab es selbst noch nicht probiert...
Funktioniert leider nur mit Devices nicht mit Ambiente oder Abläufen... Zumindest bei mir nicht.

Danke für die Info!

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

dominik

Aktuell wird nur
- LightEffects
- OnOff
- StartStop
unterstützt. Andere Funktionen leider noch nicht.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik