SveinHa Skrevet 6. mars 2020 Skrevet 6. mars 2020 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: 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: 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... Siter
SveinHa Skrevet 6. mars 2020 Forfatter Skrevet 6. mars 2020 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 ? Siter
Moskus Skrevet 6. mars 2020 Skrevet 6. mars 2020 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. ? 1 Siter
Hillmar Skrevet 6. mars 2020 Skrevet 6. mars 2020 Har ikke sett på detaljene, så kan godt hende dette er veldig likt Moskus sitt script, men mulig denne tråden kan hjelpe deg i riktig retning. Siter
SveinHa Skrevet 6. mars 2020 Forfatter Skrevet 6. mars 2020 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 ?: Da var jeg et meget godt stykke på vei der jeg ville. Takker og bukker for hjelpen. 1 Siter
Anbefalte innlegg
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.