Hello, i replied inline.

Pierre-Yves <pyb...@gmail.com> wrote:

Thanks Vince

I found in rtl-sdr. rules a rule corresponding to my SDR stick :

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", ENV
{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"

I added the weewx user to that group: "sudo usermod -aG plugdev weewx"

I still can start weewx with the  "sudo weewd" command as before but I can't
run weewx in daemon mode. "sudo  systemctl start weewx" gives still the same
error :

Feb 14 08:49:54 raspberrypi weewxd[5905]: INFO weewx.engine: Starting main
packet loop.
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr:
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr: Nous espérons que
vous avez reçu de votre administrateur système local
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr: les consignes
traditionnelles. Généralement, elles se concentrent sur ces trois éléments :
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr:
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr:     #1) Respectez la
vie privée des autres.
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr:     #2) Réfléchissez
avant d'utiliser le clavier.
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr:     #3) De grands
pouvoirs confèrent de grandes responsabilités.
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr:
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr: sudo: un terminal est
requis pour lire le mot de passe; utilisez soit l'option -S pour lire depuis
l'entrée standard ou configurez un outil askpass de demande de mot de passe
Feb 14 08:49:54 raspberrypi weewxd[5905]: ERROR user.sdr: sudo: il est
nécessaire de saisir un mot de passe

I don't speak french, but it looks like you still have a sudo command
somewhere in your unit file.

Would you please show us the contents of your running unit file

systemctl show -P FragmentPath weewx.service

will get you the path of that file. cat that file and paste it here or
if you are confident remove the sudo statement in there somwhere at
ExecStart...="sudo /usr......"

because you should not need sudo when you added weewx to the plugdev
group.

That file contains usually also the information what user runs the
daemon in the end.

Feb 14 08:49:54 raspberrypi weewxd[5905]: INFO weewx.engine: Main loop exiting.
Shutting engine down.
Feb 14 08:49:54 raspberrypi weewxd[5905]: INFO user.sdr: shutdown process sudo
/usr/local/bin/rtl_433 -f 868.3M -f 433.92M -H 90 -Y autolevel -s 1024k -R 173
-R 172 -R 42 -M utc -F json
Feb 14 08:49:54 raspberrypi weewxd[5905]: DEBUG user.sdr: close stdout
Feb 14 08:49:54 raspberrypi weewxd[5905]: DEBUG user.sdr: close stderr
Feb 14 08:49:54 raspberrypi weewxd[5905]: Exception in thread stdout-thread:
Feb 14 08:49:54 raspberrypi weewxd[5905]: DEBUG user.sdr: shutdown
stdout-thread
Feb 14 08:49:54 raspberrypi weewxd[5905]: Traceback (most recent call last):
Feb 14 08:49:54 raspberrypi weewxd[5905]: Exception in thread stderr-thread:
Feb 14 08:49:54 raspberrypi weewxd[5905]: Traceback (most recent call last):
Feb 14 08:49:54 raspberrypi weewxd[5905]:   File "/usr/lib/python3.9/
threading.py", line 954, in _bootstrap_inner
Feb 14 08:49:54 raspberrypi weewxd[5905]:   File "/usr/lib/python3.9/
threading.py", line 954, in _bootstrap_inner
Feb 14 08:49:54 raspberrypi weewxd[5905]:     self.run()
Feb 14 08:49:54 raspberrypi weewxd[5905]:   File "/etc/weewx/bin/user/sdr.py",
line 198, in run
Feb 14 08:49:54 raspberrypi weewxd[5905]:     self.run()
Feb 14 08:49:54 raspberrypi weewxd[5905]:   File "/etc/weewx/bin/user/sdr.py",
line 198, in run
Feb 14 08:49:54 raspberrypi weewxd[5905]:     for line in iter
(self._fd.readline, ''):
Feb 14 08:49:54 raspberrypi weewxd[5905]: ValueError: PyMemoryView_FromBuffer
(): info->buf must not be NULL
Feb 14 08:49:54 raspberrypi weewxd[5905]: DEBUG user.sdr: shutdown
stderr-thread
Feb 14 08:49:54 raspberrypi weewxd[5905]:     for line in iter
(self._fd.readline, ''):
Feb 14 08:49:54 raspberrypi weewxd[5905]: ValueError: PyMemoryView_FromBuffer
(): info->buf must not be NULL
Feb 14 08:49:54 raspberrypi weewxd[5905]: INFO user.sdr: shutdown complete
Feb 14 08:49:54 raspberrypi weewxd[5905]: CRITICAL __main__: Caught
WeeWxIOError: rtl_433 process is not running
Feb 14 08:49:54 raspberrypi weewxd[5905]: CRITICAL __main__:     ****  Waiting
60.0 seconds then retrying...
Feb 14 08:50:03 raspberrypi weewxd[5905]: INFO __main__: Received signal TERM
(15).
Feb 14 08:50:03 raspberrypi systemd[1]: Stopping WeeWX...
Feb 14 08:50:03 raspberrypi weewxd[5905]: Traceback (most recent call last):
Feb 14 08:50:03 raspberrypi weewxd[5905]:   File "/usr/share/weewx/weewxd.py",
line 166, in main
Feb 14 08:50:03 raspberrypi weewxd[5905]:     engine.run()
Feb 14 08:50:03 raspberrypi weewxd[5905]:   File "/usr/share/weewx/weewx/
engine.py", line 204, in run
Feb 14 08:50:03 raspberrypi weewxd[5905]:     for packet in
self.console.genLoopPackets():
Feb 14 08:50:03 raspberrypi weewxd[5905]:   File "/etc/weewx/bin/user/sdr.py",
line 3316, in genLoopPackets
Feb 14 08:50:03 raspberrypi weewxd[5905]:     raise weewx.WeeWxIOError("rtl_433
process is not running")
Feb 14 08:50:03 raspberrypi weewxd[5905]: weewx.WeeWxIOError: rtl_433 process
is not running
Feb 14 08:50:03 raspberrypi weewxd[5905]: During handling of the above
exception, another exception occurred:
Feb 14 08:50:03 raspberrypi weewxd[5905]: Traceback (most recent call last):
Feb 14 08:50:03 raspberrypi weewxd[5905]:   File "/usr/share/weewx/weewxd.py",
line 265, in <module>
Feb 14 08:50:03 raspberrypi weewxd[5905]:     main()
Feb 14 08:50:03 raspberrypi weewxd[5905]:   File "/usr/share/weewx/weewxd.py",
line 193, in main
Feb 14 08:50:03 raspberrypi weewxd[5905]:     time.sleep(wait_time)
Feb 14 08:50:03 raspberrypi weewxd[5905]:   File "/usr/share/weewx/weewxd.py",
line 260, in sigTERMhandler
Feb 14 08:50:03 raspberrypi weewxd[5905]:     raise Terminate
Feb 14 08:50:03 raspberrypi weewxd[5905]: __main__.Terminate
Feb 14 08:50:04 raspberrypi systemd[1]: weewx.service: Main process exited,
code=exited, status=1/FAILURE
Feb 14 08:50:04 raspberrypi systemd[1]: weewx.service: Failed with result
'exit-code'.
Feb 14 08:50:04 raspberrypi systemd[1]: Stopped WeeWX.


When I start weewx again with "sudo weewxd", ps aux|grep weewxd gives:

pi@raspberrypi:~ $ ps aux|grep weewxd
root      8308  0.3  0.2  13112  4268 pts/1    S+   09:02   0:00 sudo weewxd
root      8309  3.4  0.9  46004 18724 pts/1    Sl+  09:02   0:00 python3 /usr/
share/weewx/weewxd.py
pi        8347  0.0  0.0   7460   560 pts/3    S+   09:03   0:00 grep --color=
auto weewxd

Here, I am stuck...

When you run weewx directly with sudo, the password is cached and taken
from the underlying driver to access the device. If the systemd-unit
runs the daemon that password is never entered and it would ask the
systemd-unit to enter it, but you can't cause its not running on your
terminal. Therefore we need to add the running user (weewx) to the right
group so it can access the RTL-SDR device without root privilieges
(sudo).

Hope that makes some sense :D

-dominic


Pierre-Yves

Le mardi 13 février 2024 à 23:49:36 UTC+1, vince a écrit :

   You want to look for 'rtl' or 'sdr' and adding the weewx user to the
   appropriate group that has permissions to access the hardware.

   https://groups.google.com/g/weewx-user/c/7CIRRoo6Qdk/m/8dwn6EBiAQAJ is one
   link.   Note that 'plugdev' is correct for that example.  We cannot predict
   what 'your' system will require.

   On Tuesday, February 13, 2024 at 1:49:27 PM UTC-8 Pierre-Yves wrote:

       I haven't found any thread related to the creation of weewx user and
       group...
       PY

       Le mardi 13 février 2024 à 22:14:40 UTC+1, Pierre-Yves a écrit :

           Thanks Vince.
           I'll try to find the way to do that

           Le mardi 13 février 2024 à 22:05:10 UTC+1, vince a écrit :

               oops, I meant running as 'weewx' or 'pi' or 'something
               else'....

               The reason I'm asking is that your systemctl log shows a sudo
               error that means that the account you are trying to use sudo
               under is not permitted to do so.  The default dpkg installation
               creates a weewx user and group but does not create a /etc/
               sudoers.d file for that user.  So the weewx user is not going
               to be able to sudo if you specify that.

               But....you should be able to add the weewx user to the correct
               group(s) that can access your hardware.  I think there are
               other threads related to how to do that.

               On Tuesday, February 13, 2024 at 12:57:21 PM UTC-8 vince wrote:

                   On Tuesday, February 13, 2024 at 12:31:54 PM UTC-8
                   Pierre-Yves wrote:

                       Weewx and webserver are perfectly working in simulator
                       mode with "sudo systemctl start weewx" command


                   Good.  That means your problem appears to be related to
                   getting weewx as a non-privileged user to access your
                   RTL-STR hardware.

                   When running weewx using the Simulator does "ps aux|grep
                   weewxd" show it running as weewxd ?  Or pi ?  Or something
                   else ?

                    

--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/
weewx-user/cea6b4c6-5b5f-49f8-b6fc-fa7e317c36ddn%40googlegroups.com.


--
The intelligence consists not only in the knowledge
but also in the skill to apply the knowledge into practice.
- Aristotle

--
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/%24dgpfnjwfv-%24gWkKdgb-%24mKGTc-2024%40odin.oe7drt.com.

Reply via email to