Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Io.broker.javascript WebSocket ansprechen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Io.broker.javascript WebSocket ansprechen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 2.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Offline
    D Offline
    dpcFan
    schrieb am zuletzt editiert von
    #1

    Hallo!

    Bin im io.Broker Umfeld totaler Anfänger und brauche Hilfe. Ich habe noch eine andere Haustechnik wo ich derzeit noch alle Aktoren verdrahtet habe. CCU2 ist ein Test, diese in Zukunft abzulösen. Diese Haustechnik hat ein RS485 Bus zur Kommunikation und dieser kann über ein XPort angesprochen werden. Die Anlage selber hat einen WebServer und darüber kann ich auch per URL die Aktoren schalten, ist aber über den PI2, MySQL und Xport sehr langsam… meine Idee ist, mit dem JavaScript Modul direkt per WebSocket über das XPort zu schalten, um Aktionen auf dem Display auch schnell auszuführen. Daher kommt die Frage: Wie spreche ich WebSockets an?

    ich habe es versucht:

    //var WebSocket = require('ws');
    
    function checksumme(daten)
    {
        var l = daten.length;
        var r = 1;																								// SOT wird nicht beruecksichtigt
        var cs = 0;
        var c = null;
    
        while (r < l)
        {
        	c= ord(substr(daten,r,1));
        	cs = c + cs;
        	++r;
        }
        return (cs % 256);
    }
    
    var ws = new WebSocket('ws://192.168.178.103','99');
    
    ws.onopen = function (event) {
        var text = "ybS14291";
        var txt1 = checksumme(text);	
        var txt = text + CHR(txt1);
        log(txt);
        ws.send(txt); 
    };
    

    Dabi kommt aber folgender Fehler:

    javascript.0 script.js.dpc.dpcWebSocket: script.js.dpc.dpcWebSocket:19 var ws = new WebSocket('ws://192.168.178.103','99'); ^ ReferenceError: WebSocket is not defined at script.js.dpc.dpcWebSocket:19:14

    Es kann nicht viel sein, ich bin aber am Ende…

    Kann mir jemand aufs Pferd helfen?

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      @dpcFan:

      Hallo!

      Bin im io.Broker Umfeld totaler Anfänger und brauche Hilfe. Ich habe noch eine andere Haustechnik wo ich derzeit noch alle Aktoren verdrahtet habe. CCU2 ist ein Test, diese in Zukunft abzulösen. Diese Haustechnik hat ein RS485 Bus zur Kommunikation und dieser kann über ein XPort angesprochen werden. Die Anlage selber hat einen WebServer und darüber kann ich auch per URL die Aktoren schalten, ist aber über den PI2, MySQL und Xport sehr langsam… meine Idee ist, mit dem JavaScript Modul direkt per WebSocket über das XPort zu schalten, um Aktionen auf dem Display auch schnell auszuführen. Daher kommt die Frage: Wie spreche ich WebSockets an?

      ich habe es versucht:

      //var WebSocket = require('ws');
      
      function checksumme(daten)
      {
          var l = daten.length;
          var r = 1;																								// SOT wird nicht beruecksichtigt
          var cs = 0;
          var c = null;
          
          while (r < l)
          {
          	c= ord(substr(daten,r,1));
          	cs = c + cs;
          	++r;
          }
          return (cs % 256);
      }
      
      var ws = new WebSocket('ws://192.168.178.103','99');
      
      ws.onopen = function (event) {
          var text = "ybS14291";
          var txt1 = checksumme(text);	
          var txt = text + CHR(txt1);
          log(txt);
          ws.send(txt); 
      };
      

      Dabi kommt aber folgender Fehler:

      javascript.0 script.js.dpc.dpcWebSocket: script.js.dpc.dpcWebSocket:19 var ws = new WebSocket('ws://192.168.178.103','99'); ^ ReferenceError: WebSocket is not defined at script.js.dpc.dpcWebSocket:19:14

      Es kann nicht viel sein, ich bin aber am Ende…

      Kann mir jemand aufs Pferd helfen? `
      Hm… Das richt natürlich mehr nach einen Adapter, aber...

      Da node.js keine eingebaute Unterstützung für WS hat, musst du ein Modul dafür benutzen.

      z.B. https://www.npmjs.com/package/websocket

      Da gibt es auch Beispiele, wie man das zu benutzen hat.

      Du solltest in den Einstellungen von javasciprt dann dieses Modul eintragen.

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        dpcFan
        schrieb am zuletzt editiert von
        #3

        Ich wollte mit einem Adapter ja nicht gleich nach den Sternen greifen :-) Finde ich auch, weil die Haustechnik ja viel mehr kann und es da gute Ansätze für einen eigenen Adapter gibt … aber erst einmal klein anfangen.

        Ich werde nun mal versuchen das Modul zu installieren .. habe ich noch nie gemacht, werde berichten.

        Danke

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dpcFan
          schrieb am zuletzt editiert von
          #4

          Hallo!

          Geht, konnte das Modul installieren und auch nutzen.. schreibt schon nett den Header raus auf dem Bus. Nun geht das fummeln weiter … 1000 Danke

          Gruß

          dpcFan

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            dpcFan
            schrieb am zuletzt editiert von
            #5

            Hallo!

            Ich verzweifle mit dem WebSocket Zeug … ich habe nun folgendes in ein Script kopiert:

            var WebSocketClient = require('websocket').client;
            var client = new WebSocketClient();
            
            client.connect('ws://192.168.178.103:99');
            
            client.onopen = function () {
                console.log('Sending...');
                client.send('Ping');
            };
            
            client.onclose = function(){
                console.log('Server offline.');
            };
            
            client.onmessage = function(msg){
                console.log(msg.data);
            };
            
            client.onerror = function(msg){
                console.log('Sorry but there was an error.');
            };
            
            

            per OC-console sehe ich auch etwas auf dem RS485 Bus ankommen:

            47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A  GET / HTTP/1.1..
            55 70 67 72 61 64 65 3A 20 77 65 62 73 6F 63 6B  Upgrade: websock
            65 74 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20  et..Connection: 
            55 70 67 72 61 64 65 0D 0A 53 65 63 2D 57 65 62  Upgrade..Sec-Web
            53 6F 63 6B 65 74 2D 56 65 72 73 69 6F 6E 3A 20  Socket-Version: 
            31 33 0D 0A 53 65 63 2D 57 65 62 53 6F 63 6B 65  13..Sec-WebSocke
            74 2D 4B 65 79 3A 20 75 65 5A 4C 33 73 32 67 2F  t-Key: ueZL3s2g/
            61 39 30 72 67 35 58 74 2B 5A 2F 77 51 3D 3D 0D  a90rg5Xt+Z/wQ==.
            0A 48 6F 73 74 3A 20 31 39 32 2E 31 36 38 2E 31  .Host: 192.168.1
            37 38 2E 31 30 33 3A 39 39 0D 0A 0D 0A           78.103:99....
            

            Aber jetzt komme ich nicht weiter, "onopen" wird nicht ausgelöst, alle Versuche etwas zu senden gehen leer aus!!!

            Hat jemand mit io.broker JavaScript schon mal einen eigenen WebSocket Client entwickelt?

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            684

            Online

            32.5k

            Benutzer

            81.7k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe