NEWS
Kann ich eine Fritz Dect Steckdose per URL / PHP schalten?
-
Ich habe eine Fritz Steckdose als DECT Objekt in meiner IoBroker Instastallation. Das funktioniert soweit alles ganz gut.
Nun möchte ich von außerhalb über eine URL diese Steckdose automatisiert anschalten? Über diese Steckdose wird eine Nachtspeicherheizung angeschaltet. In dem auslösenden System kann ich eine URL, z.B. ein PHP-Script angeben. Diese Script müsste mir dann die Steckdose anschalten. Ich dachte hierzu müsste es doch etwas in IoBroker geben.
Kann mir jemand einen Tip geben, wie so etwas geht. Wo ich dazu ein Beispiel oder eine Doku finden. Meine Suche danach war leider erfolglos.
-
@d003232 sagte: über eine URL diese Steckdose automatisiert anschalten?
Simple-API über VPN.
-
@paul53 Vielen Dank. Paul. Mit Simple-API bin ich ein ganzes Stück weiter gekommen.
Nun kann ich mit einer URL meine Fritz!-Steckdose anschalten:
aber:
mein Raspi hat kein prüfbares SSL Zertifikat. Daher kommt im Brower eine Zertifikatswarnung. Manuell kann ich die Warnung im Browser übergehen. Aber wie schaffe ich es, die Warnung automatisch bei einem Aufruf per Script zu übergehen?
-
Kann ich das Übergehen der Warnung irgendwie als Option in PHP z.B. bei "curl_exec" mit angeben? Oder kann ich die URL oben irgendwie anders in PHP aufrufen?
-
oder kann ich das von meiner IOBroker Installation verwendete Zertifikat auf meinem Raspi irgendwie prüfbar machen, so dass keine Zertifikatswarnung erfolgt?
Der Aufruf meiner URL erfolgt auf einem fremden Server. Dort kann ich nur eine URL angeben. Daher muss ich das Abfangen der Fehler wohl vorher in einem eigenen Skript durchführen.
Bin gerade etwas überfordert. Habe mit stundenlang mit den Zertifikaten beschäftigt und weiss erlich gesagt nicht, wo ich ansetzen soll ... bei IO broker ... bei meinem Hoster ... beim Raspi ... in PHP ...
-
-
@d003232 falls der Aufruf per
curl
passiert (gibt es ja auch für Windows) einfach den Parameter-k
bzw.--insecure
angeben, dann prüft er die Gültigkeit nicht -
@bananajoe Yeaa. Es funktioniert! Danke!
Da ich es in einem PHP Script schalte, nicht per Bash aufrufe, habe ich nun statt --insecure die Option "curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);" hinzugefügt. Nun geht es!
Hier mein finales Script:
<?php /* Anschalten der Nachtspeicherheizung über Iobroker & Fritz-DECT-Steckdose */ $url = "https://555xxx333ddd33ddd.myfritz.net:1234/set/fritzdect.0.DECT_080808080808.state?value=true&prettyPrint&user=XXXXXXXXXX&pass=1234567890"; $ch=curl_init(); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYSTATUS, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_PROXY_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); curl_close ($ch); echo $result; ?>