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. JavaScript
  5. Alias aus Liste erstellen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Alias aus Liste erstellen

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
17 Beiträge 6 Kommentatoren 1.1k Aufrufe 7 Watching
  • Ä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.
  • frana120500F frana120500

    @Glasfaser

    Ich brauche doch noch deine Hilfe. Wenn ich es so mache wie im Beitrag davor, legt er mir immer den letzten Eintrag an (in dem fall den Alias "Dose"

    Wo mache ich da den Fehler?

    N Offline
    N Offline
    Nordischerjung
    schrieb am zuletzt editiert von Nordischerjung
    #5

    @frana120500 Moin,

    so 100% weiß ich es auch nicht, aber versuch doch mal so:

    function createAliasWithObject({
    
        idSrc,
        idDst, 
        raum = undefined,  */hier das undefined entfernen bei dem du es benötigst*/
        gewerk = undefined, 
        typeAlias = undefined, 
        read = undefined,
        write = undefined,
        nameAlias = undefined, 
        role = undefined, 
        desc = undefined, 
        min = undefined, 
        max = undefined,
        unit = undefined, 
        states = undefined
    
    }) {
    
        createAlias(idSrc, idDst,raum, gewerk,typeAlias, read, write, nameAlias, role, desc, min, max, unit, states);
    
    }
    
    
    createAliasWithObject({
    
        idSrc: 'smartmeter.0.1-0:16_7_0__255.value',
        idDst: "alias.0.Strom.Smartmeter.value"
        raum: 'Wohnzimmer'  */und hier dan beschreiben*/
        
    
    });
    

    siehe Beispiel raum

    Gruß Nordischerjung

    sonnige Grüße von der Ostsee

    frana120500F 1 Antwort Letzte Antwort
    0
    • N Nordischerjung

      @frana120500 Moin,

      so 100% weiß ich es auch nicht, aber versuch doch mal so:

      function createAliasWithObject({
      
          idSrc,
          idDst, 
          raum = undefined,  */hier das undefined entfernen bei dem du es benötigst*/
          gewerk = undefined, 
          typeAlias = undefined, 
          read = undefined,
          write = undefined,
          nameAlias = undefined, 
          role = undefined, 
          desc = undefined, 
          min = undefined, 
          max = undefined,
          unit = undefined, 
          states = undefined
      
      }) {
      
          createAlias(idSrc, idDst,raum, gewerk,typeAlias, read, write, nameAlias, role, desc, min, max, unit, states);
      
      }
      
      
      createAliasWithObject({
      
          idSrc: 'smartmeter.0.1-0:16_7_0__255.value',
          idDst: "alias.0.Strom.Smartmeter.value"
          raum: 'Wohnzimmer'  */und hier dan beschreiben*/
          
      
      });
      

      siehe Beispiel raum

      frana120500F Offline
      frana120500F Offline
      frana120500
      schrieb am zuletzt editiert von
      #6

      @nordischerjung ja, das funktioniert. aber wie muss der Code aussehen, wenn ich einen zweiten Alias anlegen möchte? Dann legt er bei mir nur den letzten Eintrag an

      frana120500F 1 Antwort Letzte Antwort
      0
      • frana120500F frana120500

        @nordischerjung ja, das funktioniert. aber wie muss der Code aussehen, wenn ich einen zweiten Alias anlegen möchte? Dann legt er bei mir nur den letzten Eintrag an

        frana120500F Offline
        frana120500F Offline
        frana120500
        schrieb am zuletzt editiert von
        #7

        ich habe das
        = undefined
        beim raum gelöscht, so dass oben nur noch steht

        raum,
        

        der Code für den/das Alias sieht bei mir so aus

        createAliasWithObject({
        
            idSrc: 'sonoff.0.Bewässerung.POWER1',
        
            idDst: 'alias.0.Garten.BewaesserungKreis1EIN',
        
            raum: 'Garten',
        
            idSrc: 'sonoff.0.Bewässerung.POWER2',
        
            idDst: 'alias.0.Garten.BewaesserungKreis1AUS',
        
            raum: 'Garten',
        
            idSrc: 'sonoff.0.Bewässerung.POWER3',
        
            idDst: 'alias.0.Garten.BewaesserungKreis2EIN',
        
            raum: 'Garten',
        
            idSrc: 'sonoff.0.Bewässerung.POWER4',
        
            idDst: 'alias.0.Garten.BewaesserungKreis2AUS',
        
            raum: 'Garten'
        
        GlasfaserG 1 Antwort Letzte Antwort
        0
        • frana120500F frana120500

          ich habe das
          = undefined
          beim raum gelöscht, so dass oben nur noch steht

          raum,
          

          der Code für den/das Alias sieht bei mir so aus

          createAliasWithObject({
          
              idSrc: 'sonoff.0.Bewässerung.POWER1',
          
              idDst: 'alias.0.Garten.BewaesserungKreis1EIN',
          
              raum: 'Garten',
          
              idSrc: 'sonoff.0.Bewässerung.POWER2',
          
              idDst: 'alias.0.Garten.BewaesserungKreis1AUS',
          
              raum: 'Garten',
          
              idSrc: 'sonoff.0.Bewässerung.POWER3',
          
              idDst: 'alias.0.Garten.BewaesserungKreis2EIN',
          
              raum: 'Garten',
          
              idSrc: 'sonoff.0.Bewässerung.POWER4',
          
              idDst: 'alias.0.Garten.BewaesserungKreis2AUS',
          
              raum: 'Garten'
          
          GlasfaserG Offline
          GlasfaserG Offline
          Glasfaser
          schrieb am zuletzt editiert von Glasfaser
          #8

          @frana120500 sagte in Alias aus Liste erstellen:

          Pro Alias 1 x , nicht mehere idSrc: da rein

          createAliasWithObject({
          

          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

          frana120500F 1 Antwort Letzte Antwort
          0
          • GlasfaserG Glasfaser

            @frana120500 sagte in Alias aus Liste erstellen:

            Pro Alias 1 x , nicht mehere idSrc: da rein

            createAliasWithObject({
            
            frana120500F Offline
            frana120500F Offline
            frana120500
            schrieb am zuletzt editiert von
            #9

            @glasfaser also so?

            createAliasWithObject({
             
                idSrc: 'sonoff.0.Bewässerung.POWER1',
             
                idDst: 'alias.0.Garten.BewaesserungKreis1EIN',
             
                raum: 'Garten',
            
            createAliasWithObject({
             
                idSrc: 'sonoff.0.Bewässerung.POWER2',
             
                idDst: 'alias.0.Garten.BewaesserungKreis1AUS',
             
                raum: 'Garten',
             
            createAliasWithObject({
                idSrc: 'sonoff.0.Bewässerung.POWER3',
             
                idDst: 'alias.0.Garten.BewaesserungKreis2EIN',
             
                raum: 'Garten',
             
            createAliasWithObject({
            
                idSrc: 'sonoff.0.Bewässerung.POWER4',
             
                idDst: 'alias.0.Garten.BewaesserungKreis2AUS',
             
                raum: 'Garten'
            
            GlasfaserG 1 Antwort Letzte Antwort
            0
            • frana120500F frana120500

              @glasfaser also so?

              createAliasWithObject({
               
                  idSrc: 'sonoff.0.Bewässerung.POWER1',
               
                  idDst: 'alias.0.Garten.BewaesserungKreis1EIN',
               
                  raum: 'Garten',
              
              createAliasWithObject({
               
                  idSrc: 'sonoff.0.Bewässerung.POWER2',
               
                  idDst: 'alias.0.Garten.BewaesserungKreis1AUS',
               
                  raum: 'Garten',
               
              createAliasWithObject({
                  idSrc: 'sonoff.0.Bewässerung.POWER3',
               
                  idDst: 'alias.0.Garten.BewaesserungKreis2EIN',
               
                  raum: 'Garten',
               
              createAliasWithObject({
              
                  idSrc: 'sonoff.0.Bewässerung.POWER4',
               
                  idDst: 'alias.0.Garten.BewaesserungKreis2AUS',
               
                  raum: 'Garten'
              
              GlasfaserG Offline
              GlasfaserG Offline
              Glasfaser
              schrieb am zuletzt editiert von
              #10

              @frana120500 sagte in Alias aus Liste erstellen:

              createAliasWithObject({

              So ,

              createAliasWithObject({
              
                  idSrc: 'sonoff.0.Bewässerung.POWER1',
              
                  idDst: 'alias.0.Garten.BewaesserungKreis1EIN',
              
                  raum: 'Garten'
              });
              

              Komma am Ende raus und es schließen mit });

              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

              frana120500F 1 Antwort Letzte Antwort
              0
              • GlasfaserG Glasfaser

                @frana120500 sagte in Alias aus Liste erstellen:

                createAliasWithObject({

                So ,

                createAliasWithObject({
                
                    idSrc: 'sonoff.0.Bewässerung.POWER1',
                
                    idDst: 'alias.0.Garten.BewaesserungKreis1EIN',
                
                    raum: 'Garten'
                });
                

                Komma am Ende raus und es schließen mit });

                frana120500F Offline
                frana120500F Offline
                frana120500
                schrieb am zuletzt editiert von
                #11

                @glasfaser ahhhh, die Kleinigkeiten. Jetzt gehts es. und den Block wiederhole ich halt für jedes Alias. Funzt. Danke

                K 1 Antwort Letzte Antwort
                0
                • frana120500F frana120500

                  @glasfaser ahhhh, die Kleinigkeiten. Jetzt gehts es. und den Block wiederhole ich halt für jedes Alias. Funzt. Danke

                  K Offline
                  K Offline
                  Kuddel
                  schrieb am zuletzt editiert von
                  #12

                  Ich habe es mittlerweile hinbekommen, aus einer JSON Liste mit allen originalen DPs und weiteren Infos wie Name, Raum etc. vollautomatisch alle Alias einrichten zu lassen.

                  Bin noch bis nächste Woche im Urlaub und kann dann mein Skript posten

                  frana120500F W 2 Antworten Letzte Antwort
                  0
                  • K Kuddel

                    Ich habe es mittlerweile hinbekommen, aus einer JSON Liste mit allen originalen DPs und weiteren Infos wie Name, Raum etc. vollautomatisch alle Alias einrichten zu lassen.

                    Bin noch bis nächste Woche im Urlaub und kann dann mein Skript posten

                    frana120500F Offline
                    frana120500F Offline
                    frana120500
                    schrieb am zuletzt editiert von
                    #13

                    was ich mich noch frage: Ich habe das bisher über den Devices Adapter angelegt. Da kann ich ja recht einfach das Gerät austauschen wenn es defekt ist. Wie passe ich denn das Alias an wenn ich es mit dem Script hier erstellt habe?

                    Die Aliase die mit dem Script erstellt worden sind, tauchen zwar unter alias.0 auf, aber nicht im Devices Adapter. Muss ich da die RAW Daten vom Alias bearbeiten?

                    Oder steh ich grad auf dem Schlauch?

                    K 1 Antwort Letzte Antwort
                    0
                    • frana120500F frana120500

                      was ich mich noch frage: Ich habe das bisher über den Devices Adapter angelegt. Da kann ich ja recht einfach das Gerät austauschen wenn es defekt ist. Wie passe ich denn das Alias an wenn ich es mit dem Script hier erstellt habe?

                      Die Aliase die mit dem Script erstellt worden sind, tauchen zwar unter alias.0 auf, aber nicht im Devices Adapter. Muss ich da die RAW Daten vom Alias bearbeiten?

                      Oder steh ich grad auf dem Schlauch?

                      K Offline
                      K Offline
                      Kuddel
                      schrieb am zuletzt editiert von
                      #14

                      @frana120500 ich kann meine per Skript erstellten Alias im Menü unter dem Punkt Geräte anpassen.

                      Alternativ den alten Alias löschen und neu erstellen

                      1 Antwort Letzte Antwort
                      0
                      • crunchipC Abwesend
                        crunchipC Abwesend
                        crunchip
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #15

                        @frana120500 sagte in Alias aus Liste erstellen:

                        Muss ich da die RAW Daten vom Alias bearbeiten?

                        theoretisch ja, würde ich sagen

                        @frana120500 sagte in Alias aus Liste erstellen:

                        den Devices Adapter

                        ich verwende den alias Manager, ist flexibler

                        umgestiegen von Proxmox auf Unraid

                        1 Antwort Letzte Antwort
                        0
                        • K Kuddel

                          Ich habe es mittlerweile hinbekommen, aus einer JSON Liste mit allen originalen DPs und weiteren Infos wie Name, Raum etc. vollautomatisch alle Alias einrichten zu lassen.

                          Bin noch bis nächste Woche im Urlaub und kann dann mein Skript posten

                          W Offline
                          W Offline
                          Whilk-and-Misky
                          schrieb am zuletzt editiert von
                          #16

                          @Kuddel Kannst Du noch dein Script / Lösungsweg posten? Danke im Voraus :-)

                          ioBroker 6.x.x auf Debian 11 (Miniforum HM80 / AMD Ryzen 7 4800U, 8 Cores, 16 Threads / 32 GB RAM / Proxmox 7.x)

                          K 1 Antwort Letzte Antwort
                          0
                          • W Whilk-and-Misky

                            @Kuddel Kannst Du noch dein Script / Lösungsweg posten? Danke im Voraus :-)

                            K Offline
                            K Offline
                            Kuddel
                            schrieb am zuletzt editiert von
                            #17

                            @whilk-and-misky

                            Hier mein Skript. Es funktioniert in meinen Augen sehr gut, hat aber bestimmt noch Verbesserungspotential

                            let geraete = [
                               //Ankleide
                               {"raum": "AZ","name": "Deckenlampe","gewerk": "LS","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "AZ","name": "Velux","gewerk": "RA","dp": "klf200.0.products.2.targetPosition"},
                               {"raum": "AZ","name": "Velux","gewerk": "FS","dp": "zigbee.0.xxxxxxxxxxxxxxxx.opened"},
                               {"raum": "AZ","name": "Heizkoerper","gewerk": "HZ","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.SET_TEMPERATURE"},
                               {"raum": "AZ","name": "Heizkoerper","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               
                               //Badezimmer
                               {"raum": "BZ","name": "Deckenlampe","gewerk": "LS","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "BZ","name": "Spiegel","gewerk": "LS","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay1.Switch"},
                               {"raum": "BZ","name": "Velux","gewerk": "RA","dp": "klf200.0.products.3.targetPosition"},
                               {"raum": "BZ","name": "Velux","gewerk": "FS","dp": "zigbee.0.xxxxxxxxxxxxxxxx.opened"},
                            
                               //Buero
                               {"raum": "BR","name": "Fenster-Links","gewerk": "DK","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "BR","name": "Fenster-Rechts","gewerk": "DK","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "BR","name": "Heizkoerper","gewerk": "HZ","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.SET_TEMPERATURE"},
                               {"raum": "BR","name": "Heizkoerper","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               {"raum": "BR","name": "Deckenlampe","gewerk": "LS","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "BR","name": "Fenster","gewerk": "RA","dp": "homepilot20.0.Actuator.1-xxxxxxxxxxxxxxxx.Position_inverted"},
                               {"raum": "BR","name": "3D-Drucker","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "BR","name": "Ladegeraet","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "BR","name": "Ladegeraet","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               {"raum": "BR","name": "PC-Monitore","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "BR","name": "PC-Monitore","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               {"raum": "BR","name": "PCs","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "BR","name": "PCs","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                            
                               
                               //Flur
                               {"raum": "FL","name": "Bewegungsmelder","gewerk": "BM","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.MOTION"},
                               {"raum": "FL","name": "Briefkasten-Deckel","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "FL","name": "Haustuer","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "FL","name": "Aussenlampe","gewerk": "LS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "FL","name": "Lichterkette","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "FL","name": "Nachtlicht","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               
                               //Garten
                               {"raum": "GA","name": "Haustuer","gewerk": "BM","dp": "zigbee.0.xxxxxxxxxxxxxxxx.occupancy"},
                               {"raum": "GA","name": "Kamera-Haustuer","gewerk": "BM","dp": "synology.0.SurveillanceStation.cameras.Haustuer.motionDetected"},
                               {"raum": "GA","name": "Kamera-Balkon","gewerk": "BM","dp": "synology.0.SurveillanceStation.cameras.Balkon.motionDetected"},
                               {"raum": "GA","name": "Parkplatz","gewerk": "BM","dp": "zigbee.0.xxxxxxxxxxxxxxxx.occupancy"},
                               {"raum": "GA","name": "Pavillon","gewerk": "BM","dp": "zigbee.0.xxxxxxxxxxxxxxxx.occupancy"},
                               {"raum": "GA","name": "Stufenbeleuchtung","gewerk": "HA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "GA","name": "Gartenbeleuchtung","gewerk": "HA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "GA","name": "Pavillon","gewerk": "HA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.2.STATE"},
                               {"raum": "GA","name": "Pavillon","gewerk": "HA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.2.STATE"},
                               {"raum": "GA","name": "Whirlpool","gewerk": "SD","dp": "fritzdect.0.DECT_xxxxxxxxxxxxxxxx.state"},
                               {"raum": "GA","name": "Whirlpool","gewerk": "POWER","dp": "fritzdect.0.DECT_xxxxxxxxxxxxxxxx.power"},
                               {"raum": "GA","name": "Whirlpool","gewerk": "POWER_SUM","dp": "fritzdect.0.DECT_xxxxxxxxxxxxxxxx.energy"},
                               {"raum": "GA","name": "Whirlpool","gewerk": "TH","dp": "shelly.0.xxxxxxxxxxxxxxxx.ext.temperatureC1"},
                               
                               //Kinderzimmer
                               {"raum": "KZ","name": "Balkontuer","gewerk": "DK","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "KZ","name": "Heizkoerper","gewerk": "HZ","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.SET_TEMPERATURE"},
                               {"raum": "KZ","name": "Heizkoerper","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               {"raum": "KZ","name": "Front","gewerk": "RA","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Position"},
                               {"raum": "KZ","name": "Front","gewerk": "UP","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Open"},
                               {"raum": "KZ","name": "Front","gewerk": "DOWN","dp": "shelly.0.xxxxxxxxxxxxxxxx1.Shutter.Close"},
                               {"raum": "KZ","name": "Front","gewerk": "STOP","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Pause"},
                               {"raum": "KZ","name": "Velux","gewerk": "RA","dp": "klf200.0.products.1.targetPosition"},
                               {"raum": "KZ","name": "Lichterkette","gewerk": "SD","dp": "sonoff.0.SD_KZ_Lichterkette.POWER"},
                               {"raum": "KZ","name": "Velux","gewerk": "FS","dp": "zigbee.0.xxxxxxxxxxxxxxxx.opened"},
                               {"raum": "KZ","name": "Front","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Power"},
                               
                            
                               //Keller
                               {"raum": "KE","name": "ESX-NUC","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "KE","name": "ESX-NUC","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               {"raum": "KE","name": "ESX-NUC-Backup","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "KE","name": "ESX-NUC-Backup","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},    
                               {"raum": "KE","name": "ESXP01","gewerk": "SD","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "KE","name": "ESXP01","gewerk": "POWER","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.power"},
                               {"raum": "KE","name": "ESXP02","gewerk": "SD","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "KE","name": "ESXP02","gewerk": "POWER","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.power"},
                               {"raum": "KE","name": "Trockner","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "KE","name": "Trockner","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               {"raum": "KE","name": "USV","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "KE","name": "USV","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               {"raum": "KE","name": "Waschmaschine","gewerk": "SD","dp": "xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "KE","name": "Waschmaschine","gewerk": "POWER","dp": "xxxxxxxxxxxxxxxx.Relay0.Power"},
                               
                               //Kueche
                               {"raum": "KU","name": "Kuechenfenster","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "KU","name": "Heizkoerper","gewerk": "HZ","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.SET_TEMPERATURE"},
                               {"raum": "KU","name": "Heizkoerper","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               {"raum": "KU","name": "Deckenlampe","gewerk": "LS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "KU","name": "Schrankbeleuchtung","gewerk": "LS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "KU","name": "Fenster","gewerk": "RA","dp": "homepilot20.0.Actuator.2-xxxxxxxxxxxxxxxx.Position_inverted"},
                               {"raum": "KU","name": "Geschirrspueler","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "KU","name": "Geschirrspueler","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               
                               //Schlafzimmer
                               {"raum": "SZ","name": "Balkontuer","gewerk": "DK","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "SZ","name": "Heizkoerper","gewerk": "HZ","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.SET_TEMPERATURE"},
                               {"raum": "SZ","name": "Heizkoerper","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               {"raum": "SZ","name": "Deckenlampe","gewerk": "LS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "SZ","name": "Velux","gewerk": "RA","dp": "klf200.0.products.0.targetPosition"},
                               {"raum": "SZ","name": "Front","gewerk": "RA","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Position"},
                               {"raum": "SZ","name": "Front","gewerk": "UP","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Open"},
                               {"raum": "SZ","name": "Front","gewerk": "DOWN","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Close"},
                               {"raum": "SZ","name": "Front","gewerk": "STOP","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Pause"},
                               {"raum": "SZ","name": "Front","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Shutter.Power"},
                               {"raum": "SZ","name": "Balkon","gewerk": "SD","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "SZ","name": "SchlafzimmerTV","gewerk": "SD","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "SZ","name": "SchlafzimmerTV","gewerk": "POWER","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.power"},
                               {"raum": "SZ","name": "Kommode","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "SZ","name": "Lichterkette","gewerk": "SD","dp": "sonoff.0.SD_SZ_Lichterkette.POWER"},
                               {"raum": "SZ","name": "Balkon","gewerk": "TH","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.celsius"},
                               {"raum": "SZ","name": "Velux","gewerk": "FS","dp": "zigbee.0.xxxxxxxxxxxxxxxx.opened"},
                            
                               
                               //Wohnzimmer
                               {"raum": "WZ","name": "Front-Links","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "WZ","name": "Front-Rechts","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "WZ","name": "Seite-Links","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "WZ","name": "Seite-Rechts","gewerk": "FS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.STATE"},
                               {"raum": "WZ","name": "Heizkoerper","gewerk": "HZ","dp": "hm-rpc.1.INT0000001.1.SET_TEMPERATURE"},
                               {"raum": "WZ","name": "Heizkoerper","gewerk": "TH","dp": "hm-rpc.1.INT0000001.1.ACTUAL_TEMPERATURE"},
                               {"raum": "WZ","name": "Heizkoerper-Seite","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               {"raum": "WZ","name": "Heizkoerper-Front","gewerk": "TH","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.4.ACTUAL_TEMPERATURE"},
                               {"raum": "WZ","name": "Esstischlampe","gewerk": "LS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.LEVEL"},
                               {"raum": "WZ","name": "Wohnzimmerlampe","gewerk": "LS","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.LEVEL"},
                               {"raum": "WZ","name": "Front-Links","gewerk": "RA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.LEVEL"},
                               {"raum": "WZ","name": "Front-Rechts","gewerk": "RA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.LEVEL"},
                               {"raum": "WZ","name": "Leinwand","gewerk": "RA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.LEVEL"},
                               {"raum": "WZ","name": "Seite","gewerk": "RA","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.1.LEVEL"},
                               {"raum": "WZ","name": "AV-Receiver","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "WZ","name": "FireTV","gewerk": "SD","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "WZ","name": "Front","gewerk": "SD","dp": "sonoff.0.SD_WZ_Front.POWER"},
                               {"raum": "WZ","name": "Kodi","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "WZ","name": "Kodi","gewerk": "POWER","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Power"},
                               {"raum": "WZ","name": "Lichtkugeln","gewerk": "SD","dp": "shelly.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "WZ","name": "PS-4-Luefter","gewerk": "SD","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "WZ","name": "PS-4-Luefter","gewerk": "TH","dp": "fritzdect.0.xxxxxxxxxxxxxxxx.celsius"},
                               {"raum": "WZ","name": "Schriftleuchte","gewerk": "SD","dp": "zigbee.0.xxxxxxxxxxxxxxxx.state"},
                               {"raum": "WZ","name": "Seite","gewerk": "SD","dp": "sonoff.0.SD_WZ_Seite.POWER"},
                               {"raum": "WZ","name": "TV","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "WZ","name": "Tablet","gewerk": "SD","dp": "shelly.0.xxxxxxxxxxxxxxxx.Relay0.Switch"},
                               {"raum": "WZ","name": "Wii","gewerk": "SD","dp": "hm-rpc.0.xxxxxxxxxxxxxxxx.STATE"},
                               
                               	
                            ];
                            
                            
                            //Jedes Gerät abarbeiten
                            geraete.forEach(geraet => {
                               //Raumname definieren
                               if(geraet.raum == "AZ"){var raumname = "Ankleide"};
                               if(geraet.raum == "BZ"){var raumname = "Badezimmer"};
                               if(geraet.raum == "BR"){var raumname = "Buero"};
                               if(geraet.raum == "FL"){var raumname = "Flur"};
                               if(geraet.raum == "GA"){var raumname = "Garten"};
                               if(geraet.raum == "KE"){var raumname = "Keller"};
                               if(geraet.raum == "KZ"){var raumname = "Kinderzimmer"};
                               if(geraet.raum == "KU"){var raumname = "Kueche"};
                               if(geraet.raum == "SZ"){var raumname = "Schlafzimmer"};
                               if(geraet.raum == "WZ"){var raumname = "Wohnzimmer"};
                            
                               //Statuskuerzel definieren
                               if(geraet.gewerk == "BM") {var statuskuerzel = "ACTUAL"; var gewerk = "BM"};
                               if(geraet.gewerk == "DK") {var statuskuerzel = "ACTUAL"; var gewerk = "DK"};
                               if(geraet.gewerk == "FS") {var statuskuerzel = "ACTUAL"; var gewerk = "FS"};
                               if(geraet.gewerk == "HA") {var statuskuerzel = "STATE"; var gewerk = "HA"};
                               if(geraet.gewerk == "HZ") {var statuskuerzel = "TEMP"; var gewerk = "HZ"};
                               if(geraet.gewerk == "LS") {var statuskuerzel = "STATE"; var gewerk = "LS"};
                               if(geraet.gewerk == "RA") {var statuskuerzel = "LEVEL"; var gewerk = "RA"};
                               if(geraet.gewerk == "SD") {var statuskuerzel = "STATE"; var gewerk = "SD"};
                               if(geraet.gewerk == "TH") {var statuskuerzel = "TEMP"; var gewerk = "TH"};
                            
                               //Sonderstatuskuerzel definieren
                               if(geraet.gewerk == "POWER") {var statuskuerzel = "POWER"; var gewerk = "SD"};
                               if(geraet.gewerk == "POWER_SUM") {var statuskuerzel = "POWER_SUM"; var gewerk = "SD"};
                               if(geraet.gewerk == "DOWN") {var statuskuerzel = "DOWN"; var gewerk = "RA"};
                               if(geraet.gewerk == "UP") {var statuskuerzel = "UP"; var gewerk = "RA"};
                               if(geraet.gewerk == "STOP") {var statuskuerzel = "STOP"; var gewerk = "RA"};
                               if(geraet.gewerk == "POWER" && geraet.dp.match(/^.*.Shutter.Power$/)) {var statuskuerzel = "POWER"; var gewerk = "RA"};
                            
                            
                               //Variablen für Erstellung definieren
                               const original_datenpunkt = geraet.dp;
                               const alias_name =  gewerk + '_' + geraet.raum + '_' + geraet.name + '.' + statuskuerzel;
                               const raum_name = raumname;
                            
                            
                               /////////////////////////////////
                               // AB HIER NICHTS MEHR ÄNDERN  //
                               /////////////////////////////////
                            
                               // Original-Datenpunkt
                               const idOrigin = original_datenpunkt; 
                               // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                               // Bei Nicht-Verwendung Leerstring '' zuweisen
                               const idRead = '';
                                
                               // Alias-Datenpunkt
                               const idAlias = raum_name+'.'+alias_name;
                               var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                                
                               // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                               nameAlias = alias_name
                               desc = 'per Script erstellt';
                               // typeAlias = 'boolean'; // oder 'number'
                               // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
                               // write = "val ? String(1) : String(0)";
                               // role = 'value';
                               // min = 0; // nur Zahlen
                               // max = 100; // nur Zahlen
                               // unit = '%'; // nur für Zahlen
                               // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                               custom = []; // verhindert doppelte Ausführung von history, ...
                               // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                               // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                                
                               // Ab hier nichts ändern !!
                               function createAlias(idDst, idSrc, idRd) {
                                  //if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                                  //else{
                                  if(!existsState(idDst)){ 
                                     console.log('alias.0.' + raumname + "." + alias_name + ' wird erstellt')
                               	  var obj = {};
                               	  obj.type = 'state';
                               	  obj.common = getObject(idSrc).common;
                               	  obj.common.alias = {};
                               	  if(idRd) {
                               		  obj.common.alias.id = {};
                               		  obj.common.alias.id.read = idRd;
                               		  obj.common.alias.id.write = idSrc;
                               		  obj.common.read = true;
                               	  } else obj.common.alias.id = idSrc;
                               	  if(typeAlias) obj.common.type = typeAlias;
                               	  if(obj.common.read !== false && read) obj.common.alias.read = read;
                               	  if(obj.common.write !== false && write) obj.common.alias.write = write;
                               	  if(nameAlias) obj.common.name = nameAlias;
                               	  if(role) obj.common.role = role;
                               	  if(desc) obj.common.desc = desc;
                               	  if(obj.common.type == 'number') {
                               		 if(min !== undefined) obj.common.min = min;
                               		 if(max !== undefined) obj.common.max = max;
                               		 if(unit) obj.common.unit = unit;
                               	  } else {
                               		 if(obj.common.min !== undefined) delete obj.common.min;
                               		 if(obj.common.max !== undefined) delete obj.common.max;
                               		 if(obj.common.unit) delete obj.common.unit;
                               	  }
                               	  if(states) obj.common.states = states;
                               	  if(custom && obj.common.custom) obj.common.custom = custom;
                               	  obj.native = {};
                               	  setObject(idDst, obj, function() {
                               		 if(idRd) setState(idRd, getState(idRd).val, true);
                               		 else setState(idSrc, getState(idSrc).val, true); 
                               	  });
                               	  if(raum && existsObject('enum.rooms.' + raum)) {
                               		 let obj = getObject('enum.rooms.' + raum)
                               		 obj.common.members.push(idDst);
                               		 setObject('enum.rooms.' + raum, obj);
                               	  }
                               	  if(gewerk && existsObject('enum.functions.' + gewerk)) {
                               		 let obj = getObject('enum.functions.' + gewerk)
                               		 obj.common.members.push(idDst);
                               		 setObject('enum.functions.' + gewerk, obj);
                               	  }
                                  } 
                               }
                                
                               createAlias('alias.0.' + idAlias, idOrigin, idRead);
                               
                            });
                            

                            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

                            428

                            Online

                            32.6k

                            Benutzer

                            82.3k

                            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