lvanderree / com.synplyworks.thenmore

Homey Then functionality
GNU General Public License v3.0
0 stars 4 forks source link

Timer only works one time #15

Closed driesk81 closed 5 years ago

driesk81 commented 5 years ago

Thanks for the Timer app. This app should make it so simple to control lights with a motion detector. Problem is that in my case the app works only one time as intended. After that a restart of the app seems necessarily. Diagnostic report: 00ff286e-2b36-4129-a6b9-67a141ce5332 Please let me know if the app is still under active development.

lvanderree commented 5 years ago

Hi @driesk81

since the app is working OK, I haven't been developing much on it. However I do take a look at bug reports and fix issues, when I have time and when things go wrong I try to make some time for it.

I looked at your report, but I cannot see what exactly is going on. I don't know if you've seen it yourself, but this is what I've got:

2019-10-27 22:27:04 [log] [TimerApp] remember state for Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809] (since on and restore on) oldValue 0
2019-10-27 22:27:04 [log] [TimerApp] set device Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809] capability dim to 0.05
2019-10-27 22:27:04 [log] [TimerApp] set timer for device Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809] to 60 seconds, oldValue: false
2019-10-27 22:27:26 [log] [TimerApp] Cancelled timer for device Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809]

2019-10-27 22:27:29 [log] [TimerApp] remember state for Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809] (since on and restore on) oldValue 0.37
2019-10-27 22:27:29 [log] [TimerApp] set device Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809] capability dim to 0.05
2019-10-27 22:27:29 [log] [TimerApp] set timer for device Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809] to 60 seconds, oldValue: 0.37
2019-10-27 22:27:36 [log] [TimerApp] Cancelled timer for device Lampen overloop [fc6201b1-5fc7-49d3-be46-13450dab9809]

You have the lights off,

I don't know

driesk81 commented 5 years ago

Hoi Leon,

Wat een ongelooflijk snelle reactie. Je conclusie van de log file (die kan ik zelf niet inzien) is juist. Ik gebruik inderdaad een flow card om de timer te stoppen als handmatig het dimniveau boven de 5% wordt gezet.

Het lijkt er dus op dat alles naar behoren werkt. Net nog even getest. De timer app lijkt prima te werken tot ik het dimniveau handmatig omhoog zet als de timer loopt. Als ik dan de lamp uitzet en daarna de bewegingsmelder activeer reageert de timer app niet meer.

Daarna de timer app herstart en alles werkt weer naar behoren. Welke data zou helpen dit probleem te debuggen?

Met vriendelijke groeten Gijs

lvanderree commented 5 years ago

Ok, dus als ik het goed lees verhoog je zelf het dimniveau terwijl de timer loopt, wat er voor zorgt dat de timer gecancelled wordt. Daarna zet je een keer de lamp uit. Vervolgens gaat de timer nooit meer aan.

Dat moet ik denk ik zelf ook kunnen reproduceren. Heb ik alleen niet gelijk tijd voor, maar zal vermoedelijk van de week wel lukken. Waarschijnlijk zit er dan ergens een bug bij de cancel timer functie,waardoor de nieuwe timer niet meer wilt starten.

driesk81 commented 5 years ago

Dat klopt helemaal. Pir is een neo coolcam Lamp fibaro dimmer 2 De achterliggende gedachte is dat als de lamp aan staat de timer functie vanzelfsprekend niet werkt. En als deze toch geactiveerd wordt doordat iemand de sensor passeert en besluit dat de lamp aan moet blijven enkel het dim Nivea moet verhogen boven de 5%

Ik hoor graag of je tot dezelfde conclusie komt en heb geen haast ;-) Fijne avond. Op 28 okt. 2019, om 20:56, Leon van der Ree notifications@github.com<mailto:notifications@github.com> schreef:

Ok, dus als ik het goed lees verhoog je zelf het dimniveau terwijl de timer loopt, wat er voor zorgt dat de timer gecancelled wordt. Daarna zet je een keer de lamp uit. Vervolgens gaat de timer nooit meer aan.

Dat moet ik denk ik zelf ook kunnen reproduceren. Heb ik alleen niet gelijk tijd voor, maar zal vermoedelijk van de week wel lukken. Waarschijnlijk zit er dan ergens een bug bij de cancel timer functie,waardoor de nieuwe timer niet meer wilt starten.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/lvanderree/com.synplyworks.thenmore/issues/15?email_source=notifications&email_token=ANKO2CACTXVAJFKTI6QEM73QQ47VLA5CNFSM4JF6KKA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECOF42Q#issuecomment-547118698, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANKO2CCGO2445SWTIKPDX33QQ47VLANCNFSM4JF6KKAQ.

lvanderree commented 5 years ago

Ik kan de situatie reproduceren, en ik had de fout helaas zelf ook al eens ervaren, bleek uit het commentaar in mijn code.

        // TODO: reset cache (of athom API), to get the current onoff value (apparantly the cache of the web api can be out of sync)
        // TODO: Or is there maybe another way to get a capability
        const apiDevice = await api.devices.getDevice({ id: device.id });

//      apiDevice.capabilitiesObj.onoff.value  => geeft TRUE als je de lamp met de knop uit gezet hebt, en terwijl de lamp ook in Homey uit staat

Het probleem ontstaat door een bug in de athom api code, waarmee de device state verkregen wordt, maar welke helaas out of sync kan zijn. In dit geval betekend dat, dat als je je lamp met de hand uit zet, de timer app dit niet door krijgt, en voor altijd zal denken dat de lamp aan staat en daardoor werkt het dus inderdaad niet meer. Ik zal gaan kijken of ik deze cache kan overrulen, want homey zelf weet wel degelijk dat de devices uit staan.

lvanderree commented 5 years ago

Ik heb denk ik een oplossing om de capabilityValue op een andere manier te verkrijgen, die geen last heeft van de caching. Ik moet dit echt nog wat verder testen en wellicht op meerdere plaatsen toepassen.

Als je weet hoe je apps kunt sideloaden, kan je proberen om branch bugfix/capability te installeren

driesk81 commented 5 years ago

Hoi Leon

Dat klopt met mijn bevindingen. Ik heb ook nog wat tests gedaan en kwam daarbij tot de conclusie dat handmatige bediening de oorzaak lijkt. Ik had eigenlijk met een andere schakelaar (Qubino ipv fibaro) willen testen en je dan een update willen geven.

driesk81 commented 5 years ago

Zal morgen even kijken of ik wat tijd kan vinden. edit: het lijkt nu inderdaad te werken

lvanderree commented 5 years ago

top, dat met die kids herken ik, heb er zelf ook 2 waarschijnlijk 1 jaartje ouder. Ik heb versie 0.7.3 gemaakt welke nu bij athom ter review ligt