Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Zugriff auf Raum

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Zugriff auf Raum

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
27 Beiträge 5 Kommentatoren 8.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • sissiwupS Offline
    sissiwupS Offline
    sissiwup
    schrieb am zuletzt editiert von
    #7

    @paul53:

    @sissiwup:

    Oder alternativ, wie kann ich die Struktur des enum.rooms auslesen, denn da sind ja alle Geräte hinterlegt? `
    Versuche mal so:

    var rooms = getObject("enum.rooms.wohnzimmer").common.members;
    ```` `  
    

    Hallo,

    das funktioniert, aber wie bekomme ich zuerst die Liste aller Zimmer?

    var rooms = getObject("enum.rooms").common.members;
    

    liefert eine leere Liste. Habe ich hier einen Knoten im Hirn?

    root@pi:/opt/iobroker# iobroker list enums
    
    =====================================================================================
    rooms              (Rooms)
    -------------------------------------------------------------------------------------
    
    =====================================================================================
    favorites          (Favorites)
    -------------------------------------------------------------------------------------
    
    =====================================================================================
    

    Ist das korrekt, das der Enum nicht seine "Kinder" kennt?

    MfG

    Sissi

    –-----------------------------------------

    1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #8

      @sissiwup:

      var rooms = getObject("enum.rooms").common.members;

      liefert eine leere Liste. `
      Von der Objektstruktur her müsste es

      var rooms = getObject("enum.rooms").members;
      

      lauten, was allerdings auch eine leere Liste liefert, da das members array nicht ausgefüllt ist..

      Da muss wohl Bluefox noch mal ran.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #9

        Habe mal getestet:

        on("hm-rpc.0.JEQ0035715.1.TEMPERATURE", function(dp) {
            log("EnumNames: " + dp.enumNames);
        });
        

        funktioniert und liefert Raum und Gewerk, getrennt durch Komma.

        vardp = getObject("hm-rpc.0.JEQ0035715.1.TEMPERATURE");
        log ("EnumNames: " + dp.enumNames);
        

        liefert "undefined".

        Sollten nicht beide Funktionen das gleiche Ergebnis liefern oder unterscheiden sich die Objektstrukturen (absichtlich) zwischen on(…) und getObject(...) ?

        EDIT: Habe mir mal den Inhalt von getObject() anzeigen lassen und gesehen, dass nur die deklariereten Objektelemente zurück gegeben werden.

        Die folgenden Elemente sind offenbar nur durch on(…) erreichbar:

           'newState': {
              'val': 3,
              'ts': 1438001975,
              'ack': false,
              'lc': 1438001975,
              'from': 'system.adapter.admin.0'
           },
           'oldState': {
              'val': 2,
              'ts': 1438001926,
              'ack': false,
              'lc': 1438001926,
              'from': 'system.adapter.admin.0'
           },
           'channelId': null,
           'channelName': null,
           'deviceId': null,
           'deviceName': null,
           'enumIds': ['enum.rooms.küche'],
           'enumNames': ['Küche']
        
        

        Da on(…) aber auch zum Triggern dient, folgende Frage:

        Welche Möglichkeit gibt es, z.B. auf das Objektelement "channelName" eines <u>anderen Datenpunktes</u> innerhalb der Callback-Funktion von on(…) zuzugreifen ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • sissiwupS Offline
          sissiwupS Offline
          sissiwup
          schrieb am zuletzt editiert von
          #10

          Hallo,

          bei mir ist auch in der "on" - Variante die Struktur leer:

          javascript-0	2015-07-27 20:30:34	info	}
          javascript-0	2015-07-27 20:30:34	info	'enumNames': []
          javascript-0	2015-07-27 20:30:34	info	'enumIds': [],
          javascript-0	2015-07-27 20:30:34	info	'deviceName': 'ST-05',
          javascript-0	2015-07-27 20:30:34	info	'deviceId': 'hm-rpc.0.LEQ1274882',
          javascript-0	2015-07-27 20:30:34	info	'channelName': 'ST-05:1',
          javascript-0	2015-07-27 20:30:34	info	'channelId': 'hm-rpc.0.LEQ1274882.1',
          javascript-0	2015-07-27 20:30:34	info	'name': 'ST-05:1.STATE',
          javascript-0	2015-07-27 20:30:34	info	},
          javascript-0	2015-07-27 20:30:34	info	'UNIT': ''
          javascript-0	2015-07-27 20:30:34	info	'TYPE': 'BOOL',
          javascript-0	2015-07-27 20:30:34	info	'TAB_ORDER': 0,
          javascript-0	2015-07-27 20:30:34	info	'OPERATIONS': 7,
          javascript-0	2015-07-27 20:30:34	info	'MIN': false,
          javascript-0	2015-07-27 20:30:34	info	'MAX': true,
          javascript-0	2015-07-27 20:30:34	info	'ID': 'STATE',
          javascript-0	2015-07-27 20:30:34	info	'FLAGS': 1,
          javascript-0	2015-07-27 20:30:34	info	'DEFAULT': false,
          javascript-0	2015-07-27 20:30:34	info	'CONTROL': 'SWITCH.STATE',
          javascript-0	2015-07-27 20:30:34	info	'native': {
          javascript-0	2015-07-27 20:30:34	info	},
          javascript-0	2015-07-27 20:30:34	info	}
          javascript-0	2015-07-27 20:30:34	info	'debounce': 10000
          javascript-0	2015-07-27 20:30:34	info	'retention': 31536000,
          javascript-0	2015-07-27 20:30:34	info	'maxLength': 960,
          javascript-0	2015-07-27 20:30:34	info	'minLength': 480,
          javascript-0	2015-07-27 20:30:34	info	'changesOnly': true,
          javascript-0	2015-07-27 20:30:34	info	'enabled': true,
          javascript-0	2015-07-27 20:30:34	info	'history': {
          javascript-0	2015-07-27 20:30:34	info	'name': 'ST-05:1.STATE',
          javascript-0	2015-07-27 20:30:34	info	'role': 'state',
          javascript-0	2015-07-27 20:30:34	info	'write': true,
          javascript-0	2015-07-27 20:30:34	info	'read': true,
          javascript-0	2015-07-27 20:30:34	info	'type': 'boolean',
          javascript-0	2015-07-27 20:30:34	info	'def': false,
          javascript-0	2015-07-27 20:30:34	info	'common': {
          javascript-0	2015-07-27 20:30:34	info	},
          javascript-0	2015-07-27 20:30:34	info	'from': 'system.adapter.hm-rpc.0'
          javascript-0	2015-07-27 20:30:34	info	'lc': 1438021727,
          javascript-0	2015-07-27 20:30:34	info	'ack': true,
          javascript-0	2015-07-27 20:30:34	info	'ts': 1438021728,
          javascript-0	2015-07-27 20:30:34	info	'val': true,
          javascript-0	2015-07-27 20:30:34	info	'oldState': {
          javascript-0	2015-07-27 20:30:34	info	},
          javascript-0	2015-07-27 20:30:34	info	'from': 'system.adapter.web.0'
          javascript-0	2015-07-27 20:30:34	info	'lc': 1438021835,
          javascript-0	2015-07-27 20:30:34	info	'ack': false,
          javascript-0	2015-07-27 20:30:34	info	'ts': 1438021835,
          javascript-0	2015-07-27 20:30:34	info	'val': false,
          javascript-0	2015-07-27 20:30:34	info	'newState': {
          javascript-0	2015-07-27 20:30:34	info	'id': 'hm-rpc.0.LEQ1274882.1.STATE',
          javascript-0	2015-07-27 20:30:34	info	script.js.ereignis: OBJ={
          javascript-0	2015-07-27 20:30:34	info	script.js.ereignis: ereignis 2015-07-27 20:30:35 ST-05:1 AUTO
          javascript-0	2015-07-27 20:30:28	info	script.js.ereignis: registered 5 subscriptions and 0 schedules
          
          

          MfG

          Sissi

          –-----------------------------------------

          1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #11

            @sissiwup:

            bei mir ist auch in der "on" - Variante die Struktur leer: `
            Hast Du den Raum auch den Datenpunkten und nicht nur den Kanälen zugewiesen ? In Deiner Abbildung sind alle zugewiesenen Objekte vom Typ "channel".

            Übrigens muss ich nach einer neuen Zuweisung ioBroker erst neu starten, damit die Zuweisung das gewünschte Ergebnis unter enumNames liefert.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #12

              Habe jetzt iobroker.javascript erweitert:

              ### getObject
                  getObject (id, enumName)
              Get description of object id as stored in system.
              You can specify the enumeration name. If this is defined, two additional attributes will be added to result: enumIds and enumNames.
              These arrays has all enumerations, where ID is member of. E.g:
              
              ``` getObject ('adapter.N.objectName', 'rooms') ```
              
              gives back in enumIds all rooms, where the requested object is a member. You can define "true" as enumName to get back *all* enumerations.
              
              ### getEnums
                  getEnums(enumName)
              
              Get the list of existing enumerations with members, like: 
              
              ```
              getEnums('rooms') =>
              [
                  {
                      "id":"enum.rooms.LivingRoom",
                      "members":["hm-rpc.0.JEQ0024123.1","hm-rpc.0.BidCoS-RF.4"],
                      "name": "Living room"
                  },
                  {
                      "id":"enum.rooms.Bath",
                      "members":["hm-rpc.0.JEQ0024124.1","hm-rpc.0.BidCoS-RF.5"],
                      "name": "Bath"
                  }
              ]
              ```
              
              1 Antwort Letzte Antwort
              0
              • sissiwupS Offline
                sissiwupS Offline
                sissiwup
                schrieb am zuletzt editiert von
                #13

                Hallo,

                ich bin ein wenig weiter und habe hier mal meine Umgehungslösung:

                `createState("vEreignisse","
                
                *   first
                
                ");
                
                var sensorsST = $('channel[state.id=*.STATE](functions=ST)').each(function(id) {
                    var val = getObject(id).common.name;
                    log("DeviceST=" + val);
                });
                
                var sensorsVS = $('channel[state.id=*.STATE](functions=VS)').each(function(id) {
                    var val = getObject(id).common.name;
                    log("DeviceVS=" + val);
                });
                
                var sensorsBW = $('channel[state.id=*.MOTION](functions=BW)').each(function(id) {
                    var val = getObject(id).common.name;
                    log("DeviceBW=" + val);
                });
                
                function ereignis(text) {
                    log("ereignis "+text);
                    var ereignisStr = getState("vEreignisse").val;
                    var ereignisArr;
                    ereignisArr = ereignisStr.replace(/`
                
                `*   /, "").replace(/<\/li><\/ul>/, "").split("*   ");
                        ereignisArr = ereignisArr.reverse();
                        ereignisArr.push(text);
                        ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken
                        var str = ereignisArr.join("`
                *   `");
                        setState("vEreignisse", "
                
                    *   "+str+"
                
                    ");
                    }
                
                    function timestamp(ts) {
                        var now=new Date(ts);
                        var day = now.getDate();
                        var month = now.getMonth() + 1;
                        var year = now.getFullYear();
                        var weekday = now.getDay();
                        var hours = now.getHours();
                        var minutes = now.getMinutes();
                        var seconds = now.getSeconds();
                        var day0  = ((day < 10) ? "0" : "");
                        var month0  = ((month < 10) ? "0" : "");
                        var hours0  = ((hours < 10) ? "0" : "");
                        var minutes0  = ((minutes < 10) ? "0" : "");
                        var seconds0  = ((seconds < 10) ? "0" : "");
                        var output = year + "-" + month0 + month + "-" + day0 + day + " " + hours0 + hours + ":" + minutes0 + minutes + ":" + seconds0 + seconds;  
                        return output;
                
                    }
                
                    function room(devname) {
                        var rooms ={"ST-05" : "OG Balkontür", "ST-02" : "OG Wohnzimmer BW", "ST-03" : "EG Treppenhaustür"
                          , "ST-01" : "EG Wintergarten" , "ST-04" : "EG Eingangstür"
                          , "BW-01" : "UG Garage" , "BW-02" : "EG Wintergarten" , "BW-03" : "OG Wohnzimmer"   
                          , "VS-01" : "EG Eingangstür" , "VS-02" : "UG Eingangstür" , "VS-03" : "UG Waschküche" 
                          , "VS-04" : "UG Garagentor" , "VS-05" : "EG Balkontür Atrium" , "VS-06" : "EG Relaxraum" 
                          , "VS-07" : "OG Balkontür" , "VS-08" : "OG Dachfenster" , "VS-09" : "EG Katzen R" 
                          , "VS-10" : "EG Katzen L" , "VS-11" : "EG Wintergarten" , "VS-12" : "EG Wohnzimmerfenster" 
                          , "VS-13" : "EG Küche L" , "VS-14" : "EG Küche R" , "VS-15" : "EG Abstellkammer" 
                          , "VS-16" : "EG Trepphaus" , "VS-17" : "OG Gästezimmer" , "VS-18" : "OG Ankleidezimmer" 
                
                        };
                        if (devname in rooms) {
                            return rooms[devname];
                        }
                        return "?? ????????";
                    }
                
                    sensorsST.on(function(obj) {
                      var aktion="AUTO";
                      if (obj.newState.val == 1) {
                        aktion="OFF";
                      }
                      var ts=timestamp(obj.newState.ts*1000);
                        ereignis(ts + " " + obj.deviceName + " " + room(obj.deviceName) + " " + aktion);
                    //    log("OBJ=" + JSON.stringify(obj,null,2));
                    })
                
                    sensorsVS.on(function(obj) {
                      var aktion="ZU";
                      if (obj.newState.val == 1) {
                        aktion="AUF";
                      }
                      var ts=timestamp(obj.newState.ts*1000);
                        ereignis(ts + " " + obj.deviceName + " " + room(obj.deviceName) + " " + aktion);
                    //    log("OBJ=" + JSON.stringify(obj,null,2));
                    })
                
                    sensorsBW.on(function(obj) {
                      if (obj.newState.val == 1) {
                      var ts=timestamp(obj.newState.ts*1000);
                        ereignis(ts + " " + obj.deviceName + " " + room(obj.deviceName) + " " + "Bewegung");
                    //    log("OBJ=" + JSON.stringify(obj,null,2));
                      }
                
                      })` 
                
                    Als Ergebnis kommt eine Liste der letzten Ereignisse, quasi als Log heraus.
                      [305_tempundnexttemp.txt](/assets/uploads/files/305_tempundnexttemp.txt)  
                
                

                MfG

                Sissi

                –-----------------------------------------

                1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


                1 Antwort Letzte Antwort
                0
                • sissiwupS Offline
                  sissiwupS Offline
                  sissiwup
                  schrieb am zuletzt editiert von
                  #14

                  @paul53:

                  @sissiwup:

                  bei mir ist auch in der "on" - Variante die Struktur leer: `
                  Hast Du den Raum auch den Datenpunkten und nicht nur den Kanälen zugewiesen ? In Deiner Abbildung sind alle zugewiesenen Objekte vom Typ "channel".

                  Übrigens muss ich nach einer neuen Zuweisung ioBroker erst neu starten, damit die Zuweisung das gewünschte Ergebnis unter enumNames liefert. `

                  Hallo,

                  wie weise ich denn den Raum den Channels zu?

                  Ich habe es allerdings auch mit den Channels probiert gehabt (siehe oben).
                  1282_iobroker.2017-12-03.zip.txt

                  MfG

                  Sissi

                  –-----------------------------------------

                  1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #15

                    @Bluefox:

                    Habe jetzt iobroker.javascript erweitert: In der neuen Version 0.5.0 funktioniert __getObject(id)__ nicht mehr, sondern liefert folgende Fehler: > javascript-0 2015-07-27 21:56:14 error at script.js._Multistate-Test:1:9

                    javascript-0 2015-07-27 21:56:14 error at sandbox.getObject (C:\Program Files\ioBroker\node_modules\iobroker.javascript\javascript.js:1113:21)

                    javascript-0 2015-07-27 21:56:14 error script.js._Multistate-Test: ReferenceError: withEnums is not defined `

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #16

                      @paul53:

                      @Bluefox:

                      Habe jetzt iobroker.javascript erweitert: In der neuen Version 0.5.0 funktioniert __getObject(id)__ nicht mehr, sondern liefert folgende Fehler: > javascript-0 2015-07-27 21:56:14 error at script.js._Multistate-Test:1:9

                      javascript-0 2015-07-27 21:56:14 error at sandbox.getObject (C:\Program Files\ioBroker\node_modules\iobroker.javascript\javascript.js:1113:21)

                      javascript-0 2015-07-27 21:56:14 error script.js._Multistate-Test: ReferenceError: withEnums is not defined
                      http://forum.iobroker.org/viewtopic.php … 1086#p8726
                      305_nextdata_hzscrop.txt

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #17

                        Danke für die schnelle Reaktion.

                        So funktioniert es jetzt mit getObject():

                        var dp = getObject("hm-rpc.0.JEQ0035715.1.TEMPERATURE","rooms");
                        log ("Raum: " + dp.enumNames);
                        log ("RaumID: " + dp.enumIds);
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #18

                          @sissiwup:

                          wie weise ich denn den Raum den Channels zu? `
                          493_roommembers.jpg
                          Unter "Aufzählungen" in der Raumzeile den Button ganz rechts (Mitglieder) drücken; im Fenster "Mitglieder" das "+" links unten betätigen und das passende Objekt (Datenpunkt) auswählen.

                          Anmerkung: Die CCU kennt Raumzuordnungen <u>ausschließlich</u> zu Kanälen.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #19

                            @sissiwup:

                            aber wie bekomme ich zuerst die Liste aller Zimmer? `
                            Mit der neuen Funktion getEnums("rooms") funktioniert es:

                            var rooms = getEnums("rooms");
                            rooms.forEach(function(r,i,z) {
                               log("Raum" + i + ": " + r.name + "; ID: " + r.id);
                               ++i;
                            });
                            

                            liefert folgende Logs:
                            ` > javascript-0 2015-07-28 18:06:12 info script.js._Multistate-Test: Raum3: Bad; ID: enum.rooms.bad

                            javascript-0 2015-07-28 18:06:12 info script.js._Multistate-Test: Raum2: Aussen; ID: enum.rooms.aussen

                            javascript-0 2015-07-28 18:06:12 info script.js._Multistate-Test: Raum1: Schlafen; ID: enum.rooms.schlafen

                            javascript-0 2015-07-28 18:06:12 info script.js._Multistate-Test: Raum0: Wohnen; ID: enum.rooms.wohnen `

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #20

                              @Bluefox:

                              getObject

                              getObject (id, enumName)

                              Get description of object id as stored in system.

                              You can specify the enumeration name. If this is defined, two additional attributes will be added to result: enumIds and enumNames.

                              These arrays has all enumerations, where ID is member of. E.g:

                              getObject ('adapter.N.objectName', 'rooms')

                              gives back in enumIds all rooms, where the requested object is a member. You can define "true" as enumName to get back all enumerations. `
                              Diese Erweiterung löst zwar das Problem mit den Enums, aber ermöglicht nicht den Zugriff auf z.B. .oldState.lc und weitere Elemente, die on() im Callback liefert.

                              Mein Vorschlag: Erweiterung um eine Funktion getDatapoint() oder besser getDP() (um sich nicht die Finger wund zu tippen), die alle Objekt-Elemente eines Datenpunktes so liefert, wie on() im Callback.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Antwort Letzte Antwort
                              0
                              • BluefoxB Offline
                                BluefoxB Offline
                                Bluefox
                                schrieb am zuletzt editiert von
                                #21

                                Es gibt im System keine oldState. Die existiert nur beim Aufruf von "on".

                                Das worüber du sprichst ist ein "Event". Im System existieren Objekte und Zustände getrennt.

                                Es ist aber gut, dass wir darüber sprechen, weil ich kenne das System von innen und kann gar nicht denken, dass jemand die Information zusammen haben will :lol: . Vielleicht ist das wirklich gut eine Funktion zu haben, die die Info zusammen liefert (aber ohne oldState ;) ) .

                                Name "Datenpoint" passt aber nicht weil man kann auch die Info über Objekte damit anfordern, die haben aber nicht unbedingt einen Zustand.

                                vielleicht getInfo ?

                                1 Antwort Letzte Antwort
                                0
                                • HomoranH Offline
                                  HomoranH Offline
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #22

                                  Ich lese diese Diskussion schon länger mit, auch wenn ich von JavaScript keine Ahnung habe.

                                  Dabei ist mir die Frage gekommen, was denn mit Datenpunkten aus hmcon oder anderen Geräten passiert die nicht über die Rega klar Namen oder gar Raum und gewerk zugeordnet bekommen.

                                  Kann man das in iobroker irgendwie hinzufügen?

                                  Gruß

                                  Rainer

                                  Gesendet von meinem LIFETAB_S785X mit Tapatalk

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #23

                                    @Homoran:

                                    … die nicht über die Rega klar Namen oder gar Raum und gewerk zugeordnet bekommen.

                                    Kann man das in iobroker irgendwie hinzufügen? `
                                    Ja, man kann Mitglieder zu den Räumen und Gewerken hinzufügen http://forum.iobroker.org/viewtopic.php?f=21&t=1085#p8733. Ich habe den Rega-Adapter nicht geladen.

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #24

                                      @Bluefox:

                                      Es gibt im System keine oldState. Die existiert nur beim Aufruf von "on".

                                      Das worüber du sprichst ist ein "Event". Im System existieren Objekte und Zustände getrennt. `
                                      O.K. Den aktuellen Zustand erhält man ja mit getState(id). Braucht es also noch etwas für folgende Elemente:

                                         'channelId': null,
                                         'channelName': null,
                                         'deviceId': null,
                                         'deviceName': null,
                                      
                                      

                                      auf die man sicherlich auch unabhängig vom "Event" zugreifen möchte.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • sissiwupS Offline
                                        sissiwupS Offline
                                        sissiwup
                                        schrieb am zuletzt editiert von
                                        #25

                                        Hallo,

                                        Danke, der Zugriff auf .enumNames funktioniert einwandfrei:

                                        function room(obj) {
                                            var devname=obj.deviceName;
                                            var dp = getObject(obj.id,"rooms");
                                            var raum=dp.enumNames;
                                        
                                        

                                        THX :D :D :D

                                        MfG

                                        Sissi

                                        –-----------------------------------------

                                        1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


                                        1 Antwort Letzte Antwort
                                        0
                                        • T Offline
                                          T Offline
                                          tapir
                                          schrieb am zuletzt editiert von
                                          #26

                                          @Bluefox:

                                          Funktion "on" gibt zurück ein Objekt, wo auch "enumNames" dabei sind.

                                          Folgendes Skript:

                                          on('javascript.0.yr.0.forecast.html', function(obj) {
                                              log(JSON.stringify(obj));
                                          });
                                          

                                          Gibt so was zurück:

                                          {
                                          	'id': 'javascript.0.yr.0.forecast.html',
                                          	'newState': {
                                          		'val': 3,
                                          		'ts': 1438001975,
                                          		'ack': false,
                                          		'lc': 1438001975,
                                          		'from': 'system.adapter.admin.0'
                                          	},
                                          	'oldState': {
                                          		'val': 2,
                                          		'ts': 1438001926,
                                          		'ack': false,
                                          		'lc': 1438001926,
                                          		'from': 'system.adapter.admin.0'
                                          	},
                                          	'common': {
                                          		'name': 'yr.0.forecast.html',
                                          		'role': 'javascript',
                                          		'type': 'mixed'
                                          	},
                                          	'native': {
                                          		
                                          	},
                                          	'name': 'yr.0.forecast.html',
                                          	'channelId': null,
                                          	'channelName': null,
                                          	'deviceId': null,
                                          	'deviceName': null,
                                          	'enumIds': ['enum.rooms.küche'],
                                          	'enumNames': ['Küche']
                                          }
                                          

                                          enumNames, das ist Raum, wo dieses Objekt sich befindet.

                                          Hast du eher an so was gedacht?

                                          getEnums('javascript.0.yr.0.forecast.html') => {'enumIds': ['enum.rooms.küche'],	'enumNames': ['Küche']}
                                          
                                          ```` `  
                                          

                                          Ich beziehe mich hier auf die "on"-Funktion.

                                          Das funktioniert bei mir nur teilweise und hat ein instabiles Verhalten.

                                          Nach jeder Änderung/Neustart/Adapterneustart usw. in IO-Broker kann es sein, dass die Enums funktionieren oder nicht.

                                          Ich habe folgendes Test-Skript, bei dem kann es nach einem Neustart passieren, dass der "funktionierende Adapter" wechselt,

                                          also z.B. liefert der JavascriptAdapter.0 die Enums und beim JavascriptAdapter.1 bleiben die EnumNames leer (oder umgekehrt).

                                          `setState("hmxxx.LEVEL".onTime, 5); 
                                          setState("hmxxx.LEVEL".level, 10);
                                          
                                          on({id: "hmxxx.LEVEL", change: "ne"}, function(obj)
                                          {
                                            for (var i in obj) {
                                                console.log(i + " - " + obj[i]);
                                          }`Das Skript schaltet einen Dimmer ein und nach 5 Sekunden wieder aus.
                                          
                                          Es wird beim Ein- und Ausschalten getriggert und im log werden die Datenpunkte zum Objekt angezeigt.
                                          
                                          Dieses Skript lieferte bisher eigentlich immer nur die EnumNames auf einer von beiden Instanzen.
                                          
                                          Ein anderes Produktivskript funktionierte ab und zu mal auf einer Instanz, aber meistens auf keiner.
                                          
                                          Wenn nur eine Instanz installiert ist, geht es oder eben nicht.
                                          
                                           ` ~~[quote]~~~~[quote]~~~~[quote]~~bei mir ist auch in der "on" - Variante die Struktur leer: `  ` 
                                          Hast Du den Raum auch den Datenpunkten und nicht nur den Kanälen zugewiesen ? In Deiner Abbildung sind alle zugewiesenen Objekte vom Typ "channel".
                                          
                                          Übrigens muss ich nach einer neuen Zuweisung ioBroker erst neu starten, damit die Zuweisung das gewünschte Ergebnis unter _~~[i]~~enumNames[/i]_ liefert. `  `  `  ` 
                                          Also, wenn es mal funktioniert, dann geht es bei mir auch mit channels.
                                          
                                          Kann da jemand helfen  :|[/i]
                                          
                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          383

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe