<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Benötige Hilfe (mgtt&#x2F;JSON&#x2F;REST&#x2F;VIS)]]></title><description><![CDATA[<p dir="auto">Hallo allerseits!</p>
<p dir="auto">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:</p>
<ul>
<li>Zugriff auf LED-Controller über einen ESP8266 mit dem Projekt <a href="https://github.com/sidoh/esp8266_milight_hub" rel="nofollow ugc">Milight-Hub</a> (mgtt ist aktiviert und es purzeln auch Werte in den Adapter rein)</li>
<li>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</li>
</ul>
<pre><code>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;
  }
}
</code></pre>
<p dir="auto">Die Variablen werden angelegt und die Werte für On/Off und Brightness reingeschrieben.</p>
<ul>
<li>Jetzt konnte ich die beiden Werte auf zwei Widgets aufteilen (Bulb und so ein Wertebereichs-Balken)</li>
<li>Wenn ich aber jetzt über VIS schalten möchte weiss ich nicht wie, da die Steuerung scheinbar über eine <a href="https://sidoh.github.io/esp8266_milight_hub/branches/latest/" rel="nofollow ugc">REST-API</a> 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.</li>
</ul>
<p dir="auto">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.</p>
<p dir="auto">Mit freundlichen Grüßen<br />
Jens</p>
]]></description><link>https://forum.iobroker.net/topic/29670/benötige-hilfe-mgtt-json-rest-vis</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 04:26:28 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/29670.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Feb 2020 10:06:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Benötige Hilfe (mgtt&#x2F;JSON&#x2F;REST&#x2F;VIS) on Mon, 03 Feb 2020 21:44:04 GMT]]></title><description><![CDATA[<p dir="auto">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.</p>
]]></description><link>https://forum.iobroker.net/post/370842</link><guid isPermaLink="true">https://forum.iobroker.net/post/370842</guid><dc:creator><![CDATA[Cavelord]]></dc:creator><pubDate>Mon, 03 Feb 2020 21:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to Benötige Hilfe (mgtt&#x2F;JSON&#x2F;REST&#x2F;VIS) on Mon, 03 Feb 2020 12:44:43 GMT]]></title><description><![CDATA[<p dir="auto">@J-A-R-V-I-S sagte:</p>
<blockquote>
<p dir="auto">vorher im JS Adapter 'request' als zusätzliches NPM Modul hinzufügen,</p>
</blockquote>
<p dir="auto">Das ist nicht nötig, da das Modul "request" bereits im JS-Adapter enthalten ist und <em>request</em> als Variable zur Verfügung steht, d.h. es ist auch <a href="https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#require---load-some-module" rel="nofollow ugc">kein <em>require('request')</em></a> erforderlich.</p>
]]></description><link>https://forum.iobroker.net/post/370436</link><guid isPermaLink="true">https://forum.iobroker.net/post/370436</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Mon, 03 Feb 2020 12:44:43 GMT</pubDate></item><item><title><![CDATA[Reply to Benötige Hilfe (mgtt&#x2F;JSON&#x2F;REST&#x2F;VIS) on Mon, 03 Feb 2020 11:46:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/cavelord" aria-label="Profile: Cavelord">@<bdi>Cavelord</bdi></a> 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:</p>
<pre><code class="language-js">const request = require('request');

const options = {
	url: 'http://&lt;milight-hub&gt;/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) =&gt; {
	
	if(error) {
		log(error, 'error');
	} else {
		log('Success');
	}	
});
</code></pre>
]]></description><link>https://forum.iobroker.net/post/370432</link><guid isPermaLink="true">https://forum.iobroker.net/post/370432</guid><dc:creator><![CDATA[J.A.R.V.I.S.]]></dc:creator><pubDate>Mon, 03 Feb 2020 11:46:15 GMT</pubDate></item></channel></rss>