NEWS
[gelöst] Überwachung Fensterkontakte (zigbee) per Javascript 4.0.5 funktioniert nicht mehr
-
Hallo Paul,
erstmal vielen Dank für deine Hilfe. Bei mir funktioniert der obere Teil noch nicht so ganz. Ist da ein Fehler im Javascript 4.0.5 Adapter?
Dann sollte man doch den Fehler melden, oder?
Folgendes Skript führe ich auf Anforderung aus:
`const sensor = getObject('enum.functions.sensors').common.members; sendTo('telegram.0', { text: 'BlaBla' }); for(let i = 0; i < sensor.length; i++) { var name = getObject(sensor[i]).common.name; on(sensor[i] + '.voltage', function (dp) { if(dp.state.val <= 4.8) { sendTo('telegram.0', { text: 'Die Batterie vom Sensor ' + name + ' neigt sich dem Ende zu. Die aktuelle Spannung beträgt ' + dp.state.val + ' V.' }); } }); }` Effekt: BlaBla schreibt er noch, aber bzgl. des Batterie-Anzeige wird nichts generiert. Ich habe mal den Value auf 4.8 hochgesetzt. Das sollte bei allen meinen Zigbee-Devices gelten, aber nichts passiert. Kann man vielleicht nur den Javascript-Adapter auf die ältere Version downgraden, ohne Probleme zu erwarten? Zumindestens bis das Problem behoben ist?[/i][/i] -
Hallo zusammen,
vielen Dank nochmal an Paul. Er hat mir mit seinen Hinweisen zum Ziel geleitet.
Hier das fertige Skript. Es läuft unter dem Javascript 4.0.5 Adapter:
`const sensor = getObject('enum.functions.sensors').common.members; for(let i = 0; i < sensor.length; i++) { var name = getObject(sensor[i]).common.name; on(sensor[i] + '.battery', function (dp) { if(dp.state.val <= 20) { var name = getObject(sensor[i]).common.name; sendTo('telegram.0', { text: 'Die Batterie vom Sensor '+ name +' neigt sich dem Ende zu. Aktuell noch ' + dp.state.val + '% Batterie.' }); } }); on(sensor[i] + '.voltage', function (dp) { if(dp.state.val <= 2.8) { var name = getObject(sensor[i]).common.name; sendTo('telegram.0', { text: 'Die Batterie vom Sensor ' + name + ' neigt sich dem Ende zu. Die aktuelle Spannung beträgt ' + dp.state.val + 'V.' }); } }); on(sensor[i] + '.opened', function (dp) { if(dp.state.val == true) { var name = getObject(sensor[i]).common.name; var id = getObject(sensor[i])._id; var idkurz = id.split('.')[2]; createState('isopen.'+idkurz, true, { read: true, write: true, desc: name, type: "boolean", def: false }); } if(dp.state.val == false) { var name = getObject(sensor[i]).common.name; var id = getObject(sensor[i])._id; var idkurz = id.split('.')[2]; deleteState('isopen.'+idkurz); } }); }` Ich setze den Thread auf gelöst.[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i] -
Habe auf Version 4.0.5 hochgezogen und getestet (Gewerk "batterie" zwei Geräten zugeordnet).
$('device[state.id=*.state](functions=batterie)');funktioniert nicht.
const rm = $('*.state(functions=batterie)'); rm.each(function(id, i) { log(id); });funktioniert erst nach Neustart (Javascript / ioBroker).
19:50:11.243 info javascript.1 script.js.common.Test3: zigbee.0.002.state 19:50:11.243 info javascript.1 script.js.common.Test3: zigbee.0.003.state ```` `Also stimmst du mir zu, das die enum funktionen sich nicht so verhalten wie sie sollten?
Was ist jetzt die Ursache?
Sollte man das bei github als issue melden? Bei Zigbee oder javascript?
-
Sollte man das bei github als issue melden? Bei Zigbee oder javascript? `
Ja, bei Javascript.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden