AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte FRITZ!Box Komponente v0.17
Thema durchsuchen
Ansicht
Themen-Optionen

FRITZ!Box Komponente v0.17

Ein Thema von Garfield · begonnen am 16. Feb 2014 · letzter Beitrag vom 26. Dez 2023
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Benutzerbild von Garfield
Garfield
Registriert seit: 9. Jul 2004
Dies ist eine Komponente mit welcher auf die FRITZ!Box zugegriffen werden kann.

Merkmale:
  1. Lesen Boxinfo (Name, HW, Version, Revision, Serial, ...).
  2. Lesen verschiedener Geräteinformationen (Name, Provider, Beschreibung, UDN, ...).
  3. Lesen Internet Protokoll Adressen (extern, intern).
  4. Lesen Status (Verbindung, letzter Fehler, Uptime).
  5. Lesen DSL-Eigenschaften (Link Type, Link Status, Modulation, ATM Enc).
  6. Neuverbindung zum Erhalt einer neuen externen Internet Protokoll Adresse.
  7. Anrufmonitor. Nach Anmeldung und Lesen des Telefonbuches auch mit Namen.
  8. Anmeldung mit SessionID und Benutzernamen.
  9. Abruf des Telefonbuches als XML-Datei.
  10. Abruf der Anrufliste als CSV-Datei.
  11. WLAN: Ein- und Ausschalten, Namen ändern, Verschlüsselung und Schlüssel anzeigen, Name verstecken ändern.
  12. Gast-WLAN: Ein- und Ausschalten, Namen, Verschlüsselung und Schlüssel ändern.
  13. Lesen und Setzen der Nachschaltung/Klingelsperre.

Geplante Merkmale
  1. Hinzufügen, Ändern und Löschen von Telefonbucheinträgen.
  2. Hinzufügen, Ändern und Löschen von Sperren.
  3. Wählhilfe benutzen.
  4. Weitere welche noch nicht spruchreif sind.

Anmerkungen:
  1. Die aktuellen Demos wurden mit Turbodelphi und Lazarus 1.0 unter Windows XP sowie Delphi XE5 unter Windows 8.1 erstellt und mit den FRITZ!Boxen 7320 und 7362 SL getestet.
  2. Zum Projekt gehört auch ein Spider, welcher sich die XML-Dateien einer FRITZ!Box hangelt, Anfragen erstellt und ausführt. Siehe unten in #3.
  3. Ich arbeite in einer Einsatzwechseltätigkeit und habe deshalb nicht ständig Zugriff auf eine FRITZ!Box mit Internetverbindung, da mein WLAN-Router (Huawei E5319) keine Reichweitenverlängerung unterstützt und manche Funktionen wohl nur gehen, wenn die FRITZ!Box ihre Systemzeit aus dem Internet aktualisieren kann. Somit können sich Updates etwas hinziehen.
  4. Die Anhänge sind die aktuelle Komponente mit den Demos (nur Quelltexte), die auf Windows XP compilierte Lazarus 1.0 Demo, die auf Windows XP compilierte Turbodelphi Demo und die auf Windows 8.1 compilierte Delphi XE5 Demo. die letzte Demo läuft nicht auf Windows XP und 7.
Hinweise, Anregungen, Kritiken usw. sind willkommen.

Ä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.
Miniaturansicht angehängter Grafiken
bild1.png  
Angehängte Dateien
Dateityp: 7z FritzBox_v0.17.0.0.7z (175,5 KB, 551x aufgerufen)
Dateityp: 7z Fritzbox_LAZ.7z (545,8 KB, 194x aufgerufen)
Dateityp: 7z FritzBox_TDE.7z (365,4 KB, 167x aufgerufen)
Dateityp: 7z FritzBox_XE5.7z (842,8 KB, 394x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof

Geändert von Garfield (27. Mär 2014 um 19:00 Uhr) Grund: Neue Version
 
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#31
  Alt 7. Nov 2016, 19: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.
  Mit Zitat antworten Zitat
Rene K.

 
Delphi XE5 Enterprise
 
#32
  Alt 11. Nov 2016, 20:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#33
  Alt 12. Nov 2016, 14:26
Scheinbar geht es hier nicht weiter, aber ich frage dennoch.
-31-

... Die Lazarus-Variante funktioniert nicht unter MAC OS. ...
Da Windows-Funktionen verwendet werden ist das logisch. Ohne MAC OS kann ich es eh nicht testen. Ubuntu ist für mich eher interessant. Ob das dann alles kompatibel sein wird, weiß ich nicht. Den Callmonitor hatte ich erfolgreich mit Wine getestet.

Nun zur eigentlichen Frage: Wie kann ich die Steckdosen abfragen (via getswitchstate)?
Das Studium diverser PHP Scripte hat mich leider nicht weiter gebracht.
Wozu PHP-Scripte auswerten? Firefox mit Live HTTP Headers starten, die gewünschten Informationen im Fritzbox-Menue abrufen und den Mitschnitt von Live HTTP Headers auswerten.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#34
  Alt 12. Nov 2016, 14:34
Vielleicht das mal ansehen.
Angehängte Dateien
Dateityp: 7z FritzSpider.7z (674,0 KB, 75x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#35
  Alt 19. Nov 2016, 09:45
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.
Miniaturansicht angehängter Grafiken
2016-11-19-08_37_00-fritz-box-spider.png  
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#36
  Alt 1. Dez 2016, 23:27
Dokumente dazu: https://avm.de/service/schnittstellen/
  Mit Zitat antworten Zitat
Vienesko
 
#37
  Alt 21. Mai 2017, 23:14
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#38
  Alt 21. Mai 2017, 23:32
Alle fast alle Delphi-Units heißen inzwischen anders, aber standardmäíg hat man in neuen Projekten den fehlenden Namespace definiert (vorallem 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:
{$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};
Und schon würde bestimmt schnell auffallen, dass dein Problem im Bereich "Prüfung auf Delphiversionen" liegt.

Der fehlende Teil:
Delphi-Quellcode:
{$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}
Nja, aus solchen Grüden nutze ich in meinen Codes eine die entsprechenden Conditional-Expressions ala {$IF CompilerVersion >= 23.0}
für {$DEFINE DELPHI_XE2_UP} , was auch in zukünftigen Delphis passen wird, im Gegensatz zu den {$IFDEF VER230} -Orgien.

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}

Geändert von himitsu (21. Mai 2017 um 23:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#39
  Alt 28. Mai 2017, 23:30
@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.

Geändert von Garfield (28. Mai 2017 um 23:33 Uhr)
  Mit Zitat antworten Zitat
Andy090778

 
Delphi 5 Standard
 
#40
  Alt 31. Mai 2017, 22:58
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
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz