server-nutzer
Goto Top

Einfaches Logging von Ereignissen - Webserver-Software-Empfehlung?

Hallo und guten Abend.

Ich beschäftige mich gerade mit einfachen "Smarthome"-Dingen in Verbindung mit AVM Fritzboxen und deren DECT-Sensoren (Temperaturmessung, Kühlraumtür-noch-offen, Garage offen, solche Sachen eben).

In der Fritzbox können per Sensorenaktivitäten als "Aktion" (Vorlage) neben klassichen Schaltvorgängen auch URLs aufgerufen werden, die per GET, POST, etc.-Funktionalität bis zu 255 Zeichen in der URL übermitteln können.

Diese lokalen im eigenen LAN getätigten URL-Aufrufe würde ich gern möglichst simpel auf einer lokalen (Windows?)Software loggen und als kontinuierliche, chronologische Liste sichtbar machen. Quasi als ganz simple Webzeite, wo oben immer die neueste Aktion erscheint, sobald eine Aktion per URL-Aufruf gemeldet wird.

Hier läuft ein Windows 10-Mini-PC sowieso für andere Kleinaufgaben, daher nicht noch nen raspberry pi oder Arduino zusätzlich. Müsste halt sonst auch noch betreut werden, das möchte ich grad nicht.

Kennt Ihr eine einfache Webserversoftware, mit der ich obiges realisieren kann?

Danke und schönes Wochenende.

LG Jörg

Content-ID: 667793

Url: https://administrator.de/contentid/667793

Printed on: September 11, 2024 at 06:09 o'clock

Pjordorf
Pjordorf Aug 31, 2024 at 18:38:33 (UTC)
Goto Top
Hallo,

Zitat von @Server-Nutzer:
Kennt Ihr eine einfache Webserversoftware, mit der ich obiges realisieren kann?
Kauf dir einen Lt. Commander Data und adaptiere das OS vom Raumschiff USS Enterprise-D/E und bastel damit deine Anforderungen nach deinen Wünschen. Gibts bestimmt bei Amaz... fürn Appel und zwei Eier face-smile

P.S. was ist für dich eine "einfache Webserversoftware" und was genau muss diese können?

Gruss,
Peter
mhappe
mhappe Aug 31, 2024 at 19:19:24 (UTC)
Goto Top
Spar dir das basteln mit webhooks und schau dir mal https://www.home-assistant.io/ an.

Zigbee Sensoren / Aktoren sind dann auch deutlich günstiger als die AVM Sachen.
StefanKittel
StefanKittel Aug 31, 2024 at 19:39:23 (UTC)
Goto Top
Moin,
Ich würde das so lösen:
- Rasperry Pi mit minimal Linux (nur SSH)
- LAMP-Stack (Linux, Apache, PHP, MySQL)
- Kleine PHP-Anwendung die diese API-Calls entgegen nimmt und in die DB speichert
- Kleine PHP-Anwendung die die aktuellsten Einträge pro Typ anzeigt.
Danach kann man über eine Webseite von jedem Gerät im LAN/WLAN/VPN darauf zugreifen.

Stefan
Server-Nutzer
Server-Nutzer Sep 01, 2024 updated at 08:26:33 (UTC)
Goto Top
Moin und danke für die vielfältigen, z.T. kreativen Antworten.

Ich greife das mal der Reihe nach auf:

Die AVM-Technik auf DECT-Basis ist schon länger verbaut, funktioniert soweit problemlos. Standardwechsel auf Homematic, Zigbee oder anderes ist daher nicht vorgesehen. Ist gut gemeint, aber wird nicht so gemancht.

Ein anderes OS, die Einarbeitung in PHP, SQL & Co. ist mir für diese Aufgabe zu zeitaufwändig. Die Zeit investiere ich lieber in die anderen Hobbys von mir face-wink

Die Möglichkeit, URLs in Aktionen einzubauen, hatte ich kürzlich erst entdeckt und verstanden, dass man das für Ereignislogging nutzen könnte. Sprich URL-Aufrufe einfach zu protokollieren und schtbar zu machen ist die hier erfragte Aufgabe, nichts anderes.

Was die Software können muss, Peter:
Auf Windows 10 laufen (und keinen weiteren Kleincomputer mit anderem OS)
URL-Aufrufe loggen
Die Ergebnisse des Log auf einfache Weise sichtbar machen können (z.B. der Webserver stellt die Log-Datei als aufrufbare HTML-Seite bereit. Ggf. rufe ich auch nur die Logdatei als Solches per Editor auf, um reinzuschauen.

Also nochmal:
Welche Software (Windows 10) könnt ihr empfehlen? Oder kennt ihr nix?

LG
J.
cykes
cykes Sep 01, 2024 at 09:29:16 (UTC)
Goto Top
Moin,

ich glaube, Du stellst Dir das zu einfach vor. Eine fertige Software gibt es dafür m.W.n. nicht, da ja die (URL-) Aufrufe von der FirtzBox getätigt werden und an die entsprechenden Aktoren und nicht an Deinen PC gehen.
Du müsstest eine Art Proxy auf dem PC installieren und die Aufrufe über diesen Proxy leiten, damit der mitloggen kann.
Ob die FritzBox für die Kommunikation mit den Aktoren einen Proxy unterstützt, weiß ich nicht, da ich das Fritz-Smarthome dafür zu wenig kenne.

Alternativ kannst Du natürlich auf dem PC per bspw. Wireshark das komplette Netz dauerhaft "abhören" und mittels Filtern Dir das gewünschte rausschreiben. Der Aufwand dürfte aber immens sein und ohne Programmierkenntnisse auch nicht zum Erfolg führen.

Die einfachste Variante wäre, wenn die Fritzbox das schon selbst irgendwo loggt, wenn man von außen auf dieses Log zugreifen kann und sich die gewünschten Informationen separat rausschreiben kann. Ist aber alles mit mehr oder weniger Aufwand verbunden und muss man selbst entwickeln können.

Deswegen war auch der Vorschlag, die Zentrale in bspw. Home Assistant zu verlegen eigentlich schon sehr brauchbar, dort hat man halt einfach mehr und einfachere Möglichkeiten der Überwachung.

Gruß

cykes
Intellidance
Intellidance Sep 01, 2024 at 11:27:23 (UTC)
Goto Top
Xampp installieren und irgendwie so etwas wie

<?php
// File path for the log
$logFile = 'action_log.txt';  

// Check if the "Action" parameter is present 
if (isset($_GET['Action'])) {  
    // Get the current timestamp
    $timestamp = time();

    // Create a log entry
    $logEntry = "Action: " . $_GET['Action'] . " - Timestamp: " . $timestamp . "\n";  

    // Append the log entry to the file
    file_put_contents($logFile, $logEntry, FILE_APPEND);

    // Read the contents of the file and display them
    $logContents = file_get_contents($logFile);
    echo "<pre>$logContents</pre>";  
} else {
    echo "No 'Action' parameter provided.";  
$logContents = file_get_contents($logFile);
}

In eine Datei namens index.php speichern und in das wwwroot Verzeichnis legen.

Dann als URL z.b. http://hostname-deines-computers/?Action=Heizung%20an

Schreiben.
Server-Nutzer
Server-Nutzer Sep 01, 2024 at 11:41:55 (UTC)
Goto Top
Hi cykes,

danke für Deine ausführliche Antwort.

Vielleicht konnte ich mein Anliegen und die vorhandenen Mechanismen der Fritzbox Smarthome-Funktion nicht korrekt darstellen.

Taster drücken (DECT-Sensor) -> Fritzbox Smarthome-Funktion -> URL-Aufruf -> Webserver-Software loggt diesen Aufruf

Zwischenzeitlich habe ich eine einfache Webserver-Software entdeckt, die schon einige meiner Anforderungen erfüllt.

Siehe hier:

webserver

Leider loggt diese Software nur in ein Fenster zum angucken, nicht aber in eine Datei. Daher nicht unbedingt das, was ich suche.

All das, was Du beschrieben hast, braucht es m.E. gar nicht.

Daher suche ich noch weiter nach einer einfachen Webserver-Software (für Windows 10), die eben das Logging in eine Datei schreibt.

LG
Jörg
Server-Nutzer
Server-Nutzer Sep 01, 2024 at 12:03:10 (UTC)
Goto Top
PS: Der "bordeigene" Internetinformationsdienste-(IIS)-Manager des Windows 10 bietet zwar einen Webserver mit Logging in eine Datei, schreibt aber den URL-Aufruf leider nicht zeitnah zum URL-Aufruf in die Logdatei.
Beendet man den IIS, dann taucht der Aufruf sehr schön auf.

FAST das, was ich brauche. Leider nur fast face-smile

iis-webserver
aqui
aqui Sep 01, 2024 at 12:29:14 (UTC)
Goto Top
cykes
cykes Sep 01, 2024 updated at 13:07:31 (UTC)
Goto Top
Taster drücken (DECT-Sensor) -> Fritzbox Smarthome-Funktion -> URL-Aufruf -> Webserver-Software loggt diesen Aufruf

Wie soll denn Deiner Meinung nach irgendein (Web-)Server auf Deinem PC den URL-Aufruf ausgehend von der FritzBox mitbekommen? Der fühlt sich überhaupt nicht zuständig dafür.

Siehst Du auch im Log des IIS, die URL-Abfragen werden alle mit 404 beantwortet, da das ein anderes Gerät ist als er selbst. Auch der Mini-Webserver sagt ja mit einem Connection Close: "Kenn ich net"...
Server-Nutzer
Server-Nutzer Sep 01, 2024 at 13:35:00 (UTC)
Goto Top
Ich glaube wir reden aneinander vorbei, cykes.

Nach Tastendruck auf dem DECT-Funksensor bekommt die Fritzbox (Smarthome-Funktion) den Auftrag "Rufe folgende URL auf" (hier http://192.168.178.222:90/Taster-oben-gedrueckt ).

Was passiert daraufhin auf dem oben in Screenshot laufender Webserver-Software auf dem Mini-PC mit IP 192.168.178.222?

Die bekommt diesen URL-Aufruf mit und schreibt ihn ins Logging-Fenster der Aidex-Webserver-Software bzw. beim IIS ins Protokoll. Leider erst später beim manuellen Serverdienst beenden. Siehe Screenshots!

Im Grunde "Ziel erreicht". Da wird zwar auf den URL-Aufruf keine Seite ausgeliefert (eben 404), aber die könnte die Fritzbox als aufrufender Client eh nicht verarbeiten.


Intellidance & aqui:
Das schaue ich mir mal an. Danke Euch
DivideByZero
DivideByZero Sep 01, 2024 at 20:04:05 (UTC)
Goto Top
Moin,

eine Antwort mit Apache steht oben.
Und ja, du wirst da immer etwas anpassen müssen, weil so etwas eben individuelle Aufrufe sind.
Wer da nach "fertig" sucht, kommt zu HomeAssistant und Konsorten, also genau anders herum: Software für Home Automation suchen und schauen, welche Aktoren unterstützt werden.
Bei HomeAssistant ist das gegeben: www.home-assistant.io/integrations/fritzbox/. Kannst Du am einfachsten mit Virtualisierung unter Windows laufen lassen, dann bleibt es bei Deinem PC. Hier z.B. mit VirtualBox.
Ist m.E. immer noch sinnvoller, weil da eigentlich alles an Auswertungen und Aktionen ist, was man so zum Thema Smart Home braucht.
Das reine Logging ist da doch sehr spartanisch. Mit Xampp dürfte es aber am schnellsten sein.

Gruß

DivideByZero
Server-Nutzer
Server-Nutzer Sep 02, 2024 at 04:20:33 (UTC)
Goto Top
Guten Morgen DivideByZero.

Nunja, was fertiges hatte ich da auch nicht wirklich im Auge, das war schon klar.

Das spartanische Logging reicht mir aus. Mehr braucht es nicht für diese Anwendungen.
Werde mir Xampp ansehen, scheint am zielführensten zu sein.

Dankeschön.

LG
J.
NordicMike
NordicMike Sep 02, 2024 at 08:08:41 (UTC)
Goto Top
IIS ist schon mal nicht verkehrt, da in Windows 10 schon integriert / vorhanden. Verwende nicht das interne logging, das ist in der Tat zeitversetzt, sondern bastele dir eine logme.php, die sofort in eine Datei schreibt, sobald du sie aufrufst. (oder nimm die fertige oben von Intellidance)
Dazu noch eine schicke index.html oder index.php Seite, die dir die Datei anzeigt.
Server-Nutzer
Server-Nutzer Sep 02, 2024 at 13:58:23 (UTC)
Goto Top
Hi NordicMike,

ok, das klingt nach einem Plan.

Mal sehen, ob ich das auf dem IIS zum laufen kriege face-wink

LG
Jörg
Intellidance
Intellidance Sep 02, 2024 at 14:34:47 (UTC)
Goto Top
PHP im IIS ist nicht mit 2 klick eingerichtet (aber auch nicht unmöglich und genauso eine vernünftige Lösung) aber deswegen hatte ich für den Einstieg xampp empfohlen.
StefanKittel
StefanKittel Sep 02, 2024 at 21:53:54 (UTC)
Goto Top
Ein +1 für Xamp.
Es ist einfacher zu installieren (mit PHP und MySQL)
Es lässt sich deaktivieren
Es ist open source
Die Zusammenhänge der einzelnen Komponenten sind einfach zu troubleshouten als IIS