39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

Tabularasa

#1980
Bin gerade unterwegs. Hab heute es in den assistant Raum getan und danach gab es den Fehler. Hab da noch nicht viel probiert. Vielleicht kannst du mit meiner uid was anfangen. 117...396
War gegen 15:15 heute. Danke

Edit: habe es gerade probiert. Ich sage Stelle Licht auf rot und dann kommt der Fehler
gassistant-fhem-lastServerError
Licht_EG_BadLED:Error: rgb not a number: set ff0000 => NaN


Hier nochmal jsonlist2


{
  "Arg":"Licht_EG_BadLED",
  "Results": [
  {
    "Name":"Licht_EG_BadLED",
    "PossibleSets":"off:noArg on:noArg white:colorpicker,BRI,0,1,100 gain:colorpicker,BRI,0,1,100 rgb:colorpicker,RGB white_on:colorpicker,BRI,0,1,100 gain_on:colorpicker,BRI,0,1,100 rgb_on:colorpicker,RGB effect:select,0,1,2,3 x_update:noArg x_mqttcom on-for-timer toggle off-till-overnight off-till on-till off-for-timer blink on-till-overnight intervals attrTemplate:?,General_Info,MQTT2_CLIENT_general_bridge,MQTT2_IO_ignoreRegexp_basic,MQTT2_IO_ignoreRegexp_homeassistant,speechcontrol_general_naming_master_template,tasmota_basic,tasmota_basic_state_power1,tasmota_1ch+motion+SI7021,tasmota_POW,tasmota_POW_USB_split,tasmota_plug_with_rgbw_split,tasmota_ir,tasmota_rf,tasmota_use_DS18x20_id,tasmota_clear_readings_reset_readingsList_and_reboot,tasmota_set_lowercase_texts_and_state1,tasmota_set_uppercase_texts_and_state1,tasmota_set_power1_state_to_power,tasmota_2channel_split,tasmota_2ch_unified,tasmota_2ch_shutter_invert_1,tasmota_2ch_shutter_invert_0,tasmota_4channel_split,tasmota_3socketUSB_split,tasmota_4ch_unified_basic_text,tasmota_4ch_unified_icon,tasmota_8ch_unified_icon,tasmota_rgb_led_controller,tasmota_rgbw_led,tasmota_rgbcct_light,tasmota_cct_led,tasmota_TuyaMCU_dimmer,shelly1,shelly_announces,shellyplug,shelly1_w_energy_meassuring,shelly1_w_energy_meassuring_washer_example,shelly2_split,shelly25_split,shelly2_roller,shelly25_roller_invert_0,shelly25_roller_invert_1,shelly4pro_split,shelly4pro_unified,shellybulb,shellyht,shellyflood,shelly2rgbw_color,shelly2rgbw_4w_split,shellydimmer,ESPurna_single_relay,eBus_daemon_splitter,ems-esp_heater_device,ems-esp_boiler,ems-esp_thermostat_read-only,ems-esp_thermostat_RC35_type,ems-esp_thermostat_simple,zigbee2mqtt_bridge,wled_controller,go_eCharger,8channel_ethernet_board_split,8channel_ethernet_board_unified,esp_milight_hub_bridge,OpenMQTTGateway_MCU,wallpanel_app,weewx_weather_station,McLighting",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev autocreate:0,1 bridgeRegexp:textField-long devicetopic devPos disable:0,1 disabledForIntervals getList:textField-long imageLink jsonMap:textField-long model periodicCmd readingList:textField-long setExtensionsEvent:1,0 setList:textField-long setStateList event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle 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,ac_unit,bathtub,bed,blender,closet,coffee_maker,cooktop,dehumidifier,dehydrator,drawer,faucet,fryer,grill,humidifier,mop,mower,multicooker,pergola,petfeeder,pressurecooker,radiator,sousvide,standmixer,yogurtmaker,charger,sensor,carbon_monoxide_detector,remotecontrol,settop,smoke_detector,tv,waterpurifier,watersoftener,network,router homebridgeMapping:textField-long icon realRoom:textField sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
    "Internals": {
      "CID": "shellyrgbw2_6F10AE",
      "DEF": "shellyrgbw2_6F10AE",
      "DEVICETOPIC": "Licht_EG_BadLED",
      "FUUID": "5ea9ef87-f33f-77cb-f7cf-b43ca0679e6362fa",
      "LASTInputDev": "MQTT",
      "MQTT_MSGCNT": "3111",
      "MQTT_TIME": "2020-05-24 00:51:18",
      "MSGCNT": "3111",
      "NAME": "Licht_EG_BadLED",
      "NR": "243",
      "STATE": "on",
      "TYPE": "MQTT2_DEVICE"
    },
    "Readings": {
      "blue": { "Value":"255", "Time":"2020-05-24 00:51:18" },
      "effect": { "Value":"0", "Time":"2020-05-24 00:51:18" },
      "fw_ver": { "Value":"20200309-104453/v1.6.0@43056d58", "Time":"2020-05-23 13:26:28" },
      "gain": { "Value":"14", "Time":"2020-05-24 00:51:18" },
      "green": { "Value":"0", "Time":"2020-05-24 00:51:18" },
      "has_timer": { "Value":"false", "Time":"2020-05-24 00:51:18" },
      "id": { "Value":"shellyrgbw2-6F10AE", "Time":"2020-05-23 13:26:28" },
      "ip": { "Value":"192.168.178.89", "Time":"2020-05-23 13:26:28" },
      "ison": { "Value":"true", "Time":"2020-05-24 00:51:18" },
      "mac": { "Value":"ECFABC6F10AE", "Time":"2020-05-23 13:26:28" },
      "mode": { "Value":"color", "Time":"2020-05-24 00:51:18" },
      "new_fw": { "Value":"false", "Time":"2020-05-23 13:26:28" },
      "online": { "Value":"true", "Time":"2020-05-23 13:26:28" },
      "overpower": { "Value":"false", "Time":"2020-05-24 00:51:18" },
      "power": { "Value":"1.22", "Time":"2020-05-24 00:51:18" },
      "red": { "Value":"0", "Time":"2020-05-24 00:51:18" },
      "rgb": { "Value":"set 0000ff", "Time":"2020-05-24 00:49:51" },
      "state": { "Value":"on", "Time":"2020-05-24 00:51:18" },
      "timer_remaining": { "Value":"0", "Time":"2020-05-24 00:51:18" },
      "white": { "Value":"0", "Time":"2020-05-24 00:51:18" },
      "x_mqttcom": { "Value":"set announce", "Time":"2020-04-29 23:22:48" }
    },
    "Attributes": {
      "DbLogExclude": ".*",
      "IODev": "MQTT",
      "alias": "Bad LED",
      "devStateIcon": "{my $onl = ReadingsVal($name,\"online\",\"false\") eq \"true\"?\"10px-kreis-gruen\":\"10px-kreis-rot\";; my $light = ReadingsVal($name,\"state\",\"off\");; my $cons = ReadingsVal($name,\"power\",\"unknown\");; \"<a href=\u005c\"http://\".ReadingsVal($name,\"ip\",\"none\").\" \u005c\"target=\u005c\"_blank\u005c\">\".FW_makeImage($onl).\"</a> <a href=\u005c\"/fhem?cmd.dummy=set $name toggle&XHR=1\u005c\">\".FW_makeImage($light).\"</a><div>Verbrauch: $cons</div>\"}",
      "event-on-change-reading": "state,rgb",
      "genericDeviceType": "light",
      "group": "Licht",
      "icon": "light_control",
      "model": "shelly2rgbw_color",
      "readingList": "shellies/shellyrgbw2-6F10AE/color/0/status:.* {json2nameValue($EVENT)}\n  shellies/shellyrgbw2-6F10AE/color/0:.* state\n  shellies/announce:.* { $EVENT =~ m,..id...shellyrgbw2-6F10AE...mac.*, ? json2nameValue($EVENT) : return }\nshellyrgbw2_6F10AE:shellies/shellyrgbw2-6F10AE/online:.* online\nshellyrgbw2_6F10AE:shellies/shellyrgbw2-6F10AE/announce:.* { json2nameValue($EVENT) }",
      "room": "BAD EG,GoogleAssistant",
      "setList": "off:noArg shellies/shellyrgbw2-6F10AE/color/0/command off\n  on:noArg shellies/shellyrgbw2-6F10AE/color/0/command on\n  white:colorpicker,BRI,0,1,100 shellies/shellyrgbw2-6F10AE/color/0/set {\"white\":\"$EVTPART1\"}\n  gain:colorpicker,BRI,0,1,100 shellies/shellyrgbw2-6F10AE/color/0/set {\"gain\":\"$EVTPART1\"}\n  rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {\"shellies/shellyrgbw2-6F10AE/color/0/set {\u005c\"mode\u005c\":\u005c\"color\u005c\",\u005c\"red\u005c\":\".hex($1).\",\u005c\"green\u005c\":\".hex($2).\",\u005c\"blue\u005c\":\".hex($3).\"}\"}else{\"shellies/shellyrgbw2-6F10AE/color/0/set {\u005c\"turn\u005c\":\u005c\"on\u005c\",\u005c\"mode\u005c\":\u005c\"white\u005c\",\u005c\"brightness\u005c\":\".int(hex($1)/2.55).\"}\"}}\n  white_on:colorpicker,BRI,0,1,100 shellies/shellyrgbw2-6F10AE/color/0/set {\"turn\":\"on\",\"white\":\"$EVTPART1\"}\n  gain_on:colorpicker,BRI,0,1,100 shellies/shellyrgbw2-6F10AE/color/0/set {\"turn\":\"on\",\"gain\":\"$EVTPART1\"}\n  rgb_on:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {\"shellies/shellyrgbw2-6F10AE/color/0/set {\u005c\"turn\u005c\":\u005c\"on\u005c\",\u005c\"mode\u005c\":\u005c\"color\u005c\",\u005c\"gain\u005c\":\u005c\"100\u005c\",\u005c\"red\u005c\":\".hex($1).\",\u005c\"green\u005c\":\".hex($2).\",\u005c\"blue\u005c\":\".hex($3).\"}\"}else{\"shellies/shellyrgbw2-6F10AE/color/0/set {\u005c\"turn\u005c\":\u005c\"on\u005c\",\u005c\"mode\u005c\":\u005c\"white\u005c\",\u005c\"brightness\u005c\":\".int(hex($1)/2.55).\"}\"}}\n  effect:select,0,1,2,3 shellies/shellyrgbw2-6F10AE/color/0/set {\"effect\":\"$EVTPART1\"}\n  x_update:noArg shellies/shellyrgbw2-6F10AE/command update_fw\n  x_mqttcom shellies/shellyrgbw2-6F10AE/command $EVTPART1",
      "setStateList": "on off",
      "userReadings": "rgb:red.* {if(ReadingsVal($name,\"mode\",\"\") eq \"color\"){sprintf(\"%02X%02X%02X\", ReadingsVal($name,\"red\",99), ReadingsVal($name,\"green\",99), ReadingsVal($name,\"blue\",99))}else{my $a=sprintf(\"%02X\",ReadingsVal($name,\"brightness\",0)*2.555);\"$a$a$a\"}}",
      "webCmd": "on:off:white:gain:rgb:effect"
    }
  }  ],
  "totalResultsReturned":1
}

dominik

Bitte noch um folgende Infos:
- Reading rgb: steht da immer set davor oder ist das ein Fehler?
- Kann man bei dem Device auch Weisslevels (warmweiss, kaltweiss) setzen? Wie lautet da der Befehle?
- Kann das Device auch dimmen? Welcher Befehle und in welchem Reading steht dann der aktuelle Wert?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tabularasa

#1982
Ok, also zum Reading rgb
ich hatte zuvor event-on-change-reading nur auf state. Da stand immer set davor. Das habe ich nun mal auf .* gestellt und nun ist es ohne set und es taucht auch kein lastServerError mehr auf.
2020-05-24 10:35:48 MQTT2_DEVICE Licht_EG_BadLED rgb: set 47ff4e
2020-05-24 10:35:49 MQTT2_DEVICE Licht_EG_BadLED blue: 78
2020-05-24 10:35:49 MQTT2_DEVICE Licht_EG_BadLED red: 71
2020-05-24 10:35:49 MQTT2_DEVICE Licht_EG_BadLED rgb: 47FF4E


Weiß ist ein extra Kanal, kann man einstellen mit (von 0-100)
2020-05-24 10:40:35 MQTT2_DEVICE Licht_EG_BadLED white: set 10
2020-05-24 10:40:35 MQTT2_DEVICE Licht_EG_BadLED white: 10


Wenn ich sage stelle auf weiß, macht es noch folgendes (man beachte den code ffdead ;D)
2020-05-24 11:02:00 MQTT2_DEVICE Licht_EG_BadLED rgb: set ffdead
2020-05-24 11:02:00 MQTT2_DEVICE Licht_EG_BadLED red: 255
2020-05-24 11:02:00 MQTT2_DEVICE Licht_EG_BadLED blue: 173
2020-05-24 11:02:00 MQTT2_DEVICE Licht_EG_BadLED green: 222
2020-05-24 11:02:00 MQTT2_DEVICE Licht_EG_BadLED rgb: FFDEAD


Dimmen geht mit diesem Befehl (von 0-100)
2020-05-24 10:35:17 MQTT2_DEVICE Licht_EG_BadLED gain: set 15
2020-05-24 10:35:17 MQTT2_DEVICE Licht_EG_BadLED gain: 15


Reicht dir das so?

dominik

Heisst nun, dass ohne dem 'set' nun alles funktioniert? Lass mich bitte wissen wie ein Standarddevice aussieht, ohne deine Konfiguration. Weil wenn ich es automatisch in gassistant erkenne, dann sollte niemand etwas einrichten muessen, sondern einfach das Standarddevice nutzen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tabularasa

#1984
Ist alles Standard also wenn man es über mqtt attrTemplate shelly2rgbw_color einrichtet. Weiß und Helligkeit funktioniert noch nicht mit Sprache

