Hallo an alle,
das Widget Last Change war genau das richtige.
Danke an alle.
Gruß Martin
Hallo an alle,
das Widget Last Change war genau das richtige.
Danke an alle.
Gruß Martin
Hatte bisher keine Antwort bekommen. Weiß jemand woher der Fehler kommt? Wiederholt sich jede 30 Sekunden.
Parallel läuft auch evcc. Hatte zuerst vermutet, dass es daran liegt. Habe dort jedoch mal MQTT deaktiviert. Jedoch das gleiche Verhalten als wenn es "aktiviert" ist.

Gruß Lenus
Hallo zusammen,
bei mir läuft aktuell die v4.3.0. Nun habe ich das Problem mit MQTT. Fehlermeldung erscheint alle 30 Sekunden. Client ID und CarData-Stream habe ich erneuert und in die APP eingetragen. Den BMW CARDATA AUTHORIZATION Prozess habe ich ausgeführt. Woran kann der Fehler liegen? Viele Grüße Lenus
@paul53 ```
javascript.0 (476) script.js.common.Servicemeldungen_Lichter_zählen: { '0': 'wled.0.40f5203efbxx.on', '1': 'wled.0.483fda4caaxx.on', '2': 'wled.0.500291da9fxx.on', '3': 'wled.0.98f4abbee4xx.on', '4': 'wled.0.c82b96207bxx.on', '5': 'wled.0.cc50e325d1xx.on', '6': 'wled.0.d8bfc0c030xx.on', '7': 'wled.0.e098069246xx.on', '8': 'wled.0.e868e789e9xx.on', '9': 'wled.0.f4cfa25d63xx.on', '10': 'wled.0.f4cfa266edxx.on', '11': 'wled.0.f4cfa26c0axx.on', '12': 'wled.0.f4cfa2da2cxx.on', '13': 'wled.0.fcf5c4a304xx.on', length: 14, each: [Function (anonymous)], getState: [Function (anonymous)], getStateAsync: [AsyncFunction (anonymous)], getBinaryState: [Function (anonymous)], getBinaryStateAsync: [Function (anonymous)], setState: [Function (anonymous)], setStateAsync: [AsyncFunction (anonymous)], setStateDelayed: [Function (anonymous)], setBinaryState: [Function (anonymous)], setBinaryStateAsync: [AsyncFunction (anonymous)], on: [Function (anonymous)], [Symbol(Symbol.iterator)]: [GeneratorFunction (anonymous)] }
20:21:59.474 info javascript.0 (476) script.js.common.Servicemeldungen_Lichter_zählen: Text: EZ Lava,WZ Pineapple
20:21:59.474 info javascript.0 (476) script.js.common.Servicemeldungen_Lichter_zählen: Anzahl Lichter: 31 # davon Lichter an: 2
Hallo zusammen,
aktuell lasse ich ein Skript laufen, um mir alle eingeschalteten Lichter (Homematic, Lichter über Shelly, Hue ...) mit Namen anzeigen zu lassen.
var cacheSelectorwled = $('state[id=*.on](functions=Licht)[role=switch]');
Bei wLED wird in den Objekten bei "on" die role=switch.light ausgegeben. Dadurch funktioniert der Teil des Skripts nicht.

Ich kann natürlich bei role es von switch.light auf switch händisch umstellen, was allerdings umständlich ist, wenn es sich nach einem Reset wieder zurückstellt.
Was muss ich im Code ändern, um es auf switch.light eingestellt lassen zu können?
Der Versuch mit
var cacheSelectorwled = $('state[id=*.on](functions=Licht)[role=switch.light]');
klappte nicht.
Sollten Infos fehlen bitte kurz melden.
Schon mal tausend Dank und ein schönes Wochenende
Lenus
@paul53
Vielen Dank. Ich habe das vorletzte Skript nun am laufen und werde schauen ob alles funktioniert.
Echt klasse wie du immer wieder hilfst 
@paul53 Hatte deine Änderung nicht gesehen.
Mit deinem letzten Stand des Skriptes bekomme ich dies hier:
14:43:41.400 info javascript.0 (744) Stop script script.js.common.DeviceCounter_Kopie
14:43:41.489 info javascript.0 (744) Start javascript script.js.common.DeviceCounter_Kopie
14:43:41.497 info javascript.0 (744) script.js.common.DeviceCounter_Kopie: registered 325 subscriptions and 1 schedule
14:43:41.497 error javascript.0 (744) script.js.common.DeviceCounter_Kopie: TypeError: selector.each is not a function
14:43:41.497 error javascript.0 (744) at countDevs (script.js.common.DeviceCounter_Kopie:43:22)
14:43:41.497 error javascript.0 (744) at addDeviceCounter (script.js.common.DeviceCounter_Kopie:68:9)
14:43:41.498 error javascript.0 (744) at script.js.common.DeviceCounter_Kopie:14:1
14:43:41.498 error javascript.0 (744) at script.js.common.DeviceCounter_Kopie:71:3
@paul53
ich sage doch, ich hab keine Ahnung vom Programmieren 
Hier das Skript:
//Add device rules
const ids = [];
$('hm-rpc.*.0.LOWBAT').each(function(id, i) {ids.push(id);});
$('deconz.*.battery').each(function(id, i) {ids.push(id);});
$('hm-rpc.*.0.STICKY_UNREACH').each(function(id, i) {ids.push(id);});
$('hm-rpc.*.0.UNREACH').each(function(id, i) {ids.push(id);});
$('hm-rpc.*.0.CONFIG_PENDING').each(function(id, i) {ids.push(id);});
const idsService = {};
for(let i =0; i < ids.length; i++) {
idsService[i] = ids[i];
}
idsService.length = ids.length;
addDeviceCounter('Servicemeldungen', idsService, true); // Ersatz für Zeilen 2 - 6
/******************************************
* Code - do not change anything bellow this line *
******************************************/
function addDeviceCounter(name, selector, val_to_count) {
//Total amount of devices found by selector
var state_total = 'deviceCounter.' + name + '.total';
createState(state_total, 0);
//List of devices that match condition
var state_list = 'deviceCounter.' + name + '.list';
createState(state_list, "");
//Number of devices that match condition
var state_counter = 'deviceCounter.' + name + '.counter';
createState(state_counter, 0);
function countDevs(obj) {
var d_count = 0;
var d_list = [];
selector.each(function (id, i) {
var status = getState(id).val;
var obj = getObject(id);
if ((typeof val_to_count === 'function' && val_to_count(status)) ||
(typeof val_to_count === 'boolean' && val_to_count == status)) {
//Get parent object
var parentChannelId = id.slice(id.lastIndexOf("."));
var parentDevicelId = id.split(".").slice(0,-2).join(".");
var deviceObject = getObject(parentDevicelId);
//remember device name
d_list.push(deviceObject.common.name);
}
++d_count; // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
});
log(name + "(" + d_count + "): " + d_list);
setState(state_list, d_list.join(''));
setState(state_counter, d_list.length);
setState(state_total, d_count);
}
//Re-evaluate when a device status changes
selector.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
countDevs(obj);
});
//Re-evaluate each 5 Minutes
schedule("*/5 * * * *", countDevs);
//Evaluate for the first time
countDevs();
}
... und nun folgender Fehler:
14:11:40.090 info javascript.0 (744) Stop script script.js.common.DeviceCounter_Kopie
14:11:40.177 info javascript.0 (744) Start javascript script.js.common.DeviceCounter_Kopie
14:11:40.182 info javascript.0 (744) script.js.common.DeviceCounter_Kopie: registered 0 subscriptions and 0 schedules
14:11:40.182 error javascript.0 (744) script.js.common.DeviceCounter_Kopie: TypeError: selector.on is not a function
14:11:40.182 error javascript.0 (744) at addDeviceCounter (script.js.common.DeviceCounter_Kopie:62:18)
14:11:40.183 error javascript.0 (744) at script.js.common.DeviceCounter_Kopie:16:1
14:11:40.183 error javascript.0 (744) at script.js.common.DeviceCounter_Kopie:72:3
@paul53
Bekomme folgende Fehlermeldung beim Ausführen:
14:02:40.741 info javascript.0 (744) Stop script script.js.common.Test
14:02:40.829 info javascript.0 (744) Start javascript script.js.common.Test
14:02:40.834 info javascript.0 (744) script.js.common.Test: registered 0 subscriptions and 0 schedules
14:02:40.835 error javascript.0 (744) script.js.common.Test: ReferenceError: addDeviceCounter is not defined
14:02:40.835 error javascript.0 (744) at script.js.common.Test:14:1
14:02:40.835 error javascript.0 (744) at script.js.common.Test:16:3
@paul53 Servus Paul, erst einmal danke. Aber ich glaube ich hänge mal besser das ganze Skript an, weil ich nicht weiß wie ich deinen Code in den alten implementieren soll. So fit bin ich leider nicht.
//Add device rules
addDeviceCounter("lowbat", $('channel[state.id=*0.LOWBAT]'), true);
addDeviceCounter("battery_deconz", $('channel[state.id=*.battery]'), true);
addDeviceCounter("sticky_unreach", $('channel[state.id=*.STICKY_UNREACH]'), true);
addDeviceCounter("unreach", $('channel[state.id=*.UNREACH]'), true);
addDeviceCounter("config_pending", $('channel[state.id=*.CONFIG_PENDING]'), true);
//addDeviceCounter("open_windows", $('channel{TYPE=SHUTTER_CONTACT}[state.id=*.STATE]'), true);
//addDeviceCounter("on_lights", $('channel{TYPE=DIMMER}[state.id=*.LEVEL]'), function(state){return state>0;});
//addDeviceCounter("open_shutters", $('channel{TYPE=BLIND}[state.id=*.LEVEL]'), function(state){return state>0;});
//addDeviceCounter("playing_music", $('channel[state.id=*audio-*.playing]'), true);
/******************************************
* Code - do not change anything bellow this line *
******************************************/
function addDeviceCounter(name, selector, val_to_count) {
//Total amount of devices found by selector
var state_total = 'deviceCounter.' + name + '.total';
createState(state_total, 0);
//List of devices that match condition
var state_list = 'deviceCounter.' + name + '.list';
createState(state_list, "");
//Number of devices that match condition
var state_counter = 'deviceCounter.' + name + '.counter';
createState(state_counter, 0);
function countDevs(obj) {
var d_count = 0;
var d_list = [];
selector.each(function (id, i) {
var status = getState(id).val;
var obj = getObject(id);
if ((typeof val_to_count === 'function' && val_to_count(status)) ||
(typeof val_to_count === 'boolean' && val_to_count == status)) {
//Get parent object
var parentChannelId = id.slice(id.lastIndexOf("."));
var parentDevicelId = id.split(".").slice(0,-2).join(".");
var deviceObject = getObject(parentDevicelId);
//remember device name
d_list.push(deviceObject.common.name);
}
++d_count; // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
});
log(name + "(" + d_count + "): " + d_list);
setState(state_list, d_list.join(''));
setState(state_counter, d_list.length);
setState(state_total, d_count);
}
//Re-evaluate when a device status changes
selector.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
countDevs(obj);
});
//Re-evaluate each 5 Minutes
schedule("*/5 * * * *", countDevs);
//Evaluate for the first time
countDevs();
}