Raspberry

Moin,

habe letzte Tage auf 4.4 auf nem Raspberry umgestellt … Seit dem geht ein Script nicht mehr.


	
	///////////////////////////////////////////////////////////////////
    $ImgID = @IPS_GetObjectIDByIdent('Image', $_IPS['SELF']);
	
    if ($ImgID === false)
    {
        $ImgID = IPS_CreateMedia(1);
        IPS_SetParent($ImgID , $_IPS['SELF']);
        IPS_SetIdent($ImgID , 'Image');
        IPS_SetName($ImgID , 'Kachelmann Wetter');
        IPS_SetMediaCached($ImgID , true);
        IPS_SetMediaFile($ImgID , "media" . DIRECTORY_SEPARATOR . "Image_" . $ImgID . ".png", False);
    }
	

   $ImgRAW = @Sys_GetURLContent("https://kachelmannwetter.com/images/data/cache/kompakt/kompakt_".$IDOrt."_".time().".png");
	
   if  ( $ImgRAW == TRUE )
   {
		IPS_SetMediaContent($ImgID , base64_encode($ImgRAW));
    }  

	//Timer einschalten
    IPS_SetScriptTimer($_IPS['SELF'], 300);


Das lädt mir den Wetterbericht von der Kachelmannseite runter… Jetzt die Frage ? Liegt das an 4.4 oder evtl an

dem HTTPS gedöns … Vor ein paar Monaten war da irgendwas mit nem Zertifikat oder … Kann mich nur vage erinnern

Unter 4.3 Jessie ( alte SD ) geht es noch …

Jemand ne Idee ?

Grüße
Christian

Geht es etwas genauer :wink:
Was funktioniert nicht.
Das Echo erzeugt immer eine Fehlermeldung im Log.
Und dass du $URL mit https gar nicht nutzt, ist so richtig?
Michael

Hallo,

gibt es eine Fehlermeldung?

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Die URL war nur testweise… Schauen ob die paßt und im Browser geht…imgraw ist false

Das Script braucht 560ms…

Ist wird anscheinend was geladen… Kann leider nicht sehen was … Ein echo oder print_r liefert nix zurück…

Fehlermeldung kommt leider keine… Image aber leer

Gesendet von meinem ONE A2003 mit Tapatalk

Geht sie den im Browser?
Du schreibst was du machst, aber die Ergebnisse teils du uns nicht mit. Da ist das helfen schwer.
Zuerst nimm das @ raus, dass unterdrückt die Fehlermeldung.
Dort wird vermutlich einfach false zurückgegeben, dass kannst du nicht mit Echo oder print_r ausgeben; var_dump zeigt auch den Variablentyp boolean an.

Und dann hast du bei Sys_GetURLContent die URL nur mit http und ohne https.

Michael

War gerade am futtern… Es kommt stream truncated zurück…

Ist https…

Gesendet von meinem ONE A2003 mit Tapatalk

Gesendet von meinem ONE A2003 mit Tapatalk

Wenn du dir die URL im Script mal ausgeben lässt…und gibst die im Browser ein, dann bekommst du ein Bild?

Weil grundsätzlich funktioniert dein Script. Hab grad mal ein PNG von der Seite geladen mit folgendem/deinem Script - und funktioniert ohne Probleme!

<?

$ImgID = @IPS_GetObjectIDByIdent('Image', $_IPS['SELF']);

if ($ImgID === false)
{
    $ImgID = IPS_CreateMedia(1);
    IPS_SetParent($ImgID , $_IPS['SELF']);
    IPS_SetIdent($ImgID , 'Image');
    IPS_SetName($ImgID , 'Kachelmann Wetter');
    IPS_SetMediaCached($ImgID , true);
    IPS_SetMediaFile($ImgID , "media" . DIRECTORY_SEPARATOR . "Image_" . $ImgID . ".png", False);
}


$ImgRAW = Sys_GetURLContent("https://kachelmannwetter.com/images/scale/de/de/101.png");

if  ( $ImgRAW == TRUE )
{
    IPS_SetMediaContent($ImgID , base64_encode($ImgRAW));
}  

?>

Also ist entweder dein Bild nicht da was du „anfragst“, oder ein Virenscanner/Firewall „grätscht“ dir die Verbindung weg. Oder die Seite hat dich geblockt (vmtl eher unwahrscheinlich) und du solltest es mal mit cURL versuchen und einen anderen Header als „Absender“ mitsenden :smiley:

Grüße,
Chris

also das geht …

https://kachelmannwetter.com/images/data/cache/kompakt/kompakt_2881010_1513194184.png

und unter 4.3 ging es auch sofort … evtl. was mit stretch ?

war da nicht vor einem halben jahr was mit zertifikaten oder so ? kann das leider im forum nicht wiederfinden

blocken kann ich mir auch nicht vorstellen … ist alles die gleiche öffentlich ip

was bedeutet denn das „stream truncated“ ?

unter win10 x64 mit 4.4 geht das einwandfrei … muss irgendwas mit dem pi sein

Das etwas abgeschnitten wurde.
Geht es ohne https?
Ansonsten Tausch Mal Sys_GetURLContent gegen file_get_contents
Michael

Ich kann mit IPS v5 unter Ubuntu (VMware ESXi) mit dem Script das eben von dir genannte PNG laden…alles ok.
Geht sowohl mit „Sys_GetURLContent“ als auch mit „file_get_contents“. Jeweils mit HTTPS und HTTP versucht.

Raspberry hab ich grad keinen verfügbar.

Grüße,
Chris

mit file_get_contents gehts einwandfrei … hätte ich auch früher probieren können, aber wieso ?

vielen dank !!

Schaut aus wie ein Bug in IPS für den Pi.
Oder einer der beteiligten Librarys welche IPS nutzt.
Michael

Fix dafür kommt zum nächsten Update!

paresy