- lst2 = lst1
- lst2.append(lst2.pop(0))
- #guarantee list has even number of elements by multiplying it with a factor of 2
- lst=zip(lst1,lst2) * 8
- lst2=None
- switchPower(lst[0][0],True)
- for (id1,id2) in lst:
- switchPower(id2,True)
- time.sleep(0.3)
- switchPower(id1,False)
- time.sleep(0.6)
+ lst2 = map(lambda e:[e,False], lst1)
+ deckenlicht_ids = uwscfg.slug_ids_decke.split(" ")
+ ceiling_light_was_on = False
+ #guess main light state:
+ if len(list(set(deckenlicht_ids) & set(lst1))) > 0:
+ light_value_before = light_value
+ for id in deckenlicht_ids:
+ switchPower(id,False)
+ time.sleep(2.8)
+ light_value_after = getLightValueNow()
+ if not (light_value_before is None or light_value_after is None):
+ ceiling_light_was_on = ((light_value_before - light_value_after) > int(uwscfg.slug_light_difference_decke))
+ logging.debug("eventPanic: light_value_before: %d, light_value_after: %d, ceiling_light_was_on: %s" % (light_value_before,light_value_after,str(ceiling_light_was_on)))
+ for id in lst1:
+ switchPower(id,False)
+ for times in range(1,6):
+ delay = random.choice([0.3,1.4,0.9,0.5,0.3,1.4,0.9,0.5,2.2])
+ time.sleep(delay)
+ for e in lst2:
+ e[1]=not e[1]
+ switchPower(e[0],e[1])