RPi SmartHome Control 2.2

  • agent47


    Zu der Schaltpunktgeschichte: Was würdest du davon halten ein weiteres Feld "Name/Beschreibung" (wie auch immer man es benennen will) einzuführen und dieses dann in der Übersicht darzustellen zusammen mit An oder Aus. und mit einem "MouseOver". Dann hätte man schon einen gute Übersicht.


    Z.B.
    Steckdose Keller:


    AN Feierabendbier...


    Was ich dann eintrage bleibt ja meiner Fantasie überlassen: "AN 18:00" Oder "AUS Sonnenuntergang"


    Dann auch ich mich ja gestern gefragt, warum du die ganzen Felder zur Eingabe es Schaltpunktes als Multiauswahl hast. Der Freiheitsgrad ist natürlich enorm - nur habe ich mich dann gefragt ob ich jemals auf die Idee kommen würde einen Anschaltzeitpunkt am z.B. Mo und Mi und Fr zu definieren. Dann müsste ich hin gehen und würde einen Ausschaltzeitpunkt Di und Do und Sa....Oder muss ich doch Fr... und dass dann auch noch in 2 getrennten Schaltpunkten - mich könnte das fast überfordern..
    Will sagen, da frage ich mich ob man das nicht einfacher machen könnte - denn ich persönlich würde dann 3 einzelne Schaltpunkte setzen um nicht die Übersicht zu verlieren. Was ja machen kann, aber immer muss ich dann noch einen weiteren SChaltpunkt fürs Ausschalten bauen
    Es wäre auch ehr meins ( und wenn ich an meine Frau denke auch ihrs ) in einem(!) Dialog ein und aus zu definieren Also schalte von bis ein.
    Wäre also ne geile Idee ein Advanced Dialog (so wie jetzt ) und einen einfachen... Oder was wäre mit der Idee: Zwei Dialoge nebeneinandern zubauen, so dass ich linke Spalte an, und direkt daneben rechte Spalte aus definieren kann. Dann habe ich auch eine bessere Übersicht wann was an und ausgehen soll. Nur so als Idee. Würde das bestimmt Frauenkompatibler machen und wir Männer brauchen doch Argumente warum wir so ein Spielzeug wie PI und 433mhz Sender brauchen :)


    Aber ehe du dich ärgerst (Was das für ein A***h, nur am meckern..) , ich habe mir bereits 3 solcher Projekte angesehen und war kurz davor alles selbst zu machen, das habe ich jetzt leider nicht mehr nötig (Ärgert mich ein wenig) , denn dein Ding hier ist richtig gut und vor allem ausgereift und durchdacht.


    Zu dem send Befehl: Ja, ich habe das schon verstanden (SystemCode etc. ) aber ja man kann die kombinieren, mit Pilight kannst du dann z.B. halt auch die 3 nutzen (Aber dann auch nicht mit einer Fernbedienung schalten) d.h. man kann damit 1024 statt "nur" 160 Dosen schalten. ;)


    Gruß Lunepi

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • @Lunepi


    Keine angst, das ist genau das was ich mir erhofft habe. Das hat mir beim PCC auch etwas gefehlt das mal jemand sagt wie man etwas besser lösen könnte.


    Zu deiner Anmerkung:
    Das aktuelle Formular ist wie du schon gesagt hast für den vollen Funktionsumfang der Zeitsteuerung ausgelegt. Klar könnte man das auch auf einfach eine Uhrzeit zum ein- und eine zweite Uhrzeit zum ausschalten reduzieren quasi als Lite Version. Allerdings ist es mit der aktuellen Architektur schwierig 2 Schaltverhalten zusammen zu fassen. Dazu müsste ich mir mal überlegen wie man das koppeln könnte.
    Das eigentliche Zeitschalten wird ähnlich wie in Linux mit Cornjobs was aber eher für den Profibereich praktikabel ist. Daher ist das aktuelle Formular schon eine starke Vereinfachung. Ich schaue mal ob sich die Lite Variante sauber in die Anwendung intrigieren lässt.


    Mit dem Tooltip denke ich werde ich so machen, ich hatte erst überlegt einen Namen zu zu lassen aber das ist auch nicht immer aussagekräftig.


    @p4co86
    da muss ich mal schauen ob das Funktioniert, wenn ja wäre der erst kein Problem.


  • @Lunepi



    Mit dem Tooltip denke ich werde ich so machen, ich hatte erst überlegt einen Namen zu zu lassen aber das ist auch nicht immer aussagekräftig.


    Beides zusammen bzw. alles drei:


    An Name
    Aus Name


    Plus jeweils Tooltip.


    "An" und "Aus" ergeben sich ja zwangsläufig. "Name" als optionales Feld, was auch leer sein darf. musst du nur in der Zeichenzahl beschränken oder einfach in der Ausgabe in der Übersicht zur Not beschneiden. Zusammen mit einem Tooltip mit den programierten Zeiten - Ich fände das gut.


    Übrigens die angesprochene Timer Funktion fände ich persönlich auch ne super Sache, denn ich werde auch eine Dose an den Rasensprenger ( Gartenpumpe ) hängen. Nichts wäre cooler als z.B. ein Knöpfchen im Interface zu habe "45min Timer" - Klick und das ding rennt los und ich kann mein Feierabendhopfenhaltschale bei Fusi genießen und muss nicht mehr nachdenken.
    Klar geht auch über definierte Ein/Aus-Zeitpunkte aber wenn ich dann doch noch im Garten bin werde ich nass - uncool ;)



    Ich habe mir deine Zeitschaltfunktion noch nicht angesehen, sind ja auch alles im allen ein paar Zeilen zusammengekommen die du da zusammen gehämmert hast. Und je länger ich mich mit deinem Konzept/Ideen befasse um so mehr Respekt habe ich.


    Wer oder was ist PCC?


    Gruß Lunepi
    [hr]
    Nachtrag zum Timer:
    Für den Timer könnte man doch ähnlich wie die Schaltbereiche eine eigene Eingabemaske bauen.
    Ich würde mir vorstellen man kann festlegen ob von Zustand Aus in den Zustand An gewechselt wird und nach Ablauf der Zeit wieder zurück. Oder auch umgekehrt.
    Dann kann ich den Timer einer Dose zuordnen mit dem Effekt ich habe zusätzlich zum Ein/Aus Schalter einen oder mehrere Timer-Schalter im Interface.


    So würde ich es mir vorstellen oder machen...


    Könnte man auch wieder in die Schaltfunktion einbauen: Starte 45min Timer für Dose 1 um 13:23. Und schon muss ich mich ums ausschalten nicht mehr kümmern.


    Achso und Bier - kannst du nicht den immer geöffneten Zapfhahn der nie versieght einbauen. ;) Wo ich gerade das Spiel "Wünsch dir was" spiele....

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

    Edited once, last by Lunepi ().

  • Das PCC ist mein erstes Raspberry Pi Projekt -> http://www.forum-raspberrypi.d…spberry-pi-control-center auf dessen Basis auch das SHC aufgebaut ist.



    Für die Tooltips habe ich schon eine Idee, aber mal schauen ob sich das so auch sinnvoll umsetzen lässt.
    Eine Countdown Funktionen ist an sich auch keine großes Problem, aber auch hier ist die Einbindung in die GUI nicht so trivial, vor allem in der Mobil UI.


    Die Idee ist zum SHC ist daraus entstanden das ich Funksteckdosen mit dem Raspberry Pi schalten wollte aber halt mit Zeitschaltung und dazu nicht gutes gefunden habe. Schon aus dem PCC heraus hatte ich ein Grundsystem welches auch auf dem RPi performat läuft (durch so wenig wie nötig OOP und alles auf Basis von AJAX), also habe ich mich ran gesetzt ein System zu programmieren das auch von Mobilgeräten aus gut zu bedienen geht (ich wollte das ganze auch vorrangig vom Smartphone aus bedinen).

  • Sieht sehr gut aus dein Projekt.
    Kleine Frage, verwendest du einen Transmitter (Sender) oder Transreciver (Sender/Empfänger)?
    Die Temperatur, liest du die per Funk Ein/Aus?


    Gruß Simon


  • Für die Tooltips habe ich schon eine Idee, aber mal schauen ob sich das so auch sinnvoll umsetzen lässt.
    Eine Countdown Funktionen ist an sich auch keine großes Problem, aber auch hier ist die Einbindung in die GUI nicht so trivial, vor allem in der Mobil UI.


    Hm, ich bin leider noch nicht soweit eingedrungen, das ich da helfen kann.


    Quote


    Die Idee ist zum SHC ist daraus entstanden das ich Funksteckdosen mit dem Raspberry Pi schalten wollte aber halt mit Zeitschaltung und dazu nicht gutes gefunden habe. Schon aus dem PCC heraus hatte ich ein Grundsystem welches auch auf dem RPi performat läuft (durch so wenig wie nötig OOP und alles auf Basis von AJAX), also habe ich mich ran gesetzt ein System zu programmieren das auch von Mobilgeräten aus gut zu bedienen geht (ich wollte das ganze auch vorrangig vom Smartphone aus bedinen).


    Jo das ging mir genauso nur ich hab was fertiges gefunden ;) Warum bist du SQLlight weg denn wenn ich das richtig gesehen habe hast du es bei PCC noch verwendet? Aber zugegebener maßen, mit deinem Tool drauf langweilt sich der PI :sleepy:


    Jetzt werde ich weiter versuchen zuverstehen, was du so alles treibst in deinem Programm, dann muss der PI wenigstens mal ein vi öffnen ;)

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Der Hauptgrund ist das SQLite auf dem RPi recht langsam ist und vor allem kann immer nur ein Scriptdurchlauf gleichzeitig darauf zugreifen. Das hat bei den vielen Ajax Anfragen des PCC dazu geführt das dauernd Fehlermeldungen wegen dem Exclusivlog angezeigt wurden. Deswegen bin ich mit der neuen Version des PCC con SQLite weg und habe alles auf XML umgestellt was wirklich sehr schnell ist bei den geringen Datenmengen.
    Dazu musste ich auch noch die sehr saubere OOP beim neuen PCC und dann auch SHC aufgeben da auch das ins gesamt zu träge war. Dazu habe ich dann auch das Packen der Klassen ein geführt (alle Klassen aus einzelnen Dateien werden in eine Kopiert damit nicht 50 kleine Dateien geladen werden müssen sondern eine große). Alles in allem hat das ganze die Ladezeit von 2s auf 100 - 300ms gesenkt.

  • Für den Countdown findet sich schon ein weg. Was Funksensoren angeht, bin ich gerade dabei zu schauen ob sich da mit dem MicroDuino und Bluetooth was machen lässt. Ansonsten konnte ggf. auch das hier im Forum entstandene Projekt mit den Batteriebetriebenen Funksensoren dafür in frage kommen, aber da habe ich momentan wenig zeit mich damit zu befassen. Auch das mit den Temperatur Funksensoren klingt nicht schlecht aber da schein bis jetzt nichts richtiges raus gekommen zu sein.

    Edited once, last by agent47 ().

  • Ich nutze einen RasPi dazu, den Netzwerktraffic aufzuzeichnen. Das läuft alles sehr stabil, nutzt allerdings Apache2. Ist es möglich diesen einfach zu deinstallieren und durch den von Dir favorisierten Lighttpd zu ersetzen?


    Falls das nicht geht, wie wäre dann PHP5 in Apache2 einzurichten? Für Lighttpd hast Du die folgenden beiden Zeilen in der Anleitung genannt:


    Code
    ~ $ sudo lighty-enable-mod fastcgi
    ~ $ sudo lighty-enable-mod fastcgi-php



    Was wäre bei der weiteren Nutzung von Apache2 zu tun?


    Eine weitere Frage habe ich noch: Kann man SHC Home und PCC Home auf dem gleichen RasPi installieren, oder löschen die sich dann gegenseitig die index.html und noch andere Sachen?

  • Wenn du keine besonderen Einstellungen bei Apache 2 vorgenommen hast lässt dich der Lighttpd 1:1 austauschen. Wenn du aber schon einige Einstellungen vorgenommen hast oder z.B.: .htaccess Dateien nutzt solltest du bei Apache 2 bleiben (Das PCC und auch das SHC funktionieren mit allen normalen Webserver wie Apache 2, Lighttpd,ngnix, cherokee ...).


    Zum austauschen gibst du folgenden Befehle auf der Kommandozeile ein:


    Code
    ~ $ sudo apt-get purge apache2
    ~ $ sudo apt-get install lighttpd php5 php5-cli php5-cgi php-apc
    ~ $ sudo lighty-enable-mod fastcgi
    ~ $ sudo lighty-enable-mod fastcgi-php


    Um den Apache 2 Webserver mit PHP aus zu rüsten gibst du folgende Befehle ein:


    Code
    ~ $ sudo apt-get install lib-apache-mod-php5 php5 php5-cli php5-cgi php-apc
    ~ $ sudo service apache2 force-reload


    Danach ist PHP5 in Apache 2 einsatzbereit.


    Das PCC und SHC können parallel installiert werden, beide müssen aber in verschiedenen Unterordnern des Server root liegen.

  • Vielen Dank für die Infos. Ich habe versucht, Apache2 auszutauschen. Aber beim Start von Lighttpd gab es die Fehlermeldung, dass Port 80 schon genutzt wird. Da ich keine Ahnung habe, wie ich herausfinden kann, welches Programm das macht, habe ich es kurzer Hand beim Apache2 belassen, indem ich die Sicherungskopie wieder auf die SD-Karte gespielt habe.


    PCC habe ich installiert. Allerdings habe ich nirgendwo eine Anleitung dazu gefunden, habe mir die Infos dann aber aus den letzten drei Seiten des PCC-Fadens geholt. Nachden die Rechte des Ordners angepasst waren, klappte auch die Installation. Das läuft nun seit rund 12 Stunden. Das Design gefällt mir sehr gut.


    Im zweiten Schritt bin ich jetzt am SHC. Kann es sein, dass Du in der Anleitung vergessen hast, ein "sudo" vor "rm -Rf WiringPi" zu setzen? Das aber nur nebenbei.


    Im Moment hänge ich an dem von Dir empfohlenen Instalationsbefehl (die PHP Sachen waren schon installiert)


    Code
    sudo apt-get install lib-apache-mod-php5


    Das klappt nicht. Die Suche mit



    Code
    sudo apt-cache search lib-



    ergab, dass es das gar nicht gibt - zumindest habe ich es nicht gesehen.


    Der darauf folgende Befehl klappte natürlich auch nicht:



    Code
    pi@FTP-Server /opt/rcswitch-pi $ service apache2 force-reload
    apache2: unrecognized service
    pi@FTP-Server /opt/rcswitch-pi $



    Was wäre zu tun, damit das funktioniert?

  • Der Apache2 war gelöscht. Ich habe es nach der Anleitung von agent47 gemacht. Aber ist ja letztlich auch egal. Jetzt läufts halt mit Apache2. Laut agent47 geht das genau so gut, benötigt nur mehr Ressourcen.


    Nun muss ich aber gemäß Punkt 5.3 der Anleitung noch PHP5 in Apache2 einrichten. Wie ich oben schrieb, hakt es dabei.


  • Für den Countdown findet sich schon ein weg. Was Funksensoren angeht, bin ich gerade dabei zu schauen ob sich da mit dem MicroDuino und Bluetooth was machen lässt. Ansonsten konnte ggf. auch das hier im Forum entstandene Projekt mit den Batteriebetriebenen Funksensoren dafür in frage kommen, aber da habe ich momentan wenig zeit mich damit zu befassen. Auch das mit den Temperatur Funksensoren klingt nicht schlecht aber da schein bis jetzt nichts richtiges raus gekommen zu sein.


    Hm, ich meine pilight kann ja diverse sender auslsen und auch einiges verschieden an Dosen schalten.Wenn ich deine Programmierung richtig einschätze sollte es recht einfach sein,den send-Befehl durch pilight zu ersetzen ( Der Dialog zur Eingabe der Funkdosen müsste sich eventuell einwenig ändern ) Aber pilight kennt halt auch einen receive-Befehl - den könnte dann man nutzen.


    Nachteil von Pilight ist, das es einen eigenen (web-)Server mitbringt. Also da etwas läuft was man dann nicht wirklich nutz.


    Vorteil die Liste der unterstüzten Dosen und Sensoren ist ziemlich groß.


    Gruß Lunepi
    [hr]


    Vielen Dank für die Infos. Ich habe versucht, Apache2 auszutauschen. Aber beim Start von Lighttpd gab es die Fehlermeldung, dass Port 80 schon genutzt wird. Da ich keine Ahnung habe, wie ich herausfinden kann, welches Programm das macht, habe ich es kurzer Hand beim Apache2 belassen, indem ich die Sicherungskopie wieder auf die SD-Karte gespielt habe.


    Wenn Port 80 angeblich was läuft, dann war der Apache nicht aus.


    Code
    netstat -a | grep LISTEN


    Listet alle Ports auf an denen gelauscht wird. Wo kein Deamon der läuft auch kein Lauschen.


    Code
    ps -eaf | grep -i -e apache -e httpd


    gibt dir auch Auskunft darüber ob der läuft...


    Dann hast du versucht den apache mit


    Code
    service apache2 force-reload


    durch zu starten. Es kann sein (ich bin mir fast sicher) das der es eventuell httpd oder nur apache heissen muss. Könntest aber auch einfach in /etc/init.d schauen wie das script zum starten heißt oder mit ps -eaf guggen welcher Prozess läuft


    Gruß Lunepi

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

    Edited once, last by Lunepi ().

  • Danke für die Infos. Das werde ich ausprobieren, wenn ich wieder daheim bin. Der Befehl zum Neustart des Apache2 ist schon richtig so. Ich habe es auf einem anderen RasPi versucht, auf den ich grad zugreifen kann:

    Code
    pi@raspberrypi ~ $ sudo service apache2 force-reload
    [....] Reloading web server config: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
    . ok 
    pi@raspberrypi ~ $


    Irgend etwas passt da auf dem RasPi daheim nicht so richtig. Ich werde mal ein jungfräuliches Image drauf ziehen und es dann nochmal probieren. Das Image, dass dort installiert ist, diente sowieso nur zu Testzwecken. Ist also kein Beinbruch.

  • Ich habe das Ganze jetzt auf dem RasPi installiert, auf dem auch schon PCC erfolgreich installiert ist. Da dort vorher schon eine Anwendung lief, habe ich den Apache2 belassen. Der Befehl


    Code
    sudo apt-get install lib-apache-mod-php5


    funktionierte auch hier nicht. Wie muss der richtig heißen?


    Ich nehme mal an, dass diese fehlende Software die Ursache dafür ist, dass auf den Befehl



    Code
    /var/www/shc $ php index.php



    rein gar nichts passiert. Gebe ich



    Code
    /var/www/shc $ php index.php -sw



    ein, dann kommt zwar in grüner Schrift die Bestätigung, dass der Server läuft, aber die Eingabezeile kommt nicht zurück. Erst "Strg-z" bringt die Eingabezeile wieder zurück.


    Das nächste Problem hängt wahrscheinlich auch mit dem Fehler zusammen, dass ich "sudo apt-get install lib-apache-mod-php5" nicht installieren kann. Ich habe als Räume Wohnzimmer und Esszimmer angelegt. In beiden Räumen habe ich je eine Steckdose angelegt. Nun würde ich als Aktivität gerne beide Steckdosen gleichzeitig schalten können. Ich kann die Aktivität zwar anlegen, aber ich finde keine Möglichkeit, dieser Aktivität die Steckdosen zuzuordnen. Entgegen der Anleitung ist die Aktivität nicht unterstrichen. Weder mit Anmeldung, noch ohne.

  • Hast du den Install ausgeführt?
    Unter welcher USerid läuft der apache?
    Hast du dem entsprechend dem die shc Verzeichnisse und Dateien dem USer zugeordnet?
    Hast du die sudoer config angepasst?
    Bin mir gerade nicht sicher muss der Server (index.php ) nicht mir sudo gestartet werden? Eventuell nicht sogar unter dem apache user?


    Gruß Lunepi

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Install? Ich bin genau nach der Anleitung vorgegangen, einzig mit dem Unterschied, dass ich Lighttpd nicht installiert habe.
    Wie kann ich feststellen unter welcher UserID der Apache läuft?
    Wie ordne ich die User zu? Wie gesagt, ich bin nur der Anleitung gefolgt.
    sudoer config habe ich gemäß Anleitung um die letzte Zeile incl. Leerzeile zum Schluss ergänzt.


    Was ich noch nicht gemacht habe, ist Punkt 7.3 "Autostart einrichten mit rc.local"


    Gebe ich



    Code
    sudo php index.php


    ein, dann kommt zumindest der Hinweis "XML Daten neu eingelesen", aber auch hier kommt die Eingabezeile nicht zurück, wenn ich nicht "strg-z" drücke.
    Den Aktivitäten kann ich dann aber immer noch keine Steckdosen zuordnen. Auch ein anderer Browser und ein löschen des Caches brachten keine Besserung.