IPSLogger - mein kleiner feiner LogHandler für IPS

Hallo Zusammen,

der Logger ist richtig praktisch. Bisher verwende ich aber neben dem IPSLibrary Modul IPSShadowing noch eine eigene Struktur für die Beleuchtung und Temperaturüberwachung im Haus.

Meine Frage ist nun, wie kann ich Statusmeldungen (Variablen, etc) in den IPSLogger integrieren?

Ein Beispiel:

Ich habe einen Neigungssensor am Garagentor und der gibt mir eine Rückmeldung über den Torzustand (offen / geschlossen). Wie könnte ich mir den Zustand (bei jeder Änderung) mittels IPSLogger und Prowl auf mein Handy schicken lassen?

Prowl funktioniert bereits :slight_smile:

Für mich ist das ganze IPS System mit Zusammenhängen, Instanzen etc noch Neuland und ich bin noch in der Findungsphase bevor es dann richtig mit eigenen Modulen losgehen kann.

Vielen Dank für Eure Hilfe.

Gruß
Maze

Das Wiki und Best Practice im ersten Fred hast Du gesehen? Oder brauchst Du weiterführende Info?

Gruß
Bruno

Danke Bruno,

das Wiki hatte ich mir schon durchgelesen, aber es erschließt sich mir als PhP Neuling noch nicht ganz, wie ich es implementieren kann.

Da ich derzeit an meinem ersten Modul sitze, werde ich es in diesem Testen und mich bei Gegebenheit mit detaillierteren Fragen melden.

Danke soweit und Gruß
Maze

Hier mal ein Beispiel :
Prowl sollte auf Loglevel Notication stehen.

   IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger");
   $LogContext = "Info";
   $LogMessage = "Tor offen";
   IPSLogger_Not($LogContext, $LogMessage);

Danke!

Hat funktioniert.

Gruß
Maze

Hallo,

ist es möglich, die letzte Meldung des Loggers ganz oben anzuzeigen ??? Somit müßte man nicht immer bis ganz nach unten scrollen um die letzte Meldung zu sehen.

Gruß Proxima

Kann er schon :slight_smile:

suche in der "IPSLogger_Configuration nach folgenden Eintrag.

  define ('IPSLOGGER_HTML_NEWMESSAGETOP',   true);

true ist das was Du willst.

Hallo,

Habe heute mal geschaut, welche Version ich vom Logger installiert habe. Laut „IPSLogger_Configuration“ habe ich die 2.50.1 installiert.

	/**@defgroup ipslogger_configuration IPSLogger Konfiguration
	 * @ingroup ipslogger
	 * @{
	 *
	 * Konfigurations Einstellungen des Loggers.
	 *
	 * @file          Default/IPSLogger_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 * Version 2.50.1, 31.01.2012<br/>
	 *
	 */

Wollte wegen Syslog Update aktualisieren aber nach einem Modul-Update hat sich nichts geändert. :confused:

Hallo
Der Kommentar in der Datei wird nicht gepflegt.
Wichtig ist die Anzeige im GUI.
Aktuell ist 2.50.9
GUIt.png

@sunni2002 … und wenn Du in der „IPSLogger_Configuration.inc.php“ weiter nach unten scrollst, findest Du auch die Syslog-Konfig :wink:

Das ist ja der springende Punkt :slight_smile: Finde diesen Eintrag eben nicht. Deswegen habe ich mal nach der installierten Version gekuckt.

