[Solved] Syntax für Zugriff mit authorisierung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Black
Beiträge: 3703
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

[Solved] Syntax für Zugriff mit authorisierung

Beitrag von Black » 26.11.2020, 21:00

Ich krampfe grade mit der Syntax für den autorisierten Zugriff von aussen auf die remoteApi..

bei normalen Nutzernamen und PassWord ist alles ok, generelle syntax ist auch kein problem.

http://NutzerName:[email protected]:8181/black.exe.........

soweit alles schick

nun habe das Passwort Sonderzeichen bzw deutsche Umlaute...
klappt so nicht.

wie muss dieser Part denn dann Codiert sein ?

Thnx, Black
Zuletzt geändert von Black am 27.11.2020, 19:56, insgesamt 1-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

Fonzo
Beiträge: 3944
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 17 Mal
Danksagung erhalten: 210 Mal

Re: Syntax für Zugriff mit authorisierung

Beitrag von Fonzo » 26.11.2020, 21:16

Black hat geschrieben:
26.11.2020, 21:00
wie muss dieser Part denn dann Codiert sein ?
Ganz normal URL codiert nach RFC 3986, urlencode

Benutzeravatar
Black
Beiträge: 3703
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Syntax für Zugriff mit authorisierung

Beitrag von Black » 27.11.2020, 09:30

sollte url encodiert sein, ja... hatte ich natürlich auch probiert mit 2 verschiedenen programmen, um eigenen Dämelfehler auszuschliessen.

könnte das mal einer gegenchecken ?

In Nutzernamen oder Passwort ein zeichen reinsetzen, welches nicht zum präferierten Zeichensatz gehört (Alles was nicht ['A'..'Z','a'..'z','0','1'..'9','-','_','~','.'] ist.

Dann CCU authorisierung an

lässt dich dann mit einem beliebigen externen programm, wo diese daten auch eingegeben sind, auf die remoteApi bzw den xmlrpc prozess zugreifen ?

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

Fonzo
Beiträge: 3944
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 17 Mal
Danksagung erhalten: 210 Mal

Re: Syntax für Zugriff mit authorisierung

Beitrag von Fonzo » 27.11.2020, 19:06

Black hat geschrieben:
27.11.2020, 09:30
Dann CCU authorisierung an

lässt dich dann mit einem beliebigen externen programm, wo diese daten auch eingegeben sind, auf die remoteApi bzw den xmlrpc prozess zugreifen ?
Also bei mir funktioniert das einwandfrei.

Code: Alles auswählen

function GetHomematicVariable($ip, $varname, $auth, $user = '', $password = '')
{
  $req="Write(dom.GetObject(\"$varname\").Variable());";
  $ch=curl_init("http://$ip:8181/tclrega.exe");
  if($auth)
  {
      	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
	curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
  }
  curl_setopt($ch,CURLOPT_POST,true);
  curl_setopt($ch,CURLOPT_POSTFIELDS,$req);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  $ret=curl_exec($ch);
  curl_close($ch);
  // Remove the xml trailer, if present
  $ret=preg_replace("_<xml><exec>.*</xml>_","",$ret);
  return $ret;
}

$user = 'homematicuser';
$password = '!geheim';
$ip = '192.168.55.106'; // CCU3 IP


$value = GetHomematicVariable($ip,"Uhrzeit", true, $user, $password);
var_dump($value);

Der Weg wie Du das nutzten willst
http://NutzerName:[email protected]:8181/black.exe
macht nur rein von der Sicherheit keinen Sinn. Man brauchst kein Passwort mit Sonderzeichen zu setzten, wenn Du anschließend das Passwort innerhalb der URL unverschlüsselt übergibst, das dann jeder der will mitlesen kann. Die Übergabe des Benutzernamens und des Passworts sollte zumindest im Header erfolgen und nach Möglichkeit per https.

Benutzeravatar
Black
Beiträge: 3703
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Syntax für Zugriff mit authorisierung

Beitrag von Black » 27.11.2020, 19:55

da ich ohne curl arbeite wühle ich in einer Tiefe rum, wo direkt in den Classen via Addheader noch die Header manuell zusammensetzt werden müssen.
Im header ging es mit den Sonderzeichen, es brauchte dann aber noch die passsende unit zum Codieren, weil URLencode isses im Header nicht mit.

Damit solved...
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“