39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

AlexBV

Hallo,

ich bekomme seit dem letzten Update vor ein paar Tagen sporadisch diese Meldung beim Anmelden im Web Interface:

Messages collected while initializing FHEM:
configfile: GoogleAssistant_dummy already defined, delete it first

Autosave deactivated


Wie kann man das beheben?

dominik

Hi,
ist bei dir das gassistant Device einen Raum zugeordnet?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

AlexBV

#992
Zitat von: dominik am 25 Juni 2019, 18:21:06
Hi,
ist bei dir das gassistant Device einen Raum zugeordnet?

Ja, das sieht so aus und wurde so angelegt (auch der Dummy):

define gAssistant gassistant
attr gAssistant devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
attr gAssistant gassistantFHEM-auth crypt:...
attr gAssistant gassistantFHEM-config ./gassistant-fhem.cfg
attr gAssistant gassistantFHEM-log ./log/gassistant-%Y-%W.log
attr gAssistant room GoogleAssistant
attr gAssistant stateFormat gassistant-fhem
define GoogleAssistant_dummy dummy
attr GoogleAssistant_dummy alias Testlight
attr GoogleAssistant_dummy genericDeviceType light
attr GoogleAssistant_dummy room GoogleAssistant
attr GoogleAssistant_dummy setList on off


Nachtrag:
Ich habe die Sache jetzt noch weiter eingegrenzt. Das Dummy Testlight wird nach dem Löschen bei einem Neustart von FHEM wieder angelegt. Das funktioniert soweit, auch wenn ich den Sinn dahinter nicht nachvollziehen kann. Wird ein neues Device durch autocreate angelegt und FHEM speichert die fhem.cfg ab, kommt es zur besagten Fehlermeldung und Autosave wird deaktiviert. Wie gesagt, es ist vor wenigen Tagen erstmals aufgetreten, ohne dass ich an der gAssistent-Definition etwas geändert habe.

Irgendeine Idee?

dominik

Das sollte so nicht sein. Ich hatte das vor paar Tagen angepasst, Ziel war eigentlich nur, dass neue User ein Testdevice erhalten und damit gleich loslegen können.

Ich schaue mir das später an und melde mich.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Bitte morgen ein Update machen, ich habe die Funktionalitaet vorerst deaktiviert.

Danke dir auf alle Faelle fuer die rasche Meldung des Fehlers!
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Chaos

Ahoi,

ich hab seit gestern das Phänomen, dass die Befehle von FHEM die vom Assistant kommen nicht ausgeführt werden.
Kann mir das Ganze nicht erklären.

Heute morgen das ganze nach dem Update nochmals versucht, aber irgendwas klappt nicht.

Das Device ist dabei egal und das Ausführen von bspw. "set Landroid_Status mowingcmd on" im FhemWeb schaltet das Gerät ein.
Hab auch testweise mal in der gassistant-fhem.cfg die IP mal auf die LAN IP geändert, Ergebnis blieb gleich.

Das Log:
Zitat[2019-6-26 09:04:00] GOOGLE MSG RECEIVED: {"cmd":"set Landroid_Status mowingcmd on","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1561532516747}
[2019-6-26 08:11:54] reportstate: Chaos_PC
[2019-6-26 08:11:53] [FHEM] update reading: Chaos_PC:state = off
[2019-6-26 08:11:51] reportstate: second_pc
[2019-6-26 08:11:50] [FHEM] update reading: second_pc:state = off
[2019-6-26 08:11:06] reportstate: HM_Roll_Terasse
[2019-6-26 08:11:05] [FHEM] update reading: HM_Roll_Terasse:state = open
[2019-6-26 08:11:05] [FHEM] update reading: youtube:state = on
[2019-6-26 08:11:05] [FHEM] update reading: goodnight:state = on
[2019-6-26 08:11:05] [FHEM] update reading: goodmorning:state = off
[2019-6-26 08:11:05] [FHEM] update reading: Zocken:state = off
[2019-6-26 08:11:05] [FHEM] update reading: Zaunlicht:state = aus
[2019-6-26 08:11:05] [FHEM] update reading: TV:state = off
[2019-6-26 08:11:05] [FHEM] update reading: TI9555X1DE:state = Idle
[2019-6-26 08:11:05] [FHEM] update reading: Plex:state = on
[2019-6-26 08:11:05] [FHEM] update reading: Netflix:state = on
[2019-6-26 08:11:05] [FHEM] update reading: Landroid_Status:state = home
[2019-6-26 08:11:05] [FHEM] update reading: second_pc:state = none
[2019-6-26 08:11:05] [FHEM] update reading: HM_Roll_Terasse:state = Initialized
[2019-6-26 08:11:05] [FHEM] update reading: GaragenTor:state = auf
[2019-6-26 08:11:05] [FHEM] update reading: Chaos_PC:state = none
[2019-6-26 08:11:05] [FHEM] update reading: Amazon:state = off
[2019-6-26 08:11:05] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-connection%20connected&XHR=1
[2019-6-26 08:11:03] [FHEM] Supported Google Device Types: aircondition,airfreshener,airpurifier,awning,blinds,boiler,camera,coffeemaker,curtain,dishwasher,door,dryer,fan,fireplace,garage,gate,heater,hood,kettle,light,lock,microwave,outlet,oven,pregola,refrigerator,scene,securitysystem,shutter,shower,sprinkler,switch,thermostat,vacuum,valve,washer,waterheater,window
[2019-6-26 08:11:03] [FHEM] got: 16 results
[2019-6-26 08:11:01] SYNC   FeatureLevel:{"featurelevel":3}
[2019-6-26 08:11:01] SERVER FeatureLevel:{"featurelevel":3,"changelog":"performance optimizations"}
(node:24260) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead
[2019-6-26 08:11:01] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&XHR=1
[2019-6-26 08:11:01] [FHEM] Checking devices and attributes...
[2019-6-26 08:11:01] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-lasterror%20none&XHR=1
[2019-6-26 08:11:01] [FHEM] start connection executed
[2019-6-26 08:11:00] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=GoogleAssistant&XHR=1
[2019-6-26 08:11:00] [FHEM] Fetching FHEM devices...
[2019-6-26 08:11:00] Start Connection and listen for Firebase
[2019-6-26 08:11:00] [FHEM] refreshAllTokens executed
[2019-6-26 08:11:00] Refresh tokens finished. Next refresh in 86400 seconds.
[2019-6-26 08:10:59] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-versionAvailable%202.0.0&XHR=1
[2019-6-26 08:10:59] [FHEM] Found refresh token in reading
[2019-6-26 08:10:59] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-connection%20connecting...&XHR=1
[2019-6-26 08:10:59] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=get%20gassistant%20refreshToken&XHR=1
[2019-6-26 08:10:59] [FHEM] Get refresh token...
[2019-6-26 08:10:59] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20gassistant%20loginURL%20https%3A%2F%2Ffhemconnector.eu.auth0.com%2Fauthorize%3Faudience%3Dhttps%3A%2F%2Feurope-west1-fhem-ga-connector.cloudfunctions.net%2F%26scope%3Doffline_access%2520openid%2520profile%26response_type%3Dcode%26client_id%3DEI0TI2Y0W1743Ico53Nvsg1FsmoZniCC%26code_challenge%3DZsvWJNYG3Ptve4TxZJopqXsmxusg2oQPBi87Bl3nUIA%26code_challenge_method%3DS256%26redirect_uri%3Dhttps%3A%2F%2Feurope-west1-fhem-ga-connector.cloudfunctions.net%2Fcodelanding%2Fstart&XHR=1
[2019-6-26 08:10:59] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-version%202.0.0&XHR=1
[2019-6-26 08:10:59] [FHEM] FHEM Google Assistant device detected: gassistant
[2019-6-26 08:10:59] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dgassistant&XHR=1
[2019-6-26 08:10:53] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1561529453976
[2019-6-26 08:10:53] Fetching FHEM connections...
[2019-6-26 08:10:53] Google Assistant FHEM Connect 2.0.0 started
[2019-6-26 08:10:53] ---

Jemand noch ne Idee?

MfG
Manuel

amenomade

Zeig ein "list" von Landroid_Status
Und die Log ist nicht vollständig
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

dominik

@Chaos, kann es sein, dass auf deinem Client die Uhrzeit falsch eingestellt ist? Ich prüfe nämlich mittlerweile ob der Befehl älter als 5s ist, wenn ja, wird er nicht ausgeführt. Das sieht ganz danach aus.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Chaos

Hi,
Zitat von: dominik am 26 Juni 2019, 17:22:22
@Chaos, kann es sein, dass auf deinem Client die Uhrzeit falsch eingestellt ist? Ich prüfe nämlich mittlerweile ob der Befehl älter als 5s ist, wenn ja, wird er nicht ausgeführt. Das sieht ganz danach aus.
du Genie. Das war es.
Hatte mit den NICs im Server gespielt und das hat den NTP Client wohl ein wenig durcheinander gebracht.

Nach dem korrigieren der Zeit erscheint jetzt auch brav im Log:
Received firestore2fhem...  ;)

Danke
Manuel

dominik

Super, freut mich :) Ich habe nun noch eine Fehlermeldung eingebaut, damit aus dem Log der "Fehler" ersichtlich ist.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Chaos

Zitat von: dominik am 26 Juni 2019, 22:04:07
Super, freut mich :) Ich habe nun noch eine Fehlermeldung eingebaut, damit aus dem Log der "Fehler" ersichtlich ist.
Das wäre natürlich optimal. Könnte ich dann "abfangen" und ne Pushnachricht schicken, dann weiß ich direkt dass die Uhrzeit nicht stimmt  ;D

dominik

Meinst du, dass das wirklich so oft vorkommt? Weil wenn ja, dann müsste ich eher die Zeit von Server und Client ab und zu synchronisieren um auch bei falschen Uhrzeiten den Betrieb sicherzustellen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Chaos

Nee glaub nicht dass das häufig passiert.

Aber falls du Lust hast, ekläre bitte mal kurz wie die Sache an sich funktioniert...

Mein Ghome Gerät (home Mini oder so) bekommt die Anfrage und sendet dann das Kommando mit Timestamp zu gassisstant.pm?
Und wenn beim gassistant ein Timediff von 5s ist, ignoriert gassistant das (bzw. loggt das jetzt in der neuen Version)?

So stelle ich mir das gerade vor.


dominik

Google Home -> Google Actions Dienst -> FHEM Connect Dienst -> gassistant-fhem
Es kann vorkommen, dass gassistant-fhem aus irgendeinem Grund nicht erreichbar ist, das erfahre ich aber leider nicht sofort beim FHEM Connect Dienst und daher landet die Nachricht in der Queue. Ohne Timestamp für diese Nachricht, kann es sein, dass der User den Befehl weitere 10x ausführt und es tut sich weiterhin nichts. Ist gassistant-fhem danach aber wieder erreichbar, würden alle 10 Befehle ausgeführt werden. Das hatten wir hier schon bei einem User :) und man wundert sich dann wieso das Licht plötzlich an und aus geht.
Mit Timestamp kann ich alle alten Nachrichten verwerfen und nur die wirklich zu diesem Zeitpunkt aktuellen werden auch ausgeführt.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

a-p-s

Hallo zusammen,

nachdem die Basis-Geräte alle recht gut funktionieren, bin ich gerade dabei die etwas komplexeren Sachen einzubinden. Eines davon sind meine Warmwasser- und Heizungskomponenten. Ich würde das gerne über einen dummy machen, da ich recht viel eigene Steuerungslogik habe. Als Modes würde ich gerne auto, heat und eco nutzen sowie die Möglichkeit, es auszuschalten.

Ich habe es es geschafft, das das in der Google Home-App als Thermostat erscheint, allerdings nur mit den Auswahlmöglichkeit heizen und aus (nicht auto/eco). Wenn ich dann "off" wähle, so erhalte ich in gassistant die Fehlermeldung "TypeError: Cannot read property 'characteristic_type' of undefined".

Hat jemand eine Ahnung, wie ich das hinbekommen kann?

Hier ist der JSON-Dump:


{
  "Arg":"warmwasser_gassistant",
  "Results": [
  {
    "Name":"warmwasser_gassistant",
    "PossibleSets":"desired-temp:slider,20,5,65 on off mode:heat,auto,eco",
    "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 DbLogExclude DbLogInclude always_hidden assistantName class cmdIcon devStateIcon devStateIcon:textField-long devStateStyle event-on-change-reading event-on-update-reading gassistantName:textField genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,aircondition,airpurifier,camera,coffeemaker,dishwasher,dryer,fan,kettle,oven,refrigerator,scene,sprinkler,vacuum,washer,airfreshener,fireplace,heater,blinds,awning,boiler,curtain,door,gate,hood,microwave,pregola,securitysystem,shutter,shower,valve,waterheater homebridgeMapping:textField-long icon in lc15id mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long realRoom sortby unitFromReading unitFromReading:0,1 webCmd widgetOverride userattr",
    "Internals": {
      "CFGFN": "",
      "FUUID": "5d17a6d1-f33f-3603-e640-4b9347146d2c72bb",
      "NAME": "warmwasser_gassistant",
      "NR": "20356",
      "STATE": "desired-temperature 40",
      "TYPE": "dummy"
    },
    "Readings": {
      "mode": { "Value":"auto", "Time":"2019-06-29 20:24:25" },
      "temperature": { "Value":"41", "Time":"2019-06-30 09:18:44" }
    },
    "Attributes": {
      "assistantName": "Warmwasser",
      "genericDeviceType": "thermostat",
      "mqttPublish": "mode:topic=\"set/appliance/heating/water/thermostatMode\"",
      "mqttSubscribe": "temperature:topic=\"appliance/heating/water/temperature\" mode:topic=\"appliance/heating/water/thermostatMode\"",
      "readingList": "mode desired-temp",
      "realRoom": "Haustechnik",
      "room": "GoogleAssistant",
      "setList": "desired-temp:slider,20,5,65 on off mode:heat,auto,eco"
    }
  }  ],
  "totalResultsReturned":1
}


Grüße,
a-p-s