![]() |
FRITZ!Box Komponente v0.17
Liste der Anhänge anzeigen (Anzahl: 5)
Dies ist eine Komponente mit welcher auf die FRITZ!Box zugegriffen werden kann.
Merkmale:
Geplante Merkmale
Anmerkungen:
Änderungen [v0.17] 27.03.2014 [v0.17] Überarbeitung der Komponente. [v0.17] Neue Demos. [v0.17] Anmeldung mit SessionID für Firmware ab xx.04.74 und vor xx.05.50 entfernt. [v0.17] Lesen des Online-Telefonbuches entfernt. [v0.17] Abruf der Anrufliste als XML-Datei entfernt. [v0.17] Anrufmonitor integriert. Nach Anmeldung und Lesen des Telefonbuches Anrufsignalisierung auch mit Namen möglich. [v0.17] WLAN: Ein- und Ausschalten, Namen ändern, Verschlüsselung und Schlüssel anzeigen, Name verstecken ändern. [v0.17] Gast-WLAN: Ein- und Ausschalten, Namen, Verschlüsselung und Schlüssel ändern. [v0.17] Die Demos sind alle unter Win8.1 compiliert. [v0.16] Anrufmonitor hinzugefügt. [v0.15] Bei größeren 'Chunked' übertragenen Dateien konnte das Ende abgeschnitten werden. [v0.15] Nachtschaltung. |
AW: FRITZ!Box Komponente
Liste der Anhänge anzeigen (Anzahl: 5)
[v0.15] Bei blockweise übertragenen Dateien konnte bei größeren Dateien das Ende abgeschnitten werden. Die Nachtschaltung funktioniert nun auch bei der neueren Firmwareversion.
Hier ein Bilder von der Demo. Hm. Auf Bild4 sieht man, dass die XP-Demo noch nicht richtig angepasst wurde. Bei XE5-Demo stimmt es. |
AW: FRITZ!Box Komponente
Liste der Anhänge anzeigen (Anzahl: 3)
Hier der Spider. Mit XE5 auf Win8.1 compiliert. Funktioniert vermutlich nur auf Windows 8. :cry:
Benutzung: Mit einem Klick auf den Button Scannen werden ausgehend von den Beschreibungsdateien tr64desc.xml und igddesc.xml weitere Beschreibungsdateien geladen und die Services und Actions in der linken Box (2) gelistet. Nach Auswahl einer Action wird darunter (3) das zu sendende Script bzw. daneben (4) die zugehörigen Argumente eingetragen. Bei Auswahl eines Argumentes (4) werden rechts daneben dessen Eigenschaften angezeigt (5). Mit einem Klick auf Senden (6) wird das Script gesendet und die Antwort darunter angezeigt (7). Erhält man den Fehler 401 Unauthorized bringt ein Anmelden nicht wirklich etwas. Dann erhält man den Fehler 500 Internal Server Error mit den UPnPError 401. Das liegt wohl daran, dass man HTTPS verwenden soll bzw. muss. :? Nachtrag: Noch schnell mit TD unter XP compiliert. |
AW: FRITZ!Box Komponente
Einfach geil! Ich habe schon lange keinen so interessanten Sourcecode bzw. so ein Projekt mehr gelesen. Vielen Dank!
|
AW: FRITZ!Box Komponente
Einfach Top, Danke ebenfalls. Alles auf GitHub oder so wäre noch toll, einfacher zu handhaben
|
AW: FRITZ!Box Komponente
Vielen Dank für Eure Antworten. An Github oder ähnliches habe ich noch nicht gedacht. Hatte das bisher nur auf meiner Homepage veröffentlicht und der Quelltext hat nach meiner Ansicht noch Optimierungspotential.
|
AW: FRITZ!Box Komponente
Zitat:
|
AW: FRITZ!Box Komponente
Vermutlich kaum einer. Schließlich entwickelt sich jeder ständig weiter.
Die Komponente verwendet Telnet, SOAP, UPnp und LUA-Scripte mit Parsen der HTML-Antwort. Das meiste was man im Internet findet verwendet die letzte Möglichkeit. Scheint auch das einfachste zu sein, da sich nur manchmal die Adressen ändern. Sieht man am Onlinetelefonbuch was nun nicht mehr funktioniert. |
[v0.16] FRITZ!Box Komponente
Liste der Anhänge anzeigen (Anzahl: 1)
Habe den Anrufmonitor als extra Klasse hinzugefügt. Getestet unter WinXP mit Turbodelphi und Lazarus 1.0 und unter Win8.1 mit XE5 und Lazarus 1.1. Der Anrufmonitor benutzt den Port 1012. Dieser Port wird über ein angeschlossenes Telefon (FON) oder die Wählhilfe mit dem Code #96*5* geöffnet und mit #96*4* geschlossen.
|
FRITZ!Box Query
Liste der Anhänge anzeigen (Anzahl: 3)
Hier ein kleines "Spielzeug". Damit lassen sich Queries abfragen. Diese stehen im Quelltext der HTML-Seiten der Fritzbox. Ein Querystring ergibt sich aus dem String zwischen den eckigen Klammern ohne Hochkommata welchem ein Variablenname sowie ein = vorangestellt wird. In der Ini sind einige Beispiele enthalten.
|
AW: FRITZ!Box Komponente
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe die Komponente komplett überarbeitet. Wegen der jüngsten Probleme bei der Sicherheit gehe ich davon aus, dass aktuelle Firmwareversionen eingesetzt werden. Deshalb wurde das, was nicht mehr ging, entfernt. Ein paar Funktionen sind dazugekommen, wobei das Ein- und Ausschalten des WLAN noch nicht implementiert ist, da ich im Moment über WLAN mit der Fritzbox verbunden bin. Damit verbunden gibt es eine neue Demo. Die von Delphi XE5 ist fertig und diesem Beitrag angehängt. Dazu ein Bild vom Anrufmonitor.
|
AW: FRITZ!Box Komponente
Kleine Fehlerkorrektur und wenn das Telefonbuch geladen ist, wird der Name in der Anrufbox angezeigt. WLAN schalten geht weiterhin nicht, das will ich heute nachmittag noch erledigen, wenn ich die TurboDelphi-Demo am anderen Rechner fertigmache.
Die Komponente wertet nur das erste Telefonbuch und daraus nur einen Teil der Einträge aus. Es fehlen zum Beispiel die Anganben zu Buchstabenwahl (Vanity **8), zur Kurzwahl (Quickdial **7) und die Angabe der letzten Änderung. Sollte dies auch ausgewertet werden? |
AW: FRITZ!Box Komponente
Das Schalten des WLAN scheint doch nicht so einfach zu sein. Es funktioniert das Holen der Informationen, das Ausschalten des WLAN, das Schalten und Ändern des GästeWLAN.
|
AW: FRITZ!Box Komponente
Das Einschalten und Ändern des WLAN funktioniert. Zumindest wenn man nicht über WLAN mit der Box verbunden ist.
|
AW: FRITZ!Box Komponente
Neue Version 0.17.
Ich habe die Komponente überarbeitet und die Merkmale welche nicht mehr funktionierten entfernt sowie den Anrufmonitor integriert. Wenn man angemeldet ist/war und das Telefonbuch geladen ist, werden wenn möglich bei der Anrufsignalisierung die Namen mitangezeigt. Hinzu gekommen ist ein wenig WLAN. |
AW: FRITZ!Box Komponente v0.17
Hallo Garfield,
ich teste gerade deine Komponente mit XE7 und muß feststellen, daß dabei ein paar Löcher im Speicher zurückbleiben: An unexpected memory leak has occurred. The unexpected small block leaks are: 85 - 92 bytes: TStringList x 8 Meine Recherche ergab, daß fReceived daran schuld ist: Diese Stringliste wird in Zeile 2406 erzeugt, aber nicht wieder freigegeben:
Delphi-Quellcode:
constructor THTTPRequest.create;
{******************************************************************************* * -1- Klasse erstellen. } begin inherited; fContent := ''; fReceived := TStringList.Create; fPort := 80; fHTTPSend.Method := 'GET'; fHTTPSend.FileURL := ''; fHTTPSend.Hostname := ''; fHTTPSend.Accept := '*/*'; fHTTPSend.ContentType := 'text/html, text/xml'; fHTTPSend.ContentLength := 0; fHTTPSend.Soap.Namespace := ''; fHTTPSend.Soap.Request := ''; FillChar(fHTTPRcvd, SizeOf(fHTTPRcvd), 0); end; Durch Einfügen einer Zeile in die Destroy-Methode der Klasse THTTPRequest konnte der Fehler behoben werden:
Delphi-Quellcode:
{$IfDef DELPHI}
destructor THTTPRequest.destroy; {******************************************************************************* * -1- Klasse freigeben. } begin if Assigned(fReceived) Then fReceived.Free; // meine Ergänzung inherited; end; {$EndIf} |
AW: FRITZ!Box Komponente v0.17
Ganz nebenbei:
Zitat:
Delphi-Quellcode:
Man soll ja eben deshalb Free statt Destroy verwenden, weil Free intern die eigene Referenz prüft, da muss man das ja nicht außerhalb noch einmal machen.
fReceived.Free;
|
AW: FRITZ!Box Komponente v0.17
Okay, danke, wo du recht hast :thumb:
|
AW: FRITZ!Box Komponente v0.17
Ich seh das öfter, es ist ja auch nicht falsch, aber eben unnötig ;)
|
AW: FRITZ!Box Komponente v0.17
@Garfield:
Noch ein Fehler: Nach dem Start des Anrufmonitors – und selbstverständlich vorausgegangener Anmeldung – hängt deine ![]() |
AW: FRITZ!Box Komponente v0.17
Ich habe die Komponente auch gerade in der Mache.
Bei mir funktioniert der Anrufmonitor wunderbar! (allerdings unter XE5) |
AW: FRITZ!Box Komponente v0.17
@Perlsau
Vielen Dank für Deinen Bericht. Den Fehler hatte ich leider nicht gefunden. Warum sich der Anrufmonitor weghängt, weiß ich nicht. Der stellt eigentlich nur eine Verbindung zur Fritzbox her und wartet auf Ereignisse. ![]() @noisy_master Dein Thema zum AB habe ich gesehen. :thumb: |
AW: FRITZ!Box Komponente v0.17
Zitat:
Könnte es sein, daß dieses Verhalten mit meiner ![]() |
AW: FRITZ!Box Komponente v0.17
Entschuldigung, mein Laptop ist defekt, deshalb war die späte Antwort.
Das einzige was man machen muss, ist das Öffnen des Ports 1012. Zitat:
|
AW: FRITZ!Box Komponente v0.17
Liste der Anhänge anzeigen (Anzahl: 1)
So, noch einmal ich. Links hat die Demo verschiedene Button. Alles oberhalb dem Anmeldedialog funktioniert ohne Anmeldung, alles darunter nur mit Anmeldung. Wenn der Port für den Anrufmonitor geschlossen ist, sollte die Meldung im Anhang kommen.
Funktioniert der ![]() |
AW: FRITZ!Box Komponente v0.17
Sorry, Garfield, bin gerade mit einem anderen Projekt beschäftigt und melde mich wieder, wenn ich damit fertig bin :wink:
|
AW: FRITZ!Box Komponente v0.17
:thumb:
|
AW: FRITZ!Box Komponente v0.17
Liste der Anhänge anzeigen (Anzahl: 2)
In den letzten Tagen bin ich zufällig auf die Seite
![]() |
AW: FRITZ!Box Komponente v0.17
Hallo Garfield,
ich teste gerade Deine Komponente. Etwas kann ich nicht nachvollziehen und zwar wenn ich mir die Anrufsliste anzeigen lasse, listet mir Dein Demoprojekt als Beispiel in meinem Fall 146 Einträge auf. Speichere ich das als Datei werden 401 Einträge aufgelistet. Ich habe das ganze mal selber nach gebaut und zum auslesen auch Deine Procedure verwendet und auch hier das selbe Ergebnis 146 werden angezeigt tatsächlich 401 vorhanden. Ab einem bestimmten Datum werden alle Einträge ignoriert. Was mache ich hier falsch bzw. was übersehe ich?
Delphi-Quellcode:
hat immer den in meinen Fall korrekten Wert von 401.
fFonCalls.Count
Gruß Borstenei |
AW: FRITZ!Box Komponente v0.17
Hallo,
der Thread ist zwar schon etwas älter, wollte aber trotzdem mal fragen: Gibt es bei dem Projekt Neuigkeiten? Mich würde die Steuerung von Netzwerken interessieren, also LAN, WLAN. Wer ist gerade verbunden, was macht er usw. Ist das möglich? |
AW: FRITZ!Box Komponente v0.17
@Borstenei - Das dürfte an der Software der Fritzbox liegen. Ich habe hier jetzt keine Fritzbox um das noch einmal zu Überprüfen, aber ich denke in der Fritzbox werden auch nicht alle 400 Einträge angezeigt.
@greenmile - In der v0.17 ist schon etwas WLAN drin. Die v0.18 ist/war schon einige Zeit in Arbeit (Sollte bereits letztes Jahr hier veröffentlich werden). Die Verwendung mehrerer Compiler ist jedoch nicht so einfach. Von Februar bis Juli war mein Laptop defekt. Entweder ist er immernoch defekt oder Windows 10 läuft darauf nicht stabil. Die ein, zwei Bluescreen mit Neustart am Abend sind nicht gerade förderlich. Im Moment beschäftige ich mehr mit Lazarus im allgemeinen und dem IP Scan im besonderen. |
AW: FRITZ!Box Komponente v0.17
Scheinbar geht es hier nicht weiter, aber ich frage dennoch.
Ich habe mir die aktuelle Version herunter geladen. Die Lazarus-Variante funktioniert nicht unter MAC OS. Statt WinSock muss da Synapse mit SynSock her. Leider sind die IPv4 Aufrufe aber nicht mehr enthalten. Jedenfalls konnte ich den Code nicht komplett migrieren. Besser sah es mit der XE5 Version unter Berlin 10.1 aus. Klappte auf Anhieb. Nun zur eigentlichen Frage: Wie kann ich die Steckdosen abfragen (via getswitchstate)? Das Studium diverser PHP Scripte hat mich leider nicht weiter gebracht. |
AW: FRITZ!Box Komponente v0.17
Zitat:
![]() Zitat:
Zitat:
|
AW: FRITZ!Box Komponente v0.17
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht das mal ansehen.
|
AW: FRITZ!Box Komponente v0.17
Liste der Anhänge anzeigen (Anzahl: 1)
Erläuterung:
Der Spider verwendet upnp. Auf der Fritzbox sind verschiedene Beschreibungsdateien enthalten, diese enthalten Links auf weitere Beschreibungsdateien oder die Beschreibung von Funktionen usw. Das bedeutet die Namen der Funktionen, ihre Variablen, die Typen der Variablen und die möglichen Werte. Mit einem Klick auf den Button "Scannen" wird nach den Dateien 'tr64desc.xml', 'igddesc.xml', 'phonebook.xml' und 'crossdomain.xml' geguckt. Sind sie vorhanden werden sie durchgesehehen. Unter "Services, Actions, Argumente und Eigenschaften" ist links ein TreeView mit den gefundenenen Dateien und Funktionen usw. Wird eine Funktion ausgewählt werden in dem Memo in der Mitte die Variablen angezeigt. Wählt man eine Variable aus, werden im Memo rechts der Typ und die Werte angezeigt. Ist eine Funktionn ausgewählt, wird unter "TCP Send Script" das Script zur Abfrage angezeigt. Ein Klick auf den Button "Senden" verschickt das Script und unter "TCP Receive Script" sieht man die Antwort. Ist der Balken darüber grün ist alles in Ordnung. Ist er rot, liegt es in der Regel daran, dass eine HTPPS-Verbindung notwendig ist, welche nicht im Spider implementiert ist. Der Spider ist mit TurboDelphi geschrieben und kompiliert. |
AW: FRITZ!Box Komponente v0.17
Dokumente dazu:
![]() |
AW: FRITZ!Box Komponente v0.17
Moin Moin,
ich bin neu hier im Forum (bisher nur stiller Mitleser) und beschäftige mich noch nicht so lange mit der Programmierung in Delphi. Ich möchte mir das Programmieren mit einer eigenen Software beibringen - also leraning by doing sozusagen. In diese Software (eine eigene Haussteuerung) möchte ich auch die Abfrage meiner FritzBox implementieren. Ich habe die Komponente heruntergeladen (herzlichen Dank an Garfield fürs Bereitstellen) und wollte diese installieren. Ich bekomme allerdings Fehler angezeigt. Er findet unter "uses" leider "Dom" und "XMLRead" nicht. Wo liegt das Problem? Auch bei der Beispielanwendung gibt es Probleme. Ich nutze XE7. Ich würde mich freuen, wenn ihr mir helfen könntet. Vielen Dank |
AW: FRITZ!Box Komponente v0.17
Alle fast alle Delphi-Units heißen inzwischen anders, aber standardmäíg hat man in neuen Projekten den fehlenden Namespace definiert (vorallem
Delphi-Quellcode:
).
System. Vcl. und WinApi.
Forms = Vcl.Forms SysUtils = System.SysUtils usw. Als Erstes solltes du lernen, was Compiler-Direktiven sind. Dieser Code wurde für Delphi und Lazarus geschrieben und je nach Compiler und CompilerVersion wird unterschiedlicher Code verwendet.
Delphi-Quellcode:
Und schon würde bestimmt schnell auffallen, dass dein Problem im Bereich "Prüfung auf Delphiversionen" liegt.
{$IfDef VER260}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE5}
{$IfDef VER250}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE4} {$IfDef VER240}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE3} ... {$IfDef VER80}{$Define DELPHI} {$EndIf} {Delphi 1} interface uses Classes, SysUtils, Windows, WinSock, Dialogs, ExtCtrls, Forms, StdCtrls, Graphics, {$IfDef DELPHI}Jpeg, Messages, XMLIntf, XMLDoc{$Else}Controls, Dom, XMLRead{$EndIf}; Der fehlende Teil:
Delphi-Quellcode:
Nja, aus solchen Grüden nutze ich in meinen Codes eine die entsprechenden Conditional-Expressions ala
{$IfDef VER320}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE10.2}
{$IfDef VER310}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE10.1} {$IfDef VER300}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE10} {$IfDef VER290}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE8} {$IfDef VER280}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE7} {$IfDef VER270}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf} {Delphi XE6}
Delphi-Quellcode:
{$IF CompilerVersion >= 23.0}
für
Delphi-Quellcode:
, was auch in zukünftigen Delphis passen wird, im Gegensatz zu den
{$DEFINE DELPHI_XE2_UP}
Delphi-Quellcode:
-Orgien.
{$IFDEF VER230}
Aber am Liebsten prüfe ich möglichst auf benötigte Compiler-Features und Deklarationen, anstatt auf irgendwelche Compiler-Versionen, da es "eindeutiger", verständlicher und vorallem versionsunabhängig ist.
Delphi-Quellcode:
uses {$IFDEF FPC}Controls, Dom, XMLRead{$ELSE}Jpeg, Messages, XMLIntf, XMLDoc{$ENDIF} // FreePacal und seit XE gibt es im Delphi auch "DCC"
{$IF Declared(RawByteString)}RawByteString{$ELSE}AnsiString{$IFEND} |
AW: FRITZ!Box Komponente v0.17
@Vienesko: Hier muss man nichts installieren, weshalb es wohl eigentlich keine Komponente ist. Die Demos habe ich mit den angegebenen Compilern getestet und Änderungen nur soweit vorgenommen wie es notwendig war. Delphi XE5 war dabei der neueste. Neuer wird er wahrscheinlich nicht mehr werden.
@himitsu: Dein Hinweis auf das Prüfen auf Feature und Deklarationen finde ich gut. Ein Update ist schon lange fällig. |
AW: FRITZ!Box Komponente v0.17
Hallo Garfield,
konnte aus Deiner Komponente viel Erfahrung sammeln wie man die Fritz.box denn nun überhaupt mal anspricht. Ich überlege grade ob ich eine Delphi GUi samt Server bastle für den geplanten Touchscreen in der Küche, der als Hauptaufgabe natürlich per KNX das Haus steuern kann. Bist Du schon weitergekommen beim Feature "Wählhilfe"? Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz