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. Remanente Speicherung von User Datenpunkte

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Remanente Speicherung von User Datenpunkte

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
datenpunktespeichern
23 Beiträge 3 Kommentatoren 2.2k Aufrufe 1 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.
  • N Nordischerjung

    @dslraser Moin, das hier ist es, bei Bedarf aktiviere ich die oberen Zeilen demnestprechend mit neune Namen etc.

    //####################---Number---####################
    //createUserDataState('Grill.Fleischtemperatur1', {'name':'Fleischtemperatur1', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
    //createUserDataState('Grill.Fleischtemperatur2', {'name':'Fleischtemperatur2', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
    //createUserDataState('Grill.Grilltemperatur', {'name':'Grilltemperatur', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
    
    //####################---String---####################
    //createUserDataState('vis.Stundenplan.Toni.Montag.Stunde1', {'name':'Montag Stunde1', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'1'});
    //createUserDataState('vis.AdapterStatus.restartTrigger', {'name':'Adapter_restartTrigger', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'noch leer'});
    
    //####################---Bool---####################
    //createUserDataState('Test.State1', {'name':'State1', 'type':'boolean', 'read':true, 'write':true, 'role':'state', 'def':false, "smartName": {"de": "State","smartType": "state"}});
    
     log(new Date());
    
    /**
    
     * Creates a state under 0_userdata.0
     * Source: https://forum.iobroker.net/topic/26839/
     * Thanks to ioBroker forum user "paul53" for the basis of this function.
     * Version: 0.1 - Mic
     * @param {string} stateId        State ID to be created under '0_userdata.0', like 'LivingRoom.Lights.Sideboard.Brightness'
     * @param {object} param          Object with state details. Template: {'name':'NAME', 'type':'number', 'unit':'UNIT', 'min':MIN, 'max':MAX, 'read':true, 'write':true, 'role':'ROLE', 'def':DEFAULT }
     * @param {boolean} [warn=false]  Optional. Throws warning in log, if state is already existing. Default is false, so no warning in log, if state exists
     */
    
    function createUserDataState(stateId, param, warn) {
    
        if (warn === undefined) warn = false;
        const WHERE = '0_userdata.0';
        stateId = (stateId.startsWith(WHERE)) ? stateId.substring(WHERE.length) : stateId; // remove WHERE from beginning of string
        stateId = (stateId.startsWith('.')) ? stateId.substring(1) : stateId; // remove first "."
        const FULL_STATE_ID = (WHERE.endsWith('.') ? WHERE : WHERE + '.') + stateId; // Final state
    
        if($(FULL_STATE_ID).length) {
    
            if(warn) log('State [' + FULL_STATE_ID + '] is already existing and will no longer be created.', 'warn');
            return;
        }
    
    
        let obj = {};
        obj.type = 'state';
        obj.common = param;
        setObject(FULL_STATE_ID, obj, function (err) {
        
          if (err) {
                log('Cannot write object: ' + err);
            } else {
                let init = null;
    
                if(param.def === undefined) {
    
                    if(param.type === 'number') init = 0;
    
                    if(param.type === 'boolean') init = false;
    
                    if(param.type === 'string') init = 'noch leer';
    
                } else {
    
                    init = param.def;
    
                }
    
                setTimeout(function() { setState(FULL_STATE_ID, init, true); }, 1000); // see https://forum.iobroker.net/post/334331
    
            }
        });
    }
    
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #10

    @nordischerjung
    Du verwendest falsche Rollen, was allerdings nicht der Grund für fehlende Werte nach Neustart ist.

    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
    • N Nordischerjung

      @dslraser Moin, das hier ist es, bei Bedarf aktiviere ich die oberen Zeilen demnestprechend mit neune Namen etc.

      //####################---Number---####################
      //createUserDataState('Grill.Fleischtemperatur1', {'name':'Fleischtemperatur1', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
      //createUserDataState('Grill.Fleischtemperatur2', {'name':'Fleischtemperatur2', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
      //createUserDataState('Grill.Grilltemperatur', {'name':'Grilltemperatur', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
      
      //####################---String---####################
      //createUserDataState('vis.Stundenplan.Toni.Montag.Stunde1', {'name':'Montag Stunde1', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'1'});
      //createUserDataState('vis.AdapterStatus.restartTrigger', {'name':'Adapter_restartTrigger', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'noch leer'});
      
      //####################---Bool---####################
      //createUserDataState('Test.State1', {'name':'State1', 'type':'boolean', 'read':true, 'write':true, 'role':'state', 'def':false, "smartName": {"de": "State","smartType": "state"}});
      
       log(new Date());
      
      /**
      
       * Creates a state under 0_userdata.0
       * Source: https://forum.iobroker.net/topic/26839/
       * Thanks to ioBroker forum user "paul53" for the basis of this function.
       * Version: 0.1 - Mic
       * @param {string} stateId        State ID to be created under '0_userdata.0', like 'LivingRoom.Lights.Sideboard.Brightness'
       * @param {object} param          Object with state details. Template: {'name':'NAME', 'type':'number', 'unit':'UNIT', 'min':MIN, 'max':MAX, 'read':true, 'write':true, 'role':'ROLE', 'def':DEFAULT }
       * @param {boolean} [warn=false]  Optional. Throws warning in log, if state is already existing. Default is false, so no warning in log, if state exists
       */
      
      function createUserDataState(stateId, param, warn) {
      
          if (warn === undefined) warn = false;
          const WHERE = '0_userdata.0';
          stateId = (stateId.startsWith(WHERE)) ? stateId.substring(WHERE.length) : stateId; // remove WHERE from beginning of string
          stateId = (stateId.startsWith('.')) ? stateId.substring(1) : stateId; // remove first "."
          const FULL_STATE_ID = (WHERE.endsWith('.') ? WHERE : WHERE + '.') + stateId; // Final state
      
          if($(FULL_STATE_ID).length) {
      
              if(warn) log('State [' + FULL_STATE_ID + '] is already existing and will no longer be created.', 'warn');
              return;
          }
      
      
          let obj = {};
          obj.type = 'state';
          obj.common = param;
          setObject(FULL_STATE_ID, obj, function (err) {
          
            if (err) {
                  log('Cannot write object: ' + err);
              } else {
                  let init = null;
      
                  if(param.def === undefined) {
      
                      if(param.type === 'number') init = 0;
      
                      if(param.type === 'boolean') init = false;
      
                      if(param.type === 'string') init = 'noch leer';
      
                  } else {
      
                      init = param.def;
      
                  }
      
                  setTimeout(function() { setState(FULL_STATE_ID, init, true); }, 1000); // see https://forum.iobroker.net/post/334331
      
              }
          });
      }
      
      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von dslraser
      #11

      @nordischerjung sagte in Remanente Speicherung von User Datenpunkte:

      @dslraser Moin, das hier ist es, bei Bedarf aktiviere ich die oberen Zeilen demnestprechend mit neune Namen etc.

      //####################---Number---####################
      //createUserDataState('Grill.Fleischtemperatur1', {'name':'Fleischtemperatur1', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
      //createUserDataState('Grill.Fleischtemperatur2', {'name':'Fleischtemperatur2', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
      //createUserDataState('Grill.Grilltemperatur', {'name':'Grilltemperatur', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
      
      //####################---String---####################
      //createUserDataState('vis.Stundenplan.Toni.Montag.Stunde1', {'name':'Montag Stunde1', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'1'});
      //createUserDataState('vis.AdapterStatus.restartTrigger', {'name':'Adapter_restartTrigger', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'noch leer'});
      
      //####################---Bool---####################
      //createUserDataState('Test.State1', {'name':'State1', 'type':'boolean', 'read':true, 'write':true, 'role':'state', 'def':false, "smartName": {"de": "State","smartType": "state"}});
      
       log(new Date());
      
      /**
      
       * Creates a state under 0_userdata.0
       * Source: https://forum.iobroker.net/topic/26839/
       * Thanks to ioBroker forum user "paul53" for the basis of this function.
       * Version: 0.1 - Mic
       * @param {string} stateId        State ID to be created under '0_userdata.0', like 'LivingRoom.Lights.Sideboard.Brightness'
       * @param {object} param          Object with state details. Template: {'name':'NAME', 'type':'number', 'unit':'UNIT', 'min':MIN, 'max':MAX, 'read':true, 'write':true, 'role':'ROLE', 'def':DEFAULT }
       * @param {boolean} [warn=false]  Optional. Throws warning in log, if state is already existing. Default is false, so no warning in log, if state exists
       */
      
      function createUserDataState(stateId, param, warn) {
      
          if (warn === undefined) warn = false;
          const WHERE = '0_userdata.0';
          stateId = (stateId.startsWith(WHERE)) ? stateId.substring(WHERE.length) : stateId; // remove WHERE from beginning of string
          stateId = (stateId.startsWith('.')) ? stateId.substring(1) : stateId; // remove first "."
          const FULL_STATE_ID = (WHERE.endsWith('.') ? WHERE : WHERE + '.') + stateId; // Final state
      
          if($(FULL_STATE_ID).length) {
      
              if(warn) log('State [' + FULL_STATE_ID + '] is already existing and will no longer be created.', 'warn');
              return;
          }
      
      
          let obj = {};
          obj.type = 'state';
          obj.common = param;
          setObject(FULL_STATE_ID, obj, function (err) {
          
            if (err) {
                  log('Cannot write object: ' + err);
              } else {
                  let init = null;
      
                  if(param.def === undefined) {
      
                      if(param.type === 'number') init = 0;
      
                      if(param.type === 'boolean') init = false;
      
                      if(param.type === 'string') init = 'noch leer';
      
                  } else {
      
                      init = param.def;
      
                  }
      
                  setTimeout(function() { setState(FULL_STATE_ID, init, true); }, 1000); // see https://forum.iobroker.net/post/334331
      
              }
          });
      }
      

      Wie @paul53 schon geschrieben hat, deaktiviere das Script wenn es noch irgendwo bei Dir läuft. Die Rollen der DP kannst Du auch nachträglich korrigieren.
      Und diese Version von dem Script von Mic ist eine der ersten....Nimm das nicht mehr.

      * Version: 0.1 - Mic
      

      Edit: Hier ist das letzte Script von Mic, wenn Du es weiter verwenden willst. Da steht übrigens unter 2.:

      Screenshot_20210901-123800_Chrome.jpg

      https://github.com/Mic-M/iobroker-createUserStates

      1 Antwort Letzte Antwort
      0
      • N Nordischerjung

        @dslraser Moin, das hier ist es, bei Bedarf aktiviere ich die oberen Zeilen demnestprechend mit neune Namen etc.

        //####################---Number---####################
        //createUserDataState('Grill.Fleischtemperatur1', {'name':'Fleischtemperatur1', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
        //createUserDataState('Grill.Fleischtemperatur2', {'name':'Fleischtemperatur2', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
        //createUserDataState('Grill.Grilltemperatur', {'name':'Grilltemperatur', 'type':'number', 'read':true, 'write':true, 'role':'number', 'def':0});
        
        //####################---String---####################
        //createUserDataState('vis.Stundenplan.Toni.Montag.Stunde1', {'name':'Montag Stunde1', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'1'});
        //createUserDataState('vis.AdapterStatus.restartTrigger', {'name':'Adapter_restartTrigger', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'noch leer'});
        
        //####################---Bool---####################
        //createUserDataState('Test.State1', {'name':'State1', 'type':'boolean', 'read':true, 'write':true, 'role':'state', 'def':false, "smartName": {"de": "State","smartType": "state"}});
        
         log(new Date());
        
        /**
        
         * Creates a state under 0_userdata.0
         * Source: https://forum.iobroker.net/topic/26839/
         * Thanks to ioBroker forum user "paul53" for the basis of this function.
         * Version: 0.1 - Mic
         * @param {string} stateId        State ID to be created under '0_userdata.0', like 'LivingRoom.Lights.Sideboard.Brightness'
         * @param {object} param          Object with state details. Template: {'name':'NAME', 'type':'number', 'unit':'UNIT', 'min':MIN, 'max':MAX, 'read':true, 'write':true, 'role':'ROLE', 'def':DEFAULT }
         * @param {boolean} [warn=false]  Optional. Throws warning in log, if state is already existing. Default is false, so no warning in log, if state exists
         */
        
        function createUserDataState(stateId, param, warn) {
        
            if (warn === undefined) warn = false;
            const WHERE = '0_userdata.0';
            stateId = (stateId.startsWith(WHERE)) ? stateId.substring(WHERE.length) : stateId; // remove WHERE from beginning of string
            stateId = (stateId.startsWith('.')) ? stateId.substring(1) : stateId; // remove first "."
            const FULL_STATE_ID = (WHERE.endsWith('.') ? WHERE : WHERE + '.') + stateId; // Final state
        
            if($(FULL_STATE_ID).length) {
        
                if(warn) log('State [' + FULL_STATE_ID + '] is already existing and will no longer be created.', 'warn');
                return;
            }
        
        
            let obj = {};
            obj.type = 'state';
            obj.common = param;
            setObject(FULL_STATE_ID, obj, function (err) {
            
              if (err) {
                    log('Cannot write object: ' + err);
                } else {
                    let init = null;
        
                    if(param.def === undefined) {
        
                        if(param.type === 'number') init = 0;
        
                        if(param.type === 'boolean') init = false;
        
                        if(param.type === 'string') init = 'noch leer';
        
                    } else {
        
                        init = param.def;
        
                    }
        
                    setTimeout(function() { setState(FULL_STATE_ID, init, true); }, 1000); // see https://forum.iobroker.net/post/334331
        
                }
            });
        }
        
        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        schrieb am zuletzt editiert von dslraser
        #12

        @nordischerjung
        Hier ein Vorschlag/Beispiel, welches ich aktuell verwende. (Blockly mit JS Funktion)

        Bildschirmfoto 2021-09-01 um 14.15.41.png

        in der Funktion stehen diese Beispiele

        Bildschirmfoto 2021-09-01 um 14.16.10.png

        Daraus wird dann das

        Bildschirmfoto 2021-09-01 um 14.16.39.png

        Kannst Du beliebig erweitern und immer mit laufen lassen. Die Datenpunkte werden durch diese Funktion nicht neu initialisiert oder überschrieben.

        EDIT:

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="?]t#NblY,7nezpH^U@A%">anlegen_in</variable>
         </variables>
         <block type="procedures_defcustomnoreturn" id="Q6*2#9#;FNeNnQsQ=FO*" x="13" y="13">
           <mutation statements="false"></mutation>
           <field name="NAME">Datenpunkte_anlegen</field>
           <field name="SCRIPT">YXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgc3RhdGVzVG9DcmVhdGUpIHsKICAgbGV0IGRwLCBpZEtleTsKICAgZm9yKGxldCBrZXkgb2Ygc3RhdGVzVG9DcmVhdGUpewogICAJaWRLZXkgPSB3aGVyZSArICcuJyArIGtleVswXTsKICAgICAgIGRwID0ga2V5WzFdOwogICAJaWYgKCEoYXdhaXQgZXhpc3RzU3RhdGVBc3luYyhpZEtleSkpKSB7CiAgIAkJYXdhaXQgY3JlYXRlU3RhdGVBc3luYyhpZEtleSwgZHApOwogICAJfQogICB9Cn0KLy9EYXRlbnB1bmt0ZSBhbmxlZ2VuCgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDFfWmFobCcsIHsnbmFtZSc6J0RQIGFscyBaYWhsLWluaXRpYWxpc2llcnQgbWl0IDAnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdtaW4nOjAsICdtYXgnOjEwMCwgJ3JvbGUnOid2YWx1ZScsICdkZWYnOjB9XSwgICAgCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDJfVGV4dCcsIHsnbmFtZSc6J0RQIGFscyBUZXh0LWluaXRpYWxpc2llcnQgbWl0IG5vY2ggbGVlcicsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOid0ZXh0JywgJ2RlZic6J25vY2ggbGVlcid9XSwgICAgCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDNfQnV0dG9uJywgeyduYW1lJzonRFAgYWxzIEJ1dHRvbi1pbml0aWFsaXNpZXJ0IG1pdCB0cnVlJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOmZhbHNlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6dHJ1ZX1dLCAgICAKICAgIFsnVGVzdC5EYXRlbnB1bmt0ZS4wNF9Td2l0Y2gnLCB7J25hbWUnOidEUCBhbHMgU3dpdGNoLWluaXRpYWxpc2llcnQgbWl0IGF1cycsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6IGZhbHNlLCAnc3RhdGVzJyA6IHt0cnVlOiAnYW4nLGZhbHNlOiAnYXVzJ319XSwKCl07CmF3YWl0IGNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbiwgc3RhdGVzVG9DcmVhdGUpOwoKbWFpbigp</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
         </block>
         <block type="comment" id="Zyfx~f!lZJKccy0M/1%/" x="13" y="63">
           <field name="COMMENT">0_userdata.0 oder javascript.x (x=Instanznummer)</field>
           <next>
             <block type="variables_set" id="~JE=DBL)b%5zA!oAD.H2">
               <field name="VAR" id="?]t#NblY,7nezpH^U@A%">anlegen_in</field>
               <value name="VALUE">
                 <block type="text" id="(DT98%_mBJ0f}/3*=`Fk">
                   <field name="TEXT">javascript.0</field>
                 </block>
               </value>
               <next>
                 <block type="procedures_callcustomnoreturn" id="[?`_=t?ye79~x$(-ASft">
                   <mutation name="Datenpunkte_anlegen"></mutation>
                 </block>
               </next>
             </block>
           </next>
         </block>
         <block type="procedures_defnoreturn" id="jVn7@(nxUAdLkS^LJ|If" x="13" y="163">
           <field name="NAME">main</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           <statement name="STACK">
             <block type="debug" id="i0Upf2]MA=^5z*@wA+1~">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="d^63CE7[0vse5f=*X9dG">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="text_join" id="]_j.+ICT$YFJ/k?.7;)V">
                   <mutation items="3"></mutation>
                   <value name="ADD0">
                     <block type="text" id="=3|mwnPzP:|nfv=jLHUB">
                       <field name="TEXT">Ich bin jetzt in der Funktion main.</field>
                     </block>
                   </value>
                   <value name="ADD1">
                     <block type="text" id="(q;@gX5FQ*4Z;(f?!Z0N">
                       <field name="TEXT"> Alle Datenpunkte wurden erstellt.</field>
                     </block>
                   </value>
                   <value name="ADD2">
                     <block type="text" id="zsA#`lkTk.;3,{P~H?CR">
                       <field name="TEXT">Ab hier kommt dann Dein eigentliches Blockly.</field>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
           </statement>
         </block>
        </xml>
        

        Dieser Haken muß im Javascript Adapter drinn sein

        Bildschirmfoto 2021-09-01 um 14.35.20.png

        paul53P N 2 Antworten Letzte Antwort
        0
        • dslraserD dslraser

          @nordischerjung
          Hier ein Vorschlag/Beispiel, welches ich aktuell verwende. (Blockly mit JS Funktion)

          Bildschirmfoto 2021-09-01 um 14.15.41.png

          in der Funktion stehen diese Beispiele

          Bildschirmfoto 2021-09-01 um 14.16.10.png

          Daraus wird dann das

          Bildschirmfoto 2021-09-01 um 14.16.39.png

          Kannst Du beliebig erweitern und immer mit laufen lassen. Die Datenpunkte werden durch diese Funktion nicht neu initialisiert oder überschrieben.

          EDIT:

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="?]t#NblY,7nezpH^U@A%">anlegen_in</variable>
           </variables>
           <block type="procedures_defcustomnoreturn" id="Q6*2#9#;FNeNnQsQ=FO*" x="13" y="13">
             <mutation statements="false"></mutation>
             <field name="NAME">Datenpunkte_anlegen</field>
             <field name="SCRIPT">YXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgc3RhdGVzVG9DcmVhdGUpIHsKICAgbGV0IGRwLCBpZEtleTsKICAgZm9yKGxldCBrZXkgb2Ygc3RhdGVzVG9DcmVhdGUpewogICAJaWRLZXkgPSB3aGVyZSArICcuJyArIGtleVswXTsKICAgICAgIGRwID0ga2V5WzFdOwogICAJaWYgKCEoYXdhaXQgZXhpc3RzU3RhdGVBc3luYyhpZEtleSkpKSB7CiAgIAkJYXdhaXQgY3JlYXRlU3RhdGVBc3luYyhpZEtleSwgZHApOwogICAJfQogICB9Cn0KLy9EYXRlbnB1bmt0ZSBhbmxlZ2VuCgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDFfWmFobCcsIHsnbmFtZSc6J0RQIGFscyBaYWhsLWluaXRpYWxpc2llcnQgbWl0IDAnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdtaW4nOjAsICdtYXgnOjEwMCwgJ3JvbGUnOid2YWx1ZScsICdkZWYnOjB9XSwgICAgCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDJfVGV4dCcsIHsnbmFtZSc6J0RQIGFscyBUZXh0LWluaXRpYWxpc2llcnQgbWl0IG5vY2ggbGVlcicsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOid0ZXh0JywgJ2RlZic6J25vY2ggbGVlcid9XSwgICAgCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDNfQnV0dG9uJywgeyduYW1lJzonRFAgYWxzIEJ1dHRvbi1pbml0aWFsaXNpZXJ0IG1pdCB0cnVlJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOmZhbHNlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6dHJ1ZX1dLCAgICAKICAgIFsnVGVzdC5EYXRlbnB1bmt0ZS4wNF9Td2l0Y2gnLCB7J25hbWUnOidEUCBhbHMgU3dpdGNoLWluaXRpYWxpc2llcnQgbWl0IGF1cycsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6IGZhbHNlLCAnc3RhdGVzJyA6IHt0cnVlOiAnYW4nLGZhbHNlOiAnYXVzJ319XSwKCl07CmF3YWl0IGNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbiwgc3RhdGVzVG9DcmVhdGUpOwoKbWFpbigp</field>
             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           </block>
           <block type="comment" id="Zyfx~f!lZJKccy0M/1%/" x="13" y="63">
             <field name="COMMENT">0_userdata.0 oder javascript.x (x=Instanznummer)</field>
             <next>
               <block type="variables_set" id="~JE=DBL)b%5zA!oAD.H2">
                 <field name="VAR" id="?]t#NblY,7nezpH^U@A%">anlegen_in</field>
                 <value name="VALUE">
                   <block type="text" id="(DT98%_mBJ0f}/3*=`Fk">
                     <field name="TEXT">javascript.0</field>
                   </block>
                 </value>
                 <next>
                   <block type="procedures_callcustomnoreturn" id="[?`_=t?ye79~x$(-ASft">
                     <mutation name="Datenpunkte_anlegen"></mutation>
                   </block>
                 </next>
               </block>
             </next>
           </block>
           <block type="procedures_defnoreturn" id="jVn7@(nxUAdLkS^LJ|If" x="13" y="163">
             <field name="NAME">main</field>
             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
             <statement name="STACK">
               <block type="debug" id="i0Upf2]MA=^5z*@wA+1~">
                 <field name="Severity">log</field>
                 <value name="TEXT">
                   <shadow type="text" id="d^63CE7[0vse5f=*X9dG">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="text_join" id="]_j.+ICT$YFJ/k?.7;)V">
                     <mutation items="3"></mutation>
                     <value name="ADD0">
                       <block type="text" id="=3|mwnPzP:|nfv=jLHUB">
                         <field name="TEXT">Ich bin jetzt in der Funktion main.</field>
                       </block>
                     </value>
                     <value name="ADD1">
                       <block type="text" id="(q;@gX5FQ*4Z;(f?!Z0N">
                         <field name="TEXT"> Alle Datenpunkte wurden erstellt.</field>
                       </block>
                     </value>
                     <value name="ADD2">
                       <block type="text" id="zsA#`lkTk.;3,{P~H?CR">
                         <field name="TEXT">Ab hier kommt dann Dein eigentliches Blockly.</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </statement>
           </block>
          </xml>
          

          Dieser Haken muß im Javascript Adapter drinn sein

          Bildschirmfoto 2021-09-01 um 14.35.20.png

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

          @dslraser sagte: in der Funktion stehen diese Beispiele

          Dann sollte man gleich in Javascript programmieren und nicht mit Blockly.

          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

          dslraserD 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @dslraser sagte: in der Funktion stehen diese Beispiele

            Dann sollte man gleich in Javascript programmieren und nicht mit Blockly.

            dslraserD Offline
            dslraserD Offline
            dslraser
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #14

            @paul53 sagte in Remanente Speicherung von User Datenpunkte:

            @dslraser sagte: in der Funktion stehen diese Beispiele

            Dann sollte man gleich in Javascript programmieren und nicht mit Blockly.

            Ja, hast ja Recht, wenn man es kann...Ich kann nur etwas Blockly und wenig Javascript, deshalb mache ich es so. Es war/ist ja auch nur ein Vorschlag.

            paul53P 1 Antwort Letzte Antwort
            0
            • dslraserD dslraser

              @nordischerjung
              Hier ein Vorschlag/Beispiel, welches ich aktuell verwende. (Blockly mit JS Funktion)

              Bildschirmfoto 2021-09-01 um 14.15.41.png

              in der Funktion stehen diese Beispiele

              Bildschirmfoto 2021-09-01 um 14.16.10.png

              Daraus wird dann das

              Bildschirmfoto 2021-09-01 um 14.16.39.png

              Kannst Du beliebig erweitern und immer mit laufen lassen. Die Datenpunkte werden durch diese Funktion nicht neu initialisiert oder überschrieben.

              EDIT:

              <xml xmlns="https://developers.google.com/blockly/xml">
               <variables>
                 <variable id="?]t#NblY,7nezpH^U@A%">anlegen_in</variable>
               </variables>
               <block type="procedures_defcustomnoreturn" id="Q6*2#9#;FNeNnQsQ=FO*" x="13" y="13">
                 <mutation statements="false"></mutation>
                 <field name="NAME">Datenpunkte_anlegen</field>
                 <field name="SCRIPT">YXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgc3RhdGVzVG9DcmVhdGUpIHsKICAgbGV0IGRwLCBpZEtleTsKICAgZm9yKGxldCBrZXkgb2Ygc3RhdGVzVG9DcmVhdGUpewogICAJaWRLZXkgPSB3aGVyZSArICcuJyArIGtleVswXTsKICAgICAgIGRwID0ga2V5WzFdOwogICAJaWYgKCEoYXdhaXQgZXhpc3RzU3RhdGVBc3luYyhpZEtleSkpKSB7CiAgIAkJYXdhaXQgY3JlYXRlU3RhdGVBc3luYyhpZEtleSwgZHApOwogICAJfQogICB9Cn0KLy9EYXRlbnB1bmt0ZSBhbmxlZ2VuCgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDFfWmFobCcsIHsnbmFtZSc6J0RQIGFscyBaYWhsLWluaXRpYWxpc2llcnQgbWl0IDAnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdtaW4nOjAsICdtYXgnOjEwMCwgJ3JvbGUnOid2YWx1ZScsICdkZWYnOjB9XSwgICAgCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDJfVGV4dCcsIHsnbmFtZSc6J0RQIGFscyBUZXh0LWluaXRpYWxpc2llcnQgbWl0IG5vY2ggbGVlcicsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOid0ZXh0JywgJ2RlZic6J25vY2ggbGVlcid9XSwgICAgCiAgICBbJ1Rlc3QuRGF0ZW5wdW5rdGUuMDNfQnV0dG9uJywgeyduYW1lJzonRFAgYWxzIEJ1dHRvbi1pbml0aWFsaXNpZXJ0IG1pdCB0cnVlJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOmZhbHNlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6dHJ1ZX1dLCAgICAKICAgIFsnVGVzdC5EYXRlbnB1bmt0ZS4wNF9Td2l0Y2gnLCB7J25hbWUnOidEUCBhbHMgU3dpdGNoLWluaXRpYWxpc2llcnQgbWl0IGF1cycsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6IGZhbHNlLCAnc3RhdGVzJyA6IHt0cnVlOiAnYW4nLGZhbHNlOiAnYXVzJ319XSwKCl07CmF3YWl0IGNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbiwgc3RhdGVzVG9DcmVhdGUpOwoKbWFpbigp</field>
                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
               </block>
               <block type="comment" id="Zyfx~f!lZJKccy0M/1%/" x="13" y="63">
                 <field name="COMMENT">0_userdata.0 oder javascript.x (x=Instanznummer)</field>
                 <next>
                   <block type="variables_set" id="~JE=DBL)b%5zA!oAD.H2">
                     <field name="VAR" id="?]t#NblY,7nezpH^U@A%">anlegen_in</field>
                     <value name="VALUE">
                       <block type="text" id="(DT98%_mBJ0f}/3*=`Fk">
                         <field name="TEXT">javascript.0</field>
                       </block>
                     </value>
                     <next>
                       <block type="procedures_callcustomnoreturn" id="[?`_=t?ye79~x$(-ASft">
                         <mutation name="Datenpunkte_anlegen"></mutation>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
               <block type="procedures_defnoreturn" id="jVn7@(nxUAdLkS^LJ|If" x="13" y="163">
                 <field name="NAME">main</field>
                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                 <statement name="STACK">
                   <block type="debug" id="i0Upf2]MA=^5z*@wA+1~">
                     <field name="Severity">log</field>
                     <value name="TEXT">
                       <shadow type="text" id="d^63CE7[0vse5f=*X9dG">
                         <field name="TEXT">test</field>
                       </shadow>
                       <block type="text_join" id="]_j.+ICT$YFJ/k?.7;)V">
                         <mutation items="3"></mutation>
                         <value name="ADD0">
                           <block type="text" id="=3|mwnPzP:|nfv=jLHUB">
                             <field name="TEXT">Ich bin jetzt in der Funktion main.</field>
                           </block>
                         </value>
                         <value name="ADD1">
                           <block type="text" id="(q;@gX5FQ*4Z;(f?!Z0N">
                             <field name="TEXT"> Alle Datenpunkte wurden erstellt.</field>
                           </block>
                         </value>
                         <value name="ADD2">
                           <block type="text" id="zsA#`lkTk.;3,{P~H?CR">
                             <field name="TEXT">Ab hier kommt dann Dein eigentliches Blockly.</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </statement>
               </block>
              </xml>
              

              Dieser Haken muß im Javascript Adapter drinn sein

              Bildschirmfoto 2021-09-01 um 14.35.20.png

              N Offline
              N Offline
              Nordischerjung
              schrieb am zuletzt editiert von Nordischerjung
              #15

              @dslraser Ja super danke, das nehme ich dann. Jetzt hab ich auch verstanden was du meinst. Das Script, das ich benutze bis dato, ist immer inaktiv. Es sei denn ich benötige einen D,.dDann habe ich das Script einmal gestartet und wieder gestoppt, nachdem ich den entsprechenden DP oben eingetragen hatte.

              Achso, hast du die Funktion auch als Text für mich?

              Gruß Nordischerjung

              sonnige Grüße von der Ostsee

              dslraserD 1 Antwort Letzte Antwort
              0
              • dslraserD dslraser

                @paul53 sagte in Remanente Speicherung von User Datenpunkte:

                @dslraser sagte: in der Funktion stehen diese Beispiele

                Dann sollte man gleich in Javascript programmieren und nicht mit Blockly.

                Ja, hast ja Recht, wenn man es kann...Ich kann nur etwas Blockly und wenig Javascript, deshalb mache ich es so. Es war/ist ja auch nur ein Vorschlag.

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

                @dslraser sagte: Ich kann nur etwas Blockly und wenig Javascript, deshalb mache ich es so.

                Was ich sagen wollte: Für eine Javscript-Funktion innerhalb von Blockly ist diese Funktion zu komplex.

                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

                dslraserD 1 Antwort Letzte Antwort
                0
                • N Nordischerjung

                  @dslraser Ja super danke, das nehme ich dann. Jetzt hab ich auch verstanden was du meinst. Das Script, das ich benutze bis dato, ist immer inaktiv. Es sei denn ich benötige einen D,.dDann habe ich das Script einmal gestartet und wieder gestoppt, nachdem ich den entsprechenden DP oben eingetragen hatte.

                  Achso, hast du die Funktion auch als Text für mich?

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #17

                  @nordischerjung sagte in Remanente Speicherung von User Datenpunkte:

                  Achso, hast du die Funktion auch als Text für mich?

                  ich habe den Export hier eingefügt. Hatte ich vergessen.

                  1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @dslraser sagte: Ich kann nur etwas Blockly und wenig Javascript, deshalb mache ich es so.

                    Was ich sagen wollte: Für eine Javscript-Funktion innerhalb von Blockly ist diese Funktion zu komplex.

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #18

                    @paul53 sagte in Remanente Speicherung von User Datenpunkte:

                    Was ich sagen wollte: Für eine Javscript-Funktion innerhalb von Blockly ist diese Funktion zu komplex.

                    Diese Funktion habe ich auch nicht selbst geschrieben, die stammt von hier

                    Grundsätzlich geht ja auch der Blockly Baustein, aber was mich daran eben bisher stört, das die erstellten Datenpunkte (wenn es neue sind) erst beim zweiten Blocklystart verwendet werden können, wenn denn alles in einem Blockly passieren soll.

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • dslraserD dslraser

                      @paul53 sagte in Remanente Speicherung von User Datenpunkte:

                      Was ich sagen wollte: Für eine Javscript-Funktion innerhalb von Blockly ist diese Funktion zu komplex.

                      Diese Funktion habe ich auch nicht selbst geschrieben, die stammt von hier

                      Grundsätzlich geht ja auch der Blockly Baustein, aber was mich daran eben bisher stört, das die erstellten Datenpunkte (wenn es neue sind) erst beim zweiten Blocklystart verwendet werden können, wenn denn alles in einem Blockly passieren soll.

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

                      @dslraser
                      Ich würde nur eine allgemein gehaltene Javascript-Funktion verwenden, denn den Rest darum kann man in Blockly realisieren.

                      Bild_2021-09-01_160535.png

                      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

                      N 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @dslraser
                        Ich würde nur eine allgemein gehaltene Javascript-Funktion verwenden, denn den Rest darum kann man in Blockly realisieren.

                        Bild_2021-09-01_160535.png

                        N Offline
                        N Offline
                        Nordischerjung
                        schrieb am zuletzt editiert von
                        #20

                        @paul53 @dslraser ich benutze das Script eigentlich nur händisch, name etc eintragen, start, stop. Fertig. Kann ich die anderen damit überschreiben damit die gespeichert bleiben nach einem neustart?

                        Gruß Nordischerjung

                        sonnige Grüße von der Ostsee

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • N Nordischerjung

                          @paul53 @dslraser ich benutze das Script eigentlich nur händisch, name etc eintragen, start, stop. Fertig. Kann ich die anderen damit überschreiben damit die gespeichert bleiben nach einem neustart?

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

                          @nordischerjung sagte: Kann ich die anderen damit überschreiben damit die gespeichert bleiben nach einem neustart?

                          Werte von Datenpunkten, die nicht in einem Skript überschrieben werden, bleiben bei einem Neustart erhalten.

                          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

                          N 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @nordischerjung sagte: Kann ich die anderen damit überschreiben damit die gespeichert bleiben nach einem neustart?

                            Werte von Datenpunkten, die nicht in einem Skript überschrieben werden, bleiben bei einem Neustart erhalten.

                            N Offline
                            N Offline
                            Nordischerjung
                            schrieb am zuletzt editiert von
                            #22

                            @paul53 Moin,

                            so aus dem nichts ist es wieder passiert, alle DPs für die beiden Stundenpläne haben "null" stehen. Kein Update, keine Änderung an irgend etwas. Dies DPs werden nirgens in einem Script oder so benutzt. Die DPs sind lediglich in der VIS im Widget "jqui-Input". Was kann das sein?

                            f3429cc8-d328-4741-b4a2-8e3d6c3b21f3-grafik.png

                            Gruß Nordischerjung

                            sonnige Grüße von der Ostsee

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • N Nordischerjung

                              @paul53 Moin,

                              so aus dem nichts ist es wieder passiert, alle DPs für die beiden Stundenpläne haben "null" stehen. Kein Update, keine Änderung an irgend etwas. Dies DPs werden nirgens in einem Script oder so benutzt. Die DPs sind lediglich in der VIS im Widget "jqui-Input". Was kann das sein?

                              f3429cc8-d328-4741-b4a2-8e3d6c3b21f3-grafik.png

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

                              @nordischerjung sagte: Die DPs sind lediglich in der VIS im Widget "jqui-Input". Was kann das sein?

                              Mit Vis kenne ich mich nicht aus, habe solch ein Verhalten aber noch nicht beobachtet.

                              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

                              340

                              Online

                              32.6k

                              Benutzer

                              82.1k

                              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