Many of the web developers faced problem to use Aptana Studio as they
cannot configure the XDebug in their workstation. Recently I configure
my Aptana Studio for XDebug successfully. Here it is:
Requirements:
Aptana Studio 3.2.0 or newer. I use 3.2.2 to demonstrate the tutorial
XAMPP / WAMP/ LAMP or any other web server solutions.
PHP 5.3 or newer.
XDebug is already configured in the php.ini .If the XDebug is not configured in your web server, follow this link. I have discussed the topic in "Configure XDebug" post.
Steps:
Click Window->Preferences.
In the Preferences dialog go to Aptana Studio -> Editors -> PHP -> PHP Interpreters.
Click "Add". Add a PHP interpreter by giving the php
information. Select the php.exe file from the installed php web server.
In this case I have used XAMPP sever.
Don't close the prompt window. Go to Aptana Studio -> Web Servers and Create a new Web Sever by clicking "New". Select Simple Web Server.
Enter the data for the localhost server and click "OK".
Now close the preference window and go to Run ->Debug Configurations from the menu options.
Select the "PHP Web Page" then click New Launch Configuration. Enter the field values and select Apply.
Close the Prompt window.
Now Debug the PHP Project by selecting Debug As -> PHP Server.
Aptana Studio automatically open the Debug Perspective and continue to
debug. Now, you can debug your PHP project using XDebug and Aptana
Studio. Happy Codding .
Hier mal ein paar Möglichkeiten, FHEM per Http-Get zu steuern.
Mit Curl von Curl.Haxx.com bietet sich eine sehr schöne Möglichkeit, FHEM mit
den unterschiedlichsten Befehlen zu steuern. natürlich könnt ihr statt CURL auch einen normalen
Webbrowser verwenden und die URL einfügen. (Nur GET-Anfragen)
Die URL's können direkt aus dem Webinterface von FHEM abgelesen und kopiert werden.
Dazu muss man in Webinterface den Link auf ein Steuerungssignal einfach kopieren und in CURL einfügen. Die URL's muss codiert abgesendet werden.
Hier kann die URL codiert werden: Encoder (Escaped auswählen)
oder den URLEncoder aus dem EVACmd-Paket verwenden.
Hier mal ein paar Möglichkeiten, den XBMC per Http-Get zu steuern.
Mit Curl von Curl.Haxx.com bietet sich eine sehr schöne Möglichkeit, den XBMC mit
den unterschiedlichsten Befehlen zu steuern. natürlich könnt ihr statt CURL auch einen normalen
Webbrowser verwenden und die URL einfügen.
Die URL's habe ich mithilfe von Wireshark ausgelesen, während ich das Webinterface des XBMC steuerte. Die URL's bzw. der Json-Request muss codiert abgesendet werden.
Hier kann die URL codiert werden: Encoder (Escaped auswählen)
oder den URLEncoder aus dem EVACmd-Paket verwenden.
Die URL für den JSON-Request ist immer http://IP-DES-XBMC:8080/jsonrpc?request= und anschließend der codierte JSON-Request.
Curl hat leider Probleme mit verschachtelten JSON-Requests, weshalb für spezielle Befehle das
Modul WebGet2 verwendet werden sollte. Beim dem Webget2-Modul besteht auch die Möglichkeit
die Befehle in einer separaten Konfigurationsdatei zu hinterlegen.
Datei aus Pfad abspielen (z.B. SMB://NAS/Msuik/T4E_Clubstream.pls): Curl kann diese URL aufgrund der verschachtelten geschweiften Klammern nicht absenden. Diese URL muss entweder über Browser oder über das WebGet-Modul von EVACmd abgesendet werden! http://192.168.1.113:8080/jsonrpc?request={%22jsonrpc%22%3A%20%222.0%22%2C%20%22method%22%3A%20%22Player.Open%22%2C%20%22params%22%3A%20{%20%22item%22%3A%20{%22file%22%3A%20%22smb%3A%2F%2Fnas%2FMusik%2FTechno4Ever_Clubstream.pls%22%20}}}
Entwicklung von EVACMD Eingabe Verarbeitung Ausgabe
29.06.2013 Updates
- Regelverarbeitung modifiziert (Für Regex je Rule)
- Jede Regel kann nun Ihren eigenen Regex für die Auswertung besitzen (Fallback auf Programm Regex).
- Senden von Dateien per Mail-Anforderung über GET (Datei) oder FIND (Dateiliste)
- Struktur der Config modifiziert (Programmeinstellungen in 'Settings', Regeleinstellungen in 'Event')
- Hilfsdatei für Binärdatei kann in Programm hinterlegt werden (Help)
- Teilkonfigurationsdateien der Programme kann in den Programmeinstellungen unter 'Config' definiert werden (Config).
- Faststart auf SQLite-Datenbank umgestellt, Indizierung verbessert
- Neues Modul Mod_RSS für RSS-Feeds Updates
14.06.2013 Updates Download hier: EvaCMD
- Besseres Prozessmanagement
- Verkapselung der Regeln
- Performance und Stabilität
- Zeitbereiche für Regeln (Nur Stundenbasiert)
- Update der Infos bei Deamons
- Neues Modul - Telnet
- Neue Spracherkennung über CMU Sphinx bzw. Julius
- Neue Spracherkennung (Online, Freitext) über Google-Dienst
- MOD-Show erneuert
- MOD-Wingui verbessert
- Webserver unterstützt direkte Weiterleitung von Befehlen
- MOD-Wetter hinzugefügt
- Senden von Mails über SendeMail.exe
- Diverse Bugfixes
- Messagelisten entfernt
- Neues Modul FastStart (Indizierung von Ordnern und Suche)
- Redirect von Meldungen an die Deamons angepasst.
- Entfernen von verteilten Programmstrukturen
26.04.2013 neues zu EVACMD
Zeitberechnung unterstützt Feiertage
EVACmd wird jetzt zu EVAGUI mit einer Benutzeroberfläche ..
Neue Funktionen der EVAGUI: Win-GUI
Mod Serial ist jetzt konfigurierbar.
Viele kleine Verbesserungen
Vorbereitung für Facebook-Nachrichtenabfrage über FBCMD
Programme können separiert abgelegt werden.
14.4.2013 ... Modul- und EVACmd-Update
Tool zum automatisierten starten von Deamons und Programmen mithilfe einer
konfigurierten XML-Datei. Die Auswertungen erfolgen mit Regex.
Dieses Ostern konnte ich mich gottseidank intensiv mit der Programmierung
von EVACMD auseinandersetzen und kann nun schonmal die erste Beta-Version
präsentieren !
Eine erste Beta-Version findet sich unter: EvaCMD auf Soruceforge.Net
Beispielkonfiguration:
EVACmd startet den Service Webserver als deamon.
Der Webservice ist nun im Browser unter http://localhost erreichbar und stellt die im Ordner vorhandene test.svg grafisch dar.
Bei einem klick auf 'Spracherkennung' liefert der Webserver die ID zu dem geklickten
Bildbereich an die Konsole zurück. (ID=Sprache)
EVACmd überprüft die ID anhand der Regeln und findet die Regel 1 eq Sprache.
EVACmd führt den zu der Regel hinterlegten Befehl z.B. Sprechen mit ersetzten Argumenten
z.B. 'Bitte sprechen Sie' aus.
Das Programm für Sprechen wird mit den Argumenten gestartet und es wird 'Bitte Sprechen Sie ausgegeben'. Durch die Regel Wait=True wird EvaCmd angewiesen den nächsten Befehl erst zu starten, nachdem der aktuelle Befehl ausgeführt wurde.
EVACmd findet eine weitere Regel für Sprache, bei der das Programm zu Spracheingabe gestartet wird. Das Resultat der Spracheingabe wird wiederrum an EVACmd übergeben (z.B. Fernseh aus)
Aufgrund der hinterlegten Regeln des Programms Sprache wird ein Webget ausgeführt, dessen definition in der Konfigurationsdatei zu Webget definiert wurde.
Webget startet nun einen aufruf einer IP-Adresse+Port mit dem hinterlegtenAufruf.
Der Aufruf übergibt an FHEM den Befehl den Fernseher auszuschalten, dieser wiederrum sendet
an das Gerät den Befehl TV aus.
Beschreibung der Zeitdefinition (Times):
Die Zeiten können in der XML-Datei auf unterschiedlichste Weise zusammengestellt werden.
Die Grunddefinition besteht aus Jahr:Monat:Tag:Stunde:Minute:Sekunde
wird zwischen den Doppelpunkten eine Zahl eingetragen, so wird diese auf den aktuellen Moment
addiert z.B. (0:0:0:0:30:0) fürt dazu dass der Befehl alle 30 Minuten (ausgehend von der aktuellen
Uhrzeit) ausgeführt wird.
Eine Klammerung bei Stunden, Minuten und Sekunden bewirkt dass der Befehl zu einer absoluten Zeit
ausgeführt wird. z.B. 0:0:0:(07):0:0 startet den Befehl um 7 Uhr. Folgen nach der 7 keine Klammern,
so wird der Befehl im definierten Zeitraum und Interval der Minuten bzw. Sekunden ausgeführt.
Monate und Wochen können in 3 verschiedenen Varianten konfiguriert werden.
Feste Intervalle können mit Zahlen definiert werden.
Ein Absoluter Tag bzw. Monat wird mit (Tag oder Monat) definiert.
Spezifische Tage bzw. Monate können in der Blockschreibweise (JFMAMJJASOND) für Monate
und (MDMDFSS) für Wochen definiert werden. Sollen Tage in diesem Interval ausgelassen
werden, so ist ein "_" einzutragen (z.B (MDMDF__) für nur Wochentage). Die Wochen bzw.
Monate müssen immer die vollständige Definition enthalten.
Sollen Feiertage in Bayern mitberücksichtigt werden, so ist am Ende der Zeitdefinition ein ":"
und die Einstellungen für Feiertage berücksichtigt werden.
Feiertage werden mit + und - in der Form: Ein Tag vor dem Feiertag, der Feiertag, 1 Tag nach dem Feiertag
definiert. ":___" mit + wird nur dieser Tag gewertet (":+__") führt den Befehl nur am Vortag zu einem Feiertag aus. Ein - (":-__") Führt den Befehl an allen anderen Tagen außer diesem Feiertag aus.
Ein Unterstrich ignoriert die Definition für diesen Tag. (Beta-Phase)
Beschreibung der Programmdefinition
Programme werden in der XML-Datei unter Programms definiert.
Programms kann mehrere Programm (also Programme mit Parametern enthalten).
Jedes Programm muss dabei mit den Eigenschaften
Name: Der Name des Starters (darf nur einmal vorkommen!) Time: Eine Zeit aus der Zeitdefinition oder die Zeitdefinition. Path: Der Pfad zu der Anwendung:
... Absoluter Pfad z.B. C:\Bin\Test.exe
... Relativer Pfad im Bezug zum Anwendungspfad z.B. Bin\Test.exe
--- Systemprogramm z.B. Ping.exe Arguments: Argumente für das Programm (werden durch Rules möglicherweise ersetzt) Rule: Eine Regex-Regel, wie der Rückgabewert verarbeitet wird. Type: Deamon (läuft ständig im Hintergrund) bzw. Programm (wird nach ausführung beendet) Shell: unüberwachten Shell-Execute verwenden ?
Desweiteren kann das Programm mit Regeln (Rules) versehen werden.
Die Regeln werden in der definierten Reihenfolge abgearbeitet.
Um Regeln zu definieren muss in der Definition des Programms ein Rules Knoten vorhanden sein.
Der Rules-Knoten kann mehrere Rules (Regeln) enthalten.
Eine Regel besteht aus folgenden Eigenschaften:
IfVar: 0 = ExitCode der Anwendung IfVar: > 0 = Bereich des Regex-Codes der Auswertung z.B. Test(.*?)Test = 1 für den Bereich zwischen Test...Test IfChk: Regel der Überprüfung: eq = gleich, lt = kleiner, gt = größer, ... Start: Startet ein Programm aus Programms der XML-Definition Arg: Argumente zu ersetzen:
... Ist Arg leer, so wird das Argument des Programms verwendet.
... Enthält Arg einen Text, so wird das Argument des Programms durch diesen ersetzt.
... SonderCodes in Argumenten sind:
[WERT] wird gegen der Wert der Regex-Auswertung ersetzt
[TEXT] wird durch den Text ersetzt.
[TEXT1] wird durch Textzeile 1 der Rückgabe ersetzt (Werte 1-5)
[LINES] wird durch die Anzahl Zeilen ersetzt
[LINES1] wird durch die Anzahl Zeilen - Wert ersetzt
[DATE] wird durch das aktuelle Datum ersetzt
[TIME] wird durch die aktuelle Zeit ersetzt
Folgende Module sind bereits verfügbar und im ersten Paket enthalten:
Service und vorkonfigurierte XML-Datei
Deamon für mini-Webserver (aus localhost Port 80 mit vorkonfigurierter SVG und Index.html)
Der Webserver läuft auf Localhost Port 80 und befindet sich im Ordner MOD_Webserver.
Im Ordner ist eine test.svg enthalten. Diese Svg enthält die Definition für das anzuzeigende
Bild. Jedes Rect-Element enthält eine ID, die vom Webserver an die Konsole
übergeben wird. Dieser Befehl kann in der XML-Definition weiterverarbeitet werden.
Programm für Spracheingabe
Die Spracheingabe erfordert eine Liste mit Wörtern, die erkannt werden sollen.
Diese Datei liegt im Pfad des Moduls mit dem Namen Words.txt
Nur Wörter, die in dieser Liste enthalten sind werden an die Konsole übergeben.
Programm für Sprachausgabe
Die Sprachausgabe erfordert im Modulordner einen Unterordner MP3.
Die übergebenen Kommandos der Kommandozeile werden über einen
Webservice erzeugt und als MP3 heruntergeladen und ausgegeben.
Prüfen eines Google-Mailkontos
MOD_Gmail1.exe.config enthält die Einstellungen für Benutzername und
Kennwort. Die Mails werden per Atom-Feed heruntergeladen und interpretiert.
Modul für WGet
Wget kann einfache
Http-Requests an eine Internetseite senden (Bsp. xbmc Webinterface oder
FHEM-Webinterface). dazu muss im Ordner des Webget eine Datei mit dem
Namen Settings.cfg
exisitieren, in der (Name) {TAB} (Befehlszeile) steht.
Die zu übergebenen Daten müssen UTF8-Codiert vorliegen.
weitere mögliche Module:
Zum Testen der Module bzw. CMD Programme empfehle ich ein anderes
Programm von mir, den Binary-Starter: Binary Starter XDA-Forum
Bei der Entwicklung von eigenen Modulen muss immer daruaf geachtet
werden dass die Ausgabe per STDOut erfolgt und ein Exitcode übergeben wird.
Ein Beispielscript (VBS) ist unter Sourceforge unter den Modulen zu finden.
SNMPGet
Wake on Lan
NIRCMD
DevCon
FCIV
RoboCopy
AutoITX
Terminal
Blat (Mailprogramm)
Fping
NMap, NCat, NPing
GoogleCL (Kontake, Kalender, Blogs, Videos, ...)
NEOLog
PDFTK
PSTools (Oder besser gleich Sysinternals Suite)
Wirelessnetconsole
SFK166
mysql client
Icinga_Get
Besonderer Dank an:
----------------------------
Georg Guß für die Unterstützung in der Programmierung
Sebastian Löw für Ideen zu dem Projekt
Software Zabbix und Icinga für Ideen zu dem Projekt
und natürlich allen anderen Programmierern, deren
Kommandozeilenprogrammeverwendung finden.
Bitte gerne weitere Vorschläge für Deamons bzw.
Programme machen !