NEWS
Bleiben variabeln bei skriptende gesetzt
-
Hintergrund meiner Frage ist, ich habe ein Bewegungsmelder skript das sich langsam herunter dimmt. Wenn ich jedoch im Raum bin, winke ich kurz damit sich das dimmen resetet. Der Nachteil an meinem Code, es wird dauerhaft bei einer Bewegung der state meiner Lampe auf on gesetzt um die eventuellen transionstime (langsames herunter dimmen) zu reseten. (kein wirklicher nachteil sondern nur unnötige last.) jetzt möchte ich eine Variable setzten die solange auf true steht wie heruntergedimmt wird. das reseten passiert bei einem erneuten start des Scripts (wegen dem winken).
Ich frage so doof weil ich schon verschidene Ergebnisse (wahrscheinlich spaghetti-code) beim Testen hatte und noch total neu bin im coden.
Bewegungsmelder: Xiaomi Aquara, Xiaomi Bridge (die runde)
Lampe:Trust, Philips HUE Bridge
Code:on({id: 'mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('is aktiv'); if (getState("javascript.0.Benutzerdefiniert.ioBroker_Modes.AtHome_Joshua").val == true) { if (getState("javascript.0.Benutzerdefiniert.Bewegungsmelder.is_activ_-_Badezimmer").val == true) { if (getState("mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state").val == true) { if (getState("javascript.0.Benutzerdefiniert.ioBroker_Modes.Nightmode").val == false) { setState("hue.0.Philips_hue.Lampe_Badezimmerdecke.command"/*Philips_hue.Lampe_Badezimmerdecke.command*/, '{"on":true}'); } if (getState("javascript.0.Benutzerdefiniert.ioBroker_Modes.Nightmode").val == true) { if (getState("hue.0.Philips_hue.Lampe_Badezimmerdecke.effect").val == 'colorloop') { setState("hue.0.Philips_hue.Lampe_Badezimmerdecke.command"/*Philips_hue.Lampe_Badezimmerdecke.command*/, '{"effect":false}'); } setState("hue.0.Philips_hue.Lampe_Badezimmerdecke.command"/*Philips_hue.Lampe_Badezimmerdecke.command*/, '{"hue":120,"sat":254,"bri":64}'); } } if (getState("mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state").val == false) { setState("hue.0.Philips_hue.Lampe_Badezimmerdecke.command"/*Philips_hue.Lampe_Badezimmerdecke.command*/, '{"on":false,"transitiontime":600}'); } } } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTI1JTI0UTl0T2hEdmF4YyUyQnN3Xyh2cmYlMjIlMjB4JTNEJTIyNjMlMjIlMjB5JTNEJTIyLTE4NyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjIyU0ZHJTQweClMck8qJTNBRkRBYSU3Q3A4aiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRW1paG9tZS4wLmRldmljZXMuc2Vuc29yX21vdGlvbl9hcTJfMTU4ZDAwMDJlOTliZTMuc3RhdGUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjIlM0QlNjAlMkZCIURQdFFSJTNBN1IlN0RORURXKWwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWxvZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlN0JodzZJS0xZJTYwJTIzZzdVJTVFWHpHcWJvJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRWlzJTIwYWt0aXYlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJMZGdUdC1FeFViRWclNUR+JTdCaTglMjQlMkNuJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyU2glMkMlMjMlNjBDcTU0JTVCJTJDdkt4ZXIxUCUyRmslMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJwUCUyM1o3cENVbXRSOURiJTVCKi1ZckolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQmVudXR6ZXJkZWZpbmllcnQuaW9Ccm9rZXJfTW9kZXMuQXRIb21lX0pvc2h1YSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJVZXklNDB0WVN+aG9DNVl2aHR+ZCUyRnUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMnYuVHQzKFElMjQlM0ZRJTJDJTdEJTNETyU2MColMjQtTWElMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJRNmtNV3VfOFFrJTI0USUzQnl3JTJDbGElN0RDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyaXNkV2xEWUVNcG9FdXN6biU3QlNWUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5CZW51dHplcmRlZmluaWVydC5CZXdlZ3VuZ3NtZWxkZXIuaXNfYWN0aXZfLV9CYWRlemltbWVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMmdJMUElN0R4JTdEZ2FBRSU1RE0lMkZaJTNGenpfJTIzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjIlM0E5NHpuYyU0MEwheWRMJTNCJTI0WnUlM0JNVHMlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIyTVg2JTQwMiUyQmFWZm5lYnowY1BUdyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmYlNjAhUjAlM0ElMjVQNiU3QkFGYyhZTE9XOFglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VtaWhvbWUuMC5kZXZpY2VzLnNlbnNvcl9tb3Rpb25fYXEyXzE1OGQwMDAyZTk5YmUzLnN0YXRlJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMiUzQjNWNkkwcVVGRTJzOHZRYTlCRSElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMjMlNDBZbCU3RFMuOUZraiUyQlhENlAlNUR2JTNBJTdCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyY2w0KHhCX0VvclIlNUJpN1FyN3BXVyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiUzQWxoUH5TJTNCJTJCYiU3QlJWUzVqb0klM0ZPTCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5CZW51dHplcmRlZmluaWVydC5pb0Jyb2tlcl9Nb2Rlcy5OaWdodG1vZGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIydSU3QnduTWNBJTJDJTVFZSUzRHElMkJuMzVOTnFDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjI1byUyRiFHQ0U5JTVEbFlUIVkpJTYwJTQwJTYwLVYlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWh1ZS4wLlBoaWxpcHNfaHVlLkxhbXBlX0JhZGV6aW1tZXJkZWNrZS5jb21tYW5kJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIydkNSWnhpVyU1RTglMkIlMkMtJTJCNU51JTVEViU1RF8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdCJTIyb24lMjIlM0F0cnVlJTdEJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMkRSdSU3RCUzRiU0MEclMjV4UDl2JTJDSzZVTW0lMjNQJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyNkdrXyUyNHQtMS1iOFRUQSU2MFIlN0QlN0RVTCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMm4lMkJOelEhSSU0ME9NJTNGdkhPNm9HZSU0MEwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQmVudXR6ZXJkZWZpbmllcnQuaW9Ccm9rZXJfTW9kZXMuTmlnaHRtb2RlJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMmhSTTZEfm9mfmRpS3glN0NtWWlpWmwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiolN0JHYS4wZjZCRXNHYnVXOWY4NmolMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlNjAlM0FDOGNQS3g4JTIzRSUyRllpVy0lM0ZXZnAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlMkNMTGw2JTdDJTdENHklM0RWc0wlM0QhVlJONCU0MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWh1ZS4wLlBoaWxpcHNfaHVlLkxhbXBlX0JhZGV6aW1tZXJkZWNrZS5lZmZlY3QlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTVCViklMkYlMkIlN0RmU3dTJTNCWnpySVEuZyUyQjklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFY29sb3Jsb29wJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlM0REZW5yT0JzZjB5aiU3QnclMjMlMjQ1ZXUlMkMlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWh1ZS4wLlBoaWxpcHNfaHVlLkxhbXBlX0JhZGV6aW1tZXJkZWNrZS5jb21tYW5kJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyIShubXYlMjQxcVclN0RXRiU1RF9nUUchZSUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlN0IlMjJlZmZlY3QlMjIlM0FmYWxzZSU3RCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUzQiUzQUhZSnBLYVVzVjljZ0ElMkZodEFYJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5MYW1wZV9CYWRlemltbWVyZGVja2UuY29tbWFuZCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnhINTRoY2olM0FCJTVCOChwQyUzQTRwSSUzQkklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdCJTIyaHVlJTIyJTNBMTIwJTJDJTIyc2F0JTIyJTNBMjU0JTJDJTIyYnJpJTIyJTNBNjQlN0QlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJTJTNEJTYwcnRnRDdmNVAlMjUlNURMZCElN0MlN0NkaSUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiU2MCklMjQodSglNDBNMSUyM2gtJTYwKmdrUU9ZJTJGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTI0TiU3RGYoYyU3QkJUczNfJTI1cS1jc1EqdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRW1paG9tZS4wLmRldmljZXMuc2Vuc29yX21vdGlvbl9hcTJfMTU4ZDAwMDJlOTliZTMuc3RhdGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyLm9LTDRRMSU1RSU3RFolMkZqN25Tb0JKWnElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMnBVV0twJTdEcVlGS2lZMHdpTSU1RTJWJTdDJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5MYW1wZV9CYWRlemltbWVyZGVja2UuY29tbWFuZCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMi5BJTJCKGdzSURHJTNCZHAlMkYoY0ZKVSUzRjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdCJTIyb24lMjIlM0FmYWxzZSUyQyUyMnRyYW5zaXRpb250aW1lJTIyJTNBNjAwJTdEJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
-
@zuldero Wenn das ein Blockly ist, dieses bitte exportieren und dann diesen Code hier einfügen. Wenn du zusätzlich noch einen Screenshot vom Blockly rein stellst, würde dir eher jemand helfen wollen.
-
Es geht mir mehr um die logik ob die werte von variabeln gelöscht werden wenn das Skript nicht aktiv ist.
Das Bild:
Der export:
BlocklyJavascriptTypeScript 12:01:40.347 info javascript.0 (670) script.js.Skripte.Bewegungsmelder_Badezimmer: is aktiv 12:02:45.667 info javascript.0 (670) Stop script script.js.Skripte.Bewegungsmelder_Badezimmer 12:02:45.862 info javascript.0 (670) Start javascript script.js.Skripte.Bewegungsmelder_Badezimmer 12:02:45.923 info javascript.0 (670) script.js.Skripte.Bewegungsmelder_Badezimmer: registered 1 subscription and 0 schedules 12:05:27.896 info javascript.0 (670) Stop script script.js.Skripte.Bewegungsmelder_Badezimmer 12:05:28.012 info javascript.0 (670) Start javascript script.js.Skripte.Bewegungsmelder_Badezimmer 12:05:28.019 info javascript.0 (670) script.js.Skripte.Bewegungsmelder_Badezimmer: registered 1 subscription and 0 schedules Ausgewählte Blöcke exportieren <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="fC@}0jz^-yO6}HBMi_s4">Reset</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="on_ext" id="%$Q9tOhDvaxc+sw_(vrf" x="-12" y="-212"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="2SFG@x)LrO*:FDAa|p8j"> <field name="oid">mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="=`/B!DPtQR:7R}NEDW)l"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="{hw6IKLY`#g7U^XzGqbo"> <field name="TEXT">is aktiv</field> </shadow> </value> <next> <block type="controls_if" id="LdgTt-ExUbEg]~{i8$,n"> <value name="IF0"> <block type="logic_compare" id="Sh,#`Cq54[,vKxer1P/k"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pP#Z7pCUmtR9Db[*-YrJ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.ioBroker_Modes.AtHome_Joshua</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Uey@tYS~hoC5Yvht~d/u"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="v.Tt3(Q$?Q,}=O`*$-Ma"> <value name="IF0"> <block type="logic_compare" id="Q6kMWu_8Qk$Q;yw,la}C"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="isdWlDYEMpoEuszn{SVQ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.Bewegungsmelder.is_activ_-_Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="gI1A}x}gaAE]M/Z?zz_#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id=":94znc@L!ydL;$Zu;MTs"> <value name="IF0"> <block type="logic_compare" id="2MX6@2+aVfnebz0cPTw+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="f`!R0:%P6{AFc(YLOW8X"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";3V6I0qUFE2s8vQa9BE!"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="3@Yl}S.9Fkj+XD6P]v:{"> <value name="IF0"> <block type="logic_compare" id="cl4(xB_EorR[i7Qr7pWW"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=":lhP~S;+b{RVS5joI?OL"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.ioBroker_Modes.Nightmode</field> </block> </value> <value name="B"> <block type="logic_boolean" id="u{wnMcA,^e=q+n35NNqC"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="SgOZTgxTi5+B`ViLFn=S"> <value name="IF0"> <block type="logic_compare" id="|`:+112M^V7WNosn{*ii"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="8lGKhx}ex;Z/}}2k}z]j"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> </block> </value> <value name="B"> <block type="logic_boolean" id="L+xe]ksier[;vefIkuF9"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="5o/!GCE9]lYT!Y)`@`-V"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="vCRZxiW^8+,-+5Nu]V]_"> <field name="TEXT">{"on":true}</field> </block> </value> <next> <block type="variables_set" id="S5,$^4)bhRP@R$X/#M3I"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> <value name="VALUE"> <block type="logic_boolean" id=";WH6xPY^$ff,Y`NHrT2A"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="DRu}?@G%xP9v,K6UMm#P"> <value name="IF0"> <block type="logic_compare" id="6Gk_$t-1-b8TTA`R}}UL"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="n+NzQ!I@OM?vHO6oGe@L"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.ioBroker_Modes.Nightmode</field> </block> </value> <value name="B"> <block type="logic_boolean" id="hRM6D~of~diKx|mYiiZl"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="*{Ga.0f6BEsGbuW9f86j"> <value name="IF0"> <block type="logic_compare" id="`:C8cPKx8#E/YiW-?Wfp"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=",LLl6|}4y=VsL=!VRN4@"> <field name="ATTR">val</field> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.effect</field> </block> </value> <value name="B"> <block type="text" id="[V)/+}fSwS;ZzrIQ.g+9"> <field name="TEXT">colorloop</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="=DenrOBsf0yj{w#$5eu,"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="!(nmv$1qW}WF]_gQG!e%"> <field name="TEXT">{"effect":false}</field> </block> </value> </block> </statement> <next> <block type="control" id=";:HYJpKaUsV9cgA/htAX"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="xH54hcj:B[8(pC:4pI;I"> <field name="TEXT">{"hue":120,"sat":254,"bri":64}</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_settimeout" id="t2g)BTxr_5p-qyom)bem"> <field name="NAME">timeout</field> <field name="DELAY">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="Y%$;Mo4@[~csrT_V-Q[s"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> <value name="VALUE"> <block type="logic_boolean" id="?i_WLqK{2R#]/RmEAgYg"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="pUWKp}qYFKiY0wiM^2V|"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=".A+(gsIDG;dp/(cFJU?0"> <field name="TEXT">{"on":false,"transitiontime":600}</field> </block> </value> <next> <block type="timeouts_setinterval" id="CqU{}XC*b9?d1DK[])Kv"> <field name="NAME">Intervall</field> <field name="INTERVAL">60</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id=";sxC88x0Ht=EN]qkB[Sp"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> <value name="VALUE"> <block type="logic_boolean" id="}_,(_mq54.UM;0j*5,0a"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </xml> <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="fC@}0jz^-yO6}HBMi_s4">Reset</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="on_ext" id="%$Q9tOhDvaxc+sw_(vrf" x="-12" y="-212"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="2SFG@x)LrO*:FDAa|p8j"> <field name="oid">mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="=`/B!DPtQR:7R}NEDW)l"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="{hw6IKLY`#g7U^XzGqbo"> <field name="TEXT">is aktiv</field> </shadow> </value> <next> <block type="controls_if" id="LdgTt-ExUbEg]~{i8$,n"> <value name="IF0"> <block type="logic_compare" id="Sh,#`Cq54[,vKxer1P/k"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pP#Z7pCUmtR9Db[*-YrJ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.ioBroker_Modes.AtHome_Joshua</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Uey@tYS~hoC5Yvht~d/u"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="v.Tt3(Q$?Q,}=O`*$-Ma"> <value name="IF0"> <block type="logic_compare" id="Q6kMWu_8Qk$Q;yw,la}C"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="isdWlDYEMpoEuszn{SVQ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.Bewegungsmelder.is_activ_-_Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="gI1A}x}gaAE]M/Z?zz_#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id=":94znc@L!ydL;$Zu;MTs"> <value name="IF0"> <block type="logic_compare" id="2MX6@2+aVfnebz0cPTw+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="f`!R0:%P6{AFc(YLOW8X"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_motion_aq2_158d0002e99be3.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";3V6I0qUFE2s8vQa9BE!"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="3@Yl}S.9Fkj+XD6P]v:{"> <value name="IF0"> <block type="logic_compare" id="cl4(xB_EorR[i7Qr7pWW"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=":lhP~S;+b{RVS5joI?OL"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.ioBroker_Modes.Nightmode</field> </block> </value> <value name="B"> <block type="logic_boolean" id="u{wnMcA,^e=q+n35NNqC"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="SgOZTgxTi5+B`ViLFn=S"> <value name="IF0"> <block type="logic_compare" id="|`:+112M^V7WNosn{*ii"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="8lGKhx}ex;Z/}}2k}z]j"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> </block> </value> <value name="B"> <block type="logic_boolean" id="L+xe]ksier[;vefIkuF9"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="5o/!GCE9]lYT!Y)`@`-V"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="vCRZxiW^8+,-+5Nu]V]_"> <field name="TEXT">{"on":true}</field> </block> </value> <next> <block type="variables_set" id="S5,$^4)bhRP@R$X/#M3I"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> <value name="VALUE"> <block type="logic_boolean" id=";WH6xPY^$ff,Y`NHrT2A"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="DRu}?@G%xP9v,K6UMm#P"> <value name="IF0"> <block type="logic_compare" id="6Gk_$t-1-b8TTA`R}}UL"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="n+NzQ!I@OM?vHO6oGe@L"> <field name="ATTR">val</field> <field name="OID">javascript.0.Benutzerdefiniert.ioBroker_Modes.Nightmode</field> </block> </value> <value name="B"> <block type="logic_boolean" id="hRM6D~of~diKx|mYiiZl"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="*{Ga.0f6BEsGbuW9f86j"> <value name="IF0"> <block type="logic_compare" id="`:C8cPKx8#E/YiW-?Wfp"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=",LLl6|}4y=VsL=!VRN4@"> <field name="ATTR">val</field> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.effect</field> </block> </value> <value name="B"> <block type="text" id="[V)/+}fSwS;ZzrIQ.g+9"> <field name="TEXT">colorloop</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="=DenrOBsf0yj{w#$5eu,"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="!(nmv$1qW}WF]_gQG!e%"> <field name="TEXT">{"effect":false}</field> </block> </value> </block> </statement> <next> <block type="control" id=";:HYJpKaUsV9cgA/htAX"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="xH54hcj:B[8(pC:4pI;I"> <field name="TEXT">{"hue":120,"sat":254,"bri":64}</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_settimeout" id="t2g)BTxr_5p-qyom)bem"> <field name="NAME">timeout</field> <field name="DELAY">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="Y%$;Mo4@[~csrT_V-Q[s"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> <value name="VALUE"> <block type="logic_boolean" id="?i_WLqK{2R#]/RmEAgYg"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="pUWKp}qYFKiY0wiM^2V|"> <mutation delay_input="false"></mutation> <field name="OID">hue.0.Philips_hue.Lampe_Badezimmerdecke.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=".A+(gsIDG;dp/(cFJU?0"> <field name="TEXT">{"on":false,"transitiontime":600}</field> </block> </value> <next> <block type="timeouts_setinterval" id="CqU{}XC*b9?d1DK[])Kv"> <field name="NAME">Intervall</field> <field name="INTERVAL">60</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id=";sxC88x0Ht=EN]qkB[Sp"> <field name="VAR" id="fC@}0jz^-yO6}HBMi_s4" variabletype="">Reset</field> <value name="VALUE"> <block type="logic_boolean" id="}_,(_mq54.UM;0j*5,0a"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@zuldero
Variablen die du in einem Skript nicht explizit initialisierst werden so lange als 'undefined' betrachtet bis du ihnen einen Wert zuweist.A.
Nachtrag: Ich verstehe den Sinn / Aufbau des Blockly's nicht:
- Warum setzt du die Variable Reset (für immer) alle 60 Sekunden auf Falsch wenn sie mindestens ein mal wahr war?
- Warum schachtelst du 3 Falls Abfragen ineinander ? Statt dessen könntest du die Bedingungen auch mit einem "und" Baustein verknüpfen
- warum machst du einmal "falls Wert(ObjektA) = wahr" und dann "falls Wert(ObjektA) = falsch" ? Statt des zweiten Falls könntest du ein 'sonst mache' einsetzen.
A.
-
@zuldero Ohne mir jetzt dein Blockly angesehen zu haben, aber bezüglich der Variablen ist es so, dass diese gelöscht werden wenn du ioBroker oder den js-Adapter neu startest bzw. wenn das Skript von dir beendet oder nach einer Änderung gespeichert wird. Möchtest du den Inhalt der Variablen dauerhaft und vielleicht auch in anderen Skripten verwenden, dann verwende statt einer Variablen einen Datenpunkt.
-
@zuldero zum Blockly hier noch ein paar Verbesserungsvorsachläge:
Aber auch ich verstehe nicht was du mit der 'Reset'-Variablen vor hast bzw. machst.
-
@Dr-Bakterius Dr-Bakterius genau diese Information habe ich gesucht. Danke.
@Asgothian 1. Ja das mit dem Intervall war Blödsinn. Da hab ich einfach den falschen Baustein erwischt xD Eigentlich sollte das ein timeout für 60sek sein (das dimmen dauert 60sek).
2. und 3. Ich hatte keine Anung von programmieren und hab mich einfach ausprobiert bis etwas geklappt hat. Seither mache ich das so. aber danke für den Vorschlag. Das ist viel übersichtlicher, von jetzt an werde ich es so machen. Hat das auch sonst noch irgendwelche Vorteile, oder geht es nur um die Übersicht?Also mit der Reset-Variable möchte ich verhindern, dass nicht unnötig bei jeder Bewegung ein "on" Befehl an die Lampe geschickt wird wenn diese bereits an ist. Jedoch muss der "on" Befehl gesendet werden, um das herunterdimmen reseten zu können.
Oder würdet ihr sagen das ist komplett egal, ob dauerhaft ein on befehl gesendet wird? ich möchte einfach nicht unnötig viel last auf den Raspi bringen.
-
@zuldero Es ist nicht nur übersichtlicher, sondern spart auch Speicher und Prozessorleistung. Sieh dir nur den exportierten Code an - der hat nicht einmal halb so viele Zeilen.
Und du solltest, wie in meinem Beispiel oben gezeigt, vor dem Start von 'timeouts' diese immer stoppen. Andernfalls können diese mehrfach gestartet werden und dann ergeben sich zeitversetzt die komischsten Ereignisse.
Den 'on'-Befehl kannst du ruhigen Gewissens mehrfach senden. Wenn die Lampe schon an ist, wird der Befehl einfach ignoriert.