Beiträge von RaspPiFan

    Hallo

    erst einmal Vielen Dank für die Reaktionen.

    ich habe nun bis auf weiteres cronjpobs angelegt.

    Eine Möglichkeit über eine PHP Funktion wäre optimal, damit ich über die Internetseite unterschiedliche Zeitpunkte definieren könnte.

    Bei den cronjobs muß immer mindestens eine Minite Differenz bei den Schaltzeitpunkten vorgegeben werden.

    Hallo zusammen,

    ich suche nach einer Möglichkeit meine Funksteckdosensteuerung zu erweitern.


    Meine Beleuchtungen möchte ich damit automatisch zu einer definierten Zeit schalten.

    Bisher schaltete ich meine Steckdosen per Tastendruck auf eine HTML-Seite innerhalb *.php-Dateien.

    Ein Beispiel habe ich angehängt.

    Anliegende Skripte funkionieren bereits manuell und die Seite wird alle 5 Sekunden aktualisiert.

    In der Index.php ist die Funktion auto_switch{} formuliert.

    Sie ermittelt eine zeitliche Differenz zwischen einer Vorgabe und der akt. Zeit.

    Wenn der Zeitpunkt erreicht ist, soll ein Schaltkommando (z.B. 'switch001on') abgesetzt werden,

    analog den Input (submit)-Buttons im HTML-Code weiter unten.

    Die Position habe ich in der Datei mit dem Kommentar

    // hier soll eingeschaltet werden , z. B. wie beim Input-Button 'switch001on'

    Es wäre super, wenn jemand eine Idee dazu hätte.

    Hallo zusammen,

    danke für die Informationen.

    @__blackjack__: Nein es geht wirklich nur um die Funktion startrelais() !

    run() funktioniert bereits ein halbes Jahr und ist ein Aufruf einer exe (send.exe) für Funkschalter der Fa. brennenstuhl

    @RTFM: setfacl ist meinem Pi unbekannt / auch man setfacl kann nicht gestartet werden.

    HIer mein Versuch der Eingabe:

    pi@raspberrypi:~/webdir $ man setfacl

    Kein Handbucheintrag für setfacl vorhanden

    @__blackjack__: Habe nun in die sudoers-Datei die Zusätze

    www-data ALL=NOPASSWD:/home/pi/433Utils/RPi_utils/send 

    www-data ALL=NOPASSWD:/home/pi/webdir/python/send.py

    eingepflegt.

    Die sudo-Angaben habe ich aus Funktion run() entfernt und sie läuft noch mit Brennenstuhl-Empfängern! ;)

    Nun wird durch den _exec-Aufruf in der Funktion startrelais() folgender Text ausgegeben:

    Traceback (most recent call last):

    File "/home/pi/webdir/python/send.py", line 6, in

    from rpi_rf import RFDevice

      ModuleNotFoundError: No module named 'rpi_rf'

    (Die Zeile 6 des Python skriptes send.py enthält

    from rpi_rf import RFDevice)

     

    Warum wird die Zeile bei Eingabe an dem LX-Terminal erfolgreich bearbeitet und per Aufruf durch ein PHP-Skript nicht ?

    Ich vermute, das es an Python -Zusatzpaketen in bestimmten Verzeichnissen liegt.

    Wie sage ich dem www-data User, das die Suche der Python-Pakete bestimmte Quellverzeichnisse betrifft.

    (Habe im Python-Skript noch keine Möglichkeit gefunden, anzugeben das rpi_rf aus dem Verzeichnis

    /home/pi/.local/lib/python3.7/site-packages/rpi_rf/ 

    bezogen werden kann.)

    Hallo zusammen.

    einsetzen möchte ich das Python Skript send.py zum Schalten von Funk-Relais Modulen.

    mit dem Statement

    pip3 install rpi-rf

    wurde das RPI-Softwarepaket installiert


    Per SSH wird das Kommando

    pi@raspberrypi:~/webdir $ python3 ./send.py 7427331

    erfolgreich ausgeführt - und das Relais schaltet!

    (Der code 7427331 wurde mittels Skript recieve.py als CODE der angelernten Fernbedienung ermittelt)

    Per PHP-Skript (switchtest.php.txt) soll das selbe Kommando ausgeführt werden. siehe Funktion startrelais()

    Dabei wird aber immer nur die Meldung

    sh: 1: rpi: not found

    ausgegeben.

    ... nochmal Hallo an alle

    hat keiner eine Idee, damit meine .NET Anwendung auch auf einem raspberry zero w läuft?

    Aufgesetzt habe ich meinen raspi 4 B ehemals mit einem raspberry-stretch image und habe die aktuellste Monoversion installiert.

    Die .NET 4.0-Anwendung (R_PI001.exe) lief auf dem raspi 4 B optimal

    Eine SD-Card Kopie habe ich auf dem raspi zero w eingesetzt und die .NET Anwendung wird im Verzeichnis /home/pi/webdir gestartet.

    Die o.g. Anwendung (R_PI001.exe) wurde gar nicht erst gestartet

    error_dotnet4.txt

    #####

    Habe nun einen manuellen Start (mit einer .NET Framework 3.0 erstellten Testanwendung AZero.exe) durchgeführt siehe im Anhang

    error_dotnet3.txt

    Ein Auszug aus dieser error_dotnet3.txt -Datei ist:

    pi@raspberrypizero:~/webdir $ ./AZero.exe

    WARNING: The runtime version supported by this application is unavailable. 

    Using default runtime: v4.0.30319

    #####

    Ein weiterer Versuch erfolgte mit der nun unter .NET Framework 2.0 Version erstellten AZero.exe

    (Anwendung umgestellt von .NET 3.0 auf 2.0 - Projekt neu erstellt und auch erneut auf raspi zero kopiert!)

    error_dotnet2.txt

    Hier erfolgt die selbe Meldung (wie oben bei .NET 3.0):

    pi@raspberrypizero:~/webdir $ ./AZero.exe

    WARNING: The runtime version supported by this application is unavailable. 

    Using default runtime: v4.0.30319 

    #####

    Welche DOT-Net-Versionen werden vom raspberry PI Zero unterstützt?

    Oder muß für den raspi Zero eine ältere oder andere Mono-Version installiert werden?


    mono_version.txt

    Hallo,

    ich habe die SD-Karte vom funktionstüchtigen raspberry pi 4 B in einen raspberry zero w eingesetzt.

    Per Remote kam ich sofort an die Maschine über eine andere IP-Adresse ran.

    Eine eigene Mono .NET-Anwendung startet leider nicht auf dem Zero.

    Der Speicherbedarf war auf dem 4B bei insgesamt ca. 211 MB (bei aktiver .NET Anwendung).

    Vom Speicher her sollte es doch reichen, denke ich.

    Kann es vll. andere Gründe haben?

    Hallo Lars

    die raspberry-remote-Umgebung wollte ich nur verwenden, um die Internetseite von XConni in mehreren Variationen anzusehen und im Betrieb zu testen.


    Aber es ist wohl für andere Steckdosen-Produkte ausgelegt. Ich nutze bisher ausschließlich Brennenstuhl-RCS 1000 N mit den DIP-Schaltern.

    Hallo,

    der Apache Server ist nun am laufen - danke noch einmal! ;)

    Per Statement probierte ich nun auch die Funksteckdose anzuschalten mit

    ./send 00000 00100 1

    im Verzeichnis /home/pi/433Utils/RPI_utils funktioniert es

    im Verzeichnis /home/pi/raspberry-remote gibt es leider keine Reaktion.

    und gerade diese Funktion wird ja für die Internetseite benötigt.

    Das Verzeichnis wurde wie folgt erzeugt:

    // raspberry-remote erstellen

    cd ~

    git clone git://http://github.com/xkonni/raspberry-remote.git

    cd raspberry-remote

    make send

    (diverse Warnungen gab es im raspberry-remote -Verzeichnis beim make send-Statement

    aber die gab es bereits bei der letzten RPI-Installation - und da funktionierten Aufrufe in beiden Verzeichnissen)


    kann es vielleicht mit der Installationsreihenfolge zu tun haben?


    Hallo,


    Vielen Dank erst einmal an botswanabub , llutz und hyle.


    nach dem Statement apache2ctl -S war auch noch keine PHP-Datei lauffähig.


    Also habe ich eben den raspberry neu aufgesetzt, um den vermutlich 'einfacheren' Weg von  hyle zu beschreiten.

    -> apache und php wurde mit

    Code
    sudo apt install php

    installiert.

    Das Ergebnis danach sieht fast identisch zu den ehemaligen Problemen aus:

    pi@raspberrypi:~ $ apache2

    [Tue May 19 23:38:16.141558 2020] [core:warn] [pid 20862] AH00111: Config variable ${APACHE_RUN_DIR} is not defined

    apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

    -> keine Verbesserung

    ##########

    pi@raspberrypi:~ $ systemctl status apache2

    ● apache2.service - The Apache HTTP Server

    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:

    Active: active (running) since Tue 2020-05-19 23:35:58 CEST; 25min ago

    Docs: https://httpd.apache.org/docs/2.4/

    Main PID: 20361 (apache2)

    Tasks: 7 (limit: 4915)

    Memory: 7.3M

    CGroup: /system.slice/apache2.service

    ├─20361 /usr/sbin/apache2 -k start

    ├─20363 /usr/sbin/apache2 -k start

    ├─20364 /usr/sbin/apache2 -k start

    ├─20365 /usr/sbin/apache2 -k start

    ├─20366 /usr/sbin/apache2 -k start

    ├─20367 /usr/sbin/apache2 -k start

    └─20660 /usr/sbin/apache2 -k start

    Mai 19 23:35:58 raspberrypi systemd[1]: Starting The Apache HTTP Server...

    Mai 19 23:35:58 raspberrypi apachectl[20357]: AH00557: apache2: apr_sockaddr_inf 

    Mai 19 23:35:58 raspberrypi apachectl[20357]: AH00558: apache2: Could not reliab

    Mai 19 23:35:58 raspberrypi systemd[1]: Started The Apache HTTP Server.

    lines 1-20/20 (END)

    -> keine Verbesserung

    ##########

    pi@raspberrypi:~ $ apache2ctl -S

    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

    VirtualHost configuration:

    *:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)

    ServerRoot: "/etc/apache2"

    Main DocumentRoot: "/var/www/html"

    Main ErrorLog: "/var/log/apache2/error.log"

    Mutex default: dir="/var/run/apache2/" mechanism=default

    Mutex mpm-accept: using_defaults

    Mutex watchdog-callback: using_defaults

    PidFile: "/var/run/apache2/apache2.pid"

    Define: DUMP_VHOSTS

    Define: DUMP_RUN_CFG

    User: name="www-data" id=33 not_used

    Group: name="www-data" id=33 not_used

    Doch die Ausgabe einer php-Datei funktioniert nun endlich !

    <?php 

    phpinfo(); 

    ?>

    liefert:


    im Laufe des Tages werde ich wiringpi, 433Utils etc installieren und schauen, ob die Schaltersteuerung über php-Seiten funktioniert.

    - verursacht die fehlende o.g. Config variable ${APACHE_RUN_DIR} vielleicht noch Probleme?

    - wo und wie wird sie am besten formuliert?


    Das ist die Ausgabe:

    pi@raspberrypi:~ $ systemctl status apache2

    ● apache2.service - The Apache HTTP Server

    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:

    Active: active (running) since Tue 2020-05-19 18:53:42 CEST; 1min 22s ago

    Docs: https://httpd.apache.org/docs/2.4/

    Process: 1412 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCE

    Main PID: 1416 (apache2)

    Tasks: 55 (limit: 4915)

    Memory: 3.9M

    CGroup: /system.slice/apache2.service

    ├─1416 /usr/sbin/apache2 -k start

    ├─1417 /usr/sbin/apache2 -k start

    └─1418 /usr/sbin/apache2 -k start

    Mai 19 18:53:42 raspberrypi systemd[1]: Starting The Apache HTTP Server...

    Mai 19 18:53:42 raspberrypi apachectl[1412]: AH00558: apache2: Could not reliabl

    Mai 19 18:53:42 raspberrypi systemd[1]: Started The Apache HTTP Server.

    uppsi!

    folgende Meldung bekomme ich nach Eingabe von apache2:

    pi@raspberrypi:/var/www/html/remote $ apache2

    [Tue May 19 16:37:57.545269 2020] [core:warn] [pid 2249] AH00111: Config variable ${APACHE_RUN_DIR} is not defined

    apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

    Welches Defaultdir kannst du empfehlen?

    /var/www

    Hallo,

    danke für die Info.

    Habe die Config angepasst:

    $source = $_SERVER['SERVER_ADDR'];

    $target = '192.168.178.52';

    $port = 11337;

    ... und PHP sollte auch laufen:

    pi@raspberrypi:/var/www/html/remote $ php -v

    PHP 7.2.30-1+0~20200419.40+debian9~1.gbpb1b799 (cli) (built: Apr 19 2020 08:41:18) ( NTS )

    Copyright (c) 1997-2018 The PHP Group

    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

    with Zend OPcache v7.2.30-1+0~20200419.40+debian9~1.gbpb1b799, Copyright (c) 1999-2018, by Zend Technologies

    Die Seitenausgabe hat sich jedoch nicht verändert

    Hallo,

    ich versuche, Funksteckdosen per php-Seite gemäß der Anleitung

    https://alexbloggt.com/funksteckdosen-raspberry-pi-teil1/

    zum Laufen zu bringen.

    Die Funksteckdosen kann ich bereits über die Kommandos

    sudo /home/pi/433Utils/RPi_utils/send 00000 00010 1

    oder

    im raspberry-remote Verzeichnis

    über sudo ./send 00000 4 1

    erfolgreich absetzen.

    apache2 und php 7.2 wurden installiert.

    Die config.php -Datei wurde angepasst:

    $source = $_SERVER['127.0.0.1'];

    $target = '192.168.178.52';

    $port = 11337;

    Dann wurden die Schritte

    mv ~/raspberry-remote/webinterface/* /var/www/html/remote

    cd ~/raspberry-remote

    make daemon

    sudo ./daemon &

    ausgeführt.

    Die aufgerufene Seite sieht nun so aus:

    auch ein weiterer Versuch mit den Config einstellungen (Adressen getauscht):

    $source = $_SERVER['192.168.178.52'];

    $target = '127.0.0.1';

    $port = 11337;

    liefert die selbe Ausgabe.

    Habe im Moment keine Idee zur Lösung und benötige F1 ;)

    Hallo,

    zur Ausgabe der Nutzung von CPU, RAM und Temperatur suche ich nach einer einfachen Möglichkeit,

    Rückgabewerte von LXTerminal Zeilen in einer .Net-Anwendung weiter zu verarbeiten.

    (1.Stufe Prozentdarstellung im Balken, 2. Stufe Darstellung als Verlauf siehe unten)

    z.B. Die CPU-Nutzung kann über TOP ermittelt werden mit:

    top -n1 | awk '/Cpu\(s\):/ {print $2}'

    DIe Zeile liefert im LX-Terminal als Ausgabe einen Prozentwert:

    2,7


    In meiner .NET-Anwendung kann ich eine Zeile absetzen mit einer Process-Funktion (hier ein Auszug)

    ...

    ProcessStartInfo startInfo = new ProcessStartInfo("sudo")

    startInfo.Arguments = "top -n1 | awk '/Cpu\(s\):/ {print $2}'";

    Process p = Process.Start(startInfo);

    ...


    Mittels dieser Routine schalte ich bereits Funksteckdosen erfolgreich!

    Wie kann ich im oberen Fall den String des Prozentwertes holen?