Gå til innhold
  • Bli medlem
HSv

Script for dimming av lys

Anbefalte innlegg

Jeg mener dette er min første post her - jeg har hatt mye hjelp av å lese her, og nå er det kanskje på tide jeg bidrar litt.

Jeg har kikket etter et script som gjør det jeg ønsker (...og ikke minst på den måten jeg ønsker:-) uten å finne det - og har derfor prøvd å skrive et selv.

Jeg har "hentet inspirasjon" fra noen av Moskus' scripts.

Input parametre:

   <deviceref>:<start>:<stop>:<time>

 

Litt opplagt igrunn - men uansett vil dette endre devicen fra start til stopp, og bruke (tilnærmet) tid på det. (På grunn av litt avrundinger, så kan det ta noen sekunder mer eller mindre enn det du oppgir)

For å ikke sende altfor mange kommandoer, så begrenser jeg meg per default til maks 4 kommandoer per sec (kan konfigureres)

 

Noen spesialverdier:

start = -1 - da leser jeg nåværende verdi, og dimmer til stoppverdi

start = -2 - da leser jeg nåværende verdi, og øker/minker denne med stoppverdien

 

Eksempler:

100:10:30:5 - skru dev 100 fra 10% til 30% (uavhengig av hva nåværende verdi er)- og bruke 5 sec på det

100:-1:30:5 - skru device fra nåværende verdi til 30% - og bruke 5 sec.

100:-2:-10:5 - endre device 100 med sluttverdien. Her er både positiv og negativ verdi tillatt - Om device 100 var på 35% før du startet scriptet, så vil den være på 25% etterpå. (og igjen - bruker  5 sec)

 

Dette er ikke veldig foolproof - det er helt sikkert mulig å legge inn verdier som kræsjer hele scriptet - men så lang så fungerer det som jeg vil.
Blant annet så tester det ikke om det finnes noe <deviceref>... (ikke ennå iallefall)

Jeg kjører HomeSeer på Linux - ikke testet ut på en Windows-serveer (Og jeg har strengt tatt ikke planer om å gjøre det heller...)

 

Jeg bruker det hovedsakelig til to ting: Styre utelyset mitt på en litt elegant måte, samt å skånsomt skru opp lyset på soverommet om morgenen.

 

Kommentarer er mer en velkommen. Endringsforslag og "bug-reports" likeså

 

Spoiler

' SmartDimmer.vb , v. 2.0
'   This script requires 4 parameters, separated by ':'
'    - Device Reference ID
'    - Start level (%)  0 - 100 [integer]
'                       (use -1 for current devicevalue)
'                       (use -2 to add end level to current value)
'    - End level (%)    0 - 100 [integer]
'    - Time (sec)       1 - 3600 [integer]
'                               HSv, Feb. 2019

Public Module GlobalVars
  Public Shared infoLog  As Boolean = True      ' Log whats happening...?
  Public Shared warnLog  As Boolean = True      ' Log warnings...? (you really should!)
  Public Shared debugLog As Boolean = False     ' Log a bit more...?
End Module

Public Sub Main(ByVal _params As Object)
  Dim showLoc     As Boolean = False    ' Add location to the devicename when
                                        ' writing to the log
  Dim Waittime    As Integer = 250      ' Default minimum loop time in millisec
                                        ' - i.e. 250 means 4 times per sec.
  Dim MaxTimespan As Integer = 3600     ' Max timespan is one hour - I guess this can be changed if you need to...
  Dim LogID       As String  = "SmartDimmer"


' ---------------------------------------------------
'  There should not be anything to change below here
' ---------------------------------------------------

  ' I guess reading the input parameters would eb a good idea...
  Dim deviceRef  As Integer = Integer.parse(_params.ToString.split(":")(0))
  Dim Startvalue As Integer = Integer.parse(_params.ToString.split(":")(1))
  Dim Stopvalue  As Integer = Integer.parse(_params.ToString.split(":")(2))
  Dim Timespan   As Integer = Integer.parse(_params.ToString.split(":")(3))

  ' Does the device exist at all...?
  If ( Not hs.DeviceExistsRef(deviceRef)) Then
    Logging(LogID, "warn", "Device " & deviceRef & " does not exist - Exiting!")
    Exit Sub
  End If

  ' If startvalue is set to -1, then use the current devicevalue as start.
  ' Do this also if start and endvalue are the same
  ' ( changing from 10 to 10 doesn't make sense, so therefore I assume you meant change from <current> to <new> )
  If ( (Startvalue = -1) OrElse (Startvalue = Stopvalue) ) Then
    Startvalue = hs.DeviceValue(deviceRef)
  ElseIf (Startvalue < -1) Then
    Startvalue = hs.DeviceValue(deviceRef)
    Stopvalue  = Startvalue + Stopvalue
  End If

  ' Read the name of the device, as it's more human readable in the log
  Dim deviceName As String
  If showLoc Then
    deviceName = hs.devicename(deviceRef)
  Else
    deviceName = hs.GetDeviceByRef(deviceRef).name(hs)
  End If

  ' Check if inputs are within limits
  If Startvalue < 0           Then Startvalue = 0
  If Startvalue > 100         Then Startvalue = 100
  If Stopvalue  < 0           Then Stopvalue  = 0
  If Stopvalue  > 100         Then Stopvalue  = 100
  If Timespan   < 1           Then Timespan   = 1
  If Timespan   > MaxTimespan Then Timespan   = MaxTimespan

  ' let the log know what we are up to...
  Logging(LogID, "info", "Device " & deviceName & " - from " & Startvalue & "% to " & Stopvalue & "% over " & Timespan & "sec")

  If Stopvalue <> Startvalue Then
    ' Calculate change per <Waittime> millisec.
    Dim DeltaValue As Integer = (Stopvalue - Startvalue) / (Timespan * (1000/Waittime))

    ' The minimum change is 1 (or -1) - If it is less I need to change it to 1, and calculate a new step-time
    ' I.e - If I want to change from 0 to 10 in 20 sec - I need to change by 1 every 2 sec.
    If Math.Abs(DeltaValue) < 1 Then
      If Stopvalue < Startvalue Then
        DeltaValue = -1
      Else
        DeltaValue = 1
      End If
      Waittime  = Math.Abs(TimeSpan / (Startvalue - Stopvalue) * 1000)
    End If
    Logging(LogID, "debug", "Device " & deviceName & " - Deltavalue= " & DeltaValue & " , Waittime= " & Waittime)

    ' Need to declare this so that I don't bail at the first iteration
    Dim Previouslevel As Integer = Startvalue

    For Each cc As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(deviceRef)
      For Newlevel As Integer = Startvalue To Stopvalue Step DeltaValue

        ' Check if there is an override - i.e. the device has been changed outside the script
        If ((hs.DeviceValue(deviceRef) = Previouslevel) OrElse (Previouslevel = Startvalue)) Then
          ' Set the correct dim level
          cc.ControlValue = Newlevel
          hs.CAPIControlHandler(cc)
          Logging(LogID, "debug", "Device " & deviceName & " : " & Previouslevel & " -> " & Newlevel)

          ' Wait the required amount of time
          System.Threading.Thread.Sleep(Waittime)
          Previouslevel = Newlevel
        Else
          ' Manual override - You openend the pod bay doors yourself :-/
          ' Write a warning and get the h... outta' here
          Logging(LogID, "warn", "Device " & deviceName & " - Manual override, bailed out at " & Previouslevel & "% -> " & hs.DeviceValue(deviceRef) & "%")
          Exit Sub
        End If
      Next

      ' In case the device end up with an incorrect value (d.t. increments only in integers),
      ' then I set the final value outside the loop.
      If (hs.DeviceValue(deviceRef) <> Stopvalue) Then
        Logging(LogID, "debug", "Device " & deviceName & " : " & Previouslevel & " -> " & Stopvalue & " (Final touch)")
        cc.ControlValue = Stopvalue
        hs.CAPIControlHandler(cc)
      End If

      ' Be nice and let the log know we are done :-)
      Logging(LogID, "info", "Device " & deviceName & " - done!")
      Exit Sub
    Next
  Else
    ' Nothing for me to do here
    ' This means that the device is already at the StopValue.
    Logging(LogID, "warn", "Device " & deviceName & " nothing to do!")
  End If

End Sub

' Routine for writing to the log
Sub Logging(ByVal LogID As String, ByVal msgType As String, ByVal msg As String)
  Dim msgComplete As String
  Dim writetolog As Boolean = False

  Select Case msgType
    Case  "info"
      If GlobalVars.infoLog Then
        msgComplete = "Info: " & msg
        writetolog = True
      End If

    Case  "debug"
      If GlobalVars.debugLog Then
        msgComplete = "Debug: " & msg
        writetolog = True
      End If

    Case  "warn"
      If GlobalVars.warnLog Then
        msgComplete = "Warning: " & msg
        writetolog = True
      End If

    Case Else
      msgComplete = "Msgtype '" & msgType & "' undefined"
      writetolog = True
  End Select

  If writetolog Then hs.Writelog (LogID, msgComplete)

End Sub

 

 

 

Endret av HSv
Versjon 2.0
  • Like 1

Del dette innlegget


Lenke til innlegg
Del på andre sider

Legg inn koden i posten din. Det er enklere å legge inn scripts med copy/paste enn å måtte kopiere en fil til riktig sted. :) 

 

Men dette skal jeg teste!
Kan bli mye data på nettverket dog... 

Del dette innlegget


Lenke til innlegg
Del på andre sider

Jeg satt og kikket på det - ser at du legger inn som skjult tekst - ser mye penere ut.
Så da er spørsmålet - hvordan legger jeg koden inn i posten på en elegant måte...?

 

 

Det kan nok generere en del trafikk. Om du ikke endrer på det så vil det maks sende 4 kommandoer pr. sec.
Men om du endrer Waittime i scriptet til f.eks 1000, så vil den sende kun hvert sekund, og justere for det.

I.e. om du har Waittime på 250, og dimmer fra 0 til 16 på 4 sec, så sender den 4 ganger pr sec i step på 1%
Om du endrere Waitime til 1000, så vil den sende hvert sec, i step på 4%

Om du vil bruke det til gradvis å øke lyset på soverommet, så vil du kanskje bare øke med step på 1% hvert 30 sekund eller så, og da er det jo ikke mye trafikk - da sendes jo kommando bare hvert 30 sec 🙂

Endret av Håkon S.

Del dette innlegget


Lenke til innlegg
Del på andre sider
4 timer siden, Moskus skrev:

Legg inn koden i posten din. Det er enklere å legge inn scripts med copy/paste enn å måtte kopiere en fil til riktig sted. :)

Nailed it! 🙂

  • Like 1

Del dette innlegget


Lenke til innlegg
Del på andre sider

Dette ser jo ut til å kunne erstatte solskinnsuret mitt, men grunnen til at jeg ikke gjør det er:

Det lar seg ikke avbryte.

Si at du starter en lenger sekvens (0-100% på en halv time), men ombestemmer deg mitt i. Det hadde vært greit med en måte å gi et signal til loop'en om å avbryte.

 

Det er nok flere måter å gjøre det på, f.eks.

  • HS global variables
  • eller en egen exit-funksjon som gjør en sjekk
  • eller kanskje enklest: En sjekk om devicen du styrer har den verdien den skal ha fått fra scriptet "forrige runde", og hvis ikke, avbryt loop'en.
  • Like 1

Del dette innlegget


Lenke til innlegg
Del på andre sider
56 minutter siden, Moskus skrev:

Det lar seg ikke avbryte.

Godt poeng - om solskinnsuret starter, og jeg står med en gang og skrur lyset på fullt med veggbryteren (eller forteller Alexa at jeg skal sove lenger...) så vil jeg jo at scriptet skal stoppe!
Ny versjon kommer om ikke lenge 🙂

Del dette innlegget


Lenke til innlegg
Del på andre sider

Mye av grunnet til at jeg kjøpte homeseer er dette scriptet. Men jeg bruker det til og styre lys i hønsehus og det skal IKKE stoppe. Ser at det hender det stopper opp.

 

Er det slik at om jeg fjerner det jeg klippet ut her så bare går det?

    ' Need to declare this so that I don't bail at the first iteration
    dim Previouslevel as integer = Startvalue

    for each cc as HomeSeerAPI.CAPIControl in hs.CAPIGetControl(deviceRef)
      for Newlevel as integer = Startvalue to Stopvalue step DeltaValue

        ' Check if there is an override - i.e. the device has been changed outside the script
        if ((hs.DeviceValue(deviceRef) = Previouslevel) orElse (Previouslevel = Startvalue)) then
          ' Set the correct dim level
          cc.ControlValue = Newlevel
          hs.CAPIControlHandler(cc)

          ' Wait the required amount of time
          System.Threading.Thread.Sleep(Waittime)
          Previouslevel = Newlevel
        else
          ' Manual override - You openend the pod bay doors yourself :-/
          if writeLog then hs.WriteLog("ChangeDimmer", deviceName & " - Manual override, bailed out at " & Previouslevel & "%")
          exit sub
        end if
      next

 

 

 

 

Del dette innlegget


Lenke til innlegg
Del på andre sider

Så hyggelig å høre .

 

Men nei, da fjerner du altfor mye. 
Jeg skal se om jeg ikke får lagt ut en nyere versjon av scriptet i morgen, og da kan jeg vise deg hva som må tas ut for at det ikke skal stoppe.

Del dette innlegget


Lenke til innlegg
Del på andre sider

Jeg har akkurat lagt ut en ny versjon i det første innlegget.

 

Og her er en "spesialversjon" som ikke lar seg avbryte. Det er ikke veldig grundig testet, men se om ikke dette gjør det du ønsker.

 

Spoiler

' SmartDimmer.vb , v. 2.0
'
' NOTE - No-Interrupt version!!!
'
'   This script requires 4 parameters, separated by ':'
'    - Device Reference ID
'    - Start level (%)  0 - 100 [integer]
'                       (use -1 for current devicevalue)
'                       (use -2 to add end level to current value)
'    - End level (%)    0 - 100 [integer]
'    - Time (sec)       1 - 3600 [integer]
'                               HSv, Feb. 2019

Public Module GlobalVars
  Public Shared infoLog  As Boolean = True      ' Log whats happening...?
  Public Shared warnLog  As Boolean = True      ' Log warnings...? (you really should!)
  Public Shared debugLog As Boolean = False     ' Log a bit more...?
End Module

Public Sub Main(ByVal _params As Object)
  Dim showLoc     As Boolean = False    ' Add location to the devicename when
                                        ' writing to the log
  Dim Waittime    As Integer = 250      ' Default minimum loop time in millisec
                                        ' - i.e. 250 means 4 times per sec.
  Dim MaxTimespan As Integer = 3600     ' Max timespan is one hour - I guess this can be changed if you need to...
  Dim LogID       As String  = "SmartDimmer"


' ---------------------------------------------------
'  There should not be anything to change below here
' ---------------------------------------------------

  ' I guess reading the input parameters would eb a good idea...
  Dim deviceRef  As Integer = Integer.parse(_params.ToString.split(":")(0))
  Dim Startvalue As Integer = Integer.parse(_params.ToString.split(":")(1))
  Dim Stopvalue  As Integer = Integer.parse(_params.ToString.split(":")(2))
  Dim Timespan   As Integer = Integer.parse(_params.ToString.split(":")(3))

  ' Does the device exist at all...?
  If ( Not hs.DeviceExistsRef(deviceRef)) Then
    Logging(LogID, "warn", "Device " & deviceRef & " does not exist - Exiting!")
    Exit Sub
  End If

  ' If startvalue is set to -1, then use the current devicevalue as start.
  ' Do this also if start and endvalue are the same
  ' ( changing from 10 to 10 doesn't make sense, so therefore I assume you meant change from <current> to <new> )
  If ( (Startvalue = -1) OrElse (Startvalue = Stopvalue) ) Then
    Startvalue = hs.DeviceValue(deviceRef)
  ElseIf (Startvalue < -1) Then
    Startvalue = hs.DeviceValue(deviceRef)
    Stopvalue  = Startvalue + Stopvalue
  End If

  ' Read the name of the device, as it's more human readable in the log
  Dim deviceName As String
  If showLoc Then
    deviceName = hs.devicename(deviceRef)
  Else
    deviceName = hs.GetDeviceByRef(deviceRef).name(hs)
  End If

 


  ' Check if inputs are within limits
  If Startvalue < 0           Then Startvalue = 0
  If Startvalue > 100         Then Startvalue = 100
  If Stopvalue  < 0           Then Stopvalue  = 0
  If Stopvalue  > 100         Then Stopvalue  = 100
  If Timespan   < 1           Then Timespan   = 1
  If Timespan   > MaxTimespan Then Timespan   = MaxTimespan

  ' let the log know what we are up to...
  Logging(LogID, "info", "Device " & deviceName & " - from " & Startvalue & "% to " & Stopvalue & "% over " & Timespan & "sec")

  If Stopvalue <> Startvalue Then
    ' Calculate change per <Waittime> millisec.
    Dim DeltaValue As Integer = (Stopvalue - Startvalue) / (Timespan * (1000/Waittime))

    ' The minimum change is 1 (or -1) - If it is less I need to change it to 1, and calculate a new step-time
    ' I.e - If I want to change from 0 to 10 in 20 sec - I need to change by 1 every 2 sec.
    If Math.Abs(DeltaValue) < 1 Then
      If Stopvalue < Startvalue Then
        DeltaValue = -1
      Else
        DeltaValue = 1
      End If
      Waittime  = Math.Abs(TimeSpan / (Startvalue - Stopvalue) * 1000)
    End If
    Logging(LogID, "debug", "Device " & deviceName & " - Deltavalue= " & DeltaValue & " , Waittime= " & Waittime)

    Dim Previouslevel As Integer = Startvalue

    For Each cc As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(deviceRef)
      For Newlevel As Integer = Startvalue To Stopvalue Step DeltaValue

        ' Set the correct dim level
        cc.ControlValue = Newlevel
        hs.CAPIControlHandler(cc)
        Logging(LogID, "debug", "Device " & deviceName & " : " & Previouslevel & " -> " & Newlevel)

        ' Wait the required amount of time
        System.Threading.Thread.Sleep(Waittime)
        Previouslevel = Newlevel
      Next

      ' In case the device end up with an incorrect value (d.t. increments only in integers),
      ' then I set the final value outside the loop.
      If (hs.DeviceValue(deviceRef) <> Stopvalue) Then
        Logging(LogID, "debug", "Device " & deviceName & " : " & Previouslevel & " -> " & Stopvalue & " (Final touch)")
        cc.ControlValue = Stopvalue
        hs.CAPIControlHandler(cc)
      End If

      ' Be nice and let the log know we are done 🙂
      Logging(LogID, "info", "Device " & deviceName & " - done!")
      Exit Sub
    Next
  Else
    ' Nothing for me to do here
    ' This means that the device is already at the StopValue.
    Logging(LogID, "warn", "Device " & deviceName & " nothing to do!")
  End If

End Sub
 

' Routine for writing to the log
Sub Logging(ByVal LogID As String, ByVal msgType As String, ByVal msg As String)
  Dim msgComplete As String
  Dim writetolog As Boolean = False

  Select Case msgType
    Case  "info"
      If GlobalVars.infoLog Then
        msgComplete = "Info: " & msg
        writetolog = True
      End If

    Case  "debug"
      If GlobalVars.debugLog Then
        msgComplete = "Debug: " & msg
        writetolog = True
      End If

    Case  "warn"
      If GlobalVars.warnLog Then
        msgComplete = "Warning: " & msg
        writetolog = True
      End If

    Case Else
      msgComplete = "Msgtype '" & msgType & "' undefined"
      writetolog = True
  End Select

  If writetolog Then hs.Writelog (LogID, msgComplete)

End Sub

' That's all folks!

 

Del dette innlegget


Lenke til innlegg
Del på andre sider

@HSv

 

Etter noen dager med testing kan jeg fortelle deg at dette funker utmerket til mitt bruk.

Nå gjør jo ikke jeg noe mere avasnsert enn:

 

Lys av: 50:-1:0:1800

Lys på 50:0:65:1800

 

Men disse hønen har nå værdens beste naturlige oppvåkning og natta modus.

 

Takk.

Del dette innlegget


Lenke til innlegg
Del på andre sider

Kult at det fungerer også til en oppgave jeg absolutt ikke hadde forestilt meg 🙂

 

Av nysgjerrighet - kjører du scriptet på Linux eller Windows?

Endret av HSv
  • Like 1

Del dette innlegget


Lenke til innlegg
Del på andre sider

 

Linux.

Current Date/Time: 3/26/2019 4:12:39 PM
HomeSeer Version: HS3 Standard Edition 3.0.0.500
Linux version: Linux HomeTrollerSELv3 3.16.0-031600-generic #201408031935 SMP Sun Aug 3 23:56:17 UTC 2014 i686 i686 i686 GNU/Linux System Uptime: 0 Days 1 Hour 24 Minutes 47 Seconds
IP Address: 192.168.10.103
Number of Devices: 58
Number of Events: 3
Available Threads: 199
HSTouch Enabled: True
Event Threads: 0
Event Trigger Eval Queue: 0
Event Trigger Priority Eval Queue: 0
Device Exec Queue: 0
HSTouch Event Queue: 0
Email Send Queue: 0

Enabled Plug-Ins
3.0.1.252: Z-Wave

 

 

Tidligere gjorde jeg jobben med OpenHab og ikea trådfri, men pærene til ikea vil ikke dimme skikkelig ned. Dvs 1% er reelt ca 40% så nå er det med Fibaro dimmer og glødepærer.

Del dette innlegget


Lenke til innlegg
Del på andre sider

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Fjern formatering

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.


  • Lignende innhold

    • Av Guahtdim
      Dette er en enkel plugin som kun brukes som condition i en event. 
       
       
      Kun testet i Windows
       
      Plugin kan lastes ned her
      HSPI_DataCurveSeer versjon 0.0.0.4
       
       
       
      VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt "c:\program files (x86)\Homeseer HS3" for Windows) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_DataCurveSeer.exe og HSPI_DataCurveSeer.exe.config, i katalogen Homeseer HS3\bin skal ha fått en ny underkatalog - DataCurveSeer - med 24 filer og i katalogen html\images skal du ha fått underkatalogen DataCurveSeer med 2 filer)   Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på DataCurveSeer  
       
      Plugin gir deg 2 valg når du lager events:

      Her prøver man ut fra enheten man har satt til å overvåke å predikere om man vil gå over en gitt verdi i løpet av en gitt periode hvis stiging/senkning fortsetter slik det har gjort. 
       
       

      Her vil man trigge hvis man har passert gitt grenseverdi og kurven man har er stigende eller synkende
       
      Ansvarsfraskrivelse:
      Laste ned og bruke plugin gjøres på eget ansvar. Skulle jeg ødelegge Homeseer oppsettet ditt så kan jeg desverre ikke hjelpe deg.
    • Av Blodstrupmoen
      Min Fibaro universal sensor begynte i går å sende masse gjentakende rapporteringer på z-wave nettverket mitt slik at kontrolleren knelte. Etter en restart av noden har den fortsatt og sende doble postinger av alle rapporteringer. Er det noen som har opplevd det samme, og her en løsning på dette?

    • Av Guahtdim
      RfLinkSeer er en plugin for å støtte RfLink (hardware) et alternativ til RfxTrx. Dette er hardware man selv kan sette sammen eventuelt bestille på nett (se under RFLink gateway).
       
      OBS OBS OBS
      Dette er i Alfa(nivået før beta, som igjen er nivået før man faktisk sier man har en versjon man er fornøyd med) og ser ut deretter Kun testet i windows.   
      Hva som er støttet så langt:
      "Lytting" til det som skjer (plugin er i hovedsak laget for å håndtere mine prologue tempmålere). Mulighet til å legge enheter inn i Homeseer  Mulighet for å sende kommandoene ON/OFF/ALLON/ALLOFF.  
      Testet med:
      433Mhz brannvarsler (Kjell.com Konig SAS-SA200)- tar imot signal og kan også trigge denne (testet uten familien i hus) 433MHz fjernstrømbrytere (Håndterer ON/OFF/ALLON/ALLOFF)  
      Hva som kommer til å skje videre:
      Gjøre ting penere i GUI Begynne å se på å sende kommandoer for de enheter som kan motta kommandoer Stabilitet når man mister kontakten med en RfLink enhet over tcp/ip Fange opp om en kommando kom seg over ok til RfLink  
      *** Link til siste versjon: RfLinkSeer_V_0481  ***
       
      Hva gjør jeg for å installere?
      VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt c:\program files (x86)\Homeseer HS3) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_RfLinkSeer.exe og HSPI_RfLinkSeer.exe.config, mens du i katalogen Homeseer HS3\bin skal ha fått en ny underkatalog - RfLinkseer - med 17 filer) og under Html\images katalogen skal du ha fått en RfLinkSeer katalog 3 underkataloger og diverse bilde filer (totalt 49 bildefiler under RfLinkSeer og tilhørende underkataloger)  Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på RFLinkSeer  
      Brukermanual:

      Hvis du kobler til RFLink direkte så må du sette opp korrekt Com-port. Dette gjøres under Plugins->RfLinkSeer->Comport config. Velg fra dropdown og trykk på knappen "Add comport"
       

      Hvis du har koblet RFLink vha RasberryPi og ser2net så må du inn på TcpIp config. Tast inn ip, port og trykk "Add Tcp/Ip address".
       

      I begge tilfeller skal man se noe i løpet av 5-30 sekunder hvis man går inn på Plugins->RfLinkSeer->Found Units.
       

      Ser du ikke noe så gå inn på General config og sett logging til debug. Går du i logvinduet så skal du se en masse med RfLinkSeer meldinger. Hvis alt går bra ser du også noen av typen "received 20;12;....". Hvis du får en haug med feilmeldinger om reconnect etc så er det mulig at du har satt opp comport eller tcpip feil.
       

      For å velge enheter så går du til siden Plugins->RfLinkSeer->Found Units. Vent i 5-10 sekunder så skal det komme opp en tabell med enheter som den finner. Trykk på knappen Add for den/de enhetene som du ønsker å legge inn i Homeseer.
       

      For å endre kommandoport eller protokoll og enhetsId går man inn og konfigurerer enheten (trykker på navnet til enheten i oversikten). Man skal under fanen RfLinkSeer ha en eller 2 dropdowns. Den ene velger kommandoport (det man har konfigurert under com og/eller tcp/ip).
      Den andre porten velger enhet som man skal ta protokoll og enhetsid fra. I tillegg til at man viser protokoll og enhetsid så viser jeg også sist mottatte data slik at det skal bli enklere å velge (noe jeg savner i RfxCom plugin).
       
      Plugin støtter å kjøre mer enn en kilde. Hjemme kjører jeg to enheter (433MHz og 868Mhz) over tcpip og det ser ut til å gå greit. Jeg antar at man også kan kjøre ett par comporter også samtidig, men har ikke fått testet så mye på det.
       
      Mer info vil komme etterhvert som jeg får mer tid til å "pusse" på koden.

       
      Ansvarsfraskrivelse:
      Laste ned og bruke plugin gjøres på eget ansvar. Skulle jeg ødelegge Homeseer oppsettet ditt så kan jeg desverre ikke hjelpe deg.
       
      Endringer
      0.4.8.1 - Fikset en feil i grafikk for temperatur mellom 21 og 26 (stoppet på 24) 0.4.8.0 - Fikset en feil i håndtering av kommandoer som ble introdusert i 0.4.7.4 0.4.7.4 - Fikset manglende link mellom child og parent devices.  
       
      Endringer i Alpha4 (2018-06-08)
      * Kommandoene On, Off, AllOn, AllOff, Set_level kan nå bli sendt fra RfLinkSeer til RfLink (som igjen sender det ut til enhetene)
      * Mulighet for å endre porten som enheten skal sende kommandoer over. (ligger i RFLinkSeer-fanen når man configurerer eksisterende enhet i HomeSeer)
      * Mulighet til å endre enhetens protokoll og adresse til en funnet enhet som ikke er i HomeSeer, men funnet av RfLink. Dette gjør det enklere å hente inn enheter som endrer seg etter batteribytte. (ligger i RFLinkSeer-fanen når man configurerer eksisterende enhet i HomeSeer)
       
      Endringer i Alpha3 (2018-03-28)
      * Alle enheter skal nå ha ikon
      * Lagt til knapp for å manuelt slå av røykvarlser i Homeseer (den sender IKKE ut til brannvarslerne)
      * Fikset opp i oversikt over enheter slik at man
      Fjerne fra Homeseer devicer Oppdatere med nye ikon hvis man har en enhet installert fra før, men uten korrekt ikon * Mulighet til å endre hvor lenge man tar var på enheter som har gitt signal i oversikt over enheter som er funnet, men som ikke er lagt til i Homeseer
      * I oversikt er det nå enklere å se hvilke enheter som man har lagt til i Homeseer
       
      Endringer i Alpha2 (2018-02-22)
      * Bedre håndtering av On/Off kommandoer fra enheter
      * Unitconfig har fått en skikkelig overhaling og har nå følgende:
      Mulighet for søk Sortering Enkelt å legge til en ny enhet  
      Kjente feil
      Krangler med Arduinoplugin hvis du bruker com port både på RfLinkSeer og Arduino plugin. Uvist hvordan dette skal løses siden jeg har lagt opp til at man skal kunne bruke mer enn en comport samtidig. Den antar at alle kommandoer som sendes går ok. Jeg har desverre ikke implementert noen sjekk på returen jeg får fra RfLink når jeg sender en kommando. Mye logging til console som ikke er fjernet, men dette vil du kun se om du kjører plugins i developer mode. "Testing testing"-teksten i config siden jeg først tenkte over den da jeg oppdaterte disse sidene.  
       
       
       
    • Av BME
      Tenkte å hente inn frist for neste EU-kontroll på bilen i HomeSeer. Da vil jeg også kunne sette opp eventer/varsler på dette.
      URL: https://www.vegvesen.no/kjoretoy/Eie+og+vedlikeholde/kjoretoyopplysninger?registreringsnummer=BT23537 (tilfeldig reg.nr)
       
      Har forsøkt å bruke Jon00 DataScraper til dette, men det fungerer ikke helt.
      Ut fra det jeg fant på HS-forum, kan det tyde på at det er fordi datoene faktisk hentes med JavaScript og ikke ved pageload.
       
      Er det noen andre som har fått til å hente dette?
    • Av Guahtdim
      Dette er en trigger plugin basert på det som gjøres i tråden til @ZoRaC 
       
       
       
      Triggeren brukes i eventer mot google kalender. Følgende må oppfylles: Man starter på/er inne i kalendermøtet/event/registreringen (fra nå av CalendarEvent) og kalender teksten (Summary text) er enten lik, starter med, inneholder en tekst som man setter opp. Eventuelt så bryr man seg ikke om teksten, men bare at det er en kalender event. (4 forskjellige valg som kan gjøres når man legger inn triggeren). Man kan søke i mer enn en kalender.
      Man kan også legge inn flere søkeord skilt med || (eller) eller && (og) slik at en trigger kan håndtere flere forskjellige ord. I noen av triggerne vil ikke det å skille med && (og) gi noen treff siden f.eks. matching exactly på ett søk hvor man har brukt && (og) ikke vil treffe noen gang. 
       
      En trigger slår til minst en gang, som oftest mange ganger etter hverandre! Jeg anbefaler at man derfor setter opp f.eks en device å sjekke mot slik at man unngår å trigge f.eks hvert tiende sekund i løpet av en halvtime når det skjer en event. Jeg setter opp events slik at de i tillegg til å bli trigget av triggere også sjekker mot device som den skal styre.
      Eks:

      Her er det triggeren som starter det hele, men den vil kun slå til hvis device "Unknown Unknown Events" er av (off). Da vil device settes til på (on).
       
       
      OBS OBS OBS
      Dette er i Alfa(nivået før beta, som igjen er nivået før man faktisk sier man har en versjon man er fornøyd med) og ser ut deretter Testet ok i Windows.   
      For nå er linken til siste versjon 
      GCalSeer_V0039
       
      Hvordan sette opp :
      VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt "c:\program files (x86)\Homeseer HS3" for Windows) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_GCalSeer.exe og HSPI_GCalSeer.exe.config, mens du i katalogen Homeseer HS3\bin skal ha fått en ny underkatalog - GCalSeer - med 30 filer)   Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på GCalSeer  
      Oppsett av Google kalender
       
      Oppsett av kobling mot Hotmail/Outlook live
       
      Du er nå klar for å sette opp en trigger 
       
      Ved hjelp av script: Mulighet til å lage en device som lister opp alle kalenderhendelser x dager framover :
       
      Ansvarsfraskrivelse:
      Laste ned og bruke plugin gjøres på eget ansvar. Skulle jeg ødelegge Homeseer oppsettet ditt så kan jeg desverre ikke hjelpe deg.
       
      Planlagte utvidelser/ønskeliste
      Mulighet for å liste ut hendelser fra flere kalendere samtidig vha script.  Mulighet til å legge inn device som viser X nærmeste hendelser fra utvalgte kalendere eller for en gitt tidsperiode fra tidspunktet man er i (planlagt utvidelse) Mulighet for Regex/Wildcards i søketekst (ønske) Bedre kontroll på kobling mot Google slik at refreshtoken blir prøvd brukt hvis man har passert utløp på accesstoken Egen device for å vise status med tanke på autorisasjon Mulighet til å sette opp en trigger til å slå til på offsets Mulighet for å trigge på hendelser innenfor en dag, uke, måned, frem i tid Mulighet for å hente inn kalender events fra MS Outlook (antageligvis kun for de som kjører HS i Windows OS) Eget scriptkall for å hente events fra en eller flere kalendere - ref https://forums.homeseer.com/forum/ultilities-plug-ins/utilities-discussion/blgdata-blade/87199-event-listing-in-a-hs-device  
      Kjente feil:
      Mulig å sette tid mellom hver sjekk lenger enn hva en autorisering gjelder (3600 sekunder) For mye logging Autorisering mot google fungerer ikke i Linux - under arbeid.  
      Endringer:
      0.0.3.9 - Fikset en bug ved at offset ble brukt i during-valg selv om det ikke var mulig å endre i eventet. Takk til @JohnMartin
      0.0.3.7 - Fikset en bug i hvordan det blir hentet kalender events fra Google når man skal bruke scripmulighetene. Takk til @JohnMartin
      0.0.3.6 - Fikset en bug i håndtering av all day events. All day events overskred dagen(e) de var lagt til og ble slik med en dag mer enn de skulle (en dag i etterkant). Takk til @JohnMartin
      0.0.3.5 - Fikset en bug i offset after. Trigging av event skjedde ikke selv om alle eventer sluttet samtidig. Takk til @toonwolf
      0.0.3.4 - Filtrerer nå bort kalenderhendelser som ligger i andre kalendere enn det man har satt til gyldig for trigger (enkelte av oss kjører med mer enn en kalendere og triggere som kun går på noen av disse). Takk til @toonwolf for bra bug rapport igjen.
      0.0.3.3 - Håndterer nå at en kalenderhendelse er uten subject/summary/overskrift. Både Google og Microsoft leverer NULL tilbake når dette feltet er tomt. Det fungerte dårlig. Takk til @toonwolf for bug rapport.
      0.0.3.2 - Fikset opp i hvordan kalender hendelser hentes fra Microsoft. Henter nå de 100 første innenfor gitt tidsrom.
      0.0.3.1 - Fjernet 2 config sider som ikke fungerer. Lagt inn støtte for GetItemsFromMsCalendar siden den kun eksisterte som GetItemsForMsCalendar. Begge er nå støttet.
      0.0.3.0 - Ms connection bedre dokumentert på konfigside med tanke på Azure.
      0.0.2.9 - Det er skjedd mye, men det meste er i sammenheng med håndtering av å sette opp for toonwolf. Dokumentasjon kommer plutselig... 
      0.0.2.0 - Fikset opp slik at man kan få tilbake objekter fra script, ikke bare ferdige strenger 
      0.0.1.8 - Lagt til uthenting av kalenderinfo vha script for Microsoft kalendere.
      0.0.1.1 - Fikset opp i visning når man har brukt avanserte settinger. Dette vil nå bli vist når man har "krympet/rullet opp" eventet.
      0.0.1.0 - Fjernet noen småfeil i offset (takk til toonwolf for testing) og lagt til muligheten å kunne søke på flere ord ved hjelp av logiske operatorer - || (eller/OR) og && (og/AND)
      0.0.0.7 - Forbedret kobling mot Google + fjernet noen småfeil i offset
      0.0.0.6 - Microsoft kalenderfunksjonalitet lagt til (Hotmail/Outlook Live).
      0.0.0.5 - Mye ekstra funksjonalitet lagt inn på triggerne. Egen device for å vise status på koblingen mot Google.
      0.0.0.4 - Man kan ikke sette tid mellom ny info fra Google til mer enn 3599 sekunder.
      0.0.0.3 - Fungerer mot Linux. Autorisasjon endret.
      0.0.0.2 - Logging settes og slik sett får man mindre i HomeSeer loggen hvis det er ønskelig.
       
       
×
×
  • Opprett ny...