Moskus Skrevet 15. oktober 2019 Skrevet 15. oktober 2019 NÄ kan du endelig fÄ endre trigger-tiden til dine eventer med noen enkle tastetrykk! Det fungerer fint pÄ websiden, HStouch og HS Mobile.   Vi har alle eventer som gÄr av pÄ et visst tidspunkt. F.eks. vekkerklokker. Av og til vil man enkelt kunne endre tiden pÄ vekkerklokken uten Ä mÄtte navigere til Event-siden og finne selve eventet. Kanskje vil man at ungene skal kunne gjÞre det, etc.  Med dette scriptet fÄr du en device som dette: ... som lar deg endre klokkeslettet pÄ et event.  Her er scriptet (vÊr nÞye med filnavnet, det mÄ vÊre riktig): TimeDevice.vb Public Sub Main(ByVal input As Object) 'Moskus 2019 '----------------------------- 'The Main sub will update 'DeviceRef,NewTime 'Example: 3245,13:00 -> will set device 3245 to 13:00 and the event to trigger at 13:00 '----------------------------- Dim deviceRef As Integer = input.ToString.Split(",")(0) Dim timeString As String = input.ToString.Split(",")(1) Dim _time As TimeSpan = TimeSpan.Parse(timeString) UpdateDeviceAndEvent(deviceRef, _time) End Sub Public Sub CreateDevice(byval input as Object) Dim deviceRef As Integer = hs.NewDeviceRef("Klokkekontroll") Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(deviceRef) dev.Location(hs) = "Klokke" dev.Location2(hs) = "Klokke" dev.Device_Type_String(hs) = "Ditt event her" hs.SaveEventsDevices() AddDeviceButtons(deviceRef) Dim _time As New TimeSpan hs.SetDeviceString(deviceRef, _time.ToString("hh\:mm"), False) hs.SetDeviceValueByRef(deviceRef, _time.TotalMinutes, True) End Sub Public Sub ButtonPress(ByVal input As Object) Dim deviceRef As Integer = input(0) Dim parameter As String = input(1) Dim deviceValue As Integer = hs.DeviceValue(deviceRef) Dim minutesToAdd As Integer = Integer.Parse(parameter) Dim newValue As Integer = deviceValue + minutesToAdd If newValue < 0 Then newValue = 24 * 60 + minutesToAdd If newValue > 24 * 60 Then newValue = minutesToAdd Dim _time As TimeSpan = New TimeSpan(0, newValue, 0) UpdateDeviceAndEvent(deviceRef, _time) End Sub Public Sub UpdateDeviceAndEvent(ByVal deviceRef As Integer, ByVal _time As TimeSpan) hs.SetDeviceString(deviceRef, _time.ToString("hh\:mm"), False) hs.SetDeviceValueByRef(deviceRef, _time.TotalMinutes, True) Dim eventName As String = DirectCast(hs.GetDeviceByRef(deviceRef), Scheduler.Classes.DeviceClass).Device_Type_String(hs) Dim eventRef As String = hs.GetEventRefByName(eventName) hs.EventSetTimeTrigger(eventRef, New Date(1, 1, 1).Add(_time)) hs.SaveEventsDevices() End Sub Public Sub AddDeviceButtons(ByVal device_ref As String) Dim devID As Integer = CInt(device_ref) hs.DeviceScriptButton_DeleteAll(devID) hs.DeviceProperty_dvMISC(device_ref, HomeSeerAPI.Enums.eDeviceProperty.MISC_Set, HomeSeerAPI.Enums.dvMISC.SHOW_VALUES) Try hs.WriteLog("TimeDevice.vb", "Added button 1: " & hs.DeviceScriptButton_AddButton(devID, "+5 min", 5, "TimeDevice.vb", "ButtonPress", "+5", 1, 1, 1)) hs.WriteLog("TimeDevice.vb", "Added button 2: " & hs.DeviceScriptButton_AddButton(devID, "-5 min", -5, "TimeDevice.vb", "ButtonPress", "-5", 1, 2, 1)) hs.WriteLog("TimeDevice.vb", "Added button 3: " & hs.DeviceScriptButton_AddButton(devID, "+15 min", 15, "TimeDevice.vb", "ButtonPress", "+15", 1, 3, 1)) hs.WriteLog("TimeDevice.vb", "Added button 4: " & hs.DeviceScriptButton_AddButton(devID, "-15 min", -15, "TimeDevice.vb", "ButtonPress", "-15", 1, 4, 1)) hs.WriteLog("TimeDevice.vb", "Added button 5: " & hs.DeviceScriptButton_AddButton(devID, "+1 time", 60, "TimeDevice.vb", "ButtonPress", "+60", 2, 1, 1)) hs.WriteLog("TimeDevice.vb", "Added button 6: " & hs.DeviceScriptButton_AddButton(devID, "-1 time", -60, "TimeDevice.vb", "ButtonPress", "-60", 2, 2, 1)) Catch ex As Exception hs.WriteLog("TimeDevice.vb", "Error adding buttons: " & ex.Message) End Try End Sub  Du trenger fÞrst Ä lage et event som trigger scriptet med rutinen "CreateDevice", slik:  GÄ nÄ til Device Manager-siden. Velg at "Klokke" skal vises, bÄde for "Floor" og "Room". MEN: Du mÄ ogsÄ huske pÄ Ä velge ALLE device typer:  Da fÄr du opp den nye devicen. Denne kan du navngi og gi plassering akkurat som det passer deg.  SÄ skal vi bestemme hvilket event som skal trigges. Navnet sette vi som en "Device Type String" under Advanced-taben. Merk at hele navnet skal brukes, og at det er "Gruppe" + mellomrom + "Event navn". La oss si at jeg vil trigge et test-event som jeg har navngitt "Et timer-event", som her:  Da er hele evnetnavnet mitt: "Test Et timer-event", og det setter vi inn her: ... og trykker "Done". NB! NÄr vi nÄ gÄr tilbake til Device Manager, mÄ vi huske pÄ Ä vise alle Device Types igjen, fordi den har vi nettopp endret til noe nytt som ikke var valgt fÞr.  SÄ er det bare Ä stille klokka.  Endrer vi tiden pÄ devicen til dette... ... vil eventet ogsÄ endres:  Det gjÞr ingenting om eventet ditt har andre conditions, de vil ikke bli pÄvirket av dette.     Scriptet har ogsÄ en rutine for Ä endre klokkeslettet med eventer, f.eks. hvis man skal stille tilbake flere vekkerklokker etter en ferie. Da kaller man bare rutinen/metoden "Main" (eller lar vÊre Ä spesifisere rutine), og bruker deviceRef og klokkeslett som parameter. Dette:  ... gir dette: ... og selvfÞlgelig dette:  2 4 Siter
bjornepappa Skrevet 15. oktober 2019 Skrevet 15. oktober 2019 Supert! Er det sjans for Ä lage tilsvarande for Ä velge ein dato? Siter
Moskus Skrevet 15. oktober 2019 Forfatter Skrevet 15. oktober 2019 45 minutter siden, bjornepappa skrev: Er det sjans for Ä lage tilsvarande for Ä velge ein dato? Hvordan tenker du at det skal fungere? Hva skal lÞses? Siter
bjornepappa Skrevet 15. oktober 2019 Skrevet 15. oktober 2019 33 minutter siden, Moskus skrev: Hvordan tenker du at det skal fungere? Hva skal lÞses? NÄr vi er pÄ ferie pleier eg Ä stille inn event for nÄr varme skal settast til "heime auto" igjen, slik at hus og vatn er tilbake pÄ normal temperatur til vi er heime. Dette har eg pleid Ä aktivere frÄ midnatt den dagen vi forventar Ä komme heim, og det ville blitt langt enklare Ä endre ein device samanlikna med Ä endre eventet. Siter
Moskus Skrevet 16. oktober 2019 Forfatter Skrevet 16. oktober 2019 11 timer siden, bjornepappa skrev: NÄr vi er pÄ ferie pleier eg Ä stille inn event for nÄr varme skal settast til "heime auto" igjen, slik at hus og vatn er tilbake pÄ normal temperatur til vi er heime. Dette har eg pleid Ä aktivere frÄ midnatt den dagen vi forventar Ä komme heim, og det ville blitt langt enklare Ä endre ein device samanlikna med Ä endre eventet. Ja, men det sier ikke sÄ mye likevel. Skal du ha noe tilsvarende som setter selve dagen det gjÞres pÄ? Jeg tror ikke det er sÄ lett Ä scripte de nÞdvendige endringene i det eventet...  Men det finnes andre geniale lÞsninger for sÄnne problemer. Legg det i kalenderen, og installer GCalSeer.  Vi var pÄ hyttetur (kun en overnatting) forrige helg:  2 Siter
bjornepappa Skrevet 16. oktober 2019 Skrevet 16. oktober 2019 1 time siden, Moskus skrev: Ja, men det sier ikke sÄ mye likevel. Skal du ha noe tilsvarende som setter selve dagen det gjÞres pÄ? Jeg tror ikke det er sÄ lett Ä scripte de nÞdvendige endringene i det eventet...  Men det finnes andre geniale lÞsninger for sÄnne problemer. Legg det i kalenderen, og installer GCalSeer.  Vi var pÄ hyttetur (kun en overnatting) forrige helg:   Takk! Eg har jo nettopp lagt inn GCalSeer for Ä fÄ HS til Ä holde styr pÄ turnusarbeidet mitt, sÄ det bÞr jo funke fint. Siter
ZoRaC Skrevet 16. oktober 2019 Skrevet 16. oktober 2019 3 timer siden, Moskus skrev: Vi var pÄ hyttetur (kun en overnatting) forrige helg:  Jeg legger bare inn selve ferien jeg. Siter
bjornepappa Skrevet 16. oktober 2019 Skrevet 16. oktober 2019 @Moskus, beklagar om det er noko eg totalt har oversett. Men innbiller meg at eg har fulgt oppskrifta for Ä lage devicen, men det dukkar ikkje opp nokon device - etasje og rom "Klokke" blir ikkje generert... Ganske sikker pÄ at script-eventet er satt opp korrekt og eg har prÞvd mange ganger Ä trigge det manuelt.  Siter
Moskus Skrevet 16. oktober 2019 Forfatter Skrevet 16. oktober 2019 ... og du har sett hva loggen har Ă„ si? Â Â 43 minutter siden, bjornepappa skrev: Men innbiller meg at eg har fulgt oppskrifta for Ă„ lage devicen, men det dukkar ikkje opp nokon device - etasje og rom "Klokke" blir ikkje generert... ... og du har husket Ă„ vise alle device types? Siter
bjornepappa Skrevet 16. oktober 2019 Skrevet 16. oktober 2019 (endret) Hmmm. Burde eg ha oppretta ein ny device og lagt inn device ref i Parameters-boksen? Sitat Oct-16 20:03:57  Error 3 Running script C:\Program Files (x86)\HomeSeer HS3\scripts\TimeDevice.vb :Antall parametere stemmer ikke overens.->Does entry point CreateDevice exist in script? ved System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ved Scheduler.clsRunVBNetScript.ExecuteScript() Oct-16 20:03:49  Event Running script in background: C:/Program Files (x86)/HomeSeer HS3/scripts/TimeDevice.vb("CreateDevice")  Endret 16. oktober 2019 av bjornepappa Siter
Moskus Skrevet 16. oktober 2019 Forfatter Skrevet 16. oktober 2019 Oi, pokker.  Denne linja: Public Sub CreateDevice() skal vÊre: Public Sub CreateDevice(byval input as Object)  Oppdaterer fÞrstepost. Siter
bjornepappa Skrevet 16. oktober 2019 Skrevet 16. oktober 2019 3 minutter siden, Moskus skrev: Oi, pokker.  Denne linja: Public Sub CreateDevice() skal vÊre: Public Sub CreateDevice(byval input as Object)  Oppdaterer fÞrstepost. Det gjorde susen ?? 1 Siter
HSv Skrevet 7. oktober 2020 Skrevet 7. oktober 2020 (endret) Flott script - har lenge tenkt pĂ„ Ă„ lage noe tilsvarende, men nĂ„ slipper jeg jo det đ Men... Jeg bruker dette pĂ„ HS4, og alt ser ut til Ă„ fungere fint. Men etter en restart av HS sĂ„ er fremdeles devicen det men alle kontrollene er borte, og det er jo litt kjipt. Oppdaterte akkurat HS til 4.1.8.0, men jeg sĂ„ det ogsĂ„ pĂ„ 4.1.6.0   EDIT: Men jeg fant en workaround - jeg ser nĂ„ at jeg kan kjĂžre et nytt event for Ă„ legge de til igjen, og jeg kommer til Ă„ legge til dette i Startup.vb (iallefall inntil videre)  IF This event is MANUALLY triggered THEN Run the script: TimeDevice.vb                 calling method AddDeviceButtons with parameter(s) 3946                      and only allow one instance of the script to run at a time. Endret 7. oktober 2020 av HSv 2 Siter
Erling Skrevet 7. oktober 2020 Skrevet 7. oktober 2020 Takk @Moskus denne var artig, takk @HSv som dro opp trÄden. 1 Siter
Moskus Skrevet 7. oktober 2020 Forfatter Skrevet 7. oktober 2020 4 timer siden, HSv skrev: Jeg bruker dette pÄ HS4, og alt ser ut til Ä fungere fint. Men etter en restart av HS sÄ er fremdeles devicen det men alle kontrollene er borte, og det er jo litt kjipt. F*en! Jeg hadde hÄpet dette var fikset. Det har jo vÊrt et problem med HS4 ganske lenge.  Men snedig workaround! Kudos!  Siter
prk Skrevet 20. november 2020 Skrevet 20. november 2020 Dette er mulig jeg har oversett en grunn til at det gjÞres slik, men:  Dim newValue As Integer = deviceValue + minutesToAdd If newValue < 0 Then newValue = 24 * 60 + minutesToAdd If newValue > 24 * 60 Then newValue = minutesToAdd  Hvis deviceValue nÄ fra fÞr er 23:45, og man trykker +1 time, sÄ vil ny tid bli 01:00. Eller hvis den er 23:50 og man trykker +15 min, sÄ blir ny tid 00:15. Tilsvarende hvis den er 00:15 og man trykker -1 time, sÄ blir ny tid 23:00. Og om den er 00:10 og man trykker -15 min, sÄ blir ny tid 23:45.  Kan kanskje dette heller skrives slik?  Dim newValue As Integer = deviceValue + minutesToAdd If newValue < 0 Then newValue = 24 * 60 + newValue If newValue > 24 * 60 Then newValue = newValue - 24 * 60  Evt. slik om man vil forkorte (pÄ bekostning av noe lesbarhet).  Dim newValue As Integer = deviceValue + minutesToAdd If newValue < 0 Then newValue += 24 * 60 If newValue > 24 * 60 Then newValue -= 24 * 60  Siter
Moskus Skrevet 20. november 2020 Forfatter Skrevet 20. november 2020 Jeg trodde jeg hadde tenkt og testet dette. Mulig jeg ikke har... FÄr sjekke igjen. Siter
Im_IB Skrevet 1. september 2022 Skrevet 1. september 2022 (endret) Super veiledning og script @Moskus đ Tusen takk, det var akkurat det jeg trengte. Oppstod dog et lite problem. Jeg har fortsatt ikke kommet meg over pĂ„ HS Touch, sĂ„ jeg bruker fortsatt HS Mobile en del. Klokke-devicen funker som den skal i device-oversikten, men med en gang jeg prĂžver Ă„ legge den til pĂ„ et dashbord forsvinner alle knappene. Har sjekket alle innstillinger jeg kan tenke meg, prĂžvd Ă„ opprette flere klokker, men problemet er det samme. Om noen har et tips til hva som kan forĂ„rsake dette tar jeg gjerne i mot tips!  Endret 1. september 2022 av Im_IB Siter
Moskus Skrevet 1. september 2022 Forfatter Skrevet 1. september 2022 Im_IB skrev (49 minutter siden): Klokke-devicen funker som den skal i device-oversikten, men med en gang jeg prÞver Ä legge den til pÄ et dashbord forsvinner alle knappene. Det er ikke deg. Det er en bug i HomeSeer Mobile, men hvis du venter til neste refesh, sÄ skal de dukke opp igjen.  Siter
Im_IB Skrevet 3. september 2022 Skrevet 3. september 2022 Moskus skrev (PÄ 1.9.2022 den 18.12): Det er ikke deg. Det er en bug i HomeSeer Mobile, men hvis du venter til neste refesh, sÄ skal de dukke opp igjen.  Hva mener du med neste refresh? Knappene har aldri vÊrt synlig i Dashboards-fanen, men er synlig hele tiden i Device-fanen. En annen ting som det kanskje er greit Ä advare om, er at det noen ganger blir generert en ny and if statement i eventen som begrenser trigger til en bestemt dato (i det herrens Är 0001 for sikkerhets skyld) hvis man tar "snarveien" og blar forbi midnatt. Siter
Moskus Skrevet 5. september 2022 Forfatter Skrevet 5. september 2022 Im_IB skrev (PÄ 3.9.2022 den 7.35): Knappene har aldri vÊrt synlig i Dashboards-fanen Det har jeg ikke testet, de burde ikke vÊre usynlige der heller, men i Dashboard har man stÞrre kontroll over hva som skal vÊre synlig eller ei. Det er mulig dette ikke inkluderer knapper som er laget fra scripts.  Im_IB skrev (PÄ 3.9.2022 den 7.35): En annen ting som det kanskje er greit Ä advare om, er at det noen ganger blir generert en ny and if statement i eventen som begrenser trigger til en bestemt dato (i det herrens Är 0001 for sikkerhets skyld) hvis man tar "snarveien" og blar forbi midnatt. Ja, da gÄr man over til et nytt dÞgn. Jeg mÄ tydeligvis nullstille telleren. Siter
Im_IB Skrevet 16. november 2023 Skrevet 16. november 2023   Moskus skrev (PĂ„ 5.9.2022 den 13.50): Ja, da gĂ„r man over til et nytt dĂžgn. Jeg mĂ„ tydeligvis nullstille telleren. Har du funnet noen smart fix pĂ„ dette? Eller har du noen forslag til fix? Jeg hadde nok en uheldig hendelse her om dagen, med en elbillader som ikke hadde startet, og ende med Ă„ komme for seint pĂ„ jobben đ Siter
Moskus Skrevet 16. november 2023 Forfatter Skrevet 16. november 2023 Eh... jeg innrÞmmer at jeg ikke har tenkt sÄ mye pÄ det. Men vanskelig burde det ikke vÊre.  Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nÄ og registrere deg senere. Hvis du har en konto, logg inn nÄ for Ä poste med kontoen din.