Ankündigung

Einklappen
Keine Ankündigung bisher.

Guntamatic Biostar http Binding

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

    Guntamatic Biostar http Binding

    Hallo,

    ich habe einen Guntamatic Biostar Pellet-Heizung und würde gerne die Daten in OPENHAB über das Http-Binding einbinden.

    Folgendes habe ich schon:

    Adresse mit Key zum Auslesen der Daten vom Web-Interface der Heizung ( Hier gibt es noch andere Möglichkeiten aber diese Seite bietet die meisten Infos.
    Alternativ kann die Heizung Modbus TCP, allerdings erscheint mir das noch komplizierter da vor dem Auslesen der Daten der Key übermittelt werden muss.

    Also:
    http://IP.IP.IP.IP/mbmap.cgi?key=Key
    KeyKeyKeyKeyKeyKeyKey

    Dann mein bereits getestetes RegEX (getestet auf einer Online Test-Seite:
    https://regex101.com/
    )

    RegEx:
    /(Aussentemperatur)(.*)\n(.*.CODE>)(.*[0-9])

    Http Binding ist auch installiert

    Jetzt mein Problem:
    Um mich in die Themen Aufzeichnung der Daten, Bilder etc. einzuarbeiten benötige ich erstmal die Daten.

    Wie sieht das Http Binding aus?
    - cfg Datei mit aktiviertem Cache

    Wie muss eine Item-Datei für die Abfrage der Außentemperatur aussehen? und kann man in einer Datei mehrere items Abfragen?

    Bin jetzt schon mehrere Tage dran, bekomme es aber leider nicht hin.

    Gruß Mirco










    Angehängte Dateien

    #2
    Also, für Modbus gäbe es auch ein Binding. Die Keys müssten irgendwo in der Doku beschrieben sein, sonst wäre die Schnittstelle ja witzlos.

    Über http geht es jedenfalls so:
    http.cfg:
    Code:
    # Hier sind nur dann Einträge nötig, wenn man einen Cache verwenden will
    # configuration of the first cache item
      #<id1>.url=
      #<id1>.updateInterval=
    
    guntamatic.url=http://IP.IP.IP.IP/zu/der/Seite.html
    guntamatic.updateInterval=60000
    # Cache wird alle 60 Sekunden neu geladen
    Für jeden Wert, den man abrufen möchte benötigt man nun ein Item, z.B. für die Außentemperatur, dieses ruft aber die Daten aus dem Cache ab, so dass nur eine Anfrage alle 60 Sekunden gestellt wird.
    Code:
    Number Nguntamatic_tempOut "Außentemperatur [%.1f °C]" <temperature> {http="<[guntamatic:30000:REGEX(/(Aussentemperatur)(.*)\n(.*.CODE>)(.*[0-9]))]"}
    Wobei ich mir recht sicher bin, dass der REGEX so nicht funktionieren wird, da openHAB den Inhalt der 1. Klammer zurück gibt. Ein normaler REGEX für openHAB sieht eher so aus:
    Code:
    REGEX(.*Teil unmittelbar vor dem Wert(.*)Teil unmittelbar nach dem Wert.*)
    Und der Teil innerhalb der inneren Klammern ist dann die Antwort.
    Zuletzt geändert von udo1toni; 16.04.2018, 02:13.

    Kommentar


      #3
      Hallo,

      jetzt bin ich schon ein ganzes Stück weiter, DANKE dafür!

      jetzt noch mein Problem mit dem REGEX

      Ausschnitt aus der HTML Seite:

      <TR>
      <TD>1</TD>
      <TD>0x4003</TD>
      <TD>0x4002</TD>
      <TD>float</TD>
      <TD>°C</TD>
      <TD>4</TD>
      <TD>Aussentemperatur</TD>
      <TD><CODE>0x4156569b</CODE>13.40</TD></TR>

      mit welchem REGEX bekomme ich jetzt die Temperatur? (
      0x4156569b sollte der Messwert in HEX sein)

      Danke im voraus

      Gruß Mirco



      Kommentar


        #4
        Laut online regex tester geht dieser Ausdruck und die Temperatur kommt Raus, nur nicht in OPENHAB

        Code:
        (Aussentemperatur.*\n.*</CODE>)(.*[0-9])(</TD></TR>)
        Full match 1021-1089 `Aussentemperatur</TD>
        <TD><CODE>0x4156569b</CODE>13.40</TD></TR>`
        Group 1. 1021-1074 `Aussentemperatur</TD>
        <TD><CODE>0x4156569b</CODE>`
        Group 2. 1074-1079 `13.40`
        Group 3. 1079-1089 `</TD></TR>`

        Fehler im LOG:

        2018-04-16 22:14:07.325 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type 'http' of item 'Nguntamatic_tempOut1' could not be parsed correctly.
        org.eclipse.smarthome.model.item.BindingConfigPars eException: bindingConfig '<[Guntamatic:30000:REGEX((Kesseltemperatur.*
        .*</CODE>)(.*[0-9])(</TD></TR>))]' doesn't contain a valid binding configuration

        Kommentar


          #5
          Verwechselst Du da noch etwas?
          Überall steht "Aussentemperatur", aber in der Fehlermeldung steht bei Deinem Item "Kesseltemperatur"...

          Hast Du schon ausprobiert, was udo1toni geschrieben hatte?

          Zitat von udo1toni Beitrag anzeigen
          Wobei ich mir recht sicher bin, dass der REGEX so nicht funktionieren wird, da openHAB den Inhalt der 1. Klammer zurück gibt. Ein normaler REGEX für openHAB sieht eher so aus:
          Code:
            
           REGEX(.*Teil unmittelbar vor dem Wert(.*)Teil unmittelbar nach dem Wert.*)
          Und der Teil innerhalb der inneren Klammern ist dann die Antwort.

          Andreas

          Kommentar


            #6
            Zitat von imhofa Beitrag anzeigen
            Verwechselst Du da noch etwas?
            Überall steht "Aussentemperatur", aber in der Fehlermeldung steht bei Deinem Item "Kesseltemperatur"...

            Hast Du schon ausprobiert, was udo1toni geschrieben hatte?




            Andreas
            Hallo,
            Mein Fehler, aus lauter Verzweifelung habe ich mal einen anderen Wert Versucht, sind aber beide auf der HTML seite vorhanden.
            Leider geht es mit beiden nicht...

            Die Vorschläge von 1toni habe ich auch beide Probiert, daraus folgt auch meine neue REGEX Variante die leider auch nicht funktioniert.

            Gruß Mirco
            Zuletzt geändert von glitzi; 17.04.2018, 09:16.

            Kommentar


              #7
              Wie erwähnt, es ist nicht erlaubt, mehrere Gruppen zu bilden. Eventuell matcht
              Code:
              REGEX(Aussentemperatur.*</CODE>(.*)</TD></TR>)
              wobei ich mir nicht sicher bin, ob openHAB mit den Zeilenumbrüchen zurecht kommt.

              Schau Dir mal https://docs.openhab.org/addons/tran...ex/readme.html an...
              Zuletzt geändert von udo1toni; 17.04.2018, 11:59.

              Kommentar


                #8
                Hallo,

                dein letzter REGEX sieht gut aus, auch im Online tester.
                Habe es versuchshalber noch mit einem \n.* ergänzt, aber es geht leider auch nicht.

                Falls mich noch jemand vor dem Aufgeben retten möchte ... anbei noch einmal die ganze HTML Seite als Anlage.

                Gruß Mirco
                Angehängte Dateien
                Zuletzt geändert von glitzi; Gestern, 18:56.

                Kommentar


                  #9
                  Ach so... hast Du mal .* ergänzt für Anfang und Ende?
                  Code:
                  REGEX(.*Aussentemperatur.*</CODE>(.*)</TD></TR>.*)

                  Kommentar


                    #10
                    Hallo,

                    wenn ich das item als String eintrage erscheint "null" auch wenn ich den REGEX ändere erscheint nie etwas im String und bei item NUMBER kommt immer ein "-"

                    Kann man das REGEX irgendwie loggen? Im OPENHAB2 Log ist alles sauber.

                    Oder kann man sehen was in http Binding Cache steht?

                    Gruß Mirco

                    Kommentar


                      #11
                      Du kannst den REGEX auch innerhalb einer Rule anwenden. Da hat man etwas mehr Kontrolle über das, was da vor sich geht. Ansonsten ist es immer auch ein guter Anfang, zunächst ein String Item zu verwenden, um jederzeit den kompletten Match zu sehen.

                      Kommentar

                      Lädt...
                      X