Das würde mir auch helfen. Wo finde ich denn die Include-Datei für den Login?
Vielen Dank
Florian
Das würde mir auch helfen. Wo finde ich denn die Include-Datei für den Login?
Vielen Dank
Florian
IPS 3.0 auf Shuttle X50V2 - Homematic LAN-Adapter - EM24DIN - Plugwise
Gib mir mal 30min, bin gerade am Weg ins Hotel. Der Verkehr in Bangkok ist nicht normal.
Bis den,
Gruß Manfred
Gruß Manfred
IPS 4.2 | Win u. Symbox | IPSView | Wago | Homematic | IPS-868 | Philips HUE | Modbus | PV FroniusHybrid | USV (AEG/APC) | Qnap | Synology | IP Kameras | Hombot Gardena R70Li | Sony TV / AV | Sat Duo2 | Philips/Samsung TV | Sonos | Buderus | RPi | Arduino || Visu: 24", 10", 7" Tablets ....
Also genau das mit der Anmeldung über die Weboberfläche wollte ich ja vermeiden. Thema ist hier Soap, bitte dann in einem anderen Thread weitermachen.
Ein Beispiel wie man Parameter über gibt ist in Post 3.
New SoapPara('Wert',NamedesParameters).
Michael
on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC
4h später, wieder zurück zum Thema
Telefonbuchabfrage mit SOAP:
Zigarettenkonsum steigt schon wiederPHP-Code:
<?
// Fritzbox Telefonbuch auslesen und abspeichern
// -----------------------------------------------------------------------------
// Fritzbox User und Password
$user = "User";
$pass = "Password";
// Telefonbuch in Datei speichern
$save = true;
// ID des Telefonbuches
$id = 0;
//Pfad zur Datei
$filepath = IPS_GetKernelDir()."\\media\\telefonbuch.xml";
// -----------------------------------------------------------------------------
$client = new SoapClient(
null,
array(
'location' => "http://fritz.box:49000/upnp/control/x_contact",
'uri' => "urn:dslforum-org:service:X_AVM-DE_OnTel:1",
'login' => $user,
'password' => $pass
)
);
$result = $client->GetPhonebook(new SoapParam($id, 'NewPhonebookID'));
$phonebook = @file_get_contents($result['NewPhonebookURL']);
// Datei schreiben
if($save == true){
$fileHandle = @fopen($filepath, 'wb+');
@fwrite($fileHandle, $phonebook);
@fclose($fileHandle);
}
else{
print_r($phonebook);
}
?>
Gruß
Manfred
Gruß Manfred
IPS 4.2 | Win u. Symbox | IPSView | Wago | Homematic | IPS-868 | Philips HUE | Modbus | PV FroniusHybrid | USV (AEG/APC) | Qnap | Synology | IP Kameras | Hombot Gardena R70Li | Sony TV / AV | Sat Duo2 | Philips/Samsung TV | Sonos | Buderus | RPi | Arduino || Visu: 24", 10", 7" Tablets ....
Schon die Funktion für den Anrufbeantworter zum Laufen gebracht?
Daran hänge ich jetzt mal wieder fest.
Scheint so, als ob der Befehl für die Abfrage falsche wäre.
Fehlerausgabe:PHP-Code:
<?
$ip = "fritz.box";
$port = "49000";
$user = "user";
$pass = "password";
// -----------------------------------------------------------------------------
$client = new SoapClient(
null,
array(
'location' => "http://".$ip.":".$port."/upnp/control/x_tam",
'uri' => "urn:dslforum-org:service:X_AVM-DE_TAM:1",
'SCDPURL' => "x_tamSCPD.xml",
'login' => $user,
'password' => $pass
)
);
//$client->SetEnable(new SoapParam(true, 'NewEnable'));
$result = $client->GetInfo();
print_r($result);
?>
Auszug aus der .xml:Code:Fatal error: Uncaught SoapFault exception: [s:Client] UPnPError in I:\IP-Symcon\scripts\40843.ips.php:21 Stack trace: #0 I:\IP-Symcon\scripts\40843.ips.php(21): SoapClient->__call('GetInfo', Array) #1 I:\IP-Symcon\scripts\40843.ips.php(21): SoapClient->GetInfo() #2 {main} thrown in I:\IP-Symcon\scripts\40843.ips.php on line 21
Besten DankCode:<service> <serviceType>urn:dslforum-org:service:X_AVM-DE_TAM:1</serviceType> <serviceId>urn:X_AVM-DE_TAM-com:serviceId:X_AVM-DE_TAM1</serviceId> <controlURL>/upnp/control/x_tam</controlURL> <eventSubURL>/upnp/control/x_tam</eventSubURL> <SCPDURL>/x_tamSCPD.xml</SCPDURL> </service>
Gruß
Manfred
Gruß Manfred
IPS 4.2 | Win u. Symbox | IPSView | Wago | Homematic | IPS-868 | Philips HUE | Modbus | PV FroniusHybrid | USV (AEG/APC) | Qnap | Synology | IP Kameras | Hombot Gardena R70Li | Sony TV / AV | Sat Duo2 | Philips/Samsung TV | Sonos | Buderus | RPi | Arduino || Visu: 24", 10", 7" Tablets ....
Schau mal in die 'richtige' XML (x_tamSCPD.xml):
Du mußt hier wieder einen Parameter übergeben (NewIndex)vermutlich die ID vom AB.Code:<name>GetInfo</name> <argumentList> <argument> <name>NewIndex</name> <direction>in</direction> <relatedStateVariable>Index</relatedStateVariable> </argument> ...
Wird der SoapClient mit den Parametern trace und exceptions ergänzt, bekommt man im Fehlerfall die Fehlermeldung als Rückgabewert.
MichaelPHP-Code:
$client = new SoapClient(null,
array(
'location' => $data["location"],
'uri' => $data["uri"],
'noroot' => True,
'login' => $fb_user,
'password' => $fb_password,
'trace'=>TRUE,
'exceptions'=>false
)
);
PS: Die 'SCDPURL' brauchts du dem SoapClient nicht übergeben.
PPS: Habe mal das Telefonbuch im 3. Post ergänzt.
Geändert von Nall-chan (09.10.14 um 17:13 Uhr)
on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC
Hallo Michael,
Der Tipp hat's mal wieder gebracht
Bin jetzt wieder ein Stück weiter.
Ergebnisse gibt's morgen, Zeit für's Bett.
Gruß
Manfred
Gruß Manfred
IPS 4.2 | Win u. Symbox | IPSView | Wago | Homematic | IPS-868 | Philips HUE | Modbus | PV FroniusHybrid | USV (AEG/APC) | Qnap | Synology | IP Kameras | Hombot Gardena R70Li | Sony TV / AV | Sat Duo2 | Philips/Samsung TV | Sonos | Buderus | RPi | Arduino || Visu: 24", 10", 7" Tablets ....
Anrufbeantworter ein/aus
SCPDURL: x_tamSCPD.xml
Location: http://fritz.box:49000/upnp/control/x_tam
URI: urn:dslforum-org:service:X_AVM-DE_TAM:1
Action: SetEnable
Parameter 1: NewIndex => Nummer des Anrufbeantworters (0 - 9)
Parameter 2: NewEnable => "0" oder "false" für AUS, "1" für EIN (true funktioniert nicht)
PHP-Code:
$client = new SoapClient(
null,
array(
'location' => "http://fritz.box:49000/upnp/control/x_tam",
'uri' => "urn:dslforum-org:service:X_AVM-DE_TAM:1",
'noroot' => True,
'login' => "user",
'password' => "pass"
)
);
//AB aus
$client->SetEnable(new SoapParam(0, 'NewIndex'),
new SoapParam(0, 'NewEnable')
);
//AB ein
$client->SetEnable(new SoapParam(0, 'NewIndex'),
new SoapParam(1, 'NewEnable')
);
Liste vom Anrufbeantworter
SCPDURL: x_tamSCPD.xml
Location: http://fritz.box:49000/upnp/control/x_tam
URI: urn:dslforum-org:service:X_AVM-DE_TAM:1
Action: GetMessageList
Parameter: NewIndex => Nummer des Anrufbeantworters (0 - 9)
PHP-Code:
$client = new SoapClient(
null,
array(
'location' => "http://fritz.box:49000/upnp/control/x_tam",
'uri' => "urn:dslforum-org:service:X_AVM-DE_TAM:1",
'noroot' => True,
'login' => "user",
'password' => "pass"
)
);
// Gibt die Url mit SID aus
$result = $client->GetMessageList(new SoapParam(0, 'NewIndex'));
print_r($result);
/*
http://192.168.178.1:49000/tamcalllist.lua?sid=71120ab0f78ba64d&tamindex=0
*/
$xml = @simplexml_load_file($result);
print_r($xml);
/*
[Message] => Array
(
[0] => SimpleXMLElement Object
(
[Index] => 1
[Tam] => 0
[Called] => meine Nummer
[Date] => 09.10.14 19:43
[Duration] => 0:01
[Inbook] => 1
[Name] => Manfred
[New] => 1
[Number] => meine NUmmer
[Path] => /download.lua?path=/var/media/ftp/ST-4GB-01/FRITZ/voicebox/rec/rec.0.001
)
*/
$data = @file_get_contents($result);
print_r($data);
/*
<Root>
<!-- index:0 -->
<!-- max:999 -->
<!-- tam calls:2 -->
<Message>
<Index>1</Index>
<Tam>0</Tam>
<Called>meine Nummer</Called>
<Date>09.10.14 19:43</Date>
<Duration>0:01</Duration>
<Inbook>1</Inbook>
<Name>Manfred </Name>
<New>1</New>
<Number>meine Nummer</Number>
<Path>/download.lua?path=/var/media/ftp/ST-4GB-01/FRITZ/voicebox/rec/rec.0.001</Path>
</Message>
*/
SID auslesen
SCPDURL: deviceconfigSCPD.xml
Location: http://"fritz.bix:49000"/upnp/control/deviceconfig
URI: urn:dslforum-org:serviceeviceConfig:1
Action: {"X_AVM-DE_CreateUrlSID"}
Parameter: keine
PHP-Code:
$client = new SoapClient(
null,
array(
'location' => "http://"fritz.bix:49000"/upnp/control/deviceconfig",
'uri' => "urn:dslforum-org:service:DeviceConfig:1",
'login' => "user",
'password' => "pass"
)
);
$result = $client->{"X_AVM-DE_CreateUrlSID"}();
print_r($result);
/*
sid=71120ab0f78ba64d
*/
Zeiten
Gibt die aktuelle Zeit der Friztbox aus, sowie ob Sommerzeit oder Winterzeit und Start/Ende der Winterzeit
SCPDURL: timeSCPD.xml
Location: http://"fritz.box:49000"/upnp/control/time
URI: urn:dslforum-org:service:Time:1
Action: GetInfo
Parameter: keine
PHP-Code:
$client = new SoapClient(
null,
array(
'location' => "http://"fritz.box:49000"/upnp/control/time",
'uri' => "urn:dslforum-org:service:Time:1",
'noroot' => True,
'login' => "user",
'password' => "pass"
)
);
$result = $client->GetInfo();
print_r($result);
/*
Array
(
[NewNTPServer1] => 0.at.pool.ntp.org
[NewNTPServer2] =>
[NewCurrentLocalTime] => 2014-10-10T04:04:01+02:00
[NewLocalTimeZone] =>
[NewLocalTimeZoneName] => CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
[NewDaylightSavingsUsed] => 0
[NewDaylightSavingsStart] => 0001-01-01T00:00:00
[NewDaylightSavingsEnd] => 0001-01-01T00:00:00
)
*/
Gruß
Manfred
PS:![]()
![]()
Gruß Manfred
IPS 4.2 | Win u. Symbox | IPSView | Wago | Homematic | IPS-868 | Philips HUE | Modbus | PV FroniusHybrid | USV (AEG/APC) | Qnap | Synology | IP Kameras | Hombot Gardena R70Li | Sony TV / AV | Sat Duo2 | Philips/Samsung TV | Sonos | Buderus | RPi | Arduino || Visu: 24", 10", 7" Tablets ....
Hallo zusammen,
danke für die tollen Scripts.
Ich habe jetzt mal mit dem AB Script mit
ausprobiert, um die Nachrichten zu zählen.PHP-Code:
$zaehler_gesamt = count($xml->Message);
Funktioniert prima.
Habe jetzt im Array gesehen, das dort mit [New] => 0/1 auch nach neuen Nachrichten unterschieden wird.
Wie könnte ich damit noch nur die neuen Nachrichten zählen lassen. Blicke da bei dem Array irgenwie nicht durch.
Oder anders gefragt, wie müsste der Zähler aussehen, der das Array an der Stelle [New] durchläuft?
Danke u. Grüße,
Doc
Fehler passieren immer wieder. Wichtig dabei ist,
anschließend noch in der Lage zu sein, davon berichten zu können!!!
SimpleXML Objekte können ganz simpel mit Xpath gefiltert werden.
Kann ja heute abend mal was vorbereiten. Nachdem die AB Software von AVM schon lange nicht mehr funktioniert, wollte ich das auch schon in IPS integrieren.
Michael
on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC