NEWS
(Eigenen) Adapter via iobroker.net erreichen
-
Ich kann meinen Adapter über den Cloud Adapter via iobroker.net erreichen.
Eine Subscribtion auf die States findet laut Log statt, nur leider werden keine Änderungen übermittelt.
socket.emit('subscribe', subscribeObjID); console.log('[Socket] subscribed to: ' + subscribeObjID.toString() + ' at ' + date);
Ein setzen der Werte hingegen klappt.
socket.emit('setState', subscribeObjID[0], { val: JSON.stringify(configuration), ack: true }, function (error, res) { if (error) { console.log(error); reject(''); } else { resolve(configuration); } });
Könnte mir jemand weiterhelfen, wieso die Änderungen zwar lokal, aber nicht via iobroker.net dargestellt werden?
Danke!
-
@skb wie greifst du auf die Werte zu ??
per getState ?
-
@arteck Habe einen Listener dafür:
let subscribeObjID = [appProperties.namespace + '.configuration', appProperties.namespace + '.data', 'system.adapter.' + appProperties.namespace + '.alive']; socket.on('stateChange', function (stateId, state) { setTimeout(function () { if (stateId == subscribeObjID[0]) { try { configuration = JSON.parse(state.val); setLoadedConfig(true); console.log("Applied new configuration at " + date); } catch (error) { console.log('Error while parsing Config in JSON-Object!'); } } //console.log('[Socket] State Change: ' + stateId); }, 0); });
Jedoch klappt dies nur "lokal", also im eigenen Netz. Per iobroker.net erscheint bei Änderung nichtmal das
console
. -
@skb ich vermute der socket wird das problem sein.. der geht nur lokal .. im Netz
und mit iobroker.net bist du auserhalb
-
@arteck Also der Socket geht -> Ich bekomme die Seite angezeigt. Auch fehlerlos. Musste nur den Parameter auf polling einstellen, weil der Websocket wohl nicht durchging.
Nur wird eben nicht auf States reagiert, wenn sie sich ändern.
Schau:
-
@apollon77 Du hattest mir gestern prima bei den Web-Extensions via Github geholfen (muss ich noch schließen )
Weisst Du hier vielleicht auch Rat? Wäre super