Ankündigung

Einklappen
Keine Ankündigung bisher.

Solaranlage auslesen

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

    Solaranlage auslesen

    Hallo leute,

    ich würde gerne mit wget eine Kopie der Webseite meiner Solaranlage runterladen und anschließend mit grep den passenden Wert "rausschneiden".


    Wenn ich die IP der Solaranlage eingeben, muss ich im Browser den User und das Passwort eingeben. Dies umgehe ich in dem ich folgende Zeile eingeb:

    Code:
    http://user:password@192.168.176.2/Solar.html
    Also war meine Idee:

    $ wget http://userassword@192.168.176.2/Solar.html
    --2013-06-17 19:07:48-- http://user:*password*@192.168.176.2/Solar.html
    Verbindungsaufbau zu @192.168.176.2:80... verbunden.
    HTTP-Anforderung gesendet, warte auf Antwort... 401 Unauthorized
    Fehler beim Schreiben der HTTP-Anforderung: Bad file descriptor.
    Erneuter Versuch.

    Könnt ihr mir das einen Tip geben ?
    Oder hat Openhab eine Funktion zum Auslesen von Webseiten ?

    #2
    Zitat von milymat Beitrag anzeigen
    ich würde gerne mit wget eine Kopie der Webseite meiner Solaranlage runterladen und anschließend mit grep den passenden Wert "rausschneiden".
    Um welche handelt es sich denn? Du könntest Anderen die Arbeit erleichtern, wenn du solche Daten mitlieferst

    Zitat von milymat Beitrag anzeigen
    HTTP-Anforderung gesendet, warte auf Antwort... 401 Unauthorized
    Fehler beim Schreiben der HTTP-Anforderung: Bad file descriptor.
    Bitteschön

    Zitat von milymat Beitrag anzeigen
    Oder hat Openhab eine Funktion zum Auslesen von Webseiten ?
    Könnte mit dem HttpBinding klappen - mit dem Syntax wie du ihn bei wget versucht hast.

    Grüße
    Sascha

    Kommentar


      #3
      Es handelt sich um einen Würth SolarStar (Info).

      Zitat von milymat
      HTTP-Anforderung gesendet, warte auf Antwort... 401 Unauthorized
      Fehler beim Schreiben der HTTP-Anforderung: Bad file descriptor.


      Bitteschön
      Hat leider nicht geholfen. Gleiche Fehlermeldung.

      Kommentar


        #4
        Zitat von milymat Beitrag anzeigen
        Es handelt sich um einen Würth SolarStar (Info).
        Hat leider nicht geholfen. Gleiche Fehlermeldung.
        Bist du auf einem "normalen" x86 unterwegs?

        Ist dieser Bug relevant?

        Mit dem HTTP-Binding ist ein einfaches parsen möglich (REGEXP). Ich vermute aber, dass es kein httpS kann

        Kommentar


          #5
          wenn ich den Link aufruf:

          http://userasswort@192.168.176.2/files/data.txt
          bekomme ich :

          folgende ausgabe im Browser: 0.01 kW#0.3#224.2#0.3#512.9#---#---#42.23#155.1#1676.4#12853.2#6#2#7#1#

          Kann mir einer sagen wie das Item aussehen muss um 42.23 auszulesen ?

          String Solaranlage "Zaehler [%s]" (Solar) { http="<[http://userasswort@192.168.176.2/files/data.txt:1000:REGEX(?????)]"} ?

          Kommentar


            #6
            Zitat von milymat Beitrag anzeigen
            Kann mir einer sagen wie das Item aussehen muss um 42.23 auszulesen ?
            der reguläre Ausdruck wäre

            Code:
            (.*?#){7}(.*?)#.*
            (Kannste hier auch ausprobieren)

            Das Problem ist aber, dass die REGEX-Transformation aktuell nur eine Gruppe unterstützt (das sind die Dinger in runden Klammern). Ohne ein Enhancement an openHAB kommst Du damit also nicht weiter.

            Alternativ kannst Du Dir auch den kompletten String in ein Item schreiben lassen und auf diesem Item läßt Du dann eine Regel den Text zerhacken und in ein anderes Item schreiben. Nicht soooo schön, geht aber :-)

            Beispiele für Textoperationen in Regeln habe ich hier schon gesehen. Du könntest Du methode "split()" verwenden.

            Gruß,

            Thomas E.-E.
            Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

            Kommentar


              #7
              Hi,

              vielen Dank für deine Antwort.

              Hab es nun wie folgt realisiert:

              Item:
              Code:
              String Solaranlage "Zaehler [%s]"  (Solar) { http="<[http://user:passwort@192.168.176.2/files/data.txt:60000:REGEX((.*))]"}    ?
              und dann per Rule in einzelne Teilstrings zerlegt.

              Nun bleibt noch eins offen:

              Die Solaranlage schaltet abends ab. Kann ich es irgendwie so konfigurieren dass das Http-Binding nur dann einen refresh macht wenn die Solaranlage erreichbar ist ?

              Ansonst würde ich vor der Zerlegung in Teilsstrings prüfen ob das Gerät online ist. Aber ich würde gerne erst garkeinen Refresh machen wenn es offline ist.

              Kommentar


                #8
                in dem Fall würde ich das HTTP-Binding gar nicht verwenden, sondern auch den HTTP-Request direkt in der Regel machen. Über den Cron-Trigger kannst Du dann fein regulieren, wann die Regel ausgeführt werden soll.

                Das wäre dann auch ein sehr schönes Beispiel für das Samples Wiki.

                Gruß,

                Thomas E.-E.
                Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                Kommentar


                  #9
                  Kannst du mir mit der Syntax helfen ?

                  Item:
                  String Solar

                  wie verwende ich jetzt sendHttpGetRequest(String url) ?

                  alle sendHttp.. Funktionen sind vom Typ void, damit kann ich doch nix anfangen oder?

                  Kommentar


                    #10
                    Hi

                    ich möchte nicht nerven. Aber kann mir jmd. erklären wie ich diesen http request in einer string Variablen speichern kann ?

                    Kommentar


                      #11
                      Zitat von milymat Beitrag anzeigen
                      alle sendHttp.. Funktionen sind vom Typ void, damit kann ich doch nix anfangen oder?
                      seit 5b2f33a3926e - openhab - empowering the smart home - Google Project Hosting nicht mehr :-) Danke für die Anregung!

                      Zitat von milymat Beitrag anzeigen
                      Aber kann mir jmd. erklären wie ich diesen http request in einer string Variablen speichern kann ?
                      mit einem aktuellen Snapshot kannst Du das Ergebnis nun in mit

                      Code:
                      var httpBody = sendHttpGetRequest(bla, blub)
                      speichern und weiterverarbeiten.

                      Gruß,

                      Thomas E.-E.
                      Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                      Kommentar


                        #12
                        Hier mal die Info, wie man eine Anlage des Models Kostal Piko einbindet.

                        https://code.google.com/p/openhab-sa...a_HTTP_binding

                        Kommentar

                        Lädt...
                        X