SensorAndSwitch Haus-Automation auf Webserver-Basis

Damit könnte man sich sogar etwas ansagen lassen:

Code:
<button onclick="onSpeechClick()">Buttonbeschriftung</button>
<script>
function onSpeechClick(){
var msg=new SpeechSynthesisUtterance('Hier kommt der Text hin!');
msg.lang = 'de-DE';
msg.volume = 1; // 0 to 1
msg.rate = 0.5; // 0.1 to 10
msg.pitch = 1; //0 to 2
window.speechSynthesis.speak(msg);}
</script>

Super!
Sowas bitte sammeln und mich nochmal anschubsen, wenn es um die Preudo-Sensor-/Schalt-Scripte geht. :)
Aber daran denken, wir haben eine URL - PHP-Schnittstelle.
 
Hallo zusammen.

Ich versuche jetzt seit Sonntag irgendeinen Erfolg zu bekommen.
Ich habe den apache 1.3.35 auf dem Usb Stick am laufen und mit http://localhost:4001 gestartet.
Und jetzt diese Meldung: You don't have permission to access /DECT(G:)/server2go/htdocs/smarthome.php on this server.
Muss an der Fritzbox noch was freigegeben werden oder sonst wo?
Ich habe mit Notepad bei USER nichts geändert nur das Passwort eingetragen.
Ursprünglich wollte ich es hier http://froedersolar.selfhost.de zum laufen bekommen aber da bekomme ich auch nichts hin.
Habe ja eigentlich Ehrgeiz aber ich komme nicht weiter.Habe auch wenig Ahnung von PHP.

Ach ja die fritz Box 7490
Gruß Andreas
 
Zuletzt bearbeitet:
@lessew: Ja, genau, etwas versteckt :)

@meintau: Das klingt nach nicht freigegebenen Verzeichnissen in der Konfiguration des Apache. Probier mal das Server2go-Paket von der SmartHome Web. Da ist alles korrekt eingestellt und kann auch auf einem Stick betrieben werden. An der Fritzbox liegt es nicht.

Zu finden unter Download - Test-Area zur Problemanalyse - Test-server2go-Umgebung mit SmartHome-Update
 
Zuletzt bearbeitet:
Jetzt habe ich als letztes nochmal die Test Area zur Problemanalyse versucht und Mist es Funktioniert.
Jetzt muss es doch auch anders funktionieren.
 
Danke JL3

Deinen Post habe ich zu spät gesehen.Wenn es am Apache hängt wo muss ich das freigeben ?
Danke Andreas
 
@meintau: Leider ist wirklich das allergrößte Problem die Serverkonfiguration. Beim Apache oder auch in der php.ini gibt es so viele relevate Einstellmöglichkeiten, dass es auch unmöglich ist, hier gleich zu sagen: Daran liegt es.

Eine sichere, aber auch beschwerliche Möglichkeit ist es, die Einstellungen des Apache aus der Testarea mit den Einstellungen des eigenen Servers zu vergleichen, um so auf die Ursache zu stoßen. Wenn gar nichts hilft, kannst du einfach mal die Konfiguration als Anhang einstellen. Dann schau ich mal drüber.

Bei Fremdwebspace ist es noch komplizierter. Da hat man kaum oder gar keinen Einfluss. Außerdem muss ja auch noch der Zugriff auf deine Fritzbox klappen. (Auch hier Freigaben und Einstellungen) Am Einfachsten ist es, das Ganze auf der Fritzbox laufen zu lassen und da auch auf einem Stick. Damit habe ich bis jetzt (gerade beim Automations-Bereich) die besten Erfahrungen.

Wenn es die php.ini betrifft und es die gleiche PHP Version ist, kann man einfach die php.ini der Testarea mal auf seinen Server schieben und schauen, obs dann läuft. Vorher aber die eigene php.ini retten. :)
 
Zuletzt bearbeitet:
Schau mal besonders da:

Code:
<Directory "[PfadZuHtdocs]">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

Das sollte diese Freigaben haben.

Bei einigen Apache auch noch:

Code:
Require all granted

Da müsstest du etwas rumprobieren und immer den Apache neu starten, sonst liest er die neuen Konfigurationsdaten nicht.
 
Zuletzt bearbeitet:
Hallo ich habe noch eine Frage.Mein USB Stick heißt SanDisk-U3CruzerMicro-01 muss ich das nicht hier eingeben ?
Apache-Webserver starten:
/var/media/ftp/server/apache2/bin/apache -f /var/media/ftp/server/apache2/conf/apache.conf

Wird das einzeln gestartet oder zusammen ? Sorry aber muss das nur so eingeben werden ohne start oder so ?
 
Wenn der Apache nicht im kleinen Fritzbox-Bereich sondern direkt auf dem Stick liegt, dann muss der Pfad

/var/media/ftp/server/apache2/bin/apache -f /var/media/ftp/server/apache2/conf/apache.conf

wo es rot ist angeglichen werden. Nur mal angenommen, auf dem Stick hast du ein Verzeichnis apache2 angelegt, in dem der Apache liegt, dann wäre der Pfad

/var/media/ftp/SanDisk-U3CruzerMicro-01/apache2/bin/apache -f /var/media/ftp/SanDisk-U3CruzerMicro-01/apache2/conf/apache.conf

Nachtrag: Das ist EIN Befehl. [Pfad]/apache -f [Pfad]/apache.conf
Also Befehl plus Parameter mit Angabe der Konfigurationsdatei.

Nachtrag2: Eigentlich werfe ich den Server selbst nur ungern auf den Stick, weil der kleine Bereich der Fritzbox schneller ist und nur die htdocs in Form von (bei mir) myweb sich auf dem Stick befindet. Beschrieben habe ich das Ganze Schritt für Schritt hier: http://bluedragon.bplaced.net/smarthome/installationwebserverfb.php

Davon weichst du etwas ab und deshalb müssen einige Pfade nun umbenannt werden, sodass es passt. :)
 
Zuletzt bearbeitet:
@alle:

Information zu SmartHome V 5.00

Die SmartHome Version V 5.00 wird es nicht mehr geben.

Stattdessen wird diese als SensorAndSwitch V 1.00 kommen, da es inzwischen zu viele Änderungen gegeben hat.

Außerdem ist der Name SmartHome von etlichen Firmen im Internet belegt. Auch von AVM. Da das Script aber durch seine erweiterbaren Pseudo-Sensoren und -Schalter sogar theoretisch ohne eine Fritzbox "schalten und walten" können wird, ist wohl ein neutraler Name, wie ich finde, angebrachter. Ich werde ggf. ein entsprechendes Konvertierungsscript bereitstellen, das die conf-Dateien entsprechend dem neuen Namen anpassen wird. Ein neues SensorAndSwitch Web habe ich bereits angelegt und die Dateien der Labor entsprechend umgestellt.

Ich weiß, dass dies auch für die Benutzer Umstellungsaufwand ist, doch so gravierend ist es nicht und besser jetzt als später.

Generell sind folgende Änderungen für den Benutzer nötig, wenn er mit der neusten Labor arbeiten möchte:
  • Umbenennen der Datei smarthome.conf in sensorandswitch.conf
  • In der Datei ändern der Zeile:
    Code:
    WEBINFO=http://bluedragon.bplaced.net/sensorandswitch/sensorandswitch.php
    UPDATE=http://bluedragon.bplaced.net/sensorandswitch/info/sensorandswitch.php
  • Umbenennen der Datei smarthomeauto.conf bzw. smarthomeautopro.conf in sensorandswitchauto.conf bzw. sensorandswitchautopro.conf
  • Es sind keine Anpassung innerhalb dieser Dateien nötig
  • Wenn die ehemalige SmartHome Automation verwendet wurde, muss nun der cron-Eintrag oder je nach verwandter Lösung das Shellscript shstart.sh oder smarthome.sh statt z. B.:
    Code:
    #!/bin/sh
    # Smart Home HGR zur automatischen Schaltsteuerung
    /var/media/ftp/server/apache/cgi-bin/php -f /var/media/ftp/Kingston-DataTraveler2-0-01/myweb/smarthome/smarthomeautopro.php
    so geändert werden:
    Code:
    #!/bin/sh
    # SensorAndSwitch HGR zur automatischen Schaltsteuerung
    /var/media/ftp/server/apache/cgi-bin/php -f /var/media/ftp/USB-STICK/myweb/sensorandswitch/sensorandswitchpro.php

Das SmartHome Web bleibt natürlich bis zur Fertigstellung der SensorAndSwitch bestehen. Dort wird man als Labor allerdings die neue sensorandswitch0010091labor.zip finden.
 
Zuletzt bearbeitet:
kurze Rückmeldung,

alles auf sensorandswitch geändert.

bisher keine Probleme, nur will die sensorandswitch jetzt Update auf 4.04.5003 machen.
darf man dann aber nicht anklicken!
 
meine Gedanken zu SensorAndSwitch

1. Belastung von cron durch SensorAndSwitch
habe festgestellt der apache belastet die FB überhaupt nicht,
nur wenn der cron Befehl die sensorandswitchautopro ausführt wird
die FB stark beslastet.

Jetzt hab ich überlegt, die sensorandswitchautopro im Browser macht ja keine Probleme.
was macht die sensorandswitchautopro wenn sie mit cron gestartet wird
mit den Bildschirmbefehlen?
könnte man die da abschalten um Ressourcen zu sparen?
oder 2 getrennte sensorandswitchautopro? eine für cron und
eine für den Browser?

2. Anzeige von sensorandswitchautopro im Browser
die vielen Funktionen sind ja gut und schön,
aber braucht die wirklich jeder in der Anzeige?
meine Idee dazu, in der config oder extra config mit Spaltenauswahl zur Anzeige.
sind Anzeigen wie zB. die AIN die ich überhaupt nicht brauche.
kann mann da Ressourcen sparen oder kostet das noch mehr Ressourcen?

3. Script Auswahl
in der Config dann eine Vorauswahl welche Script´s,
oder Url´s mit angezeit, ausgefürt werden sollen.
diesen Script´s oder Url´s einen Namen zuweisen.
wäre einfacher inder sensorandswitchautoproui dann den Namen
auszuwählen, als die komplette IP einzugeben.

4. in der sensorandswitch zur Anzeige eine Scriptauswahl mit einfügen
in der Auswahl könnten dann die Script´s stehen die vorher in der Config
eingetragen und aktiv sind.
zb. meine Edimax.php abfragen und zumindest anzeigen ob an oder aus.
besser auch direkt der buttün zum schalten.
die AIN bräuchte ich da auch nicht.

ich glaube das reicht fürs erste.
 
@ws65: Zum Updateverlangen der SensorAndSwitch: Da wird in deiner sensorandswitch.conf noch auf das alte SmartHome Web verwiesen. Müsstest du noch abändern.

  • in sensorandswitch.conf ändern der Zeilen:
    Code:
    WEBINFO=http://bluedragon.bplaced.net/sensorandswitch/sensorandswitch.php
    UPDATE=http://bluedragon.bplaced.net/sensorandswitch/info/sensorandswitch.php

zu 1.) Die 4 Sekunden, in denen das Script läuft, muss der PHP-Parser stark arbeiten. Da es aber keine Dauerbelastung ist, ist das kein Problem.
Die Bildschirmanzeige ist beim cron-Aufruf aus. Nur eine Info nach stdout, dass das Script im Kommandozeilenmodus läuft.
Zwei Versionen sind damit überflüssig und wären auch doppelte Entwicklungsarbeit, doppelte Programmfehlersuche usw, usw. Das eine würde schalten, das andere nicht und dann beginnt die Sucherei. Das muss nicht sein. ;)
Die Angaben werden übrgens mit einem Aufruf eingelesen, ob ich z. B. die AIN anzeige oder nicht ist da vollkommen irrelevant. Der Aufruf muss so oder so gemacht werden.

zu 2.) Die Anzeige im Browser ist deshalb so umfassend, um Logikfehler bei seinen Schaltkettenbedingungen leichter finden zu können.

zu 3.) Das geht nicht anders, da die Scripte theoretisch auch auf einem vollkommen anderen Server liegen könnten. Dadurch gibt es eine sehr hohe Flexibilität. Sie werden auch nur so - also per URL- über den PHP-Parser abgewickelt. Allerdings beim Anzeigen des langen Namens wollte ich mir ohnehin noch was einfallen lassen. Das gefällt mir auch nicht so gut, wie es jetzt ist. :)

zu 4.) Tja, Da überlege ich auch bereits, wie man das realisieren kann. Dafür war das Script vom Grundkonzept nie vorgesehen, aber eine Idee dazu hätte ich bereits. Ob das für die Version 1.00 (ehemals 5.00) schon was wird, mal sehen.
 
Zuletzt bearbeitet:
meine sensorandswitch.conf hatte ich geändert, allerdings mit einem Editor von Hand.

nochmal von Script aus aufgerufen und alle Daten bestätigt und schon was es richtig!

das du die Anzeigen zum Testen brauchst ist schon richtig, dennoch bin ich der Meinug im normalen Betrieb braucht man die nicht alle.
Ist aber nur meine Meinung, und ich bin ja nicht alleine hier.

bei Punkt 3.
proui.jpg

ist ja Auswahlpunkt Script, Url
was ist wenn mehrere Script´s im Einsatz sind?
wäre es nicht da schon besser die Script´s bem Namen zu nennen, aus einer Datenbank einlesen?
dann bräuchte man das Eingabefeld dahinter garnicht.
ich weis, ich hab keine Ahnung. Muss ja auch nicht alles nach meinen Wünschen sein.
 
meine sensorandswitch.conf hatte ich geändert, allerdings mit einem Editor von Hand.

nochmal von Script aus aufgerufen und alle Daten bestätigt und schon was es richtig!
Gut. :)
das du die Anzeigen zum Testen brauchst ist schon richtig, dennoch bin ich der Meinug im normalen Betrieb braucht man die nicht alle.
Ist aber nur meine Meinung, und ich bin ja nicht alleine hier.
{/quote]
Doch, wirst du brauchen. Spätestens dann, wenn du Bedingungen kettest und dann dich wunderst, wenns nicht schaltet: :D
Spaß beiseite: Es macht schon Sinn, glaubs mir.
bei Punkt 3.
Anhang anzeigen 78963

ist ja Auswahlpunkt Script, Url
was ist wenn mehrere Script´s im Einsatz sind?
wäre es nicht da schon besser die Script´s bem Namen zu nennen, aus einer Datenbank einlesen?
dann bräuchte man das Eingabefeld dahinter garnicht.
ich weis, ich hab keine Ahnung. Muss ja auch nicht alles nach meinen Wünschen sein.
Naja, spräche aber auch nichts dagegen, wenn es umgesetzt wird, oder? ;)
Schließlich soll man ja mit dem Script auch was anfangen können und möglichst auch seine Probleme gelöst bekommen, die man hat.

Du wirst es nicht glauben, aber da hatte ich schon eine Idee und die in meiner Labor, die bei mir läuft, zum Teil eingebaut.
Dateien mit dem Namen pseudoundsoweiter.php werden aufgesplittet, sodass im Eingabefeld nur undsoweiter eingetragen werden muss.
Ich will die Scripte, die gefunden werden, noch wie echte Geräte einbinden. Gib mir da noch ein bisschen Zeit. Dann tauchen sie auch in der WebGUI auf und benehmen sich wie z. B. eine FritzDECT200. ;)
 
Hi JL3,

danke für deine Arbeit. Ich bin durch nen Zufall hier gelandet und bin begeistert.
Gerne würde ich dir auch Bier sponsern, Paypal evtl.? Oder dich auch gerne anderweitig supporten...

Habe gleichzeitig einige Fragen zum allg. Vorgehen deines Scriptes ( Prioritäten bei den Schaltungen ), angenommen :

Regel1: Schalte Dose1 jeden Tag bei Sonnenaufgang aus
Regel2: Schalte D1 jeden Tag bei Suntegang an
R3: Schalte D1 am 1.12.2014 um 22Uhr an

Welche Regel hat die Prio? R1 oder die R3 zu dem Zeitpunkt?

Wie kann ich die Prio als User erkennen bei überlappenden Regeln?

Thanks
 
@lessew: Schön, dass du etwas mit dem Script anfangen kannst. :)
Wenn du Probleme oder Fehler entdeckst, bitte hier posten. Ist schwierig, jedes Szenario auszutesten. Da freut man sich über Rückantworten.

Die Regeln, sofern sie erstes Kettenglied sind (in der Labor gibt es auch Folgeglieder, um Bedingungen zu verknüpfen), werden der Reihe nach ihrer Position in der smarthomeauto.conf (bzw. smarthomeautopro.conf und ganz neu sensorandswitchauto.conf bzw. sensorandswitchautopro.conf) abgearbeitet.
Die Regeln sind keine Regelpaare wie der besonders starre Zustand bei der Fritzboxfirmware. Jede Regel macht nur ihren einen Schaltvorgang.

Bei deinen Regeln oben würde folgendes passieren: (Annahme: Sonnenaufgang 7:00, Sonnenuntergang 20:00)
7:00 Dose 1 aus
20:00 Dose 1 an
22:00 Dose 1 an, wird aber nicht ausgeführt, da gewünschter Zustand bereits erreicht.

(Annahme: Sonnenaufgang 5:00, Sonnenuntergang 22:30)
5:00 Dose 1 aus
22:00 Dose 1 an
22:30 Dose 1 an, wird aber nicht ausgeführt, da gewünschter Zustand bereits erreicht.

Ich hoffe, das ist soweit anschaulich erklärt.

Noch ein Beispiel, was Probleme machen könnte:

Regel 1: Dose 1 20:00 ausschalten
Regel 2: Dose 1 20:00 einschalten

Da wird die Dose 1 um 20:00 aus und sofort wieder eingeschaltet. Da kommt es in der Speicherreihenfolge in der conf-Datei an. Kann auch mal gewollt sein. In der Laborversion hat jede Regel auch eine SCHID (SchaltID), sodass man hier Verknüpfungen generieren kann.
 
Zuletzt bearbeitet:
Info:
Einbindung von PseudoGeräten ist in allen Scripten gelungen. Sie werden nun wie ganz normale z. B. DECT200-Steckdosen behandelt.
Was zu schalten geht, lässt sich schalten, was Sensorwerte liefert, die werden angezeigt.
Ich teste das noch eine Weile, bis ich sicher bin, dass keine groben Fehler vorhanden sind, dann stelle ich sie ein.

Hier ein erstes Beispiel:
Die Einbindung der Temperatur via Script, das seinen Wert anhand der Koordinaten aus den Einstellungen holt, wird als PseudoSensorGerät angezeigt:
pseudosensor.png
 
@ws65: Deine Edimax-Schaltsteckdose ist in dem neuen SensorAndSwitch überall wie eine DECT200 ansprech- und bedienbar. In der nächsten Labor gibt es ein neues Script dafür. Man merkt keinen Unterschied bei der Bedienung mehr, woher das Gerät stammt und wie es eingebunden ist. Man kann sich Geräte und Sensoren jetzt selbst zusammenbasteln. Gerade Sensoren kann man aus beliebigen Webseiten erstellen. Ein Temperatursensor für den eigenen Standort liegt bereits bei.

Da ich bis jetzt bereits zweimal unfreiwillig und ungeplant "im Dunkeln gesessen habe", muss ich noch etwas länger testen, bevor ich die nächste Labor herausgebe.

ToDo ist nach wie vor das Delay. Aber das kommt auch noch dran. :)

Nachtrag: Die tägliche Mailverschickung der Schaltvorgänge über den Fritzbox-Mailer, den ich dafür eingebunden habe, klappt hervorragend und liegt ebenfalls dann bei.
 
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.