NePheus

Zitat von: dominik am 23 Mai 2020, 18:59:13
Ist nun fertig. Bitte reload machen und ausprobieren ob alles so funktioniert wie du es erwartest.

Falls das auf das Thema "harmony" bezogen war:
Lautstärke geht jetzt, stumm schalten irgendwie nicht, da passiert gar nichts. "stelle tv stumm"

Bei der Lautstärke ist es so, dass er immer nur einen Schritt geht, bei meinem Denon also ein 0.5er Schritt (Range 0-100). Ich müsste also 10 mal sagen "lauter" bis ich überhaupt einen Unterschied merke. Wüsste da aber jetzt auch keine Lösung.

In meinem Fall werde ich zukünftig aber eh das Denon Plugin für Google Assistant nutzen, da ich dort auch direkt eine Prozentzahl mitgeben kann auf die er stellen soll. Ist natürlich im Fall harmony gar nicht möglich, da er ja einfach nur Infrarotsignale sendet.

Vielen Dank für deine ganze Mühe! Das mit der Activity-Steuerung ist mir viel wert!

dominik

Ok, dann bitte noch die Commands fuer weiss und dimmen.

Ist das korrent?
- set device gain 0-100?
- set device white 0-100? ist 0 warmweiss und 100 kaltweiss? hast du da vielleicht die Kelvin Werte dazu?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: NePheus am 24 Mai 2020, 14:16:01
Falls das auf das Thema "harmony" bezogen war:
Lautstärke geht jetzt, stumm schalten irgendwie nicht, da passiert gar nichts. "stelle tv stumm"

Bei der Lautstärke ist es so, dass er immer nur einen Schritt geht, bei meinem Denon also ein 0.5er Schritt (Range 0-100). Ich müsste also 10 mal sagen "lauter" bis ich überhaupt einen Unterschied merke. Wüsste da aber jetzt auch keine Lösung.

In meinem Fall werde ich zukünftig aber eh das Denon Plugin für Google Assistant nutzen, da ich dort auch direkt eine Prozentzahl mitgeben kann auf die er stellen soll. Ist natürlich im Fall harmony gar nicht möglich, da er ja einfach nur Infrarotsignale sendet.

Vielen Dank für deine ganze Mühe! Das mit der Activity-Steuerung ist mir viel wert!

Wird bei "stelle stumm" etwas im gassistant Log angezeigt? Fuer Denon ueberlege ich mir noch was, da das ein generelles Problem ist, dass bei allen Devices eine Stufe zu wenig ist.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

NePheus

Zitat von: dominik am 24 Mai 2020, 14:18:30
Wird bei "stelle stumm" etwas im gassistant Log angezeigt? Fuer Denon ueberlege ich mir noch was, da das ein generelles Problem ist, dass bei allen Devices eine Stufe zu wenig ist.

Das scheint ja zu gehen:

[23.5.2020, 21:20:22] GOOGLE MSG RECEIVED: {"cmd":"set harmony command volumeUp","connection":"https://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1590261622698}
[23.5.2020, 21:20:22] Received firestore2fhem: {"cmd":"set harmony command volumeUp","connection":"https://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1590261622698}
[23.5.2020, 21:20:22] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20harmony%20command%20volumeUp&fwcsrf=1&XHR=1


Und das nicht:

[23.5.2020, 21:21:30] GOOGLE MSG RECEIVED: {"cmd":"set harmony command mute true","connection":"https://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1590261690861}
[23.5.2020, 21:21:30] Received firestore2fhem: {"cmd":"set harmony command mute true","connection":"https://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1590261690861}
[23.5.2020, 21:21:30] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20harmony%20command%20mute%20true&fwcsrf=1&XHR=1


Da darf glaube ich kein "true" hinter dem "mute" mitgeschickt werden. Der triggered den Befehl immer nur.

dominik

Beim volUp/Down kann ich auch mehrere Befehle hintereinander senden um z.B. 10x volUp zu schicken statt nur 1x.

Ja, das true sollte nicht da sein. Das mach ich noch weg.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

NePheus

Zitat von: dominik am 24 Mai 2020, 14:35:10
Beim volUp/Down kann ich auch mehrere Befehle hintereinander senden um z.B. 10x volUp zu schicken statt nur 1x.

Ja, das true sollte nicht da sein. Das mach ich noch weg.

Bei meinem anfänglichen Test hat er 10 Befehle hintereinander korrekt ausgeführt. Bei der Harmony ist es allerdings so, dass man jedem Gerät Schaltzeiten hinterlegen kann. Wenn die höher eingestellt sind, weiß ich halt nicht ob er die wie in einer Queue abarbeitet und alle ausführt wenn man dem über das harmony Plugin sagt "führe jetzt 10 mal das command hintereinander aus". Kannst aber gerne mal davon ausgehen und abwarten ob zukünftig jemand Probleme damit hat.

dominik

Bitte mute nochmals testen, sollte nun funktionieren.

Lauter/leiser wird jetzt jeweils um 3 Schritte erhoeht/reduziert. Wenn du es anpassen willst, musst du folgendes im homebridgeMapping eintragen:
{
  "Volume": [{
    "virtualdevice": "TV",
    "cmdUp": "volUp",
    "cmdDown": "volDown",
    "levelStepSize": 10
  }, {
    "virtualdevice": "XBOX",
    "cmdUp": "volUp",
    "cmdDown": "volDown",
    "levelStepSize": 3
  }]
}


Vielleicht finde ich da noch eine einfachere Moeglichkeit. Waere eigentlich sinnvoll, wenn diese Adaptierung das harmony Modul selbst uebernehmen koennte. Denke dort ist der bessere Platz dafuer.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tabularasa

Zitat von: dominik am 24 Mai 2020, 14:16:42
Ok, dann bitte noch die Commands fuer weiss und dimmen.

Ist das korrent?
- set device gain 0-100?
- set device white 0-100? ist 0 warmweiss und 100 kaltweiss? hast du da vielleicht die Kelvin Werte dazu?
Ja das ist korrekt. Aber 0-100 ist die Helligkeit von dem extra weiß Kanal. Das kommt halt darauf an was für ein LED Streifen dran hängt. RGB, RGBW, RGBWW, oder nur weiß z.b

noname41

Zitat von: dominik am 23 Mai 2020, 18:59:13
Ist nun fertig. Bitte reload machen und ausprobieren ob alles so funktioniert wie du es erwartest.

Funktioniert perfekt. Danke!

dominik

Zitat von: Tabularasa am 25 Mai 2020, 12:02:39
Ja das ist korrekt. Aber 0-100 ist die Helligkeit von dem extra weiß Kanal. Das kommt halt darauf an was für ein LED Streifen dran hängt. RGB, RGBW, RGBWW, oder nur weiß z.b

Ich denke das laesst sich aus dem Attribut "mode" rauslesen, oder? Bei dir "shelly2rgbw_color". Wie lautet dann der dim Befehl bei dir? Oder geht das mit dem Model nicht?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik