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: