SensorAndSwitch Haus-Automation auf Webserver-Basis

@HarryHase: Ja, das mache ich, war aber diesmal nicht der Fall. Wenn ich es irgendwie hinbekomme, dass der Update per Knopfdruck funktioniert, dann würde das das Script auch selbst machen. Noch bin ich am Suchen, wo ich Dateien zwischenlagern kann. Auch suche ich noch Möglichkeiten, trotz eventueller Zugriffssperren der Server Dateien zu kopieren, verschieben usw., sodass sich das Script und seine Umgebung selbst strukturiert. Das Problem ist, dass ich deine Zugriffsprobleme im Unterverzeichnis images bei mir nicht nachbauen kann. Welche Zugriffsrechte hat bei dir das vom Script nicht erreichbare images-Verzeichnis eigentlich? Ist der User-Eintrag des Scripts und das des Verzeichnisses gleich?

Eine Möglichkeit bei mir wäre auch, alle Dateien in der Zip-File im Root der Zip zu lassen und das als Standard einzuführen, oder das Script dann die Verschiebearbeit vornehmen zu lassen. Da bin ich noch am grübeln, da es inzwischen unterschiedliche, lauffähige Szenarien bei verschiedenen Usern geben dürfte. Ich gebe jedenfalls nicht eher Ruhe, bis das Script "auch Kaffee kochen kann :saufen2:". :)
 
Zuletzt bearbeitet:
Was habe ich nur mit dem Update Wunsch angerichtet.
 
habe Heute die ersten Schaltversuche mit der SmartHomeauto.php

mit offenen Browser Fenster geht das soweit, bis auf die Winterzeit stimmt nicht, zeigt 1 Stunde zu wenig an!
Längen und Breitengrade sind angepasst!

Probleme hab ich noch mit der Busybox auf der FritzBox.
beim starten keine Fehlermeldung, aber wie kann ich feststellen ob das wirklich läuft?

mit ps | grep busybox und ps | grep cron erhalte ich folgendes Ergebnis:
Busybox.JPG

hab das alles auf dem USB-Stick am laufen, Pfade und Verzeichnisse angepasst.
 
@ws65: Zeigt er oben rechts bei der Zeit eine Stunde zu wenig an? Bei mir stimmt da die Zeit. Was meldet die Fritzbox selbst? Stimmt beim php in der php.ini die Zuordnung?
SHA.png
Breiten- und Längenangaben müssen östlich von Greenwich positiv sein. Da habe ich mich selbst auch mal mit reingelegt.

Auszug: php.ini
Code:
[Date]
; Defines the default timezone used by the date functions
date.timezone = Europe/Berlin
date.default_latitude = 52.5194
date.default_longitude = 13.4067


Ob der cron das Script richtig aufruft, kann man am einfachsten testen, indem man eine Steckdose schalten lässt. Jede Minute müsste ja das Script aufgerufen werden und dann müsste es "Klick" machen. Stimmt denn die crontab? Wenn nach dem Eintrag ein Zeilenumbruch kommt, startete er z. B. bei mir das Script nicht. Funktioniert der manuelle Aufruf des Scripts über Telnet? Hat das Script chmod 777?
 
Zuletzt bearbeitet:
Hallo,
ist zwar Oben Links die Uhr, aber genau die geht bei mir falsch!

noch mal für Dumme, wo finde ich die crontab ?
wie starte ich das Script in Telnet?
einfach mit shstart.sh oder busybox shstart.sh?
von der Root Ebene mit Verzeichnisangaben oder direkt aus dem Verzeichnis cron ?
hab sehr wenig Ahnung von Linux.

Edit:
bin schon etwas weiter,
da ich nach Deiner Anleitung auf der ersten Seite gegangen bin, nur alle Pfade und Verzeichnise angepasst, war in der cronkv.txt noch ein Fehler im Pfad.
wenn ich nun mit sh ./shstart.sh das Script aufrufe bekomme ich die Fehlermeldung "No input file specified."

bin mir aber sicher das da alle Pfade richtig sind, nur mein Apache hat im Verzeichnis cgi-bin keine php-cgi Datei, nur eine php Datei.
hab ich auch angepasst!

Edit 2:
100 mal geprüft und doch noch ein Tippfehler!! ich schäme mich!
jetzt gibt er aber mit sh ./shstart.sh die smarthomeauto.php als Text aus !!
 
Zuletzt bearbeitet:
Hallo,
ist zwar Oben Links die Uhr, aber genau die geht bei mir falsch!
Das ist die Systemuhrzeit des Fritzbox-Betriebssystems. Da geht deine Fritzboxuhr falsch :gruebel:
Steht in der php.ini denn, was ich in meinem Post geschrieben habe drin? Sonst nimmt php GMT+0 die Greenwitch-Zeit.

hab sehr wenig Ahnung von Linux.
Kein Problem, deswegen stelle ich ja Fragen, wo, wie, was eingetragen ist. :)

bin mir aber sicher das da alle Pfade richtig sind, nur mein Apache hat im Verzeichnis cgi-bin keine php-cgi Datei, nur eine php Datei.
hab ich auch angepasst!
Ja, das war richtig.
jetzt gibt er aber mit sh ./shstart.sh die smarthomeauto.php als Text aus !!
Bitte den kompletten Pfad ab root verwenden. Die Datei shstart.sh muss chmod 777 Rechte für ausfürbar besitzen. Der busybox sh interpretiert sie wohl nur als Textdatei. Bitte auch hier den kompletten Pfad ab root angeben.

Bitte mal per Telnet auf die Fritzbox und folgendes eingeben und das Ergebnis hier posten:
Code:
date
Zeigt hier die Fritzbox das richtige Datum und die richtige Uhrzeit an? Die Ausgabe wäre in Form von:
Code:
Mon Nov  3 20:06:40 CET 2014
Dann bitte mit cd ins Verzeichnis, in dem die shstart.sh sich befindet wechseln und:
Code:
ls -l shstart.sh
Das Ergebnis müsste so aussehen:
Code:
-rwxrwxrwx    1 boxusr10 root           275 Sep 21 21:25 shstart.sh
Poste bitte, was bei dir da rauskommt. Dann machen wir die nächsten Schritte... Das wird :)
 
Zuletzt bearbeitet:
jetzt gibt er aber mit sh ./shstart.sh die smarthomeauto.php als Text aus !!
Wirklich die ganze Datei oder das HTML-Dokument, was das PHP erzeugt, denn das wäre normal.
 
also, die FritzBox Uhrzeit geht richtig,
ls -l shstart.sh liefert auch soweit ich sehe, das richtige Ergebnis.
FB-Datum.JPG

hab das Ergebnis von sh ./shstart.sh mal in eine Datei umgeleitet,
Anhang anzeigen shtest.txt
warum kann ich keine TXT-Datei richtig einfügen?

einen Teil von der Telnetausgabe nochmal hier,
shtest.JPG
 
Ok, ein Haufen Warnings vom PHP-Parser, der und das Script läuft demnach. Wie sieht es mit der php.ini aus? Steht da:
Code:
[Date]
; Defines the default timezone used by the date functions
date.timezone = Europe/Berlin
date.default_latitude = 52.5194
date.default_longitude = 13.4067
Wenn das nicht drin steht nimmt php UTC bzw. GMT+0 und das ist eine Stunde zu wenig.
 
Zuletzt bearbeitet:
meinst du die php.ini im apache Verzeichnis cgi-bin ?

da kann ich sowas nicht finden!

Edit:

hab das jetzt mal eingefügt, muss ich apache jetzt neu starten? wie halte ich den an?
 
Zuletzt bearbeitet:
Den ersten Prozess des Apache, der mit root läuft killen. Das geht, indem man eingibt:
Code:
kill prozessnummer_aus_ps
Danach den Apache wieder starten. Aber mach es dir einfacher. Editiere smarthomeauto.php und gib dort in Zeile 2 dies ein:
Code:
	date_default_timezone_set("Europe/Berlin");
dann setzt für dieses Script der PHP-Parser die Zeitzone richtig. Ich habe es gerade für die 3.93 schon korrigiert, sodass man es dort in den Einstellungen eingeben kann. (Nächste Version dann)
SHA2.pngeinst.png
 
Zuletzt bearbeitet:
Super, schon geht die Uhr richtig!
 
Sehr gut. Langsam wirds. :)

Wo klemmt es jetzt noch?
 
keine Ahnung, alles läuft, nur schalten tut es nicht!
 
Wie sieht deine Schalteintragung aus?

Schaltet es denn, wenn das Script im Browser läuft?
 
Zuletzt bearbeitet:
ich setze immer einen Schaltpunkt ca. 2 Minuten vorraus.

wenn Browserfenster offen ist schaltet das.
schalten.JPG
 
Ok, dann haben wir noch immer ein Problem mit der crontab. Der cron müsste jede Minute das Script starten, macht es wohl nicht. Die Frage ist, warum?
Die cronkv.txt darf nur eine Zeile enthalten, also kein Zeilenumbruch am Ende haben und volle Pfadangaben. Und ANSI NICHT UTF-8. Bei mir sieht sie so aus:
Code:
* * * * * /var/media/ftp/[COLOR="#008000"]cron[/COLOR]/busybox sh /var/media/ftp/[COLOR="#008000"]cron/scripte[/COLOR]/shstart.sh
Das Grüne musst du für dich anpassen.
 
Zuletzt bearbeitet:
ich glaube ich hab den Fehler gefunden! in der cronkv.txt hat noch ein Buchstabe im Pfad gefehlt!!
rzt ist
kann im Moment aber nicht weiter testen, da meine FB scheinbar abgestürzt ist, startet gerade neu!

jetzt muss ich natürlich auch apache und busybox neu starten
 
Okay, das ist natürlich nicht mal so verkehrt. Dann werden auch die Konfigurationsdateien mal neu eingelesen. Ich hoffe, es läuft jetzt :)

Am besten schreib dir dafür ein kleines Shellscript mit den Befehlen, dann musst du sie nicht bei einem Absturz neu eintippen, sondern rufst nur das Script schnell auf.
 
ich hab mir Hilfe Dateien angelegt für Apache und Busybox zu starten.
normalerweise brauch ich nur die Zeilen nach Telnet kopieren.

nur heute Abend wil mein apache nicht starten!

keine Ahnung warum, hab auch heute keine Lust mehr, werd morgen mal den Stecker der FB ziehen und von vorne anfangen!
 
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.