Gå til innhold
  • Bli medlem

Moskus

Administrator
  • Innholdsteller

    11 091
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    402

Alt skrevet av Moskus

  1. OK? Det var rart... Kjøpt den brukt eller er den ny?
  2. Hva med bare: Dim numMembers As Integer = json.Length - 1 EDIT: eller kanskje heller: Dim numMembers As Integer = json.Count - 1
  3. Kan du prøve med: Dim numMembers As Integer = json.GetLength(0) - 1
  4. Hvis den virker i FutureHome, så virker den helt sikkert i HomeSeer. Jeg blir overrasket hvis ikke...
  5. Siste release finner du her: https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs3-hs3pro-software/hs3-hs3pro-discussion/89843-hs3-release-notes?t=176440 Kommandoen skal da være: wget https://homeseer.com/updates3/hs3_linux_3_0_0_548.tar.gz
  6. Da er han nok screwed, som i andre situasjoner når han gjør ting han ikke burde. Dessverre neppe en unik sak, det.
  7. Nesten riktig. Det stemmer for Home Assistant, men HomeSeer viser ikke koden til "alle" uten videre. Men som sagt: Har uvedkommende "fysisk tilgang" så har man nok større problemer enn at de potensielt kan lese ut master koden....
  8. Det er vel Home Assistant som viser den i ditt tilfelle. Den blir jo sendt kryptert til og fra låsen.
  9. Rescan, og rescan igjen. Ta gjerne kontroller nærmere termostaten... Hva sier loggen?
  10. 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:
  11. Hvordan skulle du ellers lese den?
  12. Hvordan tenker du at det skal fungere? Hva skal løses?
  13. Så lenge du innser at du banner i kirka... Men seriøst: For meg er hensikten med hjemmeautomasjon å gjøre hverdagen enklere, og da tenker jeg ikke bare på enklere i dag eller i morgen og neste uke, men også om 6 uker og om 3 år. Det høres kanskje ut som en idiotisk ting å planlegge så langt frem, men når man først har blitt vant til at det skal være slik så er det ikke greit hvis det ikke fungerer. Ja, det er det. Jeg mener at huset ikke skal merkes, det skal bare fungere i bakgrunnen. Men sånt tar tid, det må jo innrømmes. Men jeg investerer heller tid på å få et system til å fungere, enn til å få flere systemer til å gjøre noe. Men jeg bor ikke alene. Jeg har kone og unger, og det gjør apper enda mer ubrukelig. Jeg er jo ikke hjemme hele tiden, og det er ikke alle apper som er genale med tanke på flere brukere. Jeg har følelsen av at alle disse smarte appene vi skal ha er laget for en singel mann mellom 30 og 38 år som bor i en leilighet i en blokk, og som av og til har fester hjemme. That's it. Slik er ikke min verden. Her i huset må det må virke hver dag, hver gang.
  14. Hvilken kodeplass prøver du å sende? De begynner på 60 og går oppover, med mindre du har oppdatert Z-wave-modulen.
  15. Kort oppsummert: Hvis du har Fibaro Dimmer 2, så monterer du en vanlig Elko-bryter foran med impulsfjær(er). Hvis du vil beholde skru-funksjonen, så må du ha en egnet dimmer til det. F.eks. Z-DIM eller Sunricher sin.
  16. 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() 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:
  17. 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.
  18. 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:
  19. 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...
  20. Ha! Jeg fant: Jeg brukte tidligere kodesett 183 for parameter 27.
  21. 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.
×
×
  • Opprett ny...