I am currently on shift, and as always when I am on shift, I try to improve the automation/robotation of the shift. So that I have time to do other things.
The following tasks, I have identified for myself as the main tasks of a shifter at the moment, apart from starting and stopping observation in the evening and in the morning.
Keep your eyes on ...:
- ... QLA results. Call Daniela in case of a flare.
- ... weather (especially Wind and Humidity). park in case of strong wind. Sleep in case of rain.
- ... Main.js, it might sometimes just throw an exception. Simply Restarting it, often helps.
I played a bit with Skype4py by Arkadiusz Wahlig, and found it was incredibly easy to call my phone using this module. So now, I want to try and get a script calling me, when one of these things happens:
- wind becomes strong
- When humidity gets high (and maybe the number of stars is low)
- Main.js is not "Running" anymore.
- QLA shows rates near the flare alert limits
The number of stars, I might be able to get from here, though this work is not yet believed to deliver stable results, but its a start: https://www.fact-project.org/AllSkyCloudDetection/
Also MAGIC has some cloud detection going on here: http://www.magic.iac.es/site/weather/clouds.html Maybe one can sue that.
In the future, I am pretty sure, one can automate the procedure even more, like:
- Don't call me, call Daniela directly, no need to disturb the shifter, when all there is to do, is calling Daniela.
- try to restart Main.js once (and only once) if is works ... don't bother the shifter.
- in case of wind. Park ... when parking works ... don't bother the shifter.
- in case of rain. Sleep ... when sleeping works ... don't bother the shifter.
This way, the number of calls could be reduced to a minimum. But for now, all I want is to have a kind of reminder, which is simply telling me, that I forgot to keep and eye on the wind, in case I did so.
As a first step I needed to install Skype 4.3 on any of the machine on La Palma. I chose 'gui', because I think, any load I put on the CPU of this machine has the least impact on the DAQ and the QLA. I was not able to install 4.3 before I had 4.2 removed. 4.2 was removed using synaptic. 4.3 was not properly installed yet, it just was installed from a tarball, becauese the deb-files provided here: http://www.skype.com/en/download-skype/skype-for-linux/ did not work. In the drop-down-box I chose 'dynamic'. The tarball did not contain sources, which I had to compile, but just a precompiled thing, I could directly call. Not sure how to install it though.
Ah okay, so I installed it, as they recomment in their README file. I sym-linked the skype-4.3.0.37 folder to /usr/share/skype and sym-linked the skype-binary file to /usr/bin/skype. Thats all.
Apart from that I wanted to use the fact skype account "www.fact-project.org", but it had no credit, and I didn't want to top it up with my personal credit card. I purchased a so called pay-safe-card for that, but despite the fact, that my personal account was able to be topped up with a pay-safe-card, the fact skype account was not. So in the end I decided to use my personal account for this test.
So on gui (in a VNC session on port 5902 by user dneise) there is a skype running. In order to use the Skype4Py module, I apparently need an X-server. So I started a screen session in this VNC session.
The first step, I want to try is, check if DIM_CONTROL is still in state running. If not, the script should call me on my phone. This is the easiest, so I'll start with it. This checks if DIM_CONTROL is still in 'Running'
import fact.dim dns = fact.dim.Dns() servers = dns.servers() dimctrl = servers['DIM_CONTROL'] if "Running" not in dimctrl.state[0]: skype.PlaceCall('+41774528842')
About the QLA. I found, the results of the QLA are in our run-DB in the table called 'AnalysisResultsRunLP'. Currently I am trying to read the excessrate from the DB.
It seems to be calculated in gate:/home/factwww/dch/newqla/get_data.php
I did not get this part running ... so I concentrated on:
Check wind and humidity. In case of string wind and humidity, I should be called. This was fairly easy to write.
So after all this I can say, I have currently a script running, that will call me when: wind, rain, or Main.js are needing my attention. Therefore I feel much safer, when I concentrate on something else during the night, which might make me miss the faint 'ping' sound, which sounds, when Main.js throws an exception.
So in case you think, you would like to use this puny little tool as well, just drop me a line and we set it up for you as well.... let's try it out a bit to see how it performs.