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.6k

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

  • 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.1k 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
    
            }
        });
    }
    
    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

                            392

                            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