Event Listener

Hjälp med plugins, tillägg (exempelvis webbtillägget) och exempelkod som inte ingår i Switch Kings officiella installationspaket
Forum rules
För att kunna hjälpa dig med supportfrågor behöver vi så mycket information som möjligt.
Innan du skapar en ny tråd, läs gärna:
viewtopic.php?f=10&t=20
pl1sk3n
2 stars
2 stars
Posts: 17
Joined: Sat 12 Mar 2011, 20:46

Re: Event Listener

Post by pl1sk3n » Sun 13 Mar 2011, 17:29

Tack igen Martin :clap:

Känner mig som en komplett noob nu :oops:
Läste inte igenom scriptet & missade helt dina egna enheter, lol.

Har dock ett problem som kvarstår, hmmm.
Har tagit bort dina & flytat upp mitt script, har även bytt dim 60 till level.
Har öppnat port 8080 i switchking client i Vista.
Har prövat att stänga av brandväggen helt, samma resultat.
Är det i routern jag ska öppna porten, behövs det?

Hur som, så här ser det ut nu i win loggen;

Loggnamn: Application
Källa: SwitchKingScriptExecutorPlugin
Datum: 2011-03-13 16:36:13
Händelse-ID: 0
Aktivitetskategori:Ingen
Nivå: Fel
Nyckelord: Klassiskt
Användare: Saknas
Dator: Kent-dator
Beskrivning:
File does not exist: C:\temp\on.bat.
Händelsens XML-data:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="SwitchKingScriptExecutorPlugin" />
<EventID Qualifiers="0">0</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-03-13T15:36:13.000Z" />
<EventRecordID>7772</EventRecordID>
<Channel>Application</Channel>
<Computer>Kent-dator</Computer>
<Security />
</System>
<EventData>
<Data>File does not exist: C:\temp\on.bat.</Data>
</EventData>
</Event>

Och här är mitt nya script;

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="switchKing.scriptExecutorPlugin" type="SwitchKing.Server.Plugins.ScriptExecutor.Configuration.ListenerSection, ScriptExecutorPlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
</configSections>
<switchKing.scriptExecutorPlugin name="Scripts">
<devices>
<!-- Use the tag below to set scripts and arguments for your devices. -->
<!-- Attributes as follows: -->
<!-- deviceName: The name of the device to trigger script for. Must be the same as set in Switch King Client. -->
<!-- onScript: The full path to the executable file to run when device is turned on. -->
<!-- onScriptArgs: Arguments passed to the executable file (example: arg1 and arg2): C:\temp\on.bat arg1 arg2 -->
<!-- offScript: The full path to the executable file to run when device is turned off. -->
<!-- offScriptArgs: Arguments passed to the executable file (example: arg1 and arg2): C:\temp\off.bat arg1 arg2 -->
<!-- dimScript: The full path to the executable file to run when device is dimmed. -->
<!-- use [level] or [dimlevel] in the file name to have different files when dimmed to different -->
<!-- levels, for example C:\temp\dim[level].bat, where level is the dim level in percent. -->
<!-- dimScriptArgs: Arguments passed to the executable file (example: arg1 and arg2): C:\temp\dim.bat arg1 arg2 -->
<!-- waitForExit: Waits for the script to fully execute before continuing the work. (true/false) -->
<add deviceName="vrum1"
onScript="C:\temp\on.bat" onScriptArgs="vrum1"
offScript="C:\temp\off.bat" offScriptArgs="vrum1"
dimScript="C:\temp\on[level].bat" dimScriptArgs="vrum1"
intercept="false"
waitForExit="false" />
</devices>
</switchKing.scriptExecutorPlugin>
</configuration>

Skulle va skönt att få igång det här nu :banghead:

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: Event Listener

Post by Martin » Sun 13 Mar 2011, 17:51

Varken Event Listener eller Script Executor Plugin är plugin som är gjorda specifikt för Dovado.
Tanken är att du ska kunna använda dem till i princip vad som helst, vilket i sin tur leder till att du själv måste beskriva/definiera vad du vill att Switch King ska göra när en lampa tänds/släcks/dimmas.

I din konfigurationsfil har du angett:

Code: Select all

onScript="C:\temp\on.bat" onScriptArgs="vrum1"
offScript="C:\temp\off.bat" offScriptArgs="vrum1"
dimScript="C:\temp\on[level].bat" dimScriptArgs="vrum1"
Dessa gör att varje gång Switch King får ett on, off eller dim så försöker Switch King starta filen som står i respektive attribut.
När "Off" skickas till en enhet så körs "C:\temp\off.bat" med argumentet "vrum1" ("C:\temp\off.bat vrum1").
Dessa filer måste du skapa själv.

Om du ska kommunciera med din Dovado kan du exempelvis använda programmet DevTelCon.
Det finns här:
http://www.dovtelcon.info/pages/dovtelcon-cmd.php

Om vi för enkelhets skull säger att du skulle lägga filen DovTelConCmd.exe i katalogen C:\Temp, så kan du i samma katalog skapa en .bat-fil (i exempelvis Anteckningar).
Skapa filen "on.bat", öppna den med Anteckningar och lägg till överst i filen:

Code: Select all

DovTelConCmd.exe --host=din_routers_ip --pwd=din_routers_password --on=%1
...där du byter ut _din_routers_ip och din_routers_password mot det du har ställt in i dovadon.
"%1" kommer att bli det som står i pluginets konfigurationsfil innanför "onScriptArgs", vilket i ditt fall blir "vrum1".

Som en parentes:
Eftersom du nu har stickan i Dovado:n bör du i pluginets konfigurationsfil leta upp:

Code: Select all

intercept="false"
och ändra denna till

Code: Select all

intercept="true"
Om du inte gör det så kommer Switch King att försöka skicka ut signalen som om stickan satt i din dator, vilket den inte gör. Det kommer att fungera ändå, men det leder till längre svarstider, och svarstiden är redan lång för att kommunicera med dovadon.
Martin | Switch King

pl1sk3n
2 stars
2 stars
Posts: 17
Joined: Sat 12 Mar 2011, 20:46

Re: Event Listener

Post by pl1sk3n » Sun 13 Mar 2011, 18:09

Grymt svar Martin, tack igen.

Dock så börjar jag känna att detta kanske är mer än jag kan få till.....

Ska dock göra ett försök med hjälp av dina anvisningar, men det får bli en annan dag.

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: Event Listener

Post by Martin » Sun 13 Mar 2011, 18:53

Du får väl hinta om vad det är som verkar knepigt, egentligen låter det nog knepigare än vad det är, men återkom när du tar tag i det igen :wave:
Martin | Switch King

pl1sk3n
2 stars
2 stars
Posts: 17
Joined: Sat 12 Mar 2011, 20:46

Re: Event Listener

Post by pl1sk3n » Sun 13 Mar 2011, 19:58

Hahaha kunde inte hålla mig trots det jag skrev, sen vart jag ännu mer triggad att få igång detta efter ditt svar :D

Har nu under C:temp lagt dovtelcon + on off & dim .bat filer enl. dina anvisningar.
Därifrån kan jag nu tända & släcka spottarna, jag har inga felmeddelanden i win loggen längre.

Prövade att lägga in nya scheman i SK & jag ser i gui'et att den släcker & tänder, har inte lagt nått dim än.
Kommandot verkar dock inte gå fram som det ska.

Så här ser mina bat.filer ut;

DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --on=vrum1
DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --off=vrum1
DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --on[level]=vrum1

Känns som att det är nära nu, eller?
Är alla ändringar man gör direkta eller behöver man i nått moment starta om SK eller datorn?

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: Event Listener

Post by Martin » Sun 13 Mar 2011, 20:15

Om du kan släcka eller tända en lampa genom att dubbelklicka på on.bat, off.bat eller liknande så är du nog nära iaf :)
Att du inte får några felmeddelande i Windows loggbok beror på att Switch King hittar själva filen och försöker starta den, och det är ju bra...
Det kan vara så att du måste ange hela sökvägen för DovTelConCmd.exe i .bat-filerna:

Code: Select all

C:\Temp\DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --on=vrum1
...det kommer jag faktiskt inte ihåg...

Du kan också behöva ändra i konfigurationsfilen för pluginet:

Code: Select all

waitForExit="false"
till

Code: Select all

waitForExit="true"
Genom att ändra detta så tvingar du Switch King att vänta lite extra, och på så sätt får signalen bättre chans att nå Dovadon.

Det kan också, som du skriver, vara idé att starta om tjänsterna som Switch King använder, genom att gå in i kontrollpanelen, administrationsverktyg, tjänster och leta fram:
  • SwitchKing Framework Service
  • SwitchKing REST Service
  • SwitchKing Invocation Service
  • SwitchKing Data Collector Service
...eller starta om datorn - det ger samma effekt.

Switch King har också en loggfil som den skriver till. Den ligger under C:\Program Files\Switch King\Switch King Server\Log.
I den filen kan du hitta eventuella fel och varningar som Switch King kastar ifrån sig, men jag tror inte att det är några där - pluginet kastar sina fel till Windows egen loggbok, vilket du redan har sett.
Martin | Switch King

pl1sk3n
2 stars
2 stars
Posts: 17
Joined: Sat 12 Mar 2011, 20:46

Re: Event Listener

Post by pl1sk3n » Sun 13 Mar 2011, 21:16

Du e en klippa Martin :clap:

La till C:\temp\ i bat filen så on off funkar men dim är ff ett problem, SK dimmar men kommandot går inte fram :?:

Sista loggen från SK;

StackTrace for Level 1:
vid System.Threading.Thread.SleepInternal(Int32 millisecondsTimeout)
vid SwitchKing.Server.WinSvcServiceHost.InvocationService.ProcessDeviceEvents()
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Running version 0.9.2.4 of server and version 1.82 of DB.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Build date and time for this version is 2011-01-22 20:34:24.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Telldus version is 2.0.4.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Validating database version and executing upgrade scripts.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- No upgrade performed. Database version is already up to date.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Status of license is NotFound.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Opening service channel for Framework.
{Framework Service - Startup} --<Status> -- 2011-03-13 20:45:03 -- Service channel for Framework opened.
{BusinessAccessDataCollection - ReinitCounter} --<Status> -- 2011-03-13 20:45:03 -- Saving 99 DataSourceValues with min date of 2011-03-12 17:32:50 and max date of 2011-03-13 20:41:18.
{Plugin Loading} --<Status> -- 2011-03-13 20:45:11 -- Creating plugin of type SwitchKing.Server.Plugins.ScriptExecutor.Plugin.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:45:11 -- Device with id 1, name Example Device, native id 1 and code A:1 is being turned off. Method used is TellStickWrapper.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:45:14 -- Device with id 1, name Example Device, native id 1 and code A:1 is being turned off. Method used is TellStickWrapper.
{BusinessAccess - Invocation} --<Warning> -- 2011-03-13 20:45:17 -- Device with id 1, name Example Device, native id 1 and code A:1 is defaulting to state off.
{REST Service - Startup} --<Status> -- 2011-03-13 20:45:21 -- Opening service channel for REST.
{REST Service - Startup} --<Status> -- 2011-03-13 20:45:22 -- Service channel for REST opened.
{BusinessAccess - Invocation} --<Warning> -- 2011-03-13 20:46:00 -- Device with id 1, name Example Device, native id 1 and code A:1 is defaulting to state off.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:46:00 -- Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:46:07 -- Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:46:32 -- Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:48:00 -- Device with id 2, name vrum1, native id 2 and code 1:1 is being dimmed to level 50. Method used is TellStickWrapper.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:48:01 -- Device with id 2, name vrum1, native id 2 and code 1:1 is being dimmed to level 50. Method used is TellStickWrapper.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:49:00 -- Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:50:00 -- Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.
{BusinessAccess - Invocation} --<Status> -- 2011-03-13 20:51:00 -- Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.

Device id1 är väll exempel enheten för det är på min device id2 man ser en del konstigheter, has a nonmatching state :?:

Kul det här med teknik :D finns en risk att man kommer automatisera hela kåken :mrgreen:

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: Event Listener

Post by Martin » Sun 13 Mar 2011, 21:48

Denna är fel...
pl1sk3n wrote:DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --on[level]=vrum1
Det "[level]" du anger i pluginets konfigurationsfil har .bat-filen ingen aning om...

I konfigurationsfilen för pluginet ser det ut så här:

Code: Select all

dimScript="C:\temp\on[level].bat" dimScriptArgs="vrum1"
Det innebär att det krävs en .bat-fil för varje dimmernivå - en "on10.bat", en "on20.bat" etc...

I din "on10.bat" bör det se ut så här (efter att ha läst på DovTelCons hemsida) - lägg märke till %1:
pl1sk3n wrote:DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --dim=%1:10
I din "on20.bat" bör det bli så här:
pl1sk3n wrote:DovTelConCmd.exe --host=192.168.1.1 --pwd=xxxxxxx --dim=%1:20

Det som följer nedan är egentligen mer än du frågar efter, men du får läsa om du vill ändå :roll:

Det här är ju lite att ge sig in i .bat-filernas hemliga värld, men "%1" betyder "första argumentet".

Med denna...

Code: Select all

dimScript="C:\temp\on[level].bat" dimScriptArgs="vrum1"
...så skapar Switch King anropet "on10.bat vrum1". Just "vrum1" blir då första argumentet, och när .bat-filen anropas blir detta "vrum1".

Om du _inte_ hade haft "onScriptArgs", "offScriptArgs" och "dimScriptArgs" så hade du varit tvungen att ha en "on.bat" för varje enskild enhet du vill kontrollera, men genom att ange argument så kan man skicka in namnet på enheten som ska styras och klara sig med färre filer.
Martin | Switch King

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: Event Listener

Post by Martin » Sun 13 Mar 2011, 21:50

Loggposterna som du nämnde är inget att bry sig om, egentligen...
pl1sk3n wrote:Device with id 2, name vrum1, native id 2 and code 1:1 has a nonmatching state.
...betyder att Switch King tycker att enheten är i fel läge - exempelvis är "på" när den är schemalagd "av", och att Switch King kommer att skicka ut en korrigeringssignal.
pl1sk3n wrote:Device with id 1, name Example Device, native id 1 and code A:1 is defaulting to state off.
...betyder att enheten inte har ett schema definierat som anger om enheten ska vara på eller av.
Martin | Switch King

pl1sk3n
2 stars
2 stars
Posts: 17
Joined: Sat 12 Mar 2011, 20:46

Re: Event Listener

Post by pl1sk3n » Mon 14 Mar 2011, 18:07

Hej igen Martin, tackar som vanligt för din hjälp :clap:

Har försökt att få igång ett dim kommando med följande bat-fil;

C:\temp\DovTelConCmd.exe --host=192.168.1.1 --pwd=XXXXXXX --dim=vrum1:30

Lägger ett schema i SK med start dim 30%, Sk utför men inget går fram.

Bat-filen ovan kan jag starta med korrekt dim från dovtel mappen.

C:\temp\DovTelConCmd.exe --host=192.168.1.1 --pwd=XXXXXXX --on30=vrum1 kan jag inte starta alls.....

Några ideer på detta :?:

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests