Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenHAb REST + Websocket: Beispiel?!

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

    [Codebeispiel] OpenHAb REST + Websocket: Beispiel?!

    Im OpenHAB Wiki hab ich Beispiele zum OpenHAB Rest API gefunden. Abfragen und setzen krieg ich mit PHP hin.
    Es hapert aber noch am Verständnis wie man Websockets benutzt um Änderungen an Item-States mitzubekommen. Javascript.. Okay, aber wie?

    Steigt da jemand durch und kann mir ein einfaches Beispiel ohne viel Abhängigkeiten zeigen? Die Atmosphere-Framework-Beispiele helfen mir nicht weiter und im GreenT Source ist das auch irgendwie verwurschtelt. Zumindest peil ich's (noch) nicht.

    Gruß
    Alex

    #2
    Du willst einen Websocket-Client in PHP.

    Ein paar findest du hier: WebSocket client in PHP? - Stack Overflow

    Welcher davon der richtige ist, weiß ich nicht, weil ich mich prinzipiell weigere, irgendwas in PHP zu programmieren. Python ist um Einiges vernünftiger. (IMHO.)
    DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

    Kommentar


      #3
      Habs mittlerweile hinbekommen. Ist aber eher weniger PHP, mehr JS:

      Code:
      var connection = new WebSocket('ws://localhost:8080/rest/items/Wetter_Wind');
      
      connection.onopen = function(event) {
        console.log('Yeees, we are connected!');
      }
      
      connection.onmessage = function(event) {
        console.log('Message received: ', event);
      }
      
      connection.onclose = function(event) {
        console.log('closed connection.');
      }
      Ändert sich der Wert für das Item Wetter_Wind, so wird die onMessage-Funktion ausgelöst. Die neuen Daten sind dann in "event.data".

      PHP ist eher unnötig, weil ja serverseitig ausgeführt. Geht mir aber um Live-Updates im Browser. Von daher JS + Websockets für die Clientseite.

      Kommentar


        #4
        Hallo tuxedo,

        ich habe dein Beispiel in Verbindung mit meiner OpenHAB 1.7.1 Installation mal umgesetzt. Leider funktioniert es nicht.
        Die Meldung "Yeees, we are connected!" erhalte ich im Browser noch, dann passiert aber nichts mehr.

        Sind evtl. noch spezielle JavaScript Libraries notwendig? Oder sind sogar bestimmte Bindings in OpenHAB erforderlich?

        Kommentar


          #5
          Zitat von eidi98 Beitrag anzeigen
          Sind evtl. noch spezielle JavaScript Libraries notwendig? Oder sind sogar bestimmte Bindings in OpenHAB erforderlich?
          Weder noch. Das lief einfach so. Hab die Sache aber (noch) nicht weiter verfolgt und kann deshalb auch nicht wirklich weiter helfen.

          Kommentar

          Lädt...
          X