Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Laderegelung für Tablet

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Laderegelung für Tablet

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

      Hallo,

      bin vor kurzem von ccu.io auf iobroker umgestiegen. Erst mal ein ganz großes Lob an die Entwickler. Derzeit unternehme ich meine ersten Gehversuche mit Javascript. Ich möchte gerne eins Script das die Laderegelung meines Wand-Tablets übernimmt. Der Ladezustand in Prozent liegt bereits als Variable (javascript.0.tablet.akku_stand) vor. Das laden soll über einen Aktor ("hm-rpc.0.KEQ0022951.2.STATE") ein- und abgeschaltet werden. Ich habe versucht mir ein Script zusammen zu basteln. Doch leider funktioniert es nicht.

      on("javascript.0.tablet.akku_stand"/*tablet.akku_stand*/), function(obj) {
          if (obj.newState.val <= "30"){
               setState ("hm-rpc.0.KEQ0022951.2.STATE" ,true)}};
      

      Würde mich sehr über etwas Hilfe freuen!

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Hallo Tom,

        versuch es mal so:

        on({id: "javascript.0.tablet.akku_stand"/*tablet.akku_stand*/
        }, function(obj) {
        	if ("javascript.0.tablet.akku_stand"/*tablet.akku_stand*.val <= "30"){
        			setState (("hm-rpc.0.KEQ0022951.2.STATE" ,true)});
        
        
        1 Reply Last reply Reply Quote 0
        • T
          Tom last edited by

          @Jey Cee:

          Hallo Tom,

          versuch es mal so:

          on({id: "javascript.0.tablet.akku_stand"/*tablet.akku_stand*/
          }, function(obj) {
          	if ("javascript.0.tablet.akku_stand"/*tablet.akku_stand*.val <= "30"){
          			setState (("hm-rpc.0.KEQ0022951.2.STATE" ,true)});
          
          ```` `  
          

          Danke, aber jetzt zeigt der Editor Fehler an.
          977_sreenshot.png
          9054_ical-1.jpg
          9054_ical-2.jpg

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer last edited by

            Sorry der Code war unvollständig.

            on({id: "javascript.0.tablet.akku_stand"/*tablet.akku_stand*/
            }, function(obj) {
               if (getState("javascript.0.tablet.akku_stand"/*tablet.akku_stand*/.val <= "30")){
                     setState("hm-rpc.0.KEQ0022951.2.STATE" ,true);}
            });
            
            1 Reply Last reply Reply Quote 0
            • T
              Tom last edited by

              @Jey Cee:

              Sorry der Code war unvollständig.

              on({id: "javascript.0.tablet.akku_stand"/*tablet.akku_stand*/
              }, function(obj) {
                 if (getState("javascript.0.tablet.akku_stand"/*tablet.akku_stand*/.val <= "30")){
                       setState("hm-rpc.0.KEQ0022951.2.STATE" ,true);}
              });
              ```` `  
              

              Die Syntax war o.k. - das Programm funzt aber leider noch nicht.

              1 Reply Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer last edited by

                Nimm mal bei 30 die Anführungszeichen weg.
                305_widget-import-dokumentation.pdf

                1 Reply Last reply Reply Quote 0
                • T
                  Tom last edited by

                  @Jey Cee:

                  Nimm mal bei 30 die Anführungszeichen weg. `

                  Hab ich schon probiert, das ist es auch nicht.

                  1 Reply Last reply Reply Quote 0
                  • blauholsten
                    blauholsten Developer last edited by

                    @Tom:

                    @Jey Cee:

                    Nimm mal bei 30 die Anführungszeichen weg. `

                    Hab ich schon probiert, das ist es auch nicht. `

                    vielleicht hilft das…

                    on("javascript.0.tablet.akku_stand", function() {
                    
                    	var int = parseInt(getState("javascript.0.tablet.akku_stand").val, 10);
                    
                       if (int <= 30)){
                             setState("hm-rpc.0.KEQ0022951.2.STATE" ,true);}
                    });
                    

                    bin aber totaler Anfänger und weis nicht ob es klappt :?

                    1 Reply Last reply Reply Quote 0
                    • htrecksler
                      htrecksler Forum Testing last edited by

                      ich würde…

                      on({id: "javascript.0.tablet.akku_stand"
                      }, function(obj) {
                         if (parseInt(getState("javascript.0.tablet.akku_stand".val) <= 30)){
                               setState("hm-rpc.0.KEQ0022951.2.STATE" ,true);}
                      });
                      
                      

                      sitze aber gerade mit dem Tablet auf dem Sofa, daher…ohne Gewähr

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

                        Probiers mal so:

                        on("javascript.0.tablet.akku_stand", function(obj){
                        
                           var int = parseInt(obj.val);
                        
                           if (int <= 30)){
                                 setState("hm-rpc.0.KEQ0022951.2.STATE" ,true,true);}
                        });
                        
                        1 Reply Last reply Reply Quote 0
                        • T
                          Tom last edited by

                          @blauholsten:

                          @Tom:

                          @Jey Cee:

                          Nimm mal bei 30 die Anführungszeichen weg. `

                          Hab ich schon probiert, das ist es auch nicht. `

                          vielleicht hilft das…

                          on("javascript.0.tablet.akku_stand", function() {
                          
                          	var int = parseInt(getState("javascript.0.tablet.akku_stand").val, 10);
                          	
                             if (int <= 30)){
                                   setState("hm-rpc.0.KEQ0022951.2.STATE" ,true);}
                          });
                          

                          bin aber totaler Anfänger und weis nicht ob es klappt :? `

                          Danke blauholsten, so funktioniert es 😄

                          Auch ein Danke schön an alle andernen :lol:

                          1 Reply Last reply Reply Quote 0
                          • blauholsten
                            blauholsten Developer last edited by

                            Das freut mich…
                            305_heizungsscript_faq.pdf

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

                              Hallo zusammen,

                              ich habe ein ähnliches Problem:

                              ich habe eingegeben:

                              on("javascript.0.tablet.battery.level", function() {
                              
                                 var int = parseInt(getState("javascript.0.tablet.battery.level").val, 10);
                              
                                 if (int <= 20)){
                                       setState("hm-rpc.2.00000000000000.3.STATE" ,true);}
                              });
                              

                              Und bekomme zurück:

                              07:36:25.354	[info]	javascript.0 Stop script script.js.Tablet.Tablet_on
                              07:36:33.960	[info]	javascript.0 Start javascript script.js.Tablet.Tablet_on
                              07:36:33.960	[error]	javascript.0 script.js.Tablet.Tablet_on compile failed: SyntaxError: Unexpected token )
                              

                              Ich habe alle Lösungen durchprobiert, bekomme aber immer die selbe Rückmeldung.

                              Gruß,

                              Mathias

                              1 Reply Last reply Reply Quote 0
                              • M
                                MistyReblaus last edited by

                                if (int <= 20)){
                                
                                

                                Hier sind glaube ich zwei schließende (runde) Klammern. Sollte eigentlich nur eine sein.

                                Grüße, Jens

                                1 Reply Last reply Reply Quote 0
                                • M
                                  MistyReblaus last edited by

                                  Steht auch im Fehler drin

                                  Unexpected token ")"
                                  

                                  An die Schreibweise des Parser muss man sich erste gewöhnen 🙂

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

                                    Danke schön. Jetzt habe ich einen weiteren Fehler gefunden.

                                    Der Akku Level bleibt bei 98 Prozent stehen, auch wenn das Tablet aus ist.

                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      jensus11 last edited by

                                      var int = parseInt(getState("javascript.0.tablet.akku_stand").val, 10);
                                      

                                      wie ist das "val; 10" zu verstehen?

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        MistyReblaus last edited by

                                        Das mit den 98% hat sich dann erledigt, den Akku sollte man immer zwischen 20-80% pendeln lassen, dann hält dieser am längsten. Sowohl das Aussaugen des Akkus als auch das langsame Quälen auf der letzten Strecke zur 100 macht den Akkus großen Stress.

                                        Grüße, Jens.

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          MistyReblaus last edited by

                                          Wenn Du parseInt(string, Radix) verwendest, ist 10 sowie schon default, kann man also weglassen.

                                          Wenn Du immer ein dezimalen Wert erwartest, kannst Du parseint auch weglassen. parseint macht ja nur Sinn, wenn Du einen bestimmten Wert aus einem Zahlensystem in einen anderen lesen / parsen willst. Der Wert wird dann sowieso in eine var geschrieben.

                                          Somit bleibt:

                                          var int = getState("javascript.0.tablet.akku_stand").val;
                                          
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • blauholsten
                                            blauholsten Developer last edited by

                                            @MistyReblaus:

                                            Wenn Du parseInt(string, Radix) verwendest, ist 10 sowie schon default, kann man also weglassen.

                                            Wenn Du immer ein dezimalen Wert erwartest, kannst Du parseint auch weglassen. parseint macht ja nur Sinn, wenn Du einen bestimmten Wert aus einem Zahlensystem in einen anderen lesen / parsen willst. Der Wert wird dann sowieso in eine var geschrieben.

                                            Somit bleibt:

                                            var int = getState("javascript.0.tablet.akku_stand").val;
                                            
                                            ```` `  
                                            

                                            Wird in manchen Fällen nicht gehen, da ein String geliefert wird. Somit macht es eigentlich Sinn das parseInt stehen zu lassen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            593
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            27
                                            4075
                                            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