SmartHome-PHP icon indicating copy to clipboard operation
SmartHome-PHP copied to clipboard

Notification

Open Stephan18 opened this issue 9 years ago • 57 comments

Hallo,

Erstmal wirklich respekt. Eine Super API. Echt klasse Arbeit! Ich habe mir damit eine GUI gebaut, über die ich alles steuern kann.

Jetzt wollte ich gerne Notifications einbauen, damit auch z.b. wenn ich in der Küche das Licht einschalte, dies sichtbar wird, ohne die Seite neu zu laden.

Dazu habe ich folgenden Aufruf:

$test = new SmartHome("smarthome.meine-domain.de", "Stephan", "");
print "<pre>";
print_R($test->getUpdates());
exit;

Leider erhalte ich dadurch keine Informationen. Die Antworten sind immer leer.

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [NotificationListId] => ID
        )

    [Notifications] => SimpleXMLElement Object
        (
        )
)

Jetzt habe ich gelesen, dass ich vorher ein Subscribe an die Station schicken muss, um dort eine Antwort zu erhalten. Wie genau würde das funktionieren? Ehrlich gesagt, bin ich grad ein wenig "überfordert".

Mein Ziel: 1.) 5 Endgeräte zeigen die Webseite an 2.) Die Webseite hat nur ein Symbol "Licht küche" 3.) Das Symbol Licht küche ist grau, da dass Licht aus ist 4.) Ich gehe in die Küche und drücke auf den Lichttaster, licht schaltet sich ein 5.) Das Symbol "Licht Küche" wird gelb

Dazu habe ich bereits auf meinem Server node installiert. Die Webseiten haben eine keep-alive Verbindung zu diesem node. Node sendet bei Änderungen die Geräte-ID mit neuem Status. Aber eben genau dies fehlt mir.

Hast du da vielleicht eine Hilfe für mich? Wie genau das ablaufen muss?

Danke !!

Stephan18 avatar May 10 '15 09:05 Stephan18

Die Updates bekommst du eigl immer wenn etwas passiert, sprich du musst in einer while Schleife nach den Updates suchen und das dann verarbeiten.

Ich kann mal nachsehen wie das mit einem subscriben ist.

Ich muss allgemein mal gucken wie das mit dem Projekt steht. Hab lange nichts mehr gemacht und es gab viele tolle Ideen :/

Bubelbub avatar May 10 '15 09:05 Bubelbub

WOW ging das schnell. Danke dir für die Antwort. Vielleicht gab es ein Update von RWE mit dem System?

Über getUpdates ruft die API ja letztendlich dieses auf:

POST /upd HTTP/1.1

Und genau diese sind immer leer. Denn die Smarthome kann ohne Client-ID ja nicht wissen, welche Notifications du schon hast. Hast du schon mit bekommen, das dass Licht eingeschaltet wurde, oder noch nicht? So verstehe ich das zumindest in der Anleitung. Und genau dafür soll es dies geben:

<BaseRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="NotificationRequest" Version="1.70" RequestId="a7b419e0-54da-2120-abae-bf4f892c5ffd" SessionId="e75718e7-999f-4b19-b186-a34c891c938c">
  <Action>Subscribe</Action>
  <NotificationType>DeviceStateChanges</NotificationType>
</BaseRequest>

Damit sagst du der Smarthome, du möchtest über Device Änderungen Informiert werden. Die Smarthome Antwortet damit:

<BaseResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AcknowledgeResponse" Version="1.70" CorrespondingRequestId="a7b419e0-54da-2120-abae-bf4f892c5ffd" />

Diese CorrespondingRequestId muss man dann bei getUpdates() mit senden, damit die Smarthome weiß, welche Informationen du noch nicht erhalten hast. Wenn man das Subscribe nicht schickt, ist getUpdates() jedenfalls immer = leer, was (wenn ich es richtig verstehe), auch richtig ist. nur fehlt mir da einfach das Wissen, wie man das genau aufbaut.

Quelle: http://www.ollie.in/rwe-smarthome-api/

Ich hoffe, dass du mir helfen kannst :)

Und: Ich fände es richtig gut, wenn du das Projekt noch weiter verfolgst. Ich find die Arbeit klasse und Smarthome wird ja auch immer beliebter.

Stephan18 avatar May 10 '15 09:05 Stephan18

Ja gut macht Sinn. Das Ding ist halt, dass im Hintergrund immer die Client Id übertragen wird, meine ich. Weshalb das damit gehen sollte.

Aber laut dem Blog Artikel muss man sich wirklich erst anmelden. Hatte da nie drauf geachtet ^^

Werde die Funktion demnächst mal einbauen und das mal testen. Weiß nur nicht wann :/

Wenn du sonst ein Programmierer bist kannst du ja mal versuchen den Request zu schicken :)

Bubelbub avatar May 10 '15 09:05 Bubelbub

Das habe ich gesehen ja. Es wird immer die Aktuelle ID geschickt. Aber genau mit dieser ID weißt du ja "alles" und brauchst keine Notifications.

Ich werde auch noch weiter versuchen, den Request hinzubekommen.

Wenn ich es geschafft habe, schicke ich dir die Änderungen. Ansonsten wäre es echt gut wenn du auch die Zeit findest ;-).

Hätte aber ja sein können, dass du schon genau weißt, wie das zu Integrieren ist.

Danke dir :)

Stephan18 avatar May 10 '15 09:05 Stephan18

Hallo,

Hier eine mögliche Lösung (getestet):

SmartHome.class.php:

use Bubelbub\SmartHomePHP\Request\NotificationRequest;
    /**
    * @return array with:
    * @return string clientId
    * @return string sessionId
    **/
    public function getNotificationID() {
        $getNotificationRequest = new NotificationRequest($this);       
        $getNotificationRequest->send();
        
        return array('clientId' => $this->getClientId(), 'sessionId' => $this->getSessionId());
    }

SmartHomePHP/Request/NotificationRequest.class.php:

namespace Bubelbub\SmartHomePHP\Request;
class NotificationRequest extends BaseRequest
{
    protected $action = 'cmd';
    
    public function send($expectedResponse = 'AcknowledgeResponse', $useSession = false, $try = 1)
    {
        $this->smartHome->setSessionId(null);
        $req = $this->getRequest();
        $req->addChild('Action', 'Subscribe');
        $req->addChild('NotificationType', 'DeviceStateChanges');
        
        $useSession = true;
        $response = parent::send($expectedResponse, $useSession, $try);
        return $response;
    }
}

Test:

$smarthome = new SmartHome("ip", "user", "pass");
print "<pre>";
print_r($smarthome->getNotificationID();
exit;

Mit der clientID und sessionID, die durch getNotificationID() zurückgeliefert wird, kann man die Notifications jetzt über getupdates() abfragen:

$smarthome = new SmartHome("ip", "user", "pass");
$smarthome->setClientId('clientid');
$smarthome->setSessionId('sessionid');
print "<pre>";
print_R($smarthome->getUpdates());
exit;

Hoffe das ist vom Stil her okay :-P funktioniert zumindest :-D

Stephan18 avatar May 10 '15 13:05 Stephan18

Hi,

Muss nochmal stören. Ich habe hier einen Unterputzlichttaster. Den Status von diesem frage ich bereits ab und stelle es dar. Also wenn dann jemand das Licht einschaltet, wird dies automatisch angezeigt.

Jetzt versuche ich, über die passende set Funktion, das Licht auszuschalten. Ich sende die ID und false. Von der Station kommt OK, aber es ist nichts passiert.

Hast du ein Beispiel, wie ich das Licht schalte?

Danke!

Stephan18 avatar May 11 '15 13:05 Stephan18

Hallo Stephan,

in Java sieht das so aus - vielleicht hilft Dir das ja:

    public void switchActuatorChangeState(String deviceId, boolean bOn)
            throws SmartHomeSessionExpiredException {
        String switchOnRequest;
        // String sResponse = "";
        switchOnRequest = "<BaseRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"SetActuatorStatesRequest\" Version=\"" + SmartHomeBase.FIRMWARE_VERSION + "\" RequestId=\""
                + requestId
                + "\" SessionId=\""
                + getSessionId()
                + "\" BasedOnConfigVersion=\""
                + currentConfigurationVersion
                + "\"><ActuatorStates><LogicalDeviceState xsi:type=\"SwitchActuatorState\" LID=\""
                + deviceId
                + "\" IsOn=\""
                + bOn
                + "\" /></ActuatorStates></BaseRequest>";
//      Logger.getLogger(SmartHomeSession.class.getName()).log(Level.FINE,
//              "Switching: " + switchOnRequest);
        // sResponse =
        executeRequest(switchOnRequest, "/cmd");

Kompletter Code siehe hier: https://github.com/ollie-dev/openhab/blob/1.6/bundles/binding/org.openhab.binding.rwesmarthome/src/main/java/org/openhab/binding/rwesmarthome/internal/lib/api/SmartHomeSession.java

Gruß Ollie

ollie-dev avatar May 11 '15 14:05 ollie-dev

Das ist vermutlich die Einstellung am Schalter... Bitte mal sie Option "Schalterzustandserkennung" im SHC für den Unterputzschalter auf AUS setzen.

Am 11.05.2015 um 15:36 schrieb Stephan18:

Hi,

Muss nochmal stören. Ich habe hier einen Unterputzlichttaster. Den Status von diesem frage ich bereits ab und stelle es dar. Also wenn dann jemand das Licht einschaltet, wird dies automatisch angezeigt.

Jetzt versuche ich, über die passende set Funktion, das Licht auszuschalten. Ich sende die ID und false. Von der Station kommt OK, aber es ist nichts passiert.

Hast du ein Beispiel, wie ich das Licht schalte?

Danke!

— Reply to this email directly or view it on GitHub https://github.com/Bubelbub/SmartHome-PHP/issues/9#issuecomment-100909512.

LMS0815 avatar May 11 '15 15:05 LMS0815

Zum Thema Sourcen:

Schau mal hier:

http://www.rwe-smarthome-forum.de/thread-rwe-smarthome-plugin-fuer-eventghost

LMS0815 avatar May 11 '15 15:05 LMS0815

Bei dem Unterputzschalter kommt bei EInstellungen nur: "Dieses Gerät bietet keine weiteren Einstellungsmöglichkeiten"

Vielleicht nur beim Dimmer?

Aber ich schaue mal, den Code in Java unterscheidet sich ja deutlich, von dem generiertem der SmartHome-PHP-API. Wenn ich weiter gekommen bin, melde ich mich :)

Danke euch beiden!

Stephan18 avatar May 11 '15 15:05 Stephan18

Okay, also ich habe einfach mal nach isOn gesucht, und dabei bemerkt, dass die Funktion setLogicalDeviceState()

gar nicht für den Switch genutzt wird. Benutze jetzt die funktion setSwitchActuatorState()

damit hat das auch direkt geklappt :), danke für das Code-Beispiel !

Stephan18 avatar May 11 '15 15:05 Stephan18

Am besten mal per "GetAllLogicalDeviceStatesRequest" die Konfiguration auslesen. Da kann man viel über die Konfiguration des SHC erfahren :)

LMS0815 avatar May 11 '15 16:05 LMS0815

Der Unterputz-Schalter hat V1.1

Stephan18 avatar May 11 '15 16:05 Stephan18

Daran könnte es liegen, das nicht alle Einstellungen vorhanden sind...

http://www.rwe-smarthome-forum.de/thread-aktuelle-firmwarestaende-verschiedener-geraete

Am 11.05.2015 um 18:04 schrieb Stephan18:

Der Unterputz-Schalter hat V1.1

— Reply to this email directly or view it on GitHub https://github.com/Bubelbub/SmartHome-PHP/issues/9#issuecomment-100959198.

LMS0815 avatar May 11 '15 17:05 LMS0815

Okay, klappt nun bestens, nach der änderung auf setSwitch.

Jetzt stehe ich vor dem nächsten Problem.. Ich bekomme perfekt die Geräte eingelesen (Tür kontakte, Unterputz-Schalter, Wandsender usw) aber jetzt hänge ich an den Variabeln. Ich habe eine Variabel 'Zustandsvariabel 1' diese wird eingelesen als 'GenericActuator.class.php'.

Dort kann ich aber keinen Zustand sehen? Also true/false. Auch habe ich mir mal direkt den XML Teil angesehen und finde auch dort keinen Zustand. Kann mir da bitte jemand helfen :) ?

Danke!

Stephan18 avatar May 12 '15 19:05 Stephan18

Schau nochmal in den Java-Code:

    public void zustandsVariableChangeState(String deviceId, boolean bIsOn)
            throws SmartHomeSessionExpiredException {
        // String sResponse = "";
        String switchOnRequest = "<BaseRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"SetActuatorStatesRequest\" Version=\"" + SmartHomeBase.FIRMWARE_VERSION + "\" RequestId=\""
                + requestId
                + "\" SessionId=\""
                + getSessionId()
                + "\" BasedOnConfigVersion=\""
                + currentConfigurationVersion
                + "\"><ActuatorStates><LogicalDeviceState xsi:type=\"GenericDeviceState\" LID=\""
                + deviceId
                + "\"><Ppts><Ppt xsi:type=\"BooleanProperty\" Name=\"Value\" Value=\""
                + bIsOn
                + "\" /></Ppts></LogicalDeviceState></ActuatorStates></BaseRequest>";
//      Logger.getLogger(SmartHomeSession.class.getName()).log(Level.FINE,
//              "Switching: " + switchOnRequest);
        // sResponse =
        executeRequest(switchOnRequest, "/cmd");
    }

ollie-dev avatar May 12 '15 20:05 ollie-dev

Danke.

Habe gesehen, dass in der Smarthome.php noch einige TODOS stehen. Und genau bei Gemeric war es auch so. Hab mir dann das Objekt ausgeben lassen, was zur Variabel gehört und das erweitert.

Nun klappt es! Einwandfrei!

Danke :)

Stephan18 avatar May 13 '15 02:05 Stephan18

Hallo,

Ich muss nochmal Nerven. Auf meinem Handy habe ich eine App "Home Control". Wenn ich dort das erste mal einen Status Wechsel (Licht an) dauert das 3-4 Sekunden. Wenn ich an dann nochmal ändere, geht das quasi sofort. Ohne Verzögerung. Bei meiner Webseite dauert es aber immer 3-4Sekunden. Was mache ich falsch? Ich generiere quasi eine requestID bei jedem Aufruf neu. Aber die SessionID und ClientID Cache ich. D.h. Wenn man auf Licht an drückt, wird nur ein Befehl ausgeführt und zwar dieser:

var postRequest = {
            hostname: "192.168.178.64",
            rejectUnauthorized: false,
            secureProtocol: 'SSLv3_method',
            path: "/cmd",
            method: "POST",
            headers: {
                'Content-Length': Buffer.byteLength(body, 'utf8'),
                'ClientId': clientId
            }
        };
        
        var req = https.request(postRequest, function(res) {
            log("Smarthome response was positive");
        });

Das https.request wird sofort nach dem Klick ausgeführt, dass weiß ich, weil ich davor einen Text in die Konsole schreibe "sende Befehl". Nach dieser Ausgabe dauert es dann 3-4 Sekunden, bis "Smarthome response was positiv" kommt. Also liegt es klar an diesem einem request.

Kann sich das eventuell jemand erklären?

Danke!!

Stephan18 avatar May 15 '15 08:05 Stephan18

Hi,

Ich habe in-etwa die gleiche Verzögerung wie mit der Lokalen Installation der RWE SmartHome SW. Allerdings ist auch da eine Verzögerung zu "spüren". Gemessen habe ich nicht; Sie liegt bei rund einer Sekunde.

Gemeint ist hierbei die Auslösung per SW und das Ereignis (z.B. Licht an). Der Response über das Monitoring kommt deutlich später und ist natürlich abhängig vom polling intervall.

Interessanter weise wird die Original SW per /puh /darüber informiert, das sich der Status geändert hat. Wir pollen (pull) ja nach neuen Ereignissen. Wie ich einen Push konfigurieren miss habe ich bisher noch nicht herausfinden können.

Mit dem /Fiddler Web Debugger/ kannst du schön die Kommunikation der Origilan SW beobachten. Vieleiche findest Du ja der Geheimnis heraus.

PS: Um sauber zu messen solltest du deine Benachrichtigung direkt in de Request Teil vor dem Senden einbauen. Ich finde die Erzeugung des XML Request dauert je nach Server merklich.

Am 15.05.2015 um 10:30 schrieb Stephan18:

Hallo,

Ich muss nochmal Nerven. Auf meinem Handy habe ich eine App "Home Control". Wenn ich dort das erste mal einen Status Wechsel (Licht an) dauert das 3-4 Sekunden. Wenn ich an dann nochmal ändere, geht das quasi sofort. Ohne Verzögerung. Bei meiner Webseite dauert es aber immer 3-4Sekunden. Was mache ich falsch? Ich generiere quasi eine requestID bei jedem Aufruf neu. Aber die SessionID und ClientID Cache ich. D.h. Wenn man auf Licht an drückt, wird nur ein Befehl ausgeführt und zwar dieser:

var postRequest = { hostname: "192.168.178.64", rejectUnauthorized: false, secureProtocol: 'SSLv3_method', path: "/cmd", method: "POST", headers: { 'Content-Length': Buffer.byteLength(body, 'utf8'), 'ClientId': clientId } };

     var req = https.request(postRequest, function(res) {
         log("Smarthome response was positive");
     });

Das https.request wird sofort nach dem Klick ausgeführt, dass weiß ich, weil ich davor einen Text in die Konsole schreibe "sende Befehl". Nach dieser Ausgabe dauert es dann 3-4 Sekunden, bis "Smarthome response was positiv" kommt. Also liegt es klar an diesem einem request.

Kann sich das eventuell jemand erklären?

Danke!!

— Reply to this email directly or view it on GitHub https://github.com/Bubelbub/SmartHome-PHP/issues/9#issuecomment-102315832.

LMS0815 avatar May 15 '15 14:05 LMS0815

Hallo LMS,

Danke für die Antwort. Ich habe ohne Messen deutliche Wartezeiten. Es dauert wenigstens 3 Sekukden. Gemeint ist dabei auch die Reaktion bis dann letztendlich das Licht an geht.Ich drücke, 3 Sekunden später geht das Licht an und "fast" Zeitgleich kommt die Antwort, das der Response positiv war :(

Stephan18 avatar May 16 '15 05:05 Stephan18

Natürlich hast du recht, dass wir nach neuen Ereignissen "suchen" und keinen Push bekommen. Bis also die Antwort letztendlich auf dem Endgerät ist vergeht wieder Zeit. Denn die Antwort "response ok", sagt nur, dass die Smarthome den Befehl ausgeführt hat, es ist aber keine Statusänderungs-Mitteilung.

Vielleicht hast du eine Idee?

Danke!

Stephan18 avatar May 16 '15 05:05 Stephan18

Es ist aber richtig, dass ich keine Verbindung dauerhaft aufgebaut lasse oder? Also wenn ich Licht einschalten sende, ist dies ein ganz neuer Request über einen neuen https.request jedoch mit vorhandener Session und clientid oder?

Stephan18 avatar May 16 '15 22:05 Stephan18

Ja, die Session baust zu zu Beginn einmal mit dem Login-Request auf und nutzt dann die Session-ID für die folgenden Requests weiter. Es ist aber jedes mal ein neuer HTTPS-Request. Auch bei meinem OpenHAB-Binding in Java dauert es einen Moment, allerdings klingen drei Sekunden jetzt sehr lang. Ich hätte jetzt 1-2 aus dem Bauch heraus gesagt.

ollie-dev avatar May 16 '15 22:05 ollie-dev

Du kannst auch meine ich per nodejs eine Verbindung dahin aufbauen. Wenn Socket.IO kein passendes "Gegenstück" findet, nutzt es Ajax Anfragen. Im Endeffekt sind die dann auch dauerhaft bis zum Timeout.

Sprich anders gesagt: Sobald eine Anfrage beendet ist startest direkt eine neue.

Am 17. Mai 2015 um 00:59 schrieb ollie-dev [email protected]:

Ja, die Session baust zu zu Beginn einmal mit dem Login-Request auf und nutzt dann die Session-ID für die folgenden Requests weiter. Es ist aber jedes mal ein neuer HTTPS-Request. Auch bei meinem OpenHAB-Binding in Java dauert es einen Moment, allerdings klingen drei Sekunden jetzt sehr lang. Ich hätte jetzt 1-2 aus dem Bauch heraus gesagt.

— Reply to this email directly or view it on GitHub https://github.com/Bubelbub/SmartHome-PHP/issues/9#issuecomment-102710053 .

Bubelbub avatar May 16 '15 23:05 Bubelbub

Ja genau. Ich nutze auch node für die Anfrage an die Smarthome. Und es ist definitiv ausgeschlossen, dass irgendetwas "davor" länger dauert.

Es ist leider die Verbindung von Node zur smarthome die diese 3 Sekunden dauert (Signal Licht an, bis dann das Licht an ist).

Gut, dass ich jedenfalls das mit dem Request anscheinend richtig mache.

Aber: wie finde ich raus, wo genau das Problem liegt? Mit diesem Debug Tool womit man den Datenverkehr ansehen kann, komme ich wegen meinem Mac nicht ganz klar.

Wie komme ich dahinter, was das Problem ist?

Danke!!

Stephan18 avatar May 16 '15 23:05 Stephan18

Nachtrag: mache ich vom Server einen Ping zur smarthome ist dieser in weniger als einer Sekunde da. Es ist die normale Zeit für einen Ping. Also die Verbindung zur home kann es auch nicht sein :(

Stephan18 avatar May 17 '15 00:05 Stephan18

Ich habe bei mir nur lange verzögerungen, wenn es eine Störung gibt. Das heißt das ein Gerät im Gesamten Setup keine Verbindung hat... Das bremst anscheinend alles irgendwie aus.

Übrigens habe ich gerade einen MultipleRequest entgeckt. Damit kann man effizienter mehrere Anfragen bündeln. z.B. 3 Lichter gleichzeitig schalten...

Am 17.05.2015 um 02:08 schrieb Stephan18:

Nachtrag: mache ich vom Server einen Ping zur smarthome ist dieser in weniger als einer Sekunde da. Es ist die normale Zeit für einen Ping. Also die Verbindung zur home kann es auch nicht sein :(

— Reply to this email directly or view it on GitHub https://github.com/Bubelbub/SmartHome-PHP/issues/9#issuecomment-102712827.

LMS0815 avatar May 17 '15 11:05 LMS0815

Kann bei mir leider auch nicht an einer anderen Störung liegen. Wenn ich von einer anderen APP auf dem Handy (Home Control) dauert das Umstellen von Lichtern auch nur 1 Sekunde :(

Stephan18 avatar May 17 '15 12:05 Stephan18

Ich würde mal versuchen, das mitzusniffen. Unter Windows mit Fiddler könntest Du die RWE-App mitsniffen und siehst dann, ob sich bei dem Request irgendwas unterscheidet. Wenn alles identisch ist, könnte es ggf. an SSL liegen. Die RWE App nutzt ein richtiges Zertifikat, wenn ich das richtig im Kopf habe und bei den meisten anderen Lösungen werden die Zertifikate ignoriert etc.

ollie-dev avatar May 17 '15 12:05 ollie-dev

Hallo ollie. Ich hab schon versucht, mit Fiddler, das zu überprüfen. Da ich aber auf dem Mac unterwegs bin, ist das gar nicht so einfach. Der Safari schafft es, dass Fiddler es nicht mit bekommt (wie auch immer).

Und der Chrome ist unter Mac OSx nicht kompatibel mit RWE Smarthome. Werde mir wohl mal eine Windows maschine aufsetzen müssen.

Eine Frage zu dem Zertifikat. Ist es denn möglich, das passende Zertifikat zu kopieren und zu verwenden? Aktuell mache ich ja wirklich:

rejectUnauthorized: true,
secureProtocol: 'SSLv3_method',

Ich habe auf meinem PC 4 Zertifikate gefunden, die alle infrage kommen "könnten". Habe alle 4 Zertifikate exportiert und auf den debian Server kopiert. Versuche ich dann dieses Zertifikat zu verwenden, kommt direkt ein Fehler, dass die Datei nicht lesbar ist. Dann habe ich folgendes gemacht mit den 4 Zertifikaten:

openssl x509 -text -inform DER -in "zertifikat.cer"

dort habe ich dann das reine Zertifikat angezeigt bekommen:

-----BEGIN CERTIFICATE-----
....
...
...
-----END CERTIFICATE-----

diese habe ich gespeichert unter test1.crt - test4.crt

In node habe ich folgendes Versucht:

cert: fs.readFileSync('./zert/test1.crt'),

Aber bei allen 4 Zertifikaten erhalte ich dann von https.request folgende Antwort:

[Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE]

Ist es überhaupt möglich, das Zertifikat zu kopieren und zu verwenden?

Danke!!

Stephan18 avatar May 17 '15 13:05 Stephan18