NEWS
Frage zu DeviceCounter script [object Object]
-
@Archimedeus
Was sagt das Log (anstelle Zeile 41)?log(d_list);
@Archimedeus sagte in Frage zu DeviceCounter script [object Object]:
Leider ist total jetzt auch 0, sollte 2 sein.
An der Zählung (Zeile 39) hat sich nichts geändert ?
-
Ich bin etwas weiter.
var roomsX = getObject(id,'rooms');
Die Zeile gibt schon das object Obct. Grund ist, dass in der Aufzählung direkt die Endpunkte -POWER stehen. ID ist dann also sonoff.0.sonoff1.POWER Da drin ist natürlich kein .rooms drin. Ich muss den Aufruf anders machen. Habe jetzt in der Auzählung sonoff.0.sonoff1 und versuche es so:
addDeviceCounter("lamps_on",$('channel[id=state.*.POWER](functions=sonoff)'), true);
Tut aber nicht, findet keine Devices. Ich glaube ioch muss mal drüber schlafen. Hast mir geholfen. Man kämpft sich bit für bit voran.
-
@Archimedeus sagte in Frage zu DeviceCounter script [object Object]:
Tut aber nicht, findet keine Devices.
Versuche es mal so:
addDeviceCounter("lamps_on",$('sonoff.0.*.POWER'), true);
@Archimedeus sagte in Frage zu DeviceCounter script [object Object]:
Das Problem mit LOWBATT und LOW_BATT bei HM und HMIP hat der * gelöst
Das sind unterschiedliche Instanzen.
-
@paul53 said in Frage zu DeviceCounter script [object Object]:
addDeviceCounter("lamps_on",$('sonoff.0.*.POWER'), true);
Das findet alle devices in sonoff (auch die bridge) aber roomsX bleibt object Object.
Das andere
addDeviceCounter("battery_homematic",$('channel[state.id=hm-rpc.*.*.0.LOW*]'), true);
funktioniert wirklich. Er findet die LOW* aus beiden instanzen.
-
@Archimedeus sagte:
funktioniert wirklich. Er findet die LOW* aus beiden instanzen.
Jetzt ist auch keine Instanz angegeben. Der Selektor kann kürzer sein:
addDeviceCounter("battery_homematic",$('hm-rpc.*.0.LOW*'), true);
@Archimedeus sagte in Frage zu DeviceCounter script [object Object]:
aber roomsX bleibt object Object.
Welche Version des Javascript-Adapters ? Sind Räume zugeordnet ?
-
@paul53
4.8.4 und ja es sind Räume zugewiesen. Morgen klappts. bestimmt -
@Archimedeus
Habe nicht mehr daran gedacht: Raumname kann mehrsprachig sein. Deshalbvar room = getObject(id,'rooms').enumNames[0]; if(typeof room == 'object') room = room.de; if(!d_list.includes(room)) d_list.push(room);
-
@paul53 said in Frage zu DeviceCounter script [object Object]:
var room = getObject(id,'rooms').enumNames[0];
Schon besser. Problem: enumNames nimmt nur den ersten Raum. Deshalb stand im Original auch
d_list.push(rooms.enumNames)
und
setState(state_list, d_list.join('-'));Naja, eigentlich sollte ein Gerät auch nur in einem Raum sein...
-
@Archimedeus
Aber es tut, was es soll! Danke vielmals! -