Ankündigung

Einklappen
Keine Ankündigung bisher.

X1 Webservice mit EspEasy und Generic HTTP (Json)

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

    KNX/EIB X1 Webservice mit EspEasy und Generic HTTP (Json)

    Hallo Zusammen

    Ich versuche gerade eine Verbindung zwischen dem X1 Webservice (logikbaustein Web Request von Daniel Albuschat) und der Software ESPeasy ( https://www.letscontrolit.com/wiki/i...s#Generic_HTTP ) via Generic HTTP herzustellen.

    Habe ich richtig verstanden, dass ich mit der Methode "POST" auch eine Rückmeldung erhalte? bei Get aber nicht?

    Gibt es eine Möglichkeit, einen Status an den X1 bei Änderung zu senden? Beim ESPeasy könnte ich keinen Kontroller definieren, also einen Empfänger.
    So wie ich das verstanden habe, kann der X1 nur ein Webservice aufrufen, und so einen Status abholen aber er kann keinen Status empfangen wenn er vorher keine Anfrage gemacht hat. Bsp. Magnetkontakt. der X1 muss diese Aktiv abfragen. Habe ich das so richtig verstanden?

    hyman ich glaube du kennst das Teil recht gut, würde mich über eine Unterstützung deinerseits freuen.

    #2
    adlerauge1980 du kannst auch Werte an den X1 senden - nicht über den SDK, sondern über den IoT Rest Service des X1. Den nutze ich z.B. für einen eigenen X1-Client. Damit kannst du Werte schreiben.

    Kommentar


      #3
      Zitat von adlerauge1980 Beitrag anzeigen
      Habe ich richtig verstanden, dass ich mit der Methode "POST" auch eine Rückmeldung erhalte? bei Get aber nicht?
      Nein, falsch verstanden. Dazu solltest Du Dich erstmal in das Thema Web-Protokollarten einlesen

      Zitat von adlerauge1980 Beitrag anzeigen
      Gibt es eine Möglichkeit, einen Status an den X1 bei Änderung zu senden?
      Theoretisch Ja, praktisch Nein (aus dem entfernten Netz)


      Zitat von adlerauge1980 Beitrag anzeigen
      Beim ESPeasy könnte ich keinen Kontroller definieren, also einen Empfänger.
      ??

      Zitat von adlerauge1980 Beitrag anzeigen
      So wie ich das verstanden habe, kann der X1 nur ein Webservice aufrufen, und so einen Status abholen aber er kann keinen Status empfangen wenn er vorher keine Anfrage gemacht hat.
      So ist das - Das Setzen bzw. Abholen von Werten ist derselbe Vorgang. Ein aktueller Status kommt durch das Absetzen einer Anfrage.

      Zitat von adlerauge1980 Beitrag anzeigen
      Bsp. Magnetkontakt. der X1 muss diese Aktiv abfragen. Habe ich das so richtig verstanden?
      Falsch - Dein Binäreingang kann auch "Senden"





      Kommentar


        #4
        Zitat von adlerauge1980 hyman Beitrag anzeigen
        hyman ich glaube du kennst das Teil recht gut, würde mich über eine Unterstützung deinerseits freuen.
        Wenn Dir die Webabfrage eine Antwort gibt, kriegst Du die am Ausgang des Bausteins. Je nachdem, wie die ausieht, gibt es unterschedliche Möglichkeiten für die Weiterverarbeitung. Mehr kann ich Dir momentan auch nicht sagen, weil ich nicht weiß, ob und welche Antworten ESPeasy auf Web Requests senden kann.

        Kommentar


          #5
          Zitat von Kai Burkard Beitrag anzeigen
          adlerauge1980 du kannst auch Werte an den X1 senden - nicht über den SDK, sondern über den IoT Rest Service des X1. Den nutze ich z.B. für einen eigenen X1-Client. Damit kannst du Werte schreiben.
          Hallo Kai, danke für den Hinweis! genau das habe ich gesucht, um einige meiner Status von meinem ESP auf den X1 zu bekommen!

          Jetzt muss ich nur noch die richtigen Einstellungen finden...
          https://www.letscontrolit.com/wiki/i..._HTTP_Advanced

          Danke, damit sollte ich weiter kommen!

          Kommentar


            #6
            Zitat von hyman Beitrag anzeigen
            Wenn Dir die Webabfrage eine Antwort gibt, kriegst Du die am Ausgang des Bausteins. Je nachdem, wie die ausieht, gibt es unterschedliche Möglichkeiten für die Weiterverarbeitung. Mehr kann ich Dir momentan auch nicht sagen, weil ich nicht weiß, ob und welche Antworten ESPeasy auf Web Requests senden kann.
            Hallo Hyman
            Auch dir danke für deinen Imput mit dem Output 😄
            Ich habe mir mal den Output auf ein internes Text Objekt des X1 gelegt, dabei habe ich den untenstehende Output erhalten. Sagt dir das was? für mich ist das gerade nur Bahnhof!
            Ausser dass ich daraus eine html datei machen kann und ich dann sehe dass er mir die erste Seite meines ESP ausgibt.

            HTML-Code:
            <!DOCTYPE html><html lang='en'><head><meta charset='utf-8'/><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>ESP8266-Garagentor</title><script><!--
            function dept_onchange(frmselect) {frmselect.submit();}
            //--></script><style>.closebtn,h1,h2,h3{font-weight:700}h1,h6{color:#07D}.checkmark:after,.dotm ark:after{content:''}.button,.menu{text-decoration:none}.div_l,.menu{float:left}.closebtn, .div_r{float:right;color:#fff}*{box-sizing:border-box;font-family:sans-serif;font-size:12pt;margin:0;padding:0}h1{font-size:16pt;margin:8px 0}h2,h3{font-size:12pt}h2{background-color:#444;color:#FFF;margin:0 -4px;padding:6px}h3{background-color:#EEE;color:#444;margin:16px -4px 0;padding:4px}h6{font-size:10pt}code,kbd,pre,samp,tt,xmp{font-family:monospace,monospace;font-size:1em}.button{background-color:#07D;border:none;border-radius:4px;color:#FFF;margin:4px;padding:4px 16px}.button.help,.checkmark,input,select,textarea {border-color:gray;border-style:solid;border-width:1px}.button.link.wide{display:inline-block;text-align:center;width:100%}.button.link.red{backgroun d-color:red}.button.help{border-radius:50%;padding:2px 4px}.checkmark,input,select,textarea{border-radius:4px}.button:hover{background:#369}input:hov er,select:hover{background-color:#ccc}input,select,textarea{background-color:#eee;margin:4px;padding:4px 8px}input.wide,select.wide{max-width:500px;width:80%}.widenumber{max-width:500px;width:100px}.container,.container2{fon t-size:12pt;padding-left:35px;cursorointer}.container{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;display:block;margin-left:4px;margin-top:0;position:relative;user-select:none}.container input{cursorointer;opacity:0;position:absolute}.checkmark.disa bled{background-color:grey}.checkmark{background-color:#eee;height:25px;left:0;position:absolute;to p:0;width:25px}.container:hover input~.checkmark{background-color:#ccc}.container input:checked~.checkmark{background-color:#07D}.checkmark:after{display:none;position: absolute}.container input:checked~.checkmark:after,.container2{display :block}.container .checkmark:after{-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);border:solid #fff;border-width:0 3px 3px 0;height:10px;left:7px;top:3px;transform:rotate(45 deg);width:5px}#toastmessage,.dotmark,.logviewer{b order-color:gray;border-style:solid}#toastmessage,.dotmark{border-width:1px}.container2{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;margin-bottom:20px;margin-left:9px;position:relative;user-select:none}.container2 input{cursorointer;opacity:0;position:absolute}.dotmark{backgr ound-color:#eee;border-radius:50%;height:26px;left:0;position:absolute;to p:0;width:26px}.container2:hover input~.dotmark{background-color:#ccc}.container2 input:checked~.dotmark{background-color:#07D}.dotmark:after{display:none;position:ab solute}.container2 input:checked~.dotmark:after{display:block}.contai ner2 .dotmark:after{background:#fff;border-radius:50%;height:8px;left:8px;top:8px;width:8px}. logviewer,textarea{font-family:'Lucida Console',Monaco,monospace;max-width:1000px;padding:4px 8px;width:80%}#toastmessage{background-color:#07D;border-radius:4px;bottom:30%;color:#fff;font-size:17px;left:282px;margin-left:-125px;min-width:250px;padding:16px;position:fixed;text-align:center;visibility:hidden;z-index:1}#toastmessage.show{-webkit-animation:fadein .5s,fadeout .5s 2.5s;animation:fadein .5s,fadeout .5s 2.5s;visibility:visible}@-webkit-keyframes fadein{from{bottom:20%;opacity:0}to{bottom:30%;opa city:.9}}@keyframes fadein{from{bottom:20%;opacity:0}to{bottom:30%;opa city:.9}}@-webkit-keyframes fadeout{from{bottom:30%;opacity:.9}to{bottom:0;opa city:0}}@keyframes fadeout{from{bottom:30%;opacity:.9}to{bottom:0;opa city:0}}.level_0{color:#F1F1F1}.level_1{color:#FCF F95}.level_2{color:#9DCEFE}.level_3{color:#A4FC79} .level_4{color:#F2AB39}.level_9{color:#F50}.logvie wer{background-color:#272727;color:#F1F1F1;height:530px;overflow: auto}textarea:hover{background-color:#ccc}table.multirow th,table.normal th{background-color:#444;border-color:#888;color:#FFF;font-weight:700;padding:6px;align-content:center;text-align:center}table.multirow,table.normal{border-collapse:collapse;color:#000;min-width:420px;width:100%}table.multirow tr,table.normal td,table.normal tr{padding:4px}table.normal td{height:30px}table.multirow td{height:30px;padding:4px;text-align:center}table.multirow tr:nth-child(even){background-color:#DEE6FF}.highlight td{background-color:#dbff0075}.apheader,.headermenu{background-color:#F8F8F8;padding:8px 12px}.note{color:#444;font-style:italic}.headermenu{border-bottom:1px solid #DDD;height:90px;left:0;position:fixed;right:0;top :0;z-index:1}.bodymenu{margin-top:96px}.menubar{position:inherit;top:55px}.menu{ border:solid transparent;border-radius:4px 4px 0 0;border-width:4px 1px 1px;color:#444;padding:4px 16px 8px;white-space:nowrap}.menu.active{background-color:#FFF;border-color:#07D #DDD #FFF;color:#000}.menu:hover{background:#DEF;color: #000}.menu_button{display:none}.on{color:green}.of f{color:red}.div_r{background-color:#080;border-radius:4px;margin:2px;padding:1px 10px}.alert,.warning{margin-bottom:15px;padding:20px;color:#fff}.div_br{clear: both}.alert{background-color:#f44336}.warning{background-color:#ffca17}.closebtn{cursorointer;font-size:22px;line-height:20px;margin-left:15px;transition:.3s}.closebtn:hover{color:#00 0}section{overflow-x:auto;width:100%}@media screen and (max-width:960px){.showmenulabel{display:none}.menu{max-width:11vw;max-width:48px}}
            </style></head><body class='bodymenu'><span class='message' id='rbtmsg'></span><header class='headermenu'><h1>ESP Easy Mega: ESP8266-Garagentor </h1><BR><div class='menubar'><a class='menu active' href='/'><span class='showmenulabel'>Main</span></a><a class='menu' href='/config'><span class='showmenulabel'>Config</span></a><a class='menu' href='/controllers'>💬<span class='showmenulabel'>Controllers</span></a><a class='menu' href='/hardware'>📌<span class='showmenulabel'>Hardware</span></a><a class='menu' href='/devices'>🔌<span class='showmenulabel'>Devices</span></a><a class='menu' href='/rules'><span class='showmenulabel'>Rules</span></a><a class='menu' href='/notifications'><span class='showmenulabel'>Notifications</span></a><a class='menu' href='/tools'>🔧<span class='showmenulabel'>Tools</span></a></div></header><section><span class='message error'></span><form><table class='normal'><TR><TH style='width:225px;'>System Info</TH><TH></TH><TR><TD>Unit Number:<TD>3<TR><TD>Git Build:<TD>mega-20190630<TR><TD>Local Time:<TD>2022-02-02 21:39:05<TR><TD>Uptime:<TD>0 days 0 hours 3 minutes<TR><TD>Load:<TD>21.30% (LC=4429)<TR><TD>Free Mem:<TD>15856 (12400 - sendContentBlocking)<TR><TD>Free Stack:<TD>3632 (1696 - sendContentBlocking)<TR><TD>IP Address:<TD>192.168.8.38<TR><TD>RSSI:<TD>-70 dB (ragetec)<TR><TD><TD> <a class='button link' href='sysinfo'>More info</a></table><BR><BR><table class='multirow'><TR><TH>Node List</TH><TH>Name</TH><TH>Build</TH><TH>Type</TH><TH style='width:160px;'>IP</TH><TH>Age</TH></table></form></section><footer><br><h6>Powered by <a href='http://www.letscontrolit.com' style='font-size: 15px; text-decoration: none'>Let's Control It</a> community</h6></footer></body></html>

            Kommentar


              #7
              Zitat von araeubig Beitrag anzeigen

              Nein, falsch verstanden. Dazu solltest Du Dich erstmal in das Thema Web-Protokollarten einlesen
              Hallo Araeubig, bin mich da ja am vortasten, meine Fragestellung war zugegebener Massen auch etwas wirr, da ich da noch nicht ganz durchblicke, wobei mit den Beiträgen von Kai und hyman und dr. Google ist mir schon einiges verständlicher geworden.
              Theoretisch Ja, praktisch Nein (aus dem entfernten Netz)
              Hier hilft mir Kai's antwort weiter, das war dass was ich da gesucht habe.


              ??
              vertippt, sollte "einen" statt "keinen" heissen, da kann ich eben die IoT Rest Service vom X1 definieren. Wenn man weiss wie das Ding heisst, kommt man auch weiter...









              Kommentar


                #8
                Zitat von adlerauge1980 Beitrag anzeigen
                Sagt dir das was?
                Dass es HTML ist, hast Du ja selber schon gemerkt. Die Frage ist, ob da irgendwo die Daten drin stecken, die Du haben möchtest. Wenn ja, dann kriegt man die mit der Formelberechnung wahrscheinlich auch irgendwie raus...
                Zuletzt geändert von hyman; 04.02.2022, 15:35.

                Kommentar


                  #9
                  hallo hyman
                  Ich war da etwas auf dem Holzweg....
                  die Meldungen vom ESPeasy werde ich mit dem IoT Rest Service des X1 machen. Also Torstatus und Fahrzeugerkennung). Das macht aus meiner Sicht am meisten Sinn.

                  Den Befehl zum öffnen hingegen über den Logikbaustein Webrequest.
                  was mir da noch nicht ganz klar ist, ist, was es mit dem Header auf sich hat.
                  mein Tor lässt sich mit dem folgenden Befehl aus Firefox öffnen:
                  http://esp8266.xx.xx/control?cmd=Pulse,13,0,500 (GPIO Nr.13, auf 0 setzen, für 500ms und ja GPIO ist bei mir invetiert)

                  für mich wäre jetzt logisch
                  URL: http://esp8266.xx.xx
                  Header: control?cmd=Pulse,13,0,500

                  Logisch, geht auch ohne Header, also alles bei URL rein.... Methode Get. und gut ist.... aber ich will ja auch verstehen das da etwa passiert....

                  Kommentar

                  Lädt...
                  X