On second thought, I can think of reasons to have times in the packet. So, I take back being very interested in the log info from version 1.3.2.
I’ll push a 1.3.3 shortly that skips formatting the sum of unix_epoch observations. > On Jul 2, 2020, at 10:44 AM, John Kline <j...@johnkline.com> wrote: > > > OK, I pushed 1.3.2. It will catch and skip the FMT_SUM_<obs> when something > goes wrong. > It will also log the incident and include the obstype, the unit_type and the > unit_group. I am VERY > interested in seeing this information. Please send it. > > Cheers, > John > >>> On Jul 2, 2020, at 10:21 AM, John Kline <j...@johnkline.com> wrote: >>> >> >> It’s formatting a sum for a unix_epoch type. Sum doesn’t make sense for >> this type; but the observation, >> which I unfortunately don’t log, seems to have a scalar accumulator. >> >> This doesn’t seem right to me. I could skip summing, etc. for this type; >> but this is strange. >> >> I’ll put out an update today that works around this, and logs it, please get >> back to me with the actual >> observation you see in the log with hew new version. >> >>>> On Jul 2, 2020, at 9:45 AM, Geni 0815 <geni0815.0...@gmail.com> wrote: >>>> >>> >>> At the moment I have the following errors >>> Since no loop-data.txt is generated, rsync is diabled >>> >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> Traceback (most recent call last): >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> File "/usr/share/weewx/user/loopdata.py", line 515, in process_queue >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> self.convert_units(pkt, obstype) >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> File "/usr/share/weewx/user/loopdata.py", line 757, in convert_units >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> self.convert_hi_lo_etc_units(pkt, obstype, unit_type, unit_group) >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> File "/usr/share/weewx/user/loopdata.py", line 685, in >>>> convert_hi_lo_etc_units >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> pkt['FMT_SUM_%s' % obstype] = self.cfg.formatter.toString((sum, >>>> unit_type, unit_group)) >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> File "/usr/share/weewx/weewx/units.py", line 758, in toString >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> time.localtime(val_t[0])) >>>> Jul 2 17:55:23 Wetter-Raspi weewx[947] CRITICAL user.loopdata: **** >>>> OverflowError: timestamp out of range for platform time_t >>>> >>>> pi@Wetter-Raspi:~/wetter/loop-data $ ^C >>>> pi@Wetter-Raspi:~/wetter/loop-data $ sudo wee_extension --list >>>> Extension Name Version Description >>>> weatherboard 1.0 WeatherBoard skin. >>>> Belchertown 1.1 A clean modern skin with real time streaming >>>> updates and interactive charts. Modeled after BelchertownWeather.com >>>> loopdata 1.3.1 Loop statistics for real time reporting. >>>> >>> >>> Am Mittwoch, 1. Juli 2020 19:51:05 UTC+2 schrieb John Kline: >>>> >>>> I added this section to the README: >>>> >>>> Rsync "errors" in the log: >>>> >>>> If one is using rsync, especially if the loop interval is short (e.g., >>>> 2s), it is expected that >>>> >>>> there will be log entries for connection timeouts, data timeouts and >>>> skipped packets. >>>> >>>> By default only one second is allowed to connect or transmit the data. >>>> Also, by default, >>>> >>>> if the loop data is older than 3s, it is skipped. With these settings, the >>>> remote server >>>> >>>> may miss receiving some loop-data packets, but it won't get caught behind >>>> trying to >>>> >>>> send a backlog of old loop data. >>>> >>>> >>>> >>>> Following are examples of a connection timeout, a data transmission >>>> timeout and a >>>> >>>> skipped packet. These errors are fine in moderation. If too many packets >>>> are timing out, >>>> >>>> one might try changing the connection timeout or timeout values (depending >>>> on whether >>>> >>>> the timeouts are in the connection or the transmission). >>>> >>>> Jul 1 04:12:03 charlemagne weewx[1126] ERROR weeutil.rsyncupload: >>>> [['rsync', '--archive', '--stats', '--timeout=1', '-e ssh -o >>>> ConnectTimeout=1', '/home/weewx/gauge-data/loop-data.txt', >>>> 'r...@www.paloaltoweather.com:/home/weewx/gauge-data/loop-data.txt']] >>>> reported errors: ssh: connect to host www.paloaltoweather.com port 22: >>>> Connection timed out. rsync: connection unexpectedly closed (0 bytes >>>> received so far) [sender]. rsync error: unexplained error (code 255) at >>>> io.c(235) [sender=3.1.3] >>>> Jun 30 20:51:48 charlemagne weewx[1126] ERROR weeutil.rsyncupload: >>>> [['rsync', '--archive', '--stats', '--timeout=1', '-e ssh -o >>>> ConnectTimeout=1', '/home/weewx/gauge-data/loop-data.txt', >>>> 'r...@www.paloaltoweather.com:/home/weewx/gauge-data/loop-data.txt']] >>>> reported errors: [sender] io timeout after 1 seconds -- exiting. rsync >>>> error: timeout in data send/receive (code 30) at io.c(204) [sender=3.1.3] >>>> Jun 21 19:16:23 charlemagne weewx[8170] INFO user.rtgd: rsync_data: >>>> skipping packet (2020-06 >>>> >>>>>> On Jul 1, 2020, at 10:20 AM, John Kline <jo...@johnkline.com> wrote: >>>>>> >>>>> >>>>> It is normal to have some timeouts as the timeout is set to 1s. >>>>> >>>>> For example, today so far I’ve had 5 connection timeouts on loop-data. >>>>> I’ve also had 3 gauge-data timeouts (I contributed the rsync code for >>>>> rtgd). >>>>> >>>>> rsync: gauge-data: connection timeouts 3 >>>>> rsync: loop-data: connection timeouts 5 >>>>> >>>>> How many of these error messages are you seeing? >>>>> >>>>> John >>>>> >>>>>>> On Jul 1, 2020, at 10:03 AM, Geni 0815 <geni08...@gmail.com> wrote: >>>>>>> >>>>>> >>>>>> >>>>>> @John: This is the error message, where do I have to search? >>>>>> >>>>>>> reported errors: [sender] io timeout after 1 seconds -- exiting. rsync >>>>>>> error: timeout in data send/receive (code 30) at io.c(204) >>>>>>> [sender=3.1.3] >>>>>> >>>>>> complete line: >>>>>> Jul 1 18:47:12 Wetter-Raspi weewx[22015] ERROR weeutil.rsyncupload: >>>>>> [['rsync', '--archive', '--stats', '--timeout=1', '-e ssh -p 2022 -o >>>>>> ConnectTimeout=1', '/home/pi/NAS/www/loop-data/loop-data.txt', >>>>>> 'xxxxxx@192.999.999.9:/xxx/yyyy/loop-data/loop-data.txt']] reported >>>>>> errors: [sender] io timeout after 1 seconds -- exiting. rsync error: >>>>>> timeout in data send/receive (code 30) at io.c(204) [sender=3.1.3] >>>>>> >>>>>> >>>>>> Am Dienstag, 30. Juni 2020 16:01:30 UTC+2 schrieb John Kline: >>>>>>> >>>>>>> weeutil.RsyncUpload was expecting a string for port. I was passing it >>>>>>> an int. >>>>>>> >>>>>>> I didn’t catch this as I was not specifying a port. This should now be >>>>>>> fixed in 1.3.1. Would you please give it a try? >>>>>>> >>>>>>>>> On Jun 30, 2020, at 1:32 AM, Geni 0815 <geni08...@gmail.com> wrote: >>>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** Traceback (most recent call last): >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 521, in >>>>>>>>> process_queue >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** self.compose_and_write_packet(pkt) >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 541, in >>>>>>>>> compose_and_write_packet >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** self.write_packet(selective_pkt) >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 555, in >>>>>>>>> write_packet >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** self.rsync_data(pkt['dateTime']) >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 645, in >>>>>>>>> rsync_data >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** rsync_upload.run() >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** File "/usr/share/weewx/weeutil/rsyncupload.py", line 72, in >>>>>>>>> run >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** if self.port is not None and len(self.port.strip()) > 0: >>>>>>>>> Jun 30 10:27:05 Wetter-Raspi weewx[10952] CRITICAL user.loopdata: >>>>>>>>> **** AttributeError: 'int' object has no attribute 'strip' >>>>>>>>> >>>>>>>>> >>>>>>>> Am Dienstag, 30. Juni 2020 09:47:44 UTC+2 schrieb Geni 0815: >>>>>>>>> >>>>>>>>> @John: I have the following entry in the syslog, what is not suitable? >>>>>>>>> >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] INFO user.loopdata: >>>>>>>>>> barometer_rate_secs: 10800 >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] INFO user.loopdata: >>>>>>>>>> wind_rose_secs : 86400 >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] INFO user.loopdata: >>>>>>>>>> wind_rose_points : 16 >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** Traceback (most recent call last): >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 521, in >>>>>>>>>> process_queue >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** self.compose_and_write_packet(pkt) >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 541, in >>>>>>>>>> compose_and_write_packet >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** self.write_packet(selective_pkt) >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 555, in >>>>>>>>>> write_packet >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** self.rsync_data(pkt['dateTime']) >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** File "/usr/share/weewx/user/loopdata.py", line 645, in >>>>>>>>>> rsync_data >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** rsync_upload.run() >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** File "/usr/share/weewx/weeutil/rsyncupload.py", line 72, in >>>>>>>>>> run >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** if self.port is not None and len(self.port.strip()) > 0: >>>>>>>>>> Jun 30 09:24:21 Wetter-Raspi weewx[10361] CRITICAL user.loopdata: >>>>>>>>>> **** AttributeError: 'int' object has no attribute 'strip' >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Am Samstag, 27. Juni 2020 21:18:06 UTC+2 schrieb John Kline: >>>>>>>>>> >>>>>>>>>> I just now updated this extension to 1.1. I would try it before >>>>>>>>>> resorting to a clean install. >>>>>>>>>> >>>>>>>>>>> On Jun 27, 2020, at 12:16 PM, Michael Meyer <mm24...@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Hello John, I did grep and get some results. Next time I used grep >>>>>>>>>>> again no results. I uninstalled weewx because I did the first >>>>>>>>>>> installation with Debian. I did installation weewx with setup py. >>>>>>>>>>> Again no loop_data.txt created. I will do a fresh Buster light >>>>>>>>>>> image next. After that I will do also a complete new weewx >>>>>>>>>>> installation. I will let you know if successfully. Thx for your >>>>>>>>>>> help! >>>>>>>>>>> Michael >>>>>>>>>>> >>>>>>>>>>> John Kline <jo...@johnkline.com> schrieb am Fr., 26. Juni 2020, >>>>>>>>>>> 20:54: >>>>>>>>>>>> Well, I see loopdata in the log snippet you just sent. >>>>>>>>>>>> >>>>>>>>>>>> Would you try the grep again? >>>>>>>>>>>> grep loopdata /var/log/syslog >>>>>>>>>>>> >>>>>>>>>>>> And look for the loopdata file again? >>>>>>>>>>>> >>>>>>>>>>>>>> On Jun 26, 2020, at 11:48 AM, Michael Meyer <mm24...@gmail.com> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Yes I stopped, start and restart. >>>>>>>>>>>>> I will try to find out how to send files. >>>>>>>>>>>>> <Auszug.png> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> jo...@johnkline.com schrieb am Freitag, 26. Juni 2020 um 20:28:49 >>>>>>>>>>>>> UTC+2: >>>>>>>>>>>>>> Not sure how to post files; but since you are running WeeWX 4 >>>>>>>>>>>>>> and Python 3. Did you restart WeeWX after you installed >>>>>>>>>>>>>> loopdata? >>>>>>>>>>>>>> >>>>>>>>>>>>>> It’s to imagine why you don’t see any occurrence of loopdata in >>>>>>>>>>>>>> the log? Do you see other weewx messages in the log? >>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Jun 26, 2020, at 10:40 AM, Michael Meyer >>>>>>>>>>>>>>>> <mm24...@gmail.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Weewx 4.1.1 is running I have Python 3.7 on my rpi. >>>>>>>>>>>>>>> Any idea why I can't post the created myfile here? I just can >>>>>>>>>>>>>>> post pictures but no files! I can create an attachment but >>>>>>>>>>>>>>> couldn't send? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> jo...@johnkline.com schrieb am Freitag, 26. Juni 2020 um >>>>>>>>>>>>>>> 18:19:36 UTC+2: >>>>>>>>>>>>>>>> It appears that loopdata isn’t running. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Let’s start with the obvious. As stated in the README: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> This extension requires Python 3 and WeeWX 4. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Are you running WeeWX 4.x? Are you running Python 3? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> If are on WeeWX 4.x and Python 3, use the following guide to >>>>>>>>>>>>>>>> post the log and I’ll have a look. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> https://github.com/weewx/weewx/wiki/Help!-Posting-to-weewx-user >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>>> John >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Jun 26, 2020, at 8:27 AM, Michael Meyer >>>>>>>>>>>>>>>>>> <mm24...@gmail.com> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi John, >>>>>>>>>>>>>>>>> thx for your help! grep loopdata /var/log/syslog doesn't >>>>>>>>>>>>>>>>> deliver anything. With "where is" I get zero result in >>>>>>>>>>>>>>>>> var/log/syslog. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> <loopdata.png> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> <wee_extension.png> >>>>>>>>>>>>>>>>> <var-www-html-weewx.png> >>>>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>>>> Michael >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> 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+...@googlegroups.com. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/d261b8ee-957e-4158-9b80-dcbe21fcc3f5n%40googlegroups.com. >>>>>>>>>>>>>>>>> <wee_extension.png> >>>>>>>>>>>>>>>>> <var-www-html-weewx.png> >>>>>>>>>>>>>>>>> <loopdata.png> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> 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+...@googlegroups.com. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/cf03c41c-a0fc-41f0-bee1-51e921e55122n%40googlegroups.com. >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> 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...@googlegroups.com. >>>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/2b47dad8-63fb-4310-b7e6-befef8b22a0bn%40googlegroups.com. >>>>>>>>>>>>> <Auszug.png> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> 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...@googlegroups.com. >>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/99150DD3-6998-4BAC-9E06-E461789335F9%40johnkline.com. >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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...@googlegroups.com. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/CAK0Zn%2BRxuLBBnPZMdruaALU-%3Dx8b0V_Xa87VTJYNMsEHNuAgXg%40mail.gmail.com. >>>>>>>> -- >>>>>>>> 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...@googlegroups.com. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/weewx-user/2b71dcb5-9263-41b7-8481-823e9e609107o%40googlegroups.com. >>>>>> >>>>>> -- >>>>>> 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...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/weewx-user/89dcfac9-724b-433e-acf8-14b92efd6ed3o%40googlegroups.com. >>> >>> -- >>> 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/e82f4d60-79dc-49ab-ab15-4b41fa5a9550o%40googlegroups.com. -- 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/3F39974F-697F-499F-B3BA-795576D99BA2%40johnkline.com.