[Frage] SensorAndSwitch: Raspberry: Bitte um Hilfe bei Pseudoscript-Erstellung

Webmin für den Raspberry

Zur einfachen Konfiguration und zur Datenpflege des Raspberry und seiner angeschlossenen Komponenten kann ich das kostenlose Tool Webmin empfehlen.
Damit ist der Zugriff auf die Himbeere z.B. von einem Windows- oder MAC-PC mittels einer umfangreichen WEB-Benutzeroberfläche möglich.
Auch die Installation des Tools ist sehr einfach.

Joe
 
hallo,

habe Heute meinen Raspberry bekommen.

nach der Anleiting im SAS Web installiert.

keine größeren Probleme, es dauert nur etwas bis alles durch ist.
Klingt gut.
meine kleinen Probleme:

bei
Expand Filesystem auswählen und aufrufen tut sich nichts bei mir!
Wahrscheinlich ist die Karte eh schon komplett belegt... mutmaße ich mal.
Change Timezone auswählen und aufrufen war beim ersten Durchgang nicht vorhanden, ganz am Ende nochmal die Config aufgerufen und dann war es da.
Ich habe das Upgrade des Tools mal zuerst gesetzt.
wenn ich Netzwerk auf staitic stelle hat er den Mirrorserver von Rasbian.org nicht gefunden!
seltsam...
der Befehl
nano /etc/apache2/sites-enabled/000-default
ist 2x in der Anleitung, sollte beim 2. mal eventuell was anderes stehen?
Ja, die datei 000-default-ssl muss auch geändert werden.
Samba ist nicht sofort gelaufen, erst als ich workgroup = BLUENET abgeändert habe. (BLUENET mit meiner Arbeitsgruppe ersetzt).
Ja, habe ich übersehen, sollte WORKGROUP rein und wie du richtig gemacht hast, durch die eigene ersetzt werden. Ist korrigiert.
in der shstart.sh hast du das Verzeichnis sensorandswitch mit drin,
cd /var/www/sensorandswitch
php -f /var/www/sensorandswitch/sensorandswitchautopro.php

ist das richtig? wenn ja müsste dann das Verzeichnis nicht auch in WWW angelegt werden.
Ja, habe ich korrigiert.
Usb-Stick wird bei mir keiner erkannt, weder mit Fat32 noch mit ext3.
da fehlt sicher noch was!
Das ist noch nicht beschrieben, wenn man was dranhängen möchte. Das muss dann gemounted werden, usw.
aber ansonsten, wie gesagt keine größeren Probleme, Super!
 
Zur einfachen Konfiguration und zur Datenpflege des Raspberry und seiner angeschlossenen Komponenten kann ich das kostenlose Tool Webmin empfehlen.
Damit ist der Zugriff auf die Himbeere z.B. von einem Windows- oder MAC-PC mittels einer umfangreichen WEB-Benutzeroberfläche möglich.
Auch die Installation des Tools ist sehr einfach.

Joe
Schaue ich mir an, danke für den Tipp. :)
 
hab doch noch ein Problem.

meine Edimax Dose funktioniert nicht mehr.
hab versucht den Pfad an zu passen, aber die Dose will nicht.
oder ist das für den Rasperry die falsche curl Version?
 
Dann Skript (PHP) mal auf der Kommandozeile testen.
Idealerweise als Webserverbenutzer (www-data).
...siehe dazu auch Post #17.
 
Zuletzt bearbeitet:
habs raus gefunden,

als Pfad /var/www/sas
und vor curl darf hierbei kein Pfad stehen, musste ich entfernen!
 
Jep, curl ist integriert und braucht keinen Pfad mehr. www-data hat darauf Zugriff. Auf der Himbeere ist wirklich vieles einfacher zu realisieren als auf der Fritzbox. Inzwischen überlege ich mir nach wie vor eine Art "Ableger" von SAS, der auf der Fritzbox läuft und von SAS auf der Himbeere abgefragt oder benutzt werden kann. Eine Art von Befehlsübermittlung in beide Richtungen, sodass man auf alle Boxen, wo dieser Ableger läuft, Betriebssystembefehle ausführen kann und deren Ergebnis zu SAS zurückgeliefert wird. Dann können es beliebig viele Fritzboxen oder andere Geräte im Heimnetz sein.

Ein bisschen Geduld, bis ich da eine Labor für haben werde... ;)

Ich brauche erst dafür noch meine zweite Himbeere, denn es soll auch umgekehrt funktionieren. Also von der Fritzbox SAS und damit per Ableger auf die Himbeere.
 
Zuletzt bearbeitet:
Fertig!

sensorandswitchhelper.php funktioniert perfekt. Man muss nur dieses php-Script"chen" auf der Fritzbox mit dem busybox httpd-Webserver laufen haben und man kann dann mit einem PseudoGerät z. B. von der Himbeere drauf zugreifen. Beispiel FB-Anrufbeantworter:

sensorandswitchhelper.php (auf dem Fritzbox httpd-Server)
PHP:
<?php

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   Helper                                                            |
		|   ===============================================================   |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/
	
	if (isset($_GET["befehl"])) {
		$Status=shell_exec(decodiere($_GET["befehl"],33455));
		echo $Status;
	}
	else {
		echo "E##";
	}
	
	exit;
	
	
function encodiere($str,$key) {
/***************************/
	mt_srand($key);
	$Status=array();
	for ($x=0,$lang=strlen($str); $x<$lang; $x++) {
		$Status[$x]=(ord($str[$x])*3)+mt_rand(350,16000);
	}
	mt_srand();
	return implode('*',$Status);
}


function decodiere($str,$key) {
/***************************/
	mt_srand($key);
	$StatusBlock=explode('*',$str);
	$Status=array();
	foreach ($StatusBlock as $SBlock) {
		$ord=(intval($SBlock)-mt_rand(350,16000))/3;
		$Status[]=chr($ord);
	}
	mt_srand();
	return implode('',$Status);
}

?>

pseudoanrufbeantworter.php (auf dem RaspberryPI)
PHP:
<?php

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   PseudoGeräte-Script                                               |
		|   ===============================================================   |
		|   AB                                                                |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/

	error_reporting(0);
	include "include/includedateien.php";
	include "include/includefunctions.php";
	include "include/includeconf.php";
	include "include/includeconfig.php";
	include "include/includedefine.php";

	$befehl='ctlmgr_ctl r tam settings/NumNewMessages';
	$url="http://fritz.box:89/sensorandswitch/sensorandswitchhelper.php?befehl=".encodiere($befehl,33455);
	$ch = curl_init();
	$timeout = 5;
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)");
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
	curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
	$Status = curl_exec($ch);
	curl_close($ch);
	if ($Status) {
		echo "P#".trim($Status)."*Nachrichten#";
	}
	else {
		echo "P##E##";
	}

	exit;
	
?>
 
Zuletzt bearbeitet:
Yuhu, ein Injectionscript. :mrgreen:

Nur, eins versteh ich nicht.
Wie kann pseudoanrufbeantworter.php encodieren wenn die Funktion in sensorandswitchhelper.php definiert wurde?
Für mich sieht das so aus, als wenn unverschlüsselt übertragen wird und dann in sensorandswitchhelper.php encodiert und dann dort auch wieder decodiert wird. :noidea:
 
Das PseudoGeräte-Script hat einen include "include/includefunctions.php";
der sensorandswitchhelper.php ist ja alleine auf weiter Flur und muss die Funktionen mit sich führen.
Das Codieren ist nur, dass auch Sonderzeichen korrekt übertragen werden, da der $_GET oft rumzickt. ;)
 
wo hab ich da wieder ein Fehler eingebaut?

switchhelper auf der FB bleibt grau, und auf dem Raspberry hab ich folgende Meldung
piab.JPG
 
Zugriff auf den FB-Webserver liefert Fehler 501. Falscher Port? httpd läuft nicht mehr mit php auf der FB?

Ohne Kenntnis deiner Daten und was du wo wie eingetragen/abgeändert hast, ist das wie Fischen im Trüben ;)
Überprüfe alle Pfade, überprüfe, ob du so noch auf das httpd-Web der Fritzbox zugreifen kannst...

Nachtrag: sensorandswitchhelper.php, ohne korrekt verschlüsselte Parameter direkt aufzurufen, geht nicht. Das ist wie ein leerer Container.
 
Zuletzt bearbeitet:
der erste Fehler ist weg, war ein Fehler im Dateinamen von sensorandswitchhelper,

jetzt bleibt der AB einfach nur grau.

meine abgeänderte Zeile
$url="http://192.168.178.1:8086/sas/sensorandswitchhelper.php?befehl=".encodiere($befehl,33455);

fehlt da nicht ein " sollten doch immer 2 sein?

Edit: Blind bin ich auch noch, sind ja 2
 
Zuletzt bearbeitet:
$url="http://192.168.178.1:8086/sas/sensorandswitchhelper.php?befehl=".encodiere($befe hl,33455);
Ist da tatsächlich eine Leerstelle in $befehl? Die darf da nicht hin.

$url="http://192.168.178.1:8086/sas/sensorandswitchhelper.php?befehl=".encodiere($befehl,33455);

Da sind auch zwei " ;)

Graues LED heißt, dort ist keine Seite, die aufrufbar ist. Da stimmt nach wie vor was nicht mit dem Link oben... :gruebel:

Unter http://192.168.178.1:8086/sas/sensorandswitchhelper.php gibt es wirklich die Datei? Ich frage lieber nochmal nach.

Wenn du die direkt aufrufst, muss sie E## anzeigen. (Ist zwar kein Befehl dabei übergeben, aber man sieht, dass sie ansprechbar ist.)
Ist das nicht der Fall, ist die Datei beschädigt.
 
Zuletzt bearbeitet:
das Leerzeichen muss beim kopieren passiert sein, ist richtig "befehl".

die Datei gibt es genau da, und liefert auch E## !

vom Link hier im Forum aufgerufen.

ist schon gut, wenn du nochmal nach fragst, aber ein kleines bisschen hab ich schon hierbei gelernt;)
 
Nein, das ist einfach so, dass ich selbst auch schon einmal zwei Stunden rumsuchte und dann fehlte einfach ein Komma.

OK, dann was kommt beim direkten Aufruf von pseudoanrufbeantworter.php von der Himbeere raus?
 
da kommt

P##E##
 
Dann kommt von dem Link nichts zurück, sonst stünde da E##.

sind in der pseudoanrufbeantworter.php alle includes mit drin?
 
$url="http://192.168.178.1:8086/sas/sensorandswitchhelper.php?befehl=".encodiere($befe hl,33455);
Ist da tatsächlich eine Leerstelle in $befehl? Die darf da nicht hin...
Die Lücke bei $befe hl,33455 wird leider durch die Forumssoftware erzeugt.
Da wird leider immer dann, wenn eine Zeichenkette nicht unterbrochen wird, ein "Zwangsleerzeichen" an Position 51 eingefügt:

123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

Die obige Zahlenkolonne war bei der Eingabe ohne Unterbrechung!

DerGleicheFehlerTrittAuchDannAuf,WennManEinenTextEingibt,DerKeinerleiLeerzeichenEnthält!


Joe
 
Zuletzt bearbeitet:
$befehl='ctlmgr_ctl r tam settings/NumNewMessages';
$url= "http://fritz.box:89/sensorandswitch/sensorandswitchhelper.php?befehl=" .encodiere($befehl,33455);
echo $url."<br>";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)");
# curl_setopt($ch, CURLOPT_POST, 1);
# curl_setopt($ch, CURLOPT_POSTFIELDS, $post);


füge das mal ein, dann wird ein seeeeehr langer Link angezeigt und kopiere den mal in den Browser und ruf ihn auf. Geht das?
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.