Posts by simonz

    Code
    Mai 27 09:18:01 evb-serverpi systemd[1]: Starting ProFTPD FTP Server...
    Mai 27 09:18:01 evb-serverpi proftpd[10462]: Checking syntax of configuration file
    Mai 27 09:18:01 evb-serverpi proftpd[10462]: 2023-05-27 09:18:01,330 evb-serverpi proftpd[10462]: fatal: unknown configuration directive 'IdentLookups' on line 13 of '/etc/proftpd/proftpd.conf>

    Naja, da ist wohl noch ein Fehler in der Konfigurationsdatei...


    So ganz ohne Zusammenhang ist da schwer etwas zu beantworten.

    Vielleicht so:

    Dass die print()-Ausgabe "komisch" aussieht, ist durchaus normal bei bytes()...


    Siehe z.B. https://docs.python.org/3/libr…dtypes.html#bytes.fromhex

    Jetzt scheint er auf dem ersten Blick kein Problem mit

    Code
    import smbus2
    import bme280

    zu haben.

    Die Temperatur bekomme ich zwar noch nicht angezeigt, liegt aber wohl eher noch am Skript.

    Was wird denn angezeigt? Eine Fehlermeldung? Etwas Falsches? Nichts?


    Lass' Dir doch bitte nicht die Würmer einzeln aus der Nase ziehen...


    PS:

    Und wie hyle schon schrieb: Aktiviere SSH, so dass Du vernünftig remote auf den Raspi zugreifen kannst.


    Bei mir klappt es:

    Code
    simonz@pi6:~ $ pip install smbus2 bme280
    
    Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
    Collecting smbus2
      Downloading https://www.piwheels.org/simple/smbus2/smbus2-0.4.2-py2.py3-none-any.whl (13 kB)
    Collecting bme280
      Downloading https://www.piwheels.org/simple/bme280/bme280-0.6-py2.py3-none-any.whl (6.1 kB)
    Installing collected packages: smbus2, bme280
    Successfully installed bme280-0.6 smbus2-0.4.2


    Vielleicht gab es bei Deinem Versuch beim pypi-Server ein technisches Problem.


    Probier' es einfach noch einmal...

    ich habe vorher noch nie mit einem Pi oder Linux Betriebssystem gearbeitet und muss jetzt dazu ein Projekt bearbeiten.

    Monka : Vielleicht hilft es weiter, wenn Du uns wissen lässt

    • ob Du denn (etwas) Erfahrung mit Python hast
    • was Du genau tust/eintippst und welche Meldungen kommen
    • wie Dein aktuelles Python-Script aussieht => in einem Codeblock
    • ob Du DeaD_EyE 's Vorschlag bezüglich virtualenv folgst bzw. folgen möchtest

    Sonst ist es für die Leser und möglichen Helfer nur "Stochern im Nebel"...

    Diese Fehlermeldung kommt, wenn Du das innerhalb von Python ausführst.

    Es sind aber Kommandos, die in der Shell ausgeführt werden, also außerhalb von Python.

    Um "unbekannte" Sensoren zu erkennen, könnte man die Sensor-Schleife zum Beispiel so schreiben (ungetestet):

    Dann bricht das Programm mit Fehlermeldung und Exit-Code 1 ab, falls sich tatsächlich doch noch einmal ein neuer Sensor einschleicht.



    Hinweis:
    Ja, eigentlich könnte/sollte man das mit einer Exception machen. Aber eins nach dem anderen.
    shgmongo ist ja offensichtlich gerade erst am Anfang bzgl. Python-Programmierung.

    Python
    ID_TO_SENSOR_NAME = {    
        "28-d64e421f64ff": "S1",
        "28-3077421f64ff": "S2",
        "28-566a9c1e64ff": "S3",
    }

    passt nicht zu den Sensor-IDs, die ausgegeben werden:


    Python
    pi@raspberrypi:~/solarueberwachung $  python heiztemp.py
    Zeit: 2023-04-26 16:59:48 Sensor: d64e421f64ff hat die Temperatur 22.5
    Zeit: 2023-04-26 16:59:48 Sensor: 3077421f64ff hat die Temperatur 18.75
    Zeit: 2023-04-26 16:59:48 Sensor: 566a9c1e64ff hat die Temperatur 18.8125
    {None: 18.8125}

    Und deswegen klappt die Umwandlung von Sensor-ID zu "S1/S2/S3" nicht!


    Also: Jeweils das "28-" im Dictionary ID_TO_SENSOR_NAME löschen...

    keepfear mit dem print(sensor_name_to_temperature) scheint nichts auszugeben. Die Ausgabe ändert sich nicht. Die Ausgabe mit auskommtentierten

    insert_to_db(timestamp, sensor_name_to_temperature) ergibt folgende Ausgabe (hab die Pumpen erstmal rausgenommen)

    Bash
    pi@raspberrypi:~/solarueberwachung $  python heiztemp.py
     Zeit: 2023-04-26 16:59:48 Sensor: d64e421f64ff hat die Temperatur 22.5
     Zeit: 2023-04-26 16:59:48 Sensor: 3077421f64ff hat die Temperatur 18.75
     Zeit: 2023-04-26 16:59:48 Sensor: 566a9c1e64ff hat die Temperatur 18.8125
    {None: 18.8125}

    Die Zeile in Deiner Ausgabe

    Code
    {None: 18.8125}

    ist nicht "nichts". Sondern der Inhalt eines Dictionary.


    Das zeigt, dass Dein Dictionary sensor_name_to_temperature nur einen Eintrag hat, nämlich den der letzten Temperatur.

    Leider ist die Sensor-ID "None", und zwar für alle Sensoren. Deshalb gibt es nur den einen Eintrag.


    In Deinem Quelltext ist da also noch ein kleiner Fehler.

    /home/BENUTZER/.local: Entspricht dem vorherigen Punkt, mit der Ausnahme, dass es nicht systemweit verfügbar ist und nur den einen Benutzer betrifft. Es erfordert auch keine root-Rechte.


    1. $HOME/.local/bin ist die mit systemd dazu gekommene Variante
    2. $HOME/bin ist die historisch gewachsene


    Beide können verwendet werden (siehe $HOME/.profile).

    "2." dürfte für ralfi1988 einfacher sein, da er so das Verzeichnis mit seinen Skripten immer sieht.

    Irgendwie habe ich das Gefühl, dass hier in der Diskussion das systemweite /usr/local/bin und das benutzerspezifische $HOME/bin bunt vermischt werden, was ralfi1988 vermutlich zusätzlich irritiert hat...


    Also ergänzend zu #17 von __blackjack__ vielleicht:


    Benutzerspezifische Skripts/Programme - wenn sie nicht regelrecht installiert werden (müssen) - in das Verzeichnis $HOME/bin stecken.


    Falls das Verzeichnis noch nicht existiert, einfach anlegen und nach einem neuen Login (oder dem Starten einer neuen Shell, oder, oder...) ist das Verzeichnis dann automatisch im PATH enthalten.

    Das ist schon klar.

    Ich hatte deinen Beitrag #21 falsch verstanden. Ich hatte angenommen, dass der Eintrag 'PasswordAuthentication no' bei einer Installation mit PasswordAuth erstellt wurde.

    Vermutlich hatte ich die Einstellungen im rpi-imager zu oberflächlich gelesen und benutzt und dabei in Gedanken die Optionen "ssh-password" und das darunter stehende "username and password" durcheinandergebracht/vermischt...

    Das ganze hatte ich vor einem Jahr auch schon mal hier beschrieben.

    Ein Vorschlag: Du schreibst in Deinem Tutorial:

    Quote

    Achtung!

    Die Authentifizierung per Passwort wird automatisch deaktiviert. Eine Anmeldung ist dann nur noch mit gültigem key "id_rsa" möglich.

    Das trifft ja nur bei SSH-Login zu, nicht bei lokalem Login.


    Aber dieser Unterschied mag nicht jedem Leser klar sein und könnte deshalb noch im Tutorial ergänzt werden.



    Übrigens: Schön, dass Du doch noch weiter hier im Forum bist!

    Jetzt sollten wie wohl abgleichen welche Imager Version Du auf welchem OS (win/Linux/Mac) nutzt und ob Du auf Deinem lokalen System schon irgendwas mit Keys konfiguriert hast.


    Ich bin unter Linux (Fedora) unterwegs, mit aktiven public keys.

    Den rpi-imager verwende ich per Source, also aktuell in Version 1.7.4

    Ich habe gerade mal ein Image geflasht. (light 32 bit)

    Bash: firstrun.sh
    [...]

    Da ist nichts von 'PasswordAuthentication'


    Die firstrun.sh wird je nach gewählten Optionen vom rpi-imager individuell zusammengestellt.


    Das ist ganz gut sichtbar in seinem Quelltext, in der Datei src/OptionsPopup.qml


    Ausschnitt:

    - simonz aber es macht absolut keinen Sinn bei einer initialen headless Installation einen ssh key zu verlangen - zumal man den Key im Installer nicht konfigurieren kann :-/


    Ich war auch irritiert, hatte aber nicht weiter geforscht. Mache ich morgen mal, wenn's passt.


    Der Publik-Key wurde bei mir vollautomatisch vom rpi-imager in die Eingabemaske eingetragen. Es war mein korrekter vom aktuellen Login!

    Ich hatte vor ein paar Tagen ähnliche Schwierigkeiten nach dem Aufsetzen eines neuen Systems mit dem rpi-imager.

    Kein Password wurde per SSH akzeptiert. Per public key ging es aber dann.


    In der vom rpi-imager erzeugten firstrun.sh steht:

    Code
    echo 'PasswordAuthentication no' >>/etc/ssh/sshd_config"

    was das Ganze erklären würde.


    Ich hatte im rpi-imager zwar einen User (nicht 'pi') und ein Passwort angegeben, aber das reichte wohl nicht, um obige Sperre zu verhindern.

    Für ein lokales Login (also nicht SSH) klappt(e) das Passwort.


    Weiter hatte ich nicht geforscht.


    Fazit: SSH-Login nur noch per public key!? Jedenfalls in der Default-Einstellung.



    Ergänzung: Die Datei firstrun.sh ist ziemlich interessant. Man muss sie sich aber aus der Boot-Partition fischen/kopieren/ansehen, bevor ein Raspi damit gebootet wird. Sonst ist sie futsch.