Thanks, everyone.

I will definitely need to grab some text from the feed or database, so
either a simple skin or mqttwarn will work well for that. I have some
experience with adding text to images using imagemagick. What I really
would like is some dials. And I just came across a site with steel gauges
that might be able to create the images I would like to add to the image
background. Work keeps me busy, but I'm going to try to work on that a
little at a time over the next few days.

Ernie

On Sun, Jun 27, 2021 at 10:53 PM Andrew Elwell <[email protected]>
wrote:

> On Mon, 28 Jun 2021 at 08:23, Ernest Jillson <[email protected]> wrote:
> >
> > Anyone know of any skins that can produce a static image with most
> parameters in either text or dial format? The web pages are great, but I'd
> love to find something that creates an image with T, MaxT, MinT, Wind,
> Precip (at the least) and ftp it to a friend's web site.
> >
> > Thanks in advance,
>
> IThe box my webcam (actually a pi + pi camera) is on a different box
> to my weewx host, I found the easiest way was to save the weather
> conditions I was interested in via mqttwarn[1] which dumps it down to
> a local file (since 'loop' outputs may not align with the timings when
> I need to grab an image.
>
> The image is grabbed every 5 mins:
> pi@stupify:~ $ crontab -l | grep cam
> */5 5-20 * * * /home/pi/llamacam.py
>
> pi@stupify:~ $ cat /home/pi/llamacam.py
> #!/usr/bin/python3
> import io
> import picamera
> from PIL import Image
> from PIL import ImageFont,ImageDraw
> import time
> import os
>
> temperaturefile = '/var/www/html/weewx/test.txt'
> image_out = '/var/www/html/webcam/latest.jpg'
>
> text_overlay = '{}'.format(time.strftime('%a %Y-%m-%d %H:%M %Z'))
> #print(os.path.getmtime(temperaturefile),time.time(),(time.time() -
> os.path.getmtime(temperaturefile)))
> if (time.time() - os.path.getmtime(temperaturefile)<= 300):
>     with open(temperaturefile, "r") as f:
>         temperature = float(f.read())
>     text_overlay += ', Outside Temp: {:.1f}°C'.format(temperature)
> else:
>     text_overlay += ' (No temperature reading available)'
>
>
> # Create the in-memory stream
> stream = io.BytesIO()
> with picamera.PiCamera() as camera:
>     camera.led = False
>     camera.resolution = (1920,1080)
>     camera.start_preview()
>     time.sleep(2)
>     camera.capture(stream, format='jpeg')
> # "Rewind" the stream to the beginning so we can read its content
> stream.seek(0)
> image = Image.open(stream)
>
> # add logo to bottom rightt
> overlay = Image.open("lw_logo.png");
> image.paste(overlay, (1400,750 ), overlay)
>
> # add text too
> font = ImageFont.truetype("Miriam.ttf", 36)
> draw = ImageDraw.Draw(image)
> draw.text((50, 1020), text_overlay, font=font, fill='rgb(0, 168, 162)')
>
> image.save(image_out)
>
>
>
>
> And that dumps out the following image
>
>
> [1] https://github.com/jpmens/mqttwarn
>
> --
> 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/CAANX9yecbCTDTG3C5rezSqpftPcKZ%2BAZOcLOh43XqDw8caEufg%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAC5oUmO1NR42S0Ex1_jR02obe6AHNxjZFiDUcXjF88z8%2BLA_dg%40mail.gmail.com.

Reply via email to