Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Ccu.io regaIndex und regaObjects wird ersetzt durch?

NEWS

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

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

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

  • Neues Video über Aliase, virtuelle Geräte und Kategorien
    BluefoxB
    Bluefox
    25
    1
    1.3k

Ccu.io regaIndex und regaObjects wird ersetzt durch?

Scheduled Pinned Locked Moved Skripten / Logik
3 Posts 1 Posters 1.1k 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.
  • carsten04C Offline
    carsten04C Offline
    carsten04
    Developer
    wrote on last edited by
    #1

    Nabend zusammen,

    ich habe mich bisher und das auch erst seit kurzem mit ccu.io beschäftigt und auch schon fleißig Scripte erstellt. Bei der Portierung nach iobroker habe ich aber noch nicht so wirklich verstanden wie die beiden Objekte regaIndex und regaObjects ersetzt werden müssen. Hierzu mal ein ccu.io Beispielscript. Das Script schaltet in der Küche, Wohzimmer oder in allen Räumen das Licht entweder an oder aus, aber nur für die Lichter, die auch tatsächlich aus oder an sind. Dazu nutze ich an vielen Stellen die Objekte regaIndex und regaObjects zur Ermittlung von devices, channels und DPs. Wie muss ich das jetzt in iobroker scripten, damit es funktioniert. Bin für jeden Hinweis dankbar.

    Beste Grüße

    Carsten

    function allLightsToggle(obj) {
    	var idRole 				= regaIndex.Name["Licht"][0];	// ID des Gewerks mit dem Namen "Licht" ermitteln
    	var arrWithChannelIds 	= []; 							// alle IDs der Kanäle im Gewerk ermitteln
    
    	/* Alle ChannelIds bestimmen, die zu dem Raum gehören für den der Event ausgelöst wurde.  */
    	/* Wenn kein Raum gefunden wird, enthält arrWithChannelIds alle Ids aus dem Gewerk Licht. */
    	if(regaObjects[regaIndex.Name["Kueche"][0]].Channels.indexOf(obj.channel.id) != -1) {
    		arrWithChannelIds = regaObjects[regaIndex.Name["Kueche"][0]].Channels;
    	} else if(regaObjects[regaIndex.Name["Wohnzimmer"][0]].Channels.indexOf(obj.channel.id) != -1) {
    				arrWithChannelIds = regaObjects[regaIndex.Name["Wohnzimmer"][0]].Channels;
    		   } else {
    				arrWithChannelIds = regaObjects[regaIndex.Name["Licht"][0]].Channels;
    			 }
    
    	var cnt = 0;
        for (var i = 0; i < arrWithChannelIds.length; i++) {
            var channelName = regaObjects[arrWithChannelIds[i]].Name;
    
    		switch(regaObjects[arrWithChannelIds[i]].HssType) {
    			case 'SWITCH':
    				if(obj.channel.name.match(/aus:/) && getState(channelName, "STATE")) {
    					setTimeout(function(_NAME) {
    					setState(_NAME, false);
    					}, cnt * 500, channelName);
    					cnt++;
    				} else if(obj.channel.name.match(/an:/) && !getState(channelName, "STATE")) {
    					setTimeout(function(_NAME) {
    					setState(_NAME, true);
    					}, cnt * 500, channelName);
    					cnt++;		
    				  }
    			break;
    
    			case 'DIMMER':
    				if(obj.channel.name.match(/aus:/) && getState(channelName, "LEVEL") > 0) {
    					setTimeout(function(_NAME) {
    					setState(_NAME, 0);
    					}, cnt * 500, channelName);
    					cnt++;
    				} else if(obj.channel.name.match(/an:/) && getState(channelName, "LEVEL") == 0) {
    					setTimeout(function(_NAME) {
    					setState(_NAME, 1);
    					}, cnt * 500, channelName);
    					cnt++;
    				  }
    			break;
    
    			default:
    				log("function: allLightsOff -> unknown Device in Gewerk Licht: <<" + channelName + ">> Type: <<" + regaObjects[arrWithChannelIds[i]].HssType + ">>");
    		}
    	}
    }
    
    // Lichter aus oder an
    subscribe({channel:/^Alle Lichter( | Wohnzimmer | Kueche )(aus|an):[0-9]{1,2}$/}, function (obj) {
        allLightsToggle(obj);
    });
    
    
    1 Reply Last reply
    0
    • carsten04C Offline
      carsten04C Offline
      carsten04
      Developer
      wrote on last edited by
      #2

      Hallo zusammen,

      niemand eine Idee, oder zu einfach? Vielleicht seh ich ja gerade nur den Wald vor lauter Bäumen nicht.

      Beste Grüße

      Carsten

      1 Reply Last reply
      0
      • carsten04C Offline
        carsten04C Offline
        carsten04
        Developer
        wrote on last edited by
        #3

        Wer die Doku findet und auch liest der braucht nicht fragen :D. Lösung wäre dann die Nutzung des Selektors $(selector). Sehr mächtig und auch einfach in der Nutzung.

        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

        616

        Online

        32.4k

        Users

        81.3k

        Topics

        1.3m

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

        • Don't have an account? Register

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