libjnetio 0.5, vom 19.Januar 2012



CHANGELOG

	- Bug entfernt, der Verbindungen zu NETIO-230B verhinderte
	- Ausnahme bei Zeitueberschreitung in netio_httpclient hinzugefuegt



BESTANDTEILE

	KLASSEN
	
		Diese Programmbibliotheken besteht aus den folgenden Klassen:
	
			KLASSE						VERWENDUNG
			netio_client						Klasse zur Steuerung eines NETIO-Geraets durch eine KShell-Sitzung
			netio_httpclient					Klasse zur Steuerung der Stromports eines NETIO-Geraets ueber die CGI-Schnittstelle
			tcp_client						Klasse zur Implementierung einer simplen TCP/IP-Verbindung
	
	
	
	WERKZEUGE
	
		Die folgenden Werkzeuge sind Bestandteil dieser Programmbibliothek:
		
			PROGRAMM						VERWENDUNG
			jnetio_example					Beispielanwendung (Anpassung des Codes ggf. notwendig)
			jnetio_http_example				Beispielanwendung fuer CGI-Schnittstelle (Anpassung des Codes ggf. notwendig)
	
	
	
	VERWENDUNG
	
		Die Klassen werden in folgender Abhaengigkeit verwendet:
		
		*tcp_client* stellt eine TCP/IP-Verbindung zum NETIO-Geraet her, sendet Nachrichten und empfaengt Antworten.
		*netio_client* abstrahiert die Verbindung zum NETIO-Geraet und erleichtert die Administration und Verwendung mittels
		einfacher Funktionen, die die notwendigen Kommandos senden.
		*netio_httpclient* ist eine zusaetzliche simple Klasse zur Steuerung der Stormausgaenge der NETIO-Steckdosenleiste.
		Die Klasse kann nicht zur Konfiguration verwendet werden - ist allerdings auch nicht vom Bug in der Firmware betroffen,
		der die KShell nach einigen Verbindungssitzungen "einfrieren" laesst.



FUNKTIONSUEBERSICHT
	
	KLASSE "tcp_client"
	
		FUNKTION							BESCHREIBUNG
		
		###KONSTRUKTOREN###
		tcp_client(String hostname, int port,		Stellt eine Verbindung basierend auf gegebenen Hostname/Port und Logindaten her
		String username, String password)
		
		###NETZWERKFUNKTIONEN###
		connect()							Stellt eine Verbindung her
		command(String command)				Sendet ein Kommando an das NETIO-Geraet
		close()							Trennt die Verbindung zum Geraet
		
		###DEBUG-FUNKTIONEN###
		isClosed()							Gibt an, ob die Verbindung getrennt wurde
		debugMsg(String msg)					Gibt eine Debug-Nachricht aus (interne Verwendung)
	
	
	
	KLASSE "netio_client"
	
		FUNKTION							BESCHREIBUNG
		
		###KONSTRUKTOREN###
		netio_client(String hostname, int port,		Definiert einen NETIO-Client basierend auf gegebenen Hostname/Port und Logindaten
		String username, String password)
		
		###GRUNDFUNKTIONEN###
		command(String command)				sendet ein Kommando
		login()							stellt eine Verbindung aufgrund von bekanntem Benutzername und Passwort her
		logout()							trennt die Sitzung
		countChars(String s, char c)				nennt die Anzahl an Vorkommen gleicher Buchstaben einer Zeichenkette
		
		###GET-FUNKTIONEN###
		getHostname()						Bezieht den Hostname des Geraets
		getVersion()						...die Firmwareversion
		getTime()							...die lokale Zeit im Format YYYY/MM/DD,HH:MM:SS
		getTimezone()						...die Zeitzonen-Verschiebung
		getSNTPState()						...Status von SNTP (aktiviert/deaktiviert)
		getSNTP()							...alle SNTP-Informationen (IP-Adresse, aktiviert/deaktiviert, sychronisiert)
		getPowerDelay()						...Zeitverzoegerung vor Stromverwaltung
		getPorts()							...ein Array mit allen Port-Informationen (Status, Name, Timer/Manueller Modus, Verzögerung)
		getPort(int port)						...den Status eines Ports
		getPortWatchdog(int port)				...alle Informationen eines gegebenen Port-Watchdogs (Status/IP-Adresse/Timeout/Verzoegerung
											/Ping-Refresh/Maximale Anzahl an Versuchen/Stromunterbrechung am Ende/Mail-Information)
		getSystemDiscover()					...den Status der Systemerkennung ueber das Netzwerk
		getNetwork()						...alle Netzwerk-Informationen (Konfigurationsmethode, IP-Adresse, Netzmaske, Gateway, DNS, NTP)
		getDNS()							...den konfigurierten DNS-Server
		getMailserver()						...den konfigurierten Mailserver
		
		###MODIFIZIERER###
		setHostname(String name)				Konfiguriert den Hostnamen des Geraets
		setTime(String time)					...die lokale Zeit im Format YYYY/MM/DD,HH:MM:SS
		setTimezone(String offset)				...die Zeitzonen-Verschiebung
		setSNTP(String address)				...den SNTP-Server
		enableSNTP()						Aktiviert SNTP
		disableSNTP()						Deaktiviert SNTP
		setPowerDelay(int delay)				Konfiguriert die Zeitverzoegerung vor Stromverwaltung
		configurePort(int port, String name,			...einen Stromport
		boolean useTimer, int delay,
		boolean poweredOn)
		setPortActive(int port)					Aktiviert einen Stromport
		setPortInactive(int port)				Deaktiviert einen Stromport
		configureTimer()						TODO
		configureWatchdog(int port, String address,	Konfiguriert den Watchdog eines spezifierten Stromports
		int timeout, int pon_delay, int ping_interval,
		int max_retry, boolean max_retry_poff,
		boolean send_mail)
		enableWatchdog(int port)				Aktiviert den Watchdog eines gegebenen Stromports
		disableWatchdog(int port)				Deaktiviert den Watchdog eines Stromports
		enableDiscover()						Aktiviert die Systemerkennung ueber das Netzwerk
		disableDiscover()						Deaktiviert die Systemerkennung ueber das Netzwerk
		setNetwork(String address, String netmask,	Konfiguriert das Netzwerk basierend auf gegebener IP-Adresse, Netzmaske und Gateway
		String gateway)
		enableDHCP()						Aktiviert DHCP
		setDNS(String address)					Konfiguriert den DNS-Server
		setMailserver(String address)				...den Mailserver
		
		###ACHTUNG-BITTE-FUNKTIONEN###
		deviceReboot()						Startet das Geraet neu
		hardReset()						Stellt die Werkseinstellung zurueck
	
	
	
	KLASSE "netio_httpclient"
	
		FUNKTION							BESCHREIBUNG
		
		###KONSTRUKTOREN###
		netio_httpclient(String hostname,			Neuer HTTP-Client basierend auf Hostname, Benutzername, Passwort und Passwort-/Hash-Authentifizierung
		String username, String password,
		boolean cryptLogin)
		
		###GRUNDFUNKTIONEN###
		login()							Login mit Benutzername und Klartext-Passwort/Hash - interne Verwendung
		logout()							Logout - interne Verwendung
		command(String command)				Sendet Kommando zu CGI-Schnittstelle
		sendCommand(String command)			Sendet Kommando direkt zu CGI-Schnittstelle - interne Verwendung von login()/logout()!
		
		###GET-FUNKTIONEN###
		getPorts()							Bezieht ein Array mit Port-Stati
		getPort(int port)						...den Status eines einzelnen Ports
		
		###SET-FUNKTIONEN###
		setPorts(int[] ports)					Setzt alle Port-Stati auf Basis eines Integer-Arrays
		setPort(int port)						...den Status eines einzelnen Ports
		
		###DEBUG-FUNKTIONEN###
		getFix()							Teilt mit, ob der Logout-Fix aktiviert/deaktiviert wurde
		setFix(boolean bool)					Aktiviert/Deaktiviert den Logout-Fix
		debugMsg(String msg)					Sendet eine Debug-Nachricht - interne Verwendung



BEKANNTE FEHLER UND EFFEKTE

	- Aufgrund eines Bugs in der NETIO-Firmware können gelegentlich keine Antworten der KShell empfangen werden oder es sind nach einigen Verbindungen keine KShell-Sitzungen mehr möglich
	- Port-Timer koennen derzeit nicht konfiguriert werden.



HINWEISE

	Diese Software unterliegt der Creative Commons 3.0 BY-NC-SA, bitte die beigefuegte Datei "LEGAL" konsultieren.