Ankündigung

Einklappen
Keine Ankündigung bisher.

http request (Grünbeck)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    http request (Grünbeck)

    Hallo zusammen,

    ich versuche gerade die Daten meiner Grünbeck Enthärtungsanlage SD21 aus der Cloud ;-( zurückzulesen.
    Da der Gira X1 anscheinend nur unverschlüsselte Seiten abfragen kann, versuche ich es nun mal über OpenHAB 4.

    Mein Ziel wäre es, die Daten per String zu erhalten und dann die einzelnen Werte der Enthärtungsanlage per json abzufragen und in eine influxdb zu schreiben.

    things:
    Code:
    Thing http:url:Entkalkung "Entkalkung" [
        //baseURL="https://prod-eu-gruenbeck-api.azurewebsites.net/api/devices/softliQ.D/BS12345678",
        baseURL="https://gruenbeckb2c.b2clogin.com/a50d35c1-202f-4da7-aa87-76e51a3098c6/b2c_1a_signinup/oauth2/v2.0/authorize?response_type=id_token&redirect_uri=https://prod-eu-gruenbeck-api.azurewebsites.net/.auth/login/aad/callback&client_id=5a83cc16-ffb1-42e9-9859-9fbf07f36df8&scope=openid+profile+email&response_mode=form_post&nonce=0caa757ad6db44bb9ff7bec3f121d80a_20231018164923&state=redir=/api/devices/softliQ.D/BS12345678",
        refresh=60,
        username="username",
        password="password",
        authMode="BASIC",
        timeout=6000,
        ignoreSSLErrors="false"] {
            Channels:
             Type string : text "Text" [ stateTransformation="JSONPATH:$.metadata.data" ]
    }​
    items:
    Code:
    String MyGruenbeckStatus "Status is [%s]" {channel="http:url:Entkalkung"[profile="transform:JSONPATH", function="$.statusInfo.status"]}
    
    Number   nominalFlow        "nominalFlow [%d]"           {channel="http:url:Entkalkung"[profile="transform:JSONPATH", function="$.nominalFlow"]}
    Number   rawWater           "rawWater [%d]"               {channel="http:url:Entkalkung"[profile="transform:JSONPATH", function="$.rawWater"]}
    Number   Water_0_value       "Water-0-value [%d]"         {channel="http:url:Entkalkung"[profile="transform:JSONPATH", function="$.water.0.value"]}
    
    ​
    Leider funktioniert es nicht und ich erhalte im log folgende Meldung:
    Code:
    2023-10-18 20:13:47.736 [WARN ] [ttp.internal.http.RefreshingUrlCache] - Could not find authentication result for 'https://prod-eu-gruenbeck-api.azurewebsites.net/api/devices/softliQ.D/BS12345678', failing here
    
    ​
    Habe ich irgendwo einen Fehler dadrin? Oder habe ich etwas übersehen?

    VG Martin

    PS: ich benutze die textbasierte Konfiguration.
    Zuletzt geändert von mortyPi; 18.10.2023, 21:19.

    #2
    Ja

    Leider kann ich Dir nicht verraten, wie es "richtig" funktioniert, aber der Punkt ist, die Anmeldung läuft nicht über die baseURL.
    Die baseURL wird in jedem Channel verwendet und durch die stateExtension bzw. commandExtension erweitert. Die Authentisierung muss davon getrennt laufen.

    Auf die Schnelle habe ich das hier gefunden: https://community.openhab.org/t/oaut...b-org/46680/23 aber das ist schon extrem gut abgehangen und vielleicht gibt es inzwischen eine bessere Variante.

    Der Punkt ist, dass Du offensichtlich einen Token brauchst, und dieser Token steht nicht fest, sondern wird dynamisch generiert. Du bräuchtest also ein Thing, welches sihc mit diesem Token identifiziert, und ein zweites Thing, welches den Token abholt.
    Da der Token im http Thing fix ist, müsste man ihn z.B. mittels Rule über die REST API von openHAB ins Thing schreiben.

    Ich habe keine entsprechenden Seiten zur Hand, so dass Du letztlich weiter wirst forschen müssen, aber vielleicht hast Du damit zumindest eine Richtung...

    Kommentar


      #3
      Hallo udo1toni,

      vielen Dank für Deine Antwort.
      Schade, dass es doch nicht so einfach ist, wie ich dachte. Aber auf der anderen Seite scheint diese Cloud ja einigermaßen sicher zu sein .
      Ich werde mal weiter forsche & suchen.

      Danke nochmal,
      Martin

      Kommentar


        #4
        Na ja, über die Sicherheit sagt das leider gar nichts aus, es ist lediglich so, dass Du als Anwender einen hohen Aufwand treiben musst, um an Deine Daten zu kommen.
        Ob das für einen Hacker ein schwer zu überwindendes Hindernis ist, steht aber auf einem anderen Blatt, der nutzt nämlich meist gar nicht den Vordereingang...
        openHAB nutzt ebenfalls Token, die auch lang genug sind, dass man die nicht einfach knacken kann, in openHAB selbst ist nur der passende Hash gespeichert, weshalb ein Token auch nur beim Erstellen angezeigt werden kann. So wird das auch von anderen Anbietern genutzt, und das ist wesentlich einfacher zu handhaben.

        Kommentar

        Lädt...
        X