SensorAndSwitch Haus-Automation auf Webserver-Basis

Habs gerade noch schnell gebastelt und getestet. :)

Werd die Tage hoffentlich noch die Sache mit dem Delay fertig bekommen, dann bin ich für die 1.00 durch und wir sind weg von den Labor-Versionen. :)
 
Das Script pseudogastwlan.php so verändert, dass es je nach Serverumgebung entweder als Sensor oder als Schalter funktioniert:

Code:
<?php

        /*
                +---------------------------------------------------------------------+
                |                                                                     |
                |   SensorAndSwitch Automation Pro                                    |
                |   PseudoGeräte-Script                                               |
                |   ===============================================================   |
                |   -> GastWLAN                                                       |
                |      Fritz!Box GastWLAN                                             |
                |                                                                     |
                +---------------------------------------------------------------------+
        */

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

		$fehler=true;
		if ($_GET["info"]=="status") {
			$Status = shell_exec("/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled");
			if ($Status) {
				$fehler=false;
				echo "S#".trim($Status)."#";
			}
			else {
				$fehler=true;
			}
		}
		if ($_GET["schalter"]=="1") {
			$Status = shell_exec("/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1");
			if ($Status) {
				$fehler=false;
				echo "S#1#";
			}
			else {
				$fehler=true;
			}
		}
		if ($_GET["schalter"]=="0") {
			$Status = shell_exec("/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0");
			if ($Status) {
				$fehler=false;
				echo "S#0#";
			}
			else {
				$fehler=true;
			}
		}

		if ($fehler) {
			$url=FB."/query.lua?sid=".SESSIONID."&wlan=wlan:status/guest_ap_enabled";
			$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_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) {
				$x=explode('"',$Status);
				if ($x[3]=="0" or $x[3]=="1") {
					$fehler=false;
					echo 'P#GastWLAN-Statusanzeige: <img src="'.PIC.'mled'.$x[3].'.png">*HTML#';
				}
				else {
					$fehler=true;
					echo "P##E##";
				}
			}
			else {
				$fehler=true;
				echo "P##E##";
			}
		}
		exit;
?>


ist später mit bei den Pseudobeispielen.
 
so nach langer Zeit auch mal wieder ein paar Stunden Zeit .. Ich hoffe das es Weihnachten ruhiger wird...
SenorandsandSwitch habe ich installiert ging ohne Probleme und genau nach Anleitung auf dem raspberry.

Wie bekomme ich die Temperatur für meinen Ort konfiguriert, irgendwie habe ich das überlsen oder es steht noch nicht in der Anleitung. Ein threadnummer hier als Hinweis würde auch reichen, dann lese ich mich da ein.

und nochmals Chapeau !!! Selbst meine Frau ist begeistert ...
 
@HarryHase: Die Temperatur für deinen Ort nimmt pseudotemp.php aus den Koordinateneintragungen, die du in den Einstellungen von sensorandswitch.php eingetragen hast. Längen- und Breitengrad, die auch für Sonnenauf- und Untergang verwendet wird. Da muss nichts gemacht werden, wenn die Werte da stimmen. ;)
 
ich muss auch mal wieder Nerven!

hänge immer noch an dem Telefonklingeln fest.

die cgi und sh Scripte von @koyaanisqatsi funktionieren bei mir leider nicht.

hab dafür jetzt ein php-Script welches im Browser funktioniert, nur warum wird das in sensorandswitch nicht grün? zum anklicken?
Code:
<?php 

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   Pseudo-Schalter-Script                                            |
		|   ===============================================================   |
		|   -> Schalter   für  SAR4                                                  |
		+---------------------------------------------------------------------+

*/
	
	$Status="S##E##";

	if ($_GET["schalter"]=="1") {
		$output=system('ctlmgr_ctl w telcfg command/Dial **752');
		$Status="S#1#";
		sleep(12);
		$output=system('ctlmgr_ctl w telcfg command/Hangup 1');
		$Status="S#0#";
	}

	if ($_GET["schalter"]=="0") {
		system('ctlmgr_ctl w telcfg command/Hangup 1');
		$Status="S#0#";
	}
	echo "#".$Status."#";
	
?>
Anzeige.JPG
 
Moin

Beispiel mit Googlemaps:
Doppelklick auf die Karte (zum zoomen),
dann erscheint in der Adresszeile: www.google.de/maps/@52.4733627,13.4186991,14z
Das Erste (52.4733627) ist der Breitengrad.
Das Zweite (13.4186991) ist der Längengrad.
Das Letzte (14z) ist die Höhe und die brauchst du diesmal nicht.

Diese dann in den SaS Einstellungen richtig eintragen.

ws65 schrieb:
warum wird das in sensorandswitch nicht grün?
Weil es keine Statusabfrage dafür gibt. Also normal so.
Benenn sie am Besten um in: pseudoauto****.php
Denn das Klingeln will eigentlich verdeckt eingeschaltet werden.
Zum Beispiel um: 20:14 :mrgreen:
 
Zuletzt bearbeitet:
ich muss auch mal wieder Nerven!

hänge immer noch an dem Telefonklingeln fest.

die cgi und sh Scripte von @koyaanisqatsi funktionieren bei mir leider nicht.

hab dafür jetzt ein php-Script welches im Browser funktioniert, nur warum wird das in sensorandswitch nicht grün? zum anklicken?
Anhang anzeigen 79151

Die alte eingeschränkte Darstellung funktioniert mit PseudoGeräten nur sehr eingeschränkt (die fliegt auch noch raus). Wie sieht es mit der normalen WebGUI aus?

Nachtrag: Schalter müssten dennoch gehen. Läuft das mit httpd? Ist im sas.php in den Einstellungen der admin als Benutzer hinterlegt?
Nachtrag: ACHTUNG! gib bei ctlmgr_ctl den kompletten Pfad an! /usr/bin/ctlmgr_ctl
 
Zuletzt bearbeitet:
sieht bei der normalen Webgui genau so aus
Anzeige2.JPG

das läuft mit httpd!

der Haken wird sein, ich hab 3 FB, Steckdosen an der 7272, Apache Server auf 7170, und Busybox httpd auf der 7270 und muss ja die Ip der 7272 angeben für die Fritzdect Steckdosen.
funktioniert aber sonst alles, nur mit apache auf der 7170 geht bekanntlich das klingeln nicht.
mit Busybox geht klingeln im Browser, nur nicht mit der Webgui.
 
@HarryHase: Die Temperatur für deinen Ort nimmt pseudotemp.php aus den Koordinateneintragungen, die du in den Einstellungen von sensorandswitch.php eingetragen hast. Längen- und Breitengrad, die auch für Sonnenauf- und Untergang verwendet wird. Da muss nichts gemacht werden, wenn die Werte da stimmen. ;)

das funktioniert bei mir nicht 50.70; 6.04

auch wenn ich Berlin mit 52.516109, 13.413120 eintrage nicht .. dann ist wohl doch noch was faul ..
 
@ws65: Klingel hat nur eine Funktion: anschalten
Wenn die ?info=status Abfrage von SaS kommt, musst du richtig antworten.
Normalerweise mit: 0
SaS Anzeige dann: Ausgeschaltet und roter Schalter.
SaS sollte dann das "Anschalten" über den Link anbieten.

@HarryHase: Versuch mal mit Komma anstatt Punkt.
 
Zuletzt bearbeitet:
das funktioniert bei mir nicht 50.70; 6.04

auch wenn ich Berlin mit 52.516109, 13.413120 eintrage nicht .. dann ist wohl doch noch was faul ..

In den sas-Einstellungen ist Punkt und Komma egal, wird umgewandelt. Was wird denn überhaupt angezeigt?
 
In den sas-Einstellungen ist Punkt und Komma egal, wird umgewandelt. Was wird denn überhaupt angezeigt?

Das mit Komma und Punkt habe ich heraus gefunden, das wandelst Du ja bestens.Unbenannt.JPG
 
@koyaanisqats

Status hab ich jetzt alles mögliche versucht, wenn doch der gleiche Staus raus kommt wie bei meinem Edimax Schalter sollte das doch funktionieren.
S#E#, S#0#, S#1#

aber das Anzeigefeld bleibt grau und in der sasapui erscheint der Pseudoschalter auch nicht.
 
@HarryHase: Da kommt keine Verbindung zustande zur Webseite... Hast du mal pseudotemp.php im Browser allein aufgerufen? Was kommt da raus?
Eigentlich eine weiße Seite mit T#.....
 
Zuletzt bearbeitet:
@koyaanisqats

Status hab ich jetzt alles mögliche versucht, wenn doch der gleiche Staus raus kommt wie bei meinem Edimax Schalter sollte das doch funktionieren.
S#E#, S#0#, S#1#

aber das Anzeigefeld bleibt grau und in der sasapui erscheint der Pseudoschalter auch nicht.

S#E# ist mit der neuen Version falsch. Da muss S##E## rauskommen. S#0# und S#1# ist ok.
 
auch mit Status S##E## geht´s nicht!
 
@w65:
Code:
<?php 

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   Pseudo-Schalter-Script                                            |
		|   ===============================================================   |
		|   -> Schalter   für  SAR4                                           |
		+---------------------------------------------------------------------+

*/
	
	$Status="S##E##";

	if ($_GET["schalter"]=="1") {
		$output=shell_exec('/usr/bin/ctlmgr_ctl w telcfg command/Dial **752');
		$Status="S#1#";
		sleep(12);
		$output=shell_exec('/usr/bin/ctlmgr_ctl w telcfg command/Hangup 1');
		$Status="S#0#";
	}

	if ($_GET["schalter"]=="0") {
		$output=shell_exec('/usr/bin/ctlmgr_ctl w telcfg command/Hangup 1');
		$Status="S#0#";
	}
	if ($_GET["info"=="status"]) {
		$Status="S#0#";
	}
	echo $Status;
	
?>
 
@koyaanisqatsi: Die Abfrage schalter==0 würd ich schon mit reinnehmen, wenn man es mal braucht und per Browserdirektaufruf ein Hangup schalten möchte.
 
@HarryHase: Da kommt keine Verbindung zustande zur Webseite... Hast du mal pseudotemp.php im Browser allein aufgerufen? Was kommt da raus?
Eigentlich eine weiße Seite mit T#.....

pseudoaussentemp.php heißt die bei mir, aber das der Name ist ja egal wie ich gemerkt habe, wenn ich die auffrufe kommt: T#-1.44#

wenn Längen und Breitengrad ändere kommen auch andere Werte, also das funktioniert
 
Das Dilemma bleibt, der aktuelle Status kann beim Dial Kommando nicht abgefragt werden.
Deswegen eignet sich so ein "Kiingelmodul" nur als pseudoauto***.php.
Bei mir klingelt das 1. SNOM 320 Heute um: 20:14 als pseudoautosnom1.php
Es wird nicht im SaS-Gui angezeigt. Quasi nur ein Schaltmodul.
 
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.