39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

dominik

Zitat von: Chillkroete1206 am 05 Mai 2019, 23:28:59
Danke für die Antwort Dominik.

Bin garnicht dazu gekommen das auzuprobieren. Nach einer Neuinstallation von Node.JS hat alles geklappt.

Gruß!

Kannst du bitte beschreiben was du genau gemacht hast? Ich wuerde das gernein die FAQs mit aufnehmen. Danke.

Zitat von: Heimchen am 06 Mai 2019, 14:31:39
Hallo Dominik,

erst einmal vielen lieben Dank für deine Arbeit. Die Integration aht bei mir funktioniert und ich kann nun meine FHEM Geräte per Google Home steuern.

An dieser Stelle eine Frage an dich bzw die Community: Wie kann ich Google Home Geräte aus FHEM schalten? Also genau andern herum, ich möchte z.B. bestimmte Geräte abends ausschalten, die irgendwer vergessen hat zu deaktivieren oder Geräte nach einer gewissen Nutzungszeit deaktivieren.

Ich bin neugierig auf deine /eure Ideen, denn auf Anhieb habe ich gar nichts dazu gefunden.

Vielen Dank

Gruß Holger

Meinst du Geraete wie Hue Lampen die nur an Google Assistant angebunden sind und nicht in FHEM integriert sind? Das geht leider nicht. Falls du den Google Home steuern willst, kannst du das GOOGLECAST Modul verwenden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: CoolTux am 04 Mai 2019, 22:56:01

Internals:
   CHANGED   
   DEF        344515
   FUUID      5c485fad-f33f-fc06-b4ea-380201dc0cf20709
   HmUART1_MSGCNT 2
   HmUART1_RAWMSG 0501004C43A2413445152AEE7001D064
   HmUART1_RSSI -76
   HmUART1_TIME 2019-05-04 22:49:23
   IODev      HmUART1
   LASTInputDev HmUART1
   MSGCNT     2
   NAME       FensterKontaktKinZimSteven_F1
   NOTIFYDEV  global
   NR         354
   NTFY_ORDER 50-FensterKontaktKinZimSteven_F1
   STATE      tilted
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:43 - t:41 s:344515 d:2AEE70 01D064
   peerList   HM_302604_WindowRec,
   protLastRcv 2019-05-04 22:49:23
   protRcv    2 last_at:2019-05-04 22:49:23
   protRcvB   1 last_at:2019-05-04 22:49:23
   protSnd    1 last_at:2019-05-04 22:49:23
   protState  CMDs_done
   rssi_at_HmUART1 cnt:2 min:-76 max:-75 avg:-75.5 lst:-76
   Helper:
     DBLOG:
       state:
         logDbCurrent:
           TIME       1557002963.11417
           VALUE      tilted
   READINGS:
     2019-05-04 20:11:42   Activity        alive
     2018-04-12 06:15:20   CommandAccepted yes
     2018-04-12 06:15:22   D-firmware      2.4
     2018-04-12 06:15:22   D-serialNr      LEQ1252023
     2018-04-12 06:15:22   PairedTo        0x2AEE70
     2016-10-21 10:36:44   R-HM_302604_WindowRec-expectAES off
     2016-10-21 10:36:44   R-HM_302604_WindowRec-peerNeedsBurst on
     2016-06-21 05:35:33   R-cyclicInfoMsg off
     2018-04-12 06:15:23   R-eventDlyTime  3 s
     2016-06-21 05:35:34   R-ledOnTime     0.5 s
     2016-06-21 05:35:34   R-msgRhsPosA    closed
     2016-06-21 05:35:34   R-msgRhsPosB    open
     2016-06-21 05:35:34   R-msgRhsPosC    tilted
     2016-06-30 20:50:35   R-pairCentral   0x2AEE70
     2016-06-21 05:35:34   R-sign          off
     2016-06-21 05:35:33   R-transmDevTryMax 6
     2016-06-21 05:35:34   R-transmitTryMax 6
     2018-04-12 06:15:33   alive           yes
     2019-05-04 22:49:23   battery         ok
     2019-05-04 22:49:23   contact         tilted (to VCCU1)
     2016-10-21 10:37:10   cover           closed
     2019-05-04 20:11:51   peerList        HM_302604_WindowRec,
     2016-06-30 20:45:34   powerOn         2016-06-30 20:45:34
     2018-04-12 06:15:33   recentStateType info
     2018-04-12 06:15:33   sabotageError   off
     2019-05-04 22:49:23   state           tilted
     2016-08-26 20:27:10   trigDst_VCCU1   noConfig
     2019-05-04 22:49:23   trigger_cnt     208
   helper:
     HM_CMDNR   67
     mId        0030
     peerFriend peerAct,peerVirt
     peerOpt    4:threeStateSensor
     regLst     0,1,4p
     rxType     20
     supp_Pair_Rep 0
     ack:
     expert:
       def        1
       det        1
       raw        0
       tpl        0
     io:
       newChn     +344515,00,01,00
       nextSend   1557002964.08551
       rxt        2
       vccu       VCCU1
       p:
         344515
         00
         01
         00
       prefIO:
         HmUART1
     mRssi:
       mNo        43
       io:
         HmUART1:
           -74
           -74
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rpt:
       IO         HmUART1
       flg        A
       ts         1557002963.79585
       ack:
         HASH(0x5826ec8)
         4380022AEE7034451500
     rssi:
       at_HmUART1:
         avg        -75.5
         cnt        2
         lst        -76
         max        -75
         min        -76
     shadowReg:
     tmpl:
Attributes:
   AlleFenster structureFensterWohnung
   Fenster    structureFensterSuedWest
   FensterKinZimSteven structureFensterKinZimSteven
   FensterSuedWest structureFensterSuedWest
   IODev      HmUART1
   IOgrp      VCCU1:HmUART1
   actCycle   028:00
   actStatus  alive
   alias      Kinderzimmerfenster Steven links
   autoReadReg 4_reqStatus
   devStateIcon open:fts_window_1w_open@red closed:fts_window_1w@green tilted:fts_window_1w_tilt@orange
   event-on-change-reading state,battery
   expert     1_allReg
   firmware   2.4
   group      Fenster
   model      HM-SEC-RHS
   peerIDs    00000000,30260403,
   room       StevensZimmer
   serialNr   LEQ1252023
   subType    threeStateSensor
   userattr   AlleFenster AlleFenster_map Fenster FensterKinZimSteven FensterKinZimSteven_map FensterSuedWest FensterSuedWest_map structexclude winOpenMaxTrigger winOpenName winOpenTimer winOpenTimer2 winOpenType:Fenster,Türe
   winOpenMaxTrigger 3
   winOpenTimer 00:20:00
   winOpenTimer2 00:10:00
   winOpenType Fenster



Bitte schön

Ich habe mir das nochmals angeschaut. Im Log steht, dass aus tilted OPEN zurueck geliefert wurde. Kannst du das mit tilted bitte nochmals testen? Pruefe bitte eine Abfrage sofort nachdem in FHEM tilted steht und dann 1 Minute spaeter nochmals.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Chillkroete1206

Zitat von: dominik am 06 Mai 2019, 19:16:43
Kannst du bitte beschreiben was du genau gemacht hast? Ich wuerde das gernein die FAQs mit aufnehmen. Danke.

Ich habe ne ganze Weile rumprobiert, teilweise ohne genau zu verstehen, was ich mache :D Ich vermute (allerdings ohne Gewähr!), dass folgendes geholfen hat:

- Node_Modules Ordner (/usr/lib/node_modules/gassistant-fhem/node_modules) gelöscht. Weiß nicht ob das nötig war, danach war npm aber erstmal in den Fritten.
sudo rm -r /usr/lib/node_modules/gassistant-fhem/node_modules

- Node.js deinstallieren
sudo apt-get -purge nodejs #ggf. tut es uninstall ebenfalls

- Node.js (inkl. npm) erneut installieren
sudo apt-get install nodejs

Ist alles aus dem Kopf (insbesondere der Code). Eine Überprüfung inkl. Feedback wäre also hilfreich.

Viele Grüße!

CoolTux

