NEWS
On mit mehreren State Trigger
-
Sorry, eine totale Anfängerfrage:
mir ist nicht klar wie ich man eine Subscription mit mehreren state Triggern erzeugt.
on("hm-rpc.0.JEQ0092995.1.STATE" or "hm-rpc.0.KEQ0165510.1.STATE" , function (obj) { .... });
-
Mit RegExp kann man es lösen:
on(/^hm-rpc\.0\.(JEQ0123456|KEQ1234567|KEQ2345678)\.1\.STATE$/, function(obj) { ... });
-
Danke,
sieht kompliziert aus. Eine einfache Auflistung aller states ist nicht irgendwie möglich?
Wenn der zweite Kanal kein Homematic sensor ist, wie würde es dann aussehen?
-
Eine einfache Auflistung aller states ist nicht irgendwie möglich? `
Doch. Schau mal nach https://github.com/ioBroker/ioBroker.javascript#–-selector.
@Marty56:Wenn der zweite Kanal kein Homematic sensor ist, wie würde es dann aussehen? `
Ich habe gerade meine Glaskugel verlegt :lol: Das hängt davon ab, wie die ID des Nicht-HM-Datenpunktes aussieht. -
Ich habe es bei mir so gelöst das ich ein Array mit allen Datenpunkten generiert habe wo es auslösen soll und dann eine Schleife mit dem "on"-Befehl drin. Damit kann ich einfach oben das Array erweitern wenn einer dazukommt und muss mir keine Regex-Magie ausdenken und fertig.
Also so als (trockenes) Beispiel:
var liste = ["ID1", "ID2" ...] for (var i=0; i<liste.length;i++) {/on(liste[id],/function()/});/}/<e=""></liste.length;i++)>
Die IDs bekommt man im JS-Adapter oben Rechts durc "ID Select" Button
-
Danke für die tolle Unterstützung.
Der letzte Ansatz gefällt mir gut.
-
Eigentlich möglich währe auch so:
var id1 = 'ID1'; var id2 = 'ID2'; function onChange() { var val1 = getState(id1).val; var val2 = getState(id2).val; console.log(id1 + ' = ' + val1 + '; ' + id2 + ' = ' + val2); } on(id1, onChange); on(id2, onChange);
-
@Bluefox: Wäre es nicht eine IDee bei "on" auch anstelle nur eines Strings oder Regex auch ein Array zu akzeptieren und neben "state-obj" als Parameter für Callback auch die "id" als zweiten Parameter zu übergeben?
-
neben "state-obj" als Parameter für Callback auch die "id" als zweiten Parameter zu übergeben? `
Die id wird im Objekt übergeben.function onChange(dp) { var idnow = dp.id; } on(..., onChange);
-
Stimmt, dann bleibt die Array-Idee
-
https://github.com/ioBroker/ioBroker.ja … 2017-05-19
3.3.7 (2017-05-19) (bluefox) Accept for subscribes arrays of IDs
-
https://github.com/ioBroker/ioBroker.ja … 2017-05-19
3.3.7 (2017-05-19) (bluefox) Accept for subscribes arrays of IDs ```` `
Und wieder ist der blaue Fux schneller als die Eisenbahn :respect:
–-----------------------
Send from mobile device
-
Tut bei mir nur leider nicht … aber er weiss es schon
-
So eine schnelle Reaktion habe ich noch nie erlebt. Ich bin beeindruckt.
Die Syntax, die jetzt möglich ist, von meinem Beispiel am Anfang ist dann
on(["hm-rpc.0.JEQ0092995.1.STATE","hm-rpc.0.KEQ0165510.1.STATE"] , function (obj) { .... });
Ist mein Verständnis korrekt?
-
Genau. Und on({id: […], change: "ne"}, function (obj) { sollte auch tun, aber das hat bei mir nicht geklappt. Aber wie geschrieben schaut duh das Bluefox schon an.
-
Ich habe Array Subscribe auf Github gefixt. wird dann 3.3.8
Bitte testen wer mag
-
Ich habe Array Subscribe auf Github gefixt. wird dann 3.3.8
Bitte testen wer mag `
Klappt!nice
-
Ich würde auch gern testen, mir ist aber nicht ganz klar, wie ich an die Pre Release herankomme.
Auf meinem Mac mache ich das Update der Platform mit
sudo ./iobroker stop sudo ./iobroker update sudo ./iobroker upgrade self sudo ./iobroker upgrade sudo ./iobroker start
Damit bekomme ich die Production Version.
Vermutlich benötige ich bei einem der Befehle eine "– xxxx " extension.
Noch eine (dumme) Frage:
Zur Ausgabe eines Mp3 Files muss man sein File unter Linux wohl in das OPT Verzeichnis kopieren, in dem auch die Sprachausgabe ihr Mp3 Files ablegt. Wo liegt dieses Verzeichnis auf dem MAC?
-
Ich würde auch gern testen, mir ist aber nicht ganz klar, wie ich an die Pre Release herankomme. `
Geht in der Admin UI.
Oben sind kleine Buttons und das dritte von Links ist ein Github-Symbol. Da drauf - ist "Custom Install" und dort im ersten tab den Adapter wählen den Du willst (in dem Fall hier "Javascript") und dann updated er direkt vom Github.
Noch eine (dumme) Frage:
Zur Ausgabe eines Mp3 Files muss man sein File unter Linux wohl in das OPT Verzeichnis kopieren, in dem auch die Sprachausgabe ihr Mp3 Files ablegt. Wo liegt dieses Verzeichnis auf dem MAC? `
Machst DU dazu bitte nen extra Thread auf ?! Wollen nicht zuviele Themen mischen -
Ich sehe kein "Custom install", wenn ich das GitHub Symbol anklicke.
Muss ich da noch eine URL eintragen?
2722_bildschirmfoto_2017-05-23_um_09.22.19.png
2722_bildschirmfoto_2017-05-23_um_09.23.26.png