NEWS
[gelöst] Laderegelung für Tablet
-
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!
-
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)});
-
@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 -
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);} });
-
@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.
-
Nimm mal bei 30 die Anführungszeichen weg.
305_widget-import-dokumentation.pdf -
@Jey Cee:Nimm mal bei 30 die Anführungszeichen weg. `
Hab ich schon probiert, das ist es auch nicht.
-
@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 :?
-
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
-
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);} });
-
@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:
-
Das freut mich…
305_heizungsscript_faq.pdf -
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
-
if (int <= 20)){
Hier sind glaube ich zwei schließende (runde) Klammern. Sollte eigentlich nur eine sein.
Grüße, Jens
-
Steht auch im Fehler drin
Unexpected token ")"
An die Schreibweise des Parser muss man sich erste gewöhnen
-
Danke schön. Jetzt habe ich einen weiteren Fehler gefunden.
Der Akku Level bleibt bei 98 Prozent stehen, auch wenn das Tablet aus ist.
-
var int = parseInt(getState("javascript.0.tablet.akku_stand").val, 10);
wie ist das "val; 10" zu verstehen?
-
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.
-
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;
-
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.