Hi
Hier noch in Ergänzung an mein Eingangspost ein erweitertes Skript. Vorteil: Die "States" bekommen gleich die richtige Einheit.
Gruß,
Frank
`var url = 'http://ccu2/addons/xmlapi/rssilist.cgi';
var request = require('request');
var parseString = require('xml2js').parseString;
function rssi() {
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
parseString(body, {
explicitArray: false,
mergeAttrs: true
},
function (err, result) {
if (err) {
log("Fehler: " + err);
} else {
var rssi = result.rssiList.rssi;
for (var i in rssi) {
var device_id = rssi[i].device;
var device = getObject('hm-rpc.0.' + device_id);
var device_name;
var device_icon;
if (device) {
device_name = device.common.name;
device_icon = device.common.icon;
}
var rx_node = 'hm-rssi.' + device_id + '.rx';
var tx_node = 'hm-rssi.' + device_id + '.tx';
var rx_value = round(rssi[i].rx, 0);
var tx_value = round(rssi[i].tx, 0);
if (rx_value != 65536) {
createState(rx_node, rx_value, {
name: device_name + ' Empfangsleistung',
type: 'number',
decimals: 0,
unit: 'dBm'
});
setState(rx_node, rx_value, true);
}
if (tx_value != 65536) {
createState(tx_node, tx_value, {
name: device_name + ' Sendeleistung',
type: 'number',
decimals: 0,
unit: 'dBm'
});
setState(tx_node, tx_value, true);
}
}
}
});
} else {
log('RSSI Fehler: ' + error);
}
});
}
schedule('* * * * *', rssi);
rssi();` [/i][/i][/i]