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

Vinnerliste

Populært innhold

Viser innholdet med mest poeng fra 14. jan. 2020 i Innlegg

  1. Først... All ære til @ZoRaC for denne! Jeg kjører Homeseer på Windows 10, så målet mitt var å kunne ordne alt derfra så jeg ikke var avhengig av en annen maskin. 1: Token 2: python Last ned fra https://www.python.org/downloads/windows/ og installer. Husk å få med at python skal legges i path i første steg av installasjonen. Denne står ikke på som default. 3: mosquitto Last ned fra https://mosquitto.org/download/ og installer. Her mener jeg det var en rett fram installasjon. 4: Vistual C++ Build Tools Last ned fra https://go.microsoft.com/fwlink/?LinkId=691126 og installer. Denne krevde reboot hos meg. 5: python-miio Installer python-miio. Det gjør du i command prompt (DOS! ?) med kommandoen: pip install python-miio Jeg husker ikke om jeg måtte kjøre command prompt i admin-modus. Da skal alt av verktøy være på plass. 6: Sjekke kommunikasjon mot støvsuger 7: Installere mcsMQTT i Homeseer Denne trenger ikke mer info. Den ligger under "Lighting & Primary Technology". Installer plugin og start den. 8: Få ut data fra Roborock til fil 9: Få data fra fil til Homeseer med MQTT 10: Kontrollere Roborock fra Homeseer 11: Automatisk oppdatere status på Roborock til Homeseer: Jeg tror det var alt. Håper jeg ikke har glemt noe. Dukker det opp noe, skal jeg oppdatere posten. Igjen, all credit til @ZoRaC. Jeg hadde aldri tatt i MQTT før jeg så posten hans. Det er helt sikker andre og bedre måter å få til dette på, men akkurat nå fungerer det hos meg, så da lar jeg det rulle og gå. Det eneste jeg har lyst til å finne ut, er hvordan jeg kan starte zoned cleanup av f.eks. kjøkken, stue, osv. Utfordringen her er koordinater. Jeg har ikke funnet noen enkel måte å hente ut koordinater. FloleVac har jeg prøvd, men jeg får ikke opp kartet på noen av Android-emulatorene jeg har prøvd. Disclaimer: Alt på eget ansvar, osv. Ta backup først! Edit: Gjorde topic litt bedre
    4 poeng
  2. Har en event som går på rommet til 2-åringen. Han synes det er veldig greit å ha på 100% lys på Z-Dim’eren når han skal legge seg, men sovner jo aldri med fullt lys [emoji57] Så event’en er at dersom dimmer justeres over 20%, og klokken er innenfor leggetiden, så dimmes det ned til 10% igjen. Til mini’s store frustrasjon [emoji16] Sent from my iPhone using Tapatalk
    2 poeng
  3. OK, jeg fant bug'en. ... og selvfølgelig er det slik at når jeg har funnet den så burde jeg ha tenkt på den med en gang. Det mangler en linje i RunQuery-funksjonen. Den skal altså se slik ut: Private Function RunQuery(ByVal jsonQuery As String) As String Dim url As String = "https://api.entur.io/journey-planner/v2/graphql" Using client As New System.Net.WebClient Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 client.Headers.Add("ET-Client-Name", "Moskus-InfoplakatForHomeseer") client.Headers.Add("User-Agent", "EnTur-script by Moskus") client.Headers.Add("Content-Type", "application/graphql") client.Encoding = System.Text.Encoding.UTF8 client.BaseAddress = url Return client.UploadString(url, "POST", jsonQuery) End Using End Function ... som tvinger WebClient til å bruke TLS12. Hele scriptet skal altså være slik: Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Imports System.Collections.Generic 'Moskus 2019 'Besøk https://en-tur.no for å finne stop-ider og quay-ider Sub CallsFromStopplace(parm As Object) Dim input() As String = parm.ToString.Split(",") Dim deviceRef As Integer = input(0).Trim Dim stop1 As String = input(1).Trim Dim quay As String = "" Dim entries As Integer = 5 If input.GetLength(0) > 2 Then quay = input(2).Trim If input.GetLength(0) = 4 Then entries = input(3).Trim Dim list As List(Of EstimatedCall) = GetCallsFromStopPlace(stop1, quay, entries) Dim out As String = "" For Each c As EstimatedCall In list out &= c.ToString & "<br>" Next Dim minutesToNextDeparture As Integer = list(0).expectedArrivalTime.Subtract(Now).TotalMinutes hs.SetDeviceString(deviceRef, out, False) hs.SetDeviceValueByRef(deviceRef, minutesToNextDeparture, True) End Sub Sub TripsBetweenStops(parm As Object) Dim input() As String = parm.ToString.Split(",") Dim deviceRef As Integer = input(0).Trim Dim stop1 As String = input(1).Trim Dim stop2 As String = input(2).Trim Dim entries As Integer = 5 If input.GetLength(0) = 4 Then entries = input(3).Trim Dim list As List(Of Trippattern) = GetTripBetweenStops(stop1, stop2, entries) Dim out As String = "" For Each c As Trippattern In list out &= c.ToString & "<br>" Next Dim minutesToNextDeparture As Integer = list(0).startTime.Subtract(Now).TotalMinutes hs.SetDeviceString(deviceRef, out, False) hs.SetDeviceValueByRef(deviceRef, minutesToNextDeparture, True) End Sub Private Function RunQuery(ByVal jsonQuery As String) As String Dim url As String = "https://api.entur.io/journey-planner/v2/graphql" Using client As New System.Net.WebClient Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 client.Headers.Add("ET-Client-Name", "Moskus-InfoplakatForHomeseer") client.Headers.Add("User-Agent", "EnTur-script by Moskus") client.Headers.Add("Content-Type", "application/graphql") client.Encoding = System.Text.Encoding.UTF8 client.BaseAddress = url Return client.UploadString(url, "POST", jsonQuery) End Using End Function Private Function GetCallsFromStopPlace(ByVal _stop As String, Optional ByVal _quay As String = "", Optional ByVal entries As Integer = 5) As List(Of EstimatedCall) Dim jsonQuery As String = "{stopPlace(id: """ & _stop & """) {id name estimatedCalls(startTime: """ & Now.ToString("yyyy-MM-ddTHH:mm:sszzz") & """, timeRange: 72100, numberOfDepartures: " & (entries * 2 + 2) & "){ realtime aimedArrivalTime expectedArrivalTime destinationDisplay {frontText} quay {id} serviceJourney {journeyPattern {line {id name transportMode}}}}}}" Dim result As String = RunQuery(jsonQuery) Dim enTurJson As EnTur = Newtonsoft.Json.JsonConvert.DeserializeObject(Of EnTur)(result) Dim lst As New List(Of EstimatedCall) Dim count As Integer = 0 For Each e As EstimatedCall In enTurJson.data.stopPlace.estimatedCalls If _quay <> "" Then If e.quay.id = _quay Then lst.Add(e) count += 1 End If Else lst.Add(e) count += 1 End If If count = entries Then Exit For Next Return lst End Function Private Function GetTripBetweenStops(ByVal stop1 As String, ByVal stop2 As String, Optional ByVal entries As Integer = 5) As List(Of Trippattern) Dim jsonQuery As String = "{trip(from:{place: """ & stop1 & """} to: {place: """ & stop2 & """} modes: [bus] numTripPatterns: " & entries & ") { tripPatterns { startTime endTime duration walkDistance legs {mode distance line {id publicCode name } }}}}" Dim result As String = RunQuery(jsonQuery) Dim enTurJson As EnTur = JsonConvert.DeserializeObject(Of EnTur)(result) Return enTurJson.data.trip.tripPatterns End Function Sub Main(parm As Object) End Sub Public Class EnTur Private _data As Data Public Property data() As Data Get Return _data End Get Set(ByVal value As Data) _data = value End Set End Property End Class Public Class Data Private _stopPlace As Stopplace Public Property stopPlace() As Stopplace Get Return _stopPlace End Get Set(ByVal value As Stopplace) _stopPlace = value End Set End Property Private _trip As Trip Public Property trip() As Trip Get Return _trip End Get Set(ByVal value As Trip) _trip = value End Set End Property End Class Public Class Stopplace Private _id As String Public Property id() As String Get Return _id End Get Set(ByVal value As String) _id = value End Set End Property Private _name As String Public Property name() As String Get Return _name End Get Set(ByVal value As String) _name = value End Set End Property Private _estimatedCalls As List(Of EstimatedCall) Public Property estimatedCalls() As List(Of EstimatedCall) Get Return _estimatedCalls End Get Set(ByVal value As List(Of EstimatedCall)) _estimatedCalls = value End Set End Property End Class Public Class EstimatedCall Private _realtime As Boolean Public Property realtime() As Boolean Get Return _realtime End Get Set(ByVal value As Boolean) _realtime = value End Set End Property Private _aimedArrivalTime As Date Public Property aimedArrivalTime() As Date Get Return _aimedArrivalTime End Get Set(ByVal value As Date) _aimedArrivalTime = value End Set End Property Private _aimedDepartureTime As Date Public Property aimedDepartureTime() As Date Get Return _aimedDepartureTime End Get Set(ByVal value As Date) _aimedDepartureTime = value End Set End Property Private _expectedArrivalTime As Date Public Property expectedArrivalTime() As Date Get Return _expectedArrivalTime End Get Set(ByVal value As Date) _expectedArrivalTime = value End Set End Property Private _expectedDepartureTime As Date Public Property expectedDepartureTime() As Date Get Return _expectedDepartureTime End Get Set(ByVal value As Date) _expectedDepartureTime = value End Set End Property Private _actualArrivalTime As Object Public Property actualArrivalTime() As Object Get Return _actualArrivalTime End Get Set(ByVal value As Object) _actualArrivalTime = value End Set End Property Private _actualDepartureTime As Object Public Property actualDepartureTime() As Object Get Return _actualDepartureTime End Get Set(ByVal value As Object) _actualDepartureTime = value End Set End Property Private __date As String Public Property _date() As String Get Return __date End Get Set(ByVal value As String) __date = value End Set End Property Private _forBoarding As Boolean Public Property forBoarding() As Boolean Get Return _forBoarding End Get Set(ByVal value As Boolean) _forBoarding = value End Set End Property Private _forAlighting As Boolean Public Property forAlighting() As Boolean Get Return _forAlighting End Get Set(ByVal value As Boolean) _forAlighting = value End Set End Property Private _destinationDisplay As Destinationdisplay Public Property destinationDisplay() As Destinationdisplay Get Return _destinationDisplay End Get Set(ByVal value As Destinationdisplay) _destinationDisplay = value End Set End Property Private _quay As Quay Public Property quay() As Quay Get Return _quay End Get Set(ByVal value As Quay) _quay = value End Set End Property Private _serviceJourney As Servicejourney Public Property serviceJourney() As Servicejourney Get Return _serviceJourney End Get Set(ByVal value As Servicejourney) _serviceJourney = value End Set End Property Public Overrides Function ToString() As String Return Me.expectedArrivalTime.ToString("HH:mm") & " (" & Me.aimedArrivalTime.ToString("HH:mm") & ")" & ": " & Me.serviceJourney.journeyPattern.line.name & " " & Me.destinationDisplay.frontText End Function Public Shared Sub ToFile(ByVal calls As List(Of EstimatedCall), ByVal filename As String) If calls.Count = 0 Then Exit Sub Dim sb As New Text.StringBuilder 'FEILER 'calls.ForEach(Sub(x) sb.AppendLine(x.ToString)) My.Computer.FileSystem.WriteAllText(Environment.CurrentDirectory & "\" & filename, sb.ToString, False) End Sub End Class Public Class Destinationdisplay Private _frontText As String Public Property frontText() As String Get Return _frontText End Get Set(ByVal value As String) _frontText = value End Set End Property End Class Public Class Quay Private _id As String Public Property id() As String Get Return _id End Get Set(ByVal value As String) _id = value End Set End Property Private _name As String Public Property name() As String Get Return _name End Get Set(ByVal value As String) _name = value End Set End Property End Class Public Class Servicejourney Private _journeyPattern As Journeypattern Public Property journeyPattern() As Journeypattern Get Return _journeyPattern End Get Set(ByVal value As Journeypattern) _journeyPattern = value End Set End Property End Class Public Class Journeypattern Private _line As Line Public Property line() As Line Get Return _line End Get Set(ByVal value As Line) _line = value End Set End Property End Class Public Class Line Private _id As String Public Property id() As String Get Return _id End Get Set(ByVal value As String) _id = value End Set End Property Private _name As String Public Property name() As String Get Return _name End Get Set(ByVal value As String) _name = value End Set End Property Private _transportMode As String Public Property transportMode() As String Get Return _transportMode End Get Set(ByVal value As String) _transportMode = value End Set End Property Private _publicCode As String Public Property publicCode() As String Get Return _publicCode End Get Set(ByVal value As String) _publicCode = value End Set End Property End Class Public Class Trip Private _tripPatterns As List(Of Trippattern) Public Property tripPatterns() As List(Of Trippattern) Get Return _tripPatterns End Get Set(ByVal value As List(Of Trippattern)) _tripPatterns = value End Set End Property End Class Public Class Trippattern Private _startTime As Date Public Property startTime() As Date Get Return _startTime End Get Set(ByVal value As Date) _startTime = value End Set End Property Private _endTime As Date Public Property endTime() As Date Get Return _endTime End Get Set(ByVal value As Date) _endTime = value End Set End Property Private _duration As Integer Public Property duration() As Integer Get Return _duration End Get Set(ByVal value As Integer) _duration = value End Set End Property Private _walkDistance As Double Public Property walkDistance() As Double Get Return _walkDistance End Get Set(ByVal value As Double) _walkDistance = value End Set End Property Private _legs As List(Of Leg) Public Property legs() As List(Of Leg) Get Return _legs End Get Set(ByVal value As List(Of Leg)) _legs = value End Set End Property Public Overrides Function ToString() As String Return Me.startTime.ToString("HH:mm") & " → " & Me.endTime.ToString("HH:mm") & ": Rute " & Me.legs(0).line.name End Function Public Shared Sub ToFile(ByVal calls As List(Of Trippattern), ByVal filename As String) If calls.Count = 0 Then Exit Sub Dim sb As New Text.StringBuilder 'FEILER ' calls.ForEach(Sub(x) sb.AppendLine(x.ToString)) My.Computer.FileSystem.WriteAllText(Environment.CurrentDirectory & "\" & filename, sb.ToString, False) End Sub End Class Public Class Leg Private _mode As String Public Property mode() As String Get Return _mode End Get Set(ByVal value As String) _mode = value End Set End Property Private _distance As Single Public Property distance() As Single Get Return _distance End Get Set(ByVal value As Single) _distance = value End Set End Property Private _line As Line Public Property line() As Line Get Return _line End Get Set(ByVal value As Line) _line = value End Set End Property End Class ... eller bruk denne: EnTur.vb
    2 poeng
  4. Endelig Tylfyr integrert i DeCONZ og HomeSeer. Litt skuffet over at det identifiseres som lys, men jaja, det får vi vel endre på. Imidlertid stilig at man kan justere høyden på rullegardinen med en "dimme-slide".
    2 poeng
  5. I tillegg til å spore telefoner via bluetooth og nettverk for å avgjøre om vi er hjemme så bruker jeg også bevegelsessensorer og dørsensorer til dette. Det "smarte" her er at en bevegelse setter i gang en nedtelling på X timer eller minutter og så lenge den teller ned regnes vi som hjemme. En bevegelse i et bad eller i gang/stue setter nedtellingen til flere timer. Utgangsdøren til 10 minutter og garasjeporten til 2 minutter. Er vi på vei inn så øker tiden fra 2 til 10 til 120 minutter etterhvert som vi kommer "lenger inn". På vei ut går nedtellingen fra 120 til 10 og eventuelt 2 minutter før vi er registrert som borte. Dette fungerer så greit at sporing av telefon bare sees på som et kjekt å ha tillegg for å gjøre den bayesiske sensoren for hjemmedeteksjon enda litt mer treffsikker.
    1 poeng
  6. Jeg har begynt å lage litt. Her er hvordan det ser ut så langt Jeg stjeler veldig mye fra HuMow siden han hadde endel bra på gang. Det er fortsatt ett stykke unna at jeg har noe jeg kan dele ut, men jeg holder på. Hvis noen er gode på ikon så tar jeg imot med åpen hånd. Jeg har forsåvidt fått laget meg noen men de er ikke lagt til løsningen enda.
    1 poeng
  7. Fant på noe litt smart i dag. Vi har et gammelt eldhus som brukes til både redskapsbod og arbeidsrom. Har så langt hatt en bevegelssensor som ved hver nye bevegelse slår på taklyset og av igjen etter 15 minutt. Dette funker jo stort sett men av og til holdes bevegelssensoren aktivert kontinuerlig i 15 minutt, selv om den har en reset tid på bare 10 sek, og dermed slås lyset av for tidlig og det blir litt ballete å få det på igjen. Litt redesign av event og lyset står på i 2 timer ved hver aktivering mens det slukker etter 15 minutt når sensoren resettes. Tilsynelatende funksjon blir lik men lyset vil også slukke etterhvert hvis sensoren blir hengende på (og det skjer nå en og annen gang): Forskjellen her er at en bruker aktivt "Bevegelse av" til å slå av lyset etter 15 minutt men om den av en eller annen grunn skulle feile (skjer i ny og ne) så ligger der allerede en timer som slår av etter en rikelig lang tid (2 timer i eksempelet mitt).
    1 poeng
  8. Det verste som kan skje er at restore feiler. Men det er i teorien. Jeg har vel et par UZB1'er liggende. Kanskje jeg skal teste.
    1 poeng
  9. Dette er nesten tilsvarende min siste endring. Jeg vet ikke om dette er tilgjengelig i Norge, men jeg hadde en Ring 2-ringeklokke et års tid som jeg endelig valgte å returnere. Jeg bruker nå min eldgamle ringeklokke (kan dessverre ikke mutes) i stedet og jeg har satt inn en Wyze dørsensor i selve ringeenheten hvor en spole genererer magnetfeltet som trigger dørsensoren. Jeg satt opp en template sensor i Home Assistant som viser korrekt status. Jeg har også noen innkommende (batteridrevne) Blink XT2-kameraer som vil ta seg av bevegelse foran døra.
    1 poeng
  10. Enkel smart-kontakt med måling og av/på bassert på LoRa. https://www.mcf88.it/prodotto/mcf-lw12plg/
    1 poeng
  11. Fantastisk @Moskus. Fungerer helt fint nå igjen. Rart at det funket for meg før, men plutselig sluttet.
    1 poeng
  12. Ikke i Europa mener jeg å ha lest. Aeotec Z-Stick har ett eget backup-restore-verktøy som skal fungere. Jeg har testet på 1 node og det virket. Jeg har kjøpt meg 2 stk Z-Stick. Planene er å ta jevnlige backup av den i bruk med restore på den andre. Så rullerer jeg på dem. På den måten vet jeg at backup/restore har fungert hver gang. På sikt håper jeg å bruke ser2net eller lignende å ha Z-Stick på en raspberry pi og sende USB over nettverket. Da håper jeg det lar seg scripte å ta ned Homeseer, koble om seriellporten til en windows maskin som så starter backup. Så kobler tilbake porten før HS starter opp igjen. I det minste kan dette uføres manuelt uten å måtte fysisk koble om noe.
    1 poeng
  13. Denne er beregnet til å styre større laster så som VVB, da løser du kravet om fast tilkobling også. https://www.elektroimportoren.no/aeotec-heavy-duty-smart-switch-gen5-z-wave/4512389/Product.html?Event=livesearch /Helge
    1 poeng
  14. Det var så mye prøv og feil i denne tråden, så jeg la denne i en egen tråd:
    1 poeng
  15. Japp, der virker det! Betyr det at min HomeSeer server fortsatt bruker TLS 1.0/1.1? Eller er det webleseren som du HomeSeer via som gjør dette? Uansett, takk for at du gidder
    1 poeng
  16. Norsk bruker komma som desimalskille, og space som tusentallskille, så der er det i det minste en forskjell. Kan være et problem hvis EnTur-APIen bruker komma, men det burde de ha tenkt på.
    1 poeng
  17. Takk, du er en livredder! Jeg har spurt elektrikeren og vært gjennom menyen 12 ganger uten å finne det - også er det ikke i menyen i det hele tatt.. ?
    1 poeng
  18. Supert prosjekt du har her. Takk for at du deler, @berland
    1 poeng
  19. Lurer på å prøve meg på en robotstøvsuger i hovedetasjen, men jeg er over gjennomsnittet skeptisk til alt av enheter og services som er koblet til internett. Det er fint med en app for å sette opp, styre, monitorere støvsugeren, men det er helt uaktuelt å koble seg til en eller annen random server et sted ut i verden (les: kamera på nyeste modeller). Om jeg vil ha tak i støvsugeren når jeg er ute av huset, vil jeg bruke VPN inn som jeg gjør med alle de andre enhetene mine (nextcloud, homeassistant, nas, kamerasystem++.) Noen som har forslag og/eller erfaringer med en god robotstøvsuger, gjerne med mye funksjonalitet, men uten tilkobling til internett??
    1 poeng
  20. En liten test her ser også ut til å fungere bra: Når tørkeskapet skrus på (uten våte klær) øker temperaturen, relativ fuktighet synker og absolutt fuktighet ligger mer eller mindre jevnt. Absolutt fuktighet beregnes hver gang temperatur eller relativ fuktighet endrer verdi, og kan nok med fordel "gjennomsnittsberegnes" på et vis for å unngå de avvikende verdiene vi ser i loggen. Takk for hjelpen @Moskus!
    1 poeng
  21. Du har rett i dine antakelser. Du kan stort sett gjøre hva du vil, dimmeren tar i mot et dimmenivå, f.eks. 37%, og dimmer til det.
    1 poeng
  22. ....men... Det er jo VI som skal spørre DEG om slikt ?
    1 poeng
  23. Hei! Jeg bruker Tibber, appen som erstatter strømselskapet og gjør strømregningen lavere med teknologi. Blir du også kunde, får vi begge 500 kr å handle smarte dingser for: https://invite.tibber.com/8365970a
    1 poeng
  24. Hvorfor gjøre det så vanskelig. Romsensor på zwave (eller zigbee hvis du svinger den veien), plugg på zwave, softtermostat i home Assistant, og en dum, dum ovn på full spiker, og du har fullt fungerende lokal styring.
    1 poeng
  25. Det er ikke oregon protokoll på disse, mener det er fineoffset/viking eller rubicson. kan sjekke senere i kveld. Jeg har disse jeg og, og de fungerer utmerket med god rekkevidde mot rfxtrx433e.
    1 poeng
Vinnerlisten er satt til Oslo/GMT+02:00
×
×
  • 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.