Posts by Ruco

    Hallo ihr alle.

    Ich müsste das hier nochmal aufwärmen. An meinem DatenPi hat es damals mit Triggerhappy und der Maus geklappt.

    Habe jetzt im Neuen System wieder beide Dateien erstellt, alles eingetragen und ist auch gespeichert.

    Dann, wie unten zu sehen, den Nutzer "pi" bei den DAEMON_OPTS eingetragen.

    ( sudo nano /etc/default/triggerhappy)

    Neustart gemacht und der Prozess "thd" läuft auch. Allerdings noch immer als "nobody" und die Tastenkombi mit der Maus geht nicht.

    Wie kann ich den Fehler finden bzw den Nutzer richtig eintragen/ändern?

    Oder haben sich die Befehle in der *.conf geändert? Die Dateien in den Pfade gibts jedenfalls noch.

    SystemOS ist übrigens Bullseye lite.


    Vielen Dank und viele Grüße :)

    Wie Du an den Kommandos siehst, müssen sie mit "sudo" aufgerufen werden. Der Benutzer "pi" ist bereits in /etc/sudoers entsprechend eingetragen, daher ist es am sinnvollsten, triggerhappy mit den Rechten von pi zu starten:

    /etc/default/triggerhappy:

    Code
    DAEMON_OPTS="--user pi"

    htop:

    Daemon_opts:

    Hallo meigrafd,

    Ich würde das eher nicht machen,...

    Der Grund:

    Um für Korrekturen einfacher und schneller den richtigen Eintrag in der Tabelle zu finden.

    Das ist mit "timestamp" leider recht mühsam.

    Hin und wieder kommt es bei mir zu "falschen" Einträgen. Warum auch immer.

    Dann stehen keine plausiblen Werte in der Datenbank.

    Um diese dann von Hand in der DB zu ändern ist es mit Timstamp recht mühsam gewesen.

    ...Datum umrechnen in Timstamp.

    ...Timestamp in der DB suchen...

    So geht es jetzt viel einfacher! :)

    Timestamp ist nach wie vor vorhanden und wird auch verarbeitet.

    Datum und Zeit sind nur zusätzlich vorhanden.

    Das sind jetzt halt Erfahrungswerte aus der Praxis.

    Das wurde beim Erstellen des Skriptes nicht bedacht. Leider kann ich das nicht selbst ändern.

    Sind übrigens die Highcharts von dir damals :cool:

    Wäre natürlich super bombastisch wenn man das Skript daraufhin erweitern könnte :angel:

    Viele Grüße

    Hallo,


    gibt es die folgende Funktion in PhpMyAdmin?

    Einen vorhandenen TIMESTAMP -Eintrag in ein neues leeres Feld, als lesbares Datum, eintragen.

    Siehe Beispiel ganz unten.

    Lässt sich das mittels PhpMyAdmin erledigen, oder braucht es dazu ein externes Skript?

    Suchte mir schon einen Wolf, finde dazu aber keinen passenden Sql Befehl.


    Aktueller Stand:

    Ich habe eine Tabelle (data) in einer Datenbank mit 5 Spalten vorliegen.

    Quote

    Tabelle: data

    id - location - timestamp - temp - hum

    Mittels ALTER TABLE data ADD zeit DATETIME AFTER hum; habe ich die neue Spalte "zeit" eingefügt.

    Quote

    id - location - timestamp - temp - hum - zeit

    Nun soll in der Spalte "zeit" der umgerechnete Wert aus "timestamp" eingetragen werden.

    Der Grund:

    Um für Korrekturen einfacher und schneller den richtigen Eintrag in der Tabelle zu finden.

    Das ist mit "timestamp" leider recht mühsam.

    Beispiel:

    Quote

    id ....... location ......... timestamp ....... temp ....... hum ........ zeit

    1........ irgendwo ........ 1453836607 ....... 20 ............ 60 ........ 26.01.2016 20:30:07


    Hat hierzu jemand eine brauchbare Idee, Tipps, Vorschläge?

    Ich hoffe es gibt hier schon soweit fertige Beispiele im Netzt welche nur noch angepasst werden müssten.

    Am schönsten wäre es natürlich das per PhpMyAdmin & einem SQL-Befehl zu erledigen, da ich kein Programmierer bin und kaum Ahnung habe von dem allem.


    Vorab schonmal herzlichen Dank! :)

    Entschuldige erstmal für die super späte Rückmeldung!

    Privat und Arbeit wars wiedermal sehr angespannt! :-/ . Und Grippe war auch dazwischen :X

    Ein Error-Log hat es nicht ausgegeben.

    Auf dem Webserver ist auch kein Error-Log eingetragen.

    Evtl mach ich da was falsch.

    Ich hatte die Tage mit dem Support gesprochen. Er vermutete zu wenig Speiche (48MB).

    Also wurde testweise auf 256MB erhöht. Keine Änderung!

    Nun wurde in der ini-Datei die "max_execution_time" von 5 auf 30 erhöht. Auch keine Änderung!

    Die Datenbank wird doch ohnehin vollständig eingelesen (etwa11MB) um die gewünschte Zeit aus zu geben, richtig?

    Dann spielt der Speicher und die Zeit doch gar keine Rolle, oder??


    Viele Grüße!

    Ein Stück weiter bin ich gekommen. Nur noch zu keiner Lösung.

    Es liegt wohl an der Größe der Datenbank.

    Ich habe zum Testen eine neue erstellt und diese manuell gefüllt. Mit weniger Daten über 12 Monate.

    Da klappt die Anzeige problemlos auf dem Webserver.

    Es scheint also das hier das Problem zu suchen ist.

    Gibt es denn irgendwo eine Zeitbegrenzung?

    Evtl. wird dann wohl ein eigenes Thema besser sein?

    Aus verschiedenen Gründen mußte ich HighCharts neu installieren.

    1. habe ich mysql-server mysql-client php5-mysql, dann

    2. Apache2, und

    3. das Script von meigrafd installiert

    System RaspiB1 mit Jessie,

    Hi,

    Die Frage ist bei mir leider unter gegangen.

    Soweit ich mich noch erinnere hat sich mit Jessie einiges geändert. Das alles wurde noch auf und für Wheezy erstellt.

    Ich denke da gibt es sogar dazu einen Kommentar in diesem Thema. Bin mir nicht sicher.

    Ich hoffe das hilft dir schon mal weiter.

    Weiterhin hatte ich mir mal eine kleine *liesmich* als Hilfe geschrieben.

    Ich füge die mal hier mit an.

    Display Spoiler

    //Einrichten lighttpd , php, mysql , phpmyadmin ,

    sudo apt-get update

    sudo apt-get install lighttpd

    sudo /etc/init.d/lighttpd restart

    sudo apt-get install php5-cgi

    sudo apt-get install mysql-server

    sudo nano /var/www/info.php #Server und PHP testen bzw anzeigen

    <?php

    phpinfo();

    ?>

    sudo lighty-enable-mod fastcgi

    sudo lighty-enable-mod fastcgi-php

    sudo /etc/init.d/lighttpd restart

    sudo nano /etc/lighttpd/lighttpd.conf

    server.dir-listing = "enable"

    dir-listing.external-css = "/dir.css"

    dir-listing.hide-dotfiles = "enable"

    dir-listing.exclude = ( "dir.css" )

    dir-listing.encoding = "utf-8"

    sudo apt-get install phpmyadmin

    sudo /etc/init.d/lighttpd restart

    sudo cp /etc/phpmyadmin/lighttpd.conf /etc/lighttpd/phpmyadmin.conf

    sudo /etc/init.d/lighttpd restart

    sudo nano /etc/modules #Module für den Systemstart laden. Siehe auch weiter unten.

    w1-gpio pullup=1

    w1-therm

    sudo apt-get install htop # Prozesse besser anzeigen und auch filtern.

    sudo apt-get install python-mysqldb #für Python

    Ich habe weiter keine Extraschritte durchgeführt.

    Keine Config wegen fast-cgi oder php bearbeitet bzw erweitert.

    ################## Ausschalten und Neustart per Mausklick (USB) #########################

    sudo nano /etc/triggerhappy/triggers.d/halt.conf #Datei erstellen und mit folgendem Inhalt

    BTN_LEFT+BTN_MIDDLE 1 /usr/bin/sudo /sbin/halt

    sudo nano /etc/triggerhappy/triggers.d/reboot.conf

    BTN_RIGHT+BTN_MIDDLE 1 /usr/bin/sudo /sbin/reboot

    Es muß die zuletzt angegebene Taste zuerst gedrückt werden.

    Also erst mittlere Maus, dann rechte/linke Taste.

    Der Benutzer "pi" ist bereits in /etc/sudoers entsprechend eingetragen.

    Daher ist es am sinnvollsten, triggerhappy mit den Rechten von pi zu starten:

    sudo nano /etc/default/triggerhappy

    DAEMON_OPTS="--user pi"

    Es gibt Raspian-Versionen, die haben modifizierte Start-Skripte,

    und in einem dieser Skripte wird der Start von Triggerhappy annulliert.

    Oder er wird nach kurzer Zeit wieder gestoppt.

    Achte also darauf, ob "/usr/sbin/thd" einige Minuten nach dem Start noch in der Prozesstabelle auftaucht.

    Hierfür ist htop sehr gut geeignet!


    ############## für 1-wire vorbereiten #############

    //http://www.kompf.de/weather/pionewiremini.html

    1-wire Softwaretreiber

    Die für die Ansteuerung des 1-wire Temperatursensors erforderlichen Kernelmodule

    sind Bestandteil der Linux-Distribution Raspbian "wheezy".

    Man muss sie allerdings explizit laden:

    Neuere Versionen des Raspbian Betriebssystems ab Kernel 3.18 (Februar 2015)

    erfordern zusätzlich die Aktivierung des Device Tree Overlay für 1-wire.

    Dazu editiert man (per sudo nano oder einem anderen Editor Ihrer Wahl) die Datei

    /boot/config.txt und fügt folgende Zeile hinzu:

    # Aktivierung des Device Tree Overlay fuer 1-Wire

    dtoverlay=w1-gpio,gpiopin=4,pullup=on

    Nach dem erforderlichen Reboot gelingt nun auch das Laden der erforderlichen Module per Kommandozeile:

    sudo modprobe w1-gpio pullup=1

    sudo modprobe w1-therm

    Wichtig ist der Parameter pullup=1, der dem Modul mitteilt, dass eine parasitäre Speisung über einen Pullup-Widerstand vorhanden ist.

    Die Module legen im Verzeichnis /sys/bus/w1/devices jeweils ein Unterverzeichnis für jeden gefundenen Sensor an.

    Der Name des Verzeichnisses setzt sich aus dem Family-Code des Sensors und seiner eindeutigen Identifikationsnummer zusammen.

    In jedem Unterverzeichnis gibt es die Datei w1_slave, die Sensorstatus und gemessenen Temperaturwert enthält.

    cd /sys/bus/w1/devices

    cd 28-000801b5*

    cat w1_slave

    0f 00 4b 46 ff ff 06 10 0c : crc=0c YES

    0f 00 4b 46 ff ff 06 10 0c t=2375

    Die Datei besteht aus zwei Zeilen, die jeweils den hexadezimalen Registerdump des Sensor-ICs enthalten. Am Ende der ersten Zeile steht die Prüfsumme (CRC) und die Information, ob es sich um einen gültigen Messwert handelt (YES). Die zweite Zeile endet mit dem Temperaturmesswert in tausendstel Grad Celsius. Im Beispiel beträgt die Temperatur also 7,375 °C. Die Genauigkeit auf drei Stellen hinter dem Komma ist natürlich nur scheinbar; dem Datenblatt des DS18S20 entnimmt man zum Beispiel, dass die Messgenauigkeit ±0,5 °C beträgt. Die tatsächliche Temperatur liegt also irgendwo zwischen 6,8 und 7,9 °C.

    ###################### Module beim Systemstart laden #######################

    Wenn alles soweit funktioniert, dann sollte man die beiden erforderlichen Module in die Datei

    /etc/modules eintragen, damit sie der Kernel in Zukunft automatisch beim Systemstart lädt:

    # /etc/modules

    w1-gpio pullup=1

    w1-therm

    ###################### crontab ######################

    crontab -e #Eintragen von Cronjobs

    */40 * * * * ping -c 1 192.168.22.1

    führt alle 40 Minuten 1 Ping an die IP aus

    Zum Beispiel um den Wlan-Adapter von edimax nicht in den Energiesparmodus zu lassen.

    */40 * * * * ping -c 1 192.168.22.1

    */15 * * * * /home/pi/temp.py > /home/pi/templog.log

    */15 * * * * sudo /usr/local/sbin/dht.py > /home/pi/humlog.log

    BZW

    */40 * * * * ping -c 1 192.168.22.1

    0,15,30,45 * * * * /home/pi/temp.py > /home/pi/templog.log

    0,15,30,45 * * * * sudo /usr/local/sbin/dht.py > /home/pi/humlog.log

    58,13,28,43 * * * * sudo /home/pi/lol_dht22/loldht 6 > /home/pi/humlog-loldht-6.log

    57,12,27,42 * * * * sudo /home/pi/lol_dht22/loldht 3 > /home/pi/humlog-loldht-3.log


    ##################### WLan-Adapter Edimax ####################

    sudo nano /etc/network/interfaces #sollte etwa so aussehen. Lan ist hier fest, wlan dhcp

    auto lo

    iface lo inet loopback

    auto eth0

    allow-hotplug eth0

    iface eth0 inet manual

    auto wlan0

    allow-hotplug wlan0

    iface wlan0 inet dhcp

    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

    iface default inet dhcp


    Netzwerk neu starten mit:

    /etc/init.d/networking restart

    WPA_GUI mit root-Rechten öffnen. > Menü > Run > gksu wpa_gui

    Dann den Adapter auswählen, scannen und Netzwerk wählen. Passwort eingeben und hinzufügen.


    ###################### #####################

    Hallo Meigrafd und Gemeinde,

    es hat mit dem Projekt ja soweit alles geklappt. Ich konnte alles verbauen und messen.

    Die Tage wird es sogar wieder an den nächsten Platz versetzt.

    Ich schreibe weil ich 2 Fragen zu der Ausgabe habe. Ich hoffe sehr das mir da jemand helfen kann.

    1.

    Die Ausgabe der Temperatur-Chart über 4 Wochen hinaus klappt nicht auf meinem Webserver. Auf dem Raspberry wird es nach einer Denkpause angezeigt. (Die Datenbank bzw der Datensatz ist 10MB groß)


    Die Feuchtemessung hingegen wird bis 6Montate korrekt ausgegeben (12 wiederum nicht).

    Könnte das am Webserver liegen und der Rechenzeit oder am Skript, oder beides?

    Den Quell-Code habe ich schon verglichen, mir ist kein Unterschied aufgefallen. Das ein oder andere Fragezeichen hab ich allerdings schon.

    Im Grunde sollte ja nichts über 4 Monate erfasst werden. Jetzt ist aber doch mal 1 Jahr (354 Tage) draus geworden. :angel:

    Bei den anderen beiden Datensätzen ist mir das nicht aufgefallen. Die haben nur 47 & 82 Tage.


    2.

    Wäre es sehr kompliziert die Charts so anzeigen zu lassen?

    .....Demo: https://www.highcharts.com/stock/demo/compare

    Die Zeitleiste unten ist sehr komfortabel!


    Ich hoffe es findet sich jemand der hier unterstützen kann.

    Hm, ich wollte ja eigentlich "nur" die ganze Ausgabe, welche auch in der Konsole erschein wenn ich es dort mache, in eine log/txt-Datei schreiben.
    Ala : dump.sql ________ 100% 546KB 545.6KB/s 00:00

    Die Umleitung mit 2> klappt nicht. (Wird nur eine leere Datei erstellt)

    Auf ein Skript und die Statuscodes würd ich gern verzichten. Und wenn dann soll schon dann die ganze Fehlermeldung als Text kommen :) .

    Hi.

    Ich schiebe per Cronjob mit scp eine Datei von meinem Raspi auf meinen Webserver.

    Code
    scp dump.sql name@adresse:html/pfad

    Allerdings *scheint* das nicht immer zu klappen.
    Aus dem Grund wollte ich ein log erstellen und die Ausgabe der Konsole in eine Datei schreiben. (&> scp.log zum Beispiel)
    Da das nicht klappte (Datei wird erstellt, bleibt aber leer) hab ich im Netz gesucht.
    Fragen zu dem Thema habe ich gefunden, nur keine gelösten Antworten darauf.

    Gibt es dazu eine Lösung oder geht das für SCP so nicht ? :helpnew: