Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Datenpunkte einfach erstellen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    473

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    394

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    979

Datenpunkte einfach erstellen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
9 Beiträge 7 Kommentatoren 925 Aufrufe 4 Beobachtet
  • Ä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.
  • Mosel 1992M Offline
    Mosel 1992M Offline
    Mosel 1992
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich bin auf der Suche nach einer Möglichkeit, einfach Datenpunkte anzulegen und zwar mit folgender Struktur:

    Ordner 1
    -Unterordner 1
    --Datenpunkt 1
    --Datenpunkt 2
    -Unterordner 2
    --Datenpunkt 1
    --Datenpunkt 2
    usw...

    Die Datenpunkte sind quasi alle immer gleich, nur der Unterordner ändert seinen Namen. Gibt es hier eine Möglichkeit, ohne diese alle mit Hand zu erstellen?

    Danke schon mal

    B A mickymM 3 Antworten Letzte Antwort
    0
    • Mosel 1992M Mosel 1992

      Hallo,

      ich bin auf der Suche nach einer Möglichkeit, einfach Datenpunkte anzulegen und zwar mit folgender Struktur:

      Ordner 1
      -Unterordner 1
      --Datenpunkt 1
      --Datenpunkt 2
      -Unterordner 2
      --Datenpunkt 1
      --Datenpunkt 2
      usw...

      Die Datenpunkte sind quasi alle immer gleich, nur der Unterordner ändert seinen Namen. Gibt es hier eine Möglichkeit, ohne diese alle mit Hand zu erstellen?

      Danke schon mal

      B Offline
      B Offline
      Blockmove
      schrieb am zuletzt editiert von Blockmove
      #2

      @mosel-1992 said in Datenpunkte einfach erstellen:

      Hallo,

      ich bin auf der Suche nach einer Möglichkeit, einfach Datenpunkte anzulegen und zwar mit folgender Struktur:

      Ordner 1
      -Unterordner 1
      --Datenpunkt 1
      --Datenpunkt 2
      -Unterordner 2
      --Datenpunkt 1
      --Datenpunkt 2
      usw...

      Die Datenpunkte sind quasi alle immer gleich, nur der Unterordner ändert seinen Namen. Gibt es hier eine Möglichkeit, ohne diese alle mit Hand zu erstellen?

      Danke schon mal

      Du kannst dir einmal das Grundgerüst erstellen.
      Danach diesen teil des Objektbaumes exportieren.
      Die export-Datei kannst du dann mit einem Editor (z.B. vscode) bearbeiten und um deine neuen Teile ergänzen. Funktioniert mit Suche und Ersetze einfach. Danach die Datei wieder Importieren
      Alternativ kannst du dir auch ein Script im ioBroker dafür erstellen.

      The difference beetween Man and Boys:
      The price of their toys 😀

      1 Antwort Letzte Antwort
      0
      • Mosel 1992M Mosel 1992

        Hallo,

        ich bin auf der Suche nach einer Möglichkeit, einfach Datenpunkte anzulegen und zwar mit folgender Struktur:

        Ordner 1
        -Unterordner 1
        --Datenpunkt 1
        --Datenpunkt 2
        -Unterordner 2
        --Datenpunkt 1
        --Datenpunkt 2
        usw...

        Die Datenpunkte sind quasi alle immer gleich, nur der Unterordner ändert seinen Namen. Gibt es hier eine Möglichkeit, ohne diese alle mit Hand zu erstellen?

        Danke schon mal

        A Offline
        A Offline
        Ahnungsbefreit
        schrieb am zuletzt editiert von
        #3

        @mosel-1992 Mit einem Script (JavaScript oder Blockly, geht beides)

        Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

        Mosel 1992M 1 Antwort Letzte Antwort
        0
        • A Ahnungsbefreit

          @mosel-1992 Mit einem Script (JavaScript oder Blockly, geht beides)

          Mosel 1992M Offline
          Mosel 1992M Offline
          Mosel 1992
          schrieb am zuletzt editiert von
          #4

          @ahnungsbefreit
          könntest du mir erklären, wie ich das anstelle?

          grrfieldG 1 Antwort Letzte Antwort
          0
          • Mosel 1992M Mosel 1992

            @ahnungsbefreit
            könntest du mir erklären, wie ich das anstelle?

            grrfieldG Offline
            grrfieldG Offline
            grrfield
            schrieb am zuletzt editiert von
            #5

            @mosel-1992 Ich habe mir dafür eine Funktion createBaseFolder gemacht:

            /**
             * Erstellt Basisfolder und stellt den richtigen Typ ein
             * @param   {string}    ID          ID des Folders
             * @param   {any}       type        Typ des Folders
             * @param   {string}    [name]      (optional) Name des Folders
             */ 
            function createBaseFolder(ID, type, name)
            {
                createState(ID, function() {
                    let obj=getObject(ID);
                    obj.type=type;
                    if(name != undefined) obj.common.name=name;
                    obj.common.role='';
                    setObject(ID, obj);
                });
            }
            

            Damit kannst Du die Ordner erstellen, z. B.
            createBaseFolder('0_userdata.0.Testfolder', 'folder', 'Das ist ein Testfolder);
            und darunter mit createState die Datenpunkte, z. B.
            createState('0_userdata.0.Testfolder.Datenpunkt1', {type: 'number', name:'Datenpunkt 1', unit: '%', min: 0, max: 100});

            T 1 Antwort Letzte Antwort
            0
            • Mosel 1992M Mosel 1992

              Hallo,

              ich bin auf der Suche nach einer Möglichkeit, einfach Datenpunkte anzulegen und zwar mit folgender Struktur:

              Ordner 1
              -Unterordner 1
              --Datenpunkt 1
              --Datenpunkt 2
              -Unterordner 2
              --Datenpunkt 1
              --Datenpunkt 2
              usw...

              Die Datenpunkte sind quasi alle immer gleich, nur der Unterordner ändert seinen Namen. Gibt es hier eine Möglichkeit, ohne diese alle mit Hand zu erstellen?

              Danke schon mal

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #6

              @mosel-1992 Wenn Du NodeRed nutzt geht das automatisch.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              Mosel 1992M 1 Antwort Letzte Antwort
              0
              • grrfieldG grrfield

                @mosel-1992 Ich habe mir dafür eine Funktion createBaseFolder gemacht:

                /**
                 * Erstellt Basisfolder und stellt den richtigen Typ ein
                 * @param   {string}    ID          ID des Folders
                 * @param   {any}       type        Typ des Folders
                 * @param   {string}    [name]      (optional) Name des Folders
                 */ 
                function createBaseFolder(ID, type, name)
                {
                    createState(ID, function() {
                        let obj=getObject(ID);
                        obj.type=type;
                        if(name != undefined) obj.common.name=name;
                        obj.common.role='';
                        setObject(ID, obj);
                    });
                }
                

                Damit kannst Du die Ordner erstellen, z. B.
                createBaseFolder('0_userdata.0.Testfolder', 'folder', 'Das ist ein Testfolder);
                und darunter mit createState die Datenpunkte, z. B.
                createState('0_userdata.0.Testfolder.Datenpunkt1', {type: 'number', name:'Datenpunkt 1', unit: '%', min: 0, max: 100});

                T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von
                #7

                @grrfield

                // id muß ein gültiger String sein, alles weitere is optional
                async function createFolderAsync(id, name='', desc='') {
                    return Promise.resolve(await _createObject(id, 'folder', name, desc))
                }
                 
                async function createChannelAsync(id, name='', desc='') {
                    return Promise.resolve(await _createObject(id, 'channel', name, desc))
                }
                 
                async function createDeviceAsync(id, name='', desc='') {
                     return Promise.resolve(await _createObject(id, 'device', name, desc))
                }
                async function _createObject(id, typ, name='', desc='') {
                    try {
                        if(existsObject(id)) log('Objekt: ' + id + ' existiert bereits!', 'warn');
                        else {
                            const obj = {
                                type: typ,
                                common: {
                                    name: name,
                                    desc: desc
                                },
                                native: {}
                            }
                            if (!id || typeof id !== 'string') {
                                throw new Error('Fehler in _createObject Parameter 1 ist kein string')
                            }
                            if (!(id.startsWith('alias.0') || id.startsWith('0_userdata.0') || id.startsWith('mqtt'))) {
                                throw new Error('Fehler in _createObject Parameter 1: ' + id.split('.').slice(0,2).join('.') + ' nicht erlaubt')
                            } 
                            await setObjectAsync(id, obj);
                        }
                        return Promise.resolve(true);
                    } catch (error) {
                        log(error + '!', 'error')
                    }
                    return Promise.resolve(false);
                }
                

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @mosel-1992 Wenn Du NodeRed nutzt geht das automatisch.

                  Mosel 1992M Offline
                  Mosel 1992M Offline
                  Mosel 1992
                  schrieb am zuletzt editiert von
                  #8

                  @mickym said in Datenpunkte einfach erstellen:

                  @mosel-1992 Wenn Du NodeRed nutzt geht das automatisch.

                  Ich nutze es zwar, aber hier in der Anwendung geht es um Blockly

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • Mosel 1992M Mosel 1992

                    @mickym said in Datenpunkte einfach erstellen:

                    @mosel-1992 Wenn Du NodeRed nutzt geht das automatisch.

                    Ich nutze es zwar, aber hier in der Anwendung geht es um Blockly

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #9

                    @mosel-1992 sagte: in der Anwendung geht es um Blockly

                    Mit Blockly ist es nicht möglich, Datenpunkte mit konstruierter ID zu erstellen.

                    Im folgenden Skript sind für jeden Unterordner nur die ersten beiden Zeilen anzupassen nachdem das Skript an deine Datenpunkte angepasst wurde:

                    const idFolder = '0_userdata.0.Ordner1.Unterordner1';
                    const Name = 'Ordnername';
                    
                    const obj = {
                        type: 'channel',
                        common: {name: Name},
                        native: {}
                    };
                    
                    if(!existsObject(idFolder)) {
                        setObject(idFolder, obj, function() {
                            createState(idFolder + '.Datenpunkt1', 0, {type: 'number', name: 'Datenpunkt 1 ' + Name, read: true, write: true, role: 'level', def: 0});
                            createState(idFolder + '.Datenpunkt2', 0, {type: 'number', name: 'Datenpunkt 2 ' + Name, read: true, write: true, role: 'level', def: 0});
                            // usw.
                        });
                    } else log('Ordner existiert bereits: ' + idFolder, 'warn');
                    

                    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

                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                    Registrieren Anmelden
                    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

                    529

                    Online

                    32.8k

                    Benutzer

                    82.8k

                    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