Zitat von: dominik am 06 Mai 2019, 19:23:01
Ich habe mir das nochmals angeschaut. Im Log steht, dass aus tilted OPEN zurueck geliefert wurde. Kannst du das mit tilted bitte nochmals testen? Pruefe bitte eine Abfrage sofort nachdem in FHEM tilted steht und dann 1 Minute spaeter nochmals.

Klappt jetzt. Danke Dir.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Chillkroete1206

Hallo zusammen,

ich suche grade vergeblich die die Möglichkeit neben dem Alias einen eigenen Namen in Google Home zu vergeben. Laut Wiki wird dies über assistantName bzw. gassistantName geregelt. Ich kann diese Attribute allerding bei meinen Dummy Switches (subType switch) in FHEM nicht finden. Wie kann ich diese zuordnen?

Danke und Gruß!

Tabularasa

Servus. Ich habe von Xiaomi diese Fenster Kontakte. Bekomme folgende Meldung

gassistant-fhem-lastServerError
No mappings (e.g. on/off) found for Fenster_EG_WZ

Hier noch das list vom device
Internals:
   CHANGED   
   DEVICETOPIC Fenster_EG_WZ
   FUUID      5c430257-f33f-77cb-84de-b389158e7f2c1d3c
   IODev      MQTT
   LASTInputDev MQTT
   MQTT_MSGCNT 8
   MQTT_TIME  2019-05-06 20:11:11
   MSGCNT     8
   NAME       Fenster_EG_WZ
   NR         201
   STATE      closed
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-05-06 20:11:11   battery         91
     2019-05-06 20:11:11   contact         true
     2019-05-06 20:11:11   linkquality     94
     2019-05-06 20:11:11   voltage         2985
Attributes:
   DbLogExclude .*
   IODev      MQTT
   alias      Wohnzimmerfenster
   devStateIcon open:fts_window_1w_open@red closed:fts_window_1w@green
   event-on-change-reading contact
   eventMap   true:closed false:open
   group      Fenster
   icon       fts_window_1w_open
   model      MCCGQ11LM
   readingList zigbee_pi:zigbee2mqtt/0x00158d********:.* { json2nameValue($EVENT) }
   room       Wohnzimmer
   stateFormat contact

Ich dachte, dass durch eventMap das geändert wird. Wobei das reading auch nicht closed anzeigt. Sollte ich da erst nochmal ran oder kannst du auch auf true abfragen? Danke

dominik

Zitat von: Chillkroete1206 am 06 Mai 2019, 20:31:07
Hallo zusammen,

ich suche grade vergeblich die die Möglichkeit neben dem Alias einen eigenen Namen in Google Home zu vergeben. Laut Wiki wird dies über assistantName bzw. gassistantName geregelt. Ich kann diese Attribute allerding bei meinen Dummy Switches (subType switch) in FHEM nicht finden. Wie kann ich diese zuordnen?

Danke und Gruß!

Diese Attribute werden eigentlich beim Starten von gassistant-fhem in global hinterlegt. Vielleicht musst du einmalig noch FHEM neu starten, damit die Attribute auch angezeigt werden - bin ich mir jetzt nicht sicher.

Zitat von: Tabularasa am 06 Mai 2019, 20:34:22
Servus. Ich habe von Xiaomi diese Fenster Kontakte. Bekomme folgende Meldung

gassistant-fhem-lastServerError
No mappings (e.g. on/off) found for Fenster_EG_WZ

Hier noch das list vom device
Internals:
   CHANGED   
   DEVICETOPIC Fenster_EG_WZ
   FUUID      5c430257-f33f-77cb-84de-b389158e7f2c1d3c
   IODev      MQTT
   LASTInputDev MQTT
   MQTT_MSGCNT 8
   MQTT_TIME  2019-05-06 20:11:11
   MSGCNT     8
   NAME       Fenster_EG_WZ
   NR         201
   STATE      closed
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-05-06 20:11:11   battery         91
     2019-05-06 20:11:11   contact         true
     2019-05-06 20:11:11   linkquality     94
     2019-05-06 20:11:11   voltage         2985
Attributes:
   DbLogExclude .*
   IODev      MQTT
   alias      Wohnzimmerfenster
   devStateIcon open:fts_window_1w_open@red closed:fts_window_1w@green
   event-on-change-reading contact
   eventMap   true:closed false:open
   group      Fenster
   icon       fts_window_1w_open
   model      MCCGQ11LM
   readingList zigbee_pi:zigbee2mqtt/0x00158d********:.* { json2nameValue($EVENT) }
   room       Wohnzimmer
   stateFormat contact

Ich dachte, dass durch eventMap das geändert wird. Wobei das reading auch nicht closed anzeigt. Sollte ich da erst nochmal ran oder kannst du auch auf true abfragen? Danke

Wird all das was du gepostet hast automatisch erstellt, oder hast du da was konfiguriert? Wenn ich es hinzufuege, moechte ich naemlich, dass es fuer alle sofort funktioniert und man nicht noch was konfigurieren muss.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tabularasa

hmm... die Attribute habe ich fast alle selbst konfiguriert ::) kann ich denn ein state Reading hinzufügen das "open closed" hat oder wie kann ich es darauf bringen? so dass du nix ändern musst und der Kontakt halt nicht "true false" liefert. Im Inernal liefert ja STATE closed

DerRecke

Zitat von: dominik am 05 Mai 2019, 22:18:49
[...]
@DerRecke, wie amenomade schon geschrieben hat, poste bitte den Output von gassistant-fhem wenn du es auf der Konsole startest.


root@raspberrypi:/usr/local/lib/node_modules/gassistant-fhem/bin# ./gassistant-fhem
Ungültiger Maschinenbefehl


Das ist wahrscheinlich der Grund warum das Log File leer ist....

dominik

Zitat von: Tabularasa am 06 Mai 2019, 20:55:18
hmm... die Attribute habe ich fast alle selbst konfiguriert ::) kann ich denn ein state Reading hinzufügen das "open closed" hat oder wie kann ich es darauf bringen? so dass du nix ändern musst und der Kontakt halt nicht "true false" liefert. Im Inernal liefert ja STATE closed

Starte bitte mal gassistant-fhem neu, wenn die Attribute dann nicht automatisch da sind, dann stimmt etwas nicht.

Du kannst ein Attribute subType = threeStateSensor und ein Reading contact = open/closed machen, dann funktioniert es. Wie gesagt, mir waere aber lieber es funktioniert out of the Box ohne etwas 'umzubiegen'.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: DerRecke am 06 Mai 2019, 20:59:55

root@raspberrypi:/usr/local/lib/node_modules/gassistant-fhem/bin# ./gassistant-fhem
Ungültiger Maschinenbefehl


Das ist wahrscheinlich der Grund warum das Log File leer ist....

Installiere bitte nodejs neu und probier es dann nochmals.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tabu

Zitat von: dominik am 20 April 2019, 18:08:39
@Tabu, das ist ja cool. Ich wusste nicht, dass die einen Temperaturwert haben. Das hat Xiaomi bislang verborgen. Ich werde es beim naechsten Update anpassen, damit es richtig angelegt wird.

Hallo Dominik,
hast du dir das schon einmal anschauen können? Bei mir werden leider noch Thermostate angelegt und bei der Frage ob die Fenster/Türen geschlossen sind quittiert mir Tante Google, dass das Gerät noch nicht eingerichtet ist. In der Homeapp sind sie auch noch als Thermostate aufgeführt. Was nervig ist, da er mir jetzt die Temperaturen mehrfach pro Raum ansagt, da ich dort auch richtige Thermostate habe.

Vielen Dank
Tabu

DerRecke

#837
Hallo Dominik,

habe node von https://nodejs.org/en/download/ installiert. Habe ich entfernt und dann mit

root@raspberrypi:/home/pi# apt install nodejs npm

neu installiert.

