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

Oppdatere grafikk på device


psv021

Anbefalte innlegg

Sysler litt med å få historiske device-verdier (i mitt tilfelle: Temperaturmålinger) tilgjengelig i HStouch. Har foreløpig forsøkt meg på denne løsningen:

 

Har en virtuell device med en kode per måler jeg ønsker graf for. Som grafikk for hver verdi har jeg tilhørende graf laget av Device History (bilde på disk). Så har jeg eventer som

 

1) Genererer korrekt grafikk

2) Setter virtuell device til korresponderende kode

 

...Så når jeg velger for eksempel "Stue" i HStouch, kjøres en event som lager en temperaturgraf for Stue, og dumper resultatet til filen på disk som ligger som grafikk for koden "stue" i den virtuelle devicen. Jeg trodde jeg var smart når jeg "løste" dette med kun én virtuell device. Men så virket det jo ikke... Og jeg tror jeg forstår hvorfor: HS3 ligger jo ikke og poller bildefilene på disken for endringer hele veien. Så når jeg trykker på "Stue" i HStouch, kjøres eventet som oppdaterer bildefilen, men det er den gamle grafikken som vises.

 

Så, finnes det et triks for å "refreshe" grafikken i en device (få HS3 til å laste filen på nytt fra disk)?

 

Det jeg har forsøkt er å legge inn en ekstra endring av devicen i eventen (først sett devicen til [en annen kode], så til den riktige koden). Har også lagt inn en 1 s pause mellom generering av chart, og endring av device.

Lenke til kommentar
Del på andre sider

Jeg hadde samme problem med mitt søppeltømming-opplegg. Endret hele opplegget fra grafikk til tekst til slutt (men det duger jo ikke i ditt tilfelle). 

 

Var innom en slags løsning: legg inn URL til bildet som "text" på et "text-element" i HSTouch og sett IsHTML=True. Tror jeg fikk til en slags løsning på den måten. Evt lag en html-fil som viser bildet og pek til den URLen. 

Lenke til kommentar
Del på andre sider

11 timer siden, psv021 skrev:

1) Genererer korrekt grafikk

2) Setter virtuell device til korresponderende kode

Jeg forstår enda ikke hvordan du faktisk tilegner grafikken til devicen? Er det Status Graphics du bruker? Eller er det rett og slett en <img> tag?

 

Hvis det er Status Graphics så tror jeg bildene caches, slik at du må endre status (si at du endrer fra 0 til 1, venter 0,1 sekund og endrer til 0 igjen). Jeg vet ikke om faktisk kan gjøres dynamiske på den måten, jeg har aldri sjekket (men man skulle jo tro det).

 

 

 

Du kan også "jukse" som @Blodstrupmoen sier, det gjør jeg med statusbilder om strømmålingen og fra yr.

 

8 timer siden, Blodstrupmoen skrev:

Legg linken til bildet i ImageURLnormal

Ja

8 timer siden, Blodstrupmoen skrev:

sett isVideo til True

Ja.

8 timer siden, Blodstrupmoen skrev:

sett isvideorefreshrate til 0

Nei.

Det er en fin måte å bruke unødvendig mye ressurser, det er ikke så kritisk om det tar et noen sekunder for at et slikt bilde blir oppdatert.

 

Lenke til kommentar
Del på andre sider

Takk for svar. Det jeg gjør i dag er Status Graphics. Har, som Moskus nevner, lagt inn 1 s forsinkelse i eventen, og eventene setter devicen til en annen verdi før den settes til den "reelle" verdien, i håp om at grafikken da skulle oppdateres. Men den virker å lese fra et mellomlager. Det jeg leter etter er egentlig en "refresh status graphics"-kommando...

 

URL-tipset vil forutsette tilgang til bildet via nett, det har jeg ikke per i dag. Kanskje det kan la seg løse...

Lenke til kommentar
Del på andre sider

2 minutter siden, psv021 skrev:

URL-tipset vil forutsette tilgang til bildet via nett, det har jeg ikke per i dag. Kanskje det kan la seg løse...

 

Http://<HomeSeer-IP>/images/status.png ? :) 

 

Edit:

men du har kanskje ikke tilgang til den ipen utenfor nettet ditt hjemme?

Endret av ZoRaC
  • Like 2
Lenke til kommentar
Del på andre sider

3 minutter siden, psv021 skrev:

Det jeg leter etter er egentlig en "refresh status graphics"-kommando...

Det er mulig å sette opp status-bilder via scripts, og dermed muligens kjøre en "hs.SaveDevicesEvents()" (hvis jeg husker riktig)... Men om det blir pushet til HStouch, vet jeg ikke.

 

Men som @ZoRaC sier, ligger det på HS-serveren, så har du jo nett-tilgang til det...

Lenke til kommentar
Del på andre sider

7 minutter siden, ZoRaC skrev:

Jeg tror HS-touch overfører all grafikk til klienten når man "deployer", slik at om man bytter grafikk på en device, så vil klientene vise gammel grafikk inntil man tar ny deploy.

Jo, men det trodde jeg kun var innebygget grafikk. Status Graphics blir ikke deployet.

 

Men når jeg tenker meg om så cacher faktisk klientene Status Graphics når den først ser enheten, og den eneste måten å oppdatere det på er å restarte klienten (cachen slettes kun ved oppstart, med mindre de har gjort noe med det men det tviler jeg på)...

 

Da er man tilbake til URL til bildet.

Lenke til kommentar
Del på andre sider

Ja, og det gir absolutt mening at grafikken ikke lastes på nytt hele tiden. Det hadde blitt tungt, og i 99% av tilfellene helt unødvendig selvsagt. Så jeg har litt forståelse for at min løsning ikke funker :)

 

Skal se mer på URL-løsning...

Lenke til kommentar
Del på andre sider

9 timer siden, ZoRaC skrev:

 

Http://<HomeSeer-IP>/images/status.png ? :) 

 

Edit:

men du har kanskje ikke tilgang til den ipen utenfor nettet ditt hjemme?

Så, nå i ettermiddag har jeg gjort følgende:

 

1) Googlet

2) Installert Apache webserver og etter hvert fått den opp og gå på en port uten konflikter

3) Prøvd å finne gode metoder for å få tilgang til charts fra DeviceHistory via Apache, helst på en sikker måte slik at jeg slipper å plutselig drifte en nettbutikk mot min vilje (eller verre ting)

  3a) Var innom virtuelle foldere

  3b) Funderte litt på automatisk kopiering av filer fra DeviceHistory-output til Apache-området med script fra HS3

  3c) Spiste middag

4) Tenkte jeg skulle høre litt i denne tråden hva andre gjør

5) Leste innlegget til ZoRaC (vet ikke helt hvorfor jeg ikke fikk det med meg i går) (EDIT! Det var jo i dag tidlig :) )

6) Testet http://<homeseer-ip><path-til-charts><chart.png>

 

...så nå blir vel neste steg å avvikle Apache-serveren da, vil jeg tro... :)

Endret av psv021
Lenke til kommentar
Del på andre sider

57 minutter siden, ZoRaC skrev:

Hehe :) Da fikk du lært litt om apache også da. 

 

Betyr det at det fungerte å bruke URL til bildet?

Ja, fungerer glimrende, takk for hjelp. I alle fall så lenge jeg er på samme nettverk. Litt usikker på hvordan det vil være utenfor, men det får bli neste utfordring... isVideo var nøkkelen til å få oppdatert grafikk.

 

TempGraf_temp.PNG

 

I HStouch, graf vises på egen screen som bare inneholder grafen og en lukk-skjermen-knapp. Har icon for graf ved siden av de ulike temperaturene. Ved trykk:

 

1) Kjør HS-event som oppdaterer grafen

2) Sett URL på bilde i graf-skjerm

3) Åpne graf-skjerm

 

Per nå 24H graf som default, men i prinsippet ikke så vanskelig å legge til andre valg (3 døgn, 1 uke, etc). Det vil nok være en øvre grense for hva som er praktisk (og nødvendig).

 

TempGraf_HS-makro.PNG

 

TempGraf_skjerm.PNG

  • Like 3
Lenke til kommentar
Del på andre sider

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.