<?
	/**@defgroup ipslogger_configuration IPSLogger Konfiguration
	 * @ingroup ipslogger
	 * @{
	 *
	 * Konfigurations Einstellungen des Loggers.
	 *
	 * @file          Default/IPSLogger_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 * Version 2.50.1, 31.01.2012<br/>
	 *
	 */

	/** WebFront Konfigurations Parameter
	 *
	 * Dieser Wert spezifiert die Länge des Kontextes (Logging Kontext
	 * wird bei jedem Aufruf einer Logging Routine als erster Parameter übergeben) im HTML Output.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
	define ("c_Format_LogOutContextLen", 12);

	/** WebFront Konfigurations Parameter
	 *
	 * Dieser Wert spezifiert das Datumsformat im HTML Output
	 * Beispiel, bei Definition des Datumformats von 'Y-m-d H:i:s' und MiroLen (Beschreibung siehe unten) von 3
	 * sieht der Output folgendermaßen aus:
	 * 2011-10-06 06:46:45.707
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_Format_LogOutDate",       'Y-m-d H:i:s');

	/** WebFront Konfigurations Parameter
	 *
	 * Dieser Wert spezifiert die Micro Sekunden, die HTML Output ausgegeben werden sollen.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
	define ("c_Format_LogOutMicroLen",   4);

	/** WebFront Konfigurations Parameter
	 *
	 * Dieser Wert spezifiert die Schriftart die für den HTML Output verwendet werden soll.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_Style_HtmlOutTable",      'font-family:courier; font-size:11px;');

	/** WebFront Konfigurations Parameter
	 *
	 * Dieser Wert spezifiert die Breite der Output Spalten im HTML Output.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
 	define ("c_Style_HtmlOutColGroup",   '<colgroup><col width="25px"><col width="40px"><col width="100px"><col width="200px"><col></colgroup>');

	/** WebFront Konfigurations Parameter
	 *
	 * Steuert ob neue Messages am Ende der Html List hinzugefügt werden oder am Anfang
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
 	define ('IPSLOGGER_HTML_NEWMESSAGETOP',   false);

	/** Konfigurations Parameter für File Output
	 *
	 * Dieser Wert spezifiert das Output Verzeichnis für Log Files. Wenn nichts angegeben wird,
	 * wird das normale Logging Verzeichnis von IPS verwendet (.../logs).
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_File_Directory",  "");

	/** Konfigurations Parameter für File Output
	 *
	 * Dieser Wert spezifiert die File Extension für den File Output.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_File_Extension",  "log");

	/** Konfigurations Parameter für Log4IPS Output
	 *
	 * Dieser Wert spezifiert das Output Verzeichnis für Log Files. Wenn nichts angegeben wird,
	 * wird das normale Logging Verzeichnis von IPS verwendet (.../logs).
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_Log4IPS_Directory",  "");

	/** Konfigurations Parameter für Log4IPS Output
	 *
	 * Dieser Wert spezifiert die File Extension für den XML Output.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_Log4IPS_Extension",  "xml");

	/** Konfigurations Parameter für EMail Output
	 *
	 * Dieser Wert spezifiert die ID der MailServer Instanz in IPS, die für das Versenden von
	 * EMails verwendet werden soll.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_ID_SmtpDevice",      );

	/** Konfigurations Parameter für EMail Output
	 *
	 * Erste von 3 möglichen EMail Adressen, die zum Versenden von EMails angegeben werden kann.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_EMail_Address1",     "xxx@xxx");

	/** Konfigurations Parameter für EMail Output
	 *
	 * Zweite von 3 möglichen EMail Adressen, die zum Versenden von EMails angegeben werden kann.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_EMail_Address2",     "");

	/** Konfigurations Parameter für EMail Output
	 *
	 * Dritte von 3 möglichen EMail Adressen, die zum Versenden von EMails angegeben werden kann.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_EMail_Address3",     "");

	/** Konfigurations Parameter für EMail Output
	 *
	 * Text der in das Feld Betreff bei Emails eingetragen werden soll.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_EMail_Subject",      "IP-Symcon Information");

	/** Konfigurations Parameter für EMail Output
	 *
	 * Signatur die für Emails verwendet werden soll.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_EMail_Signature",    "Message send from IP-Symcon HomeControl");

	/** Konfigurations Parameter für Prowl Output
	 *
	 * Schlüssel der für das Versenden von Prowl Messages verwendet werden soll.
	 *
	 * Parameter kann jederzeit geändert werden.
	 */
  	define ("c_Key_ProwlService",    '');

	/** @}*/
?>

Und der Ansicht nach scheint alles auf Stand zu sein.

Genau nach dem Punkt wo die Konfig bei Dir endet folgt Syslog :smiley:

Gibt es evtl. HIERMIT einen Zusammenhang?

Danke für deinen Hinweis. Habs jetzt mit allen 3 Möglichkeiten versucht und das Modul nochmal upgedatet. Leider habe ich den Syslog-Eintrag in der Config nicht …

Schau mal im Ordner „Default“ . Dort ist die aktuelle defaultKonfiguration.
Deine eigenen wird bei einem Update ja nicht ueberschrieben.
Dort sollten die Syslog-Eintraege sein.
Einfach in deine Konfiguration uebernehmen.

Hab den Logger jetzt deinstalliert und wieder installiert. Jetzt ist auch die Config mit den Syslog Einträgen da :rolleyes:
Danke trotzdem.

lg

Hi Andreas,

Magst du den IPSLogger dahingehend erweitern, dass er auch Prowl-Nachrichten an Android-Devices schicken kann? :oDamit habe ich es auf Anhieb erfolgreich getestet:

https://www.symcon.de/forum/threads/23113-Push-Notification-an-Android?p=219965#post219965
https://pushover.net/

Habs mir mal notiert, muss da aber sehr sorgfältig vorgehen um da kompatibel zur bestehenden Version zu bleiben (der Logger ist mittlerweile 100fach im Einsatz).

Nachdem ich gestern das aktuelle Update gezogen habe, bringt ein InfoWidget plötzlich eine Ausgabe (leerer transparenter Rahmen über dem Webfront). Ursache ist offenbar folgender Befehl im Skript des InfoWidget:

IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger");

Ist das tatsächlich durch das Update gekommen? Soll das so sein?

Grüße
galleto

… mach nochmals ein Update, ich glaub da hat sich bei den Tests ein ungültiges Zeichen eingeschlichen …

Danke!

Ich hab bei mir auch noch einen Fehler gefunden, für „Bei Klick“ war beim Widget des Logger eine falsche Variable eingetragen. Kann aber nicht 100%ig sagen, ob das die Ursache war, denn ich hab auch einen Neustart hingelegt.

Jetzt ist das Verhalten jedenfalls wieder normal. Update mach ich trotzdem noch.

Grüße
galleto