SensorAndSwitch Haus-Automation auf Webserver-Basis

Ja, das genügt schon. :)
 
So, ich habe nun nochmal fast neu angefangen am raspi. Also den apt-get incl. sqlite ausgeführt und die configs vom apache, php nochmal kontrolliert. Auch vom cron.

sas läuft, manuell schalten geht und die pseudosgeräte werden auch angezeigt etc. Aber nach wie vor kann ich keine Schaltvorgänge erfassen. Das komplette sensorandswitch-verzeichnis hat www-data chohn and group bekommen. SAS selbst hat sich ja selbständig neu installiert. sollte also auch passen.

Was kann ich denn nun kontrollieren und wie?
 
Welche Dateien befinden sich in tmp?

Nachtrag: Ich meine das angelegte RAM-tmp im sensorandswitch-Verzeichnis

Nachtrag 2: Wenn du tmp noch als normales Verzeichnis hast. lösche alle Dateien in dem Verzeichnis und warte 1-2 Minuten. Bauen sie sich wieder auf?
 
Zuletzt bearbeitet:
es waren 2 Dateien in dem sensorandswitch/tmp Verzeichnis. Habe nun die beiden gelöscht und die sensorandswitch-Seite im Browser aufgerufen.
Nach kurzer Zeit war folgende Datei wieder da (allerdings mit 0 Byte):
sensorandswitchgerarr.datasasap

Mehr ist jetzt auch nach 2 Minuten nicht mehr hinzugekommen.
 
Da wird die Datenbank nicht aufgebaut.

Nachtrag:
sensorandswitchgerarr.datasasap wird normalerweise von sensorandswitchautopro.php angelegt und bedeutet, dass cron diese korrekt gestartet hat. Problem ist, dass auch eine sensorandswitchgerarr.dataconf hätte auftauchen müssen. Das Script lief also nicht bis zum Ende. Außerdem fehlt die Datenbankdatei.

Bevor wir hier endlos rumsuchen empfehle ich dir, deine SD-Karte zu sichern, alles platt zu machen und auf deinen PI gleich die Version 4.00 Labor genau nach Anleitung drauf zu machen. Bei der 4.00 muss eh eine Neuinstallation gemacht werden. In meiner Sig ist der Link zum neuen SAS4PI-Web. Bitte nicht bei der Installation abweichen. Es hat schon seinen Grund, warum welche Rechte so gesetzt werden, wie sie sind. Wenns läuft, kann man dann verschärfen, aber erst dann. ;)
 
Zuletzt bearbeitet:
Abend

@fred_feuerstein

Bei meiner Pi-Installation (3.00.3461) war folgendes fehlkonfiguriert (von mir?)....

Der cron führte root seine crontab aus.
SaS verhielt sich insgesamt komisch, obwohl Datenbank da war.

Abhilfe:
Erstmal als root ins SaS Verzeichnis und folgende Schritte durchgeführt...

