Gå til innhold
  • Bli medlem
Moskus

SCRIPT: EnTur.vb - Få inn data fra EnTur

Anbefalte innlegg

Sitat

 The library '/usr/local/HomeSeer/bin/homeseer/Newtonsoft.Json.dll' could not be found. There were 1 errors and 0 warnings

 

Sitat

[Settings]
ScriptingReferences=System.Core;System.Core.dll,System.Web;System.Web.dll,System.Net;System.Net.dll,Newtonsoft.Json;/usr/local/HomeSeer/bin/homeseer/Newtonsoft.Json.dll

 

image.png.dfe576ba28c4df152bbc85e420a4d23a.png

 

Hmm, noen tips?

Del dette innlegget


Lenke til innlegg
Del på andre sider

Mulig at det ikke skal være en "/" foran...? Jeg vet faktisk ikke, dette har vært testet før...

Del dette innlegget


Lenke til innlegg
Del på andre sider

Noen som har en ide om hva dette kan være? Har fungert knirkefritt siden januar, plutselig kommer denne.

 

Running script C:\Program Files (x86)\HomeSeer HS3\scripts\EnTurRedigert.vb :Exception has been thrown by the target of an invocation.->Does entry point CallsFromStopplace 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 Scheduler.clsRunVBNetScript.ExecuteScript()

 

Del dette innlegget


Lenke til innlegg
Del på andre sider

Det er ikke bare midlertidige server-problemer? Ser den av og til men den forsvinner av seg selv.

Del dette innlegget


Lenke til innlegg
Del på andre sider
11 timer siden, GeneralVirus skrev:

Tror ikke det. Har vært slik hele tiden siden jeg postet her inne.

Da ville jeg startet med å sjekke om "StopPlace" som du bruker i CallsFromStopplace ikke er endret på EnTurs sider.

 

Her fungerer det fint.

  • Thanks 1

Del dette innlegget


Lenke til innlegg
Del på andre sider

Der fant jeg ut av feilen. Ser ut som Entur har noe problemer i Tromsø for tiden. Prøvde å bytte til en "StopPlace" i Oslo og da fungerte det fint.

 

Får heller ingen informasjon på EnTur sine sider om busstider i Tromsø. Kommer nok tilbake etterhvert satser jeg på.

Del dette innlegget


Lenke til innlegg
Del på andre sider

Er noe rart med compiling av VB i Mono på Ubuntu, tydeligvis. Veldig mange feilmeldinger i compiling av scriptet.

 

Klarte til slutt å kjøre scriptet, men da uten parametre. Har følgende oppsett (se vedlegg).

 

Fikk satt stopplace og quay rett i scriptet, men får ikke skrevet noe status til device. Mulig å gjøre det rett i vb-scriptet? Prøvde å erstatte input(0).Trim med 984 (deviceID). men uten at det hjalp.

 

Logg-responsen også vedlagt. 

 

c.png

Skjermbilde fra 2019-04-18 15-06-25.png

Del dette innlegget


Lenke til innlegg
Del på andre sider

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå

  • Lignende innhold

    • Av Rufus
      Jeg ønsker å få til en virtuell device for alle vinduer, og en for dørene. Denne skal oppdateres med hvilke vinduer/dører som er åpne til en hver tid. Eventuelt om alle er lukket.
      Scripting er jeg ganske fersk med, så det har blitt litt copy paste fra her inne samt homeseer forumet.
      Fant et script som skal gjøre akkurat det jeg trenger, men jeg får warning i loggen :
      VB.Net script exception(0), re-starting: Object reference not set to an instance of an object
       
      Noen som har noen tips, er det noe åpenbart jeg har misset her?
      Til info så har jeg oppdatert scriptet med mine devicer
      Jeg kjører forøvrig HS3 på Raspbian.
      ' these are the virtual devices to be updated by the script '423 Windows '424 Doors 'Use the reference ID of the door or window sensor devices in the arrays below Public Sub Main(ByVal Parms as Object) Dim array_windows() as string = {"221", "217", "215", "213", "211"} Dim array_doors() as string = {"219", "209"} Dim windows_count as integer = 0 Dim window_name as string = "" Dim wstr as string = "" Dim doors_count as integer = 0 Dim door_name as String = "" Dim dstr as string = "" Dim dv as Object End Sub 'Using 2 subs, one for doors and the other for windows 'WINDOWS Sub windows(ByVal Parms as Object) Try windows_count = 0 window_name = "" wstr = "" for each devw as string in array_windows 'hs.writelog("Array", "Window " & window_name & " | Value " & hs.DeviceValue(devw)) if hs.DeviceValue(devw) = 1 then windows_count = windows_count + 1 dv = hs.GetDeviceByRef(devw) window_name = dv.Name(hs) wstr = wstr & window_name & ",<br>" hs.writelog("DoorWindow", window_name & " Open") 'hs.writelog("DoorWindow", array_windows) end if next If windows_count > 0 then hs.SetDeviceValueByRef(423,100,true) hs.SetDeviceString(423, wstr,true) Else hs.SetDeviceValueByRef(423,0,true) hs.SetDeviceString(423, "Alle vinduer lukket",true) End If hs.writelog("DoorWindow", "Window Count: " & windows_count) Catch ex As Exception hs.WriteLog ("DoorWindow", "Error: " & ex.Message) End Try End Sub 'DOORS Sub doors(ByVal Parms as Object) Try doors_count = 0 door_name = "" dstr = "" for each devd as string in array_doors 'hs.writelog("Array", "Door " & door_name & " | Value " & hs.DeviceValue(devd)) if hs.DeviceValue(devd) = 1 then dv = hs.GetDeviceByRef(devd) door_name = dv.Name(hs) doors_count = doors_count + 1 dstr = dstr & door_name & ",<br>" hs.writelog("DoorWindow", door_name & " Open") end if next If doors_count > 0 then hs.SetDeviceValueByRef(424,100,true) hs.SetDeviceString(424, dstr,true) Else hs.SetDeviceValueByRef(424,0,true) hs.SetDeviceString(424, "Alle dører lukket",true) End If hs.writelog("DoorWindow", "Door Count: " & doors_count) Catch ex As Exception hs.WriteLog ("DoorWindow", "Error: " & ex.Message) End Try End Sub  
    • Av HSv
      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å
       
       
       
    • Av ZoRaC
      Vi har HSTouch på mobilene våre og jeg har lenge tenkt jeg skulle legge inn noen av de grafene jeg har tilgang på fra Device History.
      Startet med det i dag og da innså jeg at det var veldig begrenset hvor mye man kunne tilpasse grafene via vanlig event, mens man kunne gjøre mye mer tilpassninger via script. Med script ble det også en fordel at man bare trenger å endre ett sted om jeg vil endre noe på designet på grafene, i stedet for å måtte endre mange events.
       
      Sub Main(ByVal params as Object) ' @Author: ZoRaC ' @Version: 1.1 (2019-01-09) ' @Syntax: dvRef|time in hours|Y1-label ' SETTINGS Dim parameters() as String = params.ToString.Split("|") Dim dvRef As String = parameters(0) Dim hours As Integer = parameters(1) Dim y1Lbl As String = parameters(2) Dim dv As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(dvRef) Dim dvName As String = dv.Name(Nothing) Dim filename As String = Nothing Dim seconds As Integer = hours*60*60 Dim timeString As String = parameters(1) & " timer" If hours > 24 Then timeString = "1 dag" End If If hours > 48 Then timeString = TimeSpan.FromSeconds(seconds).Days & " dager" End If ' CREATE GRAPH filename = hs.PluginFunction("Device History", "", "CreateChartEx",New Object(){dvRef,"{'Title': '" & dvName & " (" & timeString & ")', 'Y1Label': '" & y1Lbl & "','Y2Label': '','XLabel': 'Dato/Tid', 'ShowLegend': false, 'DurationType': 2, 'PeriodType': 1, 'Periods': " & hours & ", 'Style': 2, 'UseMarkers': false, 'Width': 460, 'Height': 310, 'RotateDegrees': 270}", "", ""}) End Sub I manualen til Device History finnes det mange flere parametere man kan putte inn for å tilpasse utseendet på grafen.
       
      Scriptet gir f.eks dette (med parametere: "789|24|% RH"):

       
      I HSTouch har jeg laget egne screens:
       
       
      Jeg har laget 3 events pr rom:

       
      På de 3 tekst-knappene over grafen har jeg satt "IgnorePresses=false" og lagt inn dette i "ActionWhenPressed":

       
      Vent i 1000ms, slik at den rekker å generere bildet.
       
      Deretter tvinger den den til å laste bildet på nytt - setter bare URL til det samme som den opprinnelig er (PNG-URLen):

       
      Slik ble resultatet:

    • Av jonkristian
      Hei folkens.
       
      Jeg har laget ett lovelace card for entur komponentet.
       

       
      Gjenstår å få inn norsk oversettelse av momentjs ellers er jeg veldig åpen for flere ønsker.
       
      Kom gjerne med forslag til forbedringer, her eller på github f.eks. i form av en PR
       
    • Av Moskus
      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.
       

       
       MotionLog.vb (ny)
      Public Sub Main(ByVal input As Object) Dim logDeviceRef As Integer = 1081 ' Update this Dim count As Integer = 9 'Maximum number of lines shown on the device - 1. 9 means 10 lines are shown Dim currentText As String = hs.DeviceString(logDeviceRef) currentText = currentText.Replace("<br>", "|") Dim lines() As String = currentText.Split("|") If lines.GetLength(0) < count Then count = lines.GetLength(0) Dim oldLines(count - 1) As String Array.Copy(lines, oldLines, count) 'Creating the device text Dim newText As String = Now.Date & " " & Now.ToLongTimeString & " - " & input.ToString If lines.GetLength(0) > 0 And lines(0) <> "" Then newText &= "<br>" 'Adding the previous lines newText &= String.Join("<br>", oldLines) 'Updating the device string hs.SetDeviceString(logDeviceRef, newText, True) 'hs.TriggerEvent("Restart SisteBeveglse timer") lines = Nothing oldLines = Nothing End Sub  
       
       
      For hver bevegelsessensor har jeg da et event som blir trigget ved bevegelse (selvfølgelig! ), som i tillegg til å styre lys der det er nødvendig, kjører dette scriptet med sub Main og parameter med navnet på sensoren, som "Kjøkken" eller "Stue".
       
      I tillegg har jeg en timer som he ter "SisteBevegelse", som jeg resetter når dette skjer. Hvis du også vil bruke dette, må du opprette den timeren, lage et Event (som jeg har kalt "Restart SisteBevegelse timer" fordi det ikke finnes kode for å restarte den), og fjerne fnutten foran den nest siste linjen i koden.
       
       
      EDIT: Oppdatert slik at det blir penere i HStouch.  
      EDIT2:  Bruker arrays for å gjøre scriptet enklere. Burde nå kjøre på Linux uten problemer.
×