Ankündigung

Einklappen
Keine Ankündigung bisher.

Cometvisu RSSLOG E

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

    Cometvisu RSSLOG E

    Hallo

    ich versuche grade Einträge in die RSSLOG der Cometvisu zu erzeugen.

    in der Regel erfolgt dies über den Aufruf einer URL .z.B.

    Code:
    http://192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=ON
    würde einen Eintrag erzeugen.

    Dies habe ich an ein Item gehängt und über den HTTP Aufruf versucht zu triggern.

    Code:
    Switch TestRSSLOG "RSSTestitem" { http=">[ON:POST:http://www.192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=ON] >[OFF:POST:http://www.192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=OFF]" }
    dies wird offensichtlich ohne Fehlermeldung abgearbeitet aber eben auch ohne Eintrag.

    dann habe ich versucht das ganze in einer Regel zu lösen

    Code:
    rule "test RSSlog"
    when Item TestRSSLOG changed
    then
    http=">[*:POST:http://www.192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=ON]"
    end
    hier bekomme ich eine Fehlermeldung was vermutlich am Syntax liegt.

    Hat das schon mal jemand umgesetzt?
    Gruß

    Guido

    #2
    Schau mal hier: https://www.openhab.org/docs/configu...l#http-actions. Sollte vermutlich so aussehen:
    Code:
    sendHttpPostRequest("http://www.192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=ON")

    Kommentar


      #3
      Leider nein das funktioniert genau so wenig. ich hatte mich bisweilen an dem http binding orientiert. da wäre das schon nicht schlecht wenn das einfach hinter den Item stehen würde. Aber aktuell wäre ich dankbar zu wissen wie es überhaupt geht.
      Gruß

      Guido

      Kommentar


        #4
        Oh, ich hab grade gesehen, da steht noch ein http://www. drin, das ist natürlich Quatsch. es sollte eher so aussehen:
        Code:
        sendHttpPostRequest("192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=ON")
        In Deiner Item-Konfiguration hast Du auch ein www. mit drin, welches da sicher nicht hingehört (direkt nach dem http://, noch vor der ip-Adresse)
        Zuletzt geändert von udo1toni; 27.02.2019, 23:31.

        Kommentar


          #5
          Guten Morgen,

          nach einigen rumprobieren mit deinen Tipps habe ich es zumindest soweit das ein Eintrag erfolgt. Danke dafür !!!
          Code:
          sendHttpGetRequest("http://192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=OFF")
          Der oben genannte Code führt zu dieser Fehlermeldung

          Code:
          Illegal character in scheme name at index 0: 192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?c=Fenster&h=Fenster&state=ON
          Wo der Unterschied zwischen GET und POST liegt weis ich zwar noch nicht aber es funktioniert. Jetzt würde ich gern noch den Status vom Item übernehmen.

          hat dazu jemand eine Idee?
          Gruß

          Guido

          Kommentar


            #6
            das mit dem übernehmen das Status klappt mit dem Befehl

            Code:
            sendHttpGetRequest("http://192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?state=0&h=Tuer&t[]=Tuer_Fenster&c=Haustuer_" + knx_Wohnung_Haustuer.state )
            Jetzt würde ich natürlich auch gern die Anderen Parameter übergeben. Zum Beispiel state=0 ersetzen hat da jemand eine Idee ?
            Gruß

            Guido

            Kommentar


              #7
              Unterschied get<->post: https://forum.selfhtml.org/self/1999...t/33681#m33681
              Für Dich als Anwender ist an dieser Stelle nur wichtig, zu wissen, was der Server verlangt. Entweder ist es get oder post, das geht immer aus der API Dokumentation hervor. Es gibt auch noch andere Methoden, delete und put werden zusätzlich in der REST API von openHAB verwendet. In der Doku ist das sehr gut abgebildet (unterschiedliche Farben)

              Ansonsten musst Du halt den String Stück für Stück zusammensetzen. Für jede Stelle, an der Du verschiedene Werte einsetzen möchtest, definierst Du eine Variable (oder eine Konstante), der Du den Wert zuweist (logischerweise als String). Dann baust Du die URL mit den Variablen zusammen. Der Übersichtlichkeit halber vielleicht auch in einer eigenen Zeile mit Zuweisung an eine String Variable. Schließlich schickst Du die String Variable mit dem get weg.

              Code:
              rule "send http get"
              when
                  Item myItem changed
              then
                  val String sState = myState.state.toString
                  val String sH = "Tuer"
                  val String sT = "Tuer_Fenster"
                  val String sC = "Haustuer_" + knx_Wohnung_Haustuer.state
                  val String sHttpRequest = "http://192.168.179.182:8080/cometvisu/plugins/rsslog/rsslog.php?state="+sState+"&h="+sH+"&t[]="+sT+"&c="+sC
              
                  sendHttpGetRequest(sHttpRequest)
              end
              Wo Du die verschiedenen Teile des Strings her bekommst, musst Du natürlich selbst wissen. Vermutlich sind sie Bestandteil des Item Namens?

              Kommentar


                #8
                Jep funktioniert Danke
                mein Fehler war das ich als val Text definiert hatte irgendwann begreife ich hoffentlich den Syntax

                Gruß

                Guido

                Kommentar

                Lädt...
                X