Gå til innhold

Web serveren til HS


Anbefalte innlegg

Jeg har en venn med en Tesla.

Han har fått en NUC med HS3 på av meg og bla. en Fibaro 2x1,5 som kan åpne porten hans.

 

Teslaen kan ikke kjøre HSTouch desverre og siden det ikke er min bil (og kommer aldri til å bli det) kommer jeg ikke til å forsøke meg på noe Tesla-API eller App.

 

MEN Teslaen kan vise en Webside i dashbordet.

 

Tanken min var at han gikk til en webside der han får opp et Webkamera som viser at det ikke er en bil parkert forran posten og at han kan trykke på en link som trigger Fibaroen.

Siden må passordbeskyttes men dette kan lagres i browseren til Teslaen.

 

Jeg er ikke så bevandret i mulighetene til Web serveren til HS så jeg trenger hjelp til to ting:

 

#1 Hvordan lage linken som trigger ett device (eller enda bedre en event)

#2 Kan jeg bruke web serveren til HS for dette eller bør jeg starte en separat IIS?

 

Lenke til kommentar
Videoannonse
Annonse

Webserveren til HS kan kjøre fulle ASPX (dvs. asp.net) sider, eller eldre asp-sider. Ren HTML går også fint, men det er litt mer mas å bruke.
 
Lagre dette i \html katalogen som "TestSide.aspx" (men oppdater devRef-variabelen):

<%@ Page Language="VB" %>
<script runat="server">
    Dim devRef As String = 801

    Dim hs As Scheduler.hsapplication

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        hs = Context.Items("Content")
    StatusLabel.Text = hs.CAPIGetStatus(devRef).Status
    End Sub

    
    Protected Sub ToggleButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    'SmartToggle by Moskus, 2015
        
        Dim devValue As Double = hs.DeviceValueEx(devRef)
        Dim capi As Object = Nothing 'Object skulle vært HomeSeerAPI.CAPIControl

        If devValue = 0 Then 'device is off, so let's trigger "On Last Level" if it exists on the device, and just "On" if it doesn't
            capi = hs.CAPIGetSingleControl(devRef, True, "on last level", False, False)

            If capi Is Nothing Then '"On last Level" wasn't found, so we need to find "On"
                capi = hs.CAPIGetSingleControl(devRef,True, "on", False, False)
            End If

        Else 'The device is on, so let's turn it offf
            capi = hs.CAPIGetSingleControl(devRef, True, "off", False, False)
        End If

        If capi IsNot Nothing Then
            hs.CAPIControlHandler(capi)
        Else
            hs.WriteLog("SmartToggle", "Could not execute CAPIdevRef, it's nothing! (Input device value: " & devValue & ")")

        End If

        Response.Redirect("TestSide.aspx") 'Enkel måte å oppdatere på...
    End Sub
    
    Protected Sub TriggerEventButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        hs.TriggerEvent("Notifikasjoner Test notification")
    End Sub
</script>

<html>
<head runat="server">
<%response.write(hs.GetPageHeader("", "Moskus testside", "", "", False, False, True, False, False)) %>
</head>
<body>
<% response.write(hs.GetPageHeader("", "Moskus testside", "", "", False, True, False, True, False)) %>

    <form id="form1" runat="server">
    <div>
    Device status for 801 er: <br/>
    <asp:Label ID="StatusLabel" runat="server"><%# hs.CAPIGetStatus(devRef).Status %></asp:Label>

    <br/>
    <br/>
        
    <asp:Button ID="ToggleButton" runat="server" OnClick="ToggleButton_Click" Text="Skru av/på" />
       
        <asp:Button ID="TriggerEventButton" runat="server" OnClick="TriggerEventButton_Click" Text="Kjør event" />

    </div>
    </form>
</body>
</html>


... om man bør kjøre separat IIS eller bruke HS3 sin er smak og behag, tror jeg.

Endret av Moskus
Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...