Aufgegeben wird bekannterweise nur ein Brief. Mir hat das keine Ruhe gelassen. Kann ja nicht so schwer sein. Also hab ich ganz einfach den Entwickler der Android App über Github angeschrieben, ober mir nicht einen Denkanstoß geben könnte. Einfach in welche Richtung ich suchen muss. Die Doku ist wirklich schlecht. Zumindest aus meiner Sicht.
Er hat sich tatsächlich gemeldet und ich hab mal das draus gemacht. Es ist nicht mal ein Prototyp aber die Anmeldung funktioniert und es kommen zumindest die für mich interessanten Werte rüber. Alles noch unformatiert. Ich werd mich die Tage damit auseinandersetzen und mir anschauen, was ich möchte und wie ich das in IPS reinbringe. Das ist allerdings nur Kosmetik, der für mich schwierigste Part ist geschafft. Das Ding antwortet auf meine Wünsche.
Wer das auch versuchen möchte, gerne.
Hier der Code. Wie gesagt, alles in einer Wurscht, unformatiert und lediglich mit einer Ausgabe in der Konsole. Ein zusätzliches Modul muss nicht auf OpenWRT installiert werden.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.32.1/ubus');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
//Anmeldung
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"jsonrpc": "2.0",
"id": 1,
"method": "call",
"params": [
"00000000000000000000000000000000",
"session",
"login", {
"username": "root",
"password": "PASSWORTHIEREINGEBEN"
}
]
}');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$sessionid=json_decode($result,true)["result"][1]["ubus_rpc_session"];
//Systeminformationen
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"jsonrpc": "2.0",
"id": 2,
"method": "call",
"params": [ "'.$sessionid.'",
"system",
"info",{} ]
}');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
var_dump(json_decode($result,true));
//Hardwareinformationen
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"jsonrpc": "2.0",
"id": 2,
"method": "call",
"params": [ "'.$sessionid.'",
"system",
"board",{} ]
}');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
var_dump(json_decode($result,true));
//Daten vom DHCP Server
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"jsonrpc": "2.0",
"id": 2,
"method": "call",
"params": [ "'.$sessionid.'",
"luci-rpc",
"getDHCPLeases",{} ]
}');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
var_dump(json_decode($result,true));
//Übersicht der Netzwerkschnittstellen
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"jsonrpc": "2.0",
"id": 2,
"method": "call",
"params": [ "'.$sessionid.'",
"network.interface",
"dump",{} ]
}');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
var_dump(json_decode($result,true));
//Werte von den Netzwerkkarten
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"jsonrpc": "2.0",
"id": 2,
"method": "call",
"params": [ "'.$sessionid.'",
"luci-rpc",
"getNetworkDevices",{} ]
}');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
var_dump(json_decode($result,true));
curl_close($ch);