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. Datenpunkt per JavaScript bearbeiten - Ordner

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Datenpunkt per JavaScript bearbeiten - Ordner

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 4 Kommentatoren 652 Aufrufe 4 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.
  • paul53P paul53

    @bananajoe sagte: var tempobj = getObject(s_state_rootpath + s_DeviceName);

    ... funktioniert nicht, da es nur ein Ordner ohne Objekt ist. Du musst das komplette Device-Objekt erstellen.

    BananaJoeB Online
    BananaJoeB Online
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von
    #3

    @paul53 in der neuen Adminoberfläche unter 0_userdata.0 kann ich gezielt Ordner erstellen - geht das auch per JavaSkript? Wenn es schon keine Objekte sind?

    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

    paul53P 1 Antwort Letzte Antwort
    0
    • BananaJoeB BananaJoe

      @paul53 in der neuen Adminoberfläche unter 0_userdata.0 kann ich gezielt Ordner erstellen - geht das auch per JavaSkript? Wenn es schon keine Objekte sind?

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

      @bananajoe sagte: geht das auch per JavaSkript? Wenn es schon keine Objekte sind?

      Ja, aber Du musst das gesamte Objekt mit type, common, native im Skript erstellen.

      const tempobj = {
         type: 'device',
         common: {
             name: 'Sicherungskasten ESP32 Stromversorgung'
         },
         native: {}
      };
      

      anstelle von Zeilen 13, 14.

      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

      BananaJoeB 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @bananajoe sagte: geht das auch per JavaSkript? Wenn es schon keine Objekte sind?

        Ja, aber Du musst das gesamte Objekt mit type, common, native im Skript erstellen.

        const tempobj = {
           type: 'device',
           common: {
               name: 'Sicherungskasten ESP32 Stromversorgung'
           },
           native: {}
        };
        

        anstelle von Zeilen 13, 14.

        BananaJoeB Online
        BananaJoeB Online
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von
        #5

        @paul53 irgendwie bin ich zu blöd ...

        Hättest du mal ein funktionierendes Mini-Beispiel welches mir einen Datenpunkt( aka Ordner) erzeugt vom Typ Gerät?
        Unterhalb dessen ich dann meine Eigentlichen Datenpunkte anlegen kann?

        Eigentlich würde ich gerne in meinem Skripten

        • einen Ordner unterhalb von 0_userdata.0 anlegen, also das der Typ auch Ordner ist. Und ich es auch im neuen Admin bearbeiten kann. Irgendwie kann ich das bei all meinen Datenpunkten die ich per Skript anlegen nicht. Ich kann dann dort auch nur noch Verzeichnisse anlegen aber z.B. nicht direkt einen Datenpunkt Bei allen die ich mit dem neuen Admin von Hand anlege geht das ohne Probleme
        • Ein Gerät darunter anlegen was auch wirklich vom Typ Gerät ist

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        SokomotoS paul53P 2 Antworten Letzte Antwort
        0
        • BananaJoeB BananaJoe

          @paul53 irgendwie bin ich zu blöd ...

          Hättest du mal ein funktionierendes Mini-Beispiel welches mir einen Datenpunkt( aka Ordner) erzeugt vom Typ Gerät?
          Unterhalb dessen ich dann meine Eigentlichen Datenpunkte anlegen kann?

          Eigentlich würde ich gerne in meinem Skripten

          • einen Ordner unterhalb von 0_userdata.0 anlegen, also das der Typ auch Ordner ist. Und ich es auch im neuen Admin bearbeiten kann. Irgendwie kann ich das bei all meinen Datenpunkten die ich per Skript anlegen nicht. Ich kann dann dort auch nur noch Verzeichnisse anlegen aber z.B. nicht direkt einen Datenpunkt Bei allen die ich mit dem neuen Admin von Hand anlege geht das ohne Probleme
          • Ein Gerät darunter anlegen was auch wirklich vom Typ Gerät ist
          SokomotoS Offline
          SokomotoS Offline
          Sokomoto
          schrieb am zuletzt editiert von
          #6

          @bananajoe sagte in Datenpunkt per JavaScript bearbeiten - Ordner:

          irgendwie bin ich zu blöd ...

          Das ging mir auch so, bis mir @paul53 den entscheidenden Tipp gab. Allerdings habe ich mir dann die Ordnerstruktur genauer angeschaut und gesehen, dass bei mir die Systemordner von den Adaptern auch ohne Objekt angelegt worden sind. Auf dem Bild sieht man es an den Berechtigungen 644. Irgendwie habe ich die Zugriffsberechtigungen noch nicht begriffen. Vielleicht liegt es daran, weil ich das immer mit einem Filesystem vergleiche.

          1b4db741-8706-4280-bee9-2e1f9c837e54-image.png

          tschuess

          1 Antwort Letzte Antwort
          0
          • BananaJoeB BananaJoe

            @paul53 irgendwie bin ich zu blöd ...

            Hättest du mal ein funktionierendes Mini-Beispiel welches mir einen Datenpunkt( aka Ordner) erzeugt vom Typ Gerät?
            Unterhalb dessen ich dann meine Eigentlichen Datenpunkte anlegen kann?

            Eigentlich würde ich gerne in meinem Skripten

            • einen Ordner unterhalb von 0_userdata.0 anlegen, also das der Typ auch Ordner ist. Und ich es auch im neuen Admin bearbeiten kann. Irgendwie kann ich das bei all meinen Datenpunkten die ich per Skript anlegen nicht. Ich kann dann dort auch nur noch Verzeichnisse anlegen aber z.B. nicht direkt einen Datenpunkt Bei allen die ich mit dem neuen Admin von Hand anlege geht das ohne Probleme
            • Ein Gerät darunter anlegen was auch wirklich vom Typ Gerät ist
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #7

            @bananajoe sagte: Hättest du mal ein funktionierendes Mini-Beispiel welches mir einen Datenpunkt( aka Ordner) erzeugt vom Typ Gerät?

            const idDevice = '0_userdata.0.Blitzwolf099';
            const idPower = idDevice + '.POWER';
            const obj = {
                type: 'device',
                common: {
                    name: 'Sicherungskasten ESP32 Stromversorgung'
                },
                native: {}
            };
            const common = {
                type: 'boolean',
                role: 'switch',
                read: true, 
                write: true, 
                name: 'Blitzwolf099: AN (=true) oder AUS (=false)'
            };
            
            setObject(idDevice, obj, function() {
                createState(idPower, false, common);
            });
            

            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

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • BananaJoeB BananaJoe

              @paul53 hat hier mal eine Lösung beschreiben wie man die Eigenschaften von Datenpunkten nachträglich anpassen kann:
              Re: [gelöst] Eigenschaft von Datenpunkt per Script bearbeiten

              Das habe ich erfolgreich genutzt um bereits erstellte Datenpunkte meiner Skripte im Nachhinein anzupassen.

              Ich möchte nun vorhandene Datenpunkte ändern, und zwar das überliegende Objekt:
              df16efeb-cb46-40cd-8695-b8942b4e85b9-image.png
              Bei Blitzwolf099möchte ich etwas in die Spalte Namen eintragen - nachträglich

              Der "Ordner" ist damals automatisch entstanden als ich darunter einen Datenpunkt angelegt habe:

              // Kommentar anpassen
              var s_state_rootpath = "javascript.0.tasmota.";
              var s_DeviceName = "Blitzwolf099";
              var s_state_power_path = s_state_rootpath + s_DeviceName + ".POWER";
              createState(s_state_rootpath + s_DeviceName + ".POWER", false, {
                          type: 'boolean',
                          read: true, 
                          write: true, 
                          name: s_DeviceName + ': AN (=true) oder AUS (=false)'
              });
                // Namensschema nachträglich ändern:
                  // https://forum.iobroker.net/topic/14115/gel%C3%B6st-eigenschaft-von-datenpunkt-per-script-bearbeiten/2
              var tempobj = getObject(s_state_rootpath + s_DeviceName);
              tempobj.common.name = "Sicherungskasten ESP32 Stromversorgung";
              setObject(s_state_rootpath + s_DeviceName, tempobj);
              

              Jepp, Skript muss man 2x starten

              Bei dem "Ordner funktioniert das aber nicht, auch wenn neu unter 0_userdata.0angelegte Ordner diese Eigenschaft haben (wie wahrscheinlich alle).

              Also Frage 1: Wie kann ich da was im nachhinein tun?
              Frage 2: Wenn das nicht geht, wie erstelle ich Ordner mit der Eigenschaft?

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #8

              @bananajoe
              Nicht alles was im Objekt-Tab wie ein Ordner aussieht ist ein eigenes Objekt.
              Manche sind echte eigene Objekte (da wo bei Type was drin steht)
              Dort wo bei typ nix drin steht ist der Ordner nur eine Darstellung eines Ordners

              In dieser Grafik siehst du 2 Datenpunkte, welche unterschiedlich angelegt worden ist (ausgehend von einem Ordner vom Type channel)

              Beispiel
              2de6897e-c6e0-4bd2-bd1e-4ddfffdbabe5-image.png

              javascript.0.test.ordner1.order2.datenpunkt
              

              Test markieren, das plus drücken und dann den folgenden Namen eingeben:
              ordner1.order2.datenpunkt
              und als Type detenpunkt wählen

              javascript.0.test.ordner3.order4.datenpunkt
              

              a) Test markieren, das plus drücken und dann den folgenden Namen eingeben:
              ordner3
              mit Type channel
              b) ordner 3 markieren, das plus drücken und dann den folgenden Namen eingeben:
              ordner4
              mit Type channel
              c) ordner 4 markieren, das plus drücken und dann den folgenden Namen eingeben:
              datenpunkt
              mit Type datenpunkt

              Beides sieht gleich aus, bis auf den Angaben in der Spalte Typ

              Wenn du per Script drauf zugreifen willst, dann musst du das richtige Objekt wählen.
              Im ersten Beispiel gibt es da nur das Objekt mit dem Type Datenpunkt

              Alternativ zu channel geht auch device/Gerät.

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              SokomotoS 1 Antwort Letzte Antwort
              1
              • OliverIOO OliverIO

                @bananajoe
                Nicht alles was im Objekt-Tab wie ein Ordner aussieht ist ein eigenes Objekt.
                Manche sind echte eigene Objekte (da wo bei Type was drin steht)
                Dort wo bei typ nix drin steht ist der Ordner nur eine Darstellung eines Ordners

                In dieser Grafik siehst du 2 Datenpunkte, welche unterschiedlich angelegt worden ist (ausgehend von einem Ordner vom Type channel)

                Beispiel
                2de6897e-c6e0-4bd2-bd1e-4ddfffdbabe5-image.png

                javascript.0.test.ordner1.order2.datenpunkt
                

                Test markieren, das plus drücken und dann den folgenden Namen eingeben:
                ordner1.order2.datenpunkt
                und als Type detenpunkt wählen

                javascript.0.test.ordner3.order4.datenpunkt
                

                a) Test markieren, das plus drücken und dann den folgenden Namen eingeben:
                ordner3
                mit Type channel
                b) ordner 3 markieren, das plus drücken und dann den folgenden Namen eingeben:
                ordner4
                mit Type channel
                c) ordner 4 markieren, das plus drücken und dann den folgenden Namen eingeben:
                datenpunkt
                mit Type datenpunkt

                Beides sieht gleich aus, bis auf den Angaben in der Spalte Typ

                Wenn du per Script drauf zugreifen willst, dann musst du das richtige Objekt wählen.
                Im ersten Beispiel gibt es da nur das Objekt mit dem Type Datenpunkt

                Alternativ zu channel geht auch device/Gerät.

                SokomotoS Offline
                SokomotoS Offline
                Sokomoto
                schrieb am zuletzt editiert von
                #9

                @oliverio sagte in Datenpunkt per JavaScript bearbeiten - Ordner:

                Dort wo bei typ nix drin steht ist der Ordner nur eine Darstellung eines Ordners

                ok...dann kann man ja ruhig, seinen Ordner.Datenpunkt mit createState() anlegen. Das hat nur den Nachteil, der Ordner hat keinen Type zugewiesen. Das einzige negative, man kann den Ordnerinhalt manuell nicht bearbeiten, aber das ist ja dann kein Fehler in den Okjekten der das System beeinträchtigt.

                Danke für die Info,
                tschuess

                OliverIOO 1 Antwort Letzte Antwort
                0
                • SokomotoS Sokomoto

                  @oliverio sagte in Datenpunkt per JavaScript bearbeiten - Ordner:

                  Dort wo bei typ nix drin steht ist der Ordner nur eine Darstellung eines Ordners

                  ok...dann kann man ja ruhig, seinen Ordner.Datenpunkt mit createState() anlegen. Das hat nur den Nachteil, der Ordner hat keinen Type zugewiesen. Das einzige negative, man kann den Ordnerinhalt manuell nicht bearbeiten, aber das ist ja dann kein Fehler in den Okjekten der das System beeinträchtigt.

                  Danke für die Info,
                  tschuess

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #10

                  @sokomoto
                  ja so lege ich in meinen adaptern alle meine datenpunkte an.
                  es kann aber sein, das das irgendwann nicht mehr erwünscht ist, wenn ich es richtig verstanden habe, es gab da mal eine diskussion darüber.
                  aber aktuell meckert der iobroker noch nicht.

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @sokomoto
                    ja so lege ich in meinen adaptern alle meine datenpunkte an.
                    es kann aber sein, das das irgendwann nicht mehr erwünscht ist, wenn ich es richtig verstanden habe, es gab da mal eine diskussion darüber.
                    aber aktuell meckert der iobroker noch nicht.

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

                    @oliverio sagte: es kann aber sein, das das irgendwann nicht mehr erwünscht ist

                    Nein, es ist kein Problem, solange Du nicht später weitere Datenpunkte manuell im Admin anlegen möchtest.

                    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 paul53

                      @bananajoe sagte: Hättest du mal ein funktionierendes Mini-Beispiel welches mir einen Datenpunkt( aka Ordner) erzeugt vom Typ Gerät?

                      const idDevice = '0_userdata.0.Blitzwolf099';
                      const idPower = idDevice + '.POWER';
                      const obj = {
                          type: 'device',
                          common: {
                              name: 'Sicherungskasten ESP32 Stromversorgung'
                          },
                          native: {}
                      };
                      const common = {
                          type: 'boolean',
                          role: 'switch',
                          read: true, 
                          write: true, 
                          name: 'Blitzwolf099: AN (=true) oder AUS (=false)'
                      };
                      
                      setObject(idDevice, obj, function() {
                          createState(idPower, false, common);
                      });
                      
                      BananaJoeB Online
                      BananaJoeB Online
                      BananaJoe
                      Most Active
                      schrieb am zuletzt editiert von
                      #12

                      @paul53 ok ok, jetzt habe ich meinen Fehler, die Verschachtelung von von setObject und createState fehlte mir.
                      Folgendes hat jetzt funktioniert: (ich hoffe alles notwendige zusammenkopiert zu haben)

                      // Setup ##########################################################
                      var s_DeviceName = "K58-Buero-Steckdose-oben";
                      var s_state_rootpath = "0_userdata.0.tasmota2.";
                      
                      // Funktionen ##########################################################
                      async function CreateMyStatesAndStartup(){
                          try {
                              DebugWarning("Startup: Erstelle ggf. Datenpunkte ...");
                      
                              await setObjectAsync(s_state_rootpath + s_DeviceName, {
                                      type: 'device',
                                      common: {
                                          name: s_DeviceName
                                      },
                                      native: {}
                                  }, function() {
                                      createState(s_state_rootpath + s_DeviceName + ".POWER", false, {
                                          type: 'boolean',
                                          role: 'switch',
                                          read: true,
                                          write: true,
                                          name: s_DeviceName + ': AN (=true) oder AUS (=false)'
                                      });
                              });
                      }
                          catch(error) {
                              DebugWarning(error);
                              log(error);
                          }
                      }
                      
                      // Startup ###########################################################
                      CreateMyStatesAndStartup();
                      

                      a7f565ad-0be0-4cad-b779-a426f7304734-image.png
                      Und meine anderen Datenpunkte hänge ich einfach zwischen Zeile 23 und 24, richtig?

                      Einzig den tasmota2 habe ich nun einmal vorher von Hand erzeugt, daran arbeite ich.

                      Zum einen weil ich gerade mal alles von javascript.0 auf 0_userdata.0 umstellen will.
                      Zum anderen für mein langfristiges Ziel daraus mal einen Adapter zu bauen und dann soll das natürlich alles ordentlich sein.

                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                      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

                      700

                      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