Modul für Panasonic Comfort Cloud API?

Begonnen von joker4791, 26 Juni 2019, 07:52:04

Vorheriges Thema - Nächstes Thema

EinEinfach

@MCh76: Bin nach deiner Anleitung vorgegangen, das Device antwortet wie folgt:
code 4106
message New version app has been published


Hat sich mittlerweile was an deiner Definiton geändert? Muss was im Header ändern?
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

EinEinfach

Läuft!

Habe den Header wie folgt geändert:
X-APP-VERSION: 1.10.0

Gruß
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

marboj

Kann man mit den HTTMOD-Befehlen auch 3 Geräte steuern, die an einem User hinterlegt sind?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

EinEinfach

ZitatKann man mit den HTTMOD-Befehlen auch 3 Geräte steuern, die an einem User hinterlegt sind?

Ja, das was du in der App siehst, kannst du auch steuern.

Gruß
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

MCh76

ja ich denke auch dass mehr als ein gerät kein problem sein sollten.
mit dem GET befehl "get Devicegroup" müsstest du eigentlich alle relevanten geräte die in der app auch zu finden sind beschafft bekommen.

joker4791

So, habe bei mir auch mal das Gerät angelegt, leider erhalte bei get DeviceGroup wohl offenbar nur einen Fehler (in httpheader):
HTTP/1.1 401
Server: nginx
Date: Thu, 11 Feb 2021 18:54:35 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Connection: close
Cache-Control: no-cache, must-revalidate

Irgendeine Idee was da falsch läuft?
Die Device-ID hätte ich ansonsten auch manuell vorhanden...

MCh76

#21
Zitat von: joker4791 am 11 Februar 2021, 19:59:15
So, habe bei mir auch mal das Gerät angelegt, leider erhalte bei get DeviceGroup wohl offenbar nur einen Fehler (in httpheader):
HTTP/1.1 401
Server: nginx
Date: Thu, 11 Feb 2021 18:54:35 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Connection: close
Cache-Control: no-cache, must-revalidate

Irgendeine Idee was da falsch läuft?
Die Device-ID hätte ich ansonsten auch manuell vorhanden...

versuch am besten den request mal in Postman abzusetzen. Da bekommt man auch eine entsprechende Fehlermeldung zurück.
Habe ich mit allen Requests so gemacht.

alternativ kannst du ja auch Device Id direkt in den Befehlen verwenden.
wichtig ist wie hier schon angemerkt die X-APP-VERSION auf den aktuellen wert zu setzen (aktuell 1.10.0).

joker4791

#22
habe gerade eben zwei readings erhalten:
code  4106  2021-02-12 11:59:30
message  New version app has been published  2021-02-12 11:59:30

Und unter "header":
X-APP-TYPE: 1
X-APP-VERSION: 2.0.0
Accept: application/json
Content-Type: application/json
User-Agent: G-RAC
X-User-Authorization: $sid

Also scheint sich da doch was geändert zu haben?
Jedenfalls erhalte ich immer noch Fehler 401.

MCh76

Zitat von: joker4791 am 12 Februar 2021, 12:03:29
habe gerade eben zwei readings erhalten:
code  4106  2021-02-12 11:59:30
message  New version app has been published  2021-02-12 11:59:30

Und unter "header":
X-APP-TYPE: 1
X-APP-VERSION: 2.0.0
Accept: application/json
Content-Type: application/json
User-Agent: G-RAC
X-User-Authorization: $sid

Also scheint sich da doch was geändert zu haben?
Jedenfalls erhalte ich immer noch Fehler 401.

mach mal X-APP-VERSION: 1.10.0 in den header parametern rein

joker4791

Hatte ich gemacht, der Abzug oben ist mit dieser Einstellung.

MCh76

auch bei den sid Headern für den Login (sid01Header2 X-APP-VERSION: 1.10.0)? bei mir klappt das einwandfrei.

joker4791

Ja, auch dort (insgesamt an vier Stellen)

joker4791

#27
Es gibt aber auch immer unterschiedliche Fehlermeldungen:
code  4300  2021-02-12 15:56:29
message  Have no authority to the request  2021-02-12 15:56:29


HTTP/1.1 200
Server: nginx
Date: Fri, 12 Feb 2021 15:09:21 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: no-store
Pragma: no-cache
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
Strict-Transport-Security: max-age=31536000;includeSubdomains


Wie bereits geschrieben, hätte ich die Device-ID bereits vorhanden, was muss denn eigentlich unter [MODELL] eingetragen werden? Kann man das in der App auslesen?

MCh76

also das modell bekommst du über das auslesen der devicegroup.
mach doch mal ein list von deinem klima device

joker4791

Internals:
   BUSY       1
   CFGFN     
   CHANGED   
   DEF        https://accsmart.panasonic.com/deviceStatus/[MODELL]+C420435793 0
   FD         38
   FUUID      602589c5-f33f-c47d-e5e1-6734b712d0555855
   Interval   0
   JSONEnabled 1
   LASTSEND   1613210068.51946
   LastAuthTry 2021-02-12 12:01:21
   MainURL    https://accsmart.panasonic.com/deviceStatus/[MODELL]+C420435793
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       wz_klima
   NOTIFYDEV  global
   NR         142051
   NTFY_ORDER 50-wz_klima
   ReplacementEnabled 1
   STATE      Ausgeschaltet
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       HTTPMOD
   addr       https://accsmart.panasonic.com:443
   auth       0
   buf       
   code       400
   compress   1
   data       
   displayurl https://accsmart.panasonic.com/deviceStatus/[MODELL]+C420435793
   header     X-APP-TYPE: 1
X-APP-VERSION: 1.10.0
Accept: application/json
Content-Type: application/json
User-Agent: G-RAC
X-User-Authorization: ****
   host       accsmart.panasonic.com
   httpversion 1.1
   hu_blocking 0
   hu_filecount 1907
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /deviceStatus/[MODELL]+C420435793
   protocol   https
   redirects  0
   sid        ****
   timeout    2
   url        https://accsmart.panasonic.com/deviceStatus/[MODELL]+C420435793
   value      0
   QUEUE:
   READINGS:
     2021-02-12 15:56:29   code            4300
     2021-02-12 15:56:29   message         Have no authority to the request
   REQUEST:
     data       
     header     X-APP-TYPE: 1
X-APP-VERSION: 1.10.0
Accept: application/json
Content-Type: application/json
User-Agent: G-RAC
X-User-Authorization: $sid
     ignoreredirects 0
     retryCount 0
     type       get02
     url        https://accsmart.panasonic.com/deviceStatus/[MODELL]+C420435793
     value      0
   defptr:
     readingBase:
       code       get
       message    get
     readingNum:
       code       02
       message    02
     readingOutdated:
     requestReadings:
       get02:
         code       get 02
         message    get 02
   sslargs:
Attributes:
   disable    0
   enableCookies 1
   event-on-change-reading actual_.*
   get01Name  Devicegroup
   get01URL   https://accsmart.panasonic.com/device/group
   get02ExtractAllJSON 1
   get02Name  Status
   get02URL   https://accsmart.panasonic.com/deviceStatus/[MODELL]+C420435793
   getHeader1 X-APP-TYPE: 1
   getHeader2 X-APP-VERSION: 1.10.0
   getHeader3 Accept: application/json
   getHeader4 Content-Type: application/json
   getHeader5 User-Agent: G-RAC
   getHeader6 X-User-Authorization: $sid
   group      Klimaanlage
   httpVersion 1.1
   reAuthJSON message
   reAuthRegex Token expires
   reading01JSON parameters_operate
   reading01Name actual_operate
   reading02JSON parameters_temperatureSet
   reading02Name actual_desired-temp
   reading03JSON parameters_actualNanoe
   reading03Name actual_nanoe
   reading04JSON parameters_ecoMode
   reading04Name actual_ecomode
   reading05JSON parameters_operationMode
   reading05Name actual_operationmode
   replacement01Mode reading
   replacement01Regex ##PARAMS##
   requestHeader01 X-APP-TYPE: 1
   requestHeader02 X-APP-VERSION: 1.10.0
   requestHeader03 Accept: application/json
   requestHeader04 Content-Type: application/json
   requestHeader05 User-Agent: G-RAC
   requestHeader06 X-User-Authorization: $sid
   room       Wohnzimmer->Klimaanlage
   set01Data  {"deviceGuid": "[MODELL]+C420435793","parameters": {"operate": 1}}
   set01Name  PowerOn
   set01URL   https://accsmart.panasonic.com/deviceStatus/control
   set02Data  {"deviceGuid": "[MODELL]+C420435793","parameters": {"operate": 0}}
   set02Name  PowerOff
   set02URL   https://accsmart.panasonic.com/deviceStatus/control
   set03Data  {"deviceGuid": "[MODELL]+C420435793","parameters": {##PARAMS##}}
   set03Name  Control
   set03Replacement01Value wz_d_klima:params
   set03URL   https://accsmart.panasonic.com/deviceStatus/control
   setHeader1 X-APP-TYPE: 1
   setHeader2 X-APP-VERSION: 1.10.0
   setHeader3 Accept: application/json
   setHeader4 Content-Type: application/json
   setHeader5 User-Agent: G-RAC
   setHeader6 X-User-Authorization: $sid
   sid01Data  {"language": "0","loginId": "****","password": "****"}
   sid01Header1 X-APP-TYPE: 1
   sid01Header2 X-APP-VERSION: 1.10.0
   sid01Header3 Accept: application/json
   sid01Header4 Content-Type: application/json
   sid01Header5 User-Agent: G-RAC
   sid01IdJSON uToken
   sid01URL   https://accsmart.panasonic.com/auth/login
   stateFormat {InternalVal("wz_d_klima", "STATE", "")}
   userattr   get01Name get01URL get02ExtractAllJSON:0,1,2 get02Name get02URL getHeader1 getHeader2 getHeader3 getHeader4 getHeader5 getHeader6 reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading05JSON reading05Name replacement01Mode:reading,internal,text,expression,key replacement01Regex requestHeader01 requestHeader02 requestHeader03 requestHeader04 requestHeader05 requestHeader06 set01Data set01Name set01URL set02Data set02Name set02URL set03Data set03Name set03Replacement01Value set03URL setHeader1 setHeader2 setHeader3 setHeader4 setHeader5 setHeader6 sid01Data sid01Header1 sid01Header2 sid01Header3 sid01Header4 sid01Header5 sid01IdJSON sid01URL

Benutzername, Passwort und sid habe ich mal rauseditiert.