Thank you Vince! So when I've setup SDR driver previously, the rtl_sdr 
package was required but looking at your how-to, only the rtl_433 is 
needed. I will say getting rtl_sdr on debian bookworm was a challenge as it 
had to be built from source.

On Wednesday, March 6, 2024 at 8:13:19 PM UTC-5 bell...@gmail.com wrote:

> I only hesitate to share because I know just enough about systemd to be 
> dangerous. One should NOT use these as a template but as additional 
> information to learn from.
> The rtl_433 file. There is additional lines because  I use 
> https://pushover.net to monitor things related to WeeWX
> # systemd unit configuration file for rtl_433
> #
>
> [Unit]
> Description=rtl_433 service
> Documentation=https://github.com/merbanan/rtl_433/README.md
> # StartLimitIntervalSec=5
> After=syslog.target network.target
>
> StartLimitIntervalSec=500
> StartLimitBurst=5
>
> [Service]
> Environment=UUID=replace_me
> Restart=on-failure
> RestartSec=5s
>
> # Type=exec
> #ExecStart=/usr/local/bin/rtl_433 -M utc -F json -F 
> mqtt://localhost:1883,retain=0,devices=rtl_433[/host]/devices[/type][/model][/subtype][/channel][/id]
> ExecStart=/usr/local/bin/rtl_433 -M utc -F 
> mqtt://localhost:1883,retain=0,devices=rtl_433[/host]/devices[/type][/model][/subtype][/channel][/id]
>
> ## ExecStartPre runs before, the "-" in the beginning is to let systemd 
> continue even on non-zero exit
> ExecStartPre=-/bin/bash -c "curl -fsS -m 10 --retry 5 -o /dev/null 
> https://hc-ping.com/$UUID";
>
> ## ExecStopPost runs after, no matter if ExecStart was success or not. The 
> "-" in the beginning is like ExecStartPre
> ExecStopPost=-/bin/bash -c "curl -fsS -m 10 --retry 5 -o /dev/null 
> https://hc-ping.com/$UUID/fail";
>
>
> # Restart script if stopped
> #Restart=always
> # Wait 30s before restart
> #RestartSec=30s
>
> # Tag things in the log
> # View with: sudo journalctl -f -u rtl_433 -o cat
> #SyslogIdentifier=rtl_433
>
>
> # NOTE: only works in systemd v236+
> #       Debain "stretch" includes v232, "buster" includes v239
> # Note also the user must be able to create the file and logrotate must be 
> amended to rote the log.
> StandardOutput=file:/var/log/rtl_433.log
> StandardError=file:/var/log/rtl_433.log
>
> #StandardOutput=syslog
> #StandardOutput=null
> #StandardError=syslog
>
> # To run as a non-root user, uncomment and set username and group here:
> #User=pi
> #Group=pi
>
> [Install]
> WantedBy=multi-user.target  
>
>
> My WeeWX file. I hacked this up in 4.x. I would think 5.x would work just 
> fine.
>
> # source bellrichm-configs weewx/multi/systemd
> [Unit]
> Description=WeeWX gather %i data 
> Documentation=https://weewx.com/docs
>
> Requires=time-sync.target
> After=time-sync.target
> RequiresMountsFor=/home
>
> [Service]
> ExecStart=/home/weewx/bin/weewxd --log-label=weewx-%i  /home/weewx/%i.conf
> StandardOutput=null
> # To run as a non-root user, uncomment and set username and group here:
> User=pi
> Group=pi
>
> [Install]
> WantedBy=multi-user.target
>
> Yup MQTTSubscribe runs as either driver or service. Nothing special to 
> running as a driver.
> rich
>
> On Wednesday 6 March 2024 at 17:20:42 UTC-5 vince wrote:
>
>> Nice.  Lets see your system service file(s) to match !
>>
>> How would you use that way as a driver and not even need to user 
>> weewx-sdr ?  Not remembering if MQTT subscribe can run as a driver.  I just 
>> run it as an extension.
>>
>> On Wednesday, March 6, 2024 at 2:06:27 PM UTC-8 bell...@gmail.com wrote:
>>
>>> Vince,
>>> Nice write up.
>>> Begin shameless plug…
>>> Since I am heavily invested in reading things from MQTT, I just run 
>>> rtl_433 as a separate service and subscribe to the topic. I did this 
>>> primarily to get the data in a service and secondarily to get sensors that 
>>> were not ’mapped’.
>>> The service invocation, ‘ExecStart=/usr/local/bin/rtl_433 -M utc -F 
>>> mqtt://localhost:1883,retain=0,devices=rtl_433[/host]/devices[/type][/model][/subtype][/channel][/id]’
>>> And one topic config looks like this
>>> [[topics]]
>>> ignore = True
>>> [[[message]]] type = individual # Upright freezer (basement) 
>>> [[[rtl_433/weather-data/devices/Acurite-606TX/77/temperature_C]]] ignore = 
>>> False unit_system = METRIC name = extraTemp8 
>>>
>>> It may seem more complicated, but since I was invested in MQTT, it 
>>> actually simplified it. This was primarily because I could treat rtl_433 as 
>>> a separate service
>>>
>>> End plug
>>>
>>> On Wednesday 6 March 2024 at 16:14:25 UTC-5 vince wrote:
>>>
>>>> In working with another weewx user to help him gets his SDR station 
>>>> online, it was clear that lots of people (like me) have some problems 
>>>> really understanding some of the rtl-433 and sdr documentation that is out 
>>>> there.
>>>>
>>>> After working through it end-to-end a few times on both ubuntu and on a 
>>>> raspberry pi, I wrote up the whole setup as a howto with examples mainly 
>>>> for future-me but I thought it might be of general interest.  At worst a 
>>>> google search should find it for future folks trying to battle SDR into 
>>>> submission :-)
>>>>
>>>> The howto and a small github repo with a patched/enhanced fork of the 
>>>> SDR driver is at https://github.com/vinceskahan/sdr-howto if you have 
>>>> interest.  Start with the toplevel readme file then read the howto.txt 
>>>> file 
>>>> for how I got it working here.
>>>>
>>>>

-- 
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/144cf2ad-278c-40d1-9ff5-ea68ddaae3bfn%40googlegroups.com.

Reply via email to