NEWS
Neuling benötigt Hilfe beim ersten Script
-
Hallo zusammen,
ich habe gestern angefangen mit ioBroker und baue gerade mein erstes Script. Dort stoße ich aber noch an Probleme die ich auch nach stundenlangen Videos schauen noch nicht beheben kann. Ich nutze Blockly, will das ein Aquara Türsensor mein Hue Licht/Scene einschaltet. Das ganze funktioniert auch gut. Allerdings will ich nun das er als Bedienung noch nimmt das keine Lampe im Haus an sein darf. Falls die bessere Hälfte schon Licht angemacht hat. Falls eine Lampe an ist, soll er nichts unternehmen, bzw. was wirklich genial wäre wenn er dann nur die Diele auf 50% einschalten würde für 5 min und dann wieder ausschalten.
Aber wie sag ich ihm in diesem Blockly das er vorher abfragt ob eine Lampe im Haus schon an ist, bzw. eine bestimmte Lampe würde reichen, welche in der Scene mit vorhanden ist?
Und passt es in meinem Blockly als letztes, das er erst nach 5 min. umschaltet? Oder würde er nun sofort die Diele ausschalten? Müssten die 5 Min nicht vor dem Umschalten kommen?Bin über jede Hilfe dankbar, aber bitte bedenkt, ich bin absoluter Neuling.
Bisher sieht mein Blockly so aus:
on({id: 'deconz.0.Sensors.2.open', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (compareTime('16:30', '01:00', "between", null)) { setState("hue.0.Zuhause.on"/*Zuhause.on*/, true); getState("hue-extended.0.groups.009-diele.action.on", function (err, state) { setStateDelayed("hue-extended.0.groups.009-diele.action.on"/*Diele - Switch light on / off*/, state ? !state.val : true, 300000, false); }); } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMiU3RDU2bCU3RC1YJTI1bGVuZmYwRiUzQXVGVlIlMjIlMjB4JTNEJTIyLTExMiUyMiUyMHklM0QlMjItMTMxMiUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFdHJ1ZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMi05V0NQKjA1ayU3RFpSRVh6anBvNSU1RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWRlY29uei4wLlNlbnNvcnMuMi5vcGVuJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIydSo0ciUzQmNRdyU2MEZ5JTNCJTdCTm9OQ3l+biUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVfY29tcGFyZV9leCUyMiUyMGlkJTNEJTIyUSpxS1hmYUpVSGNLenQlNUJ0JTdDcipxJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZW5kX3RpbWUlM0QlMjJ0cnVlJTIyJTIwYWN0dWFsX3RpbWUlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVU0VfQUNUVUFMX1RJTUUlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUFRJT04lMjIlM0ViZXR3ZWVuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJTVEFSVF9USU1FJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMldTZ3UlM0Q4eiU1REhVJTNEJTIzQyUzQklrJTNBSjMlMkIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMTYlM0EzMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJFTkRfVElNRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjI3SVJPJTI1QiUyRiFWNFchQWQlN0NObE0lMjVVJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTAxJTNBMDAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJBMTIlNUVxVkdKSmtyfksoVVd2JTYwJTVFJTIzJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFaHVlLjAuWnVoYXVzZS5vbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMiUyNTd1THFxU2VjOVopZ1FUUkFiUDUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0b2dnbGUlMjIlMjBpZCUzRCUyMnlUJTJDJTdDJTdCbC00an4zJTdDVlQlN0M5QiU3Q3R3JTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUtZXh0ZW5kZWQuMC5ncm91cHMuMDA5LWRpZWxlLmFjdGlvbi5vbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFNSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1pbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
-
@Skydyver bitte nimm keine tagesübergreifenden Zeitintervalle.
In deinem Fall bitte nehmen : aktuelle Zeit ist NICHT zwischen 01:00 und 16:30 -
@Homoran sagte:
bitte nimm keine tagesübergreifenden Zeitintervalle.
Weshalb nicht ? Es sind keine Astrozeiten dabei.
-
@paul53 sagte in Neuling benötigt Hilfe beim ersten Script:
Weshalb nicht ? Es sind keine Astrozeiten dabei.
geht das nur bei Astro nicht?
Danke für die Info.
-
@Skydyver sagte:
keine Lampe im Haus an sein darf.
Wie kann das festgestellt werden ? Gibt es einen Datenpunkt dafür ?
-
Erstmal herzlich willkommen und viel Spaß mit ioBroker!!!
Such mal in deinen Objekten nach any on. Damit dürftest du dein Skript modifizieren können.
-
@Karel-Puhli
okay, "anyOn" habe ich bei meiner Scene gefunden. Aber wo setzte ich dies nun ein? Da stehe ich auf dem Schlauch. -
@Skydyver sagte:
Falls eine Lampe an ist, ... dann nur die Diele auf 50% einschalten würde für 5 min und dann wieder ausschalten.
-
Danke für den Denkanstoß, aber nun erhalte ich folgende Meldung im Log, das Licht geht auch nicht mit 50% an, es passiert einfach nichts. Kannst Du mir da helfen? Für mich liest es sich, als würde er denn Wert 50 nicht interpretieren können??
hue-extended.0 2020-11-13 16:01:29.156 warn (1812) Attempt 1x - Error setting /groups/9/action/on: invalid value, 50}, for parameter, on javascript.0 2020-11-13 16:01:28.548 warn (20711) at processImmediate (internal/timers.js:461:21) javascript.0 2020-11-13 16:01:28.548 warn (20711) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-11-13 16:01:28.548 warn (20711) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25) javascript.0 2020-11-13 16:01:28.548 warn (20711) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38) javascript.0 2020-11-13 16:01:28.548 warn (20711) at Object.<anonymous> (script.js.Licht.Nach_Hause_kommen:6:7) javascript.0 2020-11-13 16:01:28.547 warn (20711) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20) javascript.0 2020-11-13 16:01:28.545 warn (20711) You are assigning a number to the state "hue-extended.0.groups.009-diele.action.on" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This war hue-extended.0 2020-11-13 16:01:26.326 warn (1812) Attempt 1x - Error setting /groups/9/action/on: invalid value, 0}, for parameter, on javascript.0 2020-11-13 16:01:26.295 warn (20711) at processTimers (internal/timers.js:497:7) javascript.0 2020-11-13 16:01:26.295 warn (20711) at listOnTimeout (internal/timers.js:556:17) javascript.0 2020-11-13 16:01:26.294 warn (20711) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:29) javascript.0 2020-11-13 16:01:26.291 warn (20711) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20) javascript.0 2020-11-13 16:01:26.289 warn (20711) You are assigning a number to the state "hue-extended.0.groups.009-diele.action.on" which expects a boolean. Please fix your code to use a boolean or change the state type to
-
@Skydyver sagte:
als würde er denn Wert 50 nicht interpretieren können??
Ich kenne zwar Hue nicht, aber "action.on" ist sicher der falsche Datenpunkt um auf 50 % zu dimmen. Ich vermute, dass es irgendwas mit "level" gibt.
-
@paul53
perfekt Paul53, das wars. Danke!!