Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Komplettanleitung Installation sh.py / smartVISU / eibd auf Ubuntu 13.10 Server

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Handbuch] - √ - Komplettanleitung Installation sh.py / smartVISU / eibd auf Ubuntu 13.10 Server

    Diese Anleitung beschreibt ein komplettes Installieren von Smarthome.py inklusive eibd und SmartVISU.
    Benutzt wurde ein Ubuntu 13.10 64 bit. Die Pfade wurden so gewählt dass sie soweit wie möglich der Raspberry PI Installation entsprechen.
    Ich habe zum testen ein minimales Ubuntu Server in einer ESXi VM aufgespielt, ohne graphiche Oberfläsche.
    Ich habe auch keine Serverdienste bei der install ausgewählt ausser apache webserver.

    Da Deutsch für mich eine Fremdsprache ist bin ich dankbar für jede Korrektur. Auch sonstige Anregungen oder Hinweise auf Fehler sind erwünscht.
    Ich werde diese Anleitung dann nach und nach anpassen. Ich wusste nicht wohin mit dieser Anleitung, deshalb habe ich sie mal hier gepostet.
    Falls jemand einen besseren Ort dafür weiss bin ich Abnehmer.

    *** smarthome.py installieren ***

    Alle nötigen Packete für smarthome.py installieren
    Code:
    sudo apt-get update
    sudo apt-get install openssh-server openntpd python3 python3-dev python3-setuptools git unzip
    sudo easy_install3 pip
    sudo pip install ephem
    Ab hier hat man am besten sich mit
    Code:
    ssh <ip_des_servers>
    auf dem SmartHome Server einzuloggen und die folgenden Befehle per copy & paste einzuspielen.
    Natürlich <ip_des_servers> ersetzen durch die IP Adresse oder den DNS Namen deines Servers.
    Einfach den User benutzen den ihr während der Linux Installation angelegt habt.

    Die folgende Zeile wird für neuere Linux Distributionen benötigt. Solltest du mir einer älteren arbeiten bekommst du wahrscheinlich eine Fehlermeldung.
    Das benötigte Packet ist dann aber mit grösster Wahrscheinlichkeit sowieso bereits vorhanden.
    Code:
    sudo apt-get install php5-json
    Benutzer für smarthome anlegen und ihn in die www-data und sudo Gruppen hinzufügen
    Code:
    sudo adduser smarthome
    sudo usermod -G www-data,sudo -a smarthome
    Verzeichnis für smarthome.py anlegen
    Code:
    cd /usr
    sudo git clone git://github.com/mknx/smarthome.git
    sudo mkdir -p /usr/smarthome/var/run
    sudo chown -R smarthome:smarthome /usr/smarthome
    Zu smarthome Benutzer wechseln und smarthome.py configurieren
    Code:
    su smarthome
    cd /usr/smarthome/etc
    touch logic.conf
    Folgende Kommandos immer von der "cat" Zeile an bis zur Zeile unter "EOL" auswählen und an einem Stück in's ssh pasten.
    Alternativ die Dateien mit "nano" oder sonst einem Editor erstellen.
    Die smarthome.conf ist natürlich anzupassen. Diese lat / lon Werte werden gebraucht um unter anderem Sonnenaufgang / -untergang zu berechnen.
    Der [knx] Teil kann weggelassen werden falls kein KNX / EIB benutzt wird.
    Code:
    cat >smarthome.conf <<EOL
    # smarthome.conf
    lat = 49.66
    lon = 5.91715
    elev = 380
    tz = 'Europe/Luxembourg'
    EOL
    Code:
    cat >plugin.conf <<EOL
    # plugin.conf
    [knx]
       class_name = KNX
       class_path = plugins.knx
       host = 127.0.0.1
       port = 6720
    #   send_time = 600 # update date/time every 600 seconds, default none
    #   time_ga = 1/1/1 # default none
    #   date_ga = 1/1/2 # default none
    [visu]
        class_name = WebSocket
        class_path = plugins.visu
        smartvisu_dir = /var/www/smartVISU
    [cli]
        class_name = CLI
        class_path = plugins.cli
        ip = 0.0.0.0
        update = True
    [sql]
        class_name = SQL
        class_path = plugins.sqlite
    EOL
    Als root Benutzer startup Script anlegen.
    Code:
    cd /etc/init.d
    sudo nano smarthome
    Folgenden Inhalt in das Script pasten
    Code:
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          smarthome
    # Required-Start:    $syslog $network
    # Required-Stop:     $syslog $network
    # Should-Start:      eibd owserver
    # Should-Stop:       eibd owserver
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start SmartHome.py
    ### END INIT INFO
    
    export LANG=en_US.UTF-8
    
    DESC="SmartHome.py"
    NAME=smarthome.py
    SH_ARGS="-q"
    SH_UID='smarthome'
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
    DAEMON=/usr/smarthome/bin/$NAME
    SCRIPTNAME=/etc/init.d/$NAME
    PIDFILE=/usr/smarthome/var/run/smarthome.pid
    
    [ -x "$DAEMON" ] || exit 0
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME
    
    DAEMON_ARGS="$SH_ARGS"
    
    do_start()
    {
        sudo -u $SH_UID $DAEMON $DAEMON_ARGS
        ps ax | grep $DAEMON | grep -v grep | awk '{print $1}' > $PIDFILE
    }
    do_stop()
    {
        sudo -u $SH_UID $DAEMON --stop
        rm -f $PIDFILE
    }
    
    do_reload() {
        sudo -u $SH_UID $DAEMON --reload
        return 0
    }
    
    case "$1" in
        start)
            do_start
            ;;
        stop)
            do_stop
            ;;
        #reload|force-reload)
            #echo "Reloading $DESC" "$NAME"
            #do_reload
            #log_end_msg $?
            #;;
        restart)
            #
            # If the "reload" option is implemented then remove the
            # 'force-reload' alias
            #
            echo "Restarting $DESC" "$NAME"
            do_stop
            sleep 1
            do_start
            ;;
        *)
            echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
            exit 3
            ;;
    esac
    
    exit 0
    Dateirechte richtig setzen und automatisches Starten aktivieren
    Code:
    sudo chmod 755 smarthome
    sudo update-rc.d smarthome defaults
    *** SmartVISU installieren ***

    SmartVISU web Dateien installieren. Beim erstellen dieser Anleitung war SmartVISU 2.7b gerade aktuell.
    Vor dem installieren auf der Projektseite nachschauen und den Pfad gegebenfalls anpassen.

    Code:
    cd /var/www
    sudo rm index.html
    sudo wget http://smartvisu.googlecode.com/files/smartVISU_2.7.zip
    sudo unzip smartVISU_2.7.zip
    sudo rm smartVISU_2.7.zip
    Rechte und Benutzer richtig setzen
    Code:
    sudo chown -R www-data:www-data smartVISU
    sudo chmod -R 775 smartVISU
    Dann smarthome starten mit
    Code:
     /etc/init.d/smarthome start
    Im Log schauen ob keine Fehlermeldung beim starten geschrieben wurde.
    Die einzige die erscheinen darf ist ein Verbindungsproblem mit eibd falls du das aktiviert hast da wir eibd noch nicht installiert haben.
    Code:
    tail /usr/smarthome/var/log/smarthome.log
    Dann versuchen mit einem Browser von einem anderen Rechner aus aus auf SmartVISU zuzugreifen.
    <ip-des-servers> natürlich mit der IP oder dem Name deines SmartVISU Servers ersetzen: http://<ip-des-servers>/smartVISU
    Bei "Checking your configuration" sollte alles mit einem grünen Häckchen versehen sein.
    Jetzt auf den "Config" Knopf drücken. Damit müsstest du in das SmartVISU Interface gelangen, direkt auf die Config Seite.
    Bei I/O Connection "Smarthome.py" auswählen. ACHTUNG: Bei Adresse (URL / IP) die Interface Adresse des Servers eingeben oder den DNS Namen.
    Hier NICHT localhost oder 127.0.0.1 eingeben, denn diese Adresse wird vom Client Browser benutzt (Javascripts). Somit muss die Verbindung nicht nur vom SmartVISU Server funktionieren sondern auch von all deinen Geräten von denen aus du SmartVISU benutzen willst.
    Dann ganz unten auf "Save" drücken.

    Das Anlegen der Items und der Webseiten wird hier nicht beschrieben, das würde dann doch den Rahmen ein bischen sprengen :-)

    *** eibd installieren ***

    Soll kein KNX / EIB benutzt werden kann dieser Abschnitt natürlich weggelassen werden.
    Das Repository für die KNX Packete hinzufügen. Dafür die sources.list Datei editieren
    Code:
    sudo nano /etc/apt/sources.list
    und folgendes am Ende reinpasten und mit ctrl-x speichern
    Code:
    deb http://www.auto.tuwien.ac.at/~mkoegler/debian eib main
    deb-src http://www.auto.tuwien.ac.at/~mkoegler/debian eib main
    eibd installieren
    Code:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3CB5CB58
    sudo apt-get update
    sudo apt-get -y --force-yes install bcusdk
    eibd configurieren
    Code:
    sudo nano /etc/default/eibd
    Folgenden Inhalt reinpasten und mit ctrl-x speichern. Natürlich <ip-des-knx-ip-modules> durch die IP des KNX IP Busadapters tauschen.
    Code:
    EIB_ARGS="--daemon --Server --Tunnelling --Discovery --GroupCache --listen-tcp"
    #EIB_ADDR="0.0.0"
    EIB_IF="ipt:<ip-des-knx-ip-modules>"
    EIB_UID="smarthome"
    Als root Benutzer startup Script anlegen.
    Code:
    cd /etc/init.d
    sudo nano eibd
    Folgenden Inhalt in das Script pasten
    Code:
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          eibd
    # Required-Start:    $syslog $network
    # Required-Stop:     $syslog $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start the eib daemon.
    ### END INIT INFO
    
    DESC="EIB daemon"
    NAME=eibd
    EIB_ARGS="--daemon --Server --Tunnelling --Discovery --GroupCache --listen-tcp"
    EIB_ADDR="0.0.1"
    EIB_IF="tpuarts:/dev/ttyAMA0"
    EIB_UID="smarthome"
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
    DAEMON=/usr/bin/$NAME
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    
    [ -x "$DAEMON" ] || exit 0
    
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME
    
    DAEMON_ARGS="$EIB_ARGS --pid-file=$PIDFILE --eibaddr=$EIB_ADDR $EIB_IF"
    
    do_start()
    {
        touch $PIDFILE
        chown $EIB_UID $PIDFILE
        start-stop-daemon --start --quiet --chuid $EIB_UID --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1
        start-stop-daemon --start --quiet --chuid $EIB_UID --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
    }
    
    do_stop()
    {
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        rm -f $PIDFILE 2> /dev/null
        return "$RETVAL"
    }
    
    do_reload() {
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
    }
    
    case "$1" in
        start)
            do_start
            ;;
        stop)
            do_stop
            ;;
        #reload|force-reload)
            #echo "Reloading $DESC" "$NAME"
            #do_reload
            #log_end_msg $?
            #;;
        restart)
            #
            # If the "reload" option is implemented then remove the
            # 'force-reload' alias
            #
            echo "Restarting $DESC" "$NAME"
            do_stop
            sleep 1
            do_start
            ;;
        *)
            echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
            exit 3
            ;;
    esac
    exit 0
    Dateirechte richtig setzen und automatisches Starten aktivieren
    Code:
    sudo chmod 755 eibd
    sudo update-rc.d eibd defaults
    Daemon starten
    Code:
    sudo /etc/init.d/eibd start
    Jetzt müsste alles installiert sein und alles funktionieren.

    Edit1: Tippfehler
    Edit2: eibd default settings geändert
    Edit3: Tippfehler

    #2
    Danke für die Anleitung, wird eingen Einsteigern sicher helfen. Stell doch das How-To noch im Wiki von Smarthome.py ein, dann haben wir da eine zentrale Anlaufstelle.

    Gesendet von meinem GT-N7000 mit Tapatalk
    Sonos

    Kommentar


      #3
      Zitat von pfischi Beitrag anzeigen
      Danke für die Anleitung, wird eingen Einsteigern sicher helfen. Stell doch das How-To noch im Wiki von Smarthome.py ein, dann haben wir da eine zentrale Anlaufstelle.
      Gude Idee, hab's mal probiert: https://github.com/mknx/smarthome/wi...u-13.10-Server

      Kommentar


        #4
        Danke für die Anleitung.
        Wie genau muss das smarthome.py Startscript für Debian aussehen?
        Das angegebene funktioniert leider nicht unter Debian.

        Danke Gruß Haxley

        Kommentar


          #5
          Was heisst läuft nicht ? Ein bisschen mehr Details und man kann vielleicht helfen... Hier muss ich dann mal Martin's Spruch von der Glaskugel auspacken ;-)


          Gesendet von meinem iPad mit Tapatalk

          Kommentar


            #6
            Nun die init.d Scripte sind Grund verschieden. Es geht schon mal sudo nicht und wird unter Debian auch nicht gebraucht. Nehm ich das weg, geht -u nicht und wenn das weg weitete Variablen nicht.
            Ich poste später mal ein Beispiel wie smarthome.py startet. Aber auch paar Probleme da sind.
            Gruß Haxley

            Kommentar


              #7
              Zitat von Haxley Beitrag anzeigen
              Nun die init.d Scripte sind Grund verschieden. Es geht schon mal sudo nicht und wird unter Debian auch nicht gebraucht. Nehm ich das weg, geht -u nicht und wenn das weg weitete Variablen nicht.
              Ich poste später mal ein Beispiel wie smarthome.py startet. Aber auch paar Probleme da sind.
              Gruß Haxley
              Also jetzt hast du mich völlig durcheinander gebracht. Ubuntu basiert auf Debian, also so grundverschieden kann das nicht sein. Seit wann geht sudo auf Debian nicht ? Mach ich auf meinem Debian Squeeze andauernd ! Wie führst du denn Befehle als root aus ?

              Ich denke was du meinst ist villeicht dass du ein "Upstart" Script brauchst und kein "System V" Script ?

              Upstart Scripts sind die in /etc/init, und System V Scripts liegen in /etc/init.d

              Upstart soll System V ablösen. Momentan müsste eigentlich beides noch laufen, also auch unter Debian sollte das SysV Script laufen wenn du es in /etc/init.d setzt. Da ich Debian 6 nutze kann ich natürlich nicht für Debian 7 sprechen ....

              Kann es obiges sein was du meinst ?

              Kommentar


                #8
                Ein "apt-get install sudo" bzw "aptitude install sudo" bringt sudo auch auf Debian.
                Die Skripte unterscheiden sich auch nur marginal, die Pfade wie /etc/init.d/ sind auch die gleichen.

                Gesendet von meinem GT-N7000 mit Tapatalk
                Sonos

                Kommentar


                  #9
                  Installation auf Debian:
                  es ist richtig sudo muss vorher drauf. Es geht auch ohne (Debian braucht eigentlich kein su oder sudo im Gegensatz zu Ubuntu) aber um das Script zu nutzen muss halt sudo drauf.
                  Also: apt-get install sudo
                  Dann in /etc/init.d/ die Datei mit dem Inhalt erstellen und alles andere wie beschrieben.
                  Ich hab das Start Script mal etwas angepasst. U.a. stimmten für Debian die Pfade nicht, da fehlte local (je nachdem nach welcher Anleitung man das nun installiert hat). Auch lasse ich die PID in das Standartverzeichnis schreiben denn RUN gibts eigentlich nicht in smarthome.
                  Na egal hier das Start Script für Debian 7
                  Code:
                  #!/bin/sh
                  
                  NAME=smarthome.py
                  SH_ARGS="-q"
                  SH_UID='smarthome'
                  
                  PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
                  DAEMON=/usr/local/smarthome/bin/$NAME
                  PIDFILE=/var/run/smarthome.pid
                  
                  [ -x "$DAEMON" ] || exit 0
                  [ -r /etc/default/$NAME ] && . /etc/default/$NAME
                  
                  DAEMON_ARGS="$SH_ARGS"
                  
                  do_start()
                  {
                      sudo -u $SH_UID $DAEMON $DAEMON_ARGS
                      ps ax | grep $DAEMON | grep -v grep | awk '{print $1}' > $PIDFILE
                  }
                  do_stop()
                  {
                      sudo -u $SH_UID $DAEMON --stop
                      rm -f $PIDFILE
                  }
                  
                  do_reload() {
                      sudo -u $SH_UID $DAEMON --reload
                      return 0
                  }
                  
                  case "$1" in
                      start)
                          do_start
                          ;;
                      stop)
                          do_stop
                          ;;
                      restart)
                          echo "Restarting" "$NAME"
                          do_stop
                          sleep 3
                          do_start
                          ;;
                      *)
                          echo "Usage: $NAME {start|stop|restart}" >&2
                          exit 3
                          ;;
                  esac
                  
                  exit 0
                  Ein Problem hab ich aber noch mit dem Starten von Smarthome.py.
                  Ich nutze den Autogenerator, der bei jedem Start die Html Dateien anlegt (macht sich super bei öfteren Änderungen).
                  Problem ist, wenn ich smarthome.py über die init.d starte, dann werden die Seiten nicht erstellt. Auch bei einem /etc/init.d/smarthome restart nicht.

                  Stoppe ich und starte smarthome.py z.B. manuell via /usr/local/smarthome/bin/smarthome.py --start werden die Dateien angelegt.

                  Warum ist das so?

                  Danke Gruß Haxley

                  Kommentar


                    #10
                    Zitat von Haxley Beitrag anzeigen
                    Installation auf Debian:
                    es ist richtig sudo muss vorher drauf. Es geht auch ohne (Debian braucht eigentlich kein su oder sudo im Gegensatz zu Ubuntu) aber um das Script zu nutzen muss halt sudo drauf.
                    Das hat nichts mit Debian oder Ubuntu zu tun. Nochmals: Ubuntu = Debian + xxx (Ubuntu and Debian | About Ubuntu | Ubuntu)
                    Es ist eine Wahl ob man start-stop-daemon nutzt, was eigentlich der richtige Weg wäre, oder manuell den Nutzer mit sudo wechselt im Script. Wie führst du denn unter Debian von der Shell aus ein Kommando als root aus ohne sudo ?

                    Zitat von Haxley Beitrag anzeigen
                    U.a. stimmten für Debian die Pfade nicht, da fehlte local (je nachdem nach welcher Anleitung man das nun installiert hat).
                    Das erste ist falsch, das zweite ist richtig. Hat wieder nichts mit Debian und Ubuntu zu tun, sondern damit dass ich /usr/smarthome benutzt habe und in der offiziellen Anleitung (glaube ich) /usr/local/smarthome steht. Letzteres ist sauberer. Aber wie ich am Anfang der Anleitung extra beschrieben habe probiere ich die gleichen Pfade zu benutzen wie im smarthome.pi, also der rPI Version.

                    Das mit den Pfaden müsste man mal mit mknx, Apollo u.s.w. durchdiskutieren und vielleicht mal ein Standard einführen.... Ein weiteres Beispiel ist dass im rPI die Webseite unter /var/www/smartvisu liegt, der offizielle Pfad im Packet von smartVISU aber /var/www/smartVISU ist ....

                    Solche Kleinigkeiten führen zu Verwirrung von Benutzern die beides nutzen, und dazu dass Scripte und Anleitungen auf dem einen System laufen und auf dem anderen nicht.

                    Zitat von Haxley Beitrag anzeigen
                    Auch lasse ich die PID in das Standartverzeichnis schreiben denn RUN gibts eigentlich nicht in smarthome.
                    Stimmt. Ich habe das so gemacht damit man die Watchdog Funktion aus diesem Thread nutzen kann, weil ich das selbst tue :-) : https://knx-user-forum.de/smarthome-...-py-monit.html
                    Eigentlich braucht man keine PID Datei, und im rPI Script ist auch keine drin.

                    Zitat von Haxley Beitrag anzeigen
                    Problem ist, wenn ich smarthome.py über die init.d starte, dann werden die Seiten nicht erstellt. Auch bei einem /etc/init.d/smarthome restart nicht.

                    Stoppe ich und starte smarthome.py z.B. manuell via /usr/local/smarthome/bin/smarthome.py --start werden die Dateien angelegt.

                    Warum ist das so?
                    Wie du es löst kann ich dir nicht so einfach sagen da ich deine Installation nicht genau kenne, das Problem ist aber mit grosser Sicherheit ein Rechte Problem: Wenn du von der Kommandozeile aus startest läuft der Prozess unter dem Benutzer mit dem du angemeldet bist. Ich hoffe ja mal das ist nicht root. Wenn du über das init Script startest dann läuft es nach meiner Anleitung unter dem Benutzer "smarthome". Wie es bei dir auf dem System ist kann ich dir nicht sagen.

                    Man muss wissen dass die Anleitung dazu gedacht ist von 0 - 100 zu installieren. Wenn man sich genau daran hält läuft es nachher auch. Hab ich heut noch per PM bestätigt bekommen. Wenn man ein bestehendes halb installiertes, dazu noch anderes System benutzt dann ist es m.E. normal dass verschiedene Sachen nicht passen.

                    Aber wir helfen ja hier gerne :-)

                    Überprüf das mit den Rechten mal für das Verzeichnis /var/www/smartvisu/pages/smarthome und schau mal unter welchem Benutzer smarthome.py läufft in dem Moment wo du Probleme hast, also mit dem Script gestartet, mit dem Kommando:
                    Code:
                    ps aux|grep smarthome
                    Vill Glück !

                    Serge

                    Kommentar


                      #11
                      Erstmal Danke das Du Dir die Arbeit so macht. Ich selber schreibe auch an einer Docu aber halt eine allgemeine. wenn die fertig ist baue ich die bei Grithub mit ein.
                      Das hat nichts mit Debian oder Ubuntu zu tun. Nochmals: Ubuntu = Debian + xxx (Ubuntu and Debian | About Ubuntu | Ubuntu)
                      Na doch. Unter Debian arbeitet man bekanntlich als root. Su oder SDO wird dort normalerweise nicht verwendet.

                      ... sondern damit dass ich /usr/smarthome benutzt habe und in der offiziellen Anleitung (glaube ich) /usr/local/smarthome steht. Letzteres ist sauberer. Aber wie ich am Anfang der Anleitung extra beschrieben habe probiere ich die gleichen Pfade zu benutzen wie im smarthome.pi, also der rPI Version.
                      Nun ich hab es ja nach der offiziellen Anleitung gemacht.
                      Ich denke das es nicht so gut ist sich unbedingt an dem PI so zu orientieren. Es gibt eine Menge anderer Geräte wo smarthome drauf läuft und der PI ist nur einer davon. In dem Fall sollte einer allgemeinen Installation der Vorzug gegeben werden.

                      Ich hab auch keine Ahnung wer auf die Idee gekommen ist Ubuntu einzusetzen. Ich selbst hab einige Webserver am Start und hab noch nie gehört das da jemand Ubuntu verwendet. Gerade wenn die Homeserver am Netz hängen ist Ubuntu nicht gerade die beste Wahl. (Wird Dir jeder Admin sagen.)
                      Andere Projekte hier werden alle für Debian beschrieben und für Ubuntu und ggf. Suse wird eine kurze Anpassung gegeben.

                      Na egal. Ich möchte auch nicht das Du das jetzt falsch verstehst. Es ist super das Du Dir die Arbeit gemacht hast und es gibt leider viel zu wenige von Deiner Art. Aber ich glaube es war nicht im Sinne des Entwicklers seine Visu nur auf dem Raspberry PI laufen zu lassen, sondern halt eben auch.
                      Wenn Du das bei Deiner Arbeit mit im Hinterkopf behällst hilfst Du mit einem Schlag noch viel mehr Leuten

                      Kann es ein das es für den PI nur ein Ubuntu Image gegeben hat? Das würde einiges erklären. Aber wie gesagt smarthome.py ist nicht exklusiv für den Raspberry PI gemacht. Das py am Ende des Namens steht nicht für Raspberry PI sondern für Python. Glaube das verkennen einige.

                      Stimmt. Ich habe das so gemacht damit man die Watchdog Funktion aus diesem Thread nutzen kann
                      Das ist völlig OK aber einige die sich da nicht so damit auskennen werden dann den nicht existierenden Ordner suchen und schon gehen die Probleme wieder los.


                      Das mit den Pfaden müsste man mal mit mknx, Apollo u.s.w. durchdiskutieren
                      Nicht zwingend, denn die Pfade hat ja die Anleitung vorgegeben. Wie gesagt, homesmart.py und homevisu ist nicht nur nur für den Raspberry PI (Ubuntu) gemacht.
                      Ich verwende übrigens auch den Apache... geht perfekt.


                      (So musste mal raus, bitte nicht schlagen... )
                      Nun zur Lösung für Debian:
                      Ich hatte übersehen das Du das unter dem Benutzer smarthome starten willst. Wer den nicht hat, hat ein Problem.
                      Lösung:entweder SH_UID='root'
                      Code:
                      #!/bin/sh
                      NAME=smarthome.py
                      SH_UID='root'
                      PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
                      DAEMON=/usr/local/smarthome/bin/$NAME
                      PIDFILE=/var/run/smarthome.pid
                      
                      [ -x "$DAEMON" ] || exit 0
                      [ -r /etc/default/$NAME ] && . /etc/default/$NAME
                      
                      do_start()
                      {
                          sudo -u $SH_UID $DAEMON -q
                          ps ax | grep $DAEMON | grep -v grep | awk '{print $1}' > $PIDFILE
                      }
                      do_stop()
                      {
                          sudo -u $SH_UID $DAEMON --stop
                          rm -f $PIDFILE
                      }
                      
                      do_reload() {
                          sudo -u $SH_UID $DAEMON --reload
                          return 0
                      }
                      
                      case "$1" in
                          start)
                              do_start
                              ;;
                          stop)
                              do_stop
                              ;;
                          restart)
                              echo "Restarting" "$NAME"
                              do_stop
                              sleep 3
                              do_start
                              ;;
                          *)
                              echo "Usage: $NAME {start|stop|restart}" >&2
                              exit 3
                              ;;
                      esac
                      
                      exit 0
                      oder alles ohne Sudo, aber das teste ich noch.

                      Gruß Haxley

                      Kommentar


                        #12
                        Das mit dem Debian und root diskutieren wir zum Stammtisch nochmal


                        Ansonsten Serge, gute Anleitung. Da kann ich meine Debiananleitung ruhigen Gewissens aus dem Wiki werfen.
                        Derzeit zwischen Kistenauspacken und Garten anlegen.
                        Baublog im Profil.

                        Kommentar


                          #13
                          Zitat von Haxley Beitrag anzeigen
                          Unter Debian arbeitet man bekanntlich als root. Su oder SDO wird dort normalerweise nicht verwendet.
                          WTF ??? Das ist mir auf jeden Fall nicht bekannt. Da habe ich die letzten 20 Jahre auf meinen Debian Servern alles anormal gemacht :-) ...

                          Zitat von Haxley Beitrag anzeigen
                          In dem Fall sollte einer allgemeinen Installation der Vorzug gegeben werden.
                          Da stimme ich dir zu. Ich glaube ich werd es auch ändern auf /usr/local und /var/www/smartVISU. Ich würde es aber trotzdem immer noch gut finden wenn dann das rPI Image angepasst würde. Standards sind immer gut. Aber das liegt ausserhalb meines Einflussbereiches :-)

                          Zitat von Haxley Beitrag anzeigen
                          Ich hab auch keine Ahnung wer auf die Idee gekommen ist Ubuntu einzusetzen. Ich selbst hab einige Webserver am Start und hab noch nie gehört das da jemand Ubuntu verwendet. Gerade wenn die Homeserver am Netz hängen ist Ubuntu nicht gerade die beste Wahl. (Wird Dir jeder Admin sagen.)
                          OMG .... ich bin ein schlechter Admin :-( Meine 15 Server nutzen Ubuntu LTS ... Aber ich glaube diese Diskussion sprengt den Rahmen hier und gehört auch nicht hierher. Jeder das mit dem er Freude hat. Ich denken wir sollten es hierbei belassen mit der Debian / Ubuntu / Benutzer arbeitet als root Diskussion ...

                          Zitat von Haxley Beitrag anzeigen
                          Kann es ein das es für den PI nur ein Ubuntu Image gegeben hat?
                          Nö. rPI läuft auf Raspbian GNU/Linux 7, also im Prinzip ein Debian Wheezy Derivat. (ja ich weiss, Ubuntu ist auch eins, aber das hier basiert nicht auf Ubuntu).
                          Zitat von Haxley Beitrag anzeigen
                          Aber wie gesagt smarthome.py ist nicht exklusiv für den Raspberry PI gemacht. Das py am Ende des Namens steht nicht für Raspberry PI sondern für Python. Glaube das verkennen einige.
                          Hat ja auch keiner behauptet. Aber es gibt sehr wohl auch ein smarthome.pi wo PI (nicht PY) für rPI steht :-D : https://github.com/mknx/smarthome/wiki/SmartHome.pi Damit ist das rPI ready-to-use Image gemeint.

                          Zitat von Haxley Beitrag anzeigen
                          Das ist völlig OK aber einige die sich da nicht so damit auskennen werden dann den nicht existierenden Ordner suchen und schon gehen die Probleme wieder los.
                          Die sich nicht auskennen nehmen normalerweise eine Anleitung, und in der gibt es folgende Zeile:
                          Code:
                          sudo mkdir -p /usr/smarthome/var/run
                          :-)

                          Zitat von Haxley Beitrag anzeigen
                          Lösung:entweder SH_UID='root'
                          oder alles ohne Sudo, aber das teste ich noch.
                          Beides würde ich nicht empfehlen. Ich würde immer unter einem Benutzer ausführen. Aber gut, jeder wie er will oder denkt dass es richtig ist. Es lebe die Freiheit :-)

                          Freut mich dass es für dich läuft. Ich werde die Anleitung im Wiki auf deine Anregung hin auf die "offiziellen" Pfade umbauen, und auf Anfrage die ich per PM erhalten habe noch owhttpd und owserver hinzufügen.

                          Viel Spass,

                          Serge

                          Kommentar


                            #14
                            Zitat von greentux Beitrag anzeigen
                            Das mit dem Debian und root diskutieren wir zum Stammtisch nochmal
                            Wäre ich gerne dabei, wenns nicht 400km wären ...

                            Mal schauen ... Eines Tages :-)

                            Serge

                            Kommentar


                              #15
                              Hi!

                              Danke für die Anleitung, das ganze schon mal selber installiert wollte aber deine Anleitung anschauen.

                              "Ich habe auch keine Serverdienste bei der install ausgewählt ausser apache webserver"

                              Meinst du hier LAMP Server? Rein nur Apache gibt es nicht? Oder meinst du direkt in Aptitude?

                              gruß

                              Kommentar

                              Lädt...
                              X