Telekom Speedport Hybrid an IPS anbinden - Anruflisten, DSL-Status, LTE-Status, etc.

Der Einbau der Scripte klappte ganz gut (musste nur mit Pfad und Speedport IP ein wenig testen bis die Fehler im Aufruf wegwaren).

Danke

Hallo,
funktioniert das Skript auch bei der aktuellen Version .12 ?
Gruß Mark

ja - kannst Du ruhig testen

:slight_smile:

Hallo Leute,

seit dem mein IPS auf einer NAS Läuft, funktioniert die Anbindung nicht mehr :confused:

Bekomme immer diese Fehlermeldung:

Warning:  Invalid argument supplied for foreach() in /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/SpeedportHybrid.class.php on line 81

Fatal error:  Uncaught exception 'RouterException' with message 'unable to get the challenge from the router' in /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php:82
Stack trace:
#0 /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php(45): SpeedportHybrid->getChallenge()
#1 /var/lib/symcon/webfront/user/ips-speedport/IPSSpeedportHybrid.class.php(89): SpeedportHybrid->login('1223456')
#2 /var/lib/symcon/scripts/52283.ips.php(10): IPSSpeedportHybrid->__construct('123456', 'http://speedpor...', true, 'Speedport_', 3, 27795, 43200)
#3 {main}
  thrown in /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php on line 82

Kann mir da jemand ein Tipp geben?

Gruß

Hi,

hat schon jemand eine Namen zu Rufnummern Zuordnung erstellt - oder ist dies geplant?

herbertf

Öh… nein sowas hab ich nicht geplant. Ist aber kein großer Aufwand wenn du dir ein Telefonbuch irgendwo in eine symcon-variable oder ein script schreibst. Kannst dann einfach das Anruferlistenarray durch-iterieren und zuordnen.

Hallo,

ich versuche auch das Script an’s laufen zu bekommen, leider habe ich es noch nicht hin bekommen.
Im Anhang habe ich ein paar Screenshots meiner Ordner etc. angehängt. Kann mir jemand sagen, was ich dort falsch mache. Oder kann es an der Firmware liegen, die ist die aktuellste die mir angeboten wird (050124.03.00.012 )
Die Fehlermeldung erscheint, nach dem manuelle Starten des „update status“ script.

Komisch für mich ist auch, dass er die Variablen anlegt, aber diese nicht unter dem „Variablen“ Ordner (ID 57107) sonder im Hauptverzeichnis unten hin. In dem config script ist aber OK:
„$parentId = 57107 /[010 - Status\Speedport\Variables]/; //Speicherort für zu erstellende Speedport Variablen.“

Über Hilfe wäre ich dankbar!

Hi,

an der Version liegt es nicht. Bei mir läuft alles.

Wie sieht deine config.php aus?

Gruß

PS. Bei mir liegen die Daten auf „/usr/share/symcon/webfront/ips-speedport“ IPS 4.1

Hi,

wenn ich das an „deinen“ Ort lege, bekomme ich einen anderen Fehler. Siehe Bilder im Anhang
Ich glaube auch, dass „/usr/share/symcon“ für die Beta Phase verwendet werden musste. So steht es in der Hilfe von IPS:
„/var/lib/symcon/ - Variable Data (Settings, Skripte, Medien…) - (Betaphase: /usr/share/symcon/)“

Mein config script sieht so aus:


<?
//Enthält die "globale" Konfiguration der Speedport-Anbindung und wird von den anderen IPS-Speedport-Scripten aufgerufen

$password = "passwort"; //Kennwort für den Zugriff auf den Router
$url = "192.168.x.x"; //IP-Adresse des Speedport-Routers (häufig auch "speedport.ip")
$parentId = 57107 /*[010 - Status\Speedport\Variables]*/; //Speicherort für zu erstellende Speedport Variablen.

/** OPTIONALE ANPASSUNGEN **/
$debug = false; //Debug-Informationen auf Konsole ausgeben
$variable_profile_prefix = "Speedport_"; //Prefix für anzulegende Variablenprofile
$call_sort = SORT_DESC; //Sortier-Reihenfolge für Anruflisten. SORT_DESC => neueste zuerst, SORT_ASC => älteste zuerst.

//Intervall in Minuten in dem eine Firmware-Updateprüfung erfolgen soll
//(aufwändige Funktion; nicht so oft durchführen. Bsp.: 1 mal im Monat => ca. 43200 Minuten)
$fw_update_interval = 43200; //in Minuten

//status update interval: für das Aktualisieren der Routervariablen (empfohlen 10 Minuten)
$status_update_interval = 10; //in Minuten
?>

Hi,

ich habe IPS 4.1 Stable :wink:
das der Pfad von Beta ist, weiß ich auch. Das Modul läuft nur wenn die Daten da liegen.
mit der IP in der config ging bei mir nicht’s. Ich musste „http://speedport.ip/“ eintragen.

<?
//Enthält die "globale" Konfiguration der Speedport-Anbindung und wird von den anderen IPS-Speedport-Scripten aufgerufen

$password = "12345678"; //Kennwort für den Zugriff auf den Router
$url = "http://speedport.ip/"; //IP-Adresse des Speedport-Routers (häufig auch "speedport.ip")
$parentId = 25998 /*[Gebäude\Dachgeschoss\Netzwerktechnik\Router\Speedport Hybrid\Variablen]*/; //Speicherort für zu erstellende Speedport Variablen.

/** OPTIONALE ANPASSUNGEN **/
$debug = true; //Debug-Informationen auf Konsole ausgeben
$variable_profile_prefix = "Speedport_"; //Prefix für anzulegende Variablenprofile
$call_sort = SORT_DESC; //Sortier-Reihenfolge für Anruflisten. SORT_DESC => neueste zuerst, SORT_ASC => älteste zuerst.

//Intervall in Minuten in dem eine Firmware-Updateprüfung erfolgen soll
//(aufwändige Funktion; nicht so oft durchführen. Bsp.: 1 mal im Monat => ca. 43200 Minuten)
$fw_update_interval = 43200; //in Minuten

//status update interval: für das Aktualisieren der Routervariablen (empfohlen 10 Minuten)
$status_update_interval = 10; //in Minuten
?>

Gruß

Danke schonmal für deine Unterstützung…komme irgendwie trotzdem noch nicht weiter…

Also wenn ich den Ordner: „ips-speedport“ in dieses Verzeichnis lege: /var/lib/symcon/webfront/user
werden die Variablen + 3 scripte in den Objekbaum ganz unten hin angelegt, aber es erschein folgende Fehlermeldung:
(Egal ob mit IP Adresse oder speedport.ip etc…)

INFO - create IPS script 3update_status
INFO - create IPS script 3restart_router
INFO - create IPS script 3uninstall
INFO - create IPS event 3update_status_event

Fatal error:  Uncaught exception 'RouterException' with message 'empty response' in /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/SpeedportHybrid.class.php:149
Stack trace:
#0 /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php(75): SpeedportHybrid->sendRequest('data/Login.json', Array)
#1 /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php(45): SpeedportHybrid->getChallenge()
#2 /var/lib/symcon/webfront/user/ips-speedport/IPSSpeedportHybrid.class.php(110): SpeedportHybrid->login('1234')
#3 /var/lib/symcon/scripts/38460.ips.php(10): IPSSpeedportHybrid->__construct('1234', 'http://speedpor...', false, 'Speedport_', 3, 57107, 43200)
#4 {main}
  thrown in /var/lib/symcon/webfront/user/ips-speedport/speedport-hybrid-php-api/SpeedportHybrid.class.php on line 149

config sieht so aus:

<?
//Enthält die "globale" Konfiguration der Speedport-Anbindung und wird von den anderen IPS-Speedport-Scripten aufgerufen

$password = "1234"; //Kennwort für den Zugriff auf den Router
$url = "http://speedport.ip/"; //IP-Adresse des Speedport-Routers (häufig auch "speedport.ip")
$parentId = 57107 /*[010 - Status\Speedport\Variables]*/; //Speicherort für zu erstellende Speedport Variablen.

/** OPTIONALE ANPASSUNGEN **/
$debug = false; //Debug-Informationen auf Konsole ausgeben
$variable_profile_prefix = "Speedport_"; //Prefix für anzulegende Variablenprofile
$call_sort = SORT_DESC; //Sortier-Reihenfolge für Anruflisten. SORT_DESC => neueste zuerst, SORT_ASC => älteste zuerst.

//Intervall in Minuten in dem eine Firmware-Updateprüfung erfolgen soll
//(aufwändige Funktion; nicht so oft durchführen. Bsp.: 1 mal im Monat => ca. 43200 Minuten)
$fw_update_interval = 43200; //in Minuten

//status update interval: für das Aktualisieren der Routervariablen (empfohlen 10 Minuten)
$status_update_interval = 10; //in Minuten
?>

Und die update status sieht so aus:

 
<?
//Sammelt alle Statusinformationen, Anruferlisten, etc. und legt diese in den dafür vorgesehenen IPS Variablen ab.
//Es ist ratsam dieses Skript per Interval-Ereignis in IP-Symcon regelmäßig auszuführen. (bsp.: alle 10 Minuten)

$config_script = 55743 /*[010 - Status\Speedport\config]*/; //instanz id des ip-symcon config skripts

require_once(IPS_GetScript($config_script)['ScriptFile']);
require_once('../webfront/user/ips-speedport/IPSSpeedportHybrid.class.php');

$sp = new IPSSpeedportHybrid($password, $url, $debug, $variable_profile_prefix, $call_sort, $parentId, $fw_update_interval);
$sp->update();

$event = @IPS_GetEventIDByName($variable_profile_prefix . "UpdateStatusEvent", $_IPS['SELF']);
if($event == null){
	$event = IPS_CreateEvent(1); //zyklisches Event
	IPS_SetName($event, $variable_profile_prefix . "UpdateStatusEvent");
	IPS_SetEventCyclic($event, 0, 0, 0, 0, 2, $status_update_interval);
	IPS_SetParent($event, $_IPS['SELF']);
	IPS_SetEventActive($event, true);
}
?>

Wenn ich die - wie Du sagst unter „/usr/share/symcon/webfront“ lege, erscheint folgende Meldung:


Warning:  require_once(../webfront/user/ips-speedport/IPSSpeedportHybrid.class.php): failed to open stream: No such file or directory in /var/lib/symcon/scripts/38460.ips.php on line 8

Fatal error:  require_once(): Failed opening required '../webfront/user/ips-speedport/IPSSpeedportHybrid.class.php' (include_path='.:') in /var/lib/symcon/scripts/38460.ips.php on line 8

auch unter „/usr/share/symcon/webfront/user“ selbe Meldung wie oben. Bei diesen Varianten werden aber keine Scripte oder Variablen angelegt… Daher denke ich, dass der erste Weg schon nicht ganz falsch ist, da er ja Varaiblen anlegt…

Die erste Frage wäre für mich auch schonmal, warum der Inhalt der .zip Datei „ips-speedport-master“ heist und nicht nur „ips-speedport“ ???

Irgendwo mache ich noch was grundlegendes falsch…

Vielleicht noch einen Tip…Vielen Dank!

#Objektbaum Instanz ID’s im Anhang:

…ich muss auch dazu sagen, dass IPS bei mir auf einem Raspberry PI läuft. Ggf. gibt das die Probleme…?

Kann mir da einer helfen?

Hi,

ich hatte damals ähnliches Problem. Jetzt wo ich deine „update.php“ sehe, ich meine ich habe damals am Pfad rumgespielt.

require_once('../webfront/user/ips-speedport/IPSSpeedportHybrid.class.php');

also muss bei dir so aussehen.

require_once('/var/lib/symcon/webfront/user/webfront/ips-speedport/IPSSpeedportHybrid.class.php');

Am Pi liegt das nicht!

Gruß

…danke, ich werde das heute Abend einmal direkt testen! Ich melde mich dann wieder!

Ich habe es auch mit Windows und Linux (Ubuntu) probiert leider immer folgende Fehlermeldung:

INFO - create IPS script 3update_status
INFO - create IPS script 3restart_router
INFO - create IPS script 3uninstall
INFO - create IPS event 3update_status_event

Fatal error: Uncaught exception ‚RouterException‘ with message ‚empty response‘ in C:\IP-Symcon\webfront\user\ips-speedport\speedport-hybrid-php-api\SpeedportHybrid.class.php:149
Stack trace:
#0 C:\IP-Symcon\webfront\user\ips-speedport\speedport-hybrid-php-api\lib rait\Login.class.php(75): SpeedportHybrid->sendRequest(‚data/Login.json‘, Array)
#1 C:\IP-Symcon\webfront\user\ips-speedport\speedport-hybrid-php-api\lib rait\Login.class.php(45): SpeedportHybrid->getChallenge()
#2 C:\IP-Symcon\webfront\user\ips-speedport\IPSSpeedportHybrid.class.php(110): SpeedportHybrid->login(’’)
#3 C:\IP-Symcon\scripts\47358.ips.php(10): IPSSpeedportHybrid->_construct(’’, ‚http://speedpor…‘, false, 'Speedport’, 3, 56410, 43200)
#4 {main}
thrown in C:\IP-Symcon\webfront\user\ips-speedport\speedport-hybrid-php-api\SpeedportHybrid.class.php on line 149

…bei mir auch leider keine Verbesserung:

INFO - create IPS script 3update_status
INFO - create IPS script 3restart_router
INFO - create IPS script 3uninstall
INFO - create IPS event 3update_status_event

Fatal error:  Uncaught exception 'RouterException' with message 'empty response' in /usr/share/symcon/webfront/ips-speedport/speedport-hybrid-php-api/SpeedportHybrid.class.php:149
Stack trace:
#0 /usr/share/symcon/webfront/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php(75): SpeedportHybrid->sendRequest('data/Login.json', Array)
#1 /usr/share/symcon/webfront/ips-speedport/speedport-hybrid-php-api/lib/trait/Login.class.php(45): SpeedportHybrid->getChallenge()
#2 /usr/share/symcon/webfront/ips-speedport/IPSSpeedportHybrid.class.php(110): SpeedportHybrid->login('xxx')
#3 /var/lib/symcon/scripts/15477.ips.php(10): IPSSpeedportHybrid->__construct('xxx', 'egal mit welcher Adresse...', false, 'Speedport_', 3, 57107, 43200)
#4 {main}
  thrown in /usr/share/symcon/webfront/ips-speedport/speedport-hybrid-php-api/SpeedportHybrid.class.php on line 149

Hi,

ich gehe davon aus, es ist die aktuelle Firmware auf dem Router (050124.03.00.012).

Bei mir sind die relevanten Scripte:

config:


<?
//Enthält die "globale" Konfiguration der Speedport-Anbindung und wird von den anderen IPS-Speedport-Scripten aufgerufen

$password = "hierdaspassword"; //Kennwort für den Zugriff auf den Router
$url = "http://192.168.179.xyz/"; //IP-Adresse des Speedport-Routers (häufig auch "speedport.ip")
$parentId = 50423 /*[Tools, Service\Systeminfo\Internet\Speedport Hybrid]*/; //Speicherort für zu erstellende Speedport Variablen.

/** OPTIONALE ANPASSUNGEN **/
$debug = true; //Debug-Informationen auf Konsole ausgeben
$variable_profile_prefix = "Speedport_"; //Prefix für anzulegende Variablenprofile
$call_sort = SORT_DESC; //Sortier-Reihenfolge für Anruflisten. SORT_DESC => neueste zuerst, SORT_ASC => älteste zuerst.

//Intervall in Minuten in dem eine Firmware-Updateprüfung erfolgen soll
//(aufwändige Funktion; nicht so oft durchführen. Bsp.: 1 mal im Monat => ca. 43200 Minuten)
$fw_update_interval = 43200;
?>

update Status


<?
//Sammelt alle Statusinformationen, Anruferlisten, etc. und legt diese in den dafür vorgesehenen IPS Variablen ab.
//Es ist ratsam dieses Skript per Interval-Ereignis in IP-Symcon regelmäßig auszuführen. (bsp.: alle 10 Minuten)

$config_script = 41720 /*[Tools, Service\Systeminfo\Internet\Speedport Hybrid\config]*/; //instanz id des ip-symcon config skripts

require_once(IPS_GetScript($config_script)['ScriptFile']);
require_once('../webfront/user/ips-speedport/IPSSpeedportHybrid.class.php');

$sp = new IPSSpeedportHybrid($password, $url, $debug, $variable_profile_prefix, $call_sort, $parentId, $fw_update_interval);
$sp->update();
?>

Meinen aktuellen Ordner (require_once(’…/webfront/user/ips-speedport/) hänge ich hier jetzt dran - das sollte dann aber wirklich funktionieren:

ips-speedport.rar (179 KB)

Ciao
herbertf

JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA…DAAAAAAAAAAAAANNNNNNNNNNNNNNNKKKKKKKKKKKEEEEEEEEEEEEEEEEEEEE

Es klappt!

Hallo herbertf

hat auch bei mir geklappt.

1000 Dank:)

Hallo,

hat eigentlich jemand schon die interne Temperatur des Routers ausgelesen? Hintergrund ist der, dass mein Router auf einem Dachboden steht und ich möche mir einen Alarm generieren, wenn der Router unter ~5°C geht (Betriebstemperatur von 0°-40°C sind wohl zulässig laut DB)

Wenn das geklappt hat, wie habt Ihr das gemacht?!?! Vielen Dank!