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

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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Zugriff auf Raum

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
27 Beiträge 5 Kommentatoren 8.3k 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.
  • 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 Nicht stören
      HomoranH Nicht stören
      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
              • T Offline
                T Offline
                tapir
                schrieb am zuletzt editiert von
                #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 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

                737

                Online

                32.6k

                Benutzer

                82.1k

                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