!7 sclass NotebookLidStatus extends DynBigNumber { transient Bool last; transient long openSince; void start { super.start(); setDescription("Notebook Lid"); ownTimer(doEvery(2.0, r updateMe)); } void update { Bool open = isNotebookLidOpen(); if (isTrue(open) && isFalse(openLast)) openSince = now(); openLast = open; setValue(now() < openSince + 10000 ? "JUST OPENED" : nullFalseTrue(open, "?", "CLOSED", "OPEN")); } }