NEWS
Blockly Selektor u. Aufzählungen Geräte zählen
-
@Icube
nimm mal nur den und kommentiere den Rest aus (bei Dir Zeile 7 und 8 )if(getObject(id.substring(0, id.lastIndexOf('.')))) return getObject(id.substring(0, id.lastIndexOf('.'))).common.name; else return null;
-
{ "_id": "knx.0.Beleuchtung_.Schalten_Status.Bad_Deckenlicht_status", "type": "state", "common": { "name": "Bad Deckenlicht.status", "type": "boolean", "read": true, "write": false, "role": "indicator.switch", "min": false, "max": true }, "native": { "dpt": "DPT1.011", "address": "1/4/4", "addressRefId": "P-034B-0_GA-81", "statusGARefId": "", "actGARefId": "P-034B-0_GA-5" }, "from": "system.adapter.knx.0", "user": "system.user.admin", "ts": 1580326377284, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@dslraser meinst du so
dann kommt folgender Fehler und anzeigen tut er auch nix
-
@Icube
Ändere Zeile 4 in der Javascript-Funktion inreturn devicename;
oder mach einen 2-Zeiler draus:
let name = getObject(id).common.name; return name.substring(0, name.lastIndexOf('.'));
-
@paul53 ja jetzt klappt es danke
-
@dslraser
Ja genau so habe ich es gemeint.
Bekomme allerdings noch eine Warnung im Log:javascript.3 2020-01-31 15:36:11.067 warn (24179) script.js.Alexa.Alexa_Lichtansage: Das angesprochene Gerät unterstützt kein ssml oder speak-volume !
-
@Conquest
auf was für einem Gerät soll die Ansage kommen ? Und kommt denn eine Ansage ? -
@dslraser sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:
@Conquest
auf was für einem Gerät soll die Ansage kommen ? Und kommt denn eine Ansage ?Auf einem Amazon Echo. Ob eine Ansage kommt kann ich nicht sagen bin momentan nicht zu Hause. Der Fehler kam direkt nach Scriptstart.
-
@Conquest sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:
Auf einem Amazon Echo. Ob eine Ansage kommt kann ich nicht sagen bin momentan nicht zu Hause. Der Fehler kam direkt nach Scriptstart.
Okay, das mit dem Scriptstart könnte sein, weil der Datenpunkt eventuell erstellt und dann aktualisiert wurde.
Diese Warnung habe ich absichtlich drinn, weil nicht alle Geräte ssml unterstützen, z.B. wenn Du die Ansage am Handy per Sprache startest. Eine Antwort soll am angesprochenen Gerät erfolgen, was ja eigentlich kein ECHO sein kann, wenn Du nicht zu Hause bist oder am Handy.
Probiere mal bitte eine echte Ansage wenn Du zu Hause bist. -
@tugsi sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:
Kann man eigentlich in dem Selektor auch eine ODER-Verknüpfung einbringen, weil meine ZWAVE Fensterkontakte ja auf einen anderen Datenpunkt signalisieren (.SENSOR_1)
Sowas wie (state[id=.opened]ORstate[id=.SENSOR_1])(functions=fenster) ...
@paul53 vielleicht kannst Du was dazu sagen?,
kann ich im Selektor zwei verschiedene Datenpunkte abfragen, sodass ich mir eine erneute Schleife spare? -
@tugsi sagte:
kann ich im Selektor zwei verschiedene Datenpunkte abfragen, sodass ich mir eine erneute Schleife spare?
Das habe ich noch nicht getestet. Du kannst es mal so testen und berichten:
$('state[id=*.(opened|SENSOR_1)$](functions=fenster)')
Vermutlich wird es nicht funktionieren, da der Selektor nicht funktioniert, wenn die ID Klammern enthält.
-
@paul53 sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:
Das habe ich noch nicht getestet. Du kannst es mal so testen und berichten:
$('state[id=*.(opened|SENSOR_1)$](functions=fenster)')
Vermutlich wird es nicht funktionieren, da der Selektor nicht funktioniert, wenn die ID Klammern enthält.
JS meckert:
Invalid selector: enum close bracket ")" cannot be found in "$('state[id=*.(opened|SENSOR_1)$](functions=fenster)')"
-
@tugsi sagte:
ohne Fenster öffnen, passiert keine Änderung
Du kannst so testen, ob alle passenden IDs gefunden werden:
$('state[id=*.(opened|SENSOR_1)$](functions=fenster)').each(function(id, i) { log(id); });
-
@paul53 Ok,
Aber der kommt schon mit dem $ nach dem SENSOR_1 nicht klar.
Und im Blockly kann ich die ' nicht mit reinpacken, dass bemängelt der auch.Ist der Ausdruck von Dir aus JS genommen?
Btw gibts ne gute Seite für JS, sodass ich da einiges nachlesen kann? -
-
-
@paul53 sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:
@tugsi sagte:
der kommt schon mit dem $ nach dem SENSOR_1 nicht klar.
$ kannst Du weglassen.
Ich habe jetzt einiges probiert, aber er kommt nicht klar mit den Klammern.
Muss man wohl doch eine zweite Schleife mit einbauen -
Moin, erstmal Danke für die Mühe, die Du hier reinsteckst!
Jetzt zu meinem Anliegen, ich würde sehr gerne das blockly zum zählen meiner Beleuchtung ausprobieren jedoch bin ich mit den Einstellungen ein wenig überfordert. Ich weiß nicht wie ich es einstellen muss das es funktioniert. Ich sehe HMIP und HUE, das nutze ich alles nicht und meine Aufzählungen sehen so aus.
Das ich im Blockly dann bei stateid=*.STATE anstatt HUE, Licht eintragen muss kann ich mir denken, aber was ist mit id=level ? Brauch ich dass? Weiter unten im Blockly weiss ich auch nicht was ich bei den Variabeln auswählen muss?
Ausserdem möchte ich nicht das die Datenpunkte unter userdata.0.Geräte zählen angelegt werden. Ich hätte sie viel lieber hier.
Ist es möglich, dass Blockly so abzuändern das die Datenpunkte hier landen?
Vielen Dank im Voraus für eure Hilfe.
-
@Elektroniker86
was sind das denn für Geräte von Deinem Licht ? Poste mal einen Datenpunkt von so einem Gerät als RAW in Code Tags.möchte ich nicht das die Datenpunkte unter userdata.0.Geräte zählen angelegt werden
ja, das geht, in der Funktion Datenpunkte anlegen.
da rein klicklen </>
dann ganz unten in den Datenpunkten den / die Ordnerstruktur bestimmen. Ganz unten dann anstatt 0_userdata.0 Dein javascript.o eintragen.
-
@Elektroniker86 sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:
Das ich im Blockly dann bei stateid=*.STATE anstatt HUE, Licht eintragen muss kann ich mir denken, aber was ist mit id=level ? Brauch ich dass? Weiter unten im Blockly weiss ich auch nicht was ich bei den Variabeln auswählen muss?
Du meinst den Selector. Was bei Dir anstatt id=*.STATE rein kommt sehe ich dann im Datenpunkt und die functions=HUE ist die Aufzählung, das wäre bei Dir dann functions=light
Das was hinten, hinter dem Punkt steht ist entscheidend
Weiter unten im Blockly weiss ich auch nicht was ich bei den Variabeln auswählen muss?
in diesem Beispiel werden zwei Selectoren verwendet, weil HUE und HMIP Geräte in einer Aufzählung sind.