Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Moskus

Administrator
  • Innlegg

    16 845
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    799

Alt skrevet av Moskus

  1. OK, grab it while it's hot:
  2. Det hender jeg eksperimenterer med Z-wave, til og med på hovedsystemet. Jeg har et par Z-wave-interfacer jeg bytter mellom (kjører restore av backup til et nytt interface før for mye testing), og det fjerner all potensiell routing-informasjon. I løpet av de første timene prøver altså huset å "finne seg selv", alt går litt tregt, og det blir høyere risiko for at noe er satt til "Unknown". Jeg skrev et script for å finne disse enhetene, og så polle dem for å faktisk lese statusen de har. Det hjelper både for å få fjernet de irriterende "Unknown"-status'ene, og det hjelper på å bedre routingen fordi kommandoen blir utført. For at dette skal fungere ut av esken må HomeSeer finne seg selv på localholst på port 80. Hvis ikke må du endre "Dim url as String"-linja. CheckForUnknown.vb Public Sub Main(ByVal params As Object) 'Moskus 2020 Dim subStart As DateTime = DateTime.UtcNow Dim url As String = "http://localhost/json?request=getstatus" Dim json As String = "" Dim DEBUG As Boolean = False If DEBUG Then hs.WriteLog("CheckForErrors", "Downloading data... ") Using client As New System.Net.WebClient json = client.DownloadString(url) json = json.ToLower() End Using If DEBUG Then hs.WriteLog("CheckForErrors", "Download done!") Dim searchString As String = ("{""ref"":").ToLower() Dim errorSearchString As String = ("""status"":""Unknown"",""device_type_string"":""Z-Wave Switch").ToLower() Dim lst As New System.Collections.Generic.List(Of Integer) Dim start As Integer = 0 If json.IndexOf(errorSearchString) > 0 Then ' Yes, we have errors, lets find the devices by looping through all devices While start <> -1 Dim deviceJsonStart As Integer = json.IndexOf(searchString, start) If deviceJsonStart = -1 Then Exit While Dim deviceJsonEnd As Integer = json.IndexOf(searchString, deviceJsonStart + searchString.Length) If deviceJsonEnd = -1 Then Exit While Dim deviceJson As String = json.Substring(deviceJsonStart, deviceJsonEnd - deviceJsonStart) 'This is the JSON for a device If deviceJson.Contains(errorSearchString) Then 'Check if the device contains the error and get the deviceRef if it doesn't Dim deviceRef As Integer = deviceJson.Substring(searchString.Length, deviceJson.IndexOf(",") - searchString.Length) lst.Add(deviceRef) If DEBUG Then hs.WriteLog("CheckForErrors", "Found reference '" + deviceRef.ToString + "'") End If start = json.IndexOf(searchString, deviceJsonStart + 10) End While End If For Each d As Integer In lst Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d) Dim devName As String = dev.Location2(hs) & ", " & dev.Location(hs) & ", " & dev.Name(hs) Dim pollResult As HomeSeerAPI.IPlugInAPI.PollResultInfo = hs.PluginFunction("Z-Wave", "", "PollDevice", New Object() {d}) hs.WriteLog("CheckForErrors", "Poll of device " & d.ToString & " (" & devName & ") returned " & pollResult.Result.ToString & " (" & pollResult.Value & ")") 'Check if the device has the correct value If pollResult.Result = HomeSeerAPI.IPlugInAPI.enumPollResult.OK OrElse pollResult.Result = HomeSeerAPI.IPlugInAPI.enumPollResult.Timeout_OK Then Dim pollValue As Integer = pollResult.Value Dim devValue As Integer = hs.DeviceValue(d) 'Set the device to the correct value If devValue <> pollValue Then For Each CAPI As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(d) If CAPI.ControlValue = devValue Then Dim response As CAPIControlResponse = hs.CAPIControlHandler(CAPI) hs.WriteLog("CheckForErrors", "Set " & d.ToString & " (" & devName & ") to " & CAPI.Label & ": " & response.ToString) Exit For End If Next End If End If Next hs.WriteLog("CheckForErrors", "Done! Elapsed time: " & Math.Round(DateTime.UtcNow.Subtract(subStart).TotalSeconds, 2) & " seconds") End Sub Jeg kjører dette scriptet i et event hver 10. minutt. Men jeg har også en begrensning på at det ikke må ha vært bevegelse i huset i løpet av 5 minutter for å redusere trafikken når routingen er på det verste. Jeg hadde selvfølgelig tenkt å disable scriptet når det ikke var behov for det, men ellers merker jeg ikke noe til det for det er særdeles sjeldent scriptet finner "Unknown" lenger, det ser jeg jo nå i loggen.
  3. Ja, dette fungerer på Root Devicer som blir satt til unknown, og som egentlig ikke skal ha noen andre devicers. Var et problem før, men er det det nå...?
  4. "Off" skal være "off" uansett kalibrering...
  5. Jeg trodde HS-plugin'en brukte skyen for å finne enhetene, men så lokal kontroll for å unngå skyen. Er HS og Tuya-enhetene på samme nettverk? Hvilken IP får enhetene, og hvilke IP-adresser gir Google Nest Wifi?
  6. Ja, selvfølgelig. Min står ikke alltid på. Men den går på hvis strømmen har gått.
  7. Det er mest avhengig av hvilke motorer du har. RFX-løsningen er utmerket med eldre Somfy-motorer (og har kun en-veis-kommunikasjon), men RollerShutter fungerer fint hvis du har motorer som styres med vanlige brytere.
  8. Jeg kjører HS4 på en del mindre systemer, men kjører enda HS3 hjemme. Det er mest fordi jeg er lat... jeg skal oppgradere snart, jeg lover!
  9. Styrer strøm etter strømpriser, men dette er fullstendig uaktuelt. Uansett.
  10. Konfigurer den til å alltid være på. Står parametre i manualen. "On" ved strømtilførsel er også praktisk.
  11. mscMQTT er mer stabil etter min erfaring og har en ivrig og aktiv utvikler.
  12. Jeg har skrevet et slikt script, kanskje jeg skal legge det ut... Dette er sjeldent et problem hos meg, utenom når jeg "nullstiller" Z-wave-systemet (dvs. bytter interface) og det er lenge siden sist. Men scriptet kjører i bakgrunnen hver time når det ikke har vært bevegelse i huset på et par timer for jeg har aldri deaktivert det. "Unknown" finnes egentlig ikke som verdi. Det er en intern status i HomeSeer, og (idiotisk nok) kan du ikke trigge på den i det hele tatt. Jeg sjekker JSON-interfacet for der står det "Unknown" riktig, men det er det eneste stedet jeg har sett det.
  13. Home Assistant kjører jo fint på en Raspberry Pi...? Burde gå fint på et NAS også.
  14. Nei. Verden er stort sett lik nå som for 7 måneder siden. Home Assistant holder alltid på med en oppdatering. Det er bare sånn det er. Om du velger det ene eller det andre må faktisk være opp til deg, men det er gratis å teste begge deler.
  15. Disse skjuler man. Trykket er jo kjekt å vite. Men man har vel neppe bruk for mange målinger av sånt...
  16. Nei, det må @Salvesen svare på. Du kjører ikke tilfeldigvis HS som administrator eller noe slikt?
  17. I prinsippet ja. Men ta en backup først. HS4 skal kunne gjøre dette for det, hvis jeg har forstått det riktig.
  18. Etter min erfaring er det nesten slutt på det etter de nye import-reglene kom med krav om betaling av MVA. eBay, Ali, etc har jo systemer for å håndtere det, og det gjør det enklere enn at jeg skal klage over at de jukset med bestillingen og må betale fortollingsgebyret i tillegg. For det er fort det som gjør bestillinger av elektronikk i utlandet dyrt.
  19. Jeg gjør det. Mest fordi hvert sekund var noe overdrevet, jeg fikk ikke bedre informasjon av å polle så mye, bare mer av den. Men hvis det fungerer med et minutt, så hold deg til det. Som sagt av andre; temperaturer endrer seg ikke så mye, ventilasjon er et relativt tregt system.
  20. Det finnes Modbus-debuggere som du kan kjøre istedenfor å prøve deg på HS hele tiden. Tipper det blir enklere i lengden.
  21. Men den skal være 0. Polling krever strøm og på batterienheter er det ganske viktig...
  22. Takk DHL gjør jo ting fort dyrere, men moms måtte du vel betalt uansett.
  23. Hva koster den?
  24. Sant. Men da får man bytte til en seriøs elektriker som kan lese regelverket.
  25. Har vel et års batteritid på hoveddøren og mye lengre på kjellerdøren. Synes det er helt OK. En gang i måneden er ikke OK, det skal ikke være slik. Hør med ID Lock. ... Men sjekk at du ikke poller status på låsen. Det kan tappe en lås fort!
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.