{"id":471,"date":"2025-10-19T10:55:46","date_gmt":"2025-10-19T14:55:46","guid":{"rendered":"https:\/\/scootercam.net\/notes\/?p=471"},"modified":"2025-10-19T10:55:46","modified_gmt":"2025-10-19T14:55:46","slug":"scootercam-24","status":"publish","type":"post","link":"https:\/\/scootercam.net\/blog\/scootercam-24\/","title":{"rendered":"scootercam-24"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">ScooterCam 24-Hour Forecast<\/h1>\n\n\n\n<p><strong>Version:<\/strong> 1.0.0<br><strong>WordPress Plugin<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Description<\/h2>\n\n\n\n<p>Displays a responsive 24-hour weather forecast table with 3-hour increments using data from Visual Crossing Weather API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Features<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 24-hour forecast in tabular format<\/li>\n\n\n\n<li>\u2705 3-hour interval weather data<\/li>\n\n\n\n<li>\u2705 Responsive design with W3.CSS framework<\/li>\n\n\n\n<li>\u2705 Mobile-optimized (hides non-essential columns on small screens)<\/li>\n\n\n\n<li>\u2705 Real-time data from Visual Crossing hourly.json<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Data Displayed<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Time<\/strong> &#8211; Forecast period<\/li>\n\n\n\n<li><strong>Icon<\/strong> &#8211; Weather condition icon<\/li>\n\n\n\n<li><strong>Conditions<\/strong> &#8211; Weather description (hidden on mobile)<\/li>\n\n\n\n<li><strong>Temperature<\/strong> &#8211; Current temperature in \u00b0F<\/li>\n\n\n\n<li><strong>Wind<\/strong> &#8211; Direction and speed (e.g., &#8220;NW @ 12 mph&#8221;)<\/li>\n\n\n\n<li><strong>Precipitation<\/strong> &#8211; Chance of precipitation (%)<\/li>\n\n\n\n<li><strong>Visibility<\/strong> &#8211; Distance in miles (hidden on mobile)<\/li>\n\n\n\n<li><strong>UV Index<\/strong> &#8211; UV radiation level (hidden on mobile)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Upload the <code>scootercam-24<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n\n\n\n<li>Activate the plugin through the WordPress &#8216;Plugins&#8217; menu<\/li>\n\n\n\n<li>Ensure Visual Crossing hourly data is being updated to <code>\/home\/scootercam\/public_html\/wx\/hourly.json<\/code><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Usage<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Shortcode<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-24]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Custom JSON Path<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-24 json_path=\"\/path\/to\/your\/hourly.json\"]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Data Source<\/h2>\n\n\n\n<p>This plugin reads from <code>hourly.json<\/code> which is generated from Visual Crossing Weather API data for the ScooterCam location.<\/p>\n\n\n\n<p><strong>Default JSON Path:<\/strong> <code>\/home\/scootercam\/public_html\/wx\/hourly.json<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress 5.0+<\/li>\n\n\n\n<li>PHP 7.4+<\/li>\n\n\n\n<li>Valid Visual Crossing hourly.json file<\/li>\n\n\n\n<li>Internet connection for W3.CSS stylesheet<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Data Format<\/h2>\n\n\n\n<p>The plugin expects <code>hourly.json<\/code> in this format:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"forecast\": &#91;\n    {\n      \"time\": \"12:00 PM\",\n      \"icon\": \"partly-cloudy-day\",\n      \"conditions\": \"Partly Cloudy\",\n      \"temp\": 72.5,\n      \"windSpeed\": 12.3,\n      \"windDir\": 225,\n      \"precipChance\": 20,\n      \"visibility\": 10.0,\n      \"uvindex\": 5\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Wind Direction Conversion<\/h2>\n\n\n\n<p>The plugin automatically converts wind degrees to cardinal directions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>0\u00b0\/360\u00b0 = N<\/li>\n\n\n\n<li>45\u00b0 = NE<\/li>\n\n\n\n<li>90\u00b0 = E<\/li>\n\n\n\n<li>135\u00b0 = SE<\/li>\n\n\n\n<li>180\u00b0 = S<\/li>\n\n\n\n<li>225\u00b0 = SW<\/li>\n\n\n\n<li>270\u00b0 = W<\/li>\n\n\n\n<li>315\u00b0 = NW<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Styling<\/h2>\n\n\n\n<p>Uses W3.CSS framework for responsive table styling. Custom CSS can be added to override default styles.<\/p>\n\n\n\n<p><strong>CSS Classes:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>.w3-table<\/code> &#8211; Main table wrapper<\/li>\n\n\n\n<li><code>.w3-striped<\/code> &#8211; Alternating row colors<\/li>\n\n\n\n<li><code>.w3-hide-small<\/code> &#8211; Hidden on mobile devices<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">License<\/h2>\n\n\n\n<p>GPL v2 or later<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Author<\/h2>\n\n\n\n<p>ScooterCam<br>https:\/\/scootercam.com<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.0.0<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Initial release<\/li>\n\n\n\n<li>24-hour forecast table<\/li>\n\n\n\n<li>W3.CSS responsive design<\/li>\n\n\n\n<li>Mobile optimization<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>ScooterCam 24-Hour Forecast Version: 1.0.0WordPress Plugin Description Displays a responsive 24-hour weather forecast table with 3-hour increments using data from Visual Crossing Weather API. Features Data Displayed Installation Usage Basic Shortcode Custom JSON Path Data Source This plugin reads from hourly.json which is generated from Visual Crossing Weather API data for the ScooterCam location. Default &#8230; <a title=\"scootercam-24\" class=\"read-more\" href=\"https:\/\/scootercam.net\/blog\/scootercam-24\/\" aria-label=\"Read more about scootercam-24\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-471","post","type-post","status-publish","format-standard","hentry","category-plugins"],"_links":{"self":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/comments?post=471"}],"version-history":[{"count":1,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":472,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/471\/revisions\/472"}],"wp:attachment":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/media?parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/categories?post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/tags?post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}