Ankündigung

Einklappen
Keine Ankündigung bisher.

Wasserzähler von BWT Enthärtungsanlage auf Bus bringen

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

    #16
    Gibts aktuelle Erfahrungen mit dem Auslesen der BWT Wasserenthärter via Web API? Finde leider auf der Homepage keine Infos dazu, für welche Modelle die Web Schnittstelle überhaupt verfügbar ist? Wer hat eine Anlage mit Web Interface bei sich? Welches Modell?

    Grüsse
    Paolo

    Kommentar


      #17
      Hatte bisher nicht die Zeit da was umzusetzen. Ich denke aber dass man die BWT Perla (ohne Aqua dazwischen) relativ leicht auslesen kann, auch ohne offiziell dokumentierte API.
      Ich übernehme das mal für BWT, das Passwort müsst ihr aber selber anfragen, will keinen Ärger:

      Login:
      1. Post Request an http://xx.xx.xx.xx/users/login mit Content "_method=POST&STLoginPWField=xxxxxx&function=s ave"
      2. Antwort-Cookie "CAKEPHP" festhalten und bei allen folgenden Requests mitschicken.
      Datenabruf:
      /home/actualizedata: (hab meine Werte hier auf 0 geändert)
      Code:
      {"aktuellerDurchfluss":"0","aktuellerDurchflussProzent":"0","durchflussHeute":"0","durchflussMonat":"0","durchflussJahr":"0","RegeneriemittelNachfuellenIn":"0","RegeneriemittelVerbleibend":"0"}
      /home/actualizesignals: (bei denen weiß ich nicht genau, was die bedeuten, man müsste sich das Javascript genauer anschauen)
      Code:
      {"wifi":"4","gsm":"107","cSignal":"1","isGsm":"1","time1":"0","time2":"0","status":"2"}
      Die Historie ist ein wenig komplizierter, mit Auslesen zum richtigen Zeitpunkt erstellt man sich die aber einfach selbst.

      Kommentar


        #18
        Zitat von concept Beitrag anzeigen
        wenn wir mal die weltmacht übernehmen, werden wir jeden gerätehhersteller, welcher keine knx-schnittstelle anbietet, gnadenlos abstrafen!
        Naja, gibt doch auch nur eine Enthärter Anlage, die KNX kann, oder? Und zwar die Judo i-soft plus. Und hier ist die KNX Schnittstelle auch nur ein Workaround über LAN und Weinzierl IP Baos Modul. Die Umsetzung ist zweifelhaft, die Konfiguration ist eine Katastrophe! Wenn es allerdings dann mal läuft, hat man Zugriff auf alle relevanten Einstellungen und Verbrauchswerte. Selbst der Wasserstop kann via KNX ausgelöst werden, was einem ein Gefühl von Sicherheit gibt, wenn man Leckagesensoren verbaut hat. Ich meine, was bringt einem ein Alarm, wenn das Wasser trotzdem weiter läuft...

        Logging und Visualisierung des Verbrauches ist dann auch easy möglich, bspw. via nodered -> influxdb -> grafana
        Umgesetzt ist es bei mir auch eher rudimentär und aus Interesse. Einen wirklichen Nutzen sehe ich hier nicht, ausser, dass man im Sommer deutlich sieht, wieviel Wasser bei der Gartenbewässerung drauf geht...

        wasser.PNG

        Kommentar


          #19
          Zitat von abbe Beitrag anzeigen
          Hatte bisher nicht die Zeit da was umzusetzen. Ich denke aber dass man die BWT Perla (ohne Aqua dazwischen) relativ leicht auslesen kann, auch ohne offiziell dokumentierte API.
          Ich übernehme das mal für BWT, das Passwort müsst ihr aber selber anfragen, will keinen Ärger:
          Vielen Dank, das sieht ja vielversprechend aus! Das Passwort hast du beim Support problemlos erhalten?
          Und sehe ich das richtig, dass nur die BWT Perla diese LAN Schnittstelle hat und der BWT Aqua Perla dies nicht unterstützt?

          Zitat von matthiaz Beitrag anzeigen
          Einen wirklichen Nutzen sehe ich hier nicht, ausser, dass man im Sommer deutlich sieht, wieviel Wasser bei der Gartenbewässerung drauf geht...
          Aus welchem Grund hast du die Gartenbewässerung auch über den Enthärter laufen? Bei uns ist geplant, den Enthärter erst nach dem Gartenabgang und Druckminderer für die gesamte Erschliessung des Wohnhauses einzusetzen.

          Grüsse
          Paolo

          Kommentar


            #20
            Die Gartenbewässerung sollte immer vom Enthärter getrennt sein, kenn ich eigentlich gar nicht anders.

            Die Mengen Wasser die im Hochsommer im Garten verbraucht werden, bringen die meisten EFH-Anlagen gar nicht her. Da arbeitet sich die Regenerierung zu Tode dabei.

            Kommentar


              #21
              Zitat von bazzman Beitrag anzeigen
              Das Passwort hast du beim Support problemlos erhalten
              Ja das war kein Problem. Man kann aber auch mir eine private Nachricht schicken. ;-)

              Zitat von bazzman Beitrag anzeigen
              Und sehe ich das richtig, dass nur die BWT Perla diese LAN Schnittstelle hat und der BWT Aqua Perla dies nicht unterstützt?
              Soweit ich weiß ist das korrekt.

              Kommentar


                #22

                Zitat von bazzman Beitrag anzeigen
                Aus welchem Grund hast du die Gartenbewässerung auch über den Enthärter laufen? Bei uns ist geplant, den Enthärter erst nach dem Gartenabgang und Druckminderer für die gesamte Erschliessung des Wohnhauses einzusetzen.
                Zitat von knxodernix Beitrag anzeigen
                Die Gartenbewässerung sollte immer vom Enthärter getrennt sein, kenn ich eigentlich gar nicht anders
                Dafür gibt es diverse Gründe, primär war der extrem hohen Kalkanteil im Wasser bei uns der Grund: wir wollten eine Verkalkung der Wasserleitungen vermeiden. Dazu kamen
                1. Weniger Verlegeaufwand bei den Wasserrohren für 3 Aussenzapfstellen
                2. Keine Stagnation in Wasserkreislauf der Ausenzapfstellen über Monate hinweg, da diese im Kreislauf hoher Verbraucher angeschlossen wurden (Bäder + Küche)
                3. Und zu guter letzt: Die Entkalkungsanlage hat einen Bypass, der bei Bedarf (automatisch via Logik) aktiviert werden kann
                Natürlich hat man einen gravierenden Nachteil: kein separater Zähler möglich, um die Abwassergebühr zu sparen. Das ist eigentlich für mich der einzige richtige Nachteil.

                Kommentar


                  #23
                  Zitat von abbe Beitrag anzeigen
                  Hatte bisher nicht die Zeit da was umzusetzen. Ich denke aber dass man die BWT Perla (ohne Aqua dazwischen) relativ leicht auslesen kann, auch ohne offiziell dokumentierte API.
                  Ich übernehme das mal für BWT, das Passwort müsst ihr aber selber anfragen, will keinen Ärger:

                  Login:
                  1. Post Request an http://xx.xx.xx.xx/users/login mit Content "_method=POST&STLoginPWField=xxxxxx&function=s ave"
                  2. Antwort-Cookie "CAKEPHP" festhalten und bei allen folgenden Requests mitschicken.
                  Datenabruf:
                  /home/actualizedata: (hab meine Werte hier auf 0 geändert)
                  Code:
                  {"aktuellerDurchfluss":"0","aktuellerDurchflussProzent":"0","durchflussHeute":"0","durchflussMonat":"0","durchflussJahr":"0","RegeneriemittelNachfuellenIn":"0","RegeneriemittelVerbleibend":"0"}
                  /home/actualizesignals: (bei denen weiß ich nicht genau, was die bedeuten, man müsste sich das Javascript genauer anschauen)
                  Code:
                  {"wifi":"4","gsm":"107","cSignal":"1","isGsm":"1","time1":"0","time2":"0","status":"2"}
                  Die Historie ist ein wenig komplizierter, mit Auslesen zum richtigen Zeitpunkt erstellt man sich die aber einfach selbst.
                  So unsere BWT Perla Seta ist seit einigen Tagen in Betrieb und ich hab mir mal angesehen was man so abfragen kann.
                  Vielen Dank für die Hinweise für den Zugriff. Das geht ja ziemlich easy Deine beiden obigen JSON Endpoints sind schon mal spannend und würden schon ein kleines Dashboard mit den wichtigsten Werten erlauben.

                  Als HTML Content erhält man noch viele weitere Daten, leider scheint es nur wenige JSON Endpoints geben.

                  Code:
                  /chart/update
                  liefert wohl den aktuellen Wasserverbauch
                  Code:
                  { "aktuell": "0" }
                  Hab mir mal noch angesehen, was man über die Internas der BWT Anlage so rausfindet:

                  Code:
                  PORT STATE SERVICE VERSION
                  22/tcp open ssh OpenSSH 7.5 (protocol 2.0)
                  80/tcp open http lighttpd 1.4.45
                  | http-methods:
                  |_ Supported Methods: GET HEAD POST OPTIONS
                  |_http-server-header: lighttpd/1.4.45
                  443/tcp open ssl/http lighttpd 1.4.45
                  
                  | ssl-cert: Subject: organizationName=BWT/stateOrProvinceName=Some-State/countryName=DE
                  | Issuer: organizationName=BWT/stateOrProvinceName=Some-State/countryName=DE
                  | Public Key type: rsa
                  | Public Key bits: 2048
                  | Signature Algorithm: sha256WithRSAEncryption
                  | Not valid before: 1970-01-01T00:24:34
                  | Not valid after: 1989-12-27T00:24:34
                  | MD5: xxxx
                  |_SHA-1: xxx
                  |_ssl-date: TLS randomness does not represent time
                  
                  
                  Running: Linux 3.X|4.X
                  OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
                  OS details: Linux 3.2 - 4.9
                  Scheinbar also ein Embedded Linux, und der SSH Port wäre offen
                  SSL Zertifikat ist (wohl bewusst) abgelaufen (das meldet auch der Browser beim Zugriff).

                  Werde bei Gelegenheit mal sehen obs allenfalls noch weitere JSON Endpoints gibt. Ansonsten gilts halt dann, das HTML zu parsen.

                  Grüsse
                  Paolo

                  Kommentar


                    #24
                    Hi Zusammen

                    Ich habe die BWT Perla Seta mittels node-red eingebunden. Die Daten speichere ich in einer influxdbV2 und visualisiere die Daten mit Grafana.

                    Anbei die Nodes als Code, Passwort und IP Adressen (xxxx) müssen angepasst werden.

                    Code:
                    [{"id":"da556b4c.191f68","type":"tab","label":"BWT Perla Seta","disabled":false,"info":""},{"id":"7b705cf5.8d7644","type":"function","z":"da556b4c.191f68","name":"","func":"msg.headers = \n{ \"Content-Type\" : \"application/x-www-form-urlencoded\",\n  \"Origin\": \"https://xxxxxx\", \n  \"Connection\": \"keep-alive\",\n  \"Referer\": \"https://xxxxxx/users/login\"\n}\nmsg.payload ={\n  \"_method\": \"POST\",\n  \"STLoginPWField\": \"xxxxx\",\n  \"function\":\"save\"\n}\nmsg.rejectUnauthorized = false;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":380,"y":340,"wires":[["52fd04b6.7857ac"]]},{"id":"52fd04b6.7857ac","type":"http request","z":"da556b4c.191f68","name":"login","method":"POST","ret":"txt","paytoqs":"ignore","url":"https://xxxxx/users/login","tls":"","persist":false,"proxy":"","authType":"","x":510,"y":340,"wires":[["b5f435fd.62b8"]]},{"id":"b5f435fd.62b8","type":"function","z":"da556b4c.191f68","name":"","func":"msg.headers = {\n    \"Host\": \"xxxxxx\",\n    \"Upgrade-Insecure-Requests\": 1\n};\nmsg.cookies = msg.responseCookies;\nmsg.rejectUnauthorized = false;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":640,"y":340,"wires":[["c330713d.f7513"]]},{"id":"c330713d.f7513","type":"http request","z":"da556b4c.191f68","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://xxxxxx/home/actualizedata/","tls":"","persist":false,"proxy":"","authType":"","x":810,"y":340,"wires":[["56efe5dc.c6ddac","b59b9889.98aba8"]]},{"id":"56efe5dc.c6ddac","type":"debug","z":"da556b4c.191f68","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":990,"y":340,"wires":[]},{"id":"1f335cc1.4c7b23","type":"interval-multiples-timer","z":"da556b4c.191f68","interval":"900000","payload":"","topic":"","name":"Timer alle 15min","x":200,"y":400,"wires":[["7b705cf5.8d7644"]]},{"id":"b59b9889.98aba8","type":"function","z":"da556b4c.191f68","name":"convert json to influx","func":"msg.ts = new Date();\nvar pl = {\n    bucket: 'ccu',\n    precision: 's',\n    data: [{\n        measurement: 'bwt',\n        tags: {\n         'device' : 'bwtperla'\n        },\n        fields: {\n\"aktuellerDurchfluss\": msg.payload.aktuellerDurchfluss,\n\"aktuellerDurchflussProzent\": msg.payload.aktuellerDurchflussProzent,\n\"durchflussHeute\": msg.payload.durchflussHeute,\n\"durchflussMonat\": msg.payload.durchflussMonat,\n\"durchflussJahr\": msg.payload.durchflussJahr,\n\"RegeneriemittelNachfuellenIn\": msg.payload.RegeneriemittelNachfuellenIn ,\n\"RegeneriemittelVerbleibend\": msg.payload.RegeneriemittelVerbleibend\n        },\n        timestamp: Math.round(msg.ts / 1000)\n    }]\n}\n//pl.data[0]['fields']['DUTY_CYCLE'] = msg.payload.DUTY_CYCLE;\nmsg.payload = pl;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":740,"y":440,"wires":[["f9474000.56bfd8"]]},{"id":"f9474000.56bfd8","type":"Stackhero-InfluxDB-v2-write","z":"da556b4c.191f68","server":"243d0eff.8fab72","name":"influx fill","x":940,"y":440,"wires":[[]]},{"id":"243d0eff.8fab72","type":"Stackhero-InfluxDB-v2-Server","z":"","name":"","host":"xxxxx","port":"1088","tls":false}]
                    Viele Grüsse
                    Thomas

                    Kommentar


                      #25
                      Hat jemand neben dem actualizeData Aufruf welcher ein JSON zurückliefert auch schon weitere Werte aus den übrigen HTML Seiten herausgeparst?
                      Ich möchte z.B. versuchen die Daten zur letzten Regeneration herauszuholen. Dies lässt sich natürlich aus dem HTML parsen, aber die Frage ist, ob die verwendeten IDs im HTML Code stabil sind.

                      Was ich auch gerne noch machen will, ist den Urlaubsmodus ein/auszuschalten, damit kann man die Wasserzufuhr zum gesamten Gebäude sperren.

                      Was mich etwas stutzig macht ist der Request welcher vom Browser dazu an die BWT Anlage gesendet wird.

                      Vielleicht könnte das mal jemand gegenchecken? Dazu die Seite https://<bwt-ip>/functions/holidaymode aufrufen und den Seitenquelltext ansehen und das Script im unteren Bereich mit meinem vergleichen:

                      Code:
                      <script>
                      function changeHolidaymode(){
                      var request = new XMLHttpRequest();
                      request.open('POST', '/keyboard/saveValue', false);
                      request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                      
                      if (document.getElementById('changeHolidaymode').chec ked)
                      {
                      request.send('ID=484&Value=1');
                      }
                      else
                      {
                      request.send('ID=484&Value=0');
                      }
                      }
                      </script>
                      Ist bei euch auch fix die ID=484 im Aufruf hinterlegt?

                      Viele Grüsse
                      Paolo

                      Kommentar

                      Lädt...
                      X