[Solved] Syntax für Zugriff mit authorisierung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 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:Passwort@IPderCCU: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

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 485 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: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 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

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 485 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:Passwort@IPderCCU: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: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 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

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

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