39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

dominik

@Richard,
Drehung: Werde ich bei mir mal in einem Testdevice ausprobieren woran das liegt.
LED: Ich habe LED auf Beleuchtung umbenannt, da ich dachte LED macht Probleme.
Buzzer: Meinst du statt on/off senden soll ich 1/0 senden? Weil laut PossibleSets im jsonlist2 Output sollte on/off gesendet werden.

@SouzA,
danke fuer die Info! Kannst du mir bitte ein jsonlist2 von dem Device posten? Kann die Lampe weisswerte?

@thorte,
heisst eigentlich, ich kann eigentlich folgende Readings nutzen
schalten_status-get
dimmwert_status-get
Diese Readings sind Standard, oder? Also das was beim 2. dpt1.001 bzw. 2. dpt5.001 dahinter steht + "-get". Ist das so richtig? Dann wuerde ich die verwenden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thorte

Ja, passt prinzipiell.

Hängt ziemlich stark von der Def. des Geräts ab, am besten mal in der Commandref vergleichen. Der Name ist optional, set und get können auskonfiguriert werden, wenn es beispielsweise nur eine Adresse zum Senden oder Empfangen ist.

Vermutlich sind die KNX-Installation doch immer etwas unterschiedlich, so dass es ganz ohne homebridgemapping schwierig wird.

Im Übrigen: Habe nochmal etwas getestet: Mein Homebrigde-Mapping funktioniert ganz gut. Der Fehler "TypeError: value.split is not a function" kommt nur, wenn ich über Google Home ein Gerät schalte, nicht wenn ein Gerät geschaltet wird. Betrifft scheinbar nur die Richtung Google -> FHEM und nicht FHEM -> Google.

Gruß Thorsten

dominik

Mit den dpt Werten kann man eigentlich ziemlich gut vorkonfigurieren. Mir ist immer lieber die User koennen das Device sofort nutzen und muessen nicht erst selbst was konfigurieren.

Ich habe das jetzt angepasst:
- dpt1.001:NAME: NAME wird als Command verwendet
- dpt1.001:NAME(:get): NAME-get wird als Reading fuer den aktuellen Status verwendet
- dpt5.001: Gleiches wie fuer dpt1.001 nur eben fuer Brightness

Kannst du das bitte nochmals ohne homebridgeMapping testen - reload durchfuehren? Bitte dann um Rueckmeldung ob es funktioniert.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thorte

#1653
Neuer Fehler:

[30.3.2020, 21:45:29] GOOGLE MSG RECEIVED: {"log":"failed to generateTraits for L.KiJM.Decke.test, ReferenceError: usedOpts is not defined","msg":"LOG_ERROR","ts":1585597529405}


Gerät wird aktuell nicht in gHome angelegt.

Edit: Das jsonlist2:


{
  "Arg":"L.KiJM.Decke.test",
  "Results": [
  {
    "Name":"L.KiJM.Decke.test",
    "PossibleSets":"schalten:off,on dimmwert:slider,0,1,100 dimmen:up,down",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev do_not_notify:1,0 showtime:1,0 answerReading:1,0 stateRegex:textField-long stateCmd:textField-long putCmd:textField-long format listenonly:1,0 readonly:1,0 slider useSetExtensions:1,0 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:textField-long devStateStyle gassistantName:textField genericDeviceType:switch,outlet,light,thermostat,aircondition,airfreshener,airpurifier,blinds,camera,coffeemaker,dishwasher,dryer,fan,fireplace,heater,kettle,oven,refrigerator,scene,sprinkler,vacuum,washer,awning,boiler,curtain,door,garage,gate,hood,lock,microwave,pregola,securitysystem,shutter,shower,valve,waterheater,window,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 homebridgeMapping:textField-long icon realRoom:textField realtimePicker sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
    "Internals": {
      "DEF": "8/0/2:dpt1.001:schalten 8/0/5:dpt1.001:schalten_status:get 8/0/4:dpt5.001:dimmwert 8/0/6:dpt5.001:dimmwert_status:get 8/0/3:dpt1.008:dimmen",
      "DEVNAME": "L.KiJM.Decke.test",
      "FIRSTGADNAME": "schalten",
      "FUUID": "5e8095fc-f33f-4189-deba-48b7f958a7cfc462",
      "GETSTRING": "schalten:noArg dimmwert_status:noArg dimmwert:noArg dimmen:noArg schalten_status:noArg",
      "KNX_MSGCNT": "145",
      "KNX_RAWMSG": "C01101w08006ff",
      "KNX_TIME": "2020-03-30 21:44:19",
      "LASTInputDev": "KNX",
      "MSGCNT": "145",
      "NAME": "L.KiJM.Decke.test",
      "NR": "5657",
      "NTFY_ORDER": "50-L.KiJM.Decke.test",
      "SETSTRING": "schalten:off,on dimmwert:slider,0,1,100 dimmen:up,down",
      "STATE": "100 %",
      "TYPE": "KNX"
    },
    "Readings": {
      "dimmwert": { "Value":"100 %", "Time":"2020-03-30 21:21:10" },
      "dimmwert_status": { "Value":"100 %", "Time":"2020-03-30 21:21:22" },
      "dimmwert_status-get": { "Value":"100 %", "Time":"2020-03-30 21:44:18" },
      "last-sender": { "Value":"1/1/1", "Time":"2020-03-30 21:44:18" },
      "schalten-get": { "Value":"on", "Time":"2020-03-30 21:44:04" },
      "schalten_status-get": { "Value":"on", "Time":"2020-03-30 21:44:06" },
      "state": { "Value":"100 %", "Time":"2020-03-30 21:44:18" }
    },
    "Attributes": {
      "IODev": "KNX",
      "gassistantName": "Deckenlicht Jungs",
      "genericDeviceType": "light",
      "group": "Licht",
      "realRoom": "Zimmer Jungs",
      "room": "gHome->thorsten_test,JJ/Mailo"
    }
  }  ],
  "totalResultsReturned":1
}


Die -set Readings fehlen, da ich das Gerät noch nicht via FHEM geschaltet habe

dominik

#1654
Bitte nochmals testen.

//Edit
Die -set Readings verwende ich auch nicht, da diese ja eigentlich nicht den aktuellen Status abbilden. Das tun ja nur die -get Readings, oder?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

SouzA

#1655
Zitat von: dominik am 30 März 2020, 19:58:41
@SouzA,
danke fuer die Info! Kannst du mir bitte ein jsonlist2 von dem Device posten?

{
  "Arg":"HUEGroup6",
  "Results": [
  {
    "Name":"HUEGroup6",
    "PossibleSets":"off:noArg on:noArg toggle:noArg statusRequest:noArg pct:colorpicker,BRI,0,1,100 bri:colorpicker,BRI,0,1,254 rgb:colorpicker,RGB color:colorpicker,CT,2000,1,6500 ct:colorpicker,CT,154,1,500 hue:colorpicker,HUE,0,1,65535 sat:slider,0,1,254 xy dimUp:noArg dimDown:noArg ctUp:noArg ctDown:noArg hueUp:noArg hueDown:noArg satUp:noArg satDown:noArg alert:none,select,lselect effect:none,colorloop lights rename savescene deletescene scene:Energie#tanken#[id=EpHD5IFCvs3eHBM],Energie#tanken#[id=ZVLL8I6QcAuZgme],Entspannen#[id=2p4wBI3ew4mlnO8],Entspannen#[id=FkaYD5BN7bcR5Ne],Frühlingsblüten#[id=-dpGcjCM0r-3rz8],Frühlingsblüten#[id=xD9FbwCYwXZ8FVE],Gedimmt#[id=ESXZLVCct-ZlUAP],Gedimmt#[id=WCuBVLe9Iy-UzaD],Hell#[id=LCSZZtIKQqOIu9F],Hell#[id=kuIs6150WfmsuR8],Konzentrieren#[id=4OO2j6bmrb-l6Ed],Konzentrieren#[id=PXhUd8NP33snRa3],Lesen#[id=XjDAT7YPtx6sDMH],Lesen#[id=bN2W2Bgvmemvw32],Nachtlicht#[id=MlVd4XQJVE109Ru],Nachtlicht#[id=vCUGJ0Xy9jz5Iox],Nordlichter#[id=1DvGkO4Kg0qH-Kp],Nordlichter#[id=94HnfLSGV6TvBUQ],Sonnenuntergang#Savanne#[id=6reVhIRaV97iCbB],Sonnenuntergang#Savanne#[id=LebE7Qtbyl5o9Fz],Tropendämmerung#[id=WafGG3WGt6TvBgj],Tropendämmerung#[id=n8syJ05uXAp3Yqz] blink on-till-overnight off-for-timer on-for-timer off-till-overnight on-till off-till intervals attrTemplate:?,C_01_Eurotronic_SPZB0001_Spirit_ZigBee,D_01_Xiaomi_Aqara_MCCGQ11LM_Window_Door_Sensor,E_01a_Xiaomi_Aqara_WSDCGQ11LM_Temperature_Sensor,E_01b_Xiaomi_Aqara_WSDCGQ11LM_Pressure_Sensor,E_01c_Xiaomi_Aqara_WSDCGQ11LM_Humidity_Sensor,F_01a_Xiaomi_Aqara_RTCGQ11LM_Lightlevel_Sensor,F_01a_Xiaomi_Aqara_RTCGQ11LM_Motion_Sensor,G_01_Xiaomi_Aqara_WXKG02LM_Double_Switch",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev delayedUpdate:1 ignoreReachable:1,0 realtimePicker:1,0 color-icons:1,2 transitiontime model:CLA60#RGBW#OSRAM,Classic#A60,Classic#A60#RGBW,Classic#A60#TW,Classic#B40#TW,DM01,FLS-H3,FLS-PP3,Flex#RGBW,Gardenspot#RGB,LCT001,LCT002,LCT003,LCT007,LCT010,LCT011,LCT012,LCT014,LCT024,LLC001,LLC005,LLC006,LLC007,LLC010,LLC011,LLC012,LLC013,LLC014,LLC020,LLM001,LLM010,LLM011,LLM012,LOM001,LOM002,LST001,LST002,LTW001,LTW004,LTW012,LTW013,LTW014,LWB001,LWB003,LWB004,LWB006,LWB007,LWB010,LWB014,LWL001,PAR16#50#TW,Plug#-#LIGHTIFY,Plug#01,RM01,RWL020,RWL021,Surface#Light#TW,ZGPSWITCH setList:textField-long configList:textField-long subType:extcolordimmer,colordimmer,ctdimmer,dimmer,switch,blind event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading alarmDevice:Actor,Sensor alarmSettings assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle gassistantName gassistantRoom 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 ghomeName:textField homebridgeMapping:textField-long icon realRoom:textField sortby webCmd webCmdLabel:textField-long widgetOverride createActionReadings:1,0 createGroupReadings:1,0 lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 userattr",
    "Internals": {
      "CHANGED": "null",
      "DEF": "group 6  IODev=HUEBridge",
      "FUUID": "5e556e5c-f33f-7c83-d555-73678efcd246db04",
      "FVERSION": "31_HUEDevice.pm:0.213650/2020-03-06",
      "ID": "G6",
      "INTERVAL": "null",
      "NAME": "HUEGroup6",
      "NR": "607",
      "STATE": "off",
      "TYPE": "HUEDevice",
      "class": "Downstairs",
      "desired": "0",
      "lights": "7,14",
      "name": "Schrankbeleuchtung Weiss",
      "type": "Zone"
    },
    "Readings": {
      "alert": { "Value":"select", "Time":"2020-03-29 13:12:33" },
      "all_on": { "Value":"0", "Time":"2020-03-29 13:12:32" },
      "any_on": { "Value":"0", "Time":"2020-03-29 13:12:32" },
      "bri": { "Value":"90", "Time":"2020-03-29 13:12:33" },
      "onoff": { "Value":"0", "Time":"2020-03-29 13:12:33" },
      "pct": { "Value":"0", "Time":"2020-03-29 13:12:33" },
      "reachable": { "Value":"1", "Time":"2020-03-29 13:12:33" },
      "state": { "Value":"off", "Time":"2020-03-29 13:12:33" }
    },
    "Attributes": {
      "IODev": "HUEBridge",
      "alias": "Group Schrankbeleuchtung Weiss",
      "color-icons": "2",
      "delayedUpdate": "1",
      "devStateIcon": "{(HUEDevice_devStateIcon($name),\"toggle\")}",
      "gassistantName": "Schrankbeleuchtung Weiss",
      "group": "HUEGroup",
      "realRoom": "Küche",
      "room": "GoogleHome,HUEBridge,Küche",
      "userattr": "createActionReadings:1,0 createGroupReadings:1,0 lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0"
    }
  }  ],
  "totalResultsReturned":1
}


Zitat von: dominik am 30 März 2020, 19:58:41
Kann die Lampe weisswerte?

Nein, da ist nur an/aus und dimmen. Das sind normale RGBW-Lightstripes über die dresden elektronik Treiber.

Thx und bis denn
SouzA

Edit:
Das hört sich jetzt blöd an, dass die dann nur weiß können bei RGBW... Aber die dresden elektronik Geräte werden als zwei Devices angelegt. Auch schon in hue, 1xRGB und 1xWeiß. Deswegen gibt es Schrankbeleuchtung Farbe und Schrankbeleuchtung Weiß. Mangels entsprechender Geräte, kann ich nicht sagen, ob es bei original hue Geräten auch so ist.
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

thorte

#1656
Hallo Dominik,

ganz so einfach ist es nicht, KNX hat da keinen Standard. Als Beispiel

Als Beispiel eine kleine Schaltung aus Lampe L1, 1. Schalter S1, 2. Schalter S2 und FHEM-Device D1. L1 ist bei mir die Zimmer-Lampe, S1 der Schalter im Zimmer, S2 der Schalter im Flur für "alle Lichter aus". Außerdem drei Gruppenadressen g1, g2, g3 mit an/aus.

Ohne FHEM:
S1 sendet auf g1 an/aus
S2 sendet auf g2 an/aus
L1 hört auf g1 und g2
L1 sendet ihrem Status an/aus auf g3

Definition von D1, angelehnt an mein gelistet L.KiJM.Decke: "g1:dpt1.001:schalten g3:dpt1.001:schalten_status:get"

S1 sendet auf g1 "an" - FHEM registriert "an" auf g1: D1 erhält Reading "schalten-get:an"
L1 wird daraufhin eingeschaltet und sendet ihren Status "an" auf g3: FHEM registriert "an" auf g3: D1 erhält Reading "schalten_status-get:an"
S2 sendet auf g2 "aus" - FHEM kennt keine Def mit g2 - in FHEM passiert nichts
L2 sendet "aus" auf g3 - D1 erhält Reading "schalten_status-get:aus" für g3

Ein "set D1 an" oder "set D1 g1 on" führt zu einem Reading "schalten-set:on" in D1
Da daraufhin L1 auf g3 ein "aus" sendet, bekommt D1 das reading "schalten_status-get:aus"

Alternativ, wenn ich nur S1 <-> L1 habe, kann ich L1 auch so konfigurieren, dass L1 den Status auf g1 zurückschickt.

Ergänzend registrieren meine Schalter den Status, den L1 auf g3 sendet. Mit zwei Schaltern oder mehr Schaltern kann so einfach eine Wechselschaltung in KNX gebaut werden:
S1.1 an -> L1
L1 an -> S1.1, S1.2, S1....
S1.2, S1... wechseln auf "an" und schicken bei der nächsten Betätigung ein "aus"

Soweit meine Konfiguration. Andere werden ihr KNX sicher anders konfigurieren.

Meine Empfehlung als einfache Standart-Implementierung: Ich würde (<name>:Wert|<name>-set:Wert|<name>-get:Wert) auswerten und jeweils das letzte Event von FHEM an Google schicken, umgekehrt die Kommandos von Google -> <name>:Wert; einfache KNX-Geräte sollten damit passen.

dpt1.001 sendet und schreibt in das Reading on/off
dpt5.001 hingegegen braucht ein "set D1 dimmwert 100" und liefert ein "D1:dimmwert-(s|g)get: 100 %"

Verständlich?


Reload funktioniert wieder. Ich teste morgen abend mal, wie mein "Standart-Device" reagiert

Edit 31.03.:
Log sieht soweit gut aus, keine Fehler:

[31.3.2020, 16:18:19] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-usedFeatureLevel%203&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:18:19] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-googleSync%20Google%20SYNC%20finished&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:18:19] GOOGLE MSG RECEIVED: {"delay":40,"id":"9835867539907865256","msg":"REPORTSTATEALL","ts":1585664299593}
[31.3.2020, 16:18:19] Received firestore2fhem: {"delay":40,"id":"9835867539907865256","msg":"REPORTSTATEALL","ts":1585664299593}
[31.3.2020, 16:18:54] GOOGLE MSG RECEIVED: {"cmd":"set L.KiJM.Decke.test schalten on","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664334018}
[31.3.2020, 16:18:54] Received firestore2fhem: {"cmd":"set L.KiJM.Decke.test schalten on","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664334018}
[31.3.2020, 16:18:54] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20L.KiJM.Decke.test%20schalten%20on&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:18:56] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 100 %
[31.3.2020, 16:18:56] [FHEM] update reading: L.KiJM.Decke.test:schalten_status-get = on
[31.3.2020, 16:18:57] reportstate_v2: {"requestId":"888907720078","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":true,"brightness":100,"online":true}}}}}
[31.3.2020, 16:18:59] reportstate: all
[31.3.2020, 16:18:59] reportstate: all
[31.3.2020, 16:19:28] GOOGLE MSG RECEIVED: {"cmd":"set L.KiJM.Decke.test schalten off","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664368120}
[31.3.2020, 16:19:28] Received firestore2fhem: {"cmd":"set L.KiJM.Decke.test schalten off","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664368120}
[31.3.2020, 16:19:28] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20L.KiJM.Decke.test%20schalten%20off&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:19:29] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 0 %
[31.3.2020, 16:19:30] [FHEM] update reading: L.KiJM.Decke.test:schalten_status-get = off
[31.3.2020, 16:19:31] reportstate_v2: {"requestId":"641107407048","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":false,"brightness":0,"online":true}}}}}
[31.3.2020, 16:19:43] GOOGLE MSG RECEIVED: {"cmd":"set L.KiJM.Decke.test dimmwert 50","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664383726}
[31.3.2020, 16:19:43] Received firestore2fhem: {"cmd":"set L.KiJM.Decke.test dimmwert 50","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664383726}
[31.3.2020, 16:19:43] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20L.KiJM.Decke.test%20dimmwert%2050&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:19:46] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 49 %
[31.3.2020, 16:19:46] [FHEM] update reading: L.KiJM.Decke.test:schalten_status-get = on
[31.3.2020, 16:19:47] reportstate_v2: {"requestId":"534239541487","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":true,"brightness":49,"online":true}}}}}
[31.3.2020, 16:20:01] GOOGLE MSG RECEIVED: {"cmd":"set L.KiJM.Decke.test dimmwert 20","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664401542}
[31.3.2020, 16:20:01] Received firestore2fhem: {"cmd":"set L.KiJM.Decke.test dimmwert 20","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664401542}
[31.3.2020, 16:20:01] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20L.KiJM.Decke.test%20dimmwert%2020&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:20:03] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 20 %
[31.3.2020, 16:20:13] reportstate_v2: {"requestId":"903777133972","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":true,"brightness":20,"online":true}}}}}
[31.3.2020, 16:20:21] GOOGLE MSG RECEIVED: {"cmd":"set L.KiJM.Decke.test dimmwert 30","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664421246}
[31.3.2020, 16:20:21] Received firestore2fhem: {"cmd":"set L.KiJM.Decke.test dimmwert 30","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664421246}
[31.3.2020, 16:20:21] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20L.KiJM.Decke.test%20dimmwert%2030&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:20:23] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 30 %
[31.3.2020, 16:20:32] GOOGLE MSG RECEIVED: {"cmd":"set L.KiJM.Decke.test schalten off","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664432574}
[31.3.2020, 16:20:32] Received firestore2fhem: {"cmd":"set L.KiJM.Decke.test schalten off","connection":"http://127.0.0.1:8083/fhem","id":0,"msg":"EXECUTE","ts":1585664432574}
[31.3.2020, 16:20:32] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20L.KiJM.Decke.test%20schalten%20off&fwcsrf=493121805345773&XHR=1
[31.3.2020, 16:20:33] reportstate_v2: {"requestId":"255734970777","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":true,"brightness":30,"online":true}}}}}
[31.3.2020, 16:20:36] [FHEM] update reading: L.KiJM.Decke.test:schalten_status-get = off
[31.3.2020, 16:20:37] reportstate_v2: {"requestId":"614162402809","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":false,"brightness":30,"online":true}}}}}
[31.3.2020, 16:20:38] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 0 %
[31.3.2020, 16:20:48] reportstate_v2: {"requestId":"51680866352","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":false,"brightness":0,"online":true}}}}}
[31.3.2020, 16:21:11] [FHEM] update reading: L.KiJM.Decke.test:dimmwert_status-get = 100 %
[31.3.2020, 16:21:12] [FHEM] update reading: L.KiJM.Decke.test:schalten_status-get = on
[31.3.2020, 16:21:13] reportstate_v2: {"requestId":"868343473803","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":true,"brightness":100,"online":true}}}}}
[31.3.2020, 16:21:21] reportstate_v2: {"requestId":"152281212555","agentUserId":"google-oauth2|106942980943722081647","payload":{"devices":{"states":{"L.KiJM.Decke.test":{"on":false,"brightness":100,"online":true}}}}}


Allerdings funktioniert die Übertragung FHEM -> Google nicht

dominik

@SouzA, verstanden, ich habe das angepasst. Bitte um Test.

@thorte, danke fuer die Erklaerung und den Test. Das heisst, ich muss jetzt noch alle Readings von dpt1.001 (schalten.* und schalten_status.*) bzw. dpt5.001 (dimmwert.* und dimmwert_status.*) auswerten und die letzte Aenderung als aktuellen Status heranziehen. Richtig?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thorte

Richtig.

Dass der Name variieren kann, war glaub ich schon geklärt. "schalten", "schalten_status", "dimmwert" und "dimmwert_status" sind Namen, die ich den Gruppen gegeben habe. Im Endeffekt kannst Du den Namen aus der Dev des Geräts parsen:

Dev: <group>:<DPT>:[gadName]  [<group>:<DPT> ..] ..-

Wenn [gadName] = '', dann 'g' + Index, beginnend bei 1; erste Gruppe wäre g1, zweite g2 usw., dritte Gruppe bekommt auch dann 'g3', wenn 'g1' und 'g2' Namen haben.

Alle mit (dpt1|dpt1.001) auf 'onOff'
Alle mit (dpt5.001) auf 'brightness'

SouzA

Zitat von: dominik am 31 März 2020, 20:51:22
@SouzA, verstanden, ich habe das angepasst. Bitte um Test.
gassistant-fhem-lastServerError HUEGroup6:Error: rgb not a number: undefined => NaN 2020-03-31 22:56:30
Nach reload und restart... beides versucht.

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

@thorte, wird der "gad Index" bei get und set um eins erhoeht? Ich hatte das bislang nur bei set und wenn kein get/set definiert wurde um 1 erhoeht.

