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. ioBroker Allgemein
  4. Per Hand angelegte Objekte kopieren . .

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    124

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Per Hand angelegte Objekte kopieren . .

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
12 Beiträge 3 Kommentatoren 5.2k 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.
  • S Offline
    S Offline
    Superuser
    schrieb am zuletzt editiert von
    #1

    Hallo .

    Ich habe ein Objekt per Hand angelegt und es konfiguriert.

    2190_unbenannt1.png

    Wie kann ich dieses Objekt jetzt duplizieren und umbenennen ? Ich brauche mehrere Objekte mit den gleichen Einstellungen.

    Ich möchte nicht jedes mal alles neu eingeben . .

    Gruß Holger

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @Superuser:

      Wie kann ich dieses Objekt jetzt duplizieren und umbenennen ? Ich brauche mehrere Objekte mit den gleichen Einstellungen. `
      Ich benutze dafür diese Funktion in einem globalen Script:

      function copyDatapoint(src, dst) {
          var sid = getIdByName(src);
          var sdp = getObject(sid).common;
          createState(dst, sdp.def, { read: sdp.read,
                                      write: sdp.write,
                                      desc: sdp.desc,
                                      type: sdp.type,
                                      min: sdp.min,
                                      max: sdp.max,
                                      def: sdp.def,
                                      unit: sdp.unit,
                                      states: sdp.states
          });
      }
      
      

      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
      • S Offline
        S Offline
        Superuser
        schrieb am zuletzt editiert von
        #3

        Hallo ..

        Geht das auch ohne Script ? Ist nicht so meine Welt. Ich weiß nicht genau wie ich es anwenden soll ..

        Gruß Holger

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Superuser:

          Ich weiß nicht genau wie ich es anwenden soll .. `
          Du kannst ein nur dafür verwendetes Skript (z.B. Datenpunkte_kopieren) anlegen (aus dem Forum kopieren) und es bei Bedarf aktivieren. Im Beispiel wird aus dem Datenpunkt "Wohnen.Enthalpie" der Datenpunkt "Schlafen.Enthalpie" erzeugt:

          copyDatapoint('Wohnen.Enthalpie', 'Schlafen.Enthalpie');
          
          function copyDatapoint(src, dst) {
              var sid = getIdByName(src);
              var sdp = getObject(sid).common;
              createState(dst, sdp.def, { read: sdp.read,
                                          write: sdp.write,
                                          desc: sdp.desc,
                                          type: sdp.type,
                                          min: sdp.min,
                                          max: sdp.max,
                                          def: sdp.def,
                                          unit: sdp.unit,
                                          states: sdp.states
              });
          }
          
          

          Es müssen nur die Namen in der erste Zeile angepasst und dann das Skript gestartet werden.

          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
          • S Offline
            S Offline
            Superuser
            schrieb am zuletzt editiert von
            #5

            Wenn Du mir netterweise noch kurz sagst wie ich ein Script anlege ?

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              http://www.iobroker.net/?page_id=6818&lang=de; Enginetyp: "javascript/js" auswählen, common anwählen und "neues Skript" (Symbol oben links neben dem +) betätigen.

              493_copydp.jpg

              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
              • S Offline
                S Offline
                Superuser
                schrieb am zuletzt editiert von
                #7

                Super Danke . . Es funktioniert . .

                Aber er legt die neuen Datenpunkte unter javascript an. Kann ich auch selber Ordner anlegen und die da rein kopieren.?

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @Superuser:

                  Aber er legt die neuen Datenpunkte unter javascript an. `
                  Ja, das macht createState(name) so.
                  @Superuser:

                  Kann ich auch selber Ordner anlegen und die da rein kopieren.? `
                  Dafür kenne ich keine Möglichkeit. Alternativ könnte man einen Datenpunkt unter einer beliebigen Struktur (Adapter) anlegen, dabei nur auf den Namen achten (Eindeutigkeit !) und den Rest erstmal vernachlässigen. Danach kann man die common-Attribute vom vollständig erstellten Datenpunkt in die "quick and dirty"-Datenpunkte kopieren:

                  var srcName = 'Wohnen.Enthalpie'; // exakter DP
                  var dstName = 'Bad.Enthalpie';    // quick and dirty DP
                  
                  var srcid = getIdByName(srcName);
                  var dstid = getIdByName(dstName);
                  var dstObj = getObject(dstid);
                  dstObj.common = getObject(srcid).common;
                  dstObj.common.name = dstName;
                  setObject(dstid, dstObj);
                  
                  

                  setObject(id, obj) muss in der Konfiguration der JS-Instanz erlaubt werden.

                  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
                  • S Offline
                    S Offline
                    Superuser
                    schrieb am zuletzt editiert von
                    #9

                    Kann ich unter Objekte einen eigenen Ordner anlegen ?

                    1 Antwort Letzte Antwort
                    0
                    • HomoranH Offline
                      HomoranH Offline
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #10

                      @Superuser:

                      Kann ich unter Objekte einen eigenen Ordner anlegen ? `
                      Ja!

                      Nach dem ersten Anlegen erscheint er hedoch als "weißes Blatt"

                      Danach diesen markietrn und darin die weiteren Datenpunkte anlegen.

                      Dabei ändert dich das icon zum Ordner.

                      http://www.iobroker.net/?page_id=5495&l … inzufuegen

                      Gruß

                      Rainer

                      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
                        #11

                        Wenn man im folgenden Skript die ersten 3 Zeilen anpasst, kann man einen neuen Datenpunkt mit den common-Attributen eines bestehenden DP erzeugen:

                        var dstname = 'Ordner.neuer_Name';           // oder 'Ziel_Ordner.Name'
                        var srcid = 'adapter.N.Kanal.Ordner.Quell-Name';  // oder 'adapter.N.Kanal.Quell-Ordner.Name'
                        var dstid = 'adapter.N.Kanal.' + dstname;
                        
                        var obj = getObject(srcid);
                        if(obj && obj.type === 'state') {
                            obj.common.name = dstname;
                            setObject(dstid, obj);
                            setTimeout(function() {
                                setState(dstid, obj.common.def);
                            }, 200);
                        }
                        
                        

                        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
                          #12

                          Besser:

                          var dstname = 'Ordner.neuer_Name';    // oder 'Ziel-Ordner.Name'
                          var srcname = 'Ordner.Quell-Name';    // oder 'Quell-Ordner.Name'
                          var path = 'adapter.N.Kanal';     // kann auch sein: 'adapter.N' oder 'adapter.N.Geraet.Kanal'
                          
                          var srcid = path + '.' + srcname;
                          var dstid = path + '.' + dstname;
                          var obj = getObject(srcid);
                          if(obj && obj.type === 'state') {
                              obj.common.name = dstname;
                              setObject(dstid, obj);
                              setTimeout(function() {
                                  setState(dstid, obj.common.def);
                              }, 200);
                          }
                          
                          

                          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
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          344

                          Online

                          32.5k

                          Benutzer

                          81.7k

                          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