SensorAndSwitch Haus-Automation auf Webserver-Basis

Das freut mich ehrlich dass dir SQLite3 so gut gefällt.
Komm jetzt aber nicht auf die Idee, dass in MySQL umsetzen zu wollen.
SQLite3 ist meiner Meinung nach viel besser für SaS geeignet.

Was mich aber noch wurmt ist meine eigene Unwissenheit was mit SQLite3 noch alles möglich wäre.
Damit mein ich ausschliesslich die internen Funktionen, wie: Trigger
Oder verrat mir mal wofür in der SaS Datenbank die Tabelle existiert: sqlite_autoindex_cache_1
...hast du die anlegen lassen, oder bedeutet das "auto" was ich vermute?

Apropos vermuten: Meinst du mit "echtem curl-Befehl" eine curl Binary, die ich auf der Fritz!Box dann benötigen werde?
(Und wenn: Zum Glück hab ich noch eine curl MIPS Binary)
 
Zuletzt bearbeitet:
Durch die Anfänge mit der Edimax-Steckdose habe ich im SAS-Web Downloadbereich curl für die FB mips und mipsel. Aber eigentlich will ich von curl wieder weg, denn es muss auch anders funktionieren. Im Prinzip muss sich die sasag nur immer wieder selbst aufrufen. Problem ist, dass sie nicht im Webbrowser sondern in der Shell gestartet wird. Da funktioniert header usw. nicht, wie ichs brauche. Zumindest bei meinen Versuchen. Ich habe aber dennoch eine Idee. Werde ich mal bei Gelegenheit testen. Wenn sas statt sasap sasag startet, läuft es ja letztendlich über den Browser, aber da muss ich wie gesagt noch etwas testen. Ansonsten sind selbst Schaltvorgänge per MT-F oder manuell an der Dose viel schneller im WebGUI sichtbar. :)

sqlite_autoindex_cache_1 legt SQLite wohl beim Erstellen der Datenbank selbst an.

Für sas sehe ich auch keinen Grund auf mysql zu wechseln. Für die Datenmenge ist SQLite und seine Funktionen vollkommen ausreichend. ;)
 
@koyaanisqatsi: Ich habe einen Weg ohne curl-binary gefunden. Problem ist, dass man bei der Fritzbox die php-cgi in das sas-Verzeichnis unter dem Namen php kopieren müsste, sonst läuft es nicht. Siehst du da evtl. Probleme?
 
Ähem? Linux?
Ausser php-cgi macht zicken wenn es als php aufgerufen wird.
Ich mach sowieso gerne einen Softlink auf Sachen, wenn sie eh schon irgendwo rumliegen.
Kurz: Nein


So würde ich den Link setzen...
Code:
cd sensorandswitch
ln -sf ../mips/php.sh php
...und fertisch. ;)

Die php.sh enthält die Paras für die php.ini ganz viel env Zeug und stellt sicher, dass php-cgi richtig aufgerufen wird.

Aber wer weiss schon was du da wieder gemacht hast. :mrgreen:
 
Zuletzt bearbeitet:
Mh, wenn ich das selber mal so genau wüsste... :mrgreen:

Ich habe jetzt in den Einstellungen vom WebGUI ein Feld "Shell-Aufruf PHP-Binary" reingebastelt, wo standardmäßig "sudo php ./" drinsteht. Der Aufruf beim Pi lautet ja "sudo php ./sensorandswitchautoget.php" und der erste Teil ist dann dort eintragbar, falls ich auf die Idee komme, noch was mit php über die Shell starten zu wollen. :silly:

Kämst du damit bei der Fritzbox klar?

Nachtrag: Wenn ich mich nicht irre, müsste nach deinem Beispiel oben "php ./" bei dir in der WebGUI-Einstellung dann rein. :gruebel:
 
Zuletzt bearbeitet:
Wenn das sudo weggelassen werden kann, komm ich mit klar.
Meine busybox bietet nur ein: su

...aber dass funzt prima.

Wenn ich zum Beispiel mal nobody sein möchte.
:rolleyes:
 
Ja, der vordere Teil "sudo php" ist ja ein abänderbares Eingabefeld in den WebGUI-Einstellungen. Da kannst du auch nur "php" reinschreiben. Das ist flexibel. Beim php-Script habe ich es jetzt so gemacht, dass gleich intern der vollständige Pfad mitgeliefert wird. Das müsste dann auch halbwegs narrensicher sein. :) Sieht bis jetzt gut aus. Mal einen Tag im Einsatz abwarten, ob alles anständig geschaltet wird. Aber die Reaktionszeit der WebGUI ist tatsächlich noch schneller geworden.
 
Schlechte Nachrichten. Heute früh war der sich selbst aufrufende PHP zwar noch da, führte aber nichts mehr aus. Ein weiterer Test zeigt, dass er nach einiger Zeit, ca 1 Stunde - mal kürzer, mal länger - einfach aussteigt. Ein seltsames Verhalten vom PHP-Parser. Jetzt läuft ein Test mit dem curl als Aufrufer. Mal sehen, ob das stabiler läuft. Ich habe jedenfalls den kompletten Aufruf als änderbar in die WebGUI-Einstellungen aufgenommen, sodass jeder den für sein Gerät stabilsten Aufrufweg dort eintragen kann.

@koyaanisqatsi: Kannst du dir vielleicht erklären, warum der Parser einfach aussteigt? Oder weißt du eventuell nioch einen Lösungsansatz, ein php-Script ohne cron sich ständig selbst aufrufen zu lassen?
 
Kurz: Nein

Ein Interpreter sollte eigentlich als Dämon (DEAMON) laufen und Skripten ermöglichen sich als adressierbaren Prozess abzusetzen.
Da Heutige Interpreter aber sozusagen die Skripte als Aufrufsargument zum Parsen bekommen, seh ich da keine Möglichkeit.

Auf einen Amiga ab Kickstart 2.0 mit REXX ging geht das. :mrgreen:
 
Gbit es eine Möglichkeit ein Shellscript zu starten, das sich selbst am Ende wieder aufruft und das Beendigen des Parent übersteht?
 
Ja die gibt es.
Mein Favorit...
Linux: Ein Konsolen Multiplexer wie screen oder tmux erhalten solche Prozesse am Leben
Seitdem ich die kenne kann ich auf Linux jedenfalls nicht mehr ohne.
Aber ob das praktikabel (Benutzerfreundlich) ist?
Eine Bessere kenne ich persönlich jedenfalls nicht.

Aber, dass wäre der nächste "Quantensprung" in der SaS Entwicklung.
Nur mal so theoretisch...
Ein php(-cgi) Prozess (Skript) hängt wie die Spinne im Netz und wartet...
...dass Skripte an ihm geschickt werden um sie auszuführen...
Dann wären keine weiteren Aufrufe von php(-cgi) mehr notwendig.
Der "Dämon" sollte aber die laufenden Prozesse (Skripte) schon kennen (veröffentlichen).
...damit sie adressierbar sind.
Naja, eine brauchbare "Prozessverwaltung" oder sind es "Tasks"? halt,
...ich hör jetzt mal lieber auf zu theoretisieren.
 
Zuletzt bearbeitet:
Meine Güte, ich habe gerade nochmal alles umgeschrieben. Jetzt läuft es über das Shell-Script, das vom cron gestartet wird und dann das cache-Script mit seiner Endlosschleife aufruft, das in sich den PHP-Parser mit dem PHP-Script startet, um die Geräteinfos in den Cache zu schreiben. Zur Zeit läuft es. Mal sehen, ob das auch wieder nach ner Stunde abbricht. :gruebel:
 
Gibt es die Möglichkeit in einem Shellscript festzustellen, ob ein bstimmter Prozess läuft und wenn er nicht läuft ihn zu starten oder wenn er länger als sagen wir 1 Minute läuft, ihn zu beenden und neu zu starten?
 
Natürlich, dafür ist normalerweise die Prozesstabelle da.
...kennst du doch: ps oder ps ax
Wenn es mehrere PIDs gibt: pidof programmname

Und innerhalb des Tasks die Umgebungsvarable PPID.
Innerhalb des /proc Verzeichnisses lässt sich bestimmt auch was finden.
Und mit lsof und grep wirst du bestimmt auch fündig.
 
Zuletzt bearbeitet:
Das Problem ist, dass mehrere Prozesse von PHP unterwegs sind. Wenn ich den Falschen kille, dann..., naja. Im Augenblick läuft ein Shellscript-Konstrukt, was bis jetzt keine Probleme macht. Ich hoffe, dass das bis morgen anhält. Zur Zeit benutze ich disown zum Entkoppeln. Das funktioniert von allen Versuchen bisher am besten. Linux-Shell-Script-Geschichten kenne ich noch aus alten Unix-Zeiten und dann eher nicht mehr. Zumindest nichts mehr damit gemacht. Von daher... da hat sich doch einiges verändert. Und das Rausfiltern aus stdout mit dem awk ist etwas ... umständlich. Der grep kann da nicht so viel, aber könnte reichen. Vielleicht bleibt es mir auch erspart, wenns bis morgen durchläuft. ;)
 
Hallo JL3:

ich versuche seit langem mal wieder etwas mit den automatischen Schaltvorgängen. Aber es gelingt mir nicht mehr.

uebersicht.jpgerfassung.PNG

ich kann bei der Erstellung keine Steckdose mehr auswählen.
Irgendeine Idee?

SAS an sich funktioniert. Also Übersicht, manuelles schalten etc.
 
Wie ich sehe, hast du die letzte 3.00-Version laufen. Läuft der cron? Es ist wichtig, dass sasap korrekt ausgeführt wird. Dieser bildet die Datenbank für den Cache und ohne den keine Geräte. Leider steht nicht dabei, in welcher Umgebung du momentan sas installiert hast. Ich tippe auf ein Rechteproblem beim Anlegen der Datenbank des Caches oder wenn es auf dem Pi läuft auf ein nicht installiertes SQLite-Modul ( apt-get -y install apache2 php5 libapache2-mod-php5 php5-curl php5-imap php5-sqlite ).
 
hm. also es ist auf meinem PI. Und es lief ja auch alles schon, incl. cron. Dann werde ich die Installationsschritte nochmal durchgehen. Irgendwas hat sich scheinbar verbogen.
 
Es wird das Zusatzmodul sqlite sein, das fehlt, da dies bei der 3.00 beim Pi dazukam. Das gab es zuvor nicht.

Eine Bitte, könntest du in deine Signatur einen Hinweis setzen, welches SAS und welche Basis du laufen hast? Wäre bei dir SAS 3.00 auf Pi B+? und raspbian wheezy. Dann muss ich bei Fragen nicht nachhaken und kann gleich antworten. :) (Gilt übrigens für alle, die es noch nicht in der Signatur stehen haben. ;))
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,479
Beiträge
2,252,733
Mitglieder
374,254
Neuestes Mitglied
staleyjudith
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.