Code:
rm tmp/*
crontab -e #(Zeile kopieren, dann löschen oder kommentieren mit #, abspeichern)
su www-data
crontab -e #(Kopierte Zeile einfügen, abspeichern.)
exit #(wieder root werden)
cd ..
chown -R www-data.www-data . #(Wichtig, auch nach editieren, kopieren usw, als root)

Jetzt ist alles wieder Wölkchen.
 
Zuletzt bearbeitet:
Als Info: Die 4.00 läuft auf der Fritzbox, wenn man die sasag.php und die sasap.php im cron hinterlegt. Also in die crontab (minütlich) aufnimmt. Zwar bringt das dann nur einen geringeren Verbesserungseffekt, aber das neue Pseudo C## funktioniert dann mit der 4.00.

Nachtrag: Besser zwei Shellscripte, denn es muss zuerst mit cd in das sas-Verzeichnis (als Basis von sas) gewechselt werden.
 
Zuletzt bearbeitet:
Hallo JL3,
ich habe das mit der 4.00 Installation auf dem PI probiert. Erfolgreich war ich damit aber noch nicht. Ich war der Meinung, alles nach Anleitung gemacht zu haben, aber als ich fertig war lief der PI mit Prozessorauslastung von 100%. Und funktioniert hat es auch noch nicht wirklich. Wegen Zeitmangel habe dann erstmal alles wieder rückgängig gemacht.
Die aktuelle 3er Version von SAS läuft ja zumindest ohne Automatische Schaltungen. Also die reine Übersichtsseite und manuelles Schalten geht.

Da auf dem PI noch andere Dienste und Anwendungen laufen, ist das mit mal eben so schnell neu beginnen nicht ganz so einfach. Werde es aber wohl nochmal probieren.

@ koyaanisqatsi
Danke auch für Deinen Tip. Ich werde auch das mal testen.

Kann alles ein wenig dauern, aber ich melde mich wieder.


Vielen Dank schonmal für eure Tipps.
 
Moin

Yo, fred_feuerstein wird schon schiefgehen. ;)

@JL3: Lösche mal das tmp Verzeichnis und lass es im SaS Verzeichnis vom Skript anlegen.
Das bekommt total komische Unrechte, www-data und sogar root können da nicht reinschreiben.
...bezieht sich auf Version 3.00.2461.


EDIT: Das conf Verzeichnis auch

Empfehlung für Beide...
Code:
chmod u=rwx,g=rx,o=rx conf
chmod u=rwx,g=rx,o=rx tmp
 
Zuletzt bearbeitet:
@koyaanisqatsi: Ja, das ist mir auch schon aufgefallen, dass da unbeschreibbare Verzeichnisse erstellt werden. Ich denke, da ist ein Bug in include/includegeraete.php. Neue Version kommt.
 
Zuletzt bearbeitet:
Neue Version 3.00.2462
weitere Infos im
SensorAndSwitch Web
  • [2462] Bugfix bei der Rechtevergabe bei Neuanlegung von tmp/ und conf/.
 
Ging sauber auf meine Pi-Installation drüber.

Modifizierungen:

1. SNOM Pseudoskriptschalter benutzen SaS Datenbank anstatt Datei
2. tmp ist ein Softlink auf /tmp

SaS@F!B: Dito, werkelt unauffällig vor sich hin.

...thxalot. ;)
 
Zuletzt bearbeitet:
Neue Version 4.00.4000
weitere Infos im
SAS4PI-Web
  • [4000] Erste Version SAS4PI V 4.00, Nachfolger von SensorAndSwitch.
 
Im SAS4PI-Web steht in etwa einer Stunde ein SAS4PI V 4.00 Image für den PI zur Verfügung. Viel Spaß damit. ;)
 
Moins

V 3.00.2462 auf Pi

Nach Start von Rasbian war /tmp ja leer...
Die sas.php lieferte nur eine leere weiße Seite.
...das lag an den SNOM Tabellen in der SaS Datenbank.
Lasse sie nun wieder separat als eigene Datenbank erstellen.
Betraf ja eh nur mich, aber mal so als Info.

Die Erstellung von Tabellen eines Pseudoskriptes bei leerer bzw nicht vorhandener Datenbank,
erstellt diese Datenbank ja auch, sodaß dieses wohl sasap.php gehörig in die Quere kommt.

EDIT: Testmail geht wieder. ...its magic :keks:
 
Zuletzt bearbeitet:
Neue Version 4.00.4007
weitere Infos im
SAS4PI-Web
  • [4007] Verbesserungen beim Pseudo C##.
  • [4007] Bei keiner eingegebenen Fritzbox-Adresse (Feld "Fritz!Box Adresse oder IP:" leer), wird nun auch keine URL-Abfrage mehr ins Nichts vorgenommen.

Neue Version 3.00.2465
weitere Infos im
SensorAndSwitch Web
  • [2465] Nachträgliche Einführung des Pseudos C##.
  • [2465] Bei keiner eingegebenen Fritzbox-Adresse (Feld "Fritz!Box Adresse oder IP:" leer), wird nun auch keine URL-Abfrage mehr ins Nichts vorgenommen.
 
erster Test, automatisch schalten mit SAS4.

bei toggle wird in 1 Minute ca. 5-6 mal geschaltet!
 
... und sonst nur jede Minute. Stimmt, da muss man wohl am psg-Script was basteln, dass er nicht so oft schaltet. Das geht mit Pseudo C##. Poste ggf. mal das Script hier. ;)
 
brauche das toggle nich wirklich, hab das nur mal zum testen genommen, um nicht zu viel Schaltbefehle programmieren zu müssen.

mein Pseudoschalter, wo ich mit getestet habe:
PHP:
<?php 
	echo "FN#Rev-03#";
	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   PseudoGeräte-Script                                               |
		|   ===============================================================   |
		|   -> Schalter  Stechdose 3                                          |
		|      Dieses Script dient als vorlage für verschiedene         	  | 
		|      Schaltvorgänge										          |
		|                                                                     |
		+---------------------------------------------------------------------+
		Pfad für Statusdatei in "conf/statuspfad.php" angegeben !
		*/	
    include __DIR__."/../include/psg.php";
	include __dir__."/../conf/statuspfad.php";
	$gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));    
    
	$Statusdatei=$Statuspfad."rev-steckdose3.txt";    #hier Namen für Status-Datei eingeben 

	$Status="S##E##";
	if (!file_exists($Statusdatei)) {
		$fd=fopen($Statusdatei,"w");
		$Status="0";
		fputs($fd,"S#".$Status."#");
		fclose($fd);
	}
	if ($_GET["info"]=="status") {
		$fd=fopen($Statusdatei,"r");
		$xml=fgets($fd);
		fclose($fd);
		if (strpos($xml,"1")) {
			$Status="S#1#";
		}
		if (strpos($xml,"0")) {
			$Status="S#0#";
		}
	}
	if ($_GET["schalter"]=="1") {
		$fd=fopen($Statusdatei,"w");
		$befehl='sudo pilight-send -p cleverwatts -i 567871 -u 1 -t';
		$url=$helperurlpi."?befehl=".encodiere($befehl,33455);
		$Status=web($url,$post);
		$Status="S#1#";
		fputs($fd,$Status);
		fclose($fd);
	}
	if ($_GET["schalter"]=="0") {
		$fd=fopen($Statusdatei,"w");
		$befehl='sudo pilight-send -p cleverwatts -i 567871 -a 1 -f';
		$url=$helperurlpi."?befehl=".encodiere($befehl,33455);
		$Status=web($url,$post);
		$Status="S#0#";
		fputs($fd,$Status);
		fclose($fd);
	}
	
	echo "P#".'noch frei '."*HTML#"; 
	echo $Status;
	exit;
?>
 
Ein kleines Problem gibt es. Zum automatischen Schalten musst du eine zweite PSG-Datei anlegen, die für sasap ist. Sonst wird auch das manuelle Schalten gestört.

psgDose3auto.php
PHP:
<?php 
    echo "FN#Rev-03#";
    /*
        +---------------------------------------------------------------------+
        |                                                                     |
        |   SensorAndSwitch Automation Pro                                    |
        |   PseudoGeräte-Script                                               |
        |   ===============================================================   |
        |   -> Schalter  Stechdose 3                                          |
        |      Dieses Script dient als vorlage für verschiedene               | 
        |      Schaltvorgänge                                                 |
        |                                                                     |
        +---------------------------------------------------------------------+
        Pfad für Statusdatei in "conf/statuspfad.php" angegeben !
        */    
    include __DIR__."/../include/psg.php";
    include __DIR__."/../conf/statuspfad.php";
    $gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));    

    if ($gerarray["Counter"]>3) { #verlangsamt auf jeden 4. Durchlaufzyklus
		$Statusdatei=$Statuspfad."rev-steckdose3.txt";    #hier Namen für Status-Datei eingeben 

		$Status="S##E##";
		if (!file_exists($Statusdatei)) {
			$fd=fopen($Statusdatei,"w");
			$Status="0";
			fputs($fd,"S#".$Status."#");
			fclose($fd);
		}
		if ($_GET["info"]=="status") {
			$fd=fopen($Statusdatei,"r");
			$xml=fgets($fd);
			fclose($fd);
			if (strpos($xml,"1")) {
				$Status="S#1#";
			}
			if (strpos($xml,"0")) {
				$Status="S#0#";
			}
		}
		if ($_GET["schalter"]=="1") {
			$fd=fopen($Statusdatei,"w");
			$befehl='sudo pilight-send -p cleverwatts -i 567871 -u 1 -t';
			$url=$helperurlpi."?befehl=".encodiere($befehl,33455);
			$Status=web($url,$post);
			$Status="S#1#";
			fputs($fd,$Status);
			fclose($fd);
		}
		if ($_GET["schalter"]=="0") {
			$fd=fopen($Statusdatei,"w");
			$befehl='sudo pilight-send -p cleverwatts -i 567871 -a 1 -f';
			$url=$helperurlpi."?befehl=".encodiere($befehl,33455);
			$Status=web($url,$post);
			$Status="S#0#";
			fputs($fd,$Status);
			fclose($fd);
		}
		
		echo "P#".'noch frei '."*HTML#"; 
		echo $Status;
	}
	else {
		echo "C##";
	}
    exit;
?>
 
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.