Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Variablen vom gleicher Typ lassen sich nicht laden

    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

    [gelöst]Variablen vom gleicher Typ lassen sich nicht laden

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      heinzie last edited by

      Hallo,

      mal eine Frage an die Experten.

      Ich habe zwei Variablen. Wobei ich die eine mit dem Inhalt der andere zuweisen möchte.

      Variable 2 kommmt von Sonoff Adapter, Variable 1 habe ich selber angelgt.

      Wenn die über folgende Anweisung zuweise:
      ` > if ('sonoff.0.sonoff_V4.AM2301_Temperature' > 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1') {

      setState("javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1"/MaxTempPos_1/, 'sonoff.0.sonoff_V4.AM2301_Temperature', true);

      } `

      Steht dann bei dem Objekt immer " " und nicht der Wert z.b. 22

      Als Typ ist immer "type": "number" angegeben, müsste doch passen oder?

      ` > Variable 1{

      "_id": "javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1",

      "type": "state",

      "common": {

      "name": "MaxTempPos_1",

      "role": "",

      "type": "number",

      "read": true,

      "write": true,

      "desc": "Manuell erzeugt",

      "def": false

      },

      "native": {},

      "from": "system.adapter.admin.0",

      "ts": 1532358119191,

      "acl": {

      "object": 1636,

      "state": 1636,

      "owner": "system.user.admin",

      "ownerGroup": "system.group.administrator"

      }

      } `

      ` > Variable 2 -> {

      "_id": "sonoff.0.sonoff_V4.AM2301_Temperature",

      "common": {

      "type": "number",

      "role": "value.temperature",

      "read": true,

      "write": false,

      "unit": "°C",

      "name": "sonoff_V4 AM2301 Temperature",

      "custom": {

      "sql.0": {

      "enabled": true,

      "changesOnly": true,

      "debounce": "1000",

      "retention": "31536000",

      "changesRelogInterval": "60",

      "changesMinDelta": 0,

      "storageType": ""

      }

      }

      },

      "native": {},

      "type": "state",

      "from": "system.adapter.sonoff.0",

      "ts": 1523710688466,

      "acl": {

      "object": 1636,

      "state": 1636,

      "owner": "system.user.admin",

      "ownerGroup": "system.group.administrator"

      }

      } `

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

        @heinzie:

        if ('sonoff.0.sonoff_V4.AM2301_Temperature' > 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1') { `
        Du Vergleichst die IDs der Datenpunkte, nicht deren Werte. Vorschlag:

        const idTemp = 'sonoff.0.sonoff_V4.AM2301_Temperature';
        const idMax  = 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1';
        
        var max = getState(idMax).val;
        if(getState(idTemp).val > max) {
           max = getState(idTemp).val;
           setState(idMax, max, true);
        }   
        
        on(idTemp, function(dp) { // Trigger bei Wertänderung
           if(dp.state.val > max) {
              max = dp.state.val;
              setState(idMax, max, true);
           }   
        });
        
        1 Reply Last reply Reply Quote 0
        • H
          heinzie last edited by

          @paul53:

          @heinzie:

          if ('sonoff.0.sonoff_V4.AM2301_Temperature' > 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1') { `
          Du Vergleichst die IDs der Datenpunkte, nicht deren Werte. Vorschlag:

          const idTemp = 'sonoff.0.sonoff_V4.AM2301_Temperature';
          const idMax  = 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1';
          
          var max = getState(idMax).val;
          if(getState(idTemp).val > max) {
             max = getState(idTemp).val;
             setState(idMax, max, true);
          }   
          
          on(idTemp, function(dp) { // Trigger bei Wertänderung
             if(dp.state.val > max) {
                max = dp.state.val;
                setState(idMax, max, true);
             }   
          });
          ```` `  
          

          Danke, das mit der ID war der entscheidende Hinweis

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

            Schreibe [gelöst] bitte in den Betreff des <u>ersten</u> Beitrags.

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

            Support us

            ioBroker
            Community Adapters
            Donate

            879
            Online

            31.9k
            Users

            80.2k
            Topics

            1.3m
            Posts

            2
            4
            382
            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