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

Sikkert trykk


Andreas

Anbefalte innlegg

Hallo.

Skal ha en knapp for å låse opp ytterdøren min. 

Denne vil jeg at man må holde inne i 3 sek før den trigges, og jeg vil at knappeteksten skal telle ned fra 3.

Noe slikt:

Grønn (låst) -> trykk og hold -> gul (3) -> gul (2) -> gul (1) - gul (0) -slipp knapp - rød (ulåst)

 

Noen tanker om hvordan dette kan gjennomføres??

 

Onbuttonpres start timer.

On buttonrelease kjør script

 

Kan man bruke if statement i hstouch, eller må.man bruke scrips og eventer i hs3?

Lenke til kommentar
Del på andre sider

Har du hardware du tenker å bruke til dette?

 

Noen z-waveknapper plukker opp, og sender videre, om knappen er trykket, holdt nede, sluppet opp igjen, osv. En slik kunne ha blitt brukt kanskje. Se denne tråden for diskusjon rundt noen slike brytere. Mulig det aller beste hadde vært en veldig enkel binær sensor med en enkel av/på fjærbelastet bryter koblet til (da trenger det ikke være z-wavebryter eller noe, fungerer fint med en vanlig lysbryter, ringeklokkebryter, etc. Da har du i alle fall full kontroll på om bryteren er inne eller ute og kan bruke det videre i HS3 (bryter trykket = sløyfen lukket = signal til HS3). Det vil kreve fast strøm da, sannsynligvis.

 

Gitt en slik løsning der HS3 vet om bryteren er trykket inn eller ikke, blir neste jobb å definere 3-sekundersforsinkelsen og evt farger. Jeg er usikker på om timer er det beste å bruke, siden du ønsker å telle ned - ikke opp. Det har jeg aldri forsøkt. Jeg tror jeg ville forsøkt uten timer først (men det finnes garantert mange løsninger på dette).

 

Det lønner seg å dele opp problemet og tenke "modulært", så bygge og teste modulene hver for seg. F.eks dersom du kan lage en løsning som gjør det du ønsker rent grafisk i HStouch, er det en smal sak å klistre på en "lås opp dør" etterpå. Du trenger heller ingen fysisk bryter for å teste. Lag en virtuell device med verdien "på" og "av" som du tester med. Så er det en smal sak i ettertid å bygge dette om til å bruke en fysisk bryter.

 

Jeg ser tre moduler her:

1 Fysisk knapp som forteller HS3 om den er trykket inn eller ikke.

2 Nedtellingen med tilhørende grafikk i HStouch

3 Opplåsing av døren

 

En ikke helt gjennomtenkt løsning for å få tankeprosessen i gang:

Fysisk device: TrykkKnapp (som gir verdiene "trykket" eller "ikke-trykket", typisk "On-Open-Motion" eller "Off-Closed-NoMotion" eller noe slikt i HS3)

Virtuell device: TrykkLengde (som har inkrementelle verdier, som 0, 1, 2, 3, 4 osv) (du trenger kanskje bare verdier opp til 3). Her kan du også legge inn grafikk som kan brukes i HSTouch.

Eventer eller script som setter verdien inkrementelt nedover når TrykkKnapp har vært trykket inn i nøyaktig ett sekund. Dette er sikkert mulig å løse med Eventer, men script er sannsynligvis en bedre løsning. Jeg vil tro at dette er et tilfelle der man har behov for Else, som eventer dessverre ikke gir.

 

Hvis TrykkKnapp endres til åpen (ikke trykket inn), endre TrykkLengde til 3.

Hvis TrykkKnapp har vært trykket inn (lukket) i nøyaktig 1 sekund OG TrykkLengde har en verdi som ikke er lik 0, kjør script som endrer verdien av TrykkLengde inkrementelt nedover 1 hakk (hvis 3, sett den til 2) (best løst med "verdi = verdi - 1"). Denne eventen vil ikke kjøre med mindre TrykkLengde > 0.

(Dupliker eventet for "nøyaktig 2 sek" og "nøyaktig 3 sek")

Hvis TrykkLengde endres og blir 0, åpne dør.

 

Dette er en litt klønete løsning og jeg er usikker på hvordan dette vil fungere i praksis. 1 sekund er ikke lenge, så det kan bli noe ustabilitet relatert til det. Ikke sikkert HStouch vil plukke opp endringer i en virtuell device så kjapt, osv. I tillegg er det litt klønete å ha separate eventer for "nøyaktig 1 sekund, nøyaktig 2 sek,osv".

 

Alternativ:

- Dersom knapp trykkes inn, kjør event OpplåsingsSekvens.

- Event OpplåsingsSekvens: Dersom TrykkKnapp har blitt holdt inne i nøyaktig 1 sekund OG TrykkLengde har en verdi > 0 (OG døren er låst): Sett TrykkLengde til 3. Wait 1 sec. Sett TrykkLengde til 2. Wait 1 sec. Sett TrykkLengde til 1. Wait 1 sec. Sett TrykkLengde til 0. Wait 1 sec. Åpne dør.

- Dersom knapp endres og blir "ikke trykket inn", kanseller event OpplåsingSekvens.

 

I virtuell device TrykkLengde definerer du HStouch-grafikk (rød/gul/grønn, etc). Du kan også gjøre dette direkte i HStouch med MatchValue og formatering basert på det. I denne løsningen er du avhengig av at kanselleringen virker, ellers går døren opp etter tre sekunder selv om du har sluppet knappen.

 

Risiko: Du kan risikere at det blir for kronglete å åpne døren på denne måten. Det kan bli irriterende å vente 3 sekunder, osv.

Endret av psv021
  • Like 1
Lenke til kommentar
Del på andre sider

1 time siden, Andreas skrev:

Hallo.

Skal ha en knapp for å låse opp ytterdøren min. 

Denne vil jeg at man må holde inne i 3 sek før den trigges, og jeg vil at knappeteksten skal telle ned fra 3.

Noe slikt:

Grønn (låst) -> trykk og hold -> gul (3) -> gul (2) -> gul (1) - gul (0) -slipp knapp - rød (ulåst)

 

Noen tanker om hvordan dette kan gjennomføres??

 

Onbuttonpres start timer.

On buttonrelease kjør script

 

Kan man bruke if statement i hstouch, eller må.man bruke scrips og eventer i hs3?

 

Prøv dette, kan kanskje virke:

 

Lag 2 devicer i HS, en for status og en for Cancel.

La Knappen du trykker på ha bilder som du bruker i Status Tracking av status devicen.

ActionWhenPressed: Sett Cancel device til false og start en event som sjekker at Cancel er false og venter i 1 sekund før den starter neste event.

Denne eventen må startes med "if the Event Conditions are True" og den setter neste status osv

ActionWhenReleased: Setter Cancel Devicen til True 

 

Jeg er redd 3 sekunder blir kort for å få alt dette til å oppdatere seg på HSTouch plata

 

  • Like 1
Lenke til kommentar
Del på andre sider

Hei. har ikke rukket lest alt dere skrev enda, men sånn bare for å være tydelig.

Dette er en HSTouch funksjon jeg vil ha.

Trykk (på skjermen) i 3 sek osv...

Ingen fysisk trykknapp 

Endret av Andreas
Lenke til kommentar
Del på andre sider

Ah.. Ja. Plukker HStouch opp "hold"? Det er vel et sentralt spørsmål her...

 

Edit: Nå leste jeg en gang til det Fermate skriver, og det er vel måten å gjøre det på (med en action for Pressed og en annen for Released).

Endret av psv021
  • Like 1
Lenke til kommentar
Del på andre sider

Det du spør om er ikke bare lett. Men det er ikke umulig.

 

1 time siden, Andreas skrev:

Denne vil jeg at man må holde inne i 3 sek før den trigges, og jeg vil at knappeteksten skal telle ned fra 3.

Jeg hadde gjort dette enklere enn psv01 hadde gjort, men han har det meste med logikken.

 

HomeSeer har noe som heter counters, og har både "Increase" og "Decrease". :)

HS har også Timers.

 

Jeg har et forslag som IKKE er testet, men jeg tror det kan fungere.

 

Event "ButtonPress"

Trigges manuelt.

Action: Setter Counter til 3

Action: Starter Timer

 

Event "ButtonRelease"

Trigges manuelt

Action: Stop Timer og sett den til 0

Action: Sett Counter til 3

 

Event  "Decrease Counter"

Trigger hver sekund for timeren Timer

Action: Decrease Counter med 1

 

Event "Unlock and reset"

Trigger hvis Counter settes til 0

Action: DeviceAction, unlock door

Action: Stop timeren Timer, og sett den til 0.

 

 

Definert Actions ved ButtonPress i HStouch:

1. Run Event "ButtonPress"

2. Set Status Tracking til Counteren devicevalue. Men jeg er ikke sikker på om dette kan automatiseres. Kanskje du må leve med at det står "3" når den ikke er i bruk".

 

 

Definert Actions ved ButtonRelease i HStouch:

1. Run Event "ButtonRelease"

2. Set Text på knappen til "Trykk for å åpne" (igjen, ikke sikker på om dette er mulig)

 

Dette tror jeg vil fungere. Men jeg tar et veldig sterkt forbehold om noe jeg har glemt. ;) 

 

 

Ellers kan dette gjøres med scripting. Men det blir MYE mer komplisert, samtidig som man får mye mer kontroll...

  • Like 2
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.