Danach lief die Installation von gassistant leider nicht fehlerfrei (obwohl ich das entsprechende Verzeichnis vorher leerte:

root@raspberrypi:/home/pi# sudo npm install -g gassistant-fhem --unsafe-perm
(node:13272) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
npm ERR! tar.unpack untar error /root/.npm/lodash/4.17.11/package.tgz
npm ERR! Error: Method Not Allowed
npm ERR!     at errorResponse (/usr/share/npm/lib/cache/add-named.js:260:10)
npm ERR!     at /usr/share/npm/lib/cache/add-named.js:120:12
npm ERR!     at saved (/usr/share/npm/node_modules/npm-registry-client/lib/get.js:167:7)
npm ERR!     at FSReqWrap.oncomplete (fs.js:135:15)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 4.14.98+
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "-g" "gassistant-fhem" "--unsafe-perm"
npm ERR! cwd /home/pi
npm ERR! node -v v8.11.1
npm ERR! npm -v 1.4.21
npm ERR! code E405
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/pi/npm-debug.log
npm ERR! not ok code 0


Im zweiten Anlauf nodejs deinstalliert und von der original Seite nochmal installiert und dann gassistant mit erfolg installiert:

root@raspberrypi:/home/pi# apt remove nodejs npm
[...]
root@raspberrypi:/home/pi/Downloads/node-v10.15.3-linux-armv6l# cp -R * /usr/local/

root@raspberrypi:/# node -v
v10.15.3
root@raspberrypi:/# npm -v
6.4.1

root@raspberrypi:/# npm install -g gassistant-fhem --unsafe-perm
/usr/local/bin/gassistant-fhem -> /usr/local/lib/node_modules/gassistant-fhem/bin/gassistant-fhem

> grpc@1.20.0 install /usr/local/lib/node_modules/gassistant-fhem/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/usr/local/lib/node_modules/gassistant-fhem/node_modules/grpc/src/node/extension_binary/node-v64-linux-arm-glibc/grpc_node.node" is installed via remote
+ gassistant-fhem@1.3.6
added 208 packages from 126 contributors in 273.166s


Danach kommt wieder die gleiche Fehlermeldung auf der Konsole:

root@raspberrypi:/# /usr/local/lib/node_modules/gassistant-fhem/bin/gassistant-fhem
Ungültiger Maschinenbefehl


Zwischen Start von gassistant und der Meldung vergehen übrigens ca. 10 sec.

Jetzt noch ein paar Infos zu meinem System:

root@raspberrypi:/# cat /sys/firmware/devicetree/base/model
Raspberry Pi Model B Plus Rev 1.2

root@raspberrypi:/# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

dominik

Zitat von: Tabu am 06 Mai 2019, 22:08:49
Hallo Dominik,
hast du dir das schon einmal anschauen können? Bei mir werden leider noch Thermostate angelegt und bei der Frage ob die Fenster/Türen geschlossen sind quittiert mir Tante Google, dass das Gerät noch nicht eingerichtet ist. In der Homeapp sind sie auch noch als Thermostate aufgeführt. Was nervig ist, da er mir jetzt die Temperaturen mehrfach pro Raum ansagt, da ich dort auch richtige Thermostate habe.

Vielen Dank
Tabu

Gerade eingespielt, bitte ein reload machen und kurz warten bis die Aenderungen bei Google angekommen sind.

@DerRecke, bekommst du die selbe Fehlermeldung auch wenn du es als normaler User ausfuehrst? Pruefe bitte auch node -v mit einem normalen User (pi).
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Fuer alle zur Info - nachdem gerade die Google I/O laeuft, gibt es ein paar schoene Updates von Google :)

16 neue Device Types - hier die interessanten:
- DOOR
- WINDOW
- GARAGE

Hier die gesamte Liste: https://developers.google.com/actions/smarthome/guides/

...und neue Traits:
- ArmDisarm
- LockUnlock
- Timer (duerfte cool sein, damit sollte auch ein "Schalte das Licht fuer 30 Minuten ein." funktionieren)

Und hier die Traits Liste: https://developers.google.com/actions/smarthome/traits/

Noch eine interessante Neuerung. Google arbeitet an einem SDK welches alle Befehle ohne Cloud ausfuehren kann.

Der gesamte Blogeintrag dazu ist hier zu finden:
https://developers.googleblog.com/2019/05/Actions-on-Google-at-IO-2019.html


Und wann kommt das alles in FHEM Connect? :)
Die Device Types kann ich schnell integrieren, sollte die naechsten Tage erledigt sein. Die 3 Traits werden etwas laenger dauern, wobei der Timer Trait wohl am meisten Zeit in Anspruch nehmen wird.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik