Windhager Heizung Werte über IP abfragen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Fendt43
    Dumb Home'r
    • 28.07.2023
    • 21

    Windhager Heizung Werte über IP abfragen

    Hallo zusammen,

    Ich möchte gerne von meiner Windhager Heizung über die IP Adresse verschiedene Werte abfragen.
    Mit der Eingabe "http://192.168.178.71/api/1.0/datapoint/1/17/0/104/2" im Browser ist es mir Beispielsweise möglich die Pufferladung in % ausgeben zu lassen (wie im 1.Bild zu erkennen).

    Bei der Eingabe als Virtuellen Eingang in der Loxone Config bekomme ich aber nicht die richtigen Daten zurück (am 2.Bild zu erkennen).

    Kann mir hierbei jemand weiterhelfen?

    Danke!
  • Tico
    Lox Guru
    • 31.08.2016
    • 1035

    #2
    Versuchen Sie es mit der folgenden URL -
    Code:
    http://192.168.178.71/api/1.0/datapoint/1/17/0/104/2
    Dann Befehlserkennung -
    Code:
    "value": "\v
    Zuletzt geändert von Tico; 03.10.2023, 15:05.
    Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

    Kommentar


    • Fendt43
      Fendt43 kommentierte
      Kommentar bearbeiten
      Leider gleiches Problem
  • Tico
    Lox Guru
    • 31.08.2016
    • 1035

    #3
    Besteht die Möglichkeit, dass Sie einen Benutzernamen und ein Kennwort, die Sie zuvor in den Browser eingegeben haben, zwischengespeichert haben? Wenn das der Fall ist, versuchen Sie Folgendes in der URL -

    Code:
    http://Username:Password@192.168.178.71/api/1.0/datapoint/1/17/0/104/2
    Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

    Kommentar

    • Fendt43
      Dumb Home'r
      • 28.07.2023
      • 21

      #4
      Habe es versucht dann bekomme ich leider eine Fehlermeldung zurück. Siehe Bild
      Wenn ich aber den ganzen URL in den Browser eingebe bekomme ich meine Werte angezeigt

      Kommentar


      • Tico
        Tico kommentierte
        Kommentar bearbeiten
        Das Bild, das Sie angehängt haben, wird bei mir nicht angezeigt. Vielleicht verkleinern Sie es und speichern es in einem anderen Format? Versuchen Sie auch, den Virtual HTTP Input Timeout auf 8000 [ms] zu ändern.
        Ich kann nur vermuten, dass die Windhager Heizung einen fehlerhaften Webserver hat, der den Miniserver kaputt macht.
    • Fendt43
      Dumb Home'r
      • 28.07.2023
      • 21

      #5
      Das mit dem Timeout auf 8000ms funktioniert leider nicht.
      Die Fehlermeldung die erscheint lautet: Datenabruf von "http://Service:***********@192.168.178.71/api/1.0/datapoint/1/15/0/115/0" fehlgeschlagen (Statuscode 401).
      Siehe HTTP-Monitor für weiter Informationen.

      Kommentar


      • Tico
        Tico kommentierte
        Kommentar bearbeiten
        Der Statuscode 401 ist etwas aussagekräftiger.

        Er deutet darauf hin, dass die Miniserver-Anfrage nicht korrekt mit dem Windhager Heater authentifiziert wird. Entweder -

        1. der Miniserver verfügt nicht über die richtige Methode zur Authentifizierung oder,
        2. die Anmeldeinformationen sind nicht korrekt.

        Für Punkt 1 können Sie nicht viel tun.
        Zu Punkt 2: Gibt es irgendwelche Sonderzeichen im Benutzernamen oder im Passwort? Können Sie eines oder beide so ändern, dass sie nur normale Zeichen enthalten? z.B. abcABC123
    • Fendt43
      Dumb Home'r
      • 28.07.2023
      • 21

      #6
      Ok danke.
      Dann wird es Punkt1 sein, im Benutzer und im Passwort gibt es keine Sonderzeichen.

      Gibt es eine Möglichkeit die Daten über Loxberry abzufragen und an den Miniserver weiterzugeben?

      Kommentar


      • Tico
        Tico kommentierte
        Kommentar bearbeiten
        Ich verwende Node-Red auf einem Loxberry, um schwierigere Geräte abzufragen. Es gibt hier einen Thread, der beschreibt, wie man Node-Red installiert. Sobald es installiert ist, bietet es eine leistungsfähigere Umgebung, die jedoch der Loxone Config ähnelt. Es übergibt dann Werte über das Loxberry MQTT Plugin an den Miniserver.

        Es gibt wahrscheinlich eine einfachere Möglichkeit, Plugins direkt auf dem Loxberry zu verwenden. Vielleicht hat jemand hier andere Ideen.
    • Fendt43
      Dumb Home'r
      • 28.07.2023
      • 21

      #7
      Habe es jetzt mit NodeRed versucht leider bekomme ich auch hier keine Daten übertragen. Anbei ein Bild mit den Einstellungen im NodeRed





      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2023-10-03 114746.png
Ansichten: 603
Größe: 40,2 KB
ID: 405697

      Kommentar

      • Tico
        Lox Guru
        • 31.08.2016
        • 1035

        #8
        Drag in an inject node (which changes to timestamp on screen) and connect to the HTTP Request node, followed by the debug node as follows -

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Node-Red.png
Ansichten: 664
Größe: 45,5 KB
ID: 405711

        This is where Node-Red is a bit more versatile than the Loxone Config.

        The Loxone Config can only do Basic Authentication. I would try both variations of basic authentication and digest authentication in Node-Red. Remember to do a Full Deploy between each option. Click the blue tab on the timestamp to trigger the flow.

        Have the debug pane selected to the view any response (six-legged bug symbol on the top-right of page). Post what you see in the debug pane.

        Finally, I noticed the values after datapoint in the URL are different across a couple of your posts. Is there a consistent URL, or do you need to change it?
        Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

        Kommentar

        • Fendt43
          Dumb Home'r
          • 28.07.2023
          • 21

          #9
          Thank you!

          Now it works i receive the values at the loxberry mqtt gateway.

          And yes the values after datapoint in the URL are for a specific data in this case for the temperature outside. But you can change the numbers to see the temperature of the heater, etc.


          This are the settings that worked well:


          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 2.png
Ansichten: 592
Größe: 50,3 KB
ID: 405724




          MQTT Gateway:



          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 3.png
Ansichten: 593
Größe: 95,7 KB
ID: 405725





          Debug:


          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 1.png
Ansichten: 589
Größe: 9,5 KB
ID: 405726






          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 4.png
Ansichten: 595
Größe: 15,2 KB
ID: 405727
          Angehängte Dateien

          Kommentar

          • Tico
            Lox Guru
            • 31.08.2016
            • 1035

            #10
            Great to hear! It appears Digest Authentication was the solution.

            You've also got the 'Show details and advanced settings' in the MQTT Gateway 'Incoming overview' to prevent unwanted data being sent to the Miniserver.
            Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

            Kommentar

            • Fendt43
              Dumb Home'r
              • 28.07.2023
              • 21

              #11
              Hello Tico ,
              Since the requests are working fine since last year now, I would like to send some commands to the Windhager surface to change the room temperature or the heating mode. Do you know a way i can send a command to the Windhager surface for example the number 1 or 0 and to save that?
              It looks like this is a little bit more demanding...


              Angehängte Dateien

              Kommentar

              • Tico
                Lox Guru
                • 31.08.2016
                • 1035

                #12
                It looks like it is possible, but I don't have enough information to be sure -

                Windhager BioWin102 + InfoWin Touch. Contribute to sessl3r/windhager development by creating an account on GitHub.


                From the last paragraph in the above link ("Put value must be string"), you need to identify what OID value you wish to alter. Note there's a placeholder in the Inject node to put the required information. Here's the code to import into Node-Red (click the menu button in the top-right corner and select Import, then paste the code) -

                Code:
                [
                    {
                        "id": "inject-node",
                        "type": "inject",
                        "z": "your-flow-id",
                        "name": "",
                        "props": [
                            {
                                "p": "payload",
                                "v": "{\"OID\": \"your-OID-value\", \"value\": \"your-value\"}",
                                "vt": "json"
                            }
                        ],
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "topic": "",
                        "x": 150,
                        "y": 100,
                        "wires": [
                            [
                                "http-request-node"
                            ]
                        ]
                    },
                    {
                        "id": "http-request-node",
                        "type": "http request",
                        "z": "your-flow-id",
                        "name": "",
                        "method": "POST",
                        "ret": "txt",
                        "paytoqs": false,
                        "url": "http://your-api-url/api/1.0/datapoint",
                        "tls": "",
                        "persist": false,
                        "proxy": "",
                        "authType": "",
                        "x": 350,
                        "y": 100,
                        "wires": [
                            [
                                "debug-node"
                            ]
                        ]
                    },
                    {
                        "id": "debug-node",
                        "type": "debug",
                        "z": "your-flow-id",
                        "name": "",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "false",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 550,
                        "y": 100,
                        "wires": []
                    }
                ]

                There's another hint at this link in how to find all the OID values -

                I see 2 climates control (UML FBH and UML HK1). They should popup into HA. I don’t know what is “WVF” (function = 15 ?). Maybe it’s your MultiWin+ heater ? You can explore the OIDs by change de prefix in the query : Example for the WVF node : curl “http:///api/1.0/lookup/1/20” --digest -u USER:{pass}


                Code:
                [
                    {
                        "id": "inject-node",
                        "type": "inject",
                        "z": "your-flow-id",
                        "name": "Trigger Request",
                        "props": [],
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "topic": "",
                        "payloadType": "str",
                        "x": 150,
                        "y": 100,
                        "wires": [
                            [
                                "http-request-node"
                            ]
                        ]
                    },
                    {
                        "id": "http-request-node",
                        "type": "http request",
                        "z": "your-flow-id",
                        "name": "HTTP GET Request",
                        "method": "GET",
                        "ret": "txt",
                        "paytoqs": false,
                        "url": "http:///api/1.0/lookup/1/20",
                        "tls": "",
                        "persist": false,
                        "proxy": "",
                        "authType": "digest",
                        "x": 350,
                        "y": 100,
                        "wires": [
                            [
                                "debug-node"
                            ]
                        ],
                        "credentials": {
                            "user": "USER",
                            "password": "{pass}"
                        }
                    },
                    {
                        "id": "debug-node",
                        "type": "debug",
                        "z": "your-flow-id",
                        "name": "Debug Response",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "true",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 550,
                        "y": 100,
                        "wires": []
                    }
                ]
                Zuletzt geändert von Tico; 16.06.2024, 03:23.
                Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                Kommentar

                • Fendt43
                  Dumb Home'r
                  • 28.07.2023
                  • 21

                  #13
                  Thank you for your fast response!

                  I've tried it and it looks like the value will be changed but not to the value i sent to the api. After i clicked inject the value changed to "-" and not to "2".
                  Angehängte Dateien

                  Kommentar

                  • Tico
                    Lox Guru
                    • 31.08.2016
                    • 1035

                    #14
                    This code sends the value (2) as a string instead of a json numeric value.

                    edit: Method should be changed to PUT

                    Code:
                    [
                        {
                            "id": "4606eeeab464f2f0",
                            "type": "inject",
                            "z": "e2778122e634373b",
                            "name": "",
                            "props": [
                                {
                                    "p": "payload"
                                }
                            ],
                            "repeat": "",
                            "crontab": "",
                            "once": false,
                            "onceDelay": 0.1,
                            "topic": "",
                            "payload": "{\"OID\":\"your-OID-value\",\"value\":\"2\"}",
                            "payloadType": "str",
                            "x": 350,
                            "y": 320,
                            "wires": [
                                [
                                    "adc9bb5d3e224e97"
                                ]
                            ]
                        },
                        {
                            "id": "adc9bb5d3e224e97",
                            "type": "http request",
                            "z": "e2778122e634373b",
                            "method": "POST",
                            "ret": "txt",
                            "paytoqs": false,
                            "url": "http://your-api-url/api/1.0/datapoint",
                            "tls": "",
                            "proxy": "",
                            "authType": "",
                            "x": 550,
                            "y": 320,
                            "wires": [
                                [
                                    "96ea6ace2ef8df97"
                                ]
                            ]
                        },
                        {
                            "id": "96ea6ace2ef8df97",
                            "type": "debug",
                            "z": "e2778122e634373b",
                            "active": true,
                            "tosidebar": true,
                            "console": false,
                            "tostatus": false,
                            "complete": "false",
                            "statusVal": "",
                            "statusType": "auto",
                            "x": 750,
                            "y": 320,
                            "wires": []
                        }
                    ]
                    Zuletzt geändert von Tico; 16.06.2024, 12:27.
                    Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                    Kommentar

                    • Fendt43
                      Dumb Home'r
                      • 28.07.2023
                      • 21

                      #15
                      This works great now. It turned out that the URL can only be as long as the datapoint without including the additional address. Then it works.
                      So thank you for this, I really appreciate your patience with me

                      Could you help me with triggering the inject button via Loxone too? I'm not sure if this can be made directly with Loxone or if it has to be via loxberry, like the requests from above.
                      Angehängte Dateien

                      Kommentar


                      • Tico
                        Tico kommentierte
                        Kommentar bearbeiten
                        Have you got Node-Red-Contrib-Loxone installed via the 'Palette manager'? If not, got to the Node-Red menu (top-right), then 'Manage palette', then 'Install' tab. Then in the 'search modules' field, type in Node-Red-Contrib-Loxone. Install it and I will follow up with linking Loxone direct to the Node-Red HTTP Put Request.
                        Zuletzt geändert von Tico; 16.06.2024, 13:03.
                    Lädt...