Page 9 of 12

Re: SchedulGhost

Posted: Mon Oct 26, 2015 6:04 pm
by skribb
Thanks for replying Pako. I think I'm gonna do this from within Tasker instead.

So i will write in this thread again if i decide on using this plugin.

Re: SchedulGhost

Posted: Thu Dec 03, 2015 6:46 pm
by gadjetfreak
I am using the USB-UIRT and I am trying to make a schedulghost where it fires an IR signal at a certain time. I made the file to fire the ir signal but how do I incorporate a timer to do this at a certain time every day? I am brand new to this programming in Eventghost.

Re: SchedulGhost

Posted: Thu Dec 03, 2015 8:30 pm
by kalinkamaen
Add scheduel ghost plugin.

See picture:


Nr 1 Browse in to a folder where you want SG to save its XML file. Doesnt mather where.
free choice.

Nr 2 This will show you where you have choosen the file to save to

Nr 3 Push this button!

See picture:


Nr 1 Add new scheduell.

Nr 2 Schdule title is only the title for you to remember what it do.

Nr 3 Scheduel type is how often you want event to start.

Nr 4 Is the actual event. call it what ever5 you want.

Push test button and you will see the event in your log.

You also need to choose what time you want the event to trigger. You will understand howto.

Hope this helps.

Regards Morten

Re: SchedulGhost

Posted: Sat Dec 12, 2015 5:08 am
by javahandbook
SchedulGhost.xml was not safely saved when computers automatically shutdown.

I used SchedulGhost to control TV recording in a computer. However, sometimes when recording finishes and the computer is about to shutdown,

the SchedulGhost.xml does not flush the data in the memory. Then, the xml is corrupted.

It happens several times. Is it possible to safely flush the data (i.e. save the SchedulGhost.xml) every time when an event is updated?

Thanks a lot!!

Plugin: SchedulGhost
Error starting plugin: SchedulGhost
Traceback (most recent call last) (1700):
File "C:\Progra~1\EventG~1\eg\Classes\", line 177, in Start
File "C:\Progra~1\EventG~1\plugins\SchedulGhost\", line 1669, in __start__ = self.xmlToData()
File "C:\Progra~1\EventG~1\plugins\SchedulGhost\", line 2440, in xmlToData
xmldoc = miniDom.parse(xmlfile)
File "xml\dom\minidom.pyc", line 1918, in parse
File "xml\dom\expatbuilder.pyc", line 924, in parse
File "xml\dom\expatbuilder.pyc", line 211, in parseFile
ExpatError: no element found: line 1, column 0

Re: SchedulGhost

Posted: Sun Dec 13, 2015 3:57 am
by javahandbook
Hi there,

I checked the code and found that maybe we should put "close()" right after "dom.writexml(writer, encoding = 'utf-8')"....


dom.writexml(writer, encoding = 'utf-8')

Let me test for weeks and see if it works.

Re: SchedulGhost

Posted: Sun Dec 13, 2015 8:36 am
by Pako
I do not know what you have in mind when you write:
javahandbook wrote:Is it possible to safely flush the data (i.e. save the SchedulGhost.xml) every time when an event is updated?
I do not know if it helps your case, but you can add action SchedulGhost: Save data to xml into each macro (which is triggered by SchedulGhost).


Re: SchedulGhost

Posted: Sun Dec 13, 2015 10:28 pm
by javahandbook
Dear Pako,

I finally figured out where the problem is.

When EventGhost exits, it asks SchedulGhost to perform dataToXml() again.

If the size of SchedulGhost.xml is sufficiently large, EventGhost doesn't have enough time to save all the data into the xml. especially when I perform automatic power off. Thus, SchedulGhost.xml becomes corrupted.

To avoid the problem, I comment out "self.dataToXml()" in the function "def __stop__(self)".

Re: SchedulGhost

Posted: Thu Dec 24, 2015 11:17 am
by Sem;colon
Hello Everyone,

I recently started using the holiday feature of this plugin. I already modified the plugin to remove some restrictions, but I still missed one thing: There was no possibility to trigger a schedule an the day before a holiday or not on a day before a holiday, so I extended this plugin by this functionality.
What do I need it for?
One example: I control the Thermostats in my house with EventGhost, on days before holidays I want them to be on a little longer than on days I have to work the next day, as I usually stay awake a bit longer.

I also fixed a bug: It was not possible to create a schedule that triggers only on holidays.

Re: SchedulGhost

Posted: Sun Mar 27, 2016 12:40 am
by skribb
Something strange just happened to me.

A dialog box popped up saying that EventGhost is requesting the runtime in an unexpected way or whatnot. After closing the dialog box one of my Schedulghost timers started generating events once every millisecond or so (that particular timer is set to run every hour), causing Eventghost to crash. The only thing that helped was moving the schedulghost config files to another dir. As soon as I put the config files back and restart EG it does the same thing. What could be the cause of this?

Re: SchedulGhost

Posted: Sun Mar 27, 2016 5:24 am
by Pako
Unfortunately, I do not know the answer.
The only chance is if you provide step by step instructions on how I can reproduce the same situation.


Re: SchedulGhost

Posted: Sun Mar 27, 2016 8:09 pm
by Sem;colon
Before you change anything on the actual version, here is a new one!

bugfix: "Do also trigger events for a non-chosen day if the next day happens to be a holiday" wasn't working

P.S. It will not fix the issue of skribb

Re: SchedulGhost

Posted: Sun Mar 27, 2016 9:06 pm
by skribb
Pako wrote:Unfortunately, I do not know the answer.
The only chance is if you provide step by step instructions on how I can reproduce the same situation.

It seemed to be quite random , no idea how to reproduce that specific environment. However it seemed to be easily fixed; i deleted the config files and re-created my schedules. I restarted EG and so far no megaspamming of timer events :)

Re: SchedulGhost

Posted: Thu May 26, 2016 5:52 pm
by kgschlosser
first off
this is an awesome plugin!!!

suggestion for addition:

i know there are already various plugins to do this but would be nice not to have to install a plugin for this dedicated function
but adding the ability to have the plugin trigger the event at sunrise (with a trim option) and sunset (with a trim option as well)

and also adding the ability to send the event off to another computer running eventghost
a second piece would have to be made to listen for the event on the remote computer that shouldn't be to difficult to do. and maybe do a broadcast that way all the person has to do is set a name for each of the running schedule ghosts and a check box to use that feature then the use wouldn't have to be worried about static ip's or remembering who is what.

maybe an option to have it generate html to a file and written to a user selectable directory and name per event would make it easier for posting the events to the webserver plugin for remote checking if the event has occurred

maybe adding the ability to have it display as an OSD overlay when will stay up indefinitely until the mouse is clicked or a specific action is triggered.

and last but not least having it read the schedule from a user created text file xml is easy for you and i but not so easy for everyone else i would suggest having it read directly from google calendars but i think that would be quite a lot of work to do

this would be a nice feature set i believe to add to the plugin for the user. to make it easier to get the notifications in a multiseat or remote environment.

i am going to start creating this set of features for my own need but as i am not the original author first off i would like permission if i get this going to post the additions and i would also love it if i could get a little help on it a lot of time gets spent reading the code someone else made to figure out what's going on easier to have the original author helping and making sure the code is done in a way the author approves of

I am a greenhorn at python and know my code is sloppy so i would like to make sure this is done right


Re: SchedulGhost

Posted: Thu May 26, 2016 8:10 pm
by krambriw
I just wanna give a kind advice when thinking about communication; start to think of and implement using MQTT (maybe except for data streaming). It is platform independent, it is light weight, it can be encrypted and it is very fast. Anything else may work for a while but better stick to a de-facto standard, the more likely that you may be able to communicate with a larger set of equipment and devices, products that you might not even heard about yet. The state of the art today in the IoT (internet of Things) world is MQTT.

Kind regards, Walter

Re: SchedulGhost

Posted: Thu May 26, 2016 11:20 pm
by kgschlosser
i haven't yet but have been meaning to look into MQTT, the only thing i don't care for and i believe i have told you this is that it relies on some other software that is outside of the control of the user, meaning that in order for it to work it has to connect to something else, and if that something else gets upgraded (outside of the users control) it will "break" the system something like a software upgrade the user can choose to do or not to do is one thing. this is a change the user has no control over. and i deeply dislike the fact that something can stop working because of a change that was made elsewhere. and i think (haven't used it yet) the process for setting up mqtt is a whole lot more involved than just simply installing EG on 2 computers installing the plugin into each of the computers and naming the computers in the plugin settings, and then setting a scheduled event in one and telling it to broadcast the message.

in my personal belief if something in my home wants to communicate with something else in my home then it shouldn't have to go out onto the internet to do so.

to many companies are doing that now, it's soon going to be that if you don't have internet then your house will stop functioning. and that's crazy.

i bought this washer and dryer set and i went with the upgraded ones that had the wifi (my house is 3 floors) and i wanted to be able to get notification on a device about the state of the machine. well guess what, they didn't state that you have to use their software, and it also didn't state that you have to have internet for the remote notification to work. and i think that's absurd. so if for some reason i lose the internet my notifications from my washer and dryer stop working.

and even if someone has found a way around using their software (haven't found one that works yet) it will still use the mfg servers to authenticate against like my honeywell wifi thermostat does the same thing and what i use to control it has to login to the honeywell servers and grabls the updates and makes changes through their servers. it's not a direct connection. and if honeywell makes a change then it breaks. even tho the device hasn't changed and my software hasn't changed. and if the original author of said plugin or software isn't around then it stops working and now i have to spend time and learn how to fix it which could take a long time.

and also no company is forever either. if said company goes out of business boop there goes my notifications

there should be laws against that kind of thing, my lighting controller is the same way it has to login using their servers, but if they go out of business then my lighting controller is a brick

and i do know there are some things that it is a whole lot easier to rely on the internet (and i do) but make a way to add the ability to whatever it is manually as well.

for instance.

for the scheduleghost plugin i have already coded a means to get the sunrise and sunset and also the lat and long and UTC information in all of about 10 lines of code. and without any user interaction. they don't have to enter a thing. but as i saw in the suntracker plugin it looks as tho it does all the calculations internally (i believe you wrote that krambriw) and if it does may i use the code in the additions to this plugin??

i will post the code for the automatic bits in the suntracker thread

something like that it will get the information that is needed, and store it it the eg xml file. and if for some reason grabbing the data doesn't work then flip over to the backup and process it locally, and if there is no ability to even get the lat and long remotely then show the means to have the user input it manually