blog.gcawood.comFiddlings | Gareth's Random Blog of Fiddlings

blog.gcawood.com Profile

Blog.gcawood.com is a subdomain of gcawood.com, which was created on 2009-11-05,making it 15 years ago.

Description:Gareth's Random Blog of...

Discover blog.gcawood.com website stats, rating, details and status online.Use our online tools to find owner and admin contact info. Find out where is server located.Read and write reviews or vote to improve it ranking. Check alliedvsaxis duplicates with related css, domain relations, most used words, social networks references. Go to regular site

blog.gcawood.com Information

HomePage size: 81.152 KB
Page Load Time: 0.0764 Seconds
Website IP Address: 198.54.120.203

blog.gcawood.com Similar Website

Lars Ingebrigtsen's Random Thoughts
lars.ingebrigtsen.no
Random Hills Community Association
randomhills.gogladly.com
JConcepts Blog – Random Thoughts with a Drop of Knowledge
blog.jconcepts.net
A Pretty Happy Home – Life, DIY and Random Things That Make Me Smile
test.aprettyhappyhome.com
William's Personal Web Server and Random Thoughts
greyghost.mooo.com
vs pod – discursive listening. vs pod is a podcast built on the principles of random, discovery, con
www.vs.smegradio.com
StrangerCam: Random Video Chat with Strangers
app.strangercam.com
Random Bibleizer - Choose a Random Bible Chapter to Read
randombibleizer.spiffy.tech
Language study tools : Random Online English Name Generator / Random Online Japanese Name Generator
englishname.ltool.net
OysterShark Blog – Random Projects, Random Notes, Random Ideas
projectpayday.helpserve.com
Rezoomo Blog | Recruitment Blog | HR Blog | Career Blog
blog.rezoomo.com
BLOG HAS MOVED to https://gbbcore.wordpress.com – Random Stuff with an Azure Virtual Desktop
gbbblog.azurewebsites.us
Gareth Williams - Aspen Snowmass Real
real-estate.gwaspen.com
Frank DeCaire – A Blog About Random Computer
blog.frankdecaire.com

blog.gcawood.com Httpheader

keep-alive: timeout=5, max=100
x-powered-by: PHP/8.1.28
vary: accept, content-type
content-type: text/html; charset=UTF-8
link: https://blog.gcawood.com/wp-json/; rel="https://api.w.org/", https://wp.me/1d7BU; rel=shortlink
etag: "8483-1715297016;;;"
x-litespeed-cache: hit
transfer-encoding: chunked
date: Sat, 11 May 2024 20:05:39 GMT
server: LiteSpeed
x-turbo-charged-by: LiteSpeed

blog.gcawood.com Meta Info

charset="utf-8"/
content="width=device-width" name="viewport"/
content="max-image-preview:large" name="robots"/
content="WordPress 6.5.3" name="generator"/
content="website" property="og:type"/
content="Fiddlings" property="og:title"/
content="Gareth's Random Blog of Fiddlings" property="og:description"/
content="https://blog.gcawood.com/" property="og:url"/
content="Fiddlings" property="og:site_name"/
content="https://s0.wp.com/i/blank.jpg" property="og:image"/
content="" property="og:image:alt"/
content="en_US" property="og:locale"/
content="@garethcawood" name="twitter:creator"/
content="@garethcawood" name="twitter:site"/

blog.gcawood.com Ip Information

Ip Country: United States
Latitude: 37.751
Longitude: -97.822

blog.gcawood.com Html To Plain Text

Fiddlings Gareth's Random Blog of Fiddlings SearchHome About Projects US Life Germany 2012 Contact Post navigation ← Older posts Classic Engineer’s Dilemma: IOT edition Posted on April 7, 2023 by Gareth Reply There are many aspects of IOT/connected devices that appeal to me. I like looking at data, it’s interesting. I like automation, it can be fun, and convenient. Unfortunately there are many aspects of the current IOT landscape that are extremely unappealing. Universally, not just to me . The obvious solution then is to build my own :) And that’s what I’ve started doing. Over the past five years, little by little, as I’ve wanted to do something, I’ve put something together, based on what I’ve got lying around. Originally I was making use of a web-based server to store and gather all my data, but got annoyed each time the internet cut off. In hindsight it’s not clear to me why I was experiencing so many connectivity issues at the time that I decided the best option was to host something locally, but that’s where we are today. Server The server is a Raspberry Pi. One that I had lying around, and I already had submitting temperature and air pressure data to my server. The server was just a shared hosting site with a few basic php commands to link up with a sql database. To provide some flexility, allow for some customization and make up for my large lack of web-dev experience, I chose to do it all in python. I’m using the CherryPy library to present a basic html web-interface that gives me a summary of what’s going on, and also handles all the data requests coming in from various local sources. If the internet goes down, it doesn’t matter, because everything is stored and presented on the local network. Every time I look at this jumble of wires I tell myself that I should really tidy it up. But it’s working. And then I’d have to take it offline, and the risk of a short isn’t thaaat high. So what would I really get out of the exercise? At times, like when I’m away from home and need to monitor some things, I can open another port and make it accessible from the internet, but this is off by default, mainly as a security improving effort. What does it do? As I worked on integrating the few sensors I had, I realised that this platform I was creating could do more than just save some data and show it to me. Well, more than just weather data. The platform running python made it easy to script all kinds of integrations. As I created more of these, I saw the value in having a standard task based framework on which to build all these integrations. This basis of this is a config file which is read at startup, that reads what tasks need to be load and when they must run. After that, there’s nothing left to do. All the tasks run as scheduled, doing as they must. The main web-interface shows a status for each task, when it was last run, when its next scheduled run is as well as options to start and stop tasks or run them immediately. Screenshot of the web-interface. Some very useful statuses in there This scheduler approach is simple. It makes it easy to expand, and it all running on python means it’s easy for me to think of something I want done and implement it, as well as feed back all the results to the ‘server’ directly. Connected items So what all is included in my setup? Raspberry Pi The Raspberry Pi itself has a BMP180 and an MH-Z19 directly connected to it that it polls occasionally for the latest temperature, air pressure and CO2 levels in my office. The CO2 sensor was pretty cheap, and accuracy isn’t amazing, along with its ‘auto-calibration’. But it still gives interesting results. It’s especially easy to see build-up in my office when the door is closed, as well as the drop every time the heating runs in the winter, bringing fresh air in. It’s certainly more accurate than this . CO2 data. Big dip is when the furnace started up after ~12 hrs of not running on a cold (windows closed) but sunny day. Smaller spikes during day are from me closing my office door during a meeting And some temperature data to go with it. I think the green spike was some sun shining on the sensor ESP32 I ‘attended’ one of the Hackaday Remoticon sessions a couple years ago, where someone from DigiKey was presenting on an IOT platform ( Machinechat ) that they were selling. It did a lot of what I wanted, but the free tier was pretty limited, and why would I pay for something when I can do it myself for free ;) But I had the microcontroller and temperature sensor leftover, so just repurposed it to connect to my own server and feed temperatures from our downstairs. ESP32 A more recent addition to the collection, and not related to a specific task, but just some extra code I’ve implemented for logging and status. When we moved into our rental, we were given one of the large garage remote controls . But, especially in the summer, my wife and I mostly cycle, and these remotes are bulky and annoying. We bought one of the smaller remotes , but my wife and I are often out separately. So now we can open the garage via Wi-Fi. The ESP runs a basic web-server, just waiting for a request to open the garage door. I need to still install a sensor and feed this data back to the server. And if I’m doing that, I might as well monitor the temperature in the garage too… You see a yoghurt container, I see the perfect container for a microcontroller, a relay and some LEDs Other Tasks Beyond the local devices actively pushing data to the server, there are a number of tasks that get run for ad-hoc items. Outside Temperature Lacking an outside connected thermometer, I instead choose to just pull data from the weather api every 20min. Data plotting Instead of learning how to plot data on the fly in a web-friendly format. I chose the lazy route I already had experience with, which is using python’s Plotly library to generate an interactive html graph. And because doing this on the fly on a raspberry pi can be very slow, I just do it every few hours, and supply the last generated one when requested. This can be improved. (UPDATE: I installed grafana, see screenshot at the end of the post) NAS Wake/Sleep I have a NAS downstairs, it can be a bit noisy. I only ever need to use it at night, which is also when it needs to be on to perform internet backups. So I get this task to use WoL to start it up in the evening, and an ssh command to put it to sleep in the wee hours of the morning. Get external IP At some stage I started setting up cloudflare to redirect a domain to my homeserver. I never completed this, but I did write a script to monitor our external IP address and update me via e-mail whenever it changed. Strava Earlier this year, Strava added Squash to their list of supported activities. I’d done a lot of squash activities, that were listed as Workouts. So I went about setting the record straight, using the Strava API to update all my previous activities that matched the criteria to be Squash. With all that done, I extended it to start adding weather data to my outdoor activites and ensuring that all my future squash activities get listed as such (Garmin don’t support Squash, so my activity still gets sent to Strava as a Workout, and then the script updates it). So now I have a web-hosted server that Strava notifies whenever I (or other people) complete an activity. My raspberry pi polls this server occasionally and runs scripts locally to determine if anything needs to happen, and then update activities as necessary. You have to give whatever’s accessing the Strava API a name, thus StraWeer was born Express Entry At one stage we had an application in for Canadian Express Entry. They released new results usually once a week, but not at fixed times, and occasionally more than once per week. So I set this task to scrape the site where they posted the results and e-mail whenever it got updated with the latest results. Sometime after it was no...

blog.gcawood.com Whois

Domain Name: GCAWOOD.COM Registry Domain ID: 1574680561_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.tucows.com Registrar URL: http://www.tucows.com Updated Date: 2023-11-03T20:09:43Z Creation Date: 2009-11-05T10:51:53Z Registry Expiry Date: 2024-11-05T10:51:53Z Registrar: Tucows Domains Inc. Registrar IANA ID: 69 Registrar Abuse Contact Email: domainabuse@tucows.com Registrar Abuse Contact Phone: +1.4165350123 Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited Name Server: DNS1.NAMECHEAPHOSTING.COM Name Server: DNS2.NAMECHEAPHOSTING.COM DNSSEC: unsigned >>> Last update of whois database: 2024-05-17T14:00:22Z <<<