Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    221

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Zugriff auf Raum

Scheduled Pinned Locked Moved Skripten / Logik
27 Posts 5 Posters 8.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by
    #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 Reply Last reply
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #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 Reply Last reply
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #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 Reply Last reply
        0
        • paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #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 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #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 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #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 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #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 Reply Last reply
                0
                • HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #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 -

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

                  ioBroker freut sich über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

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

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #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 Reply Last reply
                      0
                      • sissiwupS Offline
                        sissiwupS Offline
                        sissiwup
                        wrote on last edited by
                        #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 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          tapir
                          wrote on last edited by
                          #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 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            tapir
                            wrote on last edited by
                            #27

                            Hallo,

                            vielleicht war der vorige Beitrag etwas unklar formuliert.

                            Ich habe das Testskript erweitert und vergleiche jetzt den Datenpunkt enumNames der "on"-Funktion direkt mit dem Datenpunkt der "getObject"-Funktion.

                            on({id: id_Dimmer.level, change: "ne", val: 0, logic: "and"}, function(obj)
                            {
                              console.log("EnumNames mit on: " + obj.enumNames);
                            
                              var obj2 = getObject(obj.id, '*');
                              console.log("EnumNames mit getObject: " + obj2.enumNames);
                            });
                            

                            Auf dem JSAdapter.0 erscheint folgende Ausgabe:
                            ` > javascript.0 script.js.02_Test.checkScript.testObj: EnumNames mit on: Dimmer,Licht,OG

                            javascript.0 script.js.02_Test.checkScript.testObj: EnumNames mit getObject: Dimmer,Licht,OG Auf dem JSAdapter.1 bleiben die "EnumNames mit on" leider leer :| > javascript.1 script.js.02_Test.checkScript.testObj: EnumNames mit on:

                            javascript.1 script.js.02_Test.checkScript.testObj: EnumNames mit getObject: Dimmer,Licht,OG `
                            Bei einem anderen Produktivskript bleiben die "EnumNames mit on" meistens auf beiden Adaptern leer. Deshalb glaube ich nicht, dass es ein Instanzen-Problem ist.

                            Jedenfalls scheint "getObject" die Daten anders auszulesen, als die "on"-Funktion.

                            Könnte mal jemand testen, ob es auf einem anderen System auch auftritt :?:

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            573

                            Online

                            32.7k

                            Users

                            82.5k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Home
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe