NEWS
ID's am Conbee
-
@DocGame sagte:
const sensors = $('channel[state.id=deconz.0.Sensors.*.battery]');
Weshalb "channel" ? Ich sehe keine im Bild.
Ist "Sensors" in der ID wirklich groß geschrieben ?
Teste doch erst einmal den passenden $Selector mittels Testskript$('deconz.0.sensors.*.battery').each(function(id, i) {log(id);});
-
@paul53 sagte in ID's am Conbee:
$('deconz.0.sensors.*.battery').each(function(id, i) {log(id);});
Wenn du wüsstest wie ich dich bewundere...ich komm bei JS einfach nicht richtig rein. Kleinigkeiten ändern aber sonst..
Blockly klappt ja recht gut, da man da viel mit logischem Denken machen kann aber bei JS fehlt mir jeder Bezug (leider)
Ich habe deine Zeile in ein Extra Script gepackt. Muss ich das tiggern und wo ist ein e Ausgabe zu sehen. Kann ich diese so in meine erste Zeile einbauen?
Ich hoffe ich nerve nicht. Mir geht es auch oft so, das ich Leuten was von meinen Spezialgebieten erzähle und diese nur Bahnhof verstehen. -
@DocGame sagte:
Muss ich das tiggern und wo ist ein e Ausgabe zu sehen.
Bei jedem Start des Skripts kommt die Log-Ausgabe unterhalb des Editor-Fensters(evtl. vorher mal den Reiter wechseln).
@DocGame sagte in ID's am Conbee:
Kann ich diese so in meine erste Zeile einbauen?
Nein, dann funktioniert es mit den Mihome-Sensoren nicht mehr. Außerdem: Erst den $Selector testen, bis die Log-Ausgabe passt.
-
@DocGame
Wenn der $Selector für die Deconz-Batterien passt, dann versuches es mal so:const mihome = $('channel[state.id=mihome.0.devices.*.percent]'); const deconz = $('deconz.0.Sensors.*.battery'); var Infos = []; var Values = []; function checkBatt(id, i) { var value = getState(id).val; if(value < 99) { // Anpassen ! var pathname = id.substring(0, id.lastIndexOf('.')); var name = getObject(pathname).common.name; if(Infos.indexOf(name) == -1) { Infos.push(name); Values.push(value); } } } function lowBatt() { Infos = []; Values= []; var InfoMessage = 'Batterien Stand Liste:\n'; mihome.each(checkBatt); deconz.each(checkBatt); if(Infos.length) { for(let i = 0; i < Infos.length; i++) { InfoMessage = InfoMessage + Infos[i] + ': ' + Values[i] + ' %\n'; } sendTo("telegram", "send", {user: 'Ralf', text: InfoMessage}); } } on({id: /^mihome\.0\.devices\..+\.percent$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes on({id: /^deconz\.0\.Sensors\..+\.battery$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes lowBatt(); // Aufruf bei Skriptstart
-
@paul53
so hast du das bestimmt nicht gemeint... -
@DocGame
Wenn nicht mehr im Log kommt, findet der $Selector nichts. Dann muss man andere Varianten testen. -
@paul53
Sensors groß geschrieben und dann ging es.
Die Anzeige ist wegen der Mehrfachnennung pro Batterie natürlich suboptimal.
Werde heute abend mal versuchen die 2 Geräte in ein Script zu packen. Ohne Adapterupdate ist das aber nicht so prickelnd.
Werde berichten. Jetzt ist aber Frauchen dran19:09:35.339 info javascript.0 (12624) Stop script script.js.Scripts.Deconztest 19:09:35.353 info javascript.0 (12624) Start javascript script.js.Scripts.Deconztest 19:09:35.364 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.10.battery 19:09:35.364 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.11.battery 19:09:35.364 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.12.battery 19:09:35.365 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.13.battery 19:09:35.365 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.14.battery 19:09:35.365 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.15.battery 19:09:35.365 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.16.battery 19:09:35.366 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.17.battery 19:09:35.366 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.4.battery 19:09:35.366 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.5.battery 19:09:35.366 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.6.battery 19:09:35.366 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.8.battery 19:09:35.367 info javascript.0 (12624) script.js.Scripts.Deconztest: deconz.0.Sensors.9.battery 19:09:35.367 info javascript.0 (12624) script.js.Scripts.Deconztest: registered 0 subscriptions and 0 schedules
-
-
deConz gibt die Sensoren so aus, ich kann nicht fest stellen welche Zusammen gehören. Ich habe es mehrfach erfolg los versucht.
Da es nur Probleme damit gab hab ich es Aufgegeben. -
-
@paul53
Das mit dem Alias ist für mich leider immer noch Bahnhof...
Ich kann aber zumindest bei deinem Script einen Erfolg melden. Es lauft perfekt mit einer Besonderheit, an der ich allerdings selbst schuld bin. Dem Magic Cube, der ja auch 2 ID's sendet hate ich 2 Namen gegeben ("Würfel Seite" und "Würfel drehen") um in Blockly einen Besseren Überblick zu haben. Der ist jetzt natürlich 2 mal drin weil du ja den Namen abfragst. Mal sehen, ob ich meine Temperaturliste ähnlich angepasst bekomme.
Vielen Dank nochmals.