Dear Vince, thank you very much for providing the scripts! I really do appreciate! However, last Tuesday I changed my ISP. Good think - it is 1 Gbps! And my challenge was that it is IPv6 and I had to learn very quickly that port forwarding with IPv6 is completely different to IPv4, and even more particular DDNS with IPv6. But I am happy to report that my server is back online rv.sgplex.de :) As I will be on vacation in Spain the next few weeks, I will place your scripts in action!
Thanks again for providing them! Cheers On Monday, August 28, 2023 at 10:17:58 PM UTC+2 vince wrote: > (sorry - ignore the earlier truncated post) > > I cooked up a bash script that subscribes, calls a python script to > reformat, then publishes. The bash script sleeps a second between loops > to not eat up your cpu. You 'should' be able to change the variables in > the bash script to match your configuration pretty easily... > > This subscribes to ORIGINAL_TOPIC and publishes to FINAL_TOPIC in the bash > script. > To test: > > - open a bash window and subscribe to the FINAL_TOPIC > - open a second window and run the bash script which will > listen/reformat/publish > - if you're not querying your gps currently, open a third window and > publish to the ORIGINAL_TOPIC ala > > mosquitto_pub -h 192.168.1.171 -t RV/original -m > '[{"dateTime":"1693128700.0","gpsLat":"52.152435"},{"dateTime":"1693128700.0","gpsLong":"9.929356"}]' > > What you should see in window1 that is subscribing is output ala: > {"dateTime": "1693128700.0", "gpsLat": "52.152435", "gpsLong": "9.929356"} > > That kind of data should be ok to subscribe to in weewx for your lat/lon > data.... > > #---- reformat_mqtt.bash ---- > > #!/bin/bash > # > # ip address of MQTT broker > BROKER="192.168.1.171" > > ORIGINAL_TOPIC="RV/original" > FINAL_TOPIC="RV/final" > > while true; do > > # subscribe to a topic > # run the python script to reformat to stdout > # publish to a final topic > > mosquitto_sub -C 1 -h ${BROKER} -t ${ORIGINAL_TOPIC} \ > | python3 reformat_mqtt.py \ > | mosquitto_pub --stdin-line -h ${BROKER} -t ${FINAL_TOPIC} > > # sleep a bit to not eat up your cpu > sleep 1 > > done > > > #---- reformat_mqtt.py ----- > # > # this reformats the GPS information > # to a more normal looking output > # > > # it assumes your input data is always in the same order and always > complete > # ala: > [{"dateTime":"1693128700.0","gpsLat":"52.152435"},{"dateTime":"1693128700.0","gpsLong":"9.929356"}] > > import json > import sys > for line in sys.stdin: > jsondata = json.loads(line) > reorganized_data = {} > reorganized_data['dateTime'] = jsondata[0]['dateTime'] > reorganized_data['gpsLat'] = jsondata[0]['gpsLat'] > reorganized_data['gpsLong'] = jsondata[1]['gpsLong'] > print(json.dumps(reorganized_data)) > > > On Monday, August 28, 2023 at 5:19:15 AM UTC-7 Stefan Gliessmann wrote: > >> I asked in the community forum for my router and I was told that this is >> the only way they can currently forward data via MQTT. >> A future firmware release shall allow more formatting. >> >> I might now play around with this >> https://github.com/mrtncls/mqtt-translator to get the MQTT payload from >> an array in one single statement ... >> Anybody used the MQTT Translator for this purpose? >> >> On Monday, August 28, 2023 at 11:01:41 AM UTC+2 Stefan Gliessmann wrote: >> >>> Which code do you refer to? >>> [image: Screenshot 2023-08-28 at 11.00.03.png] >>> This is what I specified in the GPS/Router to push via MQTT to my broker >>> ... >>> On Sunday, August 27, 2023 at 8:39:40 PM UTC+2 vince wrote: >>> >>>> We'd have to see your code to see what you are publishing. >>>> >>>> Your MQTT log looks very odd and likely needs some tweaking >>>> >>>> MQTT: >>>> [{"dateTime":"1693128700.0","gpsLat":"52.152435"},{"dateTime":"1693128700.0","gpsLong":"9.929356"}] >>>> >>>> >>>> >>>> I'd expect something like {"dateTime":"1233456", "gpsLat":"52.1234", >>>> "gpsLong": "9.987"} for a more typical set of JSON to publish. You want >>>> one element (not in an array) with three items therein - dateTime/lat/lon. >>>> >>>> -- 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/066c03f8-5bb8-42ff-adbb-3c258676ab91n%40googlegroups.com.