HomeConnect - HowTo

Begonnen von Pf@nne, 18 Dezember 2017, 21:30:38

Vorheriges Thema - Nächstes Thema

rallye

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, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

SebastianStorb

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")
//[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

m.zielinski

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.

Prof. Dr. Peter Henning

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

nookie

Hi,
für mich hab ich ein neues Userreading erstellt der die Uhrzeit des Fertigstellen berechnet, vielleicht braucht es ja jemand.

attr <DevName> userReadings <DevName>.mytime_fin:BSH.Common.Option.RemainingProgramTime:.* {\
    use Date::Parse;;\
   my $timestamp = ReadingsTimestamp("<DevName>","BSH.Common.Option.RemainingProgramTime","2000-01-01 00:00:00");;\
   my $seconds = time_str2num($timestamp);;\
   my $addsec = sprintf("%.0f",ReadingsNum($name,"BSH.Common.Option.RemainingProgramTime",0));;\
   my $fin_time = $seconds + $addsec;;\
   \
   my $result = POSIX::strftime("%H:%M",localtime($fin_time));;\
    return "$result";;\
}

Prof. Dr. Peter Henning

So etwas gehört nicht in die Konfiguration, sondern in ein Perl-Modul.

LG

pah

Adolar

Hallo @all,

ich habe meinen Geschirrspühler soweit angebunden.
Ich muß mal blöd fragen: welchen Vorteil hat die Anbindung in FHEM? Ok, Telegram schickt mir eine Nachricht 5 min bevor und wenn er fretig ist. Ich hatte jedoch z.B. auf Verbrauchswerte gehofft. Gibt es die Möglichkeit?
Startet wirklich jemand den Spühler aus FHEM heraus? -also erst einräumen, dann Tür schließen, damm zum PC (oder #Endgerät) und starten? Ich sehe den Vorteil nicht.

Gruß,
Adolar

olbetec

Nun ja das ist etwas Offtopic. Du könntest bzgl. Home Connect / FHEM deinen Geschirrspüler von unterwegs starten wollen, weil du noch nicht weißt, wann du nach Hause kommst. Ich stelle nach Programmablauf gern die Tür auf, damit das Geschirr und insbesondere Plastikteile besser trocknet (trotz Zeolith-Gedöns bei den BSH-Geräten). Es geht hier also um eine flexible Startzeit oder auch Endzeit-Vorwahl...
FB 7390 (6.03), CUL868 Ver3.4 (fw1.58), FHEM 5.5
7x FHT80b, 6x FHT80TF, 12x FHT8V, 3x FS20ST, FS20KSE, EMWC, EMGZ, 4x FS20PIRU, FS20DI20, FS20DI22, 3x HMS100T, 4xS300TH, 2xPID, FS20S8M mit diy 6-fach Relaiskarte zur Steuerung der Brennwerttherme (Außenfühler-Boost, Wasserladung, Tag/Nacht/Auto)

Prof. Dr. Peter Henning

Spühler, soso.

ZitatIch sehe den Vorteil nicht.

Nun, dann Augen auf. Beispiel: Mit einem einzigen Kommando so einstellen, dass die Spülmaschine um 6:00 in der Frühe fertig ist. Entlastet die Stromnetze kolossal.

LG

pah

Adolar

Ja, gut, ok, Danke.
Und nix mit Messwerten  :(

Prof. Dr. Peter Henning

Wie sollte die interne Elektronik das auch messen, wenn sie keine entsprechenden Sensoren hat? Immerhin produziert meine Spülmaschine Readings "EnergyForecast" und "WaterForecast". Prinzipiell könnte ich den Energie- und Wasserverbrauch auch messen, wenn ich das Ding mal nachts laufen lasse und die Grundlast abziehe. Habe ich aber noch nicht gemacht, insofern kann ich zur Genauigkeit dieser Daten keine Aussage machen.

Das eigentliche Problem bei HomeConnect ist, dass BSH nicht von dieser blöden Cloud-Idee abweichen will und den Daumen auf bestimmte Sachen hält (angeblich aus Sicherheitsgründen). Zusammen mit dem völlig inkońsistenten API (vor allem, wenn man über mehrere Gerätetypen hinweg nach Lösungen sucht) führt das zu der klaren Einstufung als "Sackgasse der SmartHome-Evolution".

Aus meiner Sicht ist der wirkliche Grund für diese absurde Firmenpolitik, dass man auf diese Weise Werbung (inklusive In-App-Käufe) zum Kunden transportieren. Die Marketing-Abteilung schwingt da wohl das große Wort.

LG

pah

Adolar

Readings mit *Forecast bzw Energ* oder Water* bekomme ich leider nicht - zumindest steht nichts im log.

Aladin222

#42
Zitat von: Sascha_F am 16 Februar 2022, 06:51:17
Hi @all: Sagt mal, wird euer Geschirrspüler auch nicht mehr aktualisiert? In der HomeConnect-App alles fein, aber in FHEM gibt es kein Lebenszeichen mehr. Auch in Alexa, Test über homeBridge und Smartthings liefert zum Geschirrspüler nur "offline". Wenn jemand Ideen hat, immer gern her damit, denn die Info, dass er fertig ist und ich ihn öffnen kann/sollte ist schon hilfreich ;-)


Hi @all,
genau dieses Problem habe ich auch ! Mein Geschirrspüler zeigt auch nur noch "offline" - gibt es da schon eine Lösung ?

(EDIT)
So wie es aussieht , war die Verbindung vom Geschirrspüler zum Server nicht in Ordnung !
In der Handy-App /Einstellungen habe ich die Verbindung zum Server einmal On/Off gesetzt ....nun scheint es wieder zu gehen :-)

hyper2910

Hallo,

Ich wollte das Modul testen, da wir vor der Wahl stehen welche der nächste Geschirrspüler wird.

Ich habe alles angelegt und mich auch verbunden. Dann habe ich ein Demogerät angelegt, aber dieses wird nicht angezeigt.

Ich habe gelesen das ich simulator vor die ClientID packen soll. Dann kann ich mich aber nicht mehr anmelden,

Hat jemand eine Idee?
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

laufhem

Zitat von: FHEM PI am 31 Juli 2021, 21:32:33
Zitat von: alpine310 am 20 April 2021, 18:04:53Hallo
wer kann mir helfen die Bäume zu verschieben, damit ich den Wald wieder sehe ::)....

ich habe alle Vorarbeiten gemacht wie es oben und im Wiki steht...hat soweit auch geklappt

anschließend
define hcconn HomeConnectConnection API-KEY REDIRECT-URL CLIENT-SECRETmit meine Werten hat auch funktioniert

Nach klick auf Home_Connect_Login komme ich zur Login-Seite und kann mich auch einloggen.

Nach dem klick auf zulassen springt mein Browser zurück auf eine leere Seite mit der URL:
http://192.168.2.131:8083/fhem?cmd.Test=set%20hcconn%20auth%&code=eyJ4LXJlZyI6IkVVIiwieC1lbnYiOiJQUkQiLCJ0b2tlbiI6Ijg0OTVlNDYyLTkzN2EtNGNlMS05ZGM4LWQxZDk0ZjM4ZmZjYiIsImNsdHkiOiJwcml2YXRlIn0%3D&state=csrf_889157400654684&grant_type=authorization_code
Mein Modul hcconn hat weiterhin state=Login necessary

Hat jemand eine Idee wo der Fehler liegt?

Gruß Martin

Ich habe leider das gleiche Problem.
Hast du schon eine Lösung gefunden?

Jetzt läuft es bei mir.
Das Problem war die Sicherheitsfunktion csrfToken in FHEM!!!

Lösung:
attr WEB csrfToken myToken123

und dann an die redirectURL noch diesen Teil anhängen:

&fwcsrf=myToken123

Hallo,

ich habe auch das oben beschriebene Problem, aber die hier zitierte "Lösung" funktioniert bei mir nicht. Es bleibt weiterhin bei Login Necessary. Was mache ich falsch?