GCAL3 - General Discussion

Hi Stuart,

I did do this, but will try again and report back.

Kr,
Hans

Hi Stuart,

That did get it working, I must have done something wrong in the initial setup. As I started it from the beginning (making new project etc), I can’t track down what it was exactly i did wrong, but I suspect the filename to be wrong, Gcal3.json iso GCal3.json (I it case sensitive?)

Anyway, it is working now, i’ll be back experimenting :slight_smile:

Thanks for your help!

Kr,
Hans

[quote=“hansibal, post:42, topic:182612”]Hi Stuart,

That did get it working, I must have done something wrong in the initial setup. As I started it from the beginning (making new project etc), I can’t track down what it was exactly i did wrong, but I suspect the filename to be wrong, Gcal3.json iso GCal3.json (I it case sensitive?)

Anyway, it is working now, i’ll be back experimenting :slight_smile:

Thanks for your help!

Kr,
Hans[/quote]

Yep - case sensitive ! gets me all the time 


Glad you have it working !!

Edit: Stuart, I missed a step is the process, my calendar now populates in the calender tab however the app window on the dash board isn’t showing the next event in my calendar and doesn’t trip on the exact keyword.

Here is the log dealing with the gcal.

09 08/30/14 23:13:58.612 JobHandler_LuaUPnP::Run device 108 GCal3 Sensor room 0 type urn:schemas-srs-com:device:GCal:3 id parent 0/0xd36398 upnp: 0 <0x2ae29000>

50 08/30/14 23:14:12.574 luup_log:108: GCal3 gc_V 0.6.2:This is device # 108 <0x2b75d680>
06 08/30/14 23:14:12.575 Device_Variable::m_szValue_set device: 108 service: urn:micasaverde-com:serviceId:SecuritySensor1 variable: Armed was: 1 now: 1 #hooks: 0 upnp: 0 v:0xd79fc8/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.576 Device_Variable::m_szValue_set device: 108 service: urn:micasaverde-com:serviceId:SecuritySensor1 variable: Tripped was: 0 now: 0 #hooks: 0 upnp: 0 v:0xd79248/NONE duplicate:0 <0x2b75d680>
06 08/30/14 23:14:12.577 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_TrippedEvent was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.578 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_TrippedID was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.578 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_Value was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.578 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_NextEvent was: Successfully Initialized now: Successfully Initialized #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.579 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_NextEventTime was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.579 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_Interval was: 180 now: 180 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.579 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_StartDelta was: 0 now: 0 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.580 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_EndDelta was: 0 now: 0 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.580 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_Keyword was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.581 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_exactKeyword was: true now: true #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.581 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_ignoreKeyword was: false now: false #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.581 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_triggerNoKeyword was: false now: false #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.581 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_ignoreAllDayEvent was: false now: false #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.582 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_retrip was: true now: true #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.582 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_CalendarID was: kiethrumbold@gmail.com now: kiethrumbold@gmail.com #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.582 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_jsonEvents was: [] now: [] #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.583 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_lastCheck was: 2014-08-30T23:10:22 now: 2014-08-30T23:10:22 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.583 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_nextCheck was: 2014-08-30T23:01:02 now: 2014-08-30T23:01:02 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.584 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_debug was: 3 now: 3 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.584 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_displaystatus was: 0 now: 0 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
50 08/30/14 23:14:12.584 luup_log:108: GCal3 gc_V 0.6.2:GCal3 gc_V 0.6.2:Variables initialized 
 <0x2b75d680>
50 08/30/14 23:14:12.602 luup_log:108: GCal3 gc_V 0.6.2:Command ls /usr/lib/lua/googlejwt.sh returned 0 <0x2b75d680>
50 08/30/14 23:14:12.603 luup_log:108: GCal3 gc_V 0.6.2:/usr/lib/lua/googlejwt.sh already exists <0x2b75d680>
50 08/30/14 23:14:12.622 luup_log:108: GCal3 gc_V 0.6.2:Command ls /usr/lib/lua/json.lua returned 0 <0x2b75d680>
50 08/30/14 23:14:12.622 luup_log:108: GCal3 gc_V 0.6.2:/usr/lib/lua/json.lua already exists <0x2b75d680>
50 08/30/14 23:14:12.622 luup_log:108: GCal3 gc_V 0.6.2:Function: checkforcredentials <0x2b75d680>
50 08/30/14 23:14:12.641 luup_log:108: GCal3 gc_V 0.6.2:Command ls /etc/cmh-ludl/GCal3.json.lzo returned 256 <0x2b75d680>
50 08/30/14 23:14:12.642 luup_log:108: GCal3 gc_V 0.6.2:GCal3 gc_V 0.6.2:Timezone is -4 hrs and -0 min <0x2b75d680>
50 08/30/14 23:14:12.642 luup_log:108: GCal3 gc_V 0.6.2:GCal3 gc_V 0.6.2:Running Plugin 
 <0x2b75d680>
06 08/30/14 23:14:12.643 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_NextEvent was: Successfully Initialized now: Successfully Initialized #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>
06 08/30/14 23:14:12.643 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_NextEventTime was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>

50 08/30/14 23:14:14.103 luup_log:61: VeraAlert:61:ProfileInit:Assoc:textalert with:Pushover <0x2c75d680>
06 08/30/14 23:14:14.104 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_lastCheck was: 2014-08-30T23:10:22 now: 2014-08-30T23:14:14 #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:0 <0x2df5d680>
06 08/30/14 23:14:14.105 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_jsonEvents was: [] now: [] #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2df5d680>
50 08/30/14 23:14:14.105 luup_log:108: GCal3 gc_V 0.6.2:Checking semaphore <0x2df5d680>
50 08/30/14 23:14:14.106 luup_log:108: GCal3 gc_V 0.6.2:Semaphore file returned nil <0x2df5d680>
01 08/30/14 23:14:14.106 LuaInterface::CallFunction_Timer-5 function GCalMain failed [string “local GCAL_VERSION = “V 0.6.2”
”]:101: /etc/cmh-ludl/GCal3/GCal3.sem: No such file or directory <0x2df5d680>

@Kieth

There looks to be two problems. The first is that there does not seem to be any keyword specified. gc_Keyword is ‘blank’

08/30/14 23:14:12.580 Device_Variable::m_szValue_set device: 108 service: urn:srs-com:serviceId:GCalIII variable: gc_Keyword was: now: #hooks: 0 upnp: 0 v:(nil)/NONE duplicate:1 <0x2b75d680>

But before going any further - this error needs to be resolved
LuaInterface::CallFunction_Timer-5 function GCalMain failed [string “local GCAL_VERSION = “V 0.6.2”
”]:101: /etc/cmh-ludl/GCal3/GCal3.sem: No such file or directory <0x2df5d680>

This looks identical to the problem that hansibal had.

Try uploading the GCal3.json file again and capturing the log. The initial credential setup creates the /etc/cmh-ludl/GCal3 directory and that does not exist (as well as the other files that are placed there during the credentials setup).

Thanks for pointing me in the right direction. I did figure out what the issue was. When i renamed the json file, I renamed it with the extension therefore getting a file named GCal3.json.json. Once i corrected that everything else worked great.

Thanks again its a great app.

Hi

Just loaded the updated LUA file. Good news is, gc_jsonevents now shows something:

[{‘eventEnd’:1409490000,‘eventStart’:1409439600,‘eventName’:‘VACATION’},{‘eventEnd’:1409521200,‘eventStart’:1409517600,‘eventName’:‘VACATION’}]

It trips (though it appeared to do that previously), however the PLEG is still not detecting it using the following as an input:

GcalVacation GCal3 has event with name: VACATION

Any ideas?

@Stuart: Could it be trailing spaces before/after the event name why PLEG does not pick it up?

Possible if there are spaces in the PLEG condition. I trim whitespace within GCal3 though.

I will take a closer look tomorrow as there are some issues on the vera side around this especially with notifications

Hello,

I have found my problem. In the file “Setting up a Google V3 API Service Account.pdf” page 3 line 2 the new name set is “CGal3.json” but the real name for the file is “GCal3.json”( C and G is invert).

thanks for this plugin.

babas

[quote=“babas, post:50, topic:182612”]Hello,

I have found my problem. In the file “Setting up a Google V3 API Service Account.pdf” page 3 line 2 the new name set is “CGal3.json” but the real name for the file is “GCal3.json”( C and G is invert).

thanks for this plugin.

babas[/quote]

Thanks ! I have updated the document

I don’t know if I’m on the good topic.
I use GCAL v1 for 2 years and it works well. The plugin is triggered and a scene will be started. For example : “Wake up” on 7:00 (to 7:01) on my Google calendar. The scene “Wake up” will start at 7:00 when “A Calendar Event is Active” with “Wake up” as keyword.
I installed the GCAL3 last week and I don’t understand the 5th point in the usage notes :

If set to false (recommended) then the scene can be specified to react to ?An event has specified name? this does not technically trigger the plugin ? but the event is ?active?.

The device GCAL3 is active at 7:01 and not at 7:00 and no scene will start. I changed the parameters to

gc_Keyword = Wake Up;Away gc_exactKeyword = true gc_ignoreKeyword = false gc_triggerNoKeyword = false gc_ignoreAllDayEvent = false
but the result is the same. How can I trigger a scene with a GCAL3 device ?
Sorry for my english and thanks for your answers.

[quote=“tyfoon, post:22, topic:182612”]Hi,

Moving from the original Gcal to Gcal3 and having some issues with PLEG & GCAL3 I don’t get.

I’m reading the gc_Trippedevent variable and using this value as a condition. See below for the PLEG logic.

What I don’t get is that all three conditions are true.

Please note that the calendar items do not overlap so only one should be true.

Device Properties
Name Device Name Device Variable Value Last Change Previous Change
GcalEvent GCal3 Sensor gc_TrippedEvent KIDSWEG 2014-08-28 06:27:21.102 2014-08-28 06:26:21.789

Conditions
TempKidsWeg No GcalEvent==“KIDSWEG” true 2014-08-26 20:03:18.346 2014-08-26 20:01:51.372
TempKidsWarm No GcalEvent==“KIDSWARM” true 2014-08-26 20:09:23.507 0
TempKidsSlapen No GcalEvent==“KIDSSLAPEN” true 2014-08-26 20:09:23.510 0[/quote]

I did some tests as follows:
3 events each of 5 minutes, one after the other; TEST1, TEST2 TEST3.

Attributes and results per the attached. Seems to be working as it should. I.e. the three events last being seen as true by PLEG each separated by 5 minutes. Is your setup working now ?

[quote=“lwinter, post:52, topic:182612”]I don’t know if I’m on the good topic.
I use GCAL v1 for 2 years and it works well. The plugin is triggered and a scene will be started. For example : “Wake up” on 7:00 (to 7:01) on my Google calendar. The scene “Wake up” will start at 7:00 when “A Calendar Event is Active” with “Wake up” as keyword.
I installed the GCAL3 last week and I don’t understand the 5th point in the usage notes :

If set to false (recommended) then the scene can be specified to react to ?An event has specified name? this does not technically trigger the plugin ? but the event is ?active?.

The device GCAL3 is active at 7:01 and not at 7:00 and no scene will start. I changed the parameters to

gc_Keyword = Wake Up;Away gc_exactKeyword = true gc_ignoreKeyword = false gc_triggerNoKeyword = false gc_ignoreAllDayEvent = false
but the result is the same. How can I trigger a scene with a GCAL3 device ?
Sorry for my english and thanks for your answers.[/quote]

The one minute delay is normal. I took a very conservative approach to provide a delay between the completion of one event and the start of the next so that other plugins could respond.

An event has specified name - this does not technically trigger the plugin - but the event is “active”
This differentiates between ‘triggering’ and being able to react to a keyword with “A Calendar Event is Active” but not triggering (from Vera’s perspective). Without this vera would trigger on every event (with no gc_Keyword)

So you can leave gc_Keyword blank and use “A Calendar Event is Active” to “Activate” based on event names you set in your scenes.

How are you setting your scenes ? Are the conditions set to be upper case ? All the keywords are changed to upper case within the plugin and the matching conditions therefore need to be in upper case as well.

Looking at the screenshot I also see last false in all three occasions was identical and is the time of the last condition.

If t3 event would still be true, t1 and t2 would also still be true.

In other words, if you would have made the screenshot within the 5min test3 was active I think you would have seen all three conditions being true.

[quote=“tyfoon, post:55, topic:182612”]Looking at the screenshot I also see last false in all three occasions was identical and is the time of the last condition.

If t3 event would still be true, t1 and t2 would also still be true.

In other words, if you would have made the screenshot within the 5min test3 was active I think you would have seen all three conditions being true.[/quote]

The reason all three have the same ‘last false’ time is that PLEG evaluates all three conditions whenever one of them changes state. So this is correct.

Each one became true - sequentially - at the time indicated in the ‘last true’ column.

I did a rerun (all I did was change the event times). The first (result2) is with TEST2 ‘active’ (5 minutes later than TEST1) but with TEST3 yet to occur (it has the old true / false times).
T1 was last true at 10:45:51 but is currently false
T2 became true at 10:52:15 and is true
T3 was last true at 9:31:07 but is currently false

Result 3 shows what it looks like during the 3 minutes when TEST 3 was active

This looks to be correct to me.

Cool! Just arrived home. Will re-test. PS do I need to update any files? I have the version available via the app store

I’d use the version here - although I did not change anything relating to events,

http://forum.micasaverde.com/index.php/topic,26692.msg190735.html#msg190735

An event has specified name - this does not technically trigger the plugin - but the event is "active" This differentiates between 'triggering' and being able to react to a keyword with "A Calendar Event is Active" but not triggering (from Vera's perspective). Without this vera would trigger on every event (with no gc_Keyword)

So you can leave gc_Keyword blank and use “A Calendar Event is Active” to “Activate” based on event names you set in your scenes.

How are you setting your scenes ? Are the conditions set to be upper case ? All the keywords are changed to upper case within the plugin and the matching conditions therefore need to be in upper case as well.


I leave gc_Keyword, gc_ignoreKeyword = false then true and nothing happen : the scene doesn’t start.
The next Event is TEST. My device is active but the scene will not be triggered.
Trigger of the scene :
A calendar event is active
Status ? Module is active
script of the scene :

local valeur = luup.variable_get("urn:srs-com:serviceId:GCalIII","gc_TrippedEvent",191) my_prowl("Value ?", valeur, "", 0) end
but when I execute the scene manually, it returns on Prowl Value ? TEST

Hi Stuart

In your PLEG tests, are you using the device property (as per Tyfoons example) or the “Event has specified name” input method? I have been able to get it to work using the device property mechanism, but not using Event has specified name. Could be I am using that wrong, or expecting it to work in a way that it is not designed? Would be good if you could explain how that should behave in PLEG?

ps - @Tyfoon, I noticed you are using == in your conditions, which is a numerical comparison operator. I think you have to use eq - the string operator. Something to try if it still doesnt work for you.

Cheers