Autor Thema: HomeConnect - HowTo  (Gelesen 37515 mal)

Offline rallye

  • Full Member
  • ***
  • Beiträge: 187
Antw:HomeConnect - HowTo
« Antwort #30 am: 06 Juli 2022, 18:44:56 »
Ich habe nun auch einen Geschirrspüler mit HC, aber ich scheitere fatal an der Einrichtung laut WIKI.  Meine Definition in FHEM ist:
defmod hcconn HomeConnectConnection AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA http://192.168.57.30:8083/fhem?cmd.Test=set%20hcconn%20auth%20 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
attr hcconn room Development

setstate hcconn Login necessary
setstate hcconn 2022-07-06 18:21:31 state Login necessary

und in Home Connect Developer Program:
Access                                                Private
Home Connect user account for testing                 FHEM-HA                 Add more
OAuth Flow                                            Authorization Code Grant Flow
Client ID                                             AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Client Secret (required)                              BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
Redirect URIs                                         http://192.168.57.30:8083/fhem?cmd.Test=set%20hcconn%20auth%20
One Time Token Mode                                   Enabled
Proof Key for Code Exchange                           Enabled

Wenn ich dann auf das "Login" klicke werde ich auf die Seite https://api.home-connect.com/security/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2F192.168.57.30%3A8083%2Ffhem%3Fcmd.Test%3Dset%2520hcconn%2520auth%2520&realm=fhem.de&client_id=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&scope=IdentifyAppliance%20Monitor%20Settings%20Dishwasher-Control%20Washer-Control%20Dryer-Control%20CoffeeMaker-Control&state=csrf_259071043683027 geschickt und dort wird folgendes angezeigt:
{
  "error": "invalid_request",
  "error_description": "Missing code challenge",
  "state": "csrf_259071043683027"
}

Was habe ich falsch gemacht ? Die App am Handy funktioniert einwandfrei. Danke
RaspiPi v4, Funkmodul: HM-LGW, 3x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE RemoteControl, 5x Hue White and Color Ambiance, 15xHue White Ambiance, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 11x Shelly

Offline SebastianStorb

  • Jr. Member
  • **
  • Beiträge: 78
Antw:HomeConnect - HowTo
« Antwort #31 am: 07 Juli 2022, 07:30:04 »
Bei mir geht es leider auch nicht.
{
  "error": "unauthorized_client",
  "error_description": "client not authorized for this oauth flow (grant_type)",
  "state": "HomeConnectConnection_auth"
}

Internals:
   DEF        9C05EAAC030492153777F5257284179093A2373E860598BF060D79XXXXXXXXXX http://192.168.1.100:8083/fhem?cmd.Test=set%20hcconn%20auth%20 35306929638CB5CE8BD362982A86B622DD131FF60721C414504111XXXXXXXXXX
   FUUID      62c06976-f33f-ec85-f191-96a2a4b9e21b466e
   FVERSION   48_HomeConnectConnection.pm:?/2022-07-02
   NAME       hcconn
   NR         830
   STATE      Login necessary
   TYPE       HomeConnectConnection
   api_uri    https://api.home-connect.com
   client_id  9C05EAAC030492153777F5257284179093A2373E860598BF060D79XXXXXXXXXX
   client_secret 35306929638CB5CE8BD362982A86B622DD131FF60721C414504111XXXXXXXXXX
   eventCount 1
   expires_at
   redirect_uri http://192.168.1.100:8083/fhem?cmd.Test=set%20hcconn%20auth%20
   READINGS:
     2022-07-07 07:25:31   state           Login necessary
Attributes:
   room       HomeConnect


Außerdem gibt es die Seite aus dem Wiki nicht ("404")
http://[code][code]https://github.com/sw-home/FHEM-HomeConnect/FHEM[/code][/code]



Access Private
Private access is limited to a single Home Connect user account as defined.
Home Connect user account for testing meine@email.de
OAuth Flow Device Flow
Client ID 9C05EAAC030492153777F5257284179093A2373E860598BF060D79XXXXXXXXXX
Client Secret (required) 35306929638CB5CE8BD362982A86B622DD131FF60721C414504111XXXXXXXXXX
Success Redirect http://192.168.1.100:8083/fhem?cmd.Test=set%20hcconn%20auth%20
One Time Token Mode

Offline m.zielinski

  • Jr. Member
  • **
  • Beiträge: 84
Antw:HomeConnect - HowTo
« Antwort #32 am: 25 August 2022, 14:48:49 »
Kurzer Ping - bei mir hat die Einrichtung eines Geschirrspülers mit Fhem Anbindung problemlos geklappt - jetzt muss ich nur noch den Fertig-Status irgendwie erkennen/benachrichtigen.

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8558
Antw:HomeConnect - HowTo
« Antwort #33 am: 26 August 2022, 16:18:08 »
Ich habe seit gestern zusätzlich zur Waschmaschine auch noch Geschirrspüler, Kochfeld und Backofen in Home Connect installiert. Ging problemlos: Erst mit der doofen App die Geräte registrieren, dann im Bridge Device "scanDevices" - und alle werden erkannt.

Für lesbare Statusmeldungen (und mein Sprachinterface natürlich) gibt es für Waschmaschine und Geschirrspüler Hilfsroutinen.
##############################################################################
#
#  Geschirrspüler
#
##############################################################################

sub dishTime($){
  my ($opt) = @_;
  my $sec = ReadingsNum("SN55ZS49CE","BSH.Common.Option.RemainingProgramTime",0);
  my $h = int($sec/3600);
  my $m = ceil( ($sec-3600*$h)/60);
  my $str;
  if( $opt == 1 ){
    return sprintf("%02d:%02d",$h,$m);
  }else{
    if( $h > 1){
      $str = sprintf("%d Stunden %d Minuten",$h,$m)
    }elsif( $h == 1){
      $str = sprintf("eine Stunde %d Minuten",$m)
    }else{
      $str = sprintf("%d Minuten",$m)
    } 
    if( $opt == 2 ){
      return $str;
    }else{
      return "im ".dishProgram(1).", dieses dauert noch ".$str;
    }
  }
}

sub dishProgram($){
  my ($opt) = @_;
  my $ps = ReadingsVal("Spülmaschine","state","");
  if( $ps =~ /Idle/){
    return "Programm fertig"
  }elsif( $ps =~ /Offline/ ){
    if( $opt == 1 ){
      return "Offline";
    }else{
      return "";
    }
  }
  my $pp = ReadingsVal("SN55ZS49CE","BSH.Common.Option.ProgramProgress","");
  my $pa = ReadingsVal("SN55ZS49CE","BSH.Common.Root.ActiveProgram","");
  my %pa2a = ("Dishcare.Dishwasher.Program.Eco50" => "Eco 50",
   ...         
  my $pa2 = $pa2a{$pa};
  if( $opt == 1 ){
    return sprintf("Programm %s (%s)",$pa2,$pp);
  }else{
    return sprintf("Programm %s, dieses ist zu %s fertig",$pa2,$pp);
  }
}
und userReadings
rTime:BSH.Common.Option.RemainingProgramTime.* {washTime(1)}, msgTime:BSH.Common.Option.RemainingProgramTime.* {washTime(2)}, rProgram:BSH.Common.Option.ProgramProgress.* {washProgram(1)},msgProgram:BSH.Common.Option.ProgramProgress.* {washProgram(2)}, msgAll:BSH.Common.Option.RemainingProgramTime.* {washTime(3)}sowie ein DOIF
([WAV28G43:".*BSH.Common.EnumType.OperationState.Finished.*"])
({fhem193Cmd('set TelegramBot message xxxxx Die Waschmaschine ist fertig!')},
 {fhem193Cmd('set TelegramBot message xxxxx Die Waschmaschine ist fertig!')},
 {speak('Tab1.EG',"Die Waschmaschine ist fertig")},
 setreading WAV28G43 msgAll derzeit nicht)

LG

pah

 

decade-submarginal