Posts by ThomasH

    Hallo ich brauche mal Eure Hilfe für eine Veranstaltung, die gestern angefangen hat.


    Problem:

    Chromium stürzt irgendwann ab - weißer Bildschirm:

    Aw, Snap!

    Something went wromng while displaying this webpage.

    Teilweise friert der Pi ein, dann kann er auch nicht mehr per ssh neu gestartet werden.


    Was wird gemacht:

    Wir habe ein Anzeigesystem für Startlisten und Bildern in der Pause.

    3 Fernseher (37,55,65Zoll), davon 2 FullHD, einer 4k

    2 x Pi4 mit 1GB, 1 Pi4 mit 4GB

    Aktuelles Buster Image (full), vorgestern noch mit apt-get update / upgrade aktualisiert

    Der link zur Web-Seite: https://livescreen.freestyledm2019.de/


    Die raspberries sind alle gleich aufgesetzt.

    Egal welchen Pi ich an den 4k Fernseher verwende kommt das o.g. genannte Problem.

    Nach nicht definierter Zeit. Es wurden gestern keine Videos angezeigt (das soll heute passieren).

    Die Full-HD Fernseher liefen 12 Stunden ohne Probleme.


    Ich habe bereits die Auflösung heruntergesetzt:


    Code
    # HDMI auch ohne Monitor in Betrieb nehmen (optional)
    hdmi_force_hotplug=1
    # DMT-Betriebsmodus aktivieren
    hdmi_group=2
    
    # Auflösung: 1920x1080 / 60 Hz (1080p)
    hdmi_mode=82


    Hat jemand eine Idee, was ich noch versuchen könnte ?

    Da das ganze im live-Betrieb bis Sonntag Abend ist, kann ich nur sporadisch die Antworten/Fragen hier einsehen.

    Ich bin aber für jede Idee dankbar.


    VG

    Thomas

    In der Datei /etc/inittab steht

    Code
    1:2345:respawn:/bin/login -f kiosk tty1 tty1 /dev/tty1 2&1


    Die Umleitung von stderr am Ende der Zeile ist falsch geschrieben:
    "2&1", dort sollte aber "2>&1" stehen:

    Code
    1:2345:respawn:/bin/login -f kiosk tty1 tty1 /dev/tty1 2>&1


    Sorry, das habe ich verbockt - die Anleitung im 1. thread habe ich geändert.

    Was ist auf dem Bildschirm direkt nach dem Boot-Vorgang zu sehen ?
    Die angehängten Bilder zeigen die Datei /etc/default/nodm im Editor nano.
    Bitte schicke mir per PM die folgenden Dateien
    /home/kiosk/.xsession
    /etc/inittab
    /etc/X11/default-display-manager


    Wenn man auf der Konsole den browser manuell aufruft, sollte die Uhr sichtbar sein

    Code
    /usr/local/bin/browser  file:///var/www/clock.html

    Alt:
    #1:2345:respawn:/sbin/getty --noclear 38400 tty1 # RPICFG_TO_ENABLE
    1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1 #


    Neu:
    #1:2345:respawn:/sbin/getty --noclear 38400 tty1 # RPICFG_TO_ENABLE
    #1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1 # RPICFG_TO_DISABLE
    1:2345:respawn:/bin/login -f kiosk tty1 tty1 /dev/tty1 2&1


    Alle Zeilen mit # am Anfang werden ignoriert.
    Nur die virtuelle Konsole / der Login mit tty1 ist relevant.

    Step 9) Auto login - hier wird der Benutzer "kiosk" automatisch nach dem botten eingeloggt - ohne Password-Abfrage


    In der Datei /etc/inittab werden die Prozesse definiert, welche beim bootup gestartet werden. Der Aufbau einer Zeile ist: Name:Runlevel:Aktion:Befehl
    Beispiel
    1:2345:respawn:/sbin/getty 115200 tty1
    Name = 1
    Runlevel = 2345 - d.h. diese Zeile wird im runlevel 2,3,4 und 5 ausgeführt
    Aktion = respawn - d.h. Prozess wird neu gestartet, wenn er beendet wurde
    Befehl = /sbin/getty - vituelle Konsole mit login prompt


    Man möchte mit nodm kein getty/login prompt. Also wird dies durch /bin/login tty1 ersetzt.


    In unserem Fall sucht man entweder die Zeile mit getty und tty1
    z.B. 1:2345:respawn:/sbin/getty 115200 tty1
    oder /bin/login und tty1
    z.B. 1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1 # RPICFG_TO_DISABLE


    Die entsprechende Zeile einfach mit dem # vorne auskommentieren.
    Neue Zeile:
    1:2345:respawn:/bin/login -f kiosk tty1 tty1 /dev/tty1 2&1


    Nur nicht aufgeben - wir kriegen das hin ;)

    Der Benutzer kiosk ist besonders abgesichert und hat keinerlei besondere Rechte.
    Er darf noch nicht einmal das Kommando sudo benutzen.
    "kiosk is not in the sudoers file"


    Man muss sich entweder direkt als root einloggen oder als Benutzer pi die sudo Kommandos absetzen.


    Ich benutze bei mir MobaXterm auf dem PC, um mit dem raspberry zu arbeiten.
    Dann kann man gleich mehrere Fenster parallel öffnen und mit unterschiedlichen Benutzern arbeiten.

    Hallo,


    Groß- und Kleinschreibung macht beim password ein Unterschied,
    d.h. Kiosk ist nicht gleich kiosk.
    Dies gilt auch für den Benutzernamen; Im Prinzip für alles unter Linux.


    Ggfs. als root das password vom user kiosk neu setzen:
    sudo passwd kiosk


    Der Screenshot zeigt "nur" eine Warnung - kein Fehler.
    Trotzdem bin ich etwas stutzig, da die Anleitung vorsieht, den Parameter NODM_ENABLED auf true zu setzen, laut Meldung dieser aber auf false steht.
    Evtl. wurde bei der Neuinstallation, diese wieder zurückgesetzt.
    Also bitte noch einmal Punkt 7 kontrollieren.


    Gruß,
    Thomas

    Hallo willi8,


    Zu Deinen Fragen:


    2.
    Den Befehl für das update/upgrade habe ich oben in der Anleitung korrgiert
    FALSCH: sudo apt-get update &amp;&amp; sudo apt-get dist-upgrade
    RICHTIG: sudo apt-get update && sudo apt-get dist-upgrade
    5.
    Anschließend starte ich den Pi neu und melde mich mit dem neuen Benutzer Kiosk an, richtig?
    RICHTIG


    7.
    Jetzt soll der diyplay-manager konfiguriert werden.


    Grundsätzlich müssen alle System-Dateien als root geändert.
    D.h. sudo nano /etc/default/nodm
    Dies habe ich oben ergänzt.


    Danke für die Hinweise. Ich denke es gibt noch mehr Leute die an den gleichen Stellen hängen geblieben sind.


    Viel Grüße,
    Thomas

    Ich habe hier mal ein komplettes Verzeichnis für die Web-Gui incl. highcharts angehängt.
    Das "js" Verzeichnis ist hier enthalten.
    Bitte nach /var/www kopieren.


    In den folgenden Dateien muss man Benutzer und passwort ändern.


    /var/www/avrweb/avr-google.php
    /var/www/avrweb/avr-panel.php
    /var/www/avrweb/js/includes/common.inc.php


    Bitte auch die Feldnamen für die Sensoren überprüfen.
    Einfach mit mysql den folgenden Befehl absetzen:
    SELECT UNIX_TIMESTAMP(dattim),Aussen, Wintergarten, Zimmer, Terrasse, Pool, WW_Speicher, Vorlauf, Ruecklauf FROM avrdat ORDER BY dattim DESC LIMIT 1;
    Dann sieht man sofort, ob die Abfrage funktioniert.

    Wenn der Fehler "MYSQL - Error selecting data" kommt, funktioniert der db-Zugriff nicht. D.h. das Script stirb nach dem SQL-Befehl " mysql_query($sql) or die"


    Da er vorher mysql_connect,und mysql_select ausgeführt hat, ist der login erfolgreich gewesen und die Datenbank existiert auch.


    Der nächste Schritt im script ist nun eine Abfrage auf die Tabelle via "mysql_query".


    Folgende Prüfungen:
    - ist der Name der Tabelle korrekt ?
    - sind alle Feldnamen korrekt ?


    Die Datenbank kann man sich mit entweder mit phpMyAdmin oder mysql ansehen:
    http://deine-ip-adresse/phpmyadmin/
    > mysql -u "dein-db-user" -p


    mysql-Befehle:
    Alle Datenbanken zeigen > SHOW DATABASES;
    Mit Datenbank verbinden > USE avrio;
    Tabellen zeigen > SHOW TABLES;
    Tabellen-Definition anzeigen > DESC avrdat;


    Gruß,
    Thomas

    Falls jemand Probleme mit dem mySQL-Benutzer hat:


    Bei der Installation von mysql wurde ein user angelegt - typischerweise root.
    Das password wurde dort entsprechend gesetzt.


    Das password kann man mit mysql ändern:
    http://www.sysadminslife.com/l…sql-user-passwort-aendern


    Ein neuer Benutzer (z.B. "Admin") muss zuerst in der Datenbank angelegt werden.
    mysql> create user ‘BENUTZERNAME’@’localhost’ identified by ‘BENUTZERKENNWORT';
    mysql> grant all on DATENBANKNAME.* to ‘BENUTZERNAME’@’localhost';


    Achtung: Der Name ist case-sensitive, d.h. "admin" != "Admin".


    Gruß
    Thomas

    Ein eigenständiges Modul liest die Daten von openweather und schriebt dies in eine JSON Datei.
    Der server liest diese Datei und wandelt Formate um.


    Den Client "openweather_client.py "über crontab starten. Als Parameter wird der Ortsname mitgegeben.


    Folgende Zeilen in crontab einfügen (den Pfad zum client entsprechend anpassen):

    Code
    # examle below will be excecuted every 15 minutes
    # */15 * * * * python /home/pi/433/openweather_client.py Berlin > crontab_ow_client.log 2>&1

    Beidel,


    Im Prinzip kannst Du eine Lichtschranke hier sehen:
    http://www.forum-raspberrypi.d…spberry-und-lichtschranke
    Ein Zeitmessung ist dann hier definiert:
    http://www.hoeser-medien.de/20…e-mit-dem-raspberry-in-c/


    Ich wollte einmal C ausprobieren, dies ist aber auch mit anderen Programiersprachen möglich.
    Die Schaltung muss mit Sicherheit angepaßt werden, wenn die Entfernung zwischen beiden IR-Elementen größer wird. Es gibt bei Conrad, Pollin, Reichelt, ... Lichtschranken, die bereits fertig montiert in einem Gehäuse verfügbar sind. Bei mir recihte aber die simple Lösung.


    Gruß,
    Thomas

    Heute habe ich mit einem Wiki angefangen: klick


    Der Thread ist hier explodiert und für Einsteiger eher ein Albtraum.


    Seht Euch das bitte mal an.
    Jeder der einzelne Befehle oder sonstige Themen dokumentieren möchte, ist herzlich eingeladen.
    Falls Ihr Fehler findet, bitte eine Mail an mich.


    P.S.
    In Firefox sieht das o.k. aus.
    Im Internet Explorer sehe ich plötzlich fremde Werbung.
    Ich hoffe dies liegt nicht am Wordpress Wiki-Plugin.
    Wenn Ihr so etwas seht, bitte bei mir melden, da ich nicht beabsichtigt habe Werbung einzublenden.

    Hallo xerox ,


    Der Hintergrund-Prozess funktioniert bei mir, sowohl bei der manuellen Eingabe über die Konsole, als auch via crontab.


    Füge einmal einen crontab Eintrag hinzu:


    > crontab -e


    [font="Consolas"]@reboot cd "/home/pi/bin"; python ./netio_server.py &[/font]



    Hier muss Du natürlich den Pfad anpassen.
    Anschließend eine Kontrolle der System-Logfiles:


    /var/log/syslog
    /var/log/messages


    -----------------------------------------


    Liebe Gemeinde, bitte verwendet nicht die Bezeichnung script-Gott oder ähnliches.
    Ich gehe zwar nicht Sonntags in die Kirche, ist mir aber trotzdem peinlich.
    Das Projekt hat ganz harmlos angefangen und war eher als Versuch gedacht.
    Meine Python-Kentnisse waren eher rudiminentär und Objektorientierung werde ich mangels Zeit wahrscheinlich nie anwenden.
    Nur hat Mario so nett gedrängt, bis der Kram lief.
    Ich hätte nie gedacht, dass da mal 1.000 Zeilen stehen.
    In Lehrbüchern würde der Code auch eher unter "abschreckende Beispiele" geführt.
    Das gefällt mir selber nicht (hat auch jemand anders hier schon einmal gesagt - und ich muss ihm Recht geben).


    Und zum Schluss ....
    Ich verwende das Programm selber gar nicht, da die Steckdosen zwar hier rumliegen, ich den Kram aber noch nicht eingebaut habe.

    Ich habe eine Zeile hinzugefügt (# 926 in V2.1)


    server_reply = server_reply + "\n"


    Die neue Version liegt auf GitHub.


    Funktioniert bei mir. Bitte probiert das bei Euch aus.



    [font="Calibri"]Clone complete project to local raspberry[/font]
    [font="Calibri"]cd; mkdir -p git; cd git[/font]
    [font="Calibri"]git clone git://github.com/ThomasH-W/netio_server[/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Update Project files by pulling new files[/font]
    [font="Calibri"]cd ~/git/netio_server[/font]
    [font="Calibri"]git pull[/font]