NEWS

ID's aller Mitglieder eines Gewerks abfragen und alle schalten


  • Hallo zusammen,

    hab erst vor zwei Woche angefangen mich mit programmieren und javascript zu beschäftigen. Bitte daher um Nachsicht, wenn ich Unsinn rede :lol:

    Ich stecke aber gerade fest. Vielleicht kann mir da ja jemand helfen :?:

    1. Wie kann man die ID's aller Geräte, welche z.B. zu dem Gewerk "light" gehören abfragen?

    2. Gibts eine Möglichkeit die STATES aller Mitglieder eines Gewerks gleichzeitig zu schalten?

    also konkret: was kann ich so mit enum.functions.light anstellen? (schalten, auslesen)

    Vielen Dank und Grüße.

  • Forum Testing Most Active

    Hallo,

    ich lass mir auf meiner Haupt-VIS-Seite folgendes anzeigen (und zwar jeweils die Räume).
    1540_bild1.jpg

    Scripte dazu findest du genügend hier im Forum.

    Meine (alle 3) hatte ich auchmal hier eingestellt.

    mfg

    Dieter



  • @bahnuhr:

    Scripte dazu findest du genügend hier im Forum. `

    @paul53:

    Schau mal die https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#–-selector an. `

    Vielen Dank 🙂

     $('state(functions=light)').setState(true);
    

    für alle Mitglieder "an" klappt schon mal, aber

    gibt es irgendeine Möglichkeit mit $('state(selector)') die state.val von allen States zu bekommen, die Mitglieder in enum.functions.light sind und role=switch haben?

    $('state[role=switch](functions=light)').each(function(id) {// funktioniert nicht 
    ````funktioniert schon mal nicht (mit channel geht's, aber dann fehlen natürlich die ganzen anderen States, die z.B. ganz ohne channel sind)
    
    Ich habe nämlich das Problem, dass bei meinen sonoff pow's über den sonoff Adapter mit````
    $('state(functions=light)').each(function(id){
    ````auch die ID's vom Ordner Info, dem VCC State, Wifi RSSI State und alive State selektiert werden, obwohl ich nur den power Datenpunkt des Sonoffs mit functions.light verknüpft habe. :?
    
    Da ich nicht weiß, warum das so ist, würde ich gerne einfach nur die ID's der "functions.light-Mitglieder" rausfiltern, die als role=switch haben
    
    Weiß da jemand Rat?

  • push :ugeek:


  • @NyanCat:

    $('state[role=switch](functions=light)').each(function(id) {// funktioniert nicht
    

    mit channel geht's, aber dann fehlen natürlich die ganzen anderen States, die z.B. ganz ohne channel sind `
    Sind denn die <u>Datenpunkte</u> innerhalb der Kanäle Member of enum.functions.light und deren role = switch ?


  • @NyanCat:

    Ich habe nämlich das Problem, dass bei meinen sonoff pow's über den sonoff Adapter mit

    $('state(functions=light)').each(function(id){
    

    auch die ID's vom Ordner Info, dem VCC State, Wifi RSSI State und alive State selektiert werden, `
    Poste bitte die Objekt-Eigenschaften des Objektes "enum.functions.light" als raw in Code tags. Beispiel:

    ! ````
    {
    "_id": "enum.functions.klima",
    "common": {
    "name": "Klima",
    "members": [
    "javascript.0.Aussen.Feuchtegehalt",
    "javascript.0.Aussen.Temperatur",
    "javascript.0.Aussen.Temperatur-Max-24h",
    "javascript.0.Aussen.Temperatur-Min-24h",
    "javascript.0.Aussen.Temperatur-Mittel-24h",
    "javascript.0.Wohnen.Feuchtegehalt",
    "javascript.0.Wohnen.Temperatur",
    "javascript.0.Schlafen.Feuchtegehalt",
    "javascript.0.Schlafen.Temperatur",
    "wrapper.0.Bad.Enthalpie"
    ]
    },
    "type": "enum",
    "native": {},
    "acl": {
    "object": 1638
    }
    }


  • @paul53:

    Poste bitte die Objekt-Eigenschaften des Objektes "enum.functions.light" als raw in Code tags. `

    sorry für das Chaos, hab es mit getObject JSON.stringify geholt.

    {"_id":"enum.functions.light",
    "common":{"name":"light",
    "members":["tradfri.0.L-65537.lightbulb.state","tradfri.0.L65538.lightbulb.state",
    "sonoff.0.DVES_9B9AA6.POWER","javascript.0.funksteckdosen.new1.state",
    "javascript.0.funksteckdosen.new3.state","javascript.0.funksteckdosen.old2.state"]},
    "type":"enum","from":"system.adapter.admin.0","ts":1522343503291,"acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
    

    Hier sind nur 6 Mitglieder drin (so, wie es sein soll) aber

    $('state(functions=light)').each(function(id) {
        console.log(id);
     });
    

    schmeißt mir das hier aus:

    javascript.0.funksteckdosen.new1.state

    javascript.0.funksteckdosen.new3.state

    javascript.0.funksteckdosen.new4.state

    javascript.0.funksteckdosen.old1.state

    javascript.0.funksteckdosen.old2.state

    javascript.0.funksteckdosen.old3.state

    javascript.0.funksteckdosen.old4.state

    sonoff.0.DVES_9B9AA6.POWER

    sonoff.0.DVES_9B9AA6.Vcc

    sonoff.0.DVES_9B9AA6.Wifi_RSSI

    sonoff.0.DVES_9B9AA6.alive

    tradfri.0.L-65537.lightbulb.state

    tradfri.0.L-65538.lightbulb.state

    Die 6 richtigen sind auch dabei.

    Die zusätzlichen ID's sind eigentlich nicht der Gruppe light zugeordnet. (genau so, wie die darüber liegenden channel und devices) jedenfalls, wenn man dem, was man im Admin sieht glauben kann.

    Was mache ich falsch?


  • push :oops:

  • Forum Testing

    versuch mal den Javascript Adapter neu zu starten.

Suggested Topics

1.7k
Online

37.0k
Users

42.7k
Topics

592.8k
Posts