Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19000721: NibeUplink API Request - LBS19000723: NibeUplink API Parameters

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

    LBS19000721: NibeUplink API Request - LBS19000723: NibeUplink API Parameters

    Hier mein neuer LBS für Nutzer von Nibe Wärmepumpen.
    Der LBS nutzt im Gegensatz zu den bisherigen Ansätzen die API von Nibe anstatt die Internetseite zu parsen.
    Das ist robuster, da der LBS nicht von Änderungen an der Webseite abhängt. Außerdem können mehr Informationen ausgelesen werden.

    Wem die Einrichtung zu komplex ist, dem sei der "LBS 19000210 - Nibe Uplink" empfohlen.

    Die Funktionalität ist in dre LBS aufgeteilt:

    Der LBS19000721 kommuniziert mit der API und gibt grundsätzliche Statusinformationen aus.
    Der LBS19000723 ergänzt den LBS19000721 und gibt beliebige, von der Wärmpumpe unterstützte, Datenpunkte aus.
    Der LBS19000727 Ändert Parameter der Wärmepumpe

    LBS19000721(Download hier)



    Installation

    Dieser LBS benötigt Zugriff auf die NibeUplink API um Daten abrufen zu können.
    Dazu muss zunächst ein API-Zugang eingerichtet werden und dann die nötigen Daten
    EDOMI zur Verfügung gestellt werden.
    Alle nötigen Schritte sind in dieser Anleitung zusammengefasst.

    1. Installation zusätzlicher Dateien
    Der LBS eine zusätzliche PHP Klasse zur Abwicklung des OAuth2 Protokolls. Die zum
    Zeitpunkt der Erstellung des LBS aktuelle Version wird mit dem LBS ausgeliefert.

    Bitte kopiere den Ordner "OAuth2" nach:

    /usr/local/edomi/main/include/php/

    Ein "Installationsscript" wickelt die initale OAuth2 Authentifizierung ab und schreibt
    die initialen Zugangsdaten per Remote-Schnittstelle in ein EDOMI iKO.
    Dieses Script muss für den Webserver zugänglich sein. Bitte kopiere die Datei "nibe.php"
    nach:

    /usr/local/edomi/www/admin/

    2. Anlegen des Zugangs für die API
    Besuche https://api.nibeuplink.com/ und logge dich mit deinen Zugangsdaten für NibeUplink ein.

    - Klicke auf "MY APPLICATIONS", das folgende Formular wird angezeigt:

    01.PNG

    - Gib einen Namen und eine Beschreibung für die neue Applikation ein, z.B. "Edomi"
    - Gib die Callback URL ein:
    Auf diese URL wird nach dem Authentifizieren weitergeleitet. Sie muss nicht vom Internet aus erreichbar sein. Nur von dem Rechner aus, auf dem
    der Authentifizierungsprozess ausgeführt wird.
    Bitte gib hier http://[EDOMI_HOSTNAME]/admin/nibe.php ein.
    Ersetze [EDOMI_HOSTNAME] mit dem Namen über den du auf Edomi zugreifst.
    Zum Beispiel http://edomi/admin/nibe.php or http://192.168.1.100/admin/nibe.php
    - Akzeptiere die Service-Bedinungen und klicke auf "Create Application".
    - Auf der nächsten Seite werden ein "Identifier" und ein "Secret" angezeigt. Diese bitte notieren/kopieren/Seite offen lassen.

    3. iKO in Edomi anlegen

    02.png

    Das Einrichtungs-Script speichert das AccessToken für den API-Zugang in einem remanenten iKO in Edomi.
    - Lege ein neues iKO an. Der Name ist egal. Merk dir die ID (wird in der KO-Liste hinter dem Namen angezeigt.)
    WICHTIG: Das iKO muss "Remanent" sein!
    - Unter "Verwaltung" > "Accounts" muss ein Passwort für den "Fernzugriff" eingerichtet sein. (Siehe EDOMI-Hilfe)
    - Unter "Konfiguration" > "Fernzugriff" bitte über "Neu" den Zugriff auf das eben erstellte iKO zulassen.
    Der Zugriff auf das iKO kann nach der Einrichtung wieder gelöscht werden.
    Alternativ: Keinen Fernzugriff einrichten. Dann muss nach Abschluss der Inhalt des iKO manuell über "Wert setzen" in das iKO geschrieben werden.

    4. Edomi für den Zugriff auf NibeUplink authentifizieren
    - Öffne http://[EDOMI_HOSTNAME]/admin/nibe.php
    - Gib die ID des iKOs ein, welches in Schritt 3 erstellt wurde.
    - Gib den "Identifier" und das "Secret" aus Schritt 2 ein.
    - Gibt die Zugangsdaten für den Remote-Zugriff ein. Diese werden nur für das einmalige Schreiben des iKOs benötigt.
    (ODER: leer lassen und Wert nach Abschluss manuell setzen, siehe Schritt 3.)
    - Klicke auf "Start"
    - Du wirst jetzt auf NibeUplink weiter geleitet. Hier bitte einloggen, das Captcha lösen und auf "Accept" klicken.
    - Du wirst zurück auf das Installer-Script geleitet. Hier sollte eine kurze Erfolgsnachricht stehen.
    Wenn nicht, dann bitte hier fragen/posten.

    Das wars, fertig! Der LBS kann jetzt eingesetzt werden. Bitte E1 und A1 mit dem iKO für das AccessToken verbinden.





    LBS19000723(Download hier)


    Dieser LBS nimmt an E1 die Daten von A8 des LBS19000721 entgegen.
    An E4-E13 können Parameter-IDs angegeben werden, deren Werte dann auf A4-A13 ausgegeben werden.
    Alle unterstützten Parameter werden vom Installationsscript desLBS19000721 ausgegeben. Die Liste sieht in etwa so aus:

    Code:
    40004:     outdoor temp.(°C)
    40067:     avg. outdoor temp(°C)
    40013:     hot water top(°C)
    40014:     hot water charging(°C)
    43005:     degree minutes(DM)
    40022:     suction gas(°C)
    40018:     hot gas(°C)
    40019:     liquid line(°C)
    40017:     condenser out(°C)
    40015:     brine in(°C)
    40016:     brine out(°C)
    43416:     compressor starts()
    43420:     compressor operating time(h)
    10012:     blocked()
    43424:     compressor operating time hot water(h)
    43439:     brine pump speed(%)
    43437:     pump speed heating medium(%)
    40008:     heat medium flow(°C)
    40012:     return temp.(°C)
    43009:     calculated flow temp.(°C)
    40033:     room temperature(°C)
    43161:     external adjustment()
    40071:     external flow temp.(°C)
    40008:     heat medium flow(°C)
    40012:     return temp.(°C)
    47276:     floor drying function()
    44270:     calculated flow temp.(°C)
    43152:     external blocking()
    10033:     blocked()
    43081:     time factor(h)
    43084:     electrical addition power(kW)
    47212:     set max electrical add.(kW)
    47214:     fuse size(A)
    40072:     flow(l/m)
    44308:     heating, compr. only.(kWh)
    44306:     hotwater, compr. only.(kWh)
    44304:     pool, compr. only.(kWh)
    44300:     heating, int. add. incl.(kWh)
    44298:     hw, incl. int. add(kWh)
    40771:     pool2, compr. only(kWh)
    47411:     AUX1()
    47410:     AUX2()
    47409:     AUX3()
    47408:     AUX4()
    47407:     AUX5()
    47412:     X7()
    0:         version()
    0:         product()
    0:         serial number()
    48745:     country()
    Es können mehrere LBS verwendet werden, je nachdem wie viele Parameter angezeigt werden sollen.

    LBS19000727(Download hier)

    Dieser LBS erweitert den Funktionsumfang um das Schreiben von Einstellungsparametern.
    Er benötigt das Token IKO an E1. Das Archiv enthält das gleiche Installationsscript wie der LBS19000721. Sollte dieser bei euch schon in Betrieb sein, muss nur ggf. das Script noch einmal ausgeführt werden, damit die Berechtigungen von Nur-Lesen auf Lesen/Schreiben geändert werden.

    Aktuell können folgende Parameter geschrieben werden:
    Code:
    Id                    Min        Max        Step     Description
    hot_water_boost        0        1        1        Start a hot water boost, i.e. temporary lux, lasting 3 hours. Set to 1 to start, 0 to stop.
    ventilation_boost    0        1        1        Start a ventilation boost, i.e. ventilation speed 4, lasting the system specific return time hours. Set to 1 to start, 0 to stop.
    47008                -10        10        1        The parallell adjustment for climate system 4 when heating
    47009                -10        10        1        The parallell adjustment for climate system 3 when heating
    47010                -10        10        1        The parallell adjustment for climate system 2 when heating
    47011                -10        10        1        The parallell adjustment for climate system 1 when heating
    47395                5        30        0.5        The target room temperature for climate system 4 when heating
    47396                5        30        0.5        The target room temperature for climate system 3 when heating
    47397                5        30        0.5        The target room temperature for climate system 2 when heating
    47398                5        30        0.5        The target room temperature for climate system 1 when heating
    48491                -10        10        1        The parallell adjustment for climate system 8 when heating
    48492                -10        10        1        The parallell adjustment for climate system 7 when heating
    48493                -10        10        1        The parallell adjustment for climate system 6 when heating
    48494                -10        10        1        The parallell adjustment for climate system 5 when heating
    48680                5        30        0.5        The target room temperature for climate system 8 when heating
    48681                5        30        0.5        The target room temperature for climate system 7 when heating
    48683                5        30        0.5        The target room temperature for climate system 5 when heating
    48682                5        30        0.5        The target room temperature for climate system 6 when heating
    48732                -10        10        1        The parallell adjustment for climate system 8 when cooling
    48733                -10        10        1        The parallell adjustment for climate system 7 when cooling
    48734                -10        10        1        The parallell adjustment for climate system 6 when cooling
    48735                -10        10        1        The parallell adjustment for climate system 5 when cooling
    48736                -10        10        1        The parallell adjustment for climate system 4 when cooling
    48737                -10        10        1        The parallell adjustment for climate system 3 when cooling
    48738                -10        10        1        The parallell adjustment for climate system 2 when cooling
    48739                -10        10        1        The parallell adjustment for climate system 1 when cooling
    48778                5        35        0.5        The target room temperature for climate system 8 when cooling
    48779                5        35        0.5        The target room temperature for climate system 7 when cooling
    48780                5        35        0.5        The target room temperature for climate system 6 when cooling
    48781                5        35        0.5        The target room temperature for climate system 5 when cooling
    48782                5        35        0.5        The target room temperature for climate system 4 when cooling
    48783                5        35        0.5        The target room temperature for climate system 3 when cooling
    48784                5        35        0.5        The target room temperature for climate system 2 when cooling
    48785                5        35        0.5        The target room temperature for climate system 1 when cooling
    FAQ

    Welche Anlagen werden unterstütz?
    Es sollte alles generisch sein. Was die API liefert kann ausgewertet werden. Allerdings habe ich nur meine Anlage zum Testen.
    Wenn jemand von euch eine Luft/Wasser oder Luft/Luft WP von Nibe sein Eigen nennt, wäre es nett wenn ihr mir mit ein paar Debug-Infos helfen würdet.
    Noch einfacher wäre es, mir kurzzeitig lesenden Zugriff auf euer System zu geben. Dann kann ich ein paar Requests absetzen und ggf. den LBS anpassen.

    Warum brauche ich einen gesonderten LBS für die Ausgabe der Werte?
    Wie bereits erwähnt: Jede Anlage ist anders. Anderer Typ, andere Konfiguration, anderes Zubehör. Ich habe keine Möglichkeit alle Datenpunkte für alle möglichen Varianten zu implementieren - schon alleine weil ich sie nicht kenne.
    Es nützt ja auch kein LBS bei dem entweder bestimmte Parameter fehlen oder wo Parameter nicht funktionieren weil die Anlage sie nicht unterstützt.
    Außerdem braucht man ja ggf. nicht alle Werte.

    Kann der LBS Einstellungen der WP ändern?
    Leider noch nicht. Einige wenige beschreibbare Einstellungen sind in der Dokumentation von Nibe gelistet. API-seitig ist die Funktion allerdings noch nicht implementiert.

    Welche Funktionen sind noch geplant?
    - Warnungen, Anzeige der Warnungstexte, sofern eine Warnung anliegt. "Alte" Warnungen lassen sich nur mit speziellen Berechtigungen lesen.
    Hier benötige ich noch ein paar Daten. Weiß jemand wie man eine "ungefährliche" Warnung an der WP auslösen kann?
    - Details Software-Update, sofern applikabel.
    - Schreiben von Werten/Konfig, sobald die API das richtig unterstützt.

    Warum liefert der LBS falsche Werte?
    Das kommt drauf an, was falsch ist. Aktuell sehe ich leider immer mal wieder, dass NibeUplink falsche Daten liefert. Sowohl per API als auch auf der Internetseite. Diese Daten sind leider ggf. nicht mit den tatsächlichen Anlagendaten konsistent und auch in sich nicht stimmig. (z.B. WT Pumpendrehzal dauerhaft auf einem bestimmten Wert obwohl aus.)

    Im Log sehe ich eine Fehlermeldung "429", was bedeutet das?
    Nibe lässt nur eine bestimmte Anzahl an Anfragen über die API zu. Aktuell sind das pro Anwendung "1 Anfrage/4 Sekunden".
    Gelegentliche Spikes sind in Ordnung. Aktuell macht der LBS 4 Anfragen innerhalb kurzer Zeit. Das führt bei mir aktuell nicht zu Problemen.
    Dennoch sollte die Frequenz der Aufrufe nicht zu hoch sein. Taucht der Fehler im Log auf: Kurz warten und den LBS nicht so häufig triggern.
    (Ggf. kann man mit mehreren Instanzen des LBS arbeiten und mehr als einen Client anlegen )
    Wenn es dauerhaft zu Problemen kommt, werde ich die Abfragen im LBS zeitlich entzerren.


    Und nun: Auf ans Testen!
    Angehängte Dateien
    Zuletzt geändert von DerSeppel; 16.08.2018, 23:51.

    #2
    Super.
    sobald ich in Edomi soweit bin, werd ich das mit meiner 1155 probieren.

    Kommentar


      #3
      Super Arbeit
      dann kann ich meinen LBS ja in Rente schicken

      Ich warte mal bis man dann auch Werte ändern kann.

      Das ab und zu Werte falsch angezeigt werden ist mir auch aufgefallen, jedoch liegen die so auf der Webseite und werden von meinem LBS auch genau so übernommen. Dies ist aber erst seit ein paar Wochen so.

      Kommentar


        #4
        Wäre nett, wenn ihr mal probieren könntet ob's mit der Einrichtung klappt.

        basaltnischl Welche Anlage/Welches Zubehör hast du an deiner Anlage?

        - Was das Thema "Werte schreiben" angeht, bin ich eher pessimistisch ob das in naher Zukunft kommt. Die aktuelle API Version ist leider verbuggt und irgendwie scheint da wenig "Schwung" drin zu sein. Aber wir warten mal ab ...
        - Das Fehlverhalten hat gefühlt mit der letzten Wartung angefangen, die auf der Internetseite angekündigt war.

        Kommentar


          #5
          Habe grade mal eine Email an den NibeUplink Support geschickt wegen der falschen Daten.
          Vielleicht könnt Ihr ja auch mal schreiben um dem ganzen etwas Nachdruck zu verleihen.

          Kommentar


            #6
            Schade, da hab ich meinen Baustein fertig und da ist NibeUplink quasi nicht mehr nutzbar. Aktuell ist das Ding nur Schrott. Zeit sich mit Modbus zu beschäftigen?

            Kommentar


              #7
              Du meinst wegen den Fehlern die im Moment drin sind?
              Werde deinen Baustein nächste Woche mal testen.

              Kommentar


                #8
                Ja, teilweise werden Werte über Stunden nicht aktualisiert.

                Kommentar


                  #9
                  Kann es sein, dass die API jetzt gar nicht mehr tut?
                  Ich habe heute morgen alles eingerichtet, bisher aber noch keinerlei Werte erhalten:
                  screenshot.PNG


                  BTW. Wenn die nicht einen solchen Wucherpreis für die Modbus-Erweiterung verlangen würden wäre ich da auch dabei.

                  EDIT: Alles gut, das iKO war noch leer. Ich bekomme jetzt Daten.
                  Zuletzt geändert von NorbertB; 30.01.2017, 16:42.

                  Kommentar


                    #10
                    Zitat von NorbertB Beitrag anzeigen
                    BTW. Wenn die nicht einen solchen Wucherpreis für die Modbus-Erweiterung verlangen würden wäre ich da auch dabei.
                    Man kann wohl die Daten, welche über das Modbus-Modul gehen, auch direkt per RS485 abgreifen. Habe aber leider noch keine Zeit gehabt mir das genauer anzuschauen.
                    Wäre dann sehr günstig zu machen.

                    Kommentar


                      #11
                      Zitat von DerSeppel Beitrag anzeigen
                      Man kann wohl die Daten, welche über das Modbus-Modul gehen, auch direkt per RS485 abgreifen. Habe aber leider noch keine Zeit gehabt mir das genauer anzuschauen.
                      Wäre dann sehr günstig zu machen.
                      Das ist aber schwer vorstellbar, da die ModBus-Schnittstelle ja schlussendlich eine RS485-Schnittstelle ist. Somit braucht man das ModBus-Modul, damit man überhaupt eine entsprechende Schnittstelle hat um dann via ModBus resp. RS485 mit der Anlage kommunizieren zu können!? Korrigiert mich bitte, wenn ich falsch liege.
                      Kind regards,
                      Yves

                      Kommentar


                        #12
                        Da gab es schon Diskussionen hier im Forum zu. Und auch in anderen.
                        Wenn ich das richtig verstanden habe, dann kommunizieren die Erweiterungen untereinander per RS485.
                        Man muss wohl nur das Modbus40 als Zubehör aktivieren und man braucht client-seitig eine Applikation welche alle Frames acknowleged, sonst lässt sich die Anlage nicht mehr bedienen.

                        Lesestoff:
                        https://knx-user-forum.de/forum/%C3%...ng-modbus-nibe
                        https://github.com/openhab/openhab1-...t-Pump-Binding

                        Kommentar


                          #13
                          Hab gesehen du hast deinen Baustein überarbeitet, gibt es ein changelog?
                          Kannst du auch irgendwo den Fehler/Alarm Text auslesen (zu A8)?


                          Der Fehler im Portal scheint weg zu sein, habe diesen die letzen Tage nicht mehr gesehen.

                          Kommentar


                            #14
                            Ja hier:

                            Code:
                            v1.1
                            Verbesserung der Statusausgabe
                            Gelegentlich konnte es vorkommen, dass der Kompressorstatus falsch ausgegeben wird.
                            Ja Fehlermeldung kann man auslesen. Werde ich mal einbauen.

                            Kommentar


                              #15
                              Zitat von basaltnischl Beitrag anzeigen
                              Hab gesehen du hast deinen Baustein überarbeitet, gibt es ein changelog?
                              Kannst du auch irgendwo den Fehler/Alarm Text auslesen (zu A8)?
                              Hast du bei deiner Anlage aktuell einen Alarm anstehen?
                              Mir fällt grade meine Möglichkeit ein, einen Alarm zu provozieren.
                              Hast du eine Tarifabschaltung und kannst ggf. mal die Spannung am Kompressor "händisch" wegschalten über den SLS z.B.?
                              Dann würde ich dir ein Testscript schicken, was den anliegenden Alarm ausliest. Dann kann ich mir genau anschauen wie die Daten aussehen. Die Doku von Nibe ist da leider recht schlecht.
                              Prinzipiell gibt die API sogar ein Archiv her, wenn man angibt, dass man auch alte Alarme sehen will, funktioniert aber leider nicht. Gibt nur einen Hinweis, dass diese Funktion "speziellen Partnern von Nibe" vorenthalten ist.

                              Kommentar

                              Lädt...
                              X