@SouzA, jetzt sollte es klappen :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thorte

Ja, der Index wird bei jeder neuen Gruppe um eins erhöht.

set/get/nichts definiert nur, ob set oder get oder beides möglich ist. Bei einer set-Definition wird auch nur das -set-Reading angelegt, es sei denn die Gruppe bekommt noch ein :nosuffix in der Def mit. Müsste dir aber egal sein, solange Du auf alle Readings mit <name>.* triggerst.

SouzA

Zitat von: dominik am 01 April 2020, 17:47:40
@SouzA, jetzt sollte es klappen :)
Jup, wieder eine Fehlermeldung weniger...

Danke und 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

@SouzA, perfekt, danke fuer den schnellen Test!

@thorte, liege ich da richtig bei folgender Gruppenzuteilung
"DEF": "8/0/2:dpt1.001:schalten 8/0/5:dpt1.001:schalten_status:get 8/0/4:dpt5.001:dimmwert 8/0/6:dpt5.001:dimmwert_status:get 8/0/3:dpt1.008:dimmen"
g1=schalten
g2=schalten_status
g3=dimmwert
g4=dimmwert_status
g5=dimmen
oder
g1=schalten
g2=dimmwert
g3=dimmen
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thorte

Bin mir nicht ganz sicher  ;D ,aber ich glaube schon

Ein paar Beispiele:

Def und jeweils mögliche Readings mit Werten, die jeweils "besonderen" Readings sind mit einem Stern markiert:


8/0/2:dpt1.001:schalten 8/0/5:dpt1.001:schalten_status:get 8/0/4:dpt5.001:dimmwert 8/0/6:dpt5.001:dimmwert_status:get 8/0/3:dpt1.008:dimmen

schalten-get:(on|off)
schalten-set:(on|off)
schalten_status-get:(on|off)
dimmwert-set:(0..100) %
dimmwert-get:(0..100) %
dimmwert_status-get:(0..100) %
dimmen-set:(up|down)
dimmen-get:(up|down)



8/0/2:dpt1.001 8/0/5:dpt1.001:schalten_status:get 8/0/4:dpt5.001:dimmwert 8/0/6:dpt5.001:dimmwert_status:get 8/0/3:dpt1.008:dimmen

g1-get:(on|off) *
g1-set:(on|off) *
schalten_status-get:(on|off)
dimmwert-set:(0..100) %
dimmwert-get:(0..100) %
dimmwert_status-get:(0..100) %
dimmen-set:(up|down)
dimmen-get:(up|down)



8/0/2:dpt1.001:schalten 8/0/5:dpt1.001:schalten_status:get 8/0/4:dpt5.001:dimmwert 8/0/6:dpt5.001:get 8/0/3:dpt1.008:dimmen

schalten-get:(on|off)
schalten-set:(on|off)
schalten_status-get:(on|off)
dimmwert-set:(0..100) %
dimmwert-get:(0..100) %
g4-get:(0..100) % *
dimmen-set:(up|down)
dimmen-get:(up|down)



8/0/2:dpt1.001:schalten 8/0/5:dpt1.001:get 8/0/4:dpt5.001 8/0/6:dpt5.001:dimmwert_status:get 8/0/3:dpt1.008:dimmen

schalten-get:(on|off)
schalten-set:(on|off)
g2-get:(on|off) *
g3-set:(0..100) % *
g3-get:(0..100) % *
dimmwert_status-get:(0..100) %
dimmen-set:(up|down)
dimmen-get:(up|down)



8/0/2:dpt1.001:schalten 8/0/5:dpt1.001:schalten_status:get 8/0/4:dpt5.001:dimmwert:nosuffix 8/0/6:dpt5.001:dimmwert_status:get 8/0/3:dpt1.008:dimmen

schalten-get:(on|off)
schalten-set:(on|off)
schalten_status-get:(on|off)
dimmwert:(0..100) % *
dimmwert_status-get:(0..100) %
dimmen-set:(up|down)
dimmen-get:(up|down)