NEWS
Problem mit "Fenster offen Script"
-
@paul53 sagte in Problem mit "Fenster offen Script":
log($('*[role=Fenster]'));
keine Ausgabe, die Rolle habe ich auf "Fenster" geändert
-
@werner2000x und bitte noch
@paul53 sagte in Problem mit "Fenster offen Script":
Zeige bitte Datenpunkte.
-
@homoran hier 2 Datenpunkte der Fenstersensoren.
ein Datenpunkt:
{ "type": "state", "common": { "name": "Contact event", "type": "boolean", "read": true, "write": false, "role": "Fenster" }, "native": {}, "_id": "zigbee.0.00158d008b158119.contact", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1731498455840 }
-
@werner2000x sagte: die Rolle habe ich auf "Fenster" geändert
Gerade getestet: Bei mir funktioniert der Selektor mit der unzulässigen Rolle "Fenster".
log($('*[role=Fenster]').toArray());
liefert
javascript.0 14:14:00.756 info script.js.common.Neuer_Test: [ '0_userdata.0.Test.on' ]
-
@werner2000x sagte in Problem mit "Fenster offen Script":
keine Ausgabe, die Rolle habe ich auf "Fenster" geändert
Warum macht man sowas?
Dierole
eines State hat eine semantische Bedeutung. Die sollte man nicht willkürlich ändern.Alternative wäre eine Aufzählung (Kategorie). Die kann man frei vergeben.
Hinzu kommt, dass man dazu gar nicht erst im Expertenmodus in den Objekten rumfummeln muss.Auf die kann man dann auch ganz elegant zugreifen:
log($('(functions=window)'));
https://www.iobroker.net/#en/documentation/dev/stateroles.md
-
Ich habe ja die Rolle nur geändert weil nichts ankam.
Jetzt wieder rolle als "sensor.window".
Es wird noch kein offenes Fenster gefunden. Außerdem habe ich Fenstersensoren
bei denen bei 1 die Fenster auf sind und andere Sensoren bei denen bei 1 die Fenster zu sind.Meine Kategorie sieht allerdings anders aus. Dort fehlt "Fenster".
-
@werner2000x sagte in Problem mit "Fenster offen Script":
Meine Kategorie sieht allerdings anders aus. Dort fehlt "Fenster".
Wenn nicht vorhanden: Selbst anlegenAußerdem habe ich Fenstersensoren bei denen bei 1 die Fenster auf sind und andere Sensoren bei denen bei 1 die Fenster zu sind.
Dazu bieten sich Aliase an, um das zu harmonisieren.
-
@codierknecht Habe ich gemacht:
Doch werden noch immer keine offenen Fenster gefunden.
-
-
@homoran eine Kategorie mit der Funktion Fenster eröffnet und dort alle Fenster hereingebracht.
-
@werner2000x sagte in Problem mit "Fenster offen Script":
eine Kategorie mit der Funktion Fenster eröffnet und dort alle Fenster hereingebracht.
Das alleine tut ja noch garnix.
Aber mit dem passenden Selektor sollte das hier jetzt Werte liefern:
log($('(functions=window)'));
-
@werner2000x sagte in Problem mit "Fenster offen Script":
@homoran eine Kategorie mit der Funktion Fenster eröffnet und dort alle Fenster hereingebracht.
davon alleine werdrn keine offenen Fenster angrzeigt
was kam dann?
-
@werner2000x
Wenn man nur wissen möchte, wieviele Fenster geöffnet sind ... nichts einfacher als das:const ids = Array.prototype.slice.apply($("(functions=window)")); on({id: ids, change: "ne"}, async function() { let count = 0; for (let id of ids) { if (getState(id).val) count++; } setStateAsync("0_userdata.0.Vis.fenster", count, true); });
Ich brauche das nur für die Vis, um die Anzahl geöffneter Fenster anzuzeigen.
-
@codierknecht Ich bae das Script angepasst, s da keine Ergebnisse da waren:
const ids = Array.prototype.slice.apply($("(functions=Fenster)")); on({id: ids, change: "ne"}, async function() { let count = 0; for (let id of ids) { if (getState(id).val) count++; } setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true); });
Trotzdem keine offenen Fester erkannt?
-
-
@werner2000x sagte in Problem mit "Fenster offen Script":
Trotzdem keine offenen Fester erkannt?
Kann ja auch nicht.
Das Ding heiß ja auch bei Dirwindow
-
@werner2000x sagte: Script angepasst
Es muss die Schreibweise in der ID "enum.functions.window" verwendet werden:
log($('*(functions=window)').toArray());
muss eine ID-Liste mit allen Fenstern ausgeben.
-
@codierknecht Ja stimmt, aber mit window gab es ja keine ergebnisse,
Das object DoorsOpen ist 0. -
@werner2000x was steht im log nach dem Start des letzten Skripts von @paul53 ?
-
@werner2000x sagte in Problem mit "Fenster offen Script":
aber mit window gab es ja keine ergebnisse
Zeigt genau die States, die ich in die Kategorie gepackt habe: