Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Skript] Namespace für Datenpunkte in Skripten abändern

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Skript] Namespace für Datenpunkte in Skripten abändern

Scheduled Pinned Locked Moved JavaScript
82 Posts 6 Posters 9.1k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S stenmic

    @fastfoot nicht ganz passend zum Thema, aber vielleicht kannst du mir trotzdem helfen.

    Ich setze gerade einen neuen ioBroker auf.
    Nun möchte ich vom alten System einzelne, von mir erzeugte Ordner und deren Datenpunkte (mit Werten) aus dem alten System exportieren und im neuen System, unter einer neuen Ordnerstruktur, importieren.

    Beispiel:

    Struktur zum Exportieren (ioBroker alt)

    javascript.0.Regen.Kalender.Jahr.
    01 Wert:5
    02 Wert:3
    03 Wert:9
    04 Wert:1
    ...

    Struktur zum Importieren (ioBroker neu)

    javascript.0.Wetterstation.Froggit.Regen.Kalender.Jahr.
    01 Wert:5
    02 Wert:3
    03 Wert:9
    04 Wert:1
    ...

    Die Struktur vom alten System müsste in einen Datenpunkt geschrieben werden, den ich dann aufs neue System kopieren und importieren könnte.

    ist so etwas möglich.
    Ich habe bisher nichts gefunden, um einzelne Ordner mit Datenstruktur und deren Werte zu übertragen, nur über ein Backup, da wird aber alles wiederhergestellt, was ich in diesem Fall nicht möchte.

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    wrote on last edited by liv-in-sky
    #81

    @stenmic sagte in [Skript] Namespace für Datenpunkte in Skripten abändern:

    Ich habe bisher nichts gefunden, um einzelne Ordner mit Datenstruktur und deren Werte zu übertragen, nur über ein Backup, da wird aber alles wiederhergestellt, was ich in diesem Fall nicht möchte.

    ich habe den teil der objecte, den ich brauche mit export JSON runtergeladen - anschliessend mit search und replace geändert und dann ein script genutzt, um die states zu sichern - das script liest die states und erzeugt ein neues script , welches die neuen dp setzen kann

    das script muss eingestellt werden - bei den pfeilen und wird unter /opt/iobroker ins datei system gesichert - dort muss dann auch der neue namespace mit search und replace definiert werden und dann wird das script als script angelegt und einmal ausgeführt

    var fs = require('fs');
    var now =    new Date(); // store current date and time
    var year =   now.getFullYear();
    var month =  addZero(now.getMonth()+1).zero2;
    var day =    addZero(now.getDate()).zero2;
    var Thour =  addZero(now.getHours()).zero2;
    var Tmin =   addZero(now.getMinutes()).zero2;
    var Tsec =   addZero(now.getSeconds()).zero2;
    var logdate = day + '.' + month + '.' + year;
    var logtime = Thour + '-' + Tmin + '-' + Tsec;
    
    var datei = "/opt/iobroker";
    
    // Schedule für die Updates
    //schedule("57 15 * * *",  function () {   
    
       var cacheSelectorState = $('state[state.id=bshb.0.*]');
    cacheSelectorState.each(function (id, i) {
       var val1 = getState(id).val;
          if (val1 == null ) 
             {log(id + " hat keinen state");} 
        else {var zk = "setState('"+id+"', "+val1 +");\n";
              if( typeof val1 === "string") {
                  zk = "setState('"+id+"', '"+val1+"');\n";
                /*  log(id + " -- " + val1 + " ----------- " + val1.includes('span'));*/
                  if (val1.includes('span') || val1.includes('class')) {log("------------------------------------------------------------- span oder classn enthalten "+ id);} 
                  else {
                  fs.appendFileSync(datei + "-bosch-" + logdate + "-"+ logtime + ".txt", zk);}}
              else {
                /*  log("KEIN STRING " +id + " -- " + val1);*/
                  fs.appendFileSync(datei + "-bosch-" + logdate + "-"+ logtime + ".txt", zk);}
              };
    
    
    });
    
    
    
    // ---------------------------------------------------------------------------------------
    // Funktion zur Erzeugung von 2 oder 3 führenden Nullen für das Datum Format
    //-----------------------------------------------------------------------------------------------------
    function addZero(i) {
       if (i < 10) {
           j = "00" + i;
           i = "0" + i;
       }
       if (i > 9 && i < 100) {
           j = "0" + i;
       }
       return {
           'zero2' : i,
           'zero3' : j
       };
    } // Ende Funktion
    
    

    Image 1.png

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    S 1 Reply Last reply
    0
    • liv-in-skyL liv-in-sky

      @stenmic sagte in [Skript] Namespace für Datenpunkte in Skripten abändern:

      Ich habe bisher nichts gefunden, um einzelne Ordner mit Datenstruktur und deren Werte zu übertragen, nur über ein Backup, da wird aber alles wiederhergestellt, was ich in diesem Fall nicht möchte.

      ich habe den teil der objecte, den ich brauche mit export JSON runtergeladen - anschliessend mit search und replace geändert und dann ein script genutzt, um die states zu sichern - das script liest die states und erzeugt ein neues script , welches die neuen dp setzen kann

      das script muss eingestellt werden - bei den pfeilen und wird unter /opt/iobroker ins datei system gesichert - dort muss dann auch der neue namespace mit search und replace definiert werden und dann wird das script als script angelegt und einmal ausgeführt

      var fs = require('fs');
      var now =    new Date(); // store current date and time
      var year =   now.getFullYear();
      var month =  addZero(now.getMonth()+1).zero2;
      var day =    addZero(now.getDate()).zero2;
      var Thour =  addZero(now.getHours()).zero2;
      var Tmin =   addZero(now.getMinutes()).zero2;
      var Tsec =   addZero(now.getSeconds()).zero2;
      var logdate = day + '.' + month + '.' + year;
      var logtime = Thour + '-' + Tmin + '-' + Tsec;
      
      var datei = "/opt/iobroker";
      
      // Schedule für die Updates
      //schedule("57 15 * * *",  function () {   
      
         var cacheSelectorState = $('state[state.id=bshb.0.*]');
      cacheSelectorState.each(function (id, i) {
         var val1 = getState(id).val;
            if (val1 == null ) 
               {log(id + " hat keinen state");} 
          else {var zk = "setState('"+id+"', "+val1 +");\n";
                if( typeof val1 === "string") {
                    zk = "setState('"+id+"', '"+val1+"');\n";
                  /*  log(id + " -- " + val1 + " ----------- " + val1.includes('span'));*/
                    if (val1.includes('span') || val1.includes('class')) {log("------------------------------------------------------------- span oder classn enthalten "+ id);} 
                    else {
                    fs.appendFileSync(datei + "-bosch-" + logdate + "-"+ logtime + ".txt", zk);}}
                else {
                  /*  log("KEIN STRING " +id + " -- " + val1);*/
                    fs.appendFileSync(datei + "-bosch-" + logdate + "-"+ logtime + ".txt", zk);}
                };
      
      
      });
      
      
      
      // ---------------------------------------------------------------------------------------
      // Funktion zur Erzeugung von 2 oder 3 führenden Nullen für das Datum Format
      //-----------------------------------------------------------------------------------------------------
      function addZero(i) {
         if (i < 10) {
             j = "00" + i;
             i = "0" + i;
         }
         if (i > 9 && i < 100) {
             j = "0" + i;
         }
         return {
             'zero2' : i,
             'zero3' : j
         };
      } // Ende Funktion
      
      

      Image 1.png

      S Offline
      S Offline
      stenmic
      wrote on last edited by stenmic
      #82

      @liv-in-sky Danke… genau das hab ich gesucht. 👍🏻

      ich musste nur

      datei + "-bosch-" + logdate
      

      in

      datei + "/bosch-" + logdate
      

      ändern.

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      343

      Online

      32.6k

      Users

      82.2k

      Topics

      1.3m

      Posts
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Home
      • Recent
      • Tags
      • Unread 0
      • Categories
      • Unreplied
      • Popular
      • GitHub
      • Docu
      • Hilfe