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

Anbefalte innlegg

Skrevet

Sitter her og grubler litt på hvordan best overvåke batteriene i batteridrevne enheter. Jeg har en løsning i dag som fungerer greit nok men det krever at jeg husker å oppdatere hver gang en ny enhet legges til eller fjernes og det er lett å glemme...

 

Har laget et oversiktsbilde i HSTouch:
HSBattery1.thumb.jpg.b50dc6484e85edb29f47d6384be047a2.jpg

 

Har også laget et event som automatisk viser dette bildet på 2 utvalgte enheter når et eller annet batteri går under 20%.

 

Funker jo helt greit men krever som nevnt vedlikehold.

 

Et annet alternativ er jo å sortere ut alle batteri i WebUI:

HSBattery2.thumb.jpg.5948b53db6a0acedd7a6fe9dada1ceb9.jpg

 

Da må en huske på å først velge "Show All" og deretter velge "Device Type"="Battery" OG "Z-Wave Battery" (hvorfor 2 batteridevicetyper?) så får en jo opp alle batteriene men også dette blir litt styr om det skal gjøres ofte. Hadde vært veldig greit å kunne velge flere faste Views (svarveier) basert filtervalgene. Det er i alle fall slik jeg bruker WebUI ved at jeg har enkelte faste valg som utgangspunkt og justerer derfra.

 

Det jeg savner, og som helt sikkert kan lages, er et enkelt script som lister opp alle batteridevice, sjekker status og gir f.eks. en fellesvarsling (som f.eks. et batterisymbol i hjørnet i HSTouch og/eller viser batteribilde med ferdig utfylt listbox med alle batteridevicene). Om scriptet lagrer batteri% fra det tommeste batteriet i en virtuell device kunne en jo laget en vanlig batteriindikator med standard ikoner med farge og visuell fyllingsgrad som fellesvarsling i HSTouch eller WebUI. En automatisk fylt listbox i HSTouch i stedet for det bildet jeg har laget hadde jo også vært fint.

 

Dette hadde vært enkelt å få til i VisualBasic men jeg falt litt av det lasset da VB.Net dukket opp... (Iflg Microsoft skulle alle VB prosjekt enkelt kunne konverteres til VB.Net men INGEN av mine ble konvertert automatisk og dagevis med arbeid førte ikke fram...) og har bommet litt for mye i VBScriptene i HS at det hadde vært greit med litt starthjelp fra dere rutinerte.

 

Noen som har litt gode tips her? Jeg vet jo rimelig greit hva jeg er på jakt etter og jeg regner med dette er ting som er aktuelt for mange flere så en enkel og oversiktlig løsning hadde vært fint. Antar at mange bare venter til batteriene dør og skifter da men det går hardt utover WAF når ting plutselig slutter å virke selv om det "bare" er tomt batteri...

Skrevet
16 minutter siden, Moskus skrev:

En OK start her:

Flott, tar en kikk litt senere. 

 

For the record: Jeg tok et søk først uten å finne noe fornuftig ?

Skrevet
3 minutter siden, SveinHa skrev:

For the record: Jeg tok et søk først uten å finne noe fornuftig ?

... og hvis du kikker på tidspunktet GetBatteryLevels-scriptet ble postet, så gir det mening. ?

  • Thanks 1
Skrevet

Funker som et skudd og med mitt lille tillegg (markert med '***** Svein *****) er jeg veldig langt på vei der jeg ville.

Public Sub Main(ByVal input As Object)
        'Moskus 2020

        Dim device As Scheduler.Classes.DeviceClass
        Dim DE As Scheduler.Classes.clsDeviceEnumeration

        Dim counter As Integer = 0
        Dim counterBelow100 As Integer
        Dim filter As String = "batter" 'tar da både "battery" og "batteri"
        Dim LowestBatLevel as Integer   '***** Svein *****
        LowestBatLevel = 100            '***** Svein *****

        hs.WriteLog("Battery", "Looking for battery devices...")
        DE = hs.GetDeviceEnumerator()
        Do While Not DE.Finished
            device = DE.GetNext
            If device.Device_Type_String(hs).ToLower.Contains(filter) OrElse device.DeviceType_Get(hs).Device_Type_Description.ToLower.Contains(filter) OrElse device.Name(hs).Contains(filter) Then
                Dim devName As String = device.Location2(hs) & ", " & device.Location(hs) & ", " & device.Name(hs)
                Dim devValue As Double = hs.DeviceValueEx(device.Ref(hs))
                If devValue < 100 Then
                    hs.WriteLog("Battery", "Device: " & devName & ", battery: " & devValue)
                    if devValue < LowestBatLevel then LowestBatLevel = devValue     '***** Svein *****
                    counterBelow100 += 1
                End If
                counter += 1
            End If
        Loop
        hs.WriteLog("Battery", "Lowest Battery Level found: " & LowestBatLevel &"%")     '***** Svein *****
        hs.WriteLog("Battery", "Done! Found " & counter & " devices, " & counterBelow100 & " have levels below 100%.")
        hs.SetDeviceValueByName("GeneralBatteryLevel", LowestBatLevel)     '***** Svein *****
    End Sub

Den virtuelle variabelen GeneralBatteryLevel har status graphics som vanlig batteri og viser i alle bilder i HSTouch som f.eks. nede til høyre her. Tilfeldigvis er laveste batterinivå akkurat den som allerede viser øverst i bildet ?:

HSBattery3.thumb.jpg.4a9d17ef3185a9d5da93c60066d2126f.jpg

 

Da var jeg et meget godt stykke på vei der jeg ville. Takker og bukker for hjelpen.

  • Like 1

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.