Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Datenpunkt zu anderer Instanz verschieben möglich?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Datenpunkt zu anderer Instanz verschieben möglich?

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active last edited by

      hm, sorry….da weiß ich nicht wie und ob das geht

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by paul53

        @padrino:

        Ich würde gerne da rein…

        In Javascript funktiert es so:

        const id = 'zustaende.0.geraet1.kanal1.dp_13';
        
        const obj = {
          "type": "state",
          "common": {
            "name": "Datenpunkt 1.3",
            "role": "switch",
            "type": "boolean",
            "read": true,
            "write": true,
            "desc": "per Javascript erzeugt",
            "def": false
          },
        };
        
        setObject(id, obj, function() {
            setState(id, obj.common.def, true); // Initialisierung
        });
        
        1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active last edited by

          @paul53:

          @padrino:

          Ich würde gerne da rein… `
          In Javascript funktiert es so:

          const id = 'zustaende.0.geraet1.kanal1.dp_13';
          
          const obj = {
            "type": "state",
            "common": {
              "name": "Datenpunkt 1.3",
              "role": "switch",
              "type": "boolean",
              "read": true,
              "write": true,
              "desc": "per Javascript erzeugt",
              "def": false
            },
          };
          
          setObject(id, obj, function() {
              setState(id, obj.common.def, true); // Initialisierung
          });
          
          ```` `  
          

          Hallo paul53,

          verstehe ich das richtig das dann der Datenpunkt schon vorhanden sein muss und dann dorthin verschoben wird, oder wird der mit dem Script angelegt ?

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by paul53

            @dslraser:

            oder wird der mit dem Script angelegt ?

            Ja, wenn nicht vorhanden.

            Man kann auch Objekte per Skript kopieren (Dst wird erzeugt, wenn nicht vorhanden).

            const idSrc = "Messwerte.0.Solaranlage.Momentanwerte.Leistung_DC_aktuell";
            const idDst = "datenpunkte.0.Messwerte.Solaranlage.Momentanwerte.Leistung";
            
            function copyObject() {
                var obj = getObject(idSrc);
                setObject(idDst, obj, function() {
                    if(obj.type === 'state') {
                        var init = null;
                        if(obj.common.def == undefined) {
                            if(obj.common.type === 'number') init = 0;
                            if(obj.common.type === 'boolean') init = false;
                            if(obj.common.type === 'string') init = '';
                        } else init = obj.common.def;
                        setState(idDst, init, true); 
                    }
                });
            }
            
            copyObject();
            

            Habe ich gerade getestet.

            1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active last edited by

              @paul53:

              @padrino:

              Ich würde gerne da rein… `
              In Javascript funktiert es so:

              const id = 'zustaende.0.geraet1.kanal1.dp_13';
              
              const obj = {
                "type": "state",
                "common": {
                  "name": "Datenpunkt 1.3",
                  "role": "switch",
                  "type": "boolean",
                  "read": true,
                  "write": true,
                  "desc": "per Javascript erzeugt",
                  "def": false
                },
              };
              
              setObject(id, obj, function() {
                  setState(id, obj.common.def, true); // Initialisierung
              });
              
              ```` `  
              

              Hallo Paul53,

              erstmal danke für Deine Beispiele.

              Ich habe es heute mal probiert und es funktioniert prima. Wie und ob man das in Blockly verwursten könnte, da fehlt mir leider die Idee. Es wäre schön wenn man immer in einer Form bleiben könnte, dann kann man alles in einem Blockly oder eben in einem Javascript aufbauen.

              Jetzt noch eine Frage zum Script.

              Die erstellten Datenpunkte lassen sich nicht in den iot Adapter einfügen. Das geht nur wenn ich das hier

              "desc": "per Javascript erzeugt",

              auskommentiere oder lösche. Wofür ist der Punkt wichtig ?

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by paul53

                @dslraser:

                "desc": "per Javascript erzeugt",

                auskommentiere oder lösche. Wofür ist der Punkt wichtig ?

                common.desc (Beschreibung) ist nicht wichtig.

                @dslraser:

                Wie und ob man das in Blockly verwursten könnte,

                Es hat einen berechtigten Grund, dass setObject() nicht in Blockly verfügbar ist, denn damit kann man schnell viel kaputt machen.

                1 Reply Last reply Reply Quote 0
                • padrino
                  padrino Most Active last edited by

                  @dslraser

                  Kannst Du mir sagen, wieso man in Deinem Blockly den Wert für type nicht (z.B. auf number) ändern kann?

                  Das Skript endet dann mit einem "wrong type error" und legt nichts an.

                  CU,

                  padrino

                  1 Reply Last reply Reply Quote 0
                  • iomountain
                    iomountain last edited by

                    @pandel:

                    Bei den zugehörigen Blocklies ist das ja kein Problem. Skripte exportieren, Suchen&Ersetzen, Skripte wieder importieren fertig. Habe ich schon für anderes gemacht und geht. Nur bei den Datenpunkten bin ich mir eben nicht sicher… `

                    Hallo Holger

                    unter Objekte deinen obersten Datenpunkt/Knoten auswählen, als JSON Datei downloaden, im Texteditor öffnen und dann wie du schon gesagt hast: Suchen&Ersetzen, JSON Datei wieder importieren fertig

                    Grüße

                    1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active last edited by

                      @padrino:

                      @dslraser

                      Kannst Du mir sagen, wieso man in Deinem Blockly den Wert für type nicht (z.B. auf number) ändern kann?

                      Das Skript endet dann mit einem "wrong type error" und legt nichts an.

                      CU,

                      padrino `

                      Dann lösche den Datenpunkt und nehme das hier oder ändere es Dir so ab wie Du es brauchst. Das hier geht z.B. für Number

                      ! ````
                      <xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defcustomnoreturn" id="ORmhM@AO~Vbt~j|cDEnt" x="-188" y="63"><mutation statements="false"><arg name="ID"></arg>
                      <arg name="Name"></arg>
                      <arg name="Einheit"></arg>
                      <arg name="Min"></arg>
                      <arg name="Max"></arg></mutation>
                      <field name="NAME">newNumberDP</field>
                      <field name="SCRIPT">Y3JlYXRlU3RhdGUoSUQsIHsKICAgIHR5cGU6ICdudW1iZXInLAogICAgbmFtZTogTmFtZSwKICAgIHVuaXQ6IEVpbmhlaXQsCiAgICBtaW46IE1pbiwKICAgIG1heDogTWF4Cn0pOw==</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment></block>
                      <block type="procedures_callcustomnoreturn" id="id:rx-b:Kgpji.O_Wp?*" x="-187" y="137"><mutation name="newNumberDP"><arg name="ID"></arg>
                      <arg name="Name"></arg>
                      <arg name="Einheit"></arg>
                      <arg name="Min"></arg>
                      <arg name="Max"></arg></mutation>
                      <value name="ARG0"><block type="text" id="+t4:h)4W#f_wYxYh9+6Q"><field name="TEXT">Eigene_Datenpunkte.OrdnerXX.DatenpunktYYZ</field></block></value>
                      <value name="ARG1"><block type="text" id="f[rkb0.G[*H9[vT:#n!/"><field name="TEXT">Test2</field></block></value>
                      <value name="ARG2"><block type="text" id="Cx3/BP4N],HF;V[o,btx"><field name="TEXT">°C</field></block></value>
                      <value name="ARG3"><block type="text" id="]/9o}32pEVp@:I+pgfCE"><field name="TEXT">-100</field></block></value>
                      <value name="ARG4"><block type="text" id="l%Zg[G8@hkN{5/CH{Sfm"><field name="TEXT">100</field></block></value></block></xml>

                      
                      Das ist der Inhalt vom Blockly:
                       ![3822_bildschirmfoto_2019-02-02_um_17.47.51.png](/assets/uploads/files/3822_bildschirmfoto_2019-02-02_um_17.47.51.png) 
                       ![3822_bildschirmfoto_2019-02-02_um_17.48.02.png](/assets/uploads/files/3822_bildschirmfoto_2019-02-02_um_17.48.02.png) 
                       ![3822_bildschirmfoto_2019-02-02_um_17.50.57.png](/assets/uploads/files/3822_bildschirmfoto_2019-02-02_um_17.50.57.png) 
                       ![3822_bildschirmfoto_2019-02-02_um_17.51.20.png](/assets/uploads/files/3822_bildschirmfoto_2019-02-02_um_17.51.20.png) 
                      1 Reply Last reply Reply Quote 0
                      • P
                        pandel last edited by

                        @iomountain:

                        @pandel:

                        Bei den zugehörigen Blocklies ist das ja kein Problem. Skripte exportieren, Suchen&Ersetzen, Skripte wieder importieren fertig. Habe ich schon für anderes gemacht und geht. Nur bei den Datenpunkten bin ich mir eben nicht sicher… `

                        Hallo Holger

                        unter Objekte deinen obersten Datenpunkt/Knoten auswählen, als JSON Datei downloaden, im Texteditor öffnen und dann wie du schon gesagt hast: Suchen&Ersetzen, JSON Datei wieder importieren fertig

                        Grüße `

                        Danke! Dann werde ich mich das beim nächsten Mal mal trauen :mrgreen: 😉

                        1 Reply Last reply Reply Quote 0
                        • C
                          cadmando last edited by

                          Ich häng mich hier mal dran, da ich das ausprobieren wollte bzw. habe.

                          Dabei ist mir aufgefallen das die Werte für "ts", "object" und "state" übernommen werden.

                          D.H. bei mir habe ich jetzt mehrere Objekte bei denen diese Werte gleich sind.

                          Macht das nichts? Ist das so okay, oder fällt mir das irgendwann auf die Füße?

                          Danke und Gruß

                          Dietmar

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          892
                          Online

                          31.8k
                          Users

                          79.9k
                          Topics

                          1.3m
                          Posts

                          9
                          33
                          3498
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo