-
Innlegg
16 889 -
Ble med
-
Besøkte siden sist
-
Dager vunnet
812
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Alt skrevet av Moskus
-
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:
- 22 svar
-
- 6
-
-
-
Jeg redigerte svaret mitt mens du svarte (kom borti Send inn svar-knappen), så jeg har endret litt. Det er alltid et spørsmål om definisjoner. Jeg kjørte Domoticz hos mine foreldre i mange år, men til slutt ble det for vanskelig for meg som ikke bruker Domoticz å vedlikeholde og oppgradere over tid. Det var letter for meg å sette en Pi med HS3 hos dem.
-
Hvis det er viktig å la andre styre spillelister som velges, får man finne en måte å håndtere det på. F.eks. ha en spilleliste som standard og som kopieres over, eller som endres på. Det er derimot særdeles sjeldent jeg er inne og justerer på spillelister som brukes om morgenen, så jeg har ikke hatt fokus på det. Alle klarer å endre dette hvis det er viktig, for såpass lett er det å forstå hva som skjer. Alle kan jo lese. Du bruker scriptpakken min som jeg skal legge ut i løpet av dagen. Sett opp det, så kan alle justere klokkeslettene på diverse timer-baserte triggere. Det er det som vises her:
-
Ja, det var poenget mitt: Det er ikke sikkert det er mono som er problemet. Men vanskelig å argumentere for det når det fungerer på Windows...
-
Ha! Jeg fant: Jeg brukte tidligere kodesett 183 for parameter 27.
- 6 svar
-
- varmepumpe
- remotec
-
(og 1 andre)
Merket med:
-
Når jeg ser denne stusser jeg på om det er riktig. En av fordelen med JSON er jo at alt ikke behøver være definert som strenger, dvs. stå i hermetegn. Hvordan ser det ut i Python? Dette ville jeg tro kunne være riktig: {jsonrpc:2.0, id:8, method:"read", params:{objects:[{id:91,properties:{85:{}}},{id:105,properties:{85:{}}},{id:107,properties:{85:{}}},{id:109,properties:{85:{}}}]}} .... og det er ikke sikkert at "read" engang skal stå i hermetegn. Men dette er det jo egentlig mottaker som bestemmer... Mulig at MONO er litt vanskeligere å ha med å gjøre på nøstede hermetegn enn i Windows, så verdt et forsøk.
-
Ja, men hva er parametrene? Hvordan ser da en slik URL ut? Og en ferdig tygget JSON string? Hvis det fungerer fint annet sted så er det sikkert kun en liten formateringsgreie...
-
Zigbee fungerer da som en Z-NET. Alt er i en boks og man trenger bare en RPi et sted som gjør at det da kan plasseres et hendig sted for å øke rekkevidden.
-
Men dette er det jeg mener er enklere i HomeSeer. Har du riktig plugin (og selvfølgelig riktig utstyr) er det "bare" å sette det opp. Nå er vel ikke Sonos-pluginen like god som Squeezebox-plugin'en, men det burde jo ikke være så langt unna likevel. Jeg har selvfølgelig gjort det litt mer komplisert enn man faktisk kunne trenge. Alt dette kan slås sammen til et "event" (eller "hendelse" om du vil), men jeg velger å holde det separat fordi det gir meg fleksibilitet som jeg har brukt tidligere til andre ting. Den yngste har ikke solskinnsvekkeklokke, men hun får på grønt lys og musikk når det er på tide å stå opp. Det fungerer omtrent som det står: Når klokka blir kvart på 7 OG det er en arbeidsdag OG vekkerklokka er på, OG lampen "Sovelys" er ikke av, DA skal det trigges to andre eventer. Et som skrur på grønt lys og et som setter på musikken. Dette eventet kan også endres med å stille på det (akkurat gjort ferdig). ... som gjør at man kan endre på klokkeslettet hvis man vil. De eventene som trigges er for å sette på grønt lys: Dette eventet er jo "manuelt trigget" av et annet event, og det setter bare LED-stripen til 10% grønt. Lyden er litt "verre", men fremdeles ikke komplisert: Volumet settes til 50%. Setter spilleren (en Squeezebox Radio) til shuffle, slik at jenta slipper å våkne til samme sang hver dag. Henter inn spillelista "Sangfoni" (sannsynligvis NRKs beste barneTV ever). Om jula spilles Gul Snø, men den står på "Never" her. Så venter vi 5 sekunder før vi deaktiverer shuffle igjen. Det er prikk likt for å spille en Spotify-spilleliste.
-
IFTTT er utmerket, men dessverre litt for upålitelig til daglig bruk etter min erfaring. Men det kan være verdt et forsøk. Tror jeg ser hva du mener. Tenkte jeg måtte google det for "så vanskelig kan det jo ikke være". Men direkte innlysende var det ikke, og mye av det som ligger der kan være eller er utdatert...
-
Digger Fibaro Dimmer 2 av denne grunnen. Ypperlig som scene-kontroller også som gir enda flere muligheter. F.eks. på badet i 2.etg vil et 1 trykk på knapp 2 sette badet i dagmodus. 2 trykk setter det i kveldsmodus og 3 trykk setter det i badekarsmodus. Ikke at dette ikke går automatisk, men det hender at det er fint å overstyre.
- 19 svar
-
- 1
-
-
Hold på hestene, folkens. Det er en viss vei å gå. Nå har jeg bare skummet koden til @Tor-Erik men han har jo gjort den vanskelige biten, slik jeg ser det.
- 54 svar
-
- 2
-
-
Vet du, det er så lenge siden nå at jeg har ikke peiling lenger. Det var før Phoscon, det var fra det gamle webUIet.
-
Definer "gjelder". Den fungerer enda.... Nei, man må ikke det. Men personlig synes jeg det gjør det enklere...
-
Nei. En impulsfjær vil skru på strømmen igjen til pærene hvis noen skulle trykke på bryterne. Du kan jo velge hvilken side av dekselet du fester fjæren, og da vil du jo velge den siden som gjør at bryteren alltid er på istedenfor at den alltid skal være av...
- 19 svar
-
- 1
-
-
En pulsfjær. Ellers ingen. Du skal ikke kombinere "smarte" brytere og "smarte" lyspærer, og det er jo heller ikke noen vits i å gjøre det. Teknisk sett er det mulig med en Fibaro Switch, hvis du bruker versjonen som faktisk har et relé, men da må jeg spørre: Hva er poenget?
- 19 svar
-
- 2
-
-
OK da, vi får vel bare hive oss rundt...
- 54 svar
-
- 2
-
-
Altså rebrand. OK det, så lenge prisen går ned.
-
... må være en særdeles god bevegelsessensor for at det skal slå ut. Sannsynligvis bedre med en bryter.
-
Enten så er det andre som rebrander Namron-produkter, eller så er Namron enda en rebranding. Er det Sunricher som har dem originalt? Føler jeg har sett dem før. Fungerer sikkert fint. K8-bryteren finnes jo fra flere, bl.a. HeatIt og Sunricher. Det samme med f.eks. Namron og Sunricher dimmeren.
-
Dette er selvfølgelig mulig, men er avhengig av hvilken plattform du er på. Har du bare en Hue hub eller har du et styringsprogram på toppen? Hvilken ringeklokke har du? F.eks. Ring eller andre "smarte" ringeklokker kan f.eks. få til dette ved bruk av IFTTT (se f.eks. her). Ulempen med IFTTT er at det kan ta litt tid fra noen trykker på ringeklokka til det skjer noe fordi signalet må gå gjennom flere tjenester i skyen. Men det finnes jo også løsninger for lokal prosessering.
-
Nei, vent. Det kan være at det første også en en array... litt usikker på hvordan det løses, jeg må sjekke.
- 24 svar
-
- 1
-
-
Ja, det er to steder, og det behøver bare å være ett. Fjern det siste.