Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. GetObject( id, "rooms") liefert zu viele "Räume"

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    GetObject( id, "rooms") liefert zu viele "Räume"

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      raller09 last edited by

      Moin,

      ich versuche mich gerade auch am ioBroker. Komme so langsam etwas rein, auch wenn ich mich echt noch orientieren muss.

      Ich habe mich zuerst am "Licht zählen"-Skript versucht.

      Da habe ich ein Problem mit "getObject( id, "rooms");":

      Es werden mittels ".enumNames" ein Array von Räumen zurückgegeben, wo ich aber den Zusammenhang zu meinen Objekten nicht herstellen kann:

      Test-Skript mit entsprechender Log-Meldung:

      function testRooms( obj) {
          var textRaum = []; 
      
          $('state[id=*.on][role=switch.light](functions="funcLight")').each( function( id, i){
              var status  = getState( id).val;
              var obj     = getObject( id);
              var raeume  = getObject( id, "rooms");
      
              log( obj.common.name);
              log( raeume.enumNames);
      
              textRaum.push( raeume.enumNames);
          });
      
          //*** doppelte Raumnamen entfernen
          textRaum = textRaum.filter( ( x, i, a) => a.indexOf( x) == i);
      
          log( textRaum);
      }
      
      function main() {
          setTimeout( function(){
              testRooms( );
          }, 2000);
      }
      
      main();
      
      -------
      
      Log
      
      18:56:00.038    [info]  javascript.0 Stop script script.js.common.test_rooms
      18:56:00.050    [info]  javascript.0 Start javascript script.js.common.test_rooms
      18:56:00.050    [info]  javascript.0 script.js.common.test_rooms: registered 0 subscriptions and 0 schedules
      18:56:02.110    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Flur_1.on
      18:56:02.110    [info]  javascript.0 script.js.common.test_rooms: Flur,Wohnzimmer
      18:56:02.113    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Flur_2.on
      18:56:02.113    [info]  javascript.0 script.js.common.test_rooms: Flur,Wohnzimmer
      18:56:02.115    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Flur_3.on
      18:56:02.116    [info]  javascript.0 script.js.common.test_rooms: Flur,Wohnzimmer
      18:56:02.118    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Ida_1.on
      18:56:02.118    [info]  javascript.0 script.js.common.test_rooms: Kinderzimmer Ida,Wohnzimmer
      18:56:02.119    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Ida_2.on
      18:56:02.120    [info]  javascript.0 script.js.common.test_rooms: Kinderzimmer Ida,Wohnzimmer
      18:56:02.120    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Ida_3.on
      18:56:02.121    [info]  javascript.0 script.js.common.test_rooms: Kinderzimmer Ida,Wohnzimmer
      18:56:02.121    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Küche_Tisch.on
      18:56:02.122    [info]  javascript.0 script.js.common.test_rooms: Küche,Wohnzimmer
      18:56:02.122    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Schlafzimmer_1.on
      18:56:02.122    [info]  javascript.0 script.js.common.test_rooms: Schlafzimmer,Wohnzimmer
      18:56:02.123    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Schlafzimmer_2.on
      18:56:02.123    [info]  javascript.0 script.js.common.test_rooms: Schlafzimmer,Wohnzimmer
      18:56:02.124    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Schlafzimmer_3.on
      18:56:02.124    [info]  javascript.0 script.js.common.test_rooms: Schlafzimmer,Wohnzimmer
      18:56:02.125    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Schlafzimmer_4.on
      18:56:02.125    [info]  javascript.0 script.js.common.test_rooms: Schlafzimmer,Wohnzimmer
      18:56:02.125    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Schlafzimmer_5.on
      18:56:02.126    [info]  javascript.0 script.js.common.test_rooms: Schlafzimmer,Wohnzimmer
      18:56:02.126    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Wohnzimmer_Iris.on
      18:56:02.127    [info]  javascript.0 script.js.common.test_rooms: Wohnzimmer
      18:56:02.127    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Wohnzimmer_Kommode.on
      18:56:02.128    [info]  javascript.0 script.js.common.test_rooms: Wohnzimmer
      18:56:02.128    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Wohnzimmer_Kugel.on
      18:56:02.128    [info]  javascript.0 script.js.common.test_rooms: Wohnzimmer
      18:56:02.129    [info]  javascript.0 script.js.common.test_rooms: ralloHUE_2.0.Wohnzimmer_Tisch.on
      18:56:02.129    [info]  javascript.0 script.js.common.test_rooms: Wohnzimmer
      18:56:02.130    [info]  javascript.0 script.js.common.test_rooms: Flur,Wohnzimmer,Flur,Wohnzimmer,Flur,Wohnzimmer,Kinderzimmer Ida,Wohnzimmer,Kinderzimmer Ida,Wohnzimmer,Kinderzimmer Ida,Wohnzimmer,Küche,Wohnzimmer,Schlafzimmer,Wohnzimmer,Schlafzimmer,Wohnzimmer,Schlafzimmer,Wohnzimmer,Schlafzimmer,Wohnzimmer,Schlafzimmer,Wohnzimmer,Wohnzimmer,Wohnzimmer,Wohnzimmer,Wohnzimmer
      

      Es wird teilweise willkürlich? ein zweiter Raum mit ausgegeben.

      Wenn ich das mit ".enumNames[0]" begrenze scheint es der korrekte Raum zu sein.

      Ich habe jeder HUE-Lampe genau einem Raum zugeordnet. enum.rooms wurde (meine ich) durch Homematic Instanzen angelegt:
      9678_bildschirmfoto_2018-11-28_um_19.51.01.png

      Mache ich da was falsch oder habe ich da was nicht verstanden?

      Danke

      raller09

      1 Reply Last reply Reply Quote 0
      • greyhound
        greyhound last edited by

        Ich habe dasselbe Problem, bin durch einen Skriptfehler drauf gestoßen und kann das Datenkonsistens-Problem nicht lösen! Ich habe mehrer Räume definiert (29 Räume, spezielles Gebäude mit Nebengelass).

        Unter javascript.0.alarm.devices.cams.Camx sind diverse Kameras als device mit weiteren Unterdatenpunkten vorhanden.

        Den Geräten Cam0 - CamX habe ich nun die entsprechenden Räume zugewiesen, jede Kamera ist und kann nur in einem Raum sein.

        Das habe ich in der object.json verifizieren können und auch bei der Anzeige der enums und der Zuordnung der Räume (auch nach einem Neustart des ioBrokers oder Linux) ist alles in Ordnung.

        Bsp.

        let dppCamProp = 'javascript.0.alarm.devices.Cams.Cam0';

        let oCamRooms = getObject(dppCamProp), 'rooms')

        logs(fctName + ', oCamRooms: ' + JSON.stringify(oCamRooms), 'debug2');

        "enumIds":["enum.rooms.entrance","enum.rooms.workshop"],"enumNames":["entrance","workshop"]
        

        Die Kamera ist aber gar nicht der Werkstatt zugeordnet

        "enum.rooms.entrance":

        {
        	"_id": "enum.rooms.entrance",
        	"type": "enum",
        	"common": {
        		"name": {
        			"en": "entrance",
        			"de": "Hauseingang außen"
        		},
        		"desc": "Hauseingang außen",
        		"members": [
        			"javascript.0.alarm.devices.Cams.Cam0",
        			"javascript.0.alarm.zones.2.20"
        		]
        	},
        	"from": "system.adapter.hm-rega.0",
        	"ts": 1544567253529,
        	"acl": {
        		"object": 1636,
        		"owner": "system.user.admin",
        		"ownerGroup": "system.group.administrator"
        	},
        	"enumIds": [
        	],
        	"enumNames": [
        	]
        }
        
        

        "enum.rooms.workshop"

        {
        	"_id": "enum.rooms.workshop",
        	"type": "enum",
        	"common": {
        		"name": {
        			"en": "workshop",
        			"de": "Werkstatt"
        		},
        		"desc": "Werkstatt",
        		"members": [
        			"javascript.0.alarm.devices.Cams.Cam7",
        			"hm-rpc.0.BidCoS-RF",
        			"javascript.0.alarm.zones.2.22"
        		]
        	},
        	"from": "system.adapter.hm-rega.0",
        	"ts": 1544124463498,
        	"acl": {
        		"object": 1636,
        		"owner": "system.user.admin",
        		"ownerGroup": "system.group.administrator"
        	},
        	"enumIds": [
        	],
        	"enumNames": [
        	]
        }
        
        

        Nach meinem Verständnis der Funktion getObject(id, 'rooms') bzw. getObject(id, true) liefert dieser Aufruf quasi "reverse engineered" aus enum.rooms den zugeordneten Raum. Aber wieso auch die Werkstatt?

        Es gibt 2 Kameras (Cam1 und Cam2), wo die Raum-Zuordnung stimmt. Diese beiden Kameras sind die beiden einzigen, wo es anscheinend immer stimmt (auch nach löschen eines Raumes).

        Folgendes habe ich noch beobachtet:

        • Es wird an fast jeder Kamera ein 2. Raum angehangen, der 2. Raum ist überall derselbe

        • Wenn ich einen Raum lösche, z. B. den "FALSCHEN" angehangenen, dann sucht sich ioBroker einen neuen Zombieraum

        Die Ausgaben der enum.rooms-Objekte von "entrance" und "workshop" sind ja korrekt.

        Gibt es Beschränkungen in der Namensgebung für Räume?

        Meine enum.room-Ids lauten z. B. wie folgt:

        • enum.rooms.dining_room

        • enum.rooms.co-op_office

        • enum.rooms.co-op_entrance_hall

        • enum.rooms.utility_room

        • enum.rooms.entrance

        • …

        Ist das nun ein Fehler in javascript-Adapter oder im js-Controller?

        Laufen tut das ganze bei mir unter

        node: v8.14.0

        debian Jessie, aktueller Patchstand

        Script-Engine: 4.0.5

        js-Controller: 1.4.2

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        809
        Online

        31.7k
        Users

        79.9k
        Topics

        1.3m
        Posts

        2
        2
        862
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo