Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] iQontrol erwartet "boolean" --> common.type ändern?

    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] iQontrol erwartet "boolean" --> common.type ändern?

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

      iQontrol benötigt - um eine Kachel inaktiv/aktiv darzustellen - den Statuswert im Format "boolean".
      ed3d60bd-c20b-420e-b0da-5c0070c4e00c-grafik.png

      Was möchte ich:

      • wenn der Systemdatenpunkt: "system.host.Raspy4-Display-Diele.alive"="true" unten in der Kachel die umgerechnete Uptimezeit anzeigen lassen.45f490ac-1048-4ccd-b16a-fdcc87d27357-grafik.png
        Diese untere Zeile zeigt den Wert von Status an. Dieser hat aber klarerweise für die Umrechnung der Uptimesekunden das Format "string" und ist somit nicht mehr Trigger für die Kachel inaktiv/aktiv.

      Was habe ich schon:

      • Die Umrechnung und Darstellung der Uptimezeit als JS (Trigger die Änderung der Uptimezeit)
      on({id: 'system.host.Raspy4-Display-Diele.uptime', change: "ne"}, function (dp) {
      
      	// var timenew = Math.floor(dp.state.val / 3600 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
          var timenew = Math.floor(dp.state.val / 60/60/24)+'d'+Math.floor((dp.state.val /60/60)%24 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
      
          	setState("a_andreas.0.eigene_dp.Zeit.System.Host.Raspy4-Display-Diele.iOBroker_uptime",timenew);
      
      });
      
      • ein anderes JS zum Verändern eines Datenpunktes auf "number", das muss ich irgendwie anpassen
      const idPlay = 'mpd.0.playid';
      // const idInst = 'system.adapter.mpd.0.alive';
      
      // on(idInst, function(dp) {
      //    if(dp,state.val) {
             setTimeout(function() {
               var obj = getObject(idPlay);
               if(obj.common.type != 'number') {
                  obj.common.type = 'number';
                  setObject(idPlay, obj);
               };
            }, 1000);
      //    }
      // });
      

      Was suche ich:

      • die Zusammenführung/Erweiterung meines Umrechnungs-JS, das heißt
        • wenn der Alivestatus auf "false" geht, soll anstelle der Zeitumrechnung der Datenpunkt mit "false" beschrieben UND auf "boolean" umgestellt werden.
        • wenn der Alivestatus wieder auf "true" geht, dann wieder auf "string" zurückstellen damit wieder die Laufzeit eingetragen und dargestellt werden kann.

      Wer kann mir bitte helfen?

      • eventuell gibt es eine einfache Möglichkeit die @s-bormann im kleinen iQontrol-Finger hat
      • eventuell kann mir @paul53 helfen 🙂
      • oder eventuell die anderen vielen @alle_Helfer hier im Forum

      LG & danke im Voraus, mxa

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

        @metaxa sagte:

        Format "string" und ist somit nicht mehr Trigger für die Kachel inaktiv/aktiv.

        Hast Du es mal mit einem Leerstring versucht ?

        metaxa 1 Reply Last reply Reply Quote 1
        • metaxa
          metaxa @paul53 last edited by

          @paul53 Das war zu einfach 👍 👍
          --> funktioniert, lieben Dank! Warum läßt du mich dafür so lange Anforderungen schreiben???? 🙂 🙂

          Wie kann ich jetzt meinem Umrechnungsscript (siehe oben, Trigger ist Änderung auf die uptime-zeit) noch beibringen, wenn ein anderer Datenpunkt - in meinem Fall alive auf "false" geht, diesen Leerstring einzutragen?

          LG und nochmals danke, @paul53 !

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

            @metaxa sagte:

            alive auf "false" geht, diesen Leerstring einzutragen?

            on('system.host.Raspy4-Display-Diele.alive', function(dp) {
               if(!dp.state.val) setState("a_andreas.0.eigene_dp.Zeit.System.Host.Raspy4-Display-Diele.iOBroker_uptime", '');
            });
            
            metaxa 1 Reply Last reply Reply Quote 1
            • metaxa
              metaxa @paul53 last edited by

              @paul53 wieder einmal danke!
              Funktioniert astrein, verstehen tue ich es einfach nicht.

              on('system.host.Raspy4-Display-Diele.alive', function(dp) {
              if(!dp.state.val) // Änderung auf false (
              

              Habe jetzt diesen Beitrag von dir gefunden. // Änderung auf false
              Ich hätte hier ein ='false' erwartet oder soetwas Ähnliches. Tja, Javascript ist einfach nicht an einem Nachmittag mit einer Funktion zu erlenen 🙂

              @paul53 --> Alles Gute und xund bleiben!
              LG, mxa

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

              Support us

              ioBroker
              Community Adapters
              Donate

              966
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              2
              5
              280
              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