Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Visualisierung
  4. Benötige Hilfe (mgtt/JSON/REST/VIS)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    739

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Benötige Hilfe (mgtt/JSON/REST/VIS)

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
4 Beiträge 3 Kommentatoren 344 Aufrufe 2 Beobachtet
  • Ä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.
  • C Offline
    C Offline
    Cavelord
    schrieb am zuletzt editiert von
    #1

    Hallo allerseits!

    seit über einer Woche widme ich mich dem Thema Smarthome, insbesondere dem ioBroker. Alles was ich über Suchmaschinen gefunden und über YT-Videos gesehen habe, bringt mich derzeit nicht weiter. Ich benötige von Euch ein paar Hinweise und Denkanstöße. Zum Angfang wollte ich folgendes umsetzen:

    • Zugriff auf LED-Controller über einen ESP8266 mit dem Projekt Milight-Hub (mgtt ist aktiviert und es purzeln auch Werte in den Adapter rein)
    • Da mehrere Werte im JSON-Format ankommen, kann man diese nicht direkt mit einem z.B. Bulb-Widget verknüpfen. Laut Suche muss man mit Script die benötigten Werte in separate Variablen des Javascript-Adapters schreiben. Also folgenden Script geschrieben
    on({id: /mqtt\.0\.milight\.states\..*cct/, change: "any"}, function (obj) { ParseCommand(obj); });
     
    function ParseCommand(obj) {
     
      let value = obj.state.val;
      let state = "";
      let brightness = 0;
      let idState = obj.id.replace("mqtt.0.", "") + ".state";
      let idBrightness = obj.id.replace("mqtt.0.", "") + ".brightness";
    
        createState(idState, "OFF");
        createState(idBrightness, 0);
        
      try { 
        obj = JSON.parse(value);
        state = obj.state;
        brightness = obj.brightness;
        
        setState(idState, state);
        setState(idBrightness, brightness);
    
      } catch (e) {
        return;
      }
    }
    

    Die Variablen werden angelegt und die Werte für On/Off und Brightness reingeschrieben.

    • Jetzt konnte ich die beiden Werte auf zwei Widgets aufteilen (Bulb und so ein Wertebereichs-Balken)
    • Wenn ich aber jetzt über VIS schalten möchte weiss ich nicht wie, da die Steuerung scheinbar über eine REST-API funktioniert. Über ein REST-Browser Plugin kann ich die entsprechenden Commands senden und die LEDs entsprechend steuern. Wie kann ich diese REST-API Commands beim Klick auf die Widgets ausführen? Hier komme ich nicht weiter.

    Es wäre schön, wenn mir jemand von Euch einen Tipp geben könnte. Vielleicht hat ja sogar einer einen Milight-Hub im Einsatz und kann mir seine Erfahrungen mitteilen.

    Mit freundlichen Grüßen
    Jens

    J.A.R.V.I.S.J 1 Antwort Letzte Antwort
    0
    • C Cavelord

      Hallo allerseits!

      seit über einer Woche widme ich mich dem Thema Smarthome, insbesondere dem ioBroker. Alles was ich über Suchmaschinen gefunden und über YT-Videos gesehen habe, bringt mich derzeit nicht weiter. Ich benötige von Euch ein paar Hinweise und Denkanstöße. Zum Angfang wollte ich folgendes umsetzen:

      • Zugriff auf LED-Controller über einen ESP8266 mit dem Projekt Milight-Hub (mgtt ist aktiviert und es purzeln auch Werte in den Adapter rein)
      • Da mehrere Werte im JSON-Format ankommen, kann man diese nicht direkt mit einem z.B. Bulb-Widget verknüpfen. Laut Suche muss man mit Script die benötigten Werte in separate Variablen des Javascript-Adapters schreiben. Also folgenden Script geschrieben
      on({id: /mqtt\.0\.milight\.states\..*cct/, change: "any"}, function (obj) { ParseCommand(obj); });
       
      function ParseCommand(obj) {
       
        let value = obj.state.val;
        let state = "";
        let brightness = 0;
        let idState = obj.id.replace("mqtt.0.", "") + ".state";
        let idBrightness = obj.id.replace("mqtt.0.", "") + ".brightness";
      
          createState(idState, "OFF");
          createState(idBrightness, 0);
          
        try { 
          obj = JSON.parse(value);
          state = obj.state;
          brightness = obj.brightness;
          
          setState(idState, state);
          setState(idBrightness, brightness);
      
        } catch (e) {
          return;
        }
      }
      

      Die Variablen werden angelegt und die Werte für On/Off und Brightness reingeschrieben.

      • Jetzt konnte ich die beiden Werte auf zwei Widgets aufteilen (Bulb und so ein Wertebereichs-Balken)
      • Wenn ich aber jetzt über VIS schalten möchte weiss ich nicht wie, da die Steuerung scheinbar über eine REST-API funktioniert. Über ein REST-Browser Plugin kann ich die entsprechenden Commands senden und die LEDs entsprechend steuern. Wie kann ich diese REST-API Commands beim Klick auf die Widgets ausführen? Hier komme ich nicht weiter.

      Es wäre schön, wenn mir jemand von Euch einen Tipp geben könnte. Vielleicht hat ja sogar einer einen Milight-Hub im Einsatz und kann mir seine Erfahrungen mitteilen.

      Mit freundlichen Grüßen
      Jens

      J.A.R.V.I.S.J Offline
      J.A.R.V.I.S.J Offline
      J.A.R.V.I.S.
      Developer
      schrieb am zuletzt editiert von J.A.R.V.I.S.
      #2

      @Cavelord du kannst die API per Request ansprechen. Nachfolgend ein kleines Beispiel (ungetestet, bitte vorher im JS Adapter 'request' als zusätzliches NPM Modul hinzufügen, wenn noch nicht geschehen), du musst aber in der URL noch deine Werte eintragen:

      const request = require('request');
      
      const options = {
      	url: 'http://<milight-hub>/gateways/{device-id}/{remote-type}/{group-id}',
      	body: {
      		'state': 'On',
      		'status': 'On',
      		'hue': 0,
      		'saturation': 0,
      		'kelvin': 0,
      		'temperature': 0,
      		'color_temp': 153,
      		'mode': 0,
      		'color': '255,0,255',
      		'level': 50,
      		'brightness': 170,
      		'effect': 'night_mode',
      		'transition': 2,
      		'command': 'pair',
      		'commands': [
      			'level_up',
      			'temperature_up'
      		]
      	}
      };
      
      request(options, (error, response, body) => {
      	
      	if(error) {
      		log(error, 'error');
      	} else {
      		log('Success');
      	}	
      });
      
      paul53P 1 Antwort Letzte Antwort
      0
      • J.A.R.V.I.S.J J.A.R.V.I.S.

        @Cavelord du kannst die API per Request ansprechen. Nachfolgend ein kleines Beispiel (ungetestet, bitte vorher im JS Adapter 'request' als zusätzliches NPM Modul hinzufügen, wenn noch nicht geschehen), du musst aber in der URL noch deine Werte eintragen:

        const request = require('request');
        
        const options = {
        	url: 'http://<milight-hub>/gateways/{device-id}/{remote-type}/{group-id}',
        	body: {
        		'state': 'On',
        		'status': 'On',
        		'hue': 0,
        		'saturation': 0,
        		'kelvin': 0,
        		'temperature': 0,
        		'color_temp': 153,
        		'mode': 0,
        		'color': '255,0,255',
        		'level': 50,
        		'brightness': 170,
        		'effect': 'night_mode',
        		'transition': 2,
        		'command': 'pair',
        		'commands': [
        			'level_up',
        			'temperature_up'
        		]
        	}
        };
        
        request(options, (error, response, body) => {
        	
        	if(error) {
        		log(error, 'error');
        	} else {
        		log('Success');
        	}	
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @J-A-R-V-I-S sagte:

        vorher im JS Adapter 'request' als zusätzliches NPM Modul hinzufügen,

        Das ist nicht nötig, da das Modul "request" bereits im JS-Adapter enthalten ist und request als Variable zur Verfügung steht, d.h. es ist auch kein require('request') erforderlich.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          Cavelord
          schrieb am zuletzt editiert von
          #4

          Hallo und danke für eure Mühen, aber wie löse ich jetzt diesen Request aus? Kann ich dem Widget eine "onclick"-Anweisung zum Ausführen dieser Request-Function mitgeben, oder muss ich im Javascript so eine "On{id: die im Widget verknüpt ist}" erstellen, um den Request zu zünden? Wenn ich auf das Widget (Lampe) klicke, dann wird ja der Wert der verknüpften ID geändert und das Lampensymbol geht in der VIS entsprechend an oder aus. Dies irritiert mich aber, das ja das Kommando (Request) zum Umschalten ja noch gar nicht raus ist, geschweige ein geänderter Wert vom Adapter zurück kam.

          1 Antwort Letzte Antwort
          0

          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

          Registrieren Anmelden
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          286

          Online

          32.8k

          Benutzer

          82.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