I see that JSON is a library included with Python. I installed the
CumulusMx image on my Pi4. I was going through the first time setup and was
wondering what is the best station to use to be able to send data to APRS
and CWOP. I thought about Ecowitt but it wanted information I didn't have.

On Mon, Jun 24, 2024, 11:19 AM Eddie Bryant <[email protected]> wrote:

> Michael,
>
> Is JSON something that needs to be installed before running your script? I
> noticed that it is imported.
>
> Eddie
>
> On Sun, Jun 23, 2024, 7:09 PM Michael <[email protected]> wrote:
>
>> import requests
>> import json
>> from datetime import datetime
>> import time
>>
>> def fetch_and_send_data():
>>     try:
>>         # Fetch the JSON data
>>         json_url = "http://192.168.1.9/client?command=record";
>>         response = requests.get(json_url)
>>         response.raise_for_status()  # Raise an exception for HTTP errors
>>         data = response.json()
>>
>>         # Mapping function
>>         def map_data(data):
>>             mapped_data = {
>>                 "tempinf": None,
>>                 "humidityin": None,
>>                 "baromrelin": None,
>>                 "baromabsin": None,
>>                 "tempf": None,
>>                 "humidity": None,
>>                 "winddir": None,
>>                 "windspeedmph": None,
>>                 "windgustmph": None,
>>                 "maxdailygust": None,
>>                 "solarradiation": None,
>>                 "uv": None,
>>                 "rainratein": None,
>>                 "eventrainin": None,
>>                 "hourlyrainin": None,
>>                 "dailyrainin": None,
>>                 "weeklyrainin": None,
>>                 "monthlyrainin": None,
>>                 "yearlyrainin": None,
>>                 "totalrainin": None
>>             }
>>
>>             for sensor in data['sensor']:
>>                 title = sensor['title']
>>                 for parameter in sensor['list']:
>>                     param_name = parameter[0]
>>                     value = parameter[1]
>>
>>                     if title == "Indoor":
>>                         if param_name == "Temperature":
>>                             mapped_data["tempinf"] = value
>>                         elif param_name == "Humidity":
>>                             mapped_data["humidityin"] = value
>>
>>                     elif title == "Outdoor":
>>                         if param_name == "Temperature":
>>                             mapped_data["tempf"] = value
>>                         elif param_name == "Humidity":
>>                             mapped_data["humidity"] = value
>>
>>                     elif title == "Pressure":
>>                         if param_name == "Absolute":
>>                             mapped_data["baromabsin"] = value
>>                         elif param_name == "Relative":
>>                             mapped_data["baromrelin"] = value
>>
>>                     elif title == "Wind Speed":
>>                         if param_name == "Direction":
>>                             mapped_data["winddir"] = value
>>                         elif param_name == "Wind":
>>                             mapped_data["windspeedmph"] = value
>>                         elif param_name == "Gust":
>>                             mapped_data["windgustmph"] = value
>>                         elif param_name == "Max Daily Gust":
>>                             mapped_data["maxdailygust"] = value
>>
>>                     elif title == "Solar":
>>                         if param_name == "Light":
>>                             mapped_data["solarradiation"] = value
>>                         elif param_name == "UVI":
>>                             mapped_data["uv"] = value
>>
>>                     elif title == "Rainfall":
>>                         if param_name == "Rate":
>>                             mapped_data["rainratein"] = value
>>                         elif param_name == "Hour":
>>                             mapped_data["hourlyrainin"] = value
>>                         elif param_name == "Day":
>>                             mapped_data["dailyrainin"] = value
>>                         elif param_name == "Week":
>>                             mapped_data["weeklyrainin"] = value
>>                         elif param_name == "Month":
>>                             mapped_data["monthlyrainin"] = value
>>                         elif param_name == "Year":
>>                             mapped_data["yearlyrainin"] = value
>>                         elif param_name == "Total":
>>                             mapped_data["totalrainin"] = value
>>
>>             return mapped_data
>>
>>         mapped_data = map_data(data)
>>
>>         # Create the formatted response
>>         dateutc = datetime.utcnow().strftime('%Y-%m-%d+%H:%M:%S')
>>         PASSKEY = "ASDFASDF1234ASDF1234"
>>         stationtype = "RADDY_L7"
>>         MODEL = "RaddyL7"
>>         Frequency = "1"
>>         formatted_response =
>> f"PASSKEY={PASSKEY}&stationtype={stationtype}&dateutc={dateutc}&model={MODEL}&Frequency={Frequency}"
>>
>>         for key, value in mapped_data.items():
>>             if value is not None:
>>                 formatted_response += f"&{key}={value}"
>>
>>         # Define the URL to send the POST request to
>>         post_url = "http://localhost:8998/station/ecowitt";
>>
>>         # Send the POST request
>>         headers = {'Content-Type': 'application/x-www-form-urlencoded'}
>>         post_response = requests.post(post_url, data=formatted_response,
>> headers=headers)
>>         print(formatted_response)
>>         # Print the response from the POST request
>>         print(post_response.status_code)
>>         print(post_response.text)
>>
>>     except Exception as e:
>>         print(f"An error occurred: {e}")
>>
>> # Main loop to repeat the function every x seconds
>> x = 10  # Set the interval (in seconds)
>> while True:
>>     fetch_and_send_data()
>>     time.sleep(x)
>>
>> On Sunday, June 23, 2024 at 3:05:01 PM UTC-7 Eddie Bryant wrote:
>>
>>> I did a search for Python script but there seems to be a lot of posts.
>>> What is your user name there?
>>>
>>> Eddie
>>>
>>> On Sat, Jun 22, 2024, 10:40 PM Eddie Bryant <[email protected]> wrote:
>>>
>>>> Thanks, I'll check it out tomorrow. Good night.
>>>>
>>>> Eddie
>>>>
>>>> On Sat, Jun 22, 2024, 10:38 PM Michael <[email protected]> wrote:
>>>>
>>>>> I would head over the CumulusMX forum like.  I posted a Python script
>>>>> you can modify to reformat the data for CMX.
>>>>>
>>>>> On Sat, Jun 22, 2024 at 7:37 PM Eddie Bryant <[email protected]> wrote:
>>>>>
>>>>>> Michael,
>>>>>>
>>>>>> I get a page that shows the data.
>>>>>>
>>>>>> Eddie
>>>>>>
>>>>>> On Sat, Jun 22, 2024, 10:17 PM Michael <[email protected]> wrote:
>>>>>>
>>>>>>> go to http://192.168.1.5/client?command=record  Do you get a
>>>>>>> result?
>>>>>>>
>>>>>>> On Saturday, June 22, 2024 at 6:35:17 PM UTC-7 Eddie Bryant wrote:
>>>>>>>
>>>>>>>> Michael,
>>>>>>>>
>>>>>>>> Thank you for your response. I am not familiar with JSON. The WiFi
>>>>>>>> setup for the WF-100SE says to connect to the L7-xxxx network and 
>>>>>>>> using a
>>>>>>>> browser type in 192.168.1.5. That brings up a page where I type in my
>>>>>>>> network SSID and the pass key. Below that is sections for adding IDs 
>>>>>>>> and
>>>>>>>> keys for linking to weather unground and weather cloud.
>>>>>>>>
>>>>>>>> I reason if I can link to those I should be able to link to APRS.fi
>>>>>>>> and CWOP but I am not sure how to do that.
>>>>>>>>
>>>>>>>> Eddie
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sat, Jun 22, 2024, 9:12 PM Michael <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> I would verify if you can get the observations out of the unit
>>>>>>>>> like I was able to.
>>>>>>>>>
>>>>>>>>> I went with CumulusMX instead of WeeWX and their board suggested
>>>>>>>>> translating the JSON to a ECOWITT HTTP Post.  Script is in the thread
>>>>>>>>> below.  Overall, I am happier with CumulusMX both in terms of product 
>>>>>>>>> and
>>>>>>>>> support community over WeeWX.  I was able to enable the WXNOW file for
>>>>>>>>> Direwolf to post APRS reports easily.
>>>>>>>>>
>>>>>>>>> https://cumulus.hosiene.co.uk/viewtopic.php?t=22258&start=15
>>>>>>>>>
>>>>>>>>> On Saturday, June 22, 2024 at 5:47:05 PM UTC-7 Ebryant wrote:
>>>>>>>>>
>>>>>>>>>> I have a Raddy WF-100SE station that I would like to get data to
>>>>>>>>>> aprs.fi and CWOP. If anyone has any suggestions it would help.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wednesday, March 13, 2024 at 11:42:52 AM UTC-4 Michael wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> I currently have a Raddy L7 LoRA station.  It appears that that
>>>>>>>>>>> the weather station provides a JSON output of observations.  I am
>>>>>>>>>>> soliciting a paid opportunity to develop a driver for this weather 
>>>>>>>>>>> station
>>>>>>>>>>> and create a Github page for driver to spread the word.  I am just a
>>>>>>>>>>> personal user, but figure this may be a better approach than having 
>>>>>>>>>>> to buy
>>>>>>>>>>> a supported station.  I am not a developer and simply don't have 
>>>>>>>>>>> the time
>>>>>>>>>>> to undertake the effort, but want users of this weather station to 
>>>>>>>>>>> be able
>>>>>>>>>>> to use WeeWx (Yes, I tried Interceptor, but I failed in getting to 
>>>>>>>>>>> work and
>>>>>>>>>>> this appears to be a more graceful approach).  If you are 
>>>>>>>>>>> interested in the
>>>>>>>>>>> work, please let me know.
>>>>>>>>>>>
>>>>>>>>>>>  The JSON URL is http://ip/client?command=record
>>>>>>>>>>>
>>>>>>>>>>> The update period appears to vary between 5-30 seconds.
>>>>>>>>>>>
>>>>>>>>>>> Example output
>>>>>>>>>>> Sensor         Parameter           Value
>>>>>>>>>>> -------------------------------------------------------
>>>>>>>>>>> Indoor         Temperature         69.4
>>>>>>>>>>> Indoor         Humidity            43
>>>>>>>>>>> Outdoor        Temperature         44.7
>>>>>>>>>>> Outdoor        Humidity            70
>>>>>>>>>>> Pressure       Absolute            26.74
>>>>>>>>>>> Pressure       Relative            29.86
>>>>>>>>>>> Wind Speed     Max Daily Gust      3.8
>>>>>>>>>>> Wind Speed     Wind                0.0
>>>>>>>>>>> Wind Speed     Gust                0.0
>>>>>>>>>>> Wind Speed     Direction           213
>>>>>>>>>>> Wind Speed     Wind Average 2 Minute0.0
>>>>>>>>>>> Wind Speed     Direction Average 2 Minute204
>>>>>>>>>>> Wind Speed     Wind Average 10 Minute0.2
>>>>>>>>>>> Wind Speed     Direction Average 10 Minute300
>>>>>>>>>>> Rainfall       Rate                0.0
>>>>>>>>>>> Rainfall       Hour                0.0
>>>>>>>>>>> Rainfall       Day                 0.0
>>>>>>>>>>> Rainfall       Week                0.73
>>>>>>>>>>> Rainfall       Month               0.73
>>>>>>>>>>> Rainfall       Year                6.45
>>>>>>>>>>> Rainfall       Total               11.39
>>>>>>>>>>> Solar          Light               0.3
>>>>>>>>>>> Solar          UVI                 0.0
>>>>>>>>>>> JSON Message:
>>>>>>>>>>> {"sensor":[
>>>>>>>>>>> {"title":"Indoor","list":[["Temperature","71.6","°F"],["Humidity","41","%"]]},{"title":"Outdoor","list":[["Temperature","59.2","°F"],["Humidity","44","%"]]},{"title":"Pressure","list":[["Absolute","26.77","inhg"],["Relative","29.89","inhg"]]},{"title":"Wind
>>>>>>>>>>> Speed","list":[["Max Daily
>>>>>>>>>>> Gust","8.9","mph"],["Wind","3.6","mph"],["Gust","3.8","mph"],["Direction","264","°"],["Wind
>>>>>>>>>>> Average 2 Minute","4.3","mph"],["Direction Average 2
>>>>>>>>>>> Minute","246","°"],["Wind Average 10 
>>>>>>>>>>> Minute","3.1","mph"],["Direction
>>>>>>>>>>> Average 10
>>>>>>>>>>> Minute","241","°"]]},{"title":"Rainfall","list":[["Rate","0.0","inch/hr"],["Hour","0.0","inch","43"],["Day","0.0","inch","44"],["Week","0.73","inch","45"],["Month","0.73","inch","46"],["Year","6.45","inch","47"],["Total","11.39","inch","48"]],"range":"Range:
>>>>>>>>>>> 0inch to
>>>>>>>>>>> 393.7inch."},{"title":"Solar","list":[["Light","153.59","w/m²"],["UVI","0.8",""]]}],"battery":{"title":"Battery","list":["All
>>>>>>>>>>> battery are ok"]}}
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>> 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 [email protected].
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/28bf858b-693d-4dc0-9ac1-182cc61fa7den%40googlegroups.com
>>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/28bf858b-693d-4dc0-9ac1-182cc61fa7den%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> --
>>>>>>> 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 [email protected].
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/weewx-user/357ea7c6-b2a7-47a5-ac75-d5e90b96b72fn%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/weewx-user/357ea7c6-b2a7-47a5-ac75-d5e90b96b72fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to a topic in
>>>>>> the Google Groups "weewx-user" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/weewx-user/Lz7X2sp3B8g/unsubscribe.
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/weewx-user/CAJ8RQDqKCX1eis1vf1pc63y1%3D305W1oh2xNLse1Bi7iiD1UWJw%40mail.gmail.com
>>>>>> <https://groups.google.com/d/msgid/weewx-user/CAJ8RQDqKCX1eis1vf1pc63y1%3D305W1oh2xNLse1Bi7iiD1UWJw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> (813) 957-5402
>>>>> [email protected]
>>>>>
>>>>> --
>>>>> 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 [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/weewx-user/CAKNRWhoYmeq3NCQsjG-%2BFyAQXn7KXsv12nMvcVSR71Qkm%3DajXA%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/weewx-user/CAKNRWhoYmeq3NCQsjG-%2BFyAQXn7KXsv12nMvcVSR71Qkm%3DajXA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>> 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 [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-user/00320c56-07e3-4a9e-9daa-84afd9c8f3den%40googlegroups.com
>> <https://groups.google.com/d/msgid/weewx-user/00320c56-07e3-4a9e-9daa-84afd9c8f3den%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAJ8RQDroTxKBrPzvrZTCCnzi2CvNFFS%3D%3DDdakmoPWJHn9Tpf8w%40mail.gmail.com.

Reply via email to