Gå til innhold
  • Bli medlem

Anbefalte innlegg

Skrevet

Jeg ser det samme. Jeg kan skrive ToList() funksjonen selv, men den er nå så selvsagt i .NET at jeg hadde håpet å unngå dette. Skal høre med folkene i HST.

  • 1 måned senere...
Skrevet (endret)

Hvis man kun ønsker å se tidspunkt for siste hendelse, f.eks. hvis man har en oversikt i HStouch over siste bevegelse på alle multisensorer, så finnes det en superenkel måte å gjøre dette på.

 

Lag en virtual device for hver sensor du ønsker å logge - merk deg device id.

 

dev.png

 

id.png

 

Lag en event pr. enhet, sett den opp til å trigge på at multisensor registrerer "motion".

Velg så å kjøre en script kommando, endre da det første tallet i kommandoen til din "Reference ID".

"NOW" er jo en kjekk måte å sette inn tid/dato i en string, alternativt kan man gjøre som Iblis og benytte "DeviceLastChangeRef" som peker til device id for multisensor.

 

bev.png

 

I HSTouch Designer kan du nå legge til den virtuelle device i en visning, endre til StatusTrackingNormal, plukk frem den virtuelle devicen, endre til "Use Status Text".

 

hst.png

 

 

Endret av Nettopp
  • Like 3
  • 2 uker senere...
Skrevet
  Archos skrev (På 6.7.2016 den 8.46):

Hei,

 

Jeg får denne erroren når jeg prøver å kjøre scriptet:

Running script C:\Program Files (x86)\HomeSeer HS3\scripts\MotionLog.vb :Exception has been thrown by the target of an invocation.->Does entry point Main exist in script? at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at A.c17b105f989efe61e5979e67bec1ef734.cffd66cb0782c50126727e3fa75582d7a()

 

 

Ekspander  

 

Hei

 

Jeg får opp noe av den samme feilen, hva gjorde du for å fikse dette? @Moskus er det noe med en setup fil her?

  Moskus skrev (På 6.7.2016 den 13.21):

OK, tror jeg får lage en egen Setup-funksjon som gjør dette her. Lager en device og setter den opp riktig.

Ekspander  

 

Jeg har prøvd med Sum or Function som Main og main som ga 2 forskjellige feilmeldinger, se bildet

5a1fdafb2b8f6_Skjermbilde2017-11-3011_16_44.png.a303f479ff8861c2c7e348d273bb3030.png

 

er det bevegelseslogg devisen jeg har satt op feil?

Skrevet
  Moskus skrev (På 30.11.2017 den 11.15):

Prøv med dette immediate scriptet:

&hs.SetDeviceString(DIN_DEV_REF, "Linje1<br>Line2<br>Linje3<br>Linje4", True)

 

Ekspander  

Takk, det fungerte, i tillegg hadde jeg en bokstavfeil i scriptet men nå fungerer det, ?

Skrevet

Jeg kjører nyeste Mono, men får likevel dette:

  Sitat
       
Dec-02 12:29:54   Error Compiling script /usr/local/HomeSeer/scripts/MotionLog.vb: 'ToList' is not a member of 'System.String[]'.
Dec-02 12:29:54   Error Compiling script /usr/local/HomeSeer/scripts/MotionLog.vb: 'ToList' is not a member of 'System.String[]'.
Dec-02 12:29:54   Error Compiling script /usr/local/HomeSeer/scripts/MotionLog.vb: The import 'System.Core' could not be found.
Ekspander  

 

Tips? :) 

Skrevet
  ZoRaC skrev (På 2.12.2017 den 11.33):

Tips? :) 

Ekspander  

Installer Windows...

 

Men seriøst:

Scriptet må skrives ganske mye om hvis Lamda-funksjoner som ".ToString()" ikke er støttes. Enten over til C# hvor det (visstnok og kanskje?) er støttet eller til å bruke Array istedenfor.

 

Et siste alternativ er å vente til den dagen HomeSeer eventuelt er bygd på .NET Core istedenfor mono på Linux.

Skrevet

Fikk «hacket» til en workaround. :) 

  Sitat

Public Sub Main(ByVal input As Object)
    Dim logDeviceRef As Integer = 798 ' Update this

    Dim newText As String = Now.Date & " " & Now.ToLongTimeString & " - " & input.ToString & "<br>" & hs.GetINISetting("Log", "1", "", "MotionLog.ini") & hs.GetINISetting("Log", "2", "", "MotionLog.ini") & hs.GetINISetting("Log", "3", "", "MotionLog.ini")

 hs.SaveINISetting("Log", "3", hs.GetINISetting("Log", "2", "", "MotionLog.ini"), "MotionLog.ini")
hs.SaveINISetting("Log", "2", hs.GetINISetting("Log", "1", "", "MotionLog.ini"), "MotionLog.ini")
hs.SaveINISetting("Log", "1", Now.Date & " " & Now.ToLongTimeString & " - " & input.ToString & "<br>" , "MotionLog.ini")

    'Updating the device string
    hs.SetDeviceString(logDeviceRef, newText, True)
    'hs.TriggerEvent("Restart SisteBeveglse timer")
End Sub

Ekspander  

 

  • 2 måneder senere...
Skrevet
  Moskus skrev (På 22.5.2016 den 10.54):

Dette scriptet lar deg logge alle bevegelser til en device, slik at det blir enklere å se på web eller HStouch. Bevegelser (eller enhver hendelse) blir da logget slik.

Ekspander  

Hei, jeg ønsker en ny versjon av dette scriptet, jeg prøvde å skrive det om selv men fikk det ikke helt til.

Jeg har EN device som har mange statuser. Ønsker er å ha en device som viser de 10 siste statusene fra denne ene Devicen.

 

Endring jeg ønsker er at scriptet skal skrive statusen til denne bestemte Device i stedet for teksten som skrives inn i parameter.

 

Er et noen som gidder og endre det for meg?

Skrevet
  Ruud skrev (På 1.3.2018 den 20.46):

Endring jeg ønsker er at scriptet skal skrive statusen til denne bestemte Device i stedet for teksten som skrives inn i parameter.

 

Er et noen som gidder og endre det for meg?

Ekspander  

 

Prøv å bytt ut «input.ToString» med «hs.devicevalue(id)» :) 

 

Hvis det da er verdien av devicen du vil ha?

Skrevet

 

  ZoRaC skrev (På 1.3.2018 den 20.51):

Prøv å bytt ut «input.ToString» med «hs.devicevalue(id)» :)

Ekspander  

Fungerte nesten, jeg får nummeret på statusen men jeg ønsker  teksten som hører til nummeret.

Jeg måtte skrive GetDeviceString(ID)

det funket hvis jeg også la til 2 funksjoner:

Function GetDeviceString(ByVal DeviceRef As Integer) As String
        'Henter device string fra HS
        Dim devstring As String = hs.DeviceString(DeviceRef)
        If devstring <> String.Empty Then Return devstring
        'Henter devicestring directe fra CAPI-status, hvis den finnes
        devstring = hs.CAPIGetStatus(DeviceRef).Status
        If devstring <> String.Empty Then Return devstring
        'Henter devicestring fra CAPI beskrivelse (basert på value)
        devstring = GetCapiString(DeviceRef)
        If devstring <> String.Empty Then Return devstring
        'Henter devicestring fra device class
        Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(DeviceRef)
        devstring = dev.devString(Nothing)
        If devstring <> String.Empty Then Return devstring
        Return "String not found for " & DeviceRef & ", value = " & hs.DeviceValueEx(DeviceRef)
    End Function
    Function GetCapiString(ByVal DeviceRef As Integer) As String
        For Each CAPI As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(DeviceRef)
            If CAPI.ControlValue = hs.DeviceValue(DeviceRef) Then Return CAPI.Label.ToString
        Next
        Return String.Empty
    End Function

 

  • Like 1
Skrevet
  Ruud skrev (På 2.3.2018 den 18.43):

det funket hvis jeg også la til 2 funksjoner:

Ekspander  

Hmmm, de så kjente ut. ;)

 

Du kunne nok klart deg med kun "GetCapiString" siden det er en CAPIlabel du skal ha :) 

  • Like 1
Skrevet
  Moskus skrev (På 2.3.2018 den 20.09):

Hmmm, de så kjente ut. ;)

Ekspander  

Jepp det er klipp og lim fra ditt fantastiske script: LogStatusToFile.vb

 

  Moskus skrev (På 2.3.2018 den 20.09):

Du kunne nok klart deg med kun "GetCapiString" siden det er en CAPIlabel du skal ha :)

Ekspander  

hmmm.. prøvde å ta vekk funksjonen - GetDeviceString, da sluttet det å virke??

Skrevet
  Ruud skrev (På 2.3.2018 den 20.41):

hmmm.. prøvde å ta vekk funksjonen - GetDeviceString, da sluttet det å virke??

Ekspander  

Du må også endre kallet ditt fra "GeDeviceString(ID)" til "GetCapiString(ID)". :) 

  • Thanks 1
Skrevet

Har nå laget e ny versjon av scriptet. Den er vesentlig forenklet (og dermed betydelig kjappere) enn før, og skal nå kunne kjøre på Linux uten problemer. :)

 

Merket at med mye aktivitet i huset så gikk det overraskende seint, mulig det ble mye konverteringer som egentlig var unødvendige.

Denne versjonen er kjapp. :) 

  • Thanks 2
Skrevet

… men versjonen din funker jo. :)

Må tydeligvis forenkle litt både mtp. hastighet og kompabilitet. Script-compileren til HS3 er ikke bare fantastisk, tydeligvis.

  • 2 måneder senere...
Skrevet

image.png.704764b157bf01a543a8cc2a175284f6.png

 

Gjelder dette kun dette eventet, eller selve scriptet?

 

Tenker på om vi går fra ett rom til et annet og scriptet ikke er ferdig.

Eller det er folk i forskjellige rom.

 

Vil dette valget stoppe samtidig loggingen av flere event?

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  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.

×
×
  • 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.