marcusmyers/laravel-dashboard-accuweather-tile

An AccuWeather Tile for Laravel Dashboard

v3.0.0 2021-04-03 04:14 UTC

README

Latest Version on Packagist Total Downloads

Much like Spatie's laravel-dashboard-time-weather-tile, but uses AccuWeather.

This tile can be used on the Laravel Dashboard.

Installation

You can install the package via composer:

composer require marcusmyers/laravel-dashboard-accuweather-tile

Usage

In the dashboard config file, you must add this configuration in the tiles key.

Sign up at https://developer.accuweather.com/ to obtain ACCUWEAHTER_API_KEY and you can find your location key by searching for you city at https://www.accuweather.com. The resulting url should have your location key, i.e. https://www.accuweather.com/en/us/chicago/60608/weather-forecast/348308, the Chicago location key is 348308. AccuWeather only allows you 50 API request a day for a free account.

The data can be displayed as either Imperial (Farenheit) or Metric (Celsis). This will affect information displayed on the daily tile and forecast tiles.

It is also possible to change the date format of the tiles. Valid formats are m/d or d/m.

// in config/dashboard.php

return [
    // ...
    'tiles' => [
        'accuweather' => [
            'location_key' => '12345',
            'api_key' => env('ACCUWEATHER_API_KEY'),
            'system' => 'Metric',
            'date_format' => 'd/m',
        ]
    ],
];

In app\Console\Kernel.php you should schedule the MarcusMyers\AccuWeatherTile\Commands\FetchAccuWeatherCurrentConditionsCommand to run every hour.

If you want to use the forecast you can optionally schedule the MarcusMyers\AccuWeatherTile\Commands\FetchAccuWeatherFiveDayForecastCommand to run daily.

// in app/console/Kernel.php

protected function schedule(Schedule $schedule)
{
    // ...
    $schedule->command(MarcusMyers\AccuWeatherTile\Commands\FetchAccuWeatherCurrentConditionsCommand::class)->hourly();
    $schedule->command(MarcusMyers\AccuWeatherTile\Commands\FetchAccuWeatherFiveDayForecastCommand::class)->daily();
}

In your dashboard view you can use the livewire:accuweather-current-conditions-tile component or the livewire:accuweather-five-day-forecast-tile.

<x-dashboard>
    <livewire:accuweather-current-conditions-tile position="e1:e4" />
    <livewire:accuweather-five-day-forecast-tile position="a14:d16" />
</x-dashboard>

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email :author_email instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.