NEWS

On(); mehrere Bedingungen in einem on()?


  • @Marco:

    Bin mir nicht ganz sicher was du meinst. Das Beispiel müsste schon bei jeder Änderung reagieren.

    @Dutchman:

    Vielen Dank für die Klärung!


  • Hi Andreas,

    in meinem Enum sind HomeMatic Wired Rolloaktoren (HMW-LC-Bl1-DR) aufgeführt, dies bei SHORT_PRESS immer nur TRUE aktualisieren, aber den Wert nicht ändern.

    Der Trigger muss daher nicht auf ne (not equal) sondern auf any stehen.

    Im erweiterten Log steht aber dass per default "change":"ne" ausgewählt ist:
    > script.js.common.Rollos.RolloOgDoppelklick: subscribe: {"pattern":{"id":"hm-rpc.0.LEQ1322734.2.PRESS_SHORT",****"change":"ne"****},"name":"script.js.common.Rollos.RolloOgDoppelklick"}


  • Ah, verstehe! Ich hab hatte es bisher nur mit Lichtern ausprobiert. Diese ändern sich natürlich jedesmal, also geht es auch immer. Du hast recht Marco, die Taster frischen ihr "true" nur immer wieder auf, da geht es dann nicht mehr. Ich habe leider bislang auch noch keine Möglichkeit gefunden, das change: any im $-Selektor mit rein zu packen.

    Kann uns jemand weiterhelfen?


  • Irgendwie habe ich das noch nicht gepackt.

    Ich füge die state aller Bewegungsmelder in enum.roomcontroller.kueche.motions.

    subscribe ( {id: "enum.roomcontroller.kueche.motions", change: 'any'}, function (data) {
        log('Test');
    } );
    
    

    Was ist da falsch?

    Bei Bewegung wird nicht regaiert.

    Besten Dnak für alle Tipps


  • @Tefi:

    Was ist da falsch?

    Bei Bewegung wird nicht regaiert. `
    Man kann nicht auf enums triggern, sondern nur auf Datenpunkte. Will man enums auswerten, muss man den https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#–-selector anwenden.


  • Ok, danke

    enum.functions.Beleuchtung wurde bei der Installation des Adapeters angelegt und funktioniert:

    const testDps = $('state(functions=Beleuchtung)');

    testDps.each(function(id, i) {

    log(id + ': ' + getState(id).val);

    });

    enum.roomcontroller.test abe ich von Hand angelegt und brings nichts, obwohl auf Datenpunkte vorhanden sind:

    const testDps = $('state(roomcontroller=test)');
    testDps.each(function(id, i) {
        log(id + ': ' + getState(id).val);
    });
    

  • Wenn enum.roomcontroller.test und die Zuordnung der Datenpunkte neu ist, muss erst die JS-Instanz neu gestartet werden, damit der Selektor die Datenpunkte findet.
    493_enum_neu.jpg
    493_enum_neu_log.jpg


  • Super. Genau das war es.

    Wie hole ich mir jetzt alle Enum's nicht die Mitglieder?

    zB enum.functions =(Bewegung, Beleuchtung, usw)?


  • @Tefi:

    Wie hole ich mir jetzt alle Enum's nicht die Mitglieder?

    zB enum.functions =(Bewegung, Beleuchtung, usw)? `
    Versuche es mal mit https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#getenums.

    `var functions = getEnums('functions');
    for(var i = 0; i < functions.length; i++) {
       log(functions[i].name);
    }`[/i]
    

  • Ja genau das war es.

    Besten Dank

Suggested Topics

1.2k
Online

38.4k
Users

43.8k
Topics

612.8k
Posts