Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Roth Touchline HTTP Request

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Roth Touchline HTTP Request

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Herry 0 last edited by

      Hallo,

      ich versuche mich gerade an IOBROKER und habe eine Problem, dass ich meinen ROTH Touchline Heizkreisverteiler nicht eingebunden bekomme. Das Gerät hat einen integrierten Webserver und befindet sich wie der IOBROKER in meinem Heimnetzwerk. Die Temperaturwerte und Kanalnamen lassen sie über einen HTTP POST Request z.B. über FHEM oder auch als CURL erfolgreich abrufen.

      Das sieht dann wie folgt aus:

      Request
      
      POST /cgi-bin/ILRReadValues.cgi HTTP/1.1
      Accept-Language: *
      Content-Type: text/xml
      User-Agent: SpiderControl/1.0 (iniNet-Solutions GmbH)
      Cache-Control: no-cache
      Pragma: no-cache
      Host: 192.168.178.xx
      Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
      Proxy-Connection: keep-alive
      Content-Length: 812
      
      <body><version>1.0</version><client>IMaster6_21_00</client><client_ver>6.21.0014</client_ver><file_name>roomsovw</file_name><item_list_size>25</item_list_size><item_list><i><n>G1.name</n></i><i><n>G3.TempSIUnit</n></i><i><n>totalNumberOfDevices</n></i><i><n>G0.TempSIUnit</n></i><i><n>G1.RaumTemp</n></i><i><n>CD.upass</n></i><i><n>G2.name</n></i><i><n>G4.TempSIUnit</n></i><i><n>G1.TempSIUnit</n></i><i><n>G3.name</n></i><i><n>G4.RaumTemp</n></i><i><n>G3.WeekProg</n></i><i><n>G4.name</n></i><i><n>G2.WeekProg</n></i><i><n>G2.RaumTemp</n></i><i><n>G0.WeekProg</n></i><i><n>R0.Taupunkt</n></i><i><n>G0.RaumTemp</n></i><i><n>G4.WeekProg</n></i><i><n>R0.Safety</n></i><i><n>G2.TempSIUnit</n></i><i><n>G3.RaumTemp</n></i><i><n>G0.name</n></i><i><n>R0.SystemStatus</n></i><i><n>G1.WeekProg</n></i></item_list></body>
      
      Response
      
      HTTP/1.1 200 OK
      Server: Keil-EWEB/2.1
      Content-Type: text/html
      Cache-Control: no-cache
      Connection: close
      
      <body><version>1.0</version><client>IMaster6_21_00</client><client_ver>6.21.0014</client_ver><file_name>roomsovw</file_name><item_list_size>25</item_list_size><item_list><i><n>G1.name</n><v>Gäste WC</v></i><i><n>G3.TempSIUnit</n><v>0</v></i><i><n>totalNumberOfDevices</n><v>5</v></i><i><n>G0.TempSIUnit</n><v>0</v></i><i><n>G1.RaumTemp</n><v>1879</v></i><i><n>CD.upass</n><v>1234</v></i><i><n>G2.name</n><v>Diele</v></i><i><n>G4.TempSIUnit</n><v>0</v></i><i><n>G1.TempSIUnit</n><v>0</v></i><i><n>G3.name</n><v>Küche</v></i><i><n>G4.RaumTemp</n><v>2026</v></i><i><n>G3.WeekProg</n><v>1</v></i><i><n>G4.name</n><v>Büro</v></i><i><n>G2.WeekProg</n><v>1</v></i><i><n>G2.RaumTemp</n><v>2069</v></i><i><n>G0.WeekProg</n><v>1</v></i><i><n>R0.Taupunkt</n><v>0</v></i><i><n>G0.RaumTemp</n><v>2265</v></i><i><n>G4.WeekProg</n><v>1</v></i><i><n>R0.Safety</n><v>0</v></i><i><n>G2.TempSIUnit</n><v>0</v></i><i><n>G3.RaumTemp</n><v>2111</v></i><i><n>G0.name</n><v>Wohnzimmer</v></i><i><n>R0.SystemStatus</n><v>0</v></i><i><n>G1.WeekProg</n><v>1</v></i></item_list></body>
      
      

      Meine funktionierende CURL Abfrage sieht so aus:

      curl -s -k  -X 'POST' -H 'Content-Type: text/xml' --data-binary $'<body><item_list><i><n>G0.RaumTemp</n></i></item_list></body>' "http://192.168.XX.XX/cgi-bin/ILRReadValues.cgi"
      

      und liefert den Temperaturwert G0 z.B. als Zahlenwert 2050 für 20,5°C zurück.

      Nun versuche ich das irgendwie im IOBROKER hinzubekommen

      1. Erfolglose Idee war das über ein BLOCKY script mit dem Web-Request Block zu machen. Hier scheint aber wohl nur die Methode GET vorgesehen zu sein.

      2. Versuch war dann meine CURL Abfrage in ein POST Request per JAVAscript wie folgt umzusetzen.

      schedule({minute: [00,1]}, RothTemperatur_G0); 
      
      function RothTemperatur_G0() {
      
      var xhr = new XMLHttpRequest();
      xhr.open("POST", http://192.168.178.xx/cgi-bin/ILRReadValues.cgi";);
      xhr.setRequestHeader("Content-Type:", "text/xml");
      var data = "$<body><item_list><i><n>G0.RaumTemp</n></i></item_list></body>";
      xhr.onreadystatechange = function () {
        
       if (xhr.readyState === 4) {
            // Zustand 4 = Übertragung erfolgreich abgeschlossen
            console.log(xhr.status);
            console.log(xhr.responseText);
         }};
      
      
      xhr.send(data);
      
      xhr.onload = function() {
        let result.G0.Out = xhr.responseText ;
        setState("Temperaturanzeige.state", result.G0.Out); }
      
      

      Das Script wird auch Zeitgesteuert ausgeführt allerding werden keine Daten übertragen und auch kein Status oder Response Text im IOBROKER Logfile hinterlegt, so das der angefragte Webserver gar nicht antwortet.

      Schöne Grüße

      Herry

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      390
      Online

      31.9k
      Users

      80.3k
      Topics

      1.3m
      Posts

      http request roth touchline
      1
      1
      148
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo