NEWS
Fenster und andere Geräte zählen opt. Alexa Ansagen
-
@dslraser nein da hab ich diesmal nix dran gefummelt ^^
var name = getObject(id).common.name; if (name.substr( -7) == ('Is open')) return name.slice(0, -7); if (name.substr( -6) == ('.STATE')) return name.slice(0, -6); if (name.substr( -6) == ('.state')) return name.slice(0, -6); if (name.substr( -5) == ('.open')) return name.slice(0, -5); if (name.substr( -4) == ('open')) return name.slice(0, -5); id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name; id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name; else return 'Sensor unbekannt';
-
@Kueppert
kannst Du Zeile 3-7 mal auskommentieren und schauen ob das Blockly dann bei Dir läuft. Wenn nicht, dann mal 3-7 aktivieren und nochmal 9-12 auskommtieren.
So richtig weiß ich nicht woran es sonst liegen kann. Ich habe aber auch nur HMIP da drinn und einige andere "virtuelle" selbst angelegte DP probiert. -
@dslraser hab ich gemacht, mit folgendem Ergebnis:
Zeile 9-12 auskommentiert:
javascript.0 2020-05-19 11:09:40.049 info (5889) Stop script script.js.common.Sonstiges.Status_Türen&Fenster_gesamt javascript.0 2020-05-19 11:09:17.966 error (5889) at processTimers (internal/timers.js:492:7) javascript.0 2020-05-19 11:09:17.966 error (5889) at listOnTimeout (internal/timers.js:551:17) javascript.0 2020-05-19 11:09:17.966 error (5889) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2015:34) javascript.0 2020-05-19 11:09:17.965 error (5889) at Object.<anonymous> (script.js.common.Sonstiges.Status_Türen&Fenster_gesamt:508:5) javascript.0 2020-05-19 11:09:17.965 error (5889) at zaehlen (script.js.common.Sonstiges.Status_Türen&Fenster_gesamt:225:45) javascript.0 2020-05-19 11:09:17.965 error (5889) at getParentName (script.js.common.Sonstiges.Status_Türen&Fenster_gesamt:374:14) javascript.0 2020-05-19 11:09:17.964 error (5889) Error in callback: TypeError: name.substr is not a function
Zeilen 3-7 auskommentiert:
javascript.0 2020-05-19 11:11:38.580 info (5889) Stop script script.js.common.Sonstiges.Status_Türen&Fenster_gesamt javascript.0 2020-05-19 11:11:33.556 error (5889) at processTimers (internal/timers.js:492:7) javascript.0 2020-05-19 11:11:33.556 error (5889) at listOnTimeout (internal/timers.js:551:17) javascript.0 2020-05-19 11:11:33.556 error (5889) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2015:34) javascript.0 2020-05-19 11:11:33.555 error (5889) at Object.<anonymous> (script.js.common.Sonstiges.Status_Türen&Fenster_gesamt:508:5) javascript.0 2020-05-19 11:11:33.555 error (5889) at zaehlen (script.js.common.Sonstiges.Status_Türen&Fenster_gesamt:225:45) javascript.0 2020-05-19 11:11:33.554 error (5889) at getParentName (script.js.common.Sonstiges.Status_Türen&Fenster_gesamt:374:14) javascript.0 2020-05-19 11:11:33.552 error (5889) Error in callback: TypeError: name.substr is not a function
Das Steckdosenskript läuft wunderbar...und da sehen die Code-Zeilen nicht viel anders aus
-
@Kueppert
deaktiviere das mal bitte (das ist ab Zeile 374) -
@Kueppert
kannst Du mir nochmal Deine RAW von Deinen Fenstersensoren posten -
@dslraser hat leider nix gebracht, auch wieder Fehlermeldungen.
Anbei paar RAWs:
vom MiHome-Adapter ein Xiaomi-Fenstersensor{ "from": "system.adapter.mihome.0", "user": "system.user.admin", "ts": 1551894017590, "common": { "name": "Kinderzimmer-Fenster (R)", "role": "state", "type": "boolean", "write": false, "read": true }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "mihome.0.devices.magnet_158d0002b7b76c.state", "type": "state" }
HM-IP Türsensor:
{ "type": "state", "common": { "def": "CLOSED", "type": "number", "read": true, "write": false, "min": 0, "max": 1, "states": { "0": "CLOSED", "1": "OPEN" }, "unit": "\"\"", "role": "value.window", "name": "HMIP-Türsensor Keller.STATE" }, "native": { "MIN": "CLOSED", "UNIT": "\"\"", "OPERATIONS": 5, "MAX": "OPEN", "FLAGS": 1, "ID": "STATE", "TAB_ORDER": 0, "TYPE": "ENUM", "DEFAULT": "CLOSED", "VALUE_LIST": [ "CLOSED", "OPEN" ], "CONTROL": "DOOR_SENSOR.STATE" }, "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1589550730457, "_id": "hm-rpc.0.0000D709925D62.1.STATE", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Zigbee-Adapter:
{ "type": "state", "common": { "name": "EG Küche Fenster Sensor Is open", "type": "boolean", "read": true, "write": false, "role": "state" }, "from": "system.adapter.zigbee.0", "user": "system.user.admin", "ts": 1588595295109, "_id": "zigbee.0.00158d00019db26a.opened", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
-
@Kueppert JUHUUU, @dslraser hat es herausgefunden. Bei mir steht im Namen des Objekts ein (R) für rechts und (L) für links...das geht nicht (oder man muss es herausfiltern). Ich hab einfach die Klammern entfernt, fertig.
Jetzt kanns weiter gehen.Herzlichen Dank @dslraser für deine Unterstützung.
Viele Grüße, Thorsten
-
@Kueppert
Sonderzeichen sind an der Stelle nie eine gute Idee.
Warum?
Deswegen:
https://de.wikipedia.org/wiki/Regulärer_Ausdruck -
damit ginge es auch (ohne (R) )
Edit: und wenn Du das (R) behalten willst, dann ginge es auch damit
Mit (R) sieht es so aus (das sind Deine drei RAW)
Edit: falls sich Jemand wundert, ich habe bei mir mein "Keller Blockly" missbraucht und nur einen anderen Selektor mit den drei RAW in einer anderen Aufzählung benutzt...
-
wer schon mal testen möchte....
Mit dieser Datei kann man drei Sorten von "Geräte zählen" erstellen.Steckdosen
Lichter
BewegungsmelderIn dieser Funktion
Hier in Zeile 129 (wo Haus steht) kann ein Wunschname rein
In Zeile 130 muß einer der drei Geräte in genau dieser Schreibweise wie genannt stehen.
Hier dann den Wunschnamen wie oben genau so reinschreiben.
Und dann auswählen was man erstellen möchte.
Der Rest ist wie gehabt.
Zu mehr Erklärung habe ich heute keine Lust mehr...(kommt dann noch)
Hier erstmal "nur" die komplette VarianteDateien sind im ersten und zweiten Beitrag, ganz oben.
-
@dslraser
würde ich gern testen, leider funktioniert der Import nicht bei mir, da ich Telegram nicht nutzt.
Ich kann mir vorstellen, dass es viel Arbeit und Zeit kostet, dass alles getrennt unterzubringen und jede einzelne Version immer zu updaten.
Aber vielleicht hast Du ja doch noch die Möglichkeit in Deinem Blockly Telegram und iqontrol zu entfernen und eine Datei nur mit allen drei Zählungen zur Verfügung zu stellen. -
@falke69
kommt nachher...bin gerade dabei -
Dateien sind jetzt im ersten und zweiten Beitrag hochgeladen. Eine Beschreibung/Anleitung folgt.
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Mit dieser Datei kann man drei Sorten von "Geräte zählen" erstellen.
Muss ich dann auch in der Zeile 130 Steckdosen und Lichter noch hinzufügen?
Bei 03 steht : Die Steckdosen sind überall ausgeschaltet ?
Frage 2
Es kommt eine Fehlerwarnung bei 2 Funktionen:
-
@sigi234
ich mache gerade oben im ersten Beitrag die Beschreibung fertig. Immer nur ein Gerät da rein schreiben z.B. Steckdosen und dafür das Blockly erstellen. Wenn Du z.B. auch noch Lichter haben willst, dann die Datei in ein neues Blockly kopieren und für Lichter einrichten. usw... -
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@sigi234
ich mache gerade oben im ersten Beitrag die Beschreibung fertig. Immer nur ein Gerät da rein schreiben z.B. Steckdosen und dafür das Blockly erstellen. Wenn Du z.B. auch noch Lichter haben willst, dann die Datei in ein neues Blockly kopieren und für Lichter einrichten. usw...Aha, also 3 Blockly
Noch was, wichtig ist die SCHREIBWEISE in ID vom Selektor, also bei mir Bewegungsmelder hat nicht funktioniert, aber bewegungsmelder schon.
-
@sigi234 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@sigi234
ich mache gerade oben im ersten Beitrag die Beschreibung fertig. Immer nur ein Gerät da rein schreiben z.B. Steckdosen und dafür das Blockly erstellen. Wenn Du z.B. auch noch Lichter haben willst, dann die Datei in ein neues Blockly kopieren und für Lichter einrichten. usw...Aha, also 3 Blockly
Noch was, wichtig ist die SCHREIBWEISE in ID vom Selektor, also bei mir Bewegungsmelder hat nicht funktioniert, aber bewegungsmelder schon.
Siehe Anleitung vom Fensteransage Blockly. Die andere Anleitung erstelle ich ja gerade...
-
@sigi234 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Es kommt eine Fehlerwarnung bei 2 Funktionen:
Kommt bei mir nicht. Welche Javascript Version nutzt Du ?
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@sigi234 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Es kommt eine Fehlerwarnung bei 2 Funktionen:
Kommt bei mir nicht. Welche Javascript Version nutzt Du ?
4.6.14
-
@sigi234
siehe ganz oben. Ich habe 4.5.1
Keine Ahnung ob es daran liegt.