GEA för HC2

Post Reply
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

Kanske har jag hittat ngt som inte går att göra med GEA?
Jag önskar få en notifiering givet följande;
* rörelse detekterad
* Ingen är hemma (dvs den globala variabel 'Away'=true)
Dock skickar nedanstående alltid en notifiering oavsett IF-satsen och dess evaluering

Code: Select all

local condition = {"If", {"Global", "Away", "true"}}
GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"Email", 4}, condition})
Undrar även om det är ngn skillnad på '1' resp. '-1' nedan?
GEA.add(id["LAUNDRY_MOTION"], 1, "LAUNDRY: Motion detected (#date# #time#)", {{"Email", 4}, condition})
GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"Email", 4}, condition})
Hittade svaret själv :)
When I open my door, my order is not executed immediately.
So that GEA can instantly act two elements are essential:

1) The ID must be declared in the header of the script 2) the length must be set to -1.

- [[
%% Properties
16 value
%% Globals
-]]
...
GEA.add (16, -1, "" {{"TurnOn"}} 17) - Switching on the light when the door opens
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Nedanstående funkar (du måste ha en global variabel som heter GEA_Tasks)

Code: Select all

local condition = GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"Email", 4}})
GEA.add({"Global","Away","false"}, -1 , "" , {{"StopTask",condition}, {"repeat"}})
GEA.add({"Global","Away","true"}, -1 , "" , {{"RestartTask",condition}, {"repeat"}})
andarv
Medlem
Posts: 82
Joined: 15 Feb 2014, 00:17
10

Borde det inte räcka med:

Code: Select all

GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"If",{{"Global", "Away", "true"}}}})
Det förutsätter ju som det skrevs tidigare att rörelsedeckaren finns med i huvudet.
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

andarv wrote:Borde det inte räcka med:

Code: Select all

GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"If",{{"Global", "Away", "true"}}}})
Det förutsätter ju som det skrevs tidigare att rörelsedeckaren finns med i huvudet.
Började med ovanstående oxå, men det visade sig att det som finns i 'push-notifierings-fältet' ALLTID skickas (oavsett vad som återfinns efteråt).
SirMaggot wrote:Nedanstående funkar (du måste ha en global variabel som heter GEA_Tasks)

Code: Select all

local condition = GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"Email", 4}})
GEA.add({"Global","Away","false"}, -1 , "" , {{"StopTask",condition}, {"repeat"}})
GEA.add({"Global","Away","true"}, -1 , "" , {{"RestartTask",condition}, {"repeat"}})
Tack för tipset, dessvärre får jag det inte att fungera...

Prövar med följande:

Code: Select all

	local condition_LAUNDRY_MOTION = GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)",  {{"Disarmed"}, {"Email", 4}})
    GEA.add({"Global", "Away", "true"}, -1 , "", {{"RestartTask", condition_LAUNDRY_MOTION}})
	GEA.add({"Global", "Away", "false"}, -1 , "", {{"StopTask", condition_LAUNDRY_MOTION}})
Notering 1: första raden definierar condition_LAUNDRY_MOTION, samt kör igång denna. Rad 2 & 3 exekveras endast om en ändring detekteras i variabeln 'Away'. Således är alltid condition_LAUNDRY_MOTION aktiv oavsett vad 'Away' är.
Kan man definiera att condition_LAUNDRY_MOTION inte skall vara aktiv från början?
Notering 2: förstår inte riktigt varför {"repeat"} behövs?
Notering 3: dessvärre verkar det skickas en notifiering/mail oavsett vad Away är?
debug.jpg
debug.jpg (62.71 KiB) Viewed 32203 times
20:52:27 sätts Away till 'false'
20:52:28 stoppas condition_LAUNDRY_MOTION
20:52:38 triggas rörelse och notifiering/mail skickas
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

Spännande att följande kod fungerar perfekt (men inte koden i föregående inlägg) :shock:

Code: Select all

	GEA.add({"Global", "Away", "true"}, -1, "", {{"turnOff", id["BEDROOM_PLUG_BED_ISLE"]}})
	GEA.add({"Global", "Away", "false"}, -1, "", {{"turnOn", id["BEDROOM_PLUG_BED_ISLE"]}})
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Vad är det som inte funkar i "min" kodsnutt?
Jag utgår att du har en global variabel som heter GEA_Tasks.
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

SirMaggot wrote:Vad är det som inte funkar i "min" kodsnutt?
Jag utgår att du har en global variabel som heter GEA_Tasks.
Se 2 inlägg bakåt (inklusive debug snippet).
Japp, har en global variabel som heter GEA_Tasks, kan se att den populeras med ngn slags sträng.
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Sorry, läste inte ordentligt. raderna funkar för mig, därför frågan.
"repeat" används för att repetera kommandot så länge det är uppfyllt, dvs "StopTask" behöver en "repeat" för att stoppa raden varje gång det är rörelse så länge "Away" är "true".
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

SirMaggot wrote:Sorry, läste inte ordentligt. raderna funkar för mig, därför frågan.
"repeat" används för att repetera kommandot så länge det är uppfyllt, dvs "StopTask" behöver en "repeat" för att stoppa raden varje gång det är rörelse så länge "Away" är "true".
OKi, skall göra ett nytt försök och utgå från 'din' kodsnutt så lång det är möjligt. Vill bara dubbelkolla att den verkligen fungerar för dig? Om jag inte visste bättre så verkar det finnas/skapas flera instanser av den specifika GEA-raden och att bara den ena stoppas (dvs en instans finns kvar och genererar notifieringsmeddelandet). Men om så var fallet skulle det logiskt sett dyka upp två notifieringsmeddelanden när RestartTask kördes igen :?
När man får kämpa för något, brukar man uppskatta resultatet desto mer!
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Det funkade perfekt för mig, kan testa igen under morgondagen.
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

SirMaggot wrote:Det funkade perfekt för mig, kan testa igen under morgondagen.
Har nu testat om och det känns dessvärre inte stabilt :(

Code: Select all

local condition = {{"Email", 4}}

local condition_HALL_DOOR = GEA.add(id["HALL_DOOR"], -1, "HALL: Door opened (#date# #time#)", condition)
GEA.add({"Global", "Away", "false"}, -1 , "", {{"StopTask", condition_HALL_DOOR}, {"repeat"}})
GEA.add({"Global", "Away", "true"}, -1 , "", {{"RestartTask", condition_HALL_DOOR}, {"repeat"}})

local condition_KITCHEN_MOTION = GEA.add(id["KITCHEN_MOTION"], -1, "KITCHEN: Motion detected (#date# #time#)", condition)
GEA.add({"Global", "Away", "false"}, -1 , "", {{"StopTask", condition_KITCHEN_MOTION}, {"repeat"}})
GEA.add({"Global", "Away", "true"}, -1 , "", {{"RestartTask", condition_KITCHEN_MOTION}, {"repeat"}})
Debug output;
[DEBUG] 21:01:27: GEA Version 5.34 : Running...
[DEBUG] 21:01:27: [ Away=false ] sendActions : doing actions (ID:7) [StopTask,6] [repeat]
[DEBUG] 21:01:27: [ Away=false ] sendActions : !ACTION! : StopTask 6 (ID:7) [StopTask,6] [repeat]
[DEBUG] 21:01:27: [ Away=false ] sendActions : doing actions (ID:10) [StopTask,9] [repeat]
[DEBUG] 21:01:27: [ Away=false ] sendActions : !ACTION! : StopTask 9 (ID:10) [StopTask,9] [repeat]

[DEBUG] 21:01:42: [ 297 | motion_297 ] sendActions : doing actions (ID:35) [Inverse] [Time,Sunset-90,Sunrise+70] [turnOff,274]
[DEBUG] 21:01:42: [ 297 | motion_297 ] sendActions : !ACTION! : turnOff (ID:35) [Inverse] [Time,Sunset-90,Sunrise+70] [turnOff,274]
[DEBUG] 21:01:42: [ 297 | motion_297 ] Done : task done and suspended (ID:35) [Inverse] [Time,Sunset-90,Sunrise+70] [turnOff,274]
[DEBUG] 21:01:49: [ 297 | motion_297 ] Add Property : task added for instant run (ID:34) [Time,Sunset-90,Sunrise+60] [If..] [RGB,274,0,0,0,20]
[DEBUG] 21:01:49: GEA Version 5.34 : Running...
[DEBUG] 21:01:51: [ 21 | motion_21 ] Add Property : task added for instant run (ID:14) [Time,23:00,Sunrise] [RGB,281,0,0,0,20]
[DEBUG] 21:01:51: GEA Version 5.34 : Running...
[DEBUG] 21:01:53: [ 40 | sensor_Door_40 ] Add Property : task added for instant run (ID:6) [Email,4]
[DEBUG] 21:01:54: GEA Version 5.34 : Running...
[DEBUG] 21:01:54: [ 40 | sensor_Door_40 ] Check : Restart (ID:6) [Email,4]
[DEBUG] 21:01:54: [ 40 | sensor_Door_40 ] sendActions : doing actions (ID:6) [Email,4]
[DEBUG] 21:01:54: [ 40 | sensor_Door_40 ] sendActions : !ACTION! : email to 4 (ID:6) [Email,4]
[DEBUG] 21:01:54: [ 40 | sensor_Door_40 ] sendActions : !ACTION! : sendPush HALL: Door opened (07/11/15 21:01:54) (ID:6) [Email,4]
[DEBUG] 21:01:57: [ 40 | sensor_Door_40 ] Add Property : task added for instant run (ID:6) [Email,4]
[DEBUG] 21:01:58: GEA Version 5.34 : Running...
[DEBUG] 21:02:00: [ 236 | motion_236 ] Add Property : task added for instant run (ID:9) [Email,4]
[DEBUG] 21:02:01: [ 236 | motion_236 ] Add Property : task added for instant run (ID:20) [Time,23:00,Sunrise] [turnOn,12]
[DEBUG] 21:02:01: GEA Version 5.34 : Running...
[DEBUG] 21:02:01: [ 236 | motion_236 ] Check : Restart (ID:9) [Email,4]
[DEBUG] 21:02:01: [ 236 | motion_236 ] sendActions : doing actions (ID:9) [Email,4]
[DEBUG] 21:02:01: [ 236 | motion_236 ] sendActions : !ACTION! : email to 4 (ID:9) [Email,4]
[DEBUG] 21:02:01: [ 236 | motion_236 ] sendActions : !ACTION! : sendPush KITCHEN: Motion detected (07/11/15 21:02:01) (ID:9) [Email,4]
[DEBUG] 21:02:30: [ 21 | motion_21 ] Add Property : task added for instant run (ID:14) [Time,23:00,Sunrise] [RGB,281,0,0,0,20]
[DEBUG] 21:02:30: GEA Version 5.34 : Running...
[DEBUG] 21:02:31: [ 236 | motion_236 ] Add Property : task added for instant run (ID:9) [Email,4]
[DEBUG] 21:02:31: [ 236 | motion_236 ] Add Property : task added for instant run (ID:20) [Time,23:00,Sunrise] [turnOn,12]
[DEBUG] 21:02:32: GEA Version 5.34 : Running...
[DEBUG] 21:02:36: [ 297 | motion_297 ] Add Property : task added for instant run (ID:34) [Time,Sunset-90,Sunrise+60] [If..] [RGB,274,0,0,0,20]
[DEBUG] 21:02:37: GEA Version 5.34 : Running...
[DEBUG] 21:03:04: [ 224 | motion_224 ] Add Property : task added for instant run (ID:51) [Time,Sunset<23:00,Sunrise] [turnOn,221]
[DEBUG] 21:03:04: GEA Version 5.34 : Running...
[DEBUG] 21:03:12: [ 297 | motion_297 ] sendActions : doing actions (ID:35) [Inverse] [Time,Sunset-90,Sunrise+70] [turnOff,274]
[DEBUG] 21:03:12: [ 297 | motion_297 ] sendActions : !ACTION! : turnOff (ID:35) [Inverse] [Time,Sunset-90,Sunrise+70] [turnOff,274]
[DEBUG] 21:03:12: [ 297 | motion_297 ] Done : task done and suspended (ID:35) [Inverse] [Time,Sunset-90,Sunrise+70] [turnOff,274]
[DEBUG] 21:03:33: [ Away=false ] Add Global : task added for instant run (ID:7) [StopTask,6] [repeat]
[DEBUG] 21:03:33: [ Away=true ] Add Global : task added for instant run (ID:8) [RestartTask,6] [repeat]
[DEBUG] 21:03:33: [ Away=false ] Add Global : task added for instant run (ID:10) [StopTask,9] [repeat]
[DEBUG] 21:03:33: [ Away=true ] Add Global : task added for instant run (ID:11) [RestartTask,9] [repeat]
[DEBUG] 21:03:33: GEA Version 5.34 : Running...
[DEBUG] 21:03:33: [ Away=true ] sendActions : doing actions (ID:8) [RestartTask,6] [repeat]
[DEBUG] 21:03:33: [ Away=true ] sendActions : !ACTION! : Restart 6 (ID:8) [RestartTask,6] [repeat]
[DEBUG] 21:03:33: [ Away=true ] sendActions : doing actions (ID:11) [RestartTask,9] [repeat]
[DEBUG] 21:03:33: [ Away=true ] sendActions : !ACTION! : Restart 9 (ID:11) [RestartTask,9] [repeat]
[DEBUG] 21:04:18: [ Away=false ] Add Global : task added for instant run (ID:7) [StopTask,6] [repeat]
[DEBUG] 21:04:18: [ Away=true ] Add Global : task added for instant run (ID:8) [RestartTask,6] [repeat]
[DEBUG] 21:04:18: [ Away=false ] Add Global : task added for instant run (ID:10) [StopTask,9] [repeat]
[DEBUG] 21:04:18: [ Away=true ] Add Global : task added for instant run (ID:11) [RestartTask,9] [repeat]
[DEBUG] 21:04:19: GEA Version 5.34 : Running...
[DEBUG] 21:04:19: [ Away=false ] sendActions : doing actions (ID:7) [StopTask,6] [repeat]
[DEBUG] 21:04:19: [ Away=false ] sendActions : !ACTION! : StopTask 6 (ID:7) [StopTask,6] [repeat]
[DEBUG] 21:04:19: [ Away=false ] sendActions : doing actions (ID:10) [StopTask,9] [repeat]
[DEBUG] 21:04:19: [ Away=false ] sendActions : !ACTION! : StopTask 9 (ID:10) [StopTask,9] [repeat]

[DEBUG] 21:05:11: [ 297 | motion_297 ] Add Property : task added for instant run (ID:34) [Time,Sunset-90,Sunrise+60] [If..] [RGB,274,0,0,0,20]
[DEBUG] 21:05:12: GEA Version 5.34 : Running...
[DEBUG] 21:05:13: [ 21 | motion_21 ] Add Property : task added for instant run (ID:14) [Time,23:00,Sunrise] [RGB,281,0,0,0,20]
[DEBUG] 21:05:14: GEA Version 5.34 : Running...
[DEBUG] 21:05:16: [ 236 | motion_236 ] Add Property : task added for instant run (ID:9) [Email,4]
[DEBUG] 21:05:16: [ 236 | motion_236 ] Add Property : task added for instant run (ID:20) [Time,23:00,Sunrise] [turnOn,12]
[DEBUG] 21:05:16: GEA Version 5.34 : Running...
[DEBUG] 21:05:16: [ 236 | motion_236 ] Check : Restart (ID:9) [Email,4]
[DEBUG] 21:05:16: [ 236 | motion_236 ] sendActions : doing actions (ID:9) [Email,4]
[DEBUG] 21:05:16: [ 236 | motion_236 ] sendActions : !ACTION! : email to 4 (ID:9) [Email,4]
[DEBUG] 21:05:16: [ 236 | motion_236 ] sendActions : !ACTION! : sendPush KITCHEN: Motion detected (07/11/15 21:05:16) (ID:9) [Email,4]
[DEBUG] 21:05:43: Duration : 1s new delay : 29s / running since 5m
[DEBUG] 21:05:46: [ 236 | motion_236 ] Add Property : task added for instant run (ID:9) [Email,4]
[DEBUG] 21:05:46: [ 236 | motion_236 ] Add Property : task added for instant run (ID:20) [Time,23:00,Sunrise] [turnOn,12]
Aktuella ID:n är 40 & 236. Grönmarkering visar att 'Away' detekteras korrekt och även skickar 'stopTask', dock hjälper inte det då 'task:n' startas om igen (se rödmarkering). Får erkänna att jag inte ser varför detta sker :?:
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Prova om du får bättre resultat med

Code: Select all

GEA.add({"Global", "Away", "false"}, 30 , "", {{"StopTask", condition_HALL_DOOR}, {"repeat"}})
GEA.add({"Global", "Away", "true"}, 30 , "", {{"RestartTask", condition_HALL_DOOR}, {"repeat"}})
Ha inte för bråttom när du testar bara
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

SirMaggot wrote:Prova om du får bättre resultat med

Code: Select all

GEA.add({"Global", "Away", "false"}, 30 , "", {{"StopTask", condition_HALL_DOOR}, {"repeat"}})
GEA.add({"Global", "Away", "true"}, 30 , "", {{"RestartTask", condition_HALL_DOOR}, {"repeat"}})
Ha inte för bråttom när du testar bara
Tack för hjälpen. Jo, det verkar fungera bättre. Dock känns det ändå inte helt bra eftersom GEA ligger och StopTask/RestartTask:ar varje 30 sekund.
newCpture.JPG
newCpture.JPG (87.23 KiB) Viewed 32091 times
Har man ~15 enheter (vilket då motsvarar ~15 'Tasks') så blir det en del hantering samt att debug-logg:n kommer bli oanvändbar.
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Ja, det är ett "problem", jag har försökt skriva om för att slippa få loggen full, men har inte lyckats än.
Prova att höja tiden till 300 sekunder kanske?
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Eller prova att ta bort "repeat".
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

SirMaggot wrote:Eller prova att ta bort "repeat".
Skall prova detta, borde gå att få till på ngt sätt.

Ett större 'problem' är att definitionen, dvs

Code: Select all

local condition_LAUNDRY_MOTION = GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", condition)
startar det sprcifika task:t.
När GEA-scriptet startar är det ösnkvärt att alla task hamnar enligt variabeln 'Away'.
Dvs är man hemma (Away=false) skall dessa task inte startas respektive är man borta (Away=true) skall de startas. Det går att lägga till kod längre ned i GEA-scriptet, men hur får man till det, då allting läggs upp i ngn sorts state-maskin?
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

Kör nu ett extremt nedskalat GEA-script enligt nedan (i ett försök att komma vidare);

Code: Select all

--[[
%% autostart
%% properties
224 value
%% globals
Away
--]]

function yourcode()
    GEA.isVersionFour = true
    GEA.language = "EN";
    GEA.checkEvery = 30
	GEA.portables = {187}
    GEA.debug = true
    local id = { LAUNDRY_MOTION = 224 }
	local condition_LAUNDRY_MOTION = GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"Email", 4}})
	GEA.add({"Global", "Away", "false"}, -1, "", {{"StopTask", condition_LAUNDRY_MOTION}, {"Repeat"}})
    GEA.add({"Global", "Away", "true"}, -1, "", {{"RestartTask", condition_LAUNDRY_MOTION}, {"Repeat"}})
end
Utökad DEBUG ger följande;
[DEBUG] 17:42:24: GEA Version 5.34 : Running...
[DEBUG] 17:42:24: Run : nothing to do
[DEBUG] 17:42:46: [ 224 | motion_224 ] Add Property : task added for instant run (ID:1) [Email,4]
[DEBUG] 17:42:46: GEA Version 5.34 : Running...
[DEBUG] 17:42:46: [ 224 | motion_224 ] Run : checking (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] Check : starting checking (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] Check : checking dates (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] isActivate : activation checking (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] isActivate : type : com.fibaro.FGMS001 (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] isActivate : activate (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] Check : running since30/-1 (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] sendActions : doing actions (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] sendActions : !ACTION! : email to 4 (ID:1) [Email,4]
[DEBUG] 17:42:46: [ 224 | motion_224 ] sendActions : !ACTION! : sendPush LAUNDRY: Motion detected (07/12/15 17:42:46) (ID:1) [Email,4]
[DEBUG] 17:43:17: [ 224 | motion_224 ] Add Property : task added for instant run (ID:1) [Email,4]
[DEBUG] 17:43:17: GEA Version 5.34 : Running...
[DEBUG] 17:43:17: [ 224 | motion_224 ] Run : checking (ID:1) [Email,4]
[DEBUG] 17:43:17: [ 224 | motion_224 ] Check : starting checking (ID:1) [Email,4]
[DEBUG] 17:43:17: [ 224 | motion_224 ] Check : checking dates (ID:1) [Email,4]
[DEBUG] 17:43:17: [ 224 | motion_224 ] isActivate : activation checking (ID:1) [Email,4]
[DEBUG] 17:43:17: [ 224 | motion_224 ] isActivate : type : com.fibaro.FGMS001 (ID:1) [Email,4]
[DEBUG] 17:43:17: [ 224 | motion_224 ] !CANCEL! isActivate : de-activated (ID:1) [Email,4]
[DEBUG] 17:44:50: [ Away=false ] Add Global : task added for instant run (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] Add Global : task added for instant run (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: GEA Version 5.34 : Running...
[DEBUG] 17:44:50: [ Away=false ] Run : checking (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=false ] Check : starting checking (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=false ] Check : checking dates (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=false ] isActivate : activation checking (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=false ] isActivate : type : global variable (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=false ] !CANCEL! isActivate : de-activated (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] Run : checking (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] Check : starting checking (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] Check : checking dates (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] isActivate : activation checking (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] isActivate : type : global variable (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] isActivate : activate (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] Check : running since30/-1 (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] sendActions : doing actions (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:44:50: [ Away=true ] sendActions : !ACTION! : Restart 1 (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] Add Global : task added for instant run (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] Add Global : task added for instant run (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: GEA Version 5.34 : Running...
[DEBUG] 17:45:18: [ Away=false ] Run : checking (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] Check : starting checking (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] Check : checking dates (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] isActivate : activation checking (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] isActivate : type : global variable (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] isActivate : activate (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] Check : running since30/-1 (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] sendActions : doing actions (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=false ] sendActions : !ACTION! : StopTask 1 (ID:2) [StopTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] Run : checking (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] Check : starting checking (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] Check : checking dates (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] isActivate : activation checking (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] isActivate : type : global variable (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:18: [ Away=true ] !CANCEL! isActivate : de-activated (ID:3) [RestartTask,1] [Repeat]
[DEBUG] 17:45:54: [ 224 | motion_224 ] Add Property : task added for instant run (ID:1) [Email,4]
[DEBUG] 17:45:54: GEA Version 5.34 : Running...
[DEBUG] 17:45:54: [ 224 | motion_224 ] Run : checking (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] Check : starting checking (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] Check : Restart (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] Check : checking dates (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] isActivate : activation checking (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] isActivate : type : com.fibaro.FGMS001 (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] isActivate : activate (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] Check : running since30/-1 (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] sendActions : doing actions (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] sendActions : !ACTION! : email to 4 (ID:1) [Email,4]
[DEBUG] 17:45:54: [ 224 | motion_224 ] sendActions : !ACTION! : sendPush LAUNDRY: Motion detected (07/12/15 17:45:54) (ID:1) [Email,4]
[DEBUG] 17:46:24: [ 224 | motion_224 ] Add Property : task added for instant run (ID:1) [Email,4]
[DEBUG] 17:46:24: GEA Version 5.34 : Running...
[DEBUG] 17:46:24: [ 224 | motion_224 ] Run : checking (ID:1) [Email,4]
[DEBUG] 17:46:24: [ 224 | motion_224 ] Check : starting checking (ID:1) [Email,4]
[DEBUG] 17:46:24: [ 224 | motion_224 ] Check : checking dates (ID:1) [Email,4]
[DEBUG] 17:46:24: [ 224 | motion_224 ] isActivate : activation checking (ID:1) [Email,4]
[DEBUG] 17:46:24: [ 224 | motion_224 ] isActivate : type : com.fibaro.FGMS001 (ID:1) [Email,4]
[DEBUG] 17:46:24: [ 224 | motion_224 ] !CANCEL! isActivate : de-activated (ID:1) [Email,4]
Endast tre händelser finns;
* Variabeln 'Away' sätts till 'true'
* Variabeln 'Away' sätts till 'false'
* Rörelse detekteras
Som jag kan se det är det ngt som inte riktigt stämmer här?
Ex.vis sätts 'Away' till 'false vid grönmarkering ovan, vilket borde vara rätt.
När rörelse detekteras (rödmarkering) upptäcks att task:t inte körs och aktivering sker :evil:
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

Dags att summera dagen :)
"StopTask"/"RestartTask" ger inte likadant beteende som "stoptask"/"restarttask" då det finns en Case sensitive koll.
Sciptet ser nu ut som följer;

Code: Select all

	local cNotification = {"Email", 4}
	-- Smoke -------------------------------------------
	GEA.add(id["CINEMA_SMOKE"], -1, "CINEMA: Smoke detected (#date# #time#)", {cNotification})
	-- Flood -------------------------------------------
	GEA.add(id["KITCHEN_FLOOD_DISH"], -1, "KITCHEN: Flood at dishwasher detected (#date# #time#)", {cNotification})
	GEA.add(id["WC_FLOOD_SINK"], -1, "WC: Flood at sink detected (#date# #time#)", {cNotification})
	GEA.add(id["LAUNDRY_FLOOD_SINK"], -1, "LAUNDRY: Flood at sink detected (#date# #time#)", {cNotification})
	GEA.add(id["SERVER_FLOOD_FLOOR"], -1, "SERVER: Flood at floor detected (#date# #time#)", {cNotification})
	-- Doors -------------------------------------------
    local condition_HALL_DOOR = GEA.add(id["HALL_DOOR"], -1, "HALL: Door opened (#date# #time#)", {cNotification})
    local condition_FIRE_DOOR = GEA.add(id["FIRE_DOOR"], -1, "FIRE: Door opened (#date# #time#)", {cNotification})
    local condition_GARAGE_DOOR = GEA.add(id["GARAGE_DOOR"], -1, "GARAGE: Door opened (#date# #time#)", {cNotification})
    local condition_WINTERGARDEN_DOOR = GEA.add(id["WINTERGARDEN_DOOR"], -1, "WINTERGARDEN: Door opened (#date# #time#)", {cNotification})
    local condition_WINTERGARDEN_SLIDER = GEA.add(id["WINTERGARDEN_SLIDER"], -1, "WINTERGARDEN: Slider opened (#date# #time#)", {cNotification})
	-- Motion ------------------------------------------	
	local condition_HALL_MOTION = GEA.add(id["HALL_MOTION"], -1, "HALL: Motion detected (#date# #time#)", {cNotification})
	local condition_KITCHEN_MOTION = GEA.add(id["KITCHEN_MOTION"], -1, "KITCHEN: Motion detected (#date# #time#)", {cNotification})
	local condition_WC_MOTION = GEA.add(id["WC_MOTION"], -1, "WC: Motion detected (#date# #time#)", {cNotification})
	local condition_STAIRS_MOTION = GEA.add(id["STAIRS_MOTION"], -1, "STAIRS: Motion detected (#date# #time#)", {cNotification})
	local condition_CINEMA_MOTION = GEA.add(id["CINEMA_MOTION"], -1, "CINEMA: Motion detected (#date# #time#)", {cNotification})
	local condition_WINTERGARDEN_MOTION = GEA.add(id["WINTERGARDEN_MOTION"], -1, "WINTERGARDEN: Motion detected (#date# #time#)", {cNotification})
	local condition_LAUNDRY_MOTION = GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {cNotification})
	-- Manage Doors/Motion
    GEA.add({"Global", "Away", "false"}, -1 , "", {{"stoptask", condition_HALL_DOOR}, {"stoptask", condition_FIRE_DOOR}, {"stoptask", condition_GARAGE_DOOR}, {"stoptask", condition_WINTERGARDEN_DOOR}, {"stoptask", condition_WINTERGARDEN_SLIDER}, {"stoptask", condition_HALL_MOTION}, {"stoptask", condition_KITCHEN_MOTION}, {"stoptask", condition_WC_MOTION}, {"stoptask", condition_STAIRS_MOTION}, {"stoptask", condition_CINEMA_MOTION}, {"stoptask", condition_WINTERGARDEN_MOTION}, {"stoptask", condition_LAUNDRY_MOTION}})
    GEA.add({"Global", "Away", "true"}, -1 , "", {{"restarttask", condition_HALL_DOOR}, {"restarttask", condition_FIRE_DOOR}, {"restarttask", condition_GARAGE_DOOR}, {"restarttask", condition_WINTERGARDEN_DOOR}, {"restarttask", condition_WINTERGARDEN_SLIDER}, {"restarttask", condition_HALL_MOTION}, {"restarttask", condition_KITCHEN_MOTION}, {"restarttask", condition_WC_MOTION}, {"restarttask", condition_STAIRS_MOTION}, {"restarttask", condition_CINEMA_MOTION}, {"restarttask", condition_WINTERGARDEN_MOTION}, {"restarttask", condition_LAUNDRY_MOTION}})
Fortfarande lite svajjigt men skam den som ger sig. Två delar kvarstår;
* Inte autostarta vid defintions-tillfället (dvs local condition_HALL_MOTION = GEA.add(id["HALL_MOTION"], -1, "HALL: Motion detected (#date# #time#)", {cNotification}))
* Fortfarande stannar inte alla tasks med ovanstående kod (utan endast en delmängd)
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
arcticblue
Medlem
Posts: 43
Joined: 07 Mar 2014, 19:12
10

andarv wrote:Borde det inte räcka med:

Code: Select all

GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {{"If",{{"Global", "Away", "true"}}}})
Efter dagar av testande står man här både glad och skamsen :oops:
Glad för att äntligen fått det att fungera, skamsen för att lösningen föreslogs långt tidigare... ovanstående fungerar alldeles utmärkt, särskilt om man har alla {} som behövs. Det är bevisligen en viss skillnad på nedanstående;

Code: Select all

{"If", {"Global", "Away", "true"}}
vs

Code: Select all

{"If", {{"Global", "Away", "true"}}}
Nåja, med ödmjukhet och vilja att lära så kommer man åtminstone framåt, tack till alla som stöttat och hjälpt till!

För att knyta ihop säcken efter alla turer blev scriptet som följer;

Code: Select all

	-- Monitoring section
	local ifAway = {"If", {{"Global", "Away", "true"}}}
	local ifHome = {"If", {{"Global", "Away", "false"}}}
	local sendNotification = {"Portable", 187}
	local sendEmail = {"Email", 4}
	-- Smoke -------------------------------------------
	GEA.add(id["CINEMA_SMOKE"], -1, "CINEMA: Smoke detected (#date# #time#)", {sendEmail})
	-- Flood -------------------------------------------
	GEA.add(id["KITCHEN_FLOOD_DISH"], -1, "KITCHEN: Flood at dishwasher detected (#date# #time#)", {sendEmail})
	GEA.add(id["WC_FLOOD_SINK"], -1, "WC: Flood at sink detected (#date# #time#)", {sendEmail})
	GEA.add(id["LAUNDRY_FLOOD_SINK"], -1, "LAUNDRY: Flood at sink detected (#date# #time#)", {sendEmail})
	GEA.add(id["SERVER_FLOOD_FLOOR"], -1, "SERVER: Flood at floor detected (#date# #time#)", {sendEmail})
	-- Doors -------------------------------------------
    GEA.add(id["HALL_DOOR"], -1, "HALL: Door opened (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["FIRE_DOOR"], -1, "FIRE: Door opened (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["GARAGE_DOOR"], -1, "GARAGE: Door opened (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["WINTERGARDEN_DOOR"], -1, "WINTERGARDEN: Door opened (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["WINTERGARDEN_SLIDER"], -1, "WINTERGARDEN: Slider opened (#date# #time#)", {ifAway, sendEmail})
	-- Motion ------------------------------------------
    GEA.add(id["HALL_MOTION"], -1, "HALL: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["KITCHEN_MOTION"], -1, "KITCHEN: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["FIRE_MOTION"], -1, "FIRE: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["WC_MOTION"], -1, "WC: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["STAIRS_MOTION"], -1, "STAIRS: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["CINEMA_MOTION"], -1, "CINEMA: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["WINTERGARDEN_MOTION"], -1, "WINTERGARDEN: Motion detected (#date# #time#)", {ifAway, sendEmail})
    GEA.add(id["LAUNDRY_MOTION"], -1, "LAUNDRY: Motion detected (#date# #time#)", {ifAway, sendEmail})
Fibaro HC2 - v4.140
>100 devices + GEA v5.42
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
8
Location: Torslanda

Då min HC2 fungerat en längre tid nu efter senaste firmware, så tänkte jag gå vidare med min GEA.


Men känner mig nu lite osäker på vad jag skall köra i GEA o vad jag skall köra utanför.

Jag har ett par tankar.
1. Sätta en Sonos variabel vid första rörelse i köket på morgonen som sker mellan klockan 6-9:00.
Detta kan man lätta göra i GEA, men jag vill även lägga till att ifall ytterdörr öppnas/stängs och ingen ny rörelse sker i köket inom 10 min, så skall den sätta variabeln vid nästa rörelse med om klockan fortfarande är mellan 06-09:00..
Gissar på att man får använda sig utav några globala variabler (eller kanske lokala).

Vad är det den skall göra? Den skall skicka väderprognos till Sonos i köket, när första personen har vaknat och gått ner.
Lämnar då personen huset, (dörrsensorn) men inte är kvar i huset (ingen rörelse i kök) så får vi räkna med att ifall det blir en rörelse igen efter ca 10min eller senare så är det nästa person som har vaknat, då skall även denna få höra väderprognos. Men om prognosen spelats och ingen gått ut, så vill vi inte höra den varje gång som det är rörelse i köket.

2. Handlar om larm. Där har jag många önskemål.... Lite bygger på liknande logik som kommer behövas för att lösa punk1.
Samt ping status (är telefoner på nätet osv)

Är det någon som känner för att grotta ner sig så är det varmt välkommet.. Bor ni i Götet så är det än bättre, då kan jag kanske bjuda er på något flak öl eller så. =)

jag har liksom på de 5veckor som allt strula, tappat gnistan.... Nu letar jag efter den igen så jag kan börja grotta ner mig i detta igen.
För nu har jag faktiskt gått o köpt fler enheter... Tro det eller ej.


PS.. någon som behöver pluggar så kanske jag har några över... =)

Samt, är det någon som är smart nog att fundera ut vart man skall sätta sina rörelse deckare, för att få ut så mycket funktionalitet utav dem som möjligt..

Med det menar jag..

att sätta en deckare i ett rum, det kan väl vem som... Men den som hållit på med detta länge, har kanske funderat ut att deckarna skall sitta i hallen riktade ut till de olika rummen istället för att vara i rummen... (inte vet jag, men jag bara funderar på att jag kanske inte har satt mina optimalt, allt beror la på vad man vill skall hända. )
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
Post Reply