NEWS
[gelöst] Könnte mir bitte jemand bei dem Script helfen?
-
Hallo @paul53,
leider nicht. Ich habe das Testskript so eingefügt, bin mir aber nicht sicher ob du das so meintest:
createState('zählen_Fenster.textFensterauf', { // Anzahl der offenen Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); const hmFenster = $('channel[state.id=*.STATE](functions="Fenster")'); const miFenster = $('state[id=*.opened](functions="Fenster")'); miFenster.each(function(id, i) { log(id); }); function countFenster() { // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0 var anzahlFenster = 0; var anzahlFensterauf = 0; var textFensterauf = [];
-
Meinte zwar ein extra Testskript, aber so läßt es sich auch testen. Wenn die IDs nicht im Log erscheinen, passt der $Selector nicht. Versuche es mal in einem gesonderten Testskript mit
const miFenster = $('*.opened'); miFenster.each(function(id, i) { log(id); });
-
So, habe jetzt ein Testskript angelegt, geht leider auch nciht.
-
@Hicks Mit dem kurzen Selector ohne functions ? Im Log kommt nichts ?
Welche Javascript Version ? -
Ja, im Log steht nur:
4.3.2019, 17:13:07.319 [info ]: javascript.0 Stop script script.js.TESTTEST 4.3.2019, 17:13:08.209 [info ]: javascript.0 Start javascript script.js.TESTTEST 4.3.2019, 17:13:08.210 [info ]: javascript.0 script.js.TESTTEST: registered 0 subscriptions and 0 schedules
Die Javascript Version ist 4.1.5
-
...ich sehe gerade das es die Javascript-Version 4.1.8 gibt. Sollte ich besser updaten?
-
@Hicks Ein Versuch schadet nicht. Wenn es dann nicht funktioniert, mache ein Downgrade auf Version 3.6.4 (3.6.5), denn damit habe ich es gerade erfolgreich getestet.
-
OK, danke! Melde mich dann wieder...
-
Hallo @paul53,
du hattest den richtigen Riecher, die Javascript-Version war das Problem!
Mit der Version 4.1.8 ging's auch nicht, bin jetzt wieder zurück auf Version 3.6.4. und damit läuft auch mein oben geändertes Skript.
Schade, die neue Version hatte schon ihre Vorteile - ok, dann muss ich noch etwas warten.
Vielen Dank für deine Hilfe, ohne die wäre ich aufgemschissen gewesen.
-
Habe gerade mit Version 4.1.10 getestet und bei mir funktioniert es.
@Hicks Kannst Du bitte testen, ob es auch bei Dir funktioniert. Dann kann ich das Issue auf Github schließen.
-
so, ich bin jetzt auf Version 4.1.10. Leider läuft das Skript hier auch nicht.
Zudem habe ich einige Warnungen im Log vom Javascript-Adapter:
-
Sehr eigenartig
Die Datenpunkte sind tatsächlich enum.functions.Fenster zugeordnet ?
Unter members im Objekt ?{ "_id": "enum.functions.Fenster", "common": { "name": "Fenster", "members": [ "alias.0.geraet_1.opened", "alias.0.Geraet_2.opened" ], "icon": "", "color": false }, "type": "enum", "from": "system.adapter.admin.1", "ts": 1551716287358, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
-
-
-
...habe gerade festgestellt, dass dieses Skript mit der Version 4.1.10 auch Probleme macht.
Wenn es klingelt, schickt mir das Skript normalerweise drei Fotos von der Cam an Telegram.
Jetzt, scheint hier eine Endlosschleife vorzuliegen, dass Skript schickt ständig Fotos, Ruhe ist erst, wenn ich das Skript stoppe.// Telegram Bild senden durch Klingel oder Text to command var source_url = 'http://192.168.xxx.xx/tmpfs/snap.jpg?usr=xxxxx&pwd=xxxxx', //IP Adresse der Instar mit user und password dest_path = '/tmp/'; //Speicherort für das Bild var Nachricht = "Jemand klingelt"; // Nachricht, welche mit dem Bild gesendet wird var request = require('request'); var fs = require('fs'); //var timer = null; var count = 0; // Bild an telegram schicken function sendImage (pfad) { sendTo('telegram.0', pfad); //log('Webcam Bild per telegram verschickt'); sendTo("telegram.0", Nachricht); // <-- nach der Timeout funktion ausführen } // Bild speichern function saveImage() { request.get({url: source_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + 'image2.jpg', body, 'binary', function(err) { if (err) { //log('Fehler beim Bild speichern: ' + err, 'warn'); } else { //log('Webcam Bild gespeichert'); sendImage(dest_path + 'image2.jpg'); } }); }); } //Trigger // 3 Bilder senden wenn Bewegung erkannt und keiner zu Hause ist on({id: "mqtt.0.xxxxxxx"/*xxx*/, val: true}, function () { // if (getState("javascript.0.Unifi.Anwesenheit.UAP.Chef"/*WLAN Anwesenheit (UAP) - Chef*/).val === false) { count = 3; counter(); timer = setInterval(counter, 3000); } ); function counter() { saveImage(); count--; if(count === 0 && timer) clearInterval(timer); }
-
Entferne den Kommentar von
//var timer = null;
Die Variable timer muss global deklariert werden.
-
Super, so läufts. Danke
-
@paul53 sagte in [gelöst] Könnte mir bitte jemand bei dem Script helfen?:
Sehr eigenartig
Die Datenpunkte sind tatsächlich enum.functions.Fenster zugeordnet ?
Unter members im Objekt ?{ "_id": "enum.functions.Fenster", "common": { "name": "Fenster", "members": [ "alias.0.geraet_1.opened", "alias.0.Geraet_2.opened" ], "icon": "", "color": false }, "type": "enum", "from": "system.adapter.admin.1", "ts": 1551716287358, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
@paul53
Sorry, dass ich den Thread nochmal ausgrabe.Wo finde ich diese Auflistung der sensoren in der "enum.functions.Fenster"? Ich finde die einfach nicht.
Da der Javascript-Adapter mit der 4.1.12 nun default/stable ist und auch hier das Script nicht die Xiaomi-Sensoren findet, muss ich eine Lösung finden.
Merkwürdig ist, als ich den Eintrag "enum.functions.Fenster" in den Aufzählungen überprüft und erneut gespeichert habe, wurde komischerweise ein Xiaomi-TFK-Sensor gefunden, aber eben auch nur dieser eine?!?
Es ist zum verrückt werden
-
@Hicks sagte:
Wo finde ich diese Auflistung der sensoren in der "enum.functions.Fenster"?
Im Reiter "Objekte" die Eigenschaften des Objektes enum.functions.Fenster (Bleistift rechts) und dann auf Reiter "RAW (NUR EXPERTEN)".
-
@paul53
hmm, unter Objekte finde ich die Eigenschaften des Objektes enum.functions.Fenster nicht?Und wenn ich unter dem Reiter "Aufzählungen" die Eigenschaften des Objektes enum.functions.Fenster mit dem Bleistift öffne, wird mir das angezeigt:
Und in einem der betroffenen Sensoren nur das:
{ "type": "state", "common": { "name": "Test-TFK", "type": "boolean", "read": true, "write": false, "role": "state" }, "from": "system.adapter.zigbee.0", "ts": 1552228078774, "_id": "zigbee.0.00158d0002d4382e.opened", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
Verwirrend