SensorAndSwitch Haus-Automation auf Webserver-Basis

werd ich beim nächsten mal kontrollieren.

meistens läuft er ja ca. 14 Tage ohne Problem, also wieder abwarten.

was mir aüffällt, im TMP Verzeichnis die Dateien werden ja regelmäßig erneuert, nur sasap.status dann nicht mehr!

Verdacht war, Cron läuft nicht! dem ist aber nicht so, denn wenn ich die 4 Dateien lösche, werden sie neu erstellt und alles läuft normal weiter.
 
Laufen dann noch die Prozesse: sascache.sh und sasswitch.sh? Eventuell schießt sich da einer ab. Könntest du das mal im Auge behalten?
 
Hallo,

hab mir mal wieder irgendwo ein Fehler eingebaut, mein schalten mit Pseudo Sensor funktioniert nicht mehr!

Frage:
mit echo "V#$a*$a#"; kann ich ja den Wert zuweisen, nur welcher Variablen muss ich den Wert zuweisen, damit ich ihn bei Pseudo-Sonsor auswerten kann?

mein Script dazu
PHP:
<?php
	echo "FN#Sensor-2#";
	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch                                      PSG-Script   |
		|   ===============================================================   |
		|   Pseudo-Sensor                          							  |
		|   ---------------------------------------------------------------   |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/

	include __DIR__."/../include/psg.php";
	include __dir__."/../conf/statuspfad.php";

	$Zaehlerdatei=$Statuspfad."zaehler1.txt";
	$dateihandle=fopen($Zaehlerdatei,"r+");
			$a = fgets($dateihandle, 10);
			settype($a, "integer");
			rewind($dateihandle);
	$Status=$a;
	echo "V#$a*$a#";

			$echo='P#'.'Sensor-Helfer-2 - '.$Status.'*Zähler#'.$ver;
		
	echo $echo;

wertet Pseudo-Sensor Zahlen oder String aus?

Edit:
hab es rausgefunden, muss so aussehen:
echo "V#$a*PSensor#";
schalten tut er damit, nur meine Anzeig muss ich noch was basteln!
 
Zuletzt bearbeitet:
Lieber
echo 'V#'.$a.'*PSensor#';
 
Danke,

ich hätte gerne noch eine Anzeige dazu, in etwas so:

echo 'V#'.$a.'*PSensor#'.'P#'Zähler = '.$a.'HTML'';

aber er zeigt nichts an. Wo ist da der Fehler?
 
echo 'V#'.$a.'*PSensor#'.'P#'Zähler = '.$a.'*HTML#'';
 
echo 'V#'.$a.'*PSensor#P#Zähler = '.$a.'*HTML#';
 
...blöde Gänsefüßchen mal wieder. :D
 
Hallo,

das ich * und # vergessen hatte, hab ich auch noch gesehen,

bei dem Vorschlag von koyaanisqatsi steigt das Script aus, ginge nur mit " und nicht mit ' am Anfang und Ende, aber auch keine Anzeige.
ebenso wenn ich nach dem Vorschlag von @JL3 abändere.
hab es auch schon so versucht,
echo 'V#'.$a.'*PSensor#P#<div style='position:absolute;top:-20px;font-size:14px;'>".$a."</div>*HTML#';
ohne Erfolg, mit ' am Anfang und Ende, geht gar nicht und mit " wie immer, keine Anzeige!
 
Ja, hab damals vor vielen Jahren mal zwei Tage nach einem undefinierbaren Fehler gesucht, bis ich ein fehlendes Komma als Übeltäter erkannte. Genauso hinterlistig sind Gänsefüßchen. :mrgreen:
 
echo 'V#'.$a.'*PSensor#P#<div style="position:absolute;top:-20px;font-size:14px;">'.$a.'</div>*HTML#';
Code:
echo [B][SIZE=3][COLOR="#0000FF"]'[/COLOR][/SIZE][/B]V#[B][SIZE=3][COLOR="#0000FF"]'[/COLOR][/SIZE][/B].$a.[B][SIZE=3][COLOR="#0000FF"]'[/COLOR][/SIZE][/B]*PSensor#P#<div style=[B][SIZE=3][COLOR="#FF0000"]"[/COLOR][/SIZE][/B]position:absolute;top:-20px;font-size:14px;[B][SIZE=3][COLOR="#FF0000"]"[/COLOR][/SIZE][/B]>[B][SIZE=3][COLOR="#0000FF"]'[/COLOR][/SIZE][/B].$a.[B][SIZE=3][COLOR="#0000FF"]'[/COLOR][/SIZE][/B]</div>*HTML#[B][SIZE=3][COLOR="#0000FF"]'[/COLOR][/SIZE][/B];

Nachtrag: Wenn du mit ' einen Text beginnst, musst du ihn mit ' wieder schließen. Der Punkt fügt Text(teile) zusammen. Bei deinem echo ist das bunt durcheinander gewürfelt. Zerlege dir das mal zur Veranschaulichung so:

echo
'V#'
.
$a
.
'*PSensor#P#<div style="position:absolute;top:-20px;font-size:14px;">'
.
$a
.
'</div>*HTML#'
;

style ist html und dessen Parameter geht mit ", wenn man echo mit ' benutzt. Ist eine kleine Faustregel, die ich (meist) so einsetze, um keine Probleme mit Gänsefüßchen zu haben. ;)
 
Zuletzt bearbeitet:
Danke für Eure Bemühungen, aber es geht nicht!

sobald ich das P von *PSensor# rausnehme, geht die Anzeige! schaltet dann aber nicht mehr"

irgendwie kommt da was durcheinander.

kann ich für *PSensor# was anders ohne P nehmen?
 
Da ich nicht weiß, was in $a steht, kann ich da wieder mal nur spekulieren...

Man kann verschachtelt einem PSensor eigentlich keinen Wert zuweisen.

Bedenke folgendes. Ein Beispiel: 18 Einheiten
P#18*Einheiten#

nun noch Pseudo V## drum:
V#P#18*Einheiten*PSensor# und das kann nicht aufgelöst werden.

Versuche es einmal mit W## oder T## zum späteren Abfragen:
echo 'W#'.$a.'#P#<div style="position:absolute;top:-20px;font-size:14px;">'.$a.'</div>*HTML#'; <- für individuelle Anzeige
oder ganz simpel:
echo 'P#'.$a.'*Einheiten#'; <- für Standardanzeige
 
Zuletzt bearbeitet:
Hallo,

in $a steht 1 Zahl von 0,1,2, oder 3
diese wollte ich mit dem Schalttyp Pseudo-Sendor abfragen, zb. Wert = 2 Licht an, Wert < 2 Licht aus.

hab das schon mit Watt oder Temperatur gemacht, das geht auch, nur ist die Anzeige da ja vorgegeben und nicht zu verändern, oder ?
 
P## überschreibt W##. Wenn du beides angibst, wird P## angezeigt und W## ist nur im Hintergrund.

Wenn du das ausprobiert hättest, müsstest du es gesehen haben:
echo 'W#'.$a.'#P#<div style="position:absolute;top:-20px;font-size:14px;">'.$a.'</div>*HTML#';

Im SAS-Web habe ich schon geschrieben
Die Reihenfolge der Priorität der PseudoSensoren/-Schalter ist festgelegt auf P##, S##, W## und T##. Wird Pseudo P## verwendet, so werden die Sensorwerte W## und T## versteckt, sind aber für die Automation abrufbar. S## wird angezeigt. C## hat höchste Priorität und verhindert die Auswertung anderer Pseudos.

Unten: http://sas4pi.square7.ch/sas/psgscriptesyntax.php#stat
 
Zuletzt bearbeitet:
ja, hab ich.

fast perfekt, schalte ich halt mit Watt.

kleiner Schönheitsfehler, die Watt Anzeige Watt.JPG

aber das stört nicht weiter.

ansonsten funktioniert jetzt alles wie gewünscht.
 
Ach oben die Anzeige. Dann nimm Temperatur T##. Dann ist der Schönheitsfehler weg. ;)
 
Bevor ich eine neue Version herausgebe eine Frage:

conf.php, config.php, dateien.php und define.php wird nun durch environ.php ersetzt. Wer eine dieser includes in seine psg eingebunden hat, sollte stattdessen direkt psg.php einbinden.

fritzbox.php wird nun nicht mehr als Dummy mitgeliefert, da es schon seit langem in geraete.php enthalten ist. Auch hier entsprechende inlcludes abändern.

includepseudo.php wird nicht mehr als Dummy für psg.php mitgeliefert, da es ebenfalls schon einige Versionen lang umgestellt wurde.

Gibt dies Probleme bei Euren selbsterstellten PsGs? Im Prinzip werden die alten (normalerweise überflüssigen) Dateien beim regulären Update nicht gelöscht und funktionieren auch nach einem Update noch. Nur beim Neuaufsetzen von SAS wären die alten Dateien dann weg. Postet, wenn Ihr Probleme seht. Ansonsten werde ich die neue Version dann updatebereit machen. ;)

Noch nicht in der neuen Verson sind:
Pseudo O##,
Zeitschalten <=, <, >, >=
Die Umsetzung gestaltet sich hier etwas schwieriger.
 
Zuletzt bearbeitet:
Pseudo O## ist auch umgesetzt,
Zeitschalten <=, <, >, >= ist nicht umsetzbar, da dies in der Struktur der Bedingungstabelle nicht nachträglich eingebaut werden kann. Dafür müsste eine neue Struktur erstellt werden und dies wäre ein elementarer Eingriff. Alte Bedingungstabellen würden damit nicht mehr lesbar sein.
 
Neue Version 4.50.4450
weitere Infos im
SAS4PI-Web
  • [4450] WebGUI: Benutzer werden für die Anzeige der WebGUI eingeführt.
  • [4450] Einführung von Pseudo O##, der im Hintergrund für die Automation genutzt werden kann.
 
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.