TropiskNektar Skrevet 30. januar 2017 Skrevet 30. januar 2017 (endret) Jeg skulle gjerne hatt noen tips og forslag til hvordan jeg kan gjøre dette på en bedre måte. Jeg bruker plugin for å pinge enheter i nettverket mitt og vise dem som ONLINE eller OFFLINE i HomeSeer. Og i HSTouch har jeg da en egen side hvor jeg lister opp alle enhetene, og om en av de jeg definerer som kritisk går ned, så skal menyknappen lyse rødt ved å bruke StatusTracking. For å løse det, så har jeg opprettet en counter med navn PINGStatuser hvor 1 = Alt OK og 2 = Feil. Og for å sette denne telleren så bruker jeg 2 events: Pingstatuser - ERROR If Router changes and becomes OFFLINE Or If Server1 changes and becomes OFFLINE Or If Switch01 changes and becomes OFFLINE Or If Switch02 changes and becomes OFFLINE Or if NAS01 changes and becomes OFFLINE Then Reset counter PINGStatuser to value 2 Pingstatuser - OK If PINGStatuser value has become this absolute value: 2 And If Router has a value equal to ONLINE And If Server1 has a value equal to ONLINE And If Switch01 has a value equal to ONLINE And If Switch02 has a value equal to ONLINE And If NAS01 has a value equal to ONLINE Then Wait 15 Seconds Then Reset counter PINGStatuser to value 1 Problemet her er at telleren ofte ikke går til 1. Hvis jeg setter den manuelt til 2, så går den over til 1 etter 15 sekunder slik den skal, men det virker som at dersom eventen ikke slår inn første gangen, og at da verdien allerede er 2 neste gang istedenfor at den blir 2, så vil ikke eventen kjøre. Videre er jeg redd for at det skal skje noe loop eller noe lignende, og det er derfor jeg har lagt inn at den skal vente 15 sekunder med å sette verdien til 1. Hvilket andre måter kan jeg løse dette på? Her er screenshot av hvordan jeg har satt opp events: Endret 30. januar 2017 av TropiskNektar Siter
ZoRaC Skrevet 30. januar 2017 Skrevet 30. januar 2017 (endret) Har aldri brukt counter til noe sånt og ville nok heller brukt en device. Devicen kan ha verdi 0 (ok) eller 1 (error). Vet ikke om det løser problemet, men jeg ser ikke noen grunn til at det ikke skulle virke i hvertfall Hvordan pinger du, forresten? Endret 30. januar 2017 av ZoRaC Siter
Christoffer Skrevet 30. januar 2017 Skrevet 30. januar 2017 (endret) Denne eventen vil vel kun kjøre idet telleren din blir 2 og hvis en av enhetene da er offline så vil det ikke skje noe. Men jeg ville også brukt en virtuel device til dette. Endret 30. januar 2017 av christofferraa Skrivefeil Siter
xibriz Skrevet 30. januar 2017 Skrevet 30. januar 2017 Hvis enhetene du monitorerer støtter SNMP ville jeg brukt det. https://board.homeseer.com/showthread.php?t=176282 Siter
Christoffer Skrevet 30. januar 2017 Skrevet 30. januar 2017 Hvis du bruker BLLAN kan du prøve dette scriptet. Legg inn Or IF "This device just had its value changed" for hver enhet du vil skal sjekkes. Og på linje 2 merket i scriptet legger du inn device reference til alle enhetene du vil sjekke og på linje tre legger du inn reference til enheten du vil skal vise statusen.. Public Sub Main(Parm As Object) Dim enheter = New Integer() {165, 141, 143, 142, 140, 139, 138} 'Her legges alle enhetene som skal sjekkes Dim utenhet As Integer = 194 'Enhet som skal holde statusen som settes på slutten Dim teller As Integer Dim tempval As Integer For Each enhet As Integer In enheter tempval = hs.DeviceValueEx(enhet) If tempval = 0 Then teller = teller + 1 End If Next If teller = 0 Then hs.SetDeviceValueByRef(utenhet, 100, True) Else hs.SetDeviceValueByRef(utenhet, 0, True) End If End Sub Ikke helt oppe og går på vb.net men det er det jeg bruker, da trenger du bare en event og den vil oppdateres hver gang det er en endring. Siter
Andreas Skrevet 30. januar 2017 Skrevet 30. januar 2017 Du trenger ikke å sjekke om status=2 Hvis alle er ok, så status=1 Lag ett event per status per enhet Siter
TropiskNektar Skrevet 30. januar 2017 Forfatter Skrevet 30. januar 2017 (endret) Jeg brukte en SNMP monitor og ble veldig glad i den, men før jeg rakk å kjøpe den så forsvant den fra de offisielle listene og jeg fant aldri noe lignende igjen... Så tusen takk for tipset om Jon00 sin SNMP plugin! :-) Men jeg tror ikke det spiller noen rolle om jeg bruker en virtuell enhet eller en teller.. For HSTouch sin del så spiller det ingen rolle og funksjonen for å sette verdien 1 eller 2 fungerer som den skal. Eneste er at eventen ikke kjører. En jallaløsning som jeg får til selv er kanskje å ha at eventen kjører hvert minutt, og hvis en av enhetene er OFFLINE, så skal verdien settes til 2, og om alle er ONLINE så skal den settes til 1. Er det noen som kan se noe problem i å gjøre det på den måten? Altså starte eventen med: IF The event will automatically trigger every 1m, 0s Også resten av enhetene som skal være ONLINE eller OFFLINE EDIT: Jeg bruker forøvrig "PINGER" for å pingteste enhetene Endret 30. januar 2017 av TropiskNektar Siter
ZoRaC Skrevet 30. januar 2017 Skrevet 30. januar 2017 Ah, jeg skjønte ikke hva du mente som ikke fungerte, men ser det nå. Du kan ha event 2 til å være disablet som default, men satt til å kjøre hvert minutt. I første event (en enhet går offline) så enabler du event nr 2 (som sjekker online). Den vil da kjøre hvert minutt til alle enheter er online igjen. Legg så til at den skal disable seg selv igjen. Usikker om du kan enable/disable direkte eller om du må bruke "immidiate script". Siter
backspace Skrevet 31. januar 2017 Skrevet 31. januar 2017 Har også lekt litt med nettverks status. Bruker virual devicer, bruker enten en for hver network item eller en virutal device som status for alt, eller kan også bruke kombi av dette Her er C# eksempel kode for å oppdatere en Virtual Device for hver network device. Jeg bruker HOSTS fil og lager samme navn på network device og virtual device (som i hostnames array i kode) for å gjøre det enkelt. Bruker .net Ping, har da mulig for sette timeout og ping respons++. public object Main(object[] Parms) { // @Backspace networkstatus example string[] hostnames = { "Workstation", "Router", "Printer" }; // updated in HOSTS file with IP, Virtual devices have same name Ping myping = new Ping(); PingReply preply; int timeout = 1000; // timeout for ping in milliseconds foreach (string h in hostnames) { preply = myping.Send(h, timeout); // ping network device if (preply.Status == IPStatus.Success) { hs.SetDeviceStringByName(h,h.ToString() + " [" + preply.Address.ToString() + "] is alive - " + preply.RoundtripTime.ToString() + " ms",true); hs.SetDeviceValueByName(h,0); // set OK status } else { hs.SetDeviceStringByName(h,"Ping " + h.ToString() + " failed!",true); hs.SetDeviceValueByName(h,1); // set failed status } } return 0; } Resultat blir da når en enhet ikke svarer: Laget også en annen variant hvor jeg bare bruker bare en Virtual Device og samler status på den + text. Hvis en av de er feil blir status satt til "Failed". Hvis alt OK ser det slik ut: Så veldig greit å kunne scripte litt for HS triggers og logikk er litt tungvindt synes jeg (spesielt når en ikke har "else") ? 2 Siter
Andreas Skrevet 31. januar 2017 Skrevet 31. januar 2017 Hvordan trigger du scriptet? Hvor ofte? Siter
backspace Skrevet 31. januar 2017 Skrevet 31. januar 2017 Vanlig time trigger, f.eks hvert 5 min eller hva en ønsker. Men jeg har ikke noe behov for å monitorere så mye av dette enda så det går ikke fast hos meg. Tenkte kanskje heller lage et internet knapp/icon med status som "connected", latency til en kjent norsk server, samt upload/download rate test en gang eller to i døgnet for litt statistikk... men lyse sitt fiber nett er veldig stabilt og raskt her jeg bor så ser ikke helt nyttverdien her for meg bortsett fra å lære noe mere HS og scripting? Siter
Moskus Skrevet 1. februar 2017 Skrevet 1. februar 2017 Jeg bruker PRTG (som er gratis opp til 100 sensorer, plenty for de fleste hjem), det kommer en et lite innlegg om det etter hvert. For de som har en del utstyr som bruker nettverk, så er det genialt. Siter
TropiskNektar Skrevet 2. februar 2017 Forfatter Skrevet 2. februar 2017 Ser ut som et bra script det backspace Men jeg er usikker på om det løser problemet jeg har. PINGER funker veldig bra til å pinge en virtual device og gi status når den er offline eller online, men problemet kommer når jeg har en VD som skal varsle dersom en av enhetene er online, også fjerne varselet når alle enhetene er online. Årsaken til at jeg har det er at jeg har en nettverksfane i HSTouch og jeg ønsker at menyknappen skal lyse rødt dersom jeg har en kjernekomponent som er nede. gateway, aksesspunkt, DNS/DHCP server, etc. Jeg har prøvd å tenke ut hvordan jeg skal løse dette i noen dager nå uten å ha kommet noe lenger.. Jeg som ikke kan powershell har klart å sette sammen et powershell script som pinger alle enhetene mine og setter min moder-VD til offline dersom en av den går ned, men jeg kom ikke lenger når jeg ville ha moder-VDen til å kun gå til online dersom alle enhetene var online samtidig.. Så samme problem her som jeg har med Events. Siter
Blodstrupmoen Skrevet 3. februar 2017 Skrevet 3. februar 2017 Fikk satt opp PRTG her nå, det ser ut til å være midt i blinken for overvåking av hjemmenettet. Siter
Moskus Skrevet 3. februar 2017 Skrevet 3. februar 2017 29 minutter siden, Blodstrupmoen skrev: Fikk satt opp PRTG her nå, det ser ut til å være midt i blinken for overvåking av hjemmenettet. Ja, det er det det er laget for. Jeg har satt opp pushvarsel hvis nede, og email hvis nede over 5 minutter. Har lurt på om jeg skal gjøre noe for å få det inn i HomeSeer, men jeg har ikke hatt behovet enda. Siter
ZoRaC Skrevet 3. februar 2017 Skrevet 3. februar 2017 1 time siden, Moskus skrev: Jeg har satt opp pushvarsel hvis nede, og email hvis nede over 5 minutter. Hva er det du overvåker og hvordan varsler du hvis f.eks switch, router eller modem er nede? Siter
Blodstrupmoen Skrevet 3. februar 2017 Skrevet 3. februar 2017 1 time siden, ZoRaC skrev: Jeg har satt opp pushvarsel hvis nede, og email hvis nede over 5 minutter. Samme her. Fungerer utmerket. Hadde vært kjekt å fått det inn i homeseer. Har ikke fått sett på løsning for det enda. Siter
backspace Skrevet 3. februar 2017 Skrevet 3. februar 2017 23 hours ago, TropiskNektar said: Ser ut som et bra script det backspace Men jeg er usikker på om det løser problemet jeg har. PINGER funker veldig bra til å pinge en virtual device og gi status når den er offline eller online, men problemet kommer når jeg har en VD som skal varsle dersom en av enhetene er online, også fjerne varselet når alle enhetene er online. Årsaken til at jeg har det er at jeg har en nettverksfane i HSTouch og jeg ønsker at menyknappen skal lyse rødt dersom jeg har en kjernekomponent som er nede. gateway, aksesspunkt, DNS/DHCP server, etc. Jeg har prøvd å tenke ut hvordan jeg skal løse dette i noen dager nå uten å ha kommet noe lenger.. Jeg som ikke kan powershell har klart å sette sammen et powershell script som pinger alle enhetene mine og setter min moder-VD til offline dersom en av den går ned, men jeg kom ikke lenger når jeg ville ha moder-VDen til å kun gå til online dersom alle enhetene var online samtidig.. Så samme problem her som jeg har med Events. Hvis jeg forstår det riktig så ønsker du å oppdatere en VD med status på dine "nettverks VD'er". Det blir litt som den VD med multistatus jeg viste i forrige post. Sjekker f.eks 3 VD som oppdateres av PINGER (eller i mitt tilfelle et script), og så setter status på en egen "status" VD. Virker fint med C# script. Men jeg prøvde å sette opp to events som du hadde i utgangspunktet: Har 3 stk nettverks items (Router, Printer, Workstation), når alle er OK så er "master" status Network Monitor også OK. Men hvis en av disse 3 network items har "No Respons", så blir det ERROR også på Network Monitor VD: Så jeg prøvde med å sette opp 2 Events er nedenfor litt likt det du gjør. Forskjell er at jeg i "OK" event bruker network monitor VD "have been ERROR for at least 1 s" i stedet for "has become" som du brukte". Dette virker ihverfall for meg, når en eller flere items er "no response" så er også master VD flagget med ERROR, når alt er OK igjen så er også master VD flagget OK : ...vet ikke helt om det var dette du prøver å gjøre? Uansett lettere med script når en først greier å sette seg inn i det. Siter
TropiskNektar Skrevet 3. februar 2017 Forfatter Skrevet 3. februar 2017 Fantastisk Jeg har testet litt her nå og det ser ut til å funke nøyaktig slik jeg ønsker. Thank you very much! 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.