Hi Tom,
Sorry, at the moment, I fix this issue.
When you want to make a request by using : requests.get("url") in
genLoopPacket(), Weewx is mistaken with this proper get function, I don't
know why but I fix this by declare Request = requests.session()
Also, I want to know if it possible to have the daily rain max by using a
function in manager.py ? I see _read_metadata() or _get_day_summary() but I
don't know how to implement it.
F. Prevost
I see
Le mardi 23 juin 2020 à 15:43:26 UTC+2, Tom Keffer a écrit :
> Florentin, you are being very vague about the error. You're showing no
> code, and you're not showing the error. "weewx confuse to internal get". I
> don't know what that means.
>
>
>
>
>
> On Mon, Jun 22, 2020 at 11:35 AM [email protected] <[email protected]>
> wrote:
>
>> Ok I found the problem, I use request to get json from URL but weewx
>> confuse to internal get.
>>
>> How can I pass this error ?
>>
>> Le lundi 22 juin 2020 à 19:26:46 UTC+2, [email protected] a écrit :
>>
>>> Hi,
>>>
>>> Yeahh :) It work ahah ^^ Thank you for your answer.
>>>
>>> I try to implement genArchiveRecords(self,since_ts): but I've this error
>>> :
>>>
>>>
>>> 1. INFO weewx.engine: Main loop exiting. Shutting engine down.
>>> 2. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: Caught
>>> unrecoverable exception:
>>> 3. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> 'generator' object has no attribute 'get'
>>> 4. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> Traceback (most recent call last):
>>> 5. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> File "/usr/share/weewx/weewxd", line 154, in main
>>> 6. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> engine.run()
>>> 7. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> File "/usr/share/weewx/weewx/engine.py", line 158, in run
>>> 8. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> self.dispatchEvent(weewx.Event(weewx.STARTUP))
>>> 9. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> File "/usr/share/weewx/weewx/engine.py", line 224, in dispatchEvent
>>> 10. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> callback(event)
>>> 11. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> File "/usr/share/weewx/weewx/engine.py", line 530, in startup
>>> 12. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> self._catchup(self.engine.console.genStartupRecords)
>>> 13. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> File "/usr/share/weewx/weewx/engine.py", line 639, in _catchup
>>> 14. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> ts = record.get('dateTime')
>>> 15. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> AttributeError: 'generator' object has no attribute 'get'
>>> 16. Jun 22 19:19:32 debian weewx[1344] CRITICAL __main__: ****
>>> Exiting.
>>> 17. Jun 22 19:20:30 debian systemd[1]: session-14.scope: Succeeded.
>>>
>>>
>>> I don't know why ? I import weewx.engine into my blabla.py
>>>
>>> Maybe I losted to implement other value or function ?
>>> Le lundi 22 juin 2020 à 14:08:03 UTC+2, Tom Keffer a écrit :
>>>
>>>> A driver is different from a service. The documentation you quoted is
>>>> for a *service*. You want the section *Porting to new hardware
>>>> <http://www.weewx.com/docs/customizing.htm#porting>*.
>>>>
>>>> Take a look at Vince's driver that you linked to in the first post of
>>>> this thread. On line 106
>>>> <https://github.com/vinceskahan/weewx-weatherlinklive-json/blob/master/bin/user/WeatherLinkLiveJSON.py#L106>,
>>>>
>>>> the configuration dictionary (argument config_dict) is passed into the
>>>> function loader(). It contains everything in weewx.conf. On the next
>>>> line, 107, just the substructure config_dict['WeatherLinkLiveJSON'],
>>>> which corresponds to the section [WeatherLinkLiveJSON]in weewx.conf, is
>>>> passed on to the class WeatherLinkLiveJSONDriver. Nothing else. That's
>>>> a typical pattern.
>>>>
>>>> -tk
>>>>
>>>> On Sun, Jun 21, 2020 at 11:25 PM Florentin Prevost <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Thank you. I stuck just into passed config_dict.
>>>>>
>>>>> How can I pass this value into my driver ?
>>>>>
>>>>> In documentation, he say that create class like this :
>>>>>
>>>>> class MyAlarm(StdService):
>>>>> """Service that sends email if an arbitrary expression evaluates
>>>>> true"""
>>>>>
>>>>> def __init__(self, engine, config_dict):
>>>>>
>>>>>
>>>>>
>>>>> Thank's
>>>>> Le lundi 22 juin 2020 00:16:03 UTC+2, Tom Keffer a écrit :
>>>>>>
>>>>>> Yes, it's possible to access anything in the dictionary. For example,
>>>>>> the name of the database used by the binding wx_binding would be given by
>>>>>>
>>>>>> config_dict['Databases']['wx_binding']['database']
>>>>>>
>>>>>>
>>>>>> However, it is rarely necessary to do this. Better to use the
>>>>>> functions in manager.py to simply open up the database you need. For
>>>>>> example,
>>>>>>
>>>>>> db = manager.open_manager_with_config(config_dict, 'wx_binding')
>>>>>>
>>>>>>
>>>>>> would return a database Manager object for the wx_binding.
>>>>>>
>>>>>> See the section *Programming interface
>>>>>> <http://www.weewx.com/docs/customizing.htm#Programming_interface>* in
>>>>>> the Customizing Guide.
>>>>>>
>>>>>> -tk
>>>>>>
>>>>>> On Sun, Jun 21, 2020 at 2:21 PM Florentin Prevost <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Thank you very well for your answer :)
>>>>>>>
>>>>>>> For the first question, sorry, I wanted to say that if it possible
>>>>>>> to pass argument that is not in stanza [myWlink] for example. Because
>>>>>>> I've
>>>>>>> set the same parameter for sql database if you know what i mean.
>>>>>>>
>>>>>>>
>>>>>>> Le dimanche 21 juin 2020 20:58:58 UTC+2, Tom Keffer a écrit :
>>>>>>>>
>>>>>>>> Make sure you read the section *Porting to new hardware
>>>>>>>> <http://www.weewx.com/docs/customizing.htm#porting>* in the
>>>>>>>> Customizing Guide. It answers some of your questions.
>>>>>>>>
>>>>>>>> 1. The full configuration information is available as the first
>>>>>>>> argument to your driver loader() function as a dictionary.
>>>>>>>> However, in general, you should try to keep your driver as modular as
>>>>>>>> possible, and not pick and choose information from all over the
>>>>>>>> dictionary.
>>>>>>>> Best practice is to have your driver depend on information in its
>>>>>>>> private
>>>>>>>> stanza. For example, if your driver is named mywlnk.py, it should have
>>>>>>>> a
>>>>>>>> stanza
>>>>>>>>
>>>>>>>> [MyWlink]
>>>>>>>>
>>>>>>>> and look there for all its information. But, there are many
>>>>>>>> exceptions to this best practice.
>>>>>>>>
>>>>>>>> 2. The function genArchiveRecords() is a *generator function*. If
>>>>>>>> you don't know what that is, see the section *Generators
>>>>>>>> <https://wiki.python.org/moin/Generators>* in the Python
>>>>>>>> documentation. It takes one argument: a timestamp with the last time
>>>>>>>> in the
>>>>>>>> database. Your function should return all archive records since that
>>>>>>>> time,
>>>>>>>> using a yield statement. It will be called at startup and at the end
>>>>>>>> of
>>>>>>>> each archive interval. However, exactly when should not be your
>>>>>>>> concern ---
>>>>>>>> that's the engine's job.
>>>>>>>>
>>>>>>>> -tk
>>>>>>>>
>>>>>>>> On Sun, Jun 21, 2020 at 10:18 AM Florentin Prevost <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I worked with the fork of
>>>>>>>>> https://github.com/vinceskahan/weewx-weatherlinklive-json and I
>>>>>>>>> would like to ask some questions about driver developpment.
>>>>>>>>>
>>>>>>>>> - How can I passed argument of weewx.conf to my driver ? I work to
>>>>>>>>> request lost data from Weewx on Weatherlink.com because WeatherLink
>>>>>>>>> Live
>>>>>>>>> don't have API to take archive directly and I would like to passed
>>>>>>>>> some
>>>>>>>>> arguments like archive_interval, sql password & etc
>>>>>>>>> - How work genArchiveRecords when it call? It run as each report ?
>>>>>>>>> Or it is a loop that waiting to have return values ?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thank you for your answer and support.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "weewx-development" 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-development/d04b1fde-25c3-476d-b885-8d45b682976ao%40googlegroups.com
>>>>>>>>>
>>>>>>>>> <https://groups.google.com/d/msgid/weewx-development/d04b1fde-25c3-476d-b885-8d45b682976ao%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "weewx-development" 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-development/d524dd2b-0369-42ee-b5e5-73194a97fce1o%40googlegroups.com
>>>>>>>
>>>>>>> <https://groups.google.com/d/msgid/weewx-development/d524dd2b-0369-42ee-b5e5-73194a97fce1o%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "weewx-development" 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-development/3a68298f-1115-4edf-bac0-b0890b132c7fo%40googlegroups.com
>>>>>
>>>>> <https://groups.google.com/d/msgid/weewx-development/3a68298f-1115-4edf-bac0-b0890b132c7fo%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>> You received this message because you are subscribed to the Google Groups
>> "weewx-development" 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-development/5b438db6-281a-456e-b8b2-9cf7d5dd7325n%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/weewx-development/5b438db6-281a-456e-b8b2-9cf7d5dd7325n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"weewx-development" 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-development/df28d5b8-8d9e-4727-a9ce-b1d39f7cb8f8n%40googlegroups.com.