iPhone Push Notification von IP-Symcon

Muss das gerade nochmal hoch holen.

Ich versuche gerade Push per Boxcar (geniales App!!) zu realisieren.
Funktioniert so weit auch, allerdings bekomme ich nach der Ausführung noch einen Fehler zurück:

Notice:  Undefined variable: id in [Kommunikation\Boxcar Push] on line 22
 Array
(
    [success] => y
    [error] => 
    [error_code] => 
)

Das Skript dazu sieht folgendermaßen aus:

<?php

	class Boxcar {

		private $username;
		private $password;

		public function __construct($username = "", $password = "") {

            $this->username		= $username;
            $this->password		= $password;
        }

		public function send($sender, $message) {

			$rdmint = rand();
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
			curl_setopt($ch, CURLOPT_USERPWD, $this->username.':'.$this->password);
			curl_setopt($ch, CURLOPT_URL, 'https://boxcar.io/notifications');
			curl_setopt($ch, CURLOPT_POST, 3);
			curl_setopt($ch, CURLOPT_POSTFIELDS, 'notification[from_screen_name]='.urlencode(stripslashes($sender)).'&notification[message]='.urlencode(stripslashes($message)).($id ? '&notification[from_remote_service_id]='.$rdmint : ''));
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
			$return = curl_exec($ch);

			$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

			curl_close($ch);

			# Invalid username/password
			if($httpcode == "401"):

				return array("success" => "n",
							"error" => "Invalid username/password",
							"error_code" => "401");

			# No application/event defined
			elseif($httpcode == "400"):

				return array("success" => "n",
							"error" => "No application/event defined",
							"error_code" => "400");

			# All ok!
			endif;

			return array("success" => "y",
						"error" => "",
						"error_code" => "");
		}

	};

?>

Habe ich so aus dem github übernommen. Sieht da jemand einen Fehler in der betreffenden Zeile!?

Besten Dank!

Nö, Fehler gibts keinen. Aber die Variable ist einfach nicht vorhanden; solltest Du noch mit irgendwas beschreiben order erstmal erzeugen.

 curl_setopt($ch, CURLOPT_POSTFIELDS, 'notification[from_screen_name]='.urlencode(stripslashes($sender)).'&notification[message]='.urlencode(stripslashes($message)).([b]$id[/b] ? '&notification[from_remote_service_id]='.$rdmint : '')); 

Mh, ich dachte die geben die über die Variable $rdmint an?
Und diese wird ja vorher mit einer Zufallszahl beschrieben…

Oder blick ich das jetzt nicht richtig?
Sorry, PHP Neueinsteiger :o

$rdmint ist ne eigene Variable und hat mit $id nichts zu tun. Es erfolgt ja auch keine Zuweisung wie $rdmint = $int oder Ähnliches.

Ok, Danke, wenn ich der einen Wert zuweise ist der Fehler weg.

Weiss zwar nicht genau wozu die dient aber egal…

Bekomme immer den Fehler…

Fatal error: Call to undefined function curl_version() in C:\IP-Symcon\scripts\ProwlPHP.php on line 32

Kann mir jemand helfen?

Du hast die curl extension nicht eingebunden.

Super, vielen Dank…

OT: Warum gibt es sowas eigentlich nicht für Android? :frowning:

Sent from my GT-I9000 using Tapatalk

Bin ich eigentlich der einzigste, welcher vergebens die Datei „Prowlphp.php“ sucht? Der Link dafür ist Tod, auf der Homepage von Prowl finde ich 2 Links für PHP APIs, jedoch ist da keine Spur von dieser Datei, kann mir jemand helfen?

Wäre super, vielen Dank :slight_smile:

Da ist doch alles was Du suchst.

Danke und sorry zugleich, da bin ich 2 mal den Thread durch und habe es nicht gesehen…
Mit der passenden php_curl Version geht es einwandfrei.

Danke :slight_smile:

@xxxchris Danke für´s Script!

und Dank FS20 PIRA Bewegungsmelder meldet der Briefkasten frische Post und das Gartentor neuen Besuch!

Ich bin begeistert!

Daniel

Gibt es eigentlich eine Möglichkeit relativ komfortabel eine Nachricht an 2 Prowl Accounts zu schicken oder muss man dafür das Script 2x erstellen und ausführen?

Gruß
Jens

Ich habe versucht eine Url


'url'=>'http://webfront.dyndns.org:82',

mit zu übergeben, dann wird das Script aber einfach nicht ausgeführt.
Muss dazu in der ProwlPhp.php etwas geändert oder hinzugefügt werden?

Danke im voraus.
René

Hi,

ich weiss nicht ob’s noch aktuell ist aber da ich gerade auch alles auf Prowl umgestellt haben erwähne ich es hier nochmal, vielleicht für andere:

Diese Zeile muss in der ProwlPHP.php in Zeile 28 ergänzt werden, dann klappt auch mit der URL:

'url'           => 512,

Gruß
spooniester

Hallo Leute,

ich bin derzeit ein bißchen bei den Skripten am „Aufräumen“.
Ich habe mir für die Prowl-Benachrichtigung die ich schon seit langer Zeit nutzen eine zentrale Funktion geschrieben.

function ProwlBenachrichtigung ($Empfaenger, $Ereignis, $Text, $Priority)
{
$Datum = GetValueString(23632 /*[Sonstige Daten\Variablen\Sonstige Variablen\Aktuelles Datum]*/ );
$Uhrzeit = GetValueString(37001 /*[Sonstige Daten\Variablen\Sonstige Variablen\Aktuelle Uhrzeit]*/ );

If (GetValueBoolean(16848 /*[Server\Einstellungen\Prowl Benachrichtigung\Funktion]*/ )== true)
	{
	include('ProwlPHP.php');

	$ProwlKey = GetValueString(54540 /*[Server\Einstellungen\Prowl Benachrichtigung\ProwlKey]*/ );

	$prowl = new Prowl($ProwlKey);

	$prowl->push(array(
 	'application'=>'IP-Symcon',
 	'event'=>utf8_encode($Ereignis),
 	'description'=>utf8_encode("$Datum $Uhrzeit - $Text"),
 	'priority'=>$Priority
	));
	}
}

Hier mal der Aufruf-Test:

include('f_ProwlBenachrichtigung.ips.php');

ProwlBenachrichtigung("Joachim", "Test", "Test-Nachricht", 0);

return;

Vorher war es ja in diversen Skripten verteilt. Nun kann es Zufall sein, aber des iPhone meldet nun ab und zu, dass es mein Passwort benötigt, erst nach der Eingabe wird die Nachricht angezeigt. Prinzipiell scheint also alles in Ordnung zu sein, aber woran kann das liegen?

Joachim

Hi kann es sein das du mehrere iTunes Accounts hast, und prowl vielleicht nicht über den Standart iTunesAccount gekauft hast ?

Hallo Drapple,

vielen Dank erst einmal für Deine Antwort.

Nun, hier sind drei iPhones und ein iPad angemeldet - alle über den gleichen Account. Bisher hat das noch keine Probleme bereitet.
Nur auf einem Gerät ist Prowl installiert, in der Konstellation hat das bisher auch immer funktioniert. Stutzig macht mich ja lediglich nur, dass es jetzt - ab und zu (aktuell bekomme ich die Fehlermeldung gerade nicht provoziert) - zu dieser Fehlermeldung kommt. Da das „Umstricken“ meine Skripte und die zeitweisen Fehlermeldungen jetzt gerade zusammenkommen ist schon sehr komisch - könnte ja aber auch Zufall sein…

Wie würde man es eigentlich steuern, damit die Nachrichten auf einem anderen Gerät angezeigt werden?:confused:
API-Keys kann man sich ja auf seinem Account mehrere erzeugen…

Joachim

Nachtrag: Jetzt trat der Fehler wieder auf.
Aufruf der Funktion durch:

<?
include('f_ProwlBenachrichtigung.ips.php');

ProwlBenachrichtigung("Joachim", "Gruß", "Herzlich Willkommen Zuhause!", -1);

return;
?>

Hallo Leute,

gleich zwei Erfolgsmeldungen::slight_smile:

  1. Den Fehler mit dem Passwort hatten wohl auch einige andere (ist dort auch im Prowl-Forum ein Thema gewesen), wie der eine oder andere vielleicht schon gemerkt hat, gab es heute ein Update, u.a. auch genau wegen diesem Fehler…

  2. Die Einrichtung eines zweiten Accouns ist ohne Probleme möglich, einfach nach der Installation auf dem zweiten iPhone einen neuen Account bei Prowl anlegen, dann gibt es für dieses Gerät auch einen eigenen Key, auch wenn die verschiedenen Geräte über einen iTunes-Account laufen…

Joachim