Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Verbindung über ioBroker.ws

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Verbindung über ioBroker.ws

    This topic has been deleted. Only users with topic management privileges can see it.
    • ldittmar
      ldittmar Developer last edited by ldittmar

      Hi... ich versuche gerade den Status eines Objektes über den ws Adapter zubekommen. Das habe ich bis jetzt gemacht:

      const connOptions = {
        connLink: 'ws://192.168.0.50:8089'
      };
      let socket;
      
      function initializeSocket() {
        socket = new WebSocket(`${connOptions.connLink}/?sid=${Math.random().toString(36).substr(2, 10)}`);
      
        socket.addEventListener('open', () => {
          console.log('Verbindung zum ioBroker WebSocket-Adapter hergestellt.');
        });
      
        socket.addEventListener('message', (event) => {
          try {
            const data = JSON.parse(event.data);
            console.log('Nachricht vom ioBroker empfangen:', data);
            handleIoBrokerMessage(data);
          } catch (e) {
            console.error('Fehler beim Verarbeiten der Nachricht:', e);
          }
        });
      
        socket.addEventListener('close', (event) => {
          console.warn('Verbindung zum ioBroker WebSocket-Adapter geschlossen:', event);
          setTimeout(() => initializeSocket(), 5000);
        });
      }
      
      
      function sendMessageToIoBroker(message) {
        if (socket.readyState === WebSocket.OPEN) {
          socket.send(JSON.stringify(message));
          console.log('Nachricht an ioBroker gesendet:', message);
        } else {
          console.warn('WebSocket-Verbindung ist nicht offen.');
        }
      }
      
      function handleIoBrokerMessage(data) {
        // Prüfung auf spezifische Nachrichten
        if (Array.isArray(data) && data[0] === 0) {
          switch (data[1]) {
            case 1:
              console.log('ioBroker ist bereit.');
              const stateId = 'alias.0.Wohnzimmer.Durchlüftung.TIMER';
              subscribeToState(stateId);
              getCurrentState(stateId);
              break;
            case 'stateChange':
              console.log(`Zustand von ${data[2]} aktualisiert:`, data[3]);
              break;
            case 'getState': // Rückgabe des aktuellen Zustands
              console.log(`Aktueller Zustand von ${data[2]}:`, data[3]);
              break;
            default:
              console.log('Unbekannte Nachricht:', data);
          }
        } else {
          console.log('Andere Nachricht:', data);
        }
      }
      
      function subscribeToState(stateId) {
        const subscribeMessage = [0, 'subscribe', stateId];
        sendMessageToIoBroker(subscribeMessage);
        console.log(`Subscribed to state: ${stateId}`);
      }
      
      function getCurrentState(stateId) {
        const getStateMessage = [0, 'getState', stateId];
        sendMessageToIoBroker(getStateMessage);
        console.log(`Requesting current state of: ${stateId}`);
      }
      
      initializeSocket();
      

      Der verbindet sich, aber ich bekomme keine Werte. Irgendwas mache ich falsch und mit der Dokumentation komme ich auch nicht weiter. Hat jemand eine Idee? Das kommt in der Console:

      Verbindung zum ioBroker WebSocket-Adapter hergestellt.
      iobroker.js:16 Nachricht vom ioBroker empfangen: (3) [0, 1, '___ready___']
      iobroker.js:44 ioBroker ist bereit.
      iobroker.js:33 Nachricht an ioBroker gesendet: (3) [0, 'subscribe', 'alias.0.Wohnzimmer.Durchlüftung.TIMER']
      iobroker.js:66 Subscribed to state: alias.0.Wohnzimmer.Durchlüftung.TIMER
      iobroker.js:33 Nachricht an ioBroker gesendet: (3) [0, 'getState', 'alias.0.Wohnzimmer.Durchlüftung.TIMER']
      iobroker.js:72 Requesting current state of: alias.0.Wohnzimmer.Durchlüftung.TIMER
      iobroker.js:16 Nachricht vom ioBroker empfangen: [1]
      iobroker.js:59 Andere Nachricht: [1]
      iobroker.js:16 Nachricht vom ioBroker empfangen: [1]
      iobroker.js:59 Andere Nachricht: [1]
      iobroker.js:16 Nachricht vom ioBroker empfangen: [1]
      iobroker.js:59 Andere Nachricht: [1]
      iobroker.js:24 Verbindung zum ioBroker WebSocket-Adapter geschlossen: CloseEvent {isTrusted: true, wasClean: true, code: 1005, reason: '', type: 'close', …}
      (anonym) @ iobroker.js:24
      iobroker.js:10 Verbindung zum ioBroker WebSocket-Adapter hergestellt.
      iobroker.js:16 Nachricht vom ioBroker empfangen: (3) [0, 1, '___ready___']
      iobroker.js:44 ioBroker ist bereit.
      iobroker.js:33 Nachricht an ioBroker gesendet: (3) [0, 'subscribe', 'alias.0.Wohnzimmer.Durchlüftung.TIMER']
      iobroker.js:66 Subscribed to state: alias.0.Wohnzimmer.Durchlüftung.TIMER
      iobroker.js:33 Nachricht an ioBroker gesendet: (3) [0, 'getState', 'alias.0.Wohnzimmer.Durchlüftung.TIMER']
      iobroker.js:72 Requesting current state of: alias.0.Wohnzimmer.Durchlüftung.TIMER
      iobroker.js:16 Nachricht vom ioBroker empfangen: [1]
      iobroker.js:59 Andere Nachricht: [1]
      iobroker.js:16 Nachricht vom ioBroker empfangen: [1]
      iobroker.js:59 Andere Nachricht: [1]
      iobroker.js:16 Nachricht vom ioBroker empfangen: [1]
      iobroker.js:59 Andere Nachricht: [1]
      iobroker.js:24 Verbindung zum ioBroker WebSocket-Adapter geschlossen: CloseEvent {isTrusted: true, wasClean: true, code: 1005, reason: '', type: 'close', …}
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      770
      Online

      31.7k
      Users

      79.8k
      Topics

      1.3m
      Posts

      1
      1
      155
      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