KAKU – TPC-200 en TPC-300 commandline interface
Ik heb een programma in elkaar gezet voor het schakelen via de commandline van Klik aan Klik uit (KAKU) producten met zowel de TPC-200 als TPC-300. Zodoende kun je je eigen programma’s gebruiken (bijvoorbeeld excel, phpscript of homeseer) en zo een “shell” command gebruiken om je KAKU apparatuur te schakelen zonder daar enige DLL kennis voor nodig te hebben.
Getest en werkend op:
– Windows XP 32-bit
– Windows Vista/7/8 32/64-bit
* Werkt niet op Windows 95 / 98 / ME i.v.m. unicode compile.
* Werkt niet op Windows Server 2000 (crash)
Het gebruik van dit programma is als volgt: KAKUcli.exe [kanaal] [actie] [optie]
[kanaal] = A1 t/m P16 (codeschijfjes) / 1 t/m 256 (automatisch codesysteem)
[actie] = aan of 17 (inschakelen) / uit of 0 (uitschakelen) / 1 t/m 16 (dimfunctie automatisch codesysteem)
[optie] = tpc200 (forceert het gebruik van de TPC-200 als ook de TPC-300 aangesloten is op hetzelfde systeem, deze optie werkt alleen bij codeschijfjes ontvangers)
Schakel voorbeelden
KAKUcli.exe c7 aan  > schakelt op een codeschijfjes ontvanger kanaal c7 aan.
KAKUcli.exe k13 0Â Â > schakelt op een codeschijfjes ontvanger kanaal k13 uit.
KAKUcli.exe 25 17Â > schakelt op een automatisch codesysteem ontvanger kanaal 25 aan.
KAKUcli.exe 63 uit  > schakelt op een automatisch codesysteem ontvanger kanaal 63 uit.
KAKUcli.exe 215 11Â Â > schakelt op een automatisch codesysteem ontvanger kanaal 215 aan in dimstand 11.
Informatie
* Dit programma werkt met zowel de TPC-200 als de TPC-300, hiervoor zijn ook de bijgeleverde DLL bestanden TPC200L10.dll & TPC300A.dll benodigd, deze horen bij ‘KAKUcli.exe’ in dezelfde folder te staan.
* Indien beide kastjes zijn aangesloten bij gebruik van het codeschijfjes commando, zal de TPC-300 als eerste benaderd worden, indien de optie ’tpc200′ is gegeven wordt alleen de TPC-200 benaderd.
* Om een automatische codesysteem ontvanger te programmeren zet de desgewenste ontvanger in de leermodus en voer een ‘aan’ commando uit om de ontvanger dit kanaal te laten leren.
* De dimfunctie werkt alleen op ontvangers welke deze ondersteunen, raadpleeg hiervoor de desbetreffende handleiding.
* De TPC-200 kan GEEN dimfuncties en automatische codesysteem ontvangers aansturen!
Voor contact, melden van bugs of verbeterideeen etc. kun je mij mailen.
KAKUcli door Sebastiaan Ebeltjes
DISCLAIMER:
* Het gebruik van dit programma is op eigen risico!, de auteur is niet verantwoordelijk voor enige schade aan apparaten en computer door gebruik van dit programma!
* Klikaan Klikuit heeft niets met ‘KAKUcli.exe’ te maken, en zal elke verantwoordelijkheid afwijzen.
* Het Klikaan Klikuit logo is en blijft eigendom van http://www.klikaanklikuit.nl
Source
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=KAKUcli.ico #AutoIt3Wrapper_outfile=KAKUcli.exe #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=N #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Res_Comment=KAKUcli #AutoIt3Wrapper_Res_Description=Klikaan Klikuit commandline interface #AutoIt3Wrapper_Res_Fileversion=1.1.0.0 #AutoIt3Wrapper_Res_LegalCopyright=2012 Phoenix Interactive #AutoIt3Wrapper_Res_Field=KAKUcli v1.1ng (2012-09-17) X86 Win32|Sebastiaan Ebeltjes #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ;Klikaan Klikuit commandline interface gemaakt door: Sebastiaan Ebeltjes (Phoenix Interactive) ;Variabelen definieren Global $OntvangerType, $KanaalLetter, $KanaalNummer, $KanaalSchakelID, $KanaalActie, $KanaalOptie Global $KopTekst, $BerichtTekst1, $BerichtTekst2, $BerichtBox Global $KAKUTPC200DLL_path, $KAKUTPC300DLL_path Global $KAKUString = "KAKUcli v1.1ng (2012-09-17) X86 Win32 - ERROR" Global $KAKUTPC200DLL = @Scriptdir & "\TPC200L10.dll" Global $KAKUTPC300DLL = @Scriptdir & "\TPC300A.dll" ;Bestandscontrole If FileExists($KAKUTPC200DLL) = 0 Then Melding($KAKUString, "Het bestand '" & $KAKUTPC200DLL_path & "' is niet gevonden!", "Dit bestand is vereist om te kunnen schakelen met dit programma!") If FileExists($KAKUTPC300DLL) = 0 Then Melding($KAKUString, "Het bestand '" & $KAKUTPC300DLL_path & "' is niet gevonden!", "Dit bestand is vereist om te kunnen schakelen met dit programma!") If $CmdLine[0] > 1 Then ;Er zijn 2 of meer commando's opgegeven, we gaan aan de slag! ; ****************************** CODESCHIJFJES ***************************** If StringIsAlpha(StringLeft($CmdLine[1], 1)) = 1 Then If $CmdLine[0] > 2 Then $KanaalOptie = $CmdLine[3] $OntvangerType = "0" ;Als er kanaalletter is opgegeven, dan gaat het hier om een een ontvanger met codeschijfjes (Codeschijfjes = 0, Dimbaar = 1) $KanaalLetter = StringUpper(StringLeft($CmdLine[1], 1)) ;StringUpper voor HOOFDletter, anders klopt de formule om het kanaal te berekenen via de ASCII tabel niet meer. If ASC($KanaalLetter) < 65 Or ASC($KanaalLetter) > 80 Then Melding($KAKUString, "Het opgegeven kanaalletter '" & $KanaalLetter & "' is niet juist, het mag alleen uit de letters A t/m P bestaan.") $KanaalNummer = StringStripWS(StringMid($CmdLine[1], 2, 10), 8) ;Lees 10 chars in voor het getal, dit heb ik extra gedaan om een foutmelding weer te geven als men bijvoorbeeld kanaal 148 probeert te schakelen If StringIsDigit($KanaalNummer) = 0 Then Melding($KAKUString, "Het opgegeven kanaalnummer '" & $KanaalNummer & "' is niet juist!", "Het getal mag alleen uit de cijfers 0 t/m 16 bestaan.") If $KanaalNummer < 1 Or $KanaalNummer > 16 Then Melding($KAKUString, "Het opgegeven kanaalnummer '" & $KanaalNummer & "' is niet juist!", "Het kanaalgetal moet 1 t/m 16 zijn.") $KanaalSchakelID = (ASC($Kanaalletter) - 65) + (($Kanaalnummer - 1) * 16) ;De formule om het schakel kanaal te berekenen (0-255) $KanaalActie = "niets" If $CmdLine[2] = "aan" Then $KanaalActie = "1" If $CmdLine[2] = "17" Then $KanaalActie = "1" If $CmdLine[2] = "uit" Then $KanaalActie = "0" If $CmdLine[2] = "0" Then $KanaalActie = "0" ;Als de kanaalactie nog steeds "niets" is dan is deze niet goed opgegeven If $KanaalActie = "niets" Then Melding($KAKUString, "De opgegeven schakelactie '" & $CmdLine[2] & "' is niet juist!", "Dit moet zijn: [aan of 17] voor inschakelen / [uit of 0] voor uitschakelen.") Schakelen($OntvangerType, $KanaalSchakelID, $KanaalActie, $KanaalOptie) EndIf ; ****************************** CODESCHIJFJES ***************************** ; ****************************** AUTOMATISCH CODESYSTEEM ***************************** If StringIsDigit($CmdLine[1]) = 1 Then If $CmdLine[0] > 2 Then $KanaalOptie = $CmdLine[3] $OntvangerType = "1" ;Als er alleen cijfers zijn opgegeven voor het kanaal. dan gaat het hier om een een modernere (dimbare) ontvanger (Codeschijfjes = 0, Dimbaar = 1) $KanaalSchakelID = $CmdLine[1] ;Het KanaalSchakelID is meteen het opgegeven kanaalnummer op de commandline. $KanaalActie = "niets" If $CmdLine[2] >= 0 And $CmdLine[2] <= 17 Then $KanaalActie = $CmdLine[2] If $CmdLine[2] = "aan" Then $KanaalActie = "17" If $CmdLine[2] = "uit" Then $KanaalActie = "0" If $KanaalActie = "niets" Then Melding($KAKUString, "De opgegeven schakelactie '" & $CmdLine[2] & "' is niet juist!", "Dit moet zijn: [uit of 0] voor uitschakelen / [1...16] voor dimmen / [aan of 17] voor inschakelen.") Schakelen($OntvangerType, $KanaalSchakelID, $KanaalActie, $KanaalOptie) EndIf ; ****************************** AUTOMATISCH CODESYSTEEM ***************************** Melding($KAKUString, "Het kanaal commando kan alleen uit alfanumerieke nummers en/of cijfers bestaan!") Exit Else Melding($KAKUString, "Er zijn geen of te weining commando's opgegeven!", "Het gebruik van dit programma is als volgt: " & @CRLF & @ScriptName & " [kanaal] [actie] [optie]") Exit EndIf Exit Func Schakelen($OntvangerType, $KanaalSchakelID, $KanaalActie, $KanaalOptie) If $OntvangerType = "0" Then ;Codeschijfjes ontvanger If $KanaalOptie = "tpc200" Then ; Alleen TPC-200 Schakelen $Schakelen = DllCall($KAKUTPC200DLL, "int", "Send", "int", $KanaalSchakelID, "int", $KanaalActie) If $Schakelen[0] = 0 Then ;De DLL functie "send" geeft een 0 terug, dus het kastje TPC-200 is niet aangesloten. Melding($KAKUString, "Het kastje TPC-200 is niet aangesloten op uw systeem!, controleer de verbinding.") EndIf Else ; Eerst TPC-300 Schakelen $Schakelen = DllCall($KAKUTPC300DLL, "int", "Send", "int", $OntvangerType, "int", $KanaalSchakelID, "int", $KanaalActie) If $Schakelen[0] = 0 Then ;De DLL functie "send" geeft een 0 terug, dus het kastje TPC-300 is niet aangesloten. ; Probeer TPC-200 te schakelen $Schakelen = DllCall($KAKUTPC200DLL, "int", "Send", "int", $KanaalSchakelID, "int", $KanaalActie) If $Schakelen[0] = 0 Then ;De DLL functie "send" geeft een 0 terug, dus het kastje TPC-200 is niet aangesloten. Melding($KAKUString, "Het kastje TPC-200 / TPC-300 is niet aangesloten op uw systeem!, controleer de verbinding.") EndIf EndIf EndIf EndIf If $OntvangerType = "1" Then ;Automatisch codesysteem ontvanger $Schakelen = DllCall($KAKUTPC300DLL, "int", "Send", "int", $OntvangerType, "int", $KanaalSchakelID, "int", $KanaalActie) If $Schakelen[0] = 0 Then ;De DLL functie "send" geeft een 0 terug, dus het kastje TPC-300 is niet aangesloten. Melding($KAKUString, "Het kastje TPC-300 is niet aangesloten op uw systeem!, controleer de verbinding.", "note: ontvangers met een automatisch codesysteem kunnen NIET geschakeld worden met de TPC-200.") EndIf EndIf Exit EndFunc ;Schakelen Func Melding($KopTekst, $BerichtTekst1="", $BerichtTekst2="") MsgBox(64, $KopTekst, $BerichtTekst1 & @CRLF & $BerichtTekst2) Exit EndFunc |
[#/klikaanklikuit/kakucli” ]