Event met Device value change van 3 naar 0 (opgelost)

Forum over Homeseer scripts (DUTCH forum)

Moderators: TANE, Ruud

Post Reply
Herbus
Member
Member
Posts: 363
Joined: Mon Mar 27, 2006 12:28 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Herbus »

Ik wil een event maken dat een actie uitvoert als de value van een virtual device verandert van 3 naar 0 en omgekeerd.
Ik zoek me gek maar kan het niet vinden. Alleen detecteren dat de value 0 wordt is niet voldoende want ik wil geen actie uitvoeren als de value van 2 of 1 verandert in 0.
Iemand een idee hoe ik dit kan maken?

Herbus (Jos)

<font size="1">Homeseer 2.3.0.19, HSTouch (Albatron Touchscreen), VB plugin for communication with alarmpanel
ACT TI203, ActiveBackup, DooNetwork, BLDeviceMatrix, Jon00 Web page builder
RFXCom, RFXCharts, RFXMeter (gas, electricity, water), Oregon THGR 228 N,
Modules: Xanura SAIX12/DAIX12, KaKu (fridge), SM10 (doorbell)</font id="size1">
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Rene »

Je moet denk ik iets met een 2e device doen. Het 2e device laat je dezelfde waarde krijgen als het 1e device in de actie van het 1e device.

Voorbeeld:
- Trigger op device value change device (set to any), in de actie run je een script. In dit script doe je het volgende:
- Vraag value 1e device op (dit is de nieuwe waarde), en vraag value van het 2e device op (dit is de oude waarde)
- Je hebt nu beide waardes om iets te doen, b.v. als waarde 1e device = 0 en waarde 2e device = 3 dan is het eerste device van 3 naar 0 gegaan
- Nadat je de juiste actie hebt genomen maak je de waarde van device 2 gelijk aan die van device 1

Rene.
User avatar
Fantic
Member
Member
Posts: 201
Joined: Sat Feb 21, 2009 2:11 pm
Location: Loenen, UT, Netherlands
Contact:

Event met Device value change van 3 naar 0 (opgelost)

Post by Fantic »

tikfoutje:
- Je hebt nu beide waardes om iets te doen, b.v. als waarde 1e device = 0 en waarde 2e device = 0 dan is het eerste device van 3 naar 0 gegaan
moet zijn - Je hebt nu beide waardes om iets te doen, b.v. als waarde 1e device = 0 en waarde 2e device = 3 dan is het eerste device van 3 naar 0 gegaan


Regards, Maarten.
Never let a computer know you're in a hurry.
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Rene »

Dank je Maarten. Je begrijpt in ieder geval het idee;-)

Rene.
Herbus
Member
Member
Posts: 363
Joined: Mon Mar 27, 2006 12:28 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Herbus »

Bedankt voor de tip. Script zat zo in elkaar. Maar..........
Ik heb geen 'set to any' bij device value change. Dat komt denk ik omdat ik bij het opstarten van HS een script heb lopen dat de values, tekst en icons van een device vooraf instelt:

hs.DeviceValuesAdd(zoneSTR, "Sabotage (sluiting)" & Chr(2) & "0" & Chr(1) & _
"Open" & Chr(2) & "2" & Chr(1) & _
"Dicht" & Chr(2) & "3" & Chr(1) & _
"Overig" & Chr(2) & "999", False)

hs.DeviceValuesGraphicsAdd(zoneSTR, "\images\security\DisArmed.gif" & Chr(2) & "0" & Chr(1) & _
"\images\security\Armed.gif" & Chr(2) & "2" & Chr(1) & _
"\images\security\Armed.gif" & Chr(2) & "3" & Chr(1) & _
"\images\security\alarmalert.gif" & Chr(2) & "999")

Voordeel van DeviceValuesAdd en DeviceValuesGraphicsAdd is dat een device altijd de juiste tekst en icon heeft ongeacht wanneer en waar de value wijzigt. Daar wil ik eigenlijk niet van af.
Maar ik kan nu alleen kiezen uit: becomes, for at least of for exactly. Het lijkt erop dat hiermee ook gelijk de optie vervalt voor 'set to any'.
Iemand nog een suggestie?

Herbus (Jos)

<font size="1">
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Rene »

Deze waarden heb ik ook inderdaad bij een security sensor die ik via RFXCom ontvang. Dat ligt dus niet aan het startup script. Maar als ik becomes selecteer dan kan ik vervolgens any value aangeven.

Rene.
Herbus
Member
Member
Posts: 363
Joined: Mon Mar 27, 2006 12:28 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Herbus »

Ik kan alleen kiezen uit de values die ik met DeviceValuesAdd heb ingesteld. Any Value staat er niet bij!

<font size="1">
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Rene »

Dan houdt het denk ik op.

Rene.
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Event met Device value change van 3 naar 0 (opgelost)

Post by AshaiRey »

Met vbscript kan het volgende doen.
De huide status naar een bestandje schrijven en dat uitlezen bij een wisseling en updaten
(er vanuit gaand dat het script al loopt)

- Er wordt een change gedetecteerd
- Het script leest de vorige opgeslagen waarde uit het bestandje.
- Doet de logic die nodig is bij de huidige status en de voorgaande.
e.g. doe iets als de vorige waarde 3 was en nu 0 en doe geen actie als de vorige waarde 2 of 1 was.
- Schrijft de huidige status weer terug naar het bestandje.

Ik hoop dat je het idee volgen kan.
Herbus
Member
Member
Posts: 363
Joined: Mon Mar 27, 2006 12:28 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Herbus »

Ik snap wat je bedoelt denk ik. Mijn probleem is alleen dat ik geen script kan starten omdat bij Device Value Change niet getriggerd wordt op een verandering van Any Value. Ik kan wel kiezen voor een verandering naar value 1, 2, 3 of 4 etc.....
Dan zou ik voor iedere value een apart event moeten maken. Niet echt handig.

Ben nu van plan om de DeviceValuesAdd en DeviceValuesGraphicsAdd niet te doen voor deze specifieke device. In m'n code zal ik voor dit device de string en icon per waarde (select case) instellen.

Als ik het goed heb gaat dat met:
hs.SetDeviceString("Z32", "<img src=Disarmed.gif>", & "Alarm uitgeschakeld",True)

En dat voor alle values.
Als het goed is kan ik dan bij het event triggeren op een verandering in Any Value.
Beetje omslachtig en weer een hele ombouw maar ik zie even geen alternatief..........[?]

Herbus (Jos)

<font size="1">
Herbus
Member
Member
Posts: 363
Joined: Mon Mar 27, 2006 12:28 pm
Location: Netherlands

Event met Device value change van 3 naar 0 (opgelost)

Post by Herbus »

Opgelost! De hele avond zitten prutsen met hs.SetDeviceString("Z32", "<img src=Disarmed.gif>", & "Alarm uitgeschakeld",True).
Was geen succes. Optisch wel aardig maar als je de string uitleest krijg je ook het hele verhaal terug.

Opeens een ingeving (soms kan het zo simpel zijn...) Ik heb een schaduw device aangemaakt die dezelfde value krijgt als het oorspronkelijke device. Omdat deze device alleen een value heeft wordt hij niet opgenomen in het DeviceValuesAdd en DeviceValuesGraphicsAdd script. Kan bij een event dus wel gebruikt worden met Any Value.

Tweede device houdt de vorige status bij. Kortom: met 15 regels code opgelost. Wel een avond verder maar soms moet dat kennelijk zo zijn.
Bedankt voor de suggesties.

Herbus (Jos)

<font size="1">
Post Reply

Return to “Homeseer Scripts Forum”