[HowTo] SensorAndSwitch: Pseudoscript: PseudoGeräte selbst entwickeln.

Hallo,
Entgegen meiner gestrigen Auffassung bleibe ich trotz der sehr langsamen Performance (keine Kritik) dabei.

Ich habe da Mailscript ein wenig an meine Bedürfnisse angepasst: Anhang anzeigen 80307

Jetzt wäre es schön, wenn man links daneben noch einen weiteren Account setzen könnte.

Die Datei "conf/sensorandswitchemail.phpconf" muss ja für jedes Postfach angelegt werden. Daher habe ich sie in "conf/sensorandswitchemail1.phpconf"/"conf/sensorandswitchemail2.phpconf" genannt.
Die "conf/sensorandswitchemail.phpconf" habe ich um ein weiteres Postfach erweitert, das klappt.
...
Wie bekomme ich nun die beiden miteinander gekoppelt?
...
erweitert werden. Da scheitere ich aber komplett.
Du musst auch die Ausgabefelder verdoppeln mit z. B. dem Anhängen einer Ziffer an die jeweilige Variable und unten der Echo muss dann mit beiden Ausgabesätzen neu positioniert werden.
 
Hallo,
Die einzelnen Scripte stehen bei mir in den entsprechenden Reitern. Es ist aber eine nette Übersicht, wenn man sieht, ob sich in einem der Postfächer (2 pro Script) etwas getan hat.
Die Betreffzeile und/oder der Absender ist IMHO zu lang, zu breit für die Anzeige. Da über schneidet sich schnell was.
Die Ausgabebereiche sind durch div begrenzt, alles andere wird abgeschnitten.
Mir langt da eigentlich:

  • Name des Postfachs
  • Anzahl Mails
  • Gesamtgröße (optional)
Ich mach bei Gelegenheit noch so ein PseudoSammelemail-Script für 2 oder 3 Accounts pro Slot. :)
 
Hallo,
Wenn Du ein Postfach hast, in das kaum Mails kommen, mag das mit der betreffzeile ja gut sein, bei meinen beiden Postfächern kommen leider wesentlich mehr Mails ;)
 
Da hast du was falsch verstanden. Es wird nur von der letzten Mail das angezeigt. Nicht von allen neu angekommenen. ;)

Hier nun für 2 Postfächer pro Slot:
emaillight.jpg

pseudoemail-light.php
PHP:
<?php 

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch                                                   |
		|   Pseudo-Script                                                     |
		|   ===============================================================   |
		|   E-Mail-Abfrage                                                    |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/
 
	error_reporting(0);
	/* in der sensorandswitchemail.phpconf:
		<?php
			$mbox1titel='Kontobezeichnungstext'; # z. B. Haupt-Konto
			$mbox1host='{pop.example.com:995/pop3/ssl}';
			$mbox1user='[email protected]';
			$mbox1pwd='meinkennwort';
			$mbox1code=false;
		?>
	*/
	include "conf/sensorandswitchemail.phpconf";

	include "include/includedateien.php";
	include "include/includefunctions.php";
	include "include/includeconf.php";
	include "include/includeconfig.php";
	include "include/includedefine.php";
	
	$fehler=true;
	$display='P#';

	$mboxtitel=$mbox1titel;
	$mboxhost=$mbox1host;
	$mboxuser=$mbox1user;
	$mboxcode=$mbox1code;
	$mboxpwd=$mbox1pwd;
	if ($mboxcode) {$mboxpwd=decodiere($mboxpwd,111237);}
	$mbox=imap_open($mboxhost,$mboxuser,$mboxpwd);
	$daten=imap_check($mbox);
	$anzahl=$daten->Nmsgs;
	$ungelesen=$daten->Recent;
	if ($ungelesen>0) {
		$emailpic="email1.png";
	} 
	else {
		$emailpic="email0.png";
		$betreff="";
	}
	imap_close($mbox);

	$Status=$daten;
	if ($Status) {
		$fehler=false;
		$display=$display.'<div style="font-size:12px;text-align:right;width:150px;position:absolute;top:-20px;"><img src="'.picdesign($emailpic).'" border="0"></div><div style="font-size:22px;text-align:right;width:90px;position:absolute;top:-10px;"><span style="font-size:32px;font-weight:bold;">'.$ungelesen.'</span> <span style="font-size:12px;">(von '.$anzahl.')</span></div><div style="font-size:14px;font-weight:bold;text-align:right;width:90px;position:absolute;top:20px;">'.$mboxtitel.'</div>';
	}
	$mboxtitel=$mbox2titel;
	$mboxhost=$mbox2host;
	$mboxuser=$mbox2user;
	$mboxcode=$mbox2code;
	$mboxpwd=$mbox2pwd;
	if ($mboxcode) {$mboxpwd=decodiere($mboxpwd,111237);}
	$mbox=imap_open($mboxhost,$mboxuser,$mboxpwd);
	$daten=imap_check($mbox);
	$anzahl=$daten->Nmsgs;
	$ungelesen=$daten->Recent;
	if ($ungelesen>0) {
		$emailpic="email1.png";
	} 
	else {
		$emailpic="email0.png";
		$betreff="";
	}
	imap_close($mbox);

	$Status=$daten;
	if ($Status) {
		$fehler=false;
		$display=$display.'<div style="font-size:12px;text-align:right;width:310px;position:absolute;top:-20px;"><img src="'.picdesign($emailpic).'" border="0"></div><div style="font-size:22px;text-align:right;width:250px;position:absolute;top:-10px;"><span style="font-size:32px;font-weight:bold;">'.$ungelesen.'</span> <span style="font-size:12px;">(von '.$anzahl.')</span></div><div style="font-size:14px;font-weight:bold;text-align:right;width:250px;position:absolute;top:20px;">'.$mboxtitel.'</div>';
	}
	$display=$display.'*HTML#';
	
	if ($fehler) {
		$display='P##E##';
	}
	echo $display;

?>
 
Zuletzt bearbeitet:
Hallo,
Jipp, ich habe Dich richtig verstanden :mrgreen:

Btw: wenn Du eine Frau wärst :groesste:
 
Zuletzt bearbeitet von einem Moderator:
zu meinen Funkschalter für Rolladensteuerung,

hab den Befehl mal so erweitert,
$befehl='sudo pilight-send -p intertechno_old -i 0 -u 2 -t && pilight-send -p intertechno_old -i 0 -u 2 -t';

die Pause allein hats nicht gebracht, immer der 2. machte Probleme beim runterfahren.
rauf komischerweise nicht.
 
Abend

@ws65: Der Befehl nach dem doppelten kaufmännischen UND wird nur ausgeführt wenn der erste Befehl erfogreich war.

Beispiel: nicht erfogreich
Code:
# ping -W 1 -c 1 nohostname && echo zwei
ping: bad address 'nohostname'

Beispiel: erfogreich
Code:
# ping -W 1 -c 1 localhost && echo zwei
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.389 ms

--- localhost ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.389/0.389/0.389 ms
[COLOR=red]zwei[/COLOR]

Probiere mal: $befehl='sudo pilight-send -p intertechno_old -i 0 -u 2 -t ; pilight-send -p intertechno_old -i 0 -u 2 -t';
 
Zuletzt bearbeitet:
Danke für den Hinweis, werd ich mal versuchen.

woher will der Raspi wissen ob der Befehl erfolgreich war? gibt ja leider keine Rückmeldung!
 
Das ist der sogenannte Returncode. Abfragbar mit: echo $?
Alles ausser der 0 ist in Linux ein Fehler.

Beispiel: sudo pilight-send -p intertechno_old -i 0 -u 2 -t ; echo $?

Working Example mit ping....
Code:
# ping -W 1 -c 1 nohostname ; echo $?
ping: bad address 'nohostname'
1
 
Zuletzt bearbeitet:
Problem bei diesen Schalter,
ich bräuchte einen längeren Sendebefehl ohne Unterbrechung.

Wenn eine Unterbrechung drin ist stoppt beim 2. Befehl der Rolladen.
 
Das Gegenteil von && ist: || (2x das Pipesymbol)
Dann sollte es "der Logik nach" gehen. ;)
 
Zuletzt bearbeitet:
das Wissen hat mir gefehlt,
muss ich morgen mal alles ausprobieren,
heute darf ich nicht mehr am Rolladen spielen, sonst gibts Ärger!
 
Du kannst mit diesen Bedingungsoperatoren ruhig spielen (Trockenübung).
Und morgen sind dann die Rolladen dran. :mrgreen:

...das bringt dir Erfahrung und daraus resultiert dann die Sicherheit.
 
Zuletzt bearbeitet:
bin dabei, mit 2 Steckdosen.

mit dem ; in der Mitte geht der 2. Befehl nicht durch, auch wenn ein sudo noch davor stelle.

Edit:
das mit dem ; geht doch, eine Steckdose fängt an zu streiken!

also hab ich morgen genug zum Testen, was jetzt die beste Lösung ist.
 
Zuletzt bearbeitet:
Ich habe mich mal durch die Homepage gelesen und dort herausgefunden, dass die mit der 433er Frequenz arbeiten. Da gibts eine Menge Probleme mit. Kannst du bei dem, der immer streikt, den Kanal wechseln? Ich denke, der wird durch die beiden anderen Rollladenmotoren gestört. Wird auch dort auf der Homepage bestätigt, dass dies vorkommen kann.

Wenn nicht mach so eine lange Pause mal testweise rein, dass der jeweilige Rollladen bereits unten und aus ist, bis der nächste startet,
 
@JL3,
ist mir klar, das die 433 Hmz Frequenz nicht die beste ist, aber zu dem Prreis muss man das akzeptieren.

ich denke aber irgendwie bekomme ich das schon hin.
wiil heute noch mal die Tipp´s von koyaanisqasti versuchen.
Kanalwechsel ist auch möglch.
wenn es dann immer noch nicht zuverlässig funktioniert, kann ich auch den Schalter mal tauschen, auf einem anderen Platz einbauen.
als letztes käme dann in Frage, jede Minute nur ein Rolladen fahren.
 
Ich kenne das Problem von alten Funksteckdosen. Daher wenn ein Kanalwechsel geht und es einfach zu machen ist, das half bei meinen Dosen immer am ehesten. :)
 
hab gerade ne Stunde Test hinter mir,

die besten Erfolge mit " ; " oder " &&" zwischen 2 Befehlen.
auch mit 3 Steckdosen getestet, 3 Schaltkommandos in einen Befehl gepackt, Getrennt mit ; && oder ||
bei || als Trennung hat die nachfolgende nicht geschaltet.

zurück zum Rolladen, zusätzlich hab ich die Pause auf sleep(3) erhöht, bringt glaube ich am meisten.

Jetzt mal abwatren, wenn er halt 1-2 im Monat nicht fährt, kann ich auch nicht dran machen. Kann ich aber mit leben.
 
@ws65: Du schiesst gerne ins Blaue? Hast du einmal dir anzeigen lassen was die nun als Returncode zurückgeben?

Bei RC=0 wird && ausgeführt
Bei RC=>0 wird || ausgeführt
Bei ; wird so oder so ausgeführt, weil kein Bedingungsoperator.

Mit && und || werden gerne einzeilige IF THEN ELSE Bedingungen gebastelt.
Das bedeutet: && und || werden kombiniert

Beispiel:
Code:
ping -w1 -c1 deepthought 2>/dev/null >/dev/null && echo "Online" || echo "Offline"
(Also: Das ist die Kurzform von if then else)

Auch solltest du die Laufzeit mit time prüfen und danach dein sleep, besser usleep warten lassen.
 
Zuletzt bearbeitet:
@ws65: Du schiesst gerne ins Blaue? Hast du einmal dir anzeigen lassen was die nun als Returncode zurückgeben?

da hast du 100% Recht,

ich sehe ja das du von Linux richtig Ahnung hast, die mir aber fehlt.

ich hab ja schon Probleme deine Vorschläge um zu setzen.

Deshalb versuch ich lieber mal, und wenns dann gar nicht geht, muss ich mich doch weiter mit Linux befassen.

Bin froh das ich das mit PHP jetzt einigermaßen auf die Reihe bekomme.
im Rentenalter ist man halt nicht mehr sooo fit mit diesen Sachen.
und fast alles was ich kann und weis hab ich hier gelernt.
auch mit deiner Hilfe.
 

Neueste Beiträge

Statistik des Forums

Themen
246,157
Beiträge
2,247,072
Mitglieder
373,677
Neuestes Mitglied
MK34
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.