Gå til innhold
  • Bli medlem
toonwolf

Script for å skrive det siste minuttet av HS3 logg til fil

Anbefalte innlegg

Jeg ønsker å lage en loggfil med det siste minuttet fra loggen i HS3 og har funnet dette eksempelet av "mrhappy",

Sub Main(ByVal Parm As Object)

    Try
        Dim Logs() As HomeSeerAPI.LogEntry = hs.GetLog_Date(Now.AddMinutes(-1), Now)

        For Each LogEntry As HomeSeerAPI.LogEntry In Logs
            My.Computer.FileSystem.WriteAllText(hs.getapppath & "\NewLog.txt", LogEntry.LogTime.ToString & "," & LogEntry.LogType & "," & LogEntry.LogText & vbNewLine, True)
        Next

    Catch ex As Exception
        Log("Exception: " & ex.Message.ToString)
    End Try

End Sub

Sub Log(ByVal ParStr As String)
    hs.writelog("LogFile", ParStr)
End Sub

men får feilmelding

Exception: Objektreferanse er ikke satt til en objektforekomst.

Tips? (og ja har sjekket at det ikke er snodige tegn og konvertert til ANSI @Moskus 🙂

Del dette innlegget


Lenke til innlegg
Del på andre sider

Start med å kommentere ut linjene mellom Try og Catch (legge på en ' foran hver setning). Sjekk om det fungerer.

Hvis det fungerer så kan du f.eks. fjerne utkommentering foran Dim Logs().

Det siste blir å fjerne utkommentering på For Each til Next.

 

Det er ikke umulig at den også feiler fordi du ikke har noe i loggen for det siste minuttet. Jeg har desverre ikke nok oversikt over scripting til å kunne peke direkte på hva som er feil.

Del dette innlegget


Lenke til innlegg
Del på andre sider
3 timer siden, toonwolf skrev:

My.Computer.FileSystem.WriteAllText(hs.getapppath & "\NewLog.txt", LogEntry.LogTime.ToString & "," & LogEntry.LogType & "," & LogEntry.LogText & vbNewLine, True)

 

Løsningen ble å hardkode stien og filnavn på denne måten:

 My.Computer.FileSystem.WriteAllText("C:\Program Files (x86)\HomeSeer HS3\Logs\NewLog.txt",

hadde en mistanke..

Endret av toonwolf

Del dette innlegget


Lenke til innlegg
Del på andre sider

Du kan teste med 

hs.WriteLog("GetAppPath", hs.GetAppPath) 

for å se om den i det hele tatt returnerer noe.

 

Eks

Sub Main(ByVal Parm As Object)
  hs.WriteLog("GetAppPath",hs.GetAppPath)
End Sub

 

Del dette innlegget


Lenke til innlegg
Del på andre sider
45 minutter siden, Guahtdim skrev:

Sub Main(ByVal Parm As Object)

hs.WriteLog("GetAppPath",hs.GetAppPath)

End Sub

Noen feilmeldinger


Error	Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\runhidden.vb: End-setningen er ikke gyldig.
Error	Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\runhidden.vb: Tegnet er ikke gyldig.
Error	Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\runhidden.vb: Navneområdet eller typen som er angitt i importene System.Core, inneholder ikke noe felles medlem eller finnes ikke. Kontroller at navneområdet eller typen er definert og inneholder minst ett felles medlem. Kontroller at det importerte elementnavnet ikke bruker noen aliaser.

 

Del dette innlegget


Lenke til innlegg
Del på andre sider

Copy and Paste fungerer dårlig fra dette forumet skjønner jeg.

Testet ut selv og fikk feil. Skrev alt for hånd inn og det fungerte som det skulle.

 

Det kan se ut som om det kommer med ett ekstra "usynlig" tegn på slutten av hver linje.

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.


×
×
  • Opprett ny...