Page 1 of 1

Start script parallel vanuit ander script

Posted: Fri Oct 25, 2013 8:19 am
by kriz83
Hoi,

Ik ben een AVActivity script aan het maken, waarmee ik mijn AV apparatuur naar de juiste inputs wil schakelen als ik bijvoorbeeld een film op mn STB wil zien.

Alles werkt wel, maar ik zou de functionaliteit (TV/STB/Receiver) graag naar aparte scripts verhuizen, en die dan vanuit 'AVActivity.vb' aanroepen.
Maar, de TV heeft bijv. een power on delay van 7 seconden, de STB 9 etc voordat ze een nieuw commando kunnen aanvaarden (bijv ga naar input HDMI 1)...

Daarom zou ik de afgetrapte scripts (TV/STB/Receiver) in parallel willen draaien. Is dat mogelijk, en hoe ?

Gr,
Kriz83

Re: Start script parallel vanuit ander script

Posted: Fri Oct 25, 2013 9:05 am
by AshaiRey
Hoi Kriz,

Dat gaat niet. De scripts worden sequencieel verwerkt. Instructie voor instructie dus. Maar je kan er wel omheen werken zodat je voor je gevoel wel parallel werkt. Neem je hoofdscript en doe daarin alle handelingen. Zet de handelingen die je parallel wilt laten lopen in ieder zijn eigen losse script. Als je nu in je hoofdscript op een punt aankomt dat je het parallelle script wilt starten (met die 9 sec vertraging) maak je een nieuwe event aan dat een vertraging heeft van 9 sec. en dat die dan het parallelle script start. Laat het event zichzelf verwijderen naar gelopen te hebben.
De online webhelp heeft een voorbeeld hoe je nieuwe events script.

Ik hoop dat dit een beetje duidelijk is
Groet,
Bram

Re: Start script parallel vanuit ander script

Posted: Fri Oct 25, 2013 9:26 am
by kriz83
Hoi AshaiRey,

Bedankt voor je reply !

Dat is inderdaad een mogelijkheid, was er zelf nog niet opgekomen ...

Dus ik maak voor TV/STB/receiver nieuwe events aan in het script, en voer dan deze scripts uit met hs.TriggerEvent.
De scripts worden vervolgens wel parallel uitgevoerd (ik bedoel, TriggerEvent wacht niet totdat het event is gecomplete) ?

Gr,
Kris

Re: Start script parallel vanuit ander script

Posted: Sat Oct 26, 2013 9:04 am
by AshaiRey
Klopt bijna.
Het event dat je via een script aanmaakt kan je als een delayed event aanmaken zodat je het ook niet hoeft te triggeren :-)
Ps, je kan aan het event wel mee geven dat het moet wachten tot het klaar is maar dat wil je hier niet.

Zoek hier maar naar eventclass
http://www.homeseer.com/support/homesee ... meseer.htm

Deze maakt je leven ook makkelijker
http://www.homeseer.com/support/homesee ... action.htm

Hier heb je een voorbeeld dat je wat op weg kan helpen.
Deze functie maakt een kookwekker event aan voor mij
Samen met die 2 links hierboven kom je er wel uit.

Code: Select all


Sub SetEvent(ByVal Name As String, ByVal TriggerTime As Integer, ByVal strTriggerEvent As String)
        Dim oldEvent
        Dim newEvent
        Dim ev
        Dim eventTime
        oldEvent = hs.GetEventRefByName(Name )
        If oldEvent < 0 Then 'event does not exist, create a new one
            eventTime = DateAdd("s", TriggerTime, Now)
            newEvent = hs.NewEventGetRef(Name)
            ev = hs.GetEventByRef(newEvent)
            ev.group = "Agenda"
            ev.ev_abs_time = 0 'Time
            ev.ev_time = eventTime
            ev.misc = &H10 '&h10 is delete after trigger &h20 1 is disabled

            hs.AddAction(newEvent, 2, strTriggerEvent )
            
            hs.WriteLog("SetTimerEvent", "Created timer for " & Name & " with a triggertime of " & TriggerTime & " seconds.")
        Else 'event does exist, Extent the time
            ev = hs.GetEventByRef(oldEvent)

            'event does exist, add nn seconds to it
            eventTime = DateAdd("s", TriggerTime, ev.ev_time)

            'eventTime = DateAdd("s", TriggerTime, Now) 'reset the timer
            ev.ev_time = eventTime
            hs.WriteLog("SetTimerEvent", "Adding " & TriggerTime & " seconds to delayed off event for " & Name )
        End If
End Sub

Re: Start script parallel vanuit ander script

Posted: Mon Oct 28, 2013 12:07 pm
by kriz83
Bedankt !