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

SCRIPT: CreateHSTGraph.vb - lag HSTouch-vennlige grafer


ZoRaC

Anbefalte innlegg

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"):

1-vaskerom_Arduino_Plugin_Fukt_vaskerom_full.png

 

I HSTouch har jeg laget egne screens:

image.png.b5e8baabd2e254b9e61316b4b5ac1ed0.png image.png.6641b8676685d2a9502304ae568dee00.png

 

Jeg har laget 3 events pr rom:

image.png.e05d37b5d3cb7fdeb50bb6883019ba52.png

 

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

image.png.a182dffefed7ba07edb619dea6f16b9a.png

 

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):

image.png.03903e93fc1ad70717a17ddf2b6ef995.png

 

Slik ble resultatet:

ezgif.com-resize.gif.0d20d3eb2d456aef6488d68df4e9540a.gif

Endret av ZoRaC
Fikset GIF og v1.2
  • Like 4
Lenke til kommentar
Del på andre sider

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.