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. Einsteigerfragen
  4. 60 Datenpunkte in 0_userdata.0.xxxx anlegen

NEWS

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

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

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

60 Datenpunkte in 0_userdata.0.xxxx anlegen

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
9 Beiträge 4 Kommentatoren 613 Aufrufe 3 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.
  • G Offline
    G Offline
    griessbx
    schrieb am zuletzt editiert von
    #1

    Hallo ich muss 60 Datenpunkte in der 0_userdata.0.xxxx anlegen die sich nur durch den Namen unterscheiden. Über den Dialog ist das recht mühsam. Geht das auch einfacher ?
    Gruß Roland

    MartinPM 1 Antwort Letzte Antwort
    0
    • G griessbx

      Hallo ich muss 60 Datenpunkte in der 0_userdata.0.xxxx anlegen die sich nur durch den Namen unterscheiden. Über den Dialog ist das recht mühsam. Geht das auch einfacher ?
      Gruß Roland

      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von MartinP
      #2

      @griessbx

      // Upstream DOCSIS 3.0
      for (var i = 0; i < 4; i++) {
          var Channel = 'C0' + i.toString();
          createState('Internet.Docsis.US.' + Channel + '.Frequency', 0, false, {
              name: 'Frequency',
              unit: 'MHz',
              type: 'mixed',
              role: 'state'
          });
      

      Wenn man aber den Javascript-Adapter da freie Hand lässt, legt er die Datenpunkte unter "Javascript" an ...

      0cfb57a2-8676-47c6-899e-d0008236abb3-grafik.png

      EDIT: https://github.com/ioBroker/ioBroker.javascript/issues/429

      Da gibt es einen "Workaround", um den Datenpunkt in Userdata zu erzeugen...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      T 1 Antwort Letzte Antwort
      1
      • I Offline
        I Offline
        ignis-draco
        schrieb am zuletzt editiert von ignis-draco
        #3

        @griessbx

        let nameslist = ["A", "B", "C"] // <-= Die Namen eingeben (bei dir ist das "xxxx")
        
        
        for (const name of nameslist){
          createState("0_userdata.0."+name, {type: 'boolean' }) //<- Hier muss noch der passende Typ ausgewählt werden
        }
        

        Natürlich ist auch auch möglich eine andere Rolle als "state" zu verwende.

        Proxmox [DMAF5] = LXC [Debian 12]
        ioBroker – apt-cacher – Semaphore – NGINX Proxy Manager – gitolite – LMS – tandoor – DokuWiki - paperless-ngx - unifi - mumble - wireguard - heimdall - planka - rustDesk - adguard

        MartinPM 1 Antwort Letzte Antwort
        2
        • MartinPM MartinP

          @griessbx

          // Upstream DOCSIS 3.0
          for (var i = 0; i < 4; i++) {
              var Channel = 'C0' + i.toString();
              createState('Internet.Docsis.US.' + Channel + '.Frequency', 0, false, {
                  name: 'Frequency',
                  unit: 'MHz',
                  type: 'mixed',
                  role: 'state'
              });
          

          Wenn man aber den Javascript-Adapter da freie Hand lässt, legt er die Datenpunkte unter "Javascript" an ...

          0cfb57a2-8676-47c6-899e-d0008236abb3-grafik.png

          EDIT: https://github.com/ioBroker/ioBroker.javascript/issues/429

          Da gibt es einen "Workaround", um den Datenpunkt in Userdata zu erzeugen...

          T Offline
          T Offline
          TT-Tom
          schrieb am zuletzt editiert von
          #4

          @martinp

          man kann mit createState unter 0_userdata seine Datenpunkte anlegen.

          for (var i = 0; i < 60; i++) {
              var Channel = String(i);
              createState('0_userdata.0.' + Channel + '.stateName', initWert, {
                  name: 'stateName',
                  unit: 'Einheit ',
                  type: 'string'; //oder number oder boolean
                  role: 'state'
              });
          }
          

          Gruß Tom
          https://github.com/tt-tom17
          Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

          NSPanel Script Wiki
          https://github.com/joBr99/nspanel-lovelace-ui/wiki

          NSPanel Adapter Wiki
          https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

          1 Antwort Letzte Antwort
          0
          • I ignis-draco

            @griessbx

            let nameslist = ["A", "B", "C"] // <-= Die Namen eingeben (bei dir ist das "xxxx")
            
            
            for (const name of nameslist){
              createState("0_userdata.0."+name, {type: 'boolean' }) //<- Hier muss noch der passende Typ ausgewählt werden
            }
            

            Natürlich ist auch auch möglich eine andere Rolle als "state" zu verwende.

            MartinPM Online
            MartinPM Online
            MartinP
            schrieb am zuletzt editiert von MartinP
            #5

            @ignis-draco sagte in 60 Datenpunkte in 0_userdata.0.xxxx anlegen:

            createState("0_userdata.0."+name, {type: 'boolean' })

            Die Anleitung ist da anscheinend etwas zu kompliziert bzw lückenhaft

            https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#createstate

            Der Haken, der da geschlagen wird, um aliases zu erzeugen hat mich verwirrt ... hatte vermutet, dass man irgendwelches Vodoo im Stil des Kreieren eines Alias machen muss, um in userdata schreiben zu können ...

            Das, was im Issue unwidersprochen als letzter Kommentar steht (weil beim Erstellen noch zutreffend), hat auch nicht gerade zum Auflösen der Verwirrung beigetragen... habe im geschlossenen Issue zumindest noch einen klärenden Kommentar dahintergesetzt.

            https://github.com/ioBroker/ioBroker.javascript/issues/429

            Ich möchte gern dieses Thema aufwärmen und wieder in Erinnerung rufen.

            Es kam bei mir Freude auf, als ich die Ankündigung von 0_userdata.0 und dessen Funktionalität als benutzereigener Datenpunktbaum im Rahmen der ioBroker Version 2 gelesen hatte - weil dieses Konstrukt mir als Javascript-User mehr Sicherheit bringt. Als jedoch nach dem Upgrade auf Version 2 ein erster Test mit einem simplen Statement der Art

            createState('0_userdata.0.Test123');

            ein ungewolltes Ergebnis lieferte (nämlich einen Datenpunkt javascript.0.0_userdata.0.Test123), wandelte sich meine Freude in "Unfreude". Laut den Diskussionen im Forum soll ja das 0_userdata.0-Konstrukt gerade Einsteiger "anlocken". Um so wichtiger ist es daher, den Einsteigern auch ein einfaches Grundgerüst an Werkzeugen hierfür in die Hand zu geben.

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            T 1 Antwort Letzte Antwort
            0
            • MartinPM MartinP

              @ignis-draco sagte in 60 Datenpunkte in 0_userdata.0.xxxx anlegen:

              createState("0_userdata.0."+name, {type: 'boolean' })

              Die Anleitung ist da anscheinend etwas zu kompliziert bzw lückenhaft

              https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#createstate

              Der Haken, der da geschlagen wird, um aliases zu erzeugen hat mich verwirrt ... hatte vermutet, dass man irgendwelches Vodoo im Stil des Kreieren eines Alias machen muss, um in userdata schreiben zu können ...

              Das, was im Issue unwidersprochen als letzter Kommentar steht (weil beim Erstellen noch zutreffend), hat auch nicht gerade zum Auflösen der Verwirrung beigetragen... habe im geschlossenen Issue zumindest noch einen klärenden Kommentar dahintergesetzt.

              https://github.com/ioBroker/ioBroker.javascript/issues/429

              Ich möchte gern dieses Thema aufwärmen und wieder in Erinnerung rufen.

              Es kam bei mir Freude auf, als ich die Ankündigung von 0_userdata.0 und dessen Funktionalität als benutzereigener Datenpunktbaum im Rahmen der ioBroker Version 2 gelesen hatte - weil dieses Konstrukt mir als Javascript-User mehr Sicherheit bringt. Als jedoch nach dem Upgrade auf Version 2 ein erster Test mit einem simplen Statement der Art

              createState('0_userdata.0.Test123');

              ein ungewolltes Ergebnis lieferte (nämlich einen Datenpunkt javascript.0.0_userdata.0.Test123), wandelte sich meine Freude in "Unfreude". Laut den Diskussionen im Forum soll ja das 0_userdata.0-Konstrukt gerade Einsteiger "anlocken". Um so wichtiger ist es daher, den Einsteigern auch ein einfaches Grundgerüst an Werkzeugen hierfür in die Hand zu geben.

              T Offline
              T Offline
              TT-Tom
              schrieb am zuletzt editiert von TT-Tom
              #6

              @martinp

              hier mal ein kleines Beispiel mit erstellen der 0_userdata Datenpunkte und dem Alias dazu.

              /**
               * erstellen der Datenpunkte in 0_userdata.0 und alias.0 je Haltestelle und je Route
               */
              async function init_Datenpunkte() {
                  try {
                      for (let h = 0; h < NummernHaltestellen.length; h++) {
                          let haltestelle: string = NummernHaltestellen[h];
                          for (let i = 0; i < anzahlAbfahrtenHaltestelle; i++) {
                              if (existsObject(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i)) == false) {
                                  log(`Datenpunkte für Haltestelle ${haltestelle} Abfahrt ${i} werden angelegt`);
                                  await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Departure', '00:00', {
                                      type: 'string',
                                      name: { de: 'Abfahrzeit', en: 'Departure time' },
                                  });
                                  await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Direction', 'Hbf', {
                                      type: 'string',
                                      name: { de: 'Richtung', en: 'Direction' },
                                  });
                                  await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Vehicle', 'train', {
                                      type: 'string',
                                      name: { de: 'Fahrzeug', en: 'Vehicle' },
                                  });
                                  await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Delay', false, {
                                      type: 'boolean',
                                      name: { de: 'Verspätung', en: 'Delay' },
                                  });
                                  setObject(dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle, {
                                      type: 'device',
                                      common: {
                                          role: 'timeTable',
                                          name: { de: 'Haltestelle ' + haltestelle, en: 'Station ' + haltestelle },
                                      },
                                      native: {},
                                  });
                                  setObject(dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i), {
                                      type: 'channel',
                                      common: {
                                          role: 'timeTable',
                                          name: { de: 'Abfahrt ' + String(i), en: 'Departure ' + String(i) },
                                      },
                                      native: {},
                                  });
                                  await createAliasAsync(
                                      dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.ACTUAL',
                                      dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Departure',
                                      true,
                                      <iobJS.StateCommon>{ type: 'string', role: 'state', name: { de: 'Abfahrzeit', en: 'Departure time' } }
                                  );
                                  await createAliasAsync(
                                      dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.DIRECTION',
                                      dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Direction',
                                      true,
                                      <iobJS.StateCommon>{ type: 'string', role: 'state', name: { de: 'Richtung', en: 'Direction' } }
                                  );
                                  await createAliasAsync(
                                      dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.VEHICLE',
                                      dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Vehicle',
                                      true,
                                      <iobJS.StateCommon>{ type: 'string', role: 'state', name: { de: 'Fahrzeug', en: 'Vehicle' } }
                                  );
                                  await createAliasAsync(
                                      dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.DELAY',
                                      dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Delay',
                                      true,
                                      <iobJS.StateCommon>{ type: 'boolean', role: 'state', name: { de: 'Verspätung', en: 'Delay' } }
                                  );
                                  log(`Fertig`);
                              } else {
                                  log(`Datenpunkte für Haltestelle ${haltestelle} Abfahrt ${i} vorhanden`);
                              }
                          }
                      }
              

              du musst zuerst die 0_userdata DP erstellen und dann die Alias Struck aufbauen. wobei du da beachten musst folder, device und channel müssen separat aufgebaut werden.

              Gruß Tom
              https://github.com/tt-tom17
              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

              NSPanel Script Wiki
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              NSPanel Adapter Wiki
              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

              MartinPM 1 Antwort Letzte Antwort
              0
              • T TT-Tom

                @martinp

                hier mal ein kleines Beispiel mit erstellen der 0_userdata Datenpunkte und dem Alias dazu.

                /**
                 * erstellen der Datenpunkte in 0_userdata.0 und alias.0 je Haltestelle und je Route
                 */
                async function init_Datenpunkte() {
                    try {
                        for (let h = 0; h < NummernHaltestellen.length; h++) {
                            let haltestelle: string = NummernHaltestellen[h];
                            for (let i = 0; i < anzahlAbfahrtenHaltestelle; i++) {
                                if (existsObject(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i)) == false) {
                                    log(`Datenpunkte für Haltestelle ${haltestelle} Abfahrt ${i} werden angelegt`);
                                    await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Departure', '00:00', {
                                        type: 'string',
                                        name: { de: 'Abfahrzeit', en: 'Departure time' },
                                    });
                                    await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Direction', 'Hbf', {
                                        type: 'string',
                                        name: { de: 'Richtung', en: 'Direction' },
                                    });
                                    await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Vehicle', 'train', {
                                        type: 'string',
                                        name: { de: 'Fahrzeug', en: 'Vehicle' },
                                    });
                                    await createStateAsync(dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Delay', false, {
                                        type: 'boolean',
                                        name: { de: 'Verspätung', en: 'Delay' },
                                    });
                                    setObject(dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle, {
                                        type: 'device',
                                        common: {
                                            role: 'timeTable',
                                            name: { de: 'Haltestelle ' + haltestelle, en: 'Station ' + haltestelle },
                                        },
                                        native: {},
                                    });
                                    setObject(dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i), {
                                        type: 'channel',
                                        common: {
                                            role: 'timeTable',
                                            name: { de: 'Abfahrt ' + String(i), en: 'Departure ' + String(i) },
                                        },
                                        native: {},
                                    });
                                    await createAliasAsync(
                                        dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.ACTUAL',
                                        dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Departure',
                                        true,
                                        <iobJS.StateCommon>{ type: 'string', role: 'state', name: { de: 'Abfahrzeit', en: 'Departure time' } }
                                    );
                                    await createAliasAsync(
                                        dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.DIRECTION',
                                        dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Direction',
                                        true,
                                        <iobJS.StateCommon>{ type: 'string', role: 'state', name: { de: 'Richtung', en: 'Direction' } }
                                    );
                                    await createAliasAsync(
                                        dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.VEHICLE',
                                        dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Vehicle',
                                        true,
                                        <iobJS.StateCommon>{ type: 'string', role: 'state', name: { de: 'Fahrzeug', en: 'Vehicle' } }
                                    );
                                    await createAliasAsync(
                                        dp_Alias + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.DELAY',
                                        dp_Userdata + 'FahrplanAnzeiger.Haltestelle' + haltestelle + '.Abfahrt' + String(i) + '.Delay',
                                        true,
                                        <iobJS.StateCommon>{ type: 'boolean', role: 'state', name: { de: 'Verspätung', en: 'Delay' } }
                                    );
                                    log(`Fertig`);
                                } else {
                                    log(`Datenpunkte für Haltestelle ${haltestelle} Abfahrt ${i} vorhanden`);
                                }
                            }
                        }
                

                du musst zuerst die 0_userdata DP erstellen und dann die Alias Struck aufbauen. wobei du da beachten musst folder, device und channel müssen separat aufgebaut werden.

                MartinPM Online
                MartinPM Online
                MartinP
                schrieb am zuletzt editiert von
                #7

                @tt-tom warum legst Du eigentlich doppelte Strukturen an, einmal in alias, und einmal in userdata?

                Ich meinte diese Variante von createState mit gesetztem "common" Parameter zur Erzeugung eines Aliases, die mich verwirrt hat ...

                The following settings for aliases are valid too:

                common => {
                alias: {
                id: 'alias.0.myOtherState', // will be created automatically if not already exists
                write: 'val * 1000', // convert function for write to created state
                read: 'val / 1000' // convert function to read from created state
                }
                }

                or

                common => {
                alias: {
                id: 'alias.0.myOtherState', // will be created automatically if not already exists
                }
                }

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                Linux pve 6.8.12-16-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                T 1 Antwort Letzte Antwort
                0
                • MartinPM MartinP

                  @tt-tom warum legst Du eigentlich doppelte Strukturen an, einmal in alias, und einmal in userdata?

                  Ich meinte diese Variante von createState mit gesetztem "common" Parameter zur Erzeugung eines Aliases, die mich verwirrt hat ...

                  The following settings for aliases are valid too:

                  common => {
                  alias: {
                  id: 'alias.0.myOtherState', // will be created automatically if not already exists
                  write: 'val * 1000', // convert function for write to created state
                  read: 'val / 1000' // convert function to read from created state
                  }
                  }

                  or

                  common => {
                  alias: {
                  id: 'alias.0.myOtherState', // will be created automatically if not already exists
                  }
                  }

                  T Offline
                  T Offline
                  TT-Tom
                  schrieb am zuletzt editiert von
                  #8

                  @martinp

                  das hat mit dem NSPanel zu tun und seinem Script dahinter.

                  Gruß Tom
                  https://github.com/tt-tom17
                  Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                  NSPanel Script Wiki
                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                  NSPanel Adapter Wiki
                  https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                  MartinPM 1 Antwort Letzte Antwort
                  0
                  • T TT-Tom

                    @martinp

                    das hat mit dem NSPanel zu tun und seinem Script dahinter.

                    MartinPM Online
                    MartinPM Online
                    MartinP
                    schrieb am zuletzt editiert von MartinP
                    #9

                    Ein Gedanke zu einer anderen Lösung:

                    Wenn man sich in Javascript nicht fit fühlt, könnte man ja auf folgende Idee kommen .. (Beispiel aus meinem Objekt Tree)

                    In Userdata_0 gibt es im Folder Sensors zwei Datenpunkte für die Temperatur der beiden CPU-Cores

                    dcc15837-5b5c-4fd6-84cc-0b860a0cd91f-grafik.png


                    {
                    "0_userdata.0.Proxmox_N3000.Sensors": {
                    "common": {
                    "name": "Sensors",
                    "desc": "Manuell erzeugt",
                    "role": "",
                    "icon": ""
                    },
                    "type": "channel",
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1719507072987,
                    "_id": "0_userdata.0.Proxmox_N3000.Sensors",
                    "acl": {
                    "object": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                    }
                    },
                    "0_userdata.0.Proxmox_N3000.Sensors.Temp_Core0": {
                    "common": {
                    "name": "Temp_Core0",
                    "desc": "Manuell erzeugt",
                    "role": "value.temperature",
                    "type": "number",
                    "read": true,
                    "write": true,
                    "def": 0,
                    "custom": {
                    "influxdb.0": {
                    "enabled": true,
                    "storageType": "",
                    "aliasId": "",
                    "debounceTime": 0,
                    "blockTime": 0,
                    "changesOnly": true,
                    "changesRelogInterval": 0,
                    "changesMinDelta": 0,
                    "ignoreBelowNumber": "",
                    "disableSkippedValueLogging": false,
                    "enableDebugLogs": false,
                    "debounce": 1000
                    }
                    }
                    },
                    "type": "state",
                    "native": {},
                    "_id": "0_userdata.0.Proxmox_N3000.Sensors.Temp_Core0",
                    "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                    },
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1719509549918,
                    "val": 57,
                    "ack": false
                    },
                    "0_userdata.0.Proxmox_N3000.Sensors.Temp_Core1": {
                    "common": {
                    "name": "Temp_Core1",
                    "desc": "Manuell erzeugt",
                    "role": "value.temperature",
                    "type": "number",
                    "read": true,
                    "write": true,
                    "def": 0,
                    "custom": {
                    "influxdb.0": {
                    "enabled": true,
                    "storageType": "",
                    "aliasId": "",
                    "debounceTime": 0,
                    "blockTime": 0,
                    "changesOnly": true,
                    "changesRelogInterval": 0,
                    "changesMinDelta": 0,
                    "ignoreBelowNumber": "",
                    "disableSkippedValueLogging": false,
                    "enableDebugLogs": false,
                    "debounce": 1000
                    }
                    }
                    },
                    "type": "state",
                    "native": {},
                    "_id": "0_userdata.0.Proxmox_N3000.Sensors.Temp_Core1",
                    "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                    },
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1719509623191,
                    "val": 63,
                    "ack": false
                    }
                    }

                    Wenn man da einen JSON-Export anstößt, die Datei mit einem Text-Editor öffnet, und durch COPY&PASTE die JSON-Struktur um Blöcke für weitere CPU-Cores ergänzen, und die JSON-Datei dann wieder zurückschreiben...

                    Wäre aber sicherlich nicht so einfach, weil man nicht nur an einer Stelle umbenennen muss...

                    "0_userdata.0.Proxmox_N3000.Sensors.Temp_Core1": {

                    "_id": "0_userdata.0.Proxmox_N3000.Sensors.Temp_Core1",

                    Gibt es da einen Schema Check, bevor man so eine (möglicherweise fehlerhafte) Datei iobroker zum Import übergibt?

                    Beim Zurücklesen von VIS-2 Projekten scheint das der Fall zu sein ...

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                    Linux pve 6.8.12-16-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    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

                    807

                    Online

                    32.5k

                    Benutzer

                    81.6k

                    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