39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

dominik

Stimmt, beim reload muss ich die Fehler noch zurueck setzen. Danke!

Syntax:
{
  "StartStopZones": {
          "cmds": ["Wohnzimmer:clean_segment 16","Schlafzimmer:clean_segment 17"],
          "availableZones": ["Wohnzimmer", "Schlafzimmer"]
        }
}


Mit availableZones gibst du die moeglichen Zonen vor und in cmds wird dann je nach Zone der Befehle dahinter eingegeben.
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 09 Mai 2020, 19:40:48
Frage, was haltet ihr von diesem devStateIcon als default:
{ my $error = ReadingsVal($name,"gassistant-fhem-lastServerError","none") eq "none"?"10px-kreis-gruen":"10px-kreis-rot";; my $onoff = ReadingsVal($name, "gassistant-fhem-connection", "disconnected") eq "connected"?"control_on_off\@green":"control_on_off\@red";; "<div><a>".FW_makeImage($error)."</a> <a href=\"/fhem?cmd.dummy=set $name reload&XHR=1\">".FW_makeImage("audio_repeat", "reload")."</a><a href=\"/fhem?cmd.dummy=set $name restart&XHR=1\">&nbsp;&nbsp;".FW_makeImage($onoff, "restart")."</a></div>"}
obige Zeile beim Attribut devStateIcon einfuegen.

1. Icon zeigt an ob ein Error vorliegt.
2. Icon erlaubt einen reload
3. Icon macht einen restart des Prozesses

Wenn es fuer euch sinnvoll erscheint, wuerde ich das als Standard hinterlegen.
Find ich gut.
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

ruN

Zitat von: dominik am 05 Mai 2020, 17:32:37
@ruN,
bitte poste die Ausgabe von jsonlist2 DEVICE, dann kann ich das integrieren.

Hallo Dominik,

hier der Auszug vom frisch angelegten Device:

{
  "Arg":"HmIP_BWTH_000C98A9A9874E",
  "Results": [
  {
    "Name":"HmIP_BWTH_000C98A9A9874E",
    "PossibleSets":"Boost:noArg Auto:noArg Manual:noArg Holiday:noArg off:noArg on:noArg clear config defaults:noArg control datapoint rpcparameter devstate toggle:noArg attrTemplate:?,speechcontrol_general_naming_master_template",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev ccuaggregate:textField-long ccucalculate:textField-long ccuflags:multiple-strict,ackState,logCommand,nochn0,trace ccureadingfilter:textField-long ccureadingformat:name,namelc,address,addresslc,datapoint,datapointlc ccureadingname:textField-long ccureadings:0,1 ccuget:State,Value ccuscaleval ccuSetOnChange ccuverify:0,1,2 disable:0,1 hmstatevals:textField-long statevals substexcl substitute:textField-long statechannel statedatapoint controldatapoint stripnumber peer:textField-long 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 devStateIcon:textField-long devStateStyle gassistantName:textField genericDeviceType:ac_unit,aircondition,airfreshener,airpurifier,awning,bathtub,bed,blender,blinds,boiler,camera,carbon_monoxide_detector,charger,closet,coffee_maker,coffeemaker,cooktop,curtain,dehumidifier,dehydrator,dishwasher,door,drawer,dryer,fan,faucet,fireplace,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,securitysystem,settop,sensor,shutter,shower,smoke_detector,sousvide,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": "000C98A9A9874E",
      "FUUID": "5eb95437-f33f-2329-3365-2cfac518f28eb0ab",
      "NAME": "HmIP_BWTH_000C98A9A9874E",
      "NR": "943",
      "STATE": "8.0",
      "TYPE": "HMCCUDEV",
      "ccuaddr": "000C98A9A9874E",
      "ccudevstate": "active",
      "ccuif": "HmIP-RF",
      "ccuname": "HmIP-BWTH 000C98A9A9874E",
      "ccutype": "HmIP-BWTH",
      "channels": "13",
      "statevals": "devstate"
    },
    "Readings": {
      "0.CONFIG_PENDING": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "0.DUTY_CYCLE": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "0.RSSI_DEVICE": { "Value":"-53", "Time":"2020-05-11 15:34:04" },
      "0.RSSI_PEER": { "Value":"-58", "Time":"2020-05-11 15:34:04" },
      "0.UNREACH": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "1.ACTIVE_PROFILE": { "Value":"1", "Time":"2020-05-11 15:34:05" },
      "1.ACTUAL_TEMPERATURE": { "Value":"22.8", "Time":"2020-05-11 15:34:05" },
      "1.ACTUAL_TEMPERATURE_STATUS": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.BOOST_MODE": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.BOOST_TIME": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.FROST_PROTECTION": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.HEATING_COOLING": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.HUMIDITY": { "Value":"42", "Time":"2020-05-11 15:34:05" },
      "1.HUMIDITY_STATUS": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.PARTY_MODE": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.QUICK_VETO_TIME": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.SET_POINT_MODE": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.SET_POINT_TEMPERATURE": { "Value":"8.0", "Time":"2020-05-11 15:34:05" },
      "1.SWITCH_POINT_OCCURED": { "Value":"0", "Time":"2020-05-11 15:34:05" },
      "1.WINDOW_STATE": { "Value":"closed", "Time":"2020-05-11 15:34:05" },
      "8.EMERGENCY_OPERATION": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "8.FROST_PROTECTION": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "8.HUMIDITY_ALARM": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "8.STATE": { "Value":"0", "Time":"2020-05-11 15:34:04" },
      "control": { "Value":"8.0", "Time":"2020-05-11 15:34:05" },
      "hmstate": { "Value":"8.0", "Time":"2020-05-11 15:34:05" },
      "state": { "Value":"8.0", "Time":"2020-05-11 15:34:05" }
    },
    "Attributes": {
      "IODev": "HomeMatic",
      "ccureadingfilter": ".*",
      "controldatapoint": "1.SET_POINT_TEMPERATURE",
      "eventMap": "/datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.CONTROL_MODE 2:Holiday/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5:on/",
      "genericDeviceType": "thermostat",
      "room": "Homematic",
      "statedatapoint": "1.SET_POINT_TEMPERATURE",
      "stripnumber": "1",
      "substexcl": "control",
      "substitute": "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
      "webCmd": "control:Boost:Auto:Manual:Holiday:on:off",
      "widgetOverride": "control:slider,4.5,0.5,30.5,1"
    }
  }  ],
  "totalResultsReturned":1
}

dominik

#1893
Bitte um Pruefung ob das so passt:
- Boost einschalten => set device datapoint 1.BOOST_MODE true
- Boost ausschalten => set device datapoint 1.BOOST_MODE false
- Auto/Manual/Off Mode jeweils mit dem entsprechenden Command - wo kann der aktuelle Status abgelesen werden?
- Temperatur setzen => set device datapoint 1.SET_POINT_TEMPERATURE XX.X
- Temperatur gesetzt auslesen => Reading 1.SET_POINT_TEMPERATURE
- Temperatur aktuell auslesen => Reading 1.ACTUAL_TEMPERATURE
- Luftfeuchtigkeit auslesen => Reading 1.HUMIDITY
- Online/Offline => 0.UNREACH = 0 online, wenn 1 dann offline?

Ich denke das waere alles, oder?


---
Ich habe noch ein Update vom Client gemacht (3.0.1). Dieser verhindert nun mithilfe eines PID Files, dass mehrere gassistant-fhem Instanzen parallel laufen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

ruN


Hallo Dominik,

ich habe mal getestet:
Zitat von: dominik am 11 Mai 2020, 21:52:18
- Boost einschalten => set device datapoint 1.BOOST_MODE true
das passt genau so
Zitat von: dominik am 11 Mai 2020, 21:52:18
- Boost ausschalten => set device datapoint 1.BOOST_MODE false
das passt genau so
Zitat von: dominik am 11 Mai 2020, 21:52:18
- Auto/Manual/Off Mode jeweils mit dem entsprechenden Command - wo kann der aktuelle Status abgelesen werden?
der aktuelle Status kann über 1.SET_POINT_MODE ausgelesen werden. Dabei ist 0=auto, 1=manuell, 2=holiday. Holiday funktioniert über FHEM allerdings nicht, da dies eine Eingabe einer Start und Ende Zeit über die CCU erfordert. Off entspricht dem setzen von 1.SET_POINT_TEMPRATURE=5 und ON entspricht 1.SET_POINT_TEMPRATURE=30.
Zitat von: dominik am 11 Mai 2020, 21:52:18
- Temperatur setzen => set device datapoint 1.SET_POINT_TEMPERATURE XX.X
- Temperatur gesetzt auslesen => Reading 1.SET_POINT_TEMPERATURE
- Temperatur aktuell auslesen => Reading 1.ACTUAL_TEMPERATURE
- Luftfeuchtigkeit auslesen => Reading 1.HUMIDITY
Habe ich getestet, passt so.
Zitat von: dominik am 11 Mai 2020, 21:52:18
- Online/Offline => 0.UNREACH = 0 online, wenn 1 dann offline?
Das konnte ich nicht testen, hast du einen Tipp wie ich den Unreach Status über die CCU manipulieren kann? Aber da das Device bei 0.UNREACH=0 erreichbar ist gehe ich auch davon aus.

Darüber hinaus gibt es noch:

10.STATE=1 wenn das Heizventil geöffnet und 10.STATE=0 wenn das Heizventil geschlossen ist. Wäre als Reading vieleicht interessant.

1.ACTIVE_PROFILE liefert und setzt die Wochenprofile aus der CCU. Es gibt die Wochenprofile 1 bis 6. getestet habe ich mit:
set DEVICE datapoint 1.ACTIVE_PROFILE 1

Falls es hilfreich ist kann ich noch einen Screenshot aus der CCU anhängen.

Danke schon mal soweit für deine Mühe.

presskopf

Seit meinem Update auf 3.0.0
https://forum.fhem.de/index.php/topic,96696.msg1044958.html#msg1044958
habe ich ein komisches Phänomen:

Der Google Home exekutiert nach einer "gewissen Zeit" einfach keine Befehle mehr.  Die Befehle werden bestätigt aber es passiert nix.
Auf den Befehl "Geräte synchroniseren" sagt GH nun "In Ordnung, dieses Gerät wurde aktualisiert." Früher gab es einen Hinweis auf fhem-connect.

Erst nach einem Neustart des gassistant in fhem läuft es wieder rund - bis zum nächsten Abbruch.
Ich müsste die Zeit bis zum Abbruch mal bestimmen; gefühlt ist es täglich.

Habe ich etwas beim Upgrade übersehen?
Debian Jessie auf Rpi3

ii  nodejs                                13.13.0-1nodesource1              armhf        Node.js event-based server-side javascript engine
ii  nodejs-doc                            8.11.1~dfsg-2~bpo9+1              all          API documentation for Node.js, the javascript platform


Internals:
   FD         29
   FUUID      5c5e274a-f33f-bfeb-f268-76a5ed183cec2bf4
   LAST_START 2020-05-13 00:23:01
   LAST_STOP  2020-05-13 00:23:01
   NAME       gassistant
   NOTIFYDEV  global,global:npmjs.*gassistant-fhem.*
   NR         925
   NTFY_ORDER 50-gassistant
   PID        31227
   STARTS     4
   STATE      running /usr/bin/gassistant-fhem
   TYPE       gassistant
   currentlogfile ./log/gassistant-2020-05-13.log
   logfile    ./log/gassistant-%Y-%m-%d.log
   CoProcess:
     cmdFn      gassistant_getCMD
     name       gassistant-fhem
     state      running /usr/bin/gassistant-fhem
   READINGS:
     2020-05-13 00:23:01   gassistant-fhem running /usr/bin/gassistant-fhem
     2020-05-13 00:23:14   gassistant-fhem-connection connected
     2020-05-13 00:29:40   gassistant-fhem-googleSync Google SYNC finished
     2020-05-13 00:23:08   gassistant-fhem-lastServerError none
     2020-05-13 00:23:13   gassistant-fhem-lasterror none
     2020-05-13 00:23:11   gassistant-fhem-localHome inactive
     2020-04-28 21:59:09   gassistant-fhem-uid google-oauth2|114632973571234567890
     2020-05-13 00:29:40   gassistant-fhem-usedFeatureLevel 3
     2020-05-13 00:23:08   gassistant-fhem-version 3.0.0
     2020-05-13 00:23:08   gassistant-fhem-versionAvailable 3.0.1
     2020-05-13 00:23:08   gassistantFHEM.loginURL <html><a href="https://fhemconnector.eu.auth0.com/authorize?audience=https://europe-west1-fhem-ga-connector.cloudfunctions.net/&scope=offline_access%20openid%20profile&response_type=code&client_id=idzeugs&code_challenge=challengezeugs&code_challenge_method=S256&redirect_uri=https://europe-west1-fhem-ga-connector.cloudfunctions.net/codelanding/start" target="_blank">Click here to login (new window/tab)</a><br></html>
     2020-04-28 21:59:07   gassistantFHEM.refreshToken crypt:tokenzeuts
Attributes:
   devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
   gassistantFHEM-config ./gassistant-fhem.cfg
   gassistantFHEM-log ./log/gassistant-%Y-%m-%d.log
   gassistantName fhem
   room       GoogleAssistant,switches
   stateFormat gassistant-fhem


dominik

@presskopf, poste oder schick mir bitte noch das gassistant log (/opt/fhem/log/gassistant-*).

@run, werde heute Abend mal den ersten Teil implementieren.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

presskopf

log von gestern und heute ist im Anhang.
Um 00:23:00 hatte ich den gassistant neu gestartet, danach war alles wieder i.O. Jetzt gerade läuft es auch noch.

Das Passwort für den Anhang bekommst Du per PN.

VG
Matthias

dominik

@run, alles integriert, bitte mal testen (reload)
- stelle die Temperatur auf ..
- schalte boost von DEVICE ein/aus
- stelle das DEVICE auf manuell/auto/off
- wie hoch ist die Luftfeuchtigkeit?
- Ist das Thermostat offen? (klingt komisch, bezieht sich auf das Ventil)
- Offline Fehlermeldung wenn UNREACH=1

Wie ist das mit den Wochenprofilen zu verstehen? Wuerde man da sagen, 'stelle das Wochenprofil auf 1', oder was fuer einen Namen tragen die Profile?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

ruN

Zitat von: dominik am 13 Mai 2020, 20:15:17
@run, alles integriert, bitte mal testen (reload)
- stelle die Temperatur auf ..
- schalte boost von DEVICE ein/aus
- stelle das DEVICE auf manuell/auto/off
- wie hoch ist die Luftfeuchtigkeit?
- Ist das Thermostat offen? (klingt komisch, bezieht sich auf das Ventil)
- Offline Fehlermeldung wenn UNREACH=1

Wie ist das mit den Wochenprofilen zu verstehen? Wuerde man da sagen, 'stelle das Wochenprofil auf 1', oder was fuer einen Namen tragen die Profile?

Hallo Dominik,

ich bekomme nun, sobald ich per google zugreife:
[13.5.2020, 20:30:30] GOOGLE MSG RECEIVED: {"msg":"LOG_ERROR","ts":1589394630187,"log":"HmIP_BWTH_000C98A9A9874E:Error: reading 1.SET_POINT_MODE not found in reading array: {\"0_UNREACH\":\"false\",\"10_STATE\":\"false\",\"1_ACTUAL_TEMPERATURE\":\"23.4\",\"1_BOOST_MODE\":\"0\",\"1_HUMIDITY\":\"40\",\"1_SET_POINT_MODE\":\"1\",\"1_SET_POINT_TEMPERATURE\":\"18.0\",\"state\":\"18.0\"}"}
[13.5.2020, 20:30:30] Received firestore2fhem: {"msg":"LOG_ERROR","ts":1589394630187,"log":"HmIP_BWTH_000C98A9A9874E:Error: reading 1.SET_POINT_MODE not found in reading array: {\"0_UNREACH\":\"false\",\"10_STATE\":\"false\",\"1_ACTUAL_TEMPERATURE\":\"23.4\",\"1_BOOST_MODE\":\"0\",\"1_HUMIDITY\":\"40\",\"1_SET_POINT_MODE\":\"1\",\"1_SET_POINT_TEMPERATURE\":\"18.0\",\"state\":\"18.0\"}"}

gruß

dominik

Zitat von: presskopf am 13 Mai 2020, 11:25:22
log von gestern und heute ist im Anhang.
Um 00:23:00 hatte ich den gassistant neu gestartet, danach war alles wieder i.O. Jetzt gerade läuft es auch noch.

Das Passwort für den Anhang bekommst Du per PN.

VG
Matthias

Ich habe mir die Logs genauer angeschaut, finde aber leider keinerlei Infos die mir bei der Fehlersuche helfen. Tritt das Problem regelmaessig auf?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: ruN am 13 Mai 2020, 20:36:51
Hallo Dominik,

ich bekomme nun, sobald ich per google zugreife:
[13.5.2020, 20:30:30] GOOGLE MSG RECEIVED: {"msg":"LOG_ERROR","ts":1589394630187,"log":"HmIP_BWTH_000C98A9A9874E:Error: reading 1.SET_POINT_MODE not found in reading array: {\"0_UNREACH\":\"false\",\"10_STATE\":\"false\",\"1_ACTUAL_TEMPERATURE\":\"23.4\",\"1_BOOST_MODE\":\"0\",\"1_HUMIDITY\":\"40\",\"1_SET_POINT_MODE\":\"1\",\"1_SET_POINT_TEMPERATURE\":\"18.0\",\"state\":\"18.0\"}"}
[13.5.2020, 20:30:30] Received firestore2fhem: {"msg":"LOG_ERROR","ts":1589394630187,"log":"HmIP_BWTH_000C98A9A9874E:Error: reading 1.SET_POINT_MODE not found in reading array: {\"0_UNREACH\":\"false\",\"10_STATE\":\"false\",\"1_ACTUAL_TEMPERATURE\":\"23.4\",\"1_BOOST_MODE\":\"0\",\"1_HUMIDITY\":\"40\",\"1_SET_POINT_MODE\":\"1\",\"1_SET_POINT_TEMPERATURE\":\"18.0\",\"state\":\"18.0\"}"}

gruß

Sollte nun funktionieren!

Ich habe das Update mit devStateIcon eingecheckt und ein Google Assistant Icon auch gleich mit aufgenommen :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

hermann1514

Nabend.
Ich habe mal eine Frage.
Ich habe einen sonoff mit Tasmota und einem Temperatursensor.
Ist es möglich dieses Reading per Sprache abzufragen?

Danke für Eure Hilfe.
Gruß Hermann

smoki3

#1903
Ich habe das nun auch mal mit meinem Xiaomi Roboter versucht:

{
  "StartStopZones": {
          "cmds": ["Wohnzimmer:clean_segment 16","Schlafzimmer:clean_segment 4","Bad:clean_segment 1","Küche:clean_segment 3","Küche:clean_segment 2"],
          "availableZones": ["Wohnzimmer","Schlafzimmer","Bad","Küche","Flur"]
        }
}


Was muss ich denn Google dazu sagen damit der auf die Zonen anspricht?

UPDATE: Reinige "Küche, Wohnzimmer funktioniert"

smoki3

Bei mir wird immer gesagt, dass der Saugerbehälter voll ist obwohl ich ihn geleert habe. Wie wird das resetet?