Как погоду настроить

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Palko
Сообщения: 59
Зарегистрирован: Вт авг 26, 2014 1:59 pm
Откуда: Новосибирск
Благодарил (а): 8 раз
Поблагодарили: 6 раз

Re: Как погоду настроить

Сообщение Palko » Ср сен 10, 2014 1:59 pm

это да, хорошо когда есть практически готовый XML,
а когда HTML?
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Как погоду настроить

Сообщение ErmolenkoM » Ср сен 10, 2014 2:47 pm

За это сообщение автора ErmolenkoM поблагодарил:
Palko (Ср сен 10, 2014 5:18 pm)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
Аватара пользователя
adzam
Сообщения: 607
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 20 раз
Поблагодарили: 138 раз

Re: Как погоду настроить

Сообщение adzam » Ср сен 10, 2014 2:58 pm

Подскажите пож. как заставить в меню иконку обновляться через 10 минут?
Вариант %Sinoptik.Img|600% не работает
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Как погоду настроить

Сообщение alekszander » Вт окт 28, 2014 5:28 am

Коллеги по нелегкому делу, выручайте. пытаюсь создать сценарий (погода с Яндекса), с ID своего города (Владивосток), не получается страница зависает и долго думает и ни как, только если закрыть и открыть браузер заново. Если вставить другой ID к примеру Москвы, то сценарий успешно сохряняется. В чем может быть проблема.
sashmen
Сообщения: 27
Зарегистрирован: Ср ноя 05, 2014 11:21 pm
Благодарил (а): 19 раз
Поблагодарили: 3 раза

Re: Как погоду настроить

Сообщение sashmen » Чт ноя 06, 2014 4:46 am

PAV писал(а):Прикручиваем погоду Yandex: http://computer-service.pro/smf/index.php?topic=30.0
Код для Москвы:
Сценарий

Код: Выделить всё

$city_id=27612;
$data_file="http://export.yandex.ru/weather-ng/forecasts/$city_id.xml?".rand(); // адрес xml файла

$xml = simplexml_load_file($data_file); // раскладываем xml на массив

$temp=$xml->fact->temperature;
// Если значение температуры положительно, для наглядности добавляем "+"
if ($temp>0) {$temp='+'.$temp;}
sg("Moscow.Temp",$temp);
sg("Moscow.City",Москва);
sg("Moscow.Type",$xml->fact->weather_type);
sg("Moscow.Pressure",$xml->fact->pressure);
sg("Moscow.Humidity",$xml->fact->humidity);
sg("Moscow.WindSpeed",$xml->fact->wind_speed);
sg("Moscow.Image",$xml->fact->image);
sg("Moscow.UpTime",$xml->fact->uptime);


$dir = $xml->fact->wind_direction;
switch ($dir){
   case 's':
     $dir="южное";
     break;
   case 'n':
     $dir="северное";
     break;
   case 'w':
     $dir="западное";
     break;
   case 'e':
     $dir="восточное";
     break;
   case 'sw':
     $dir="юго-западное";
     break;
   case 'nw':
     $dir="северо-западное";
     break;
   case 'calm':
     $dir="штиль";
     break;
}
sg("Moscow.WindDir",$dir);
sg("Moscow.SunRise",$xml->day[0]->sunrise);
sg("Moscow.SunSet",$xml->day[0]->sunset);
 
Код Меню управления

Код: Выделить всё

<div align="center"><font size="5" color="brown" face="Arial"><b>Погода Yandex</b></font></div><br><br>
<img src="http://img.yandex.net/i/wiz%Moscow.Image%.png" alt="%Moscow.Type%" title="%Moscow.Type%"> %Moscow.Type% <font size="5" color="brown" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление  <font size="5" color="brown" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="brown" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="brown" face="Arial">%Moscow.WindSpeed%</font>  м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="brown" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="brown" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>
 
Подскажите куда этот код пихать?
Если можно поподробней. Зарание спасибо.
Сервер на raspberry pi Noolite SRF-10-1000, PT111, PU-411, mtrf-64-usb
Connect
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Как погоду настроить

Сообщение ErmolenkoM » Чт ноя 06, 2014 7:56 am

sashmen писал(а): Подскажите куда этот код пихать?
1. Заходим в панель администрирования. Сценарии. Сознаем новый сценарий с первым куском кода. У меня назван погода на яндексе(можно посмотреть в конекте).
2. Нужно настроить периодический запуск нашего сценария. Например в Объекты/Таймер/Каждый час добавить код вызова

Код: Выделить всё

runscript("погода на яндексе"); 
3. Нужно отобразить полученные данные в меню.
Заходим в меню управления создаем пункт с типом HTML БЛОК, туда второй кусок кода.

Все. Можно смотреть.
За это сообщение автора ErmolenkoM поблагодарил:
sashmen (Чт ноя 06, 2014 3:59 pm)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
sashmen
Сообщения: 27
Зарегистрирован: Ср ноя 05, 2014 11:21 pm
Благодарил (а): 19 раз
Поблагодарили: 3 раза

Re: Как погоду настроить

Сообщение sashmen » Чт ноя 06, 2014 3:46 pm

msh555 писал(а):
sashmen писал(а): Подскажите куда этот код пихать?
1. Заходим в панель администрирования. Сценарии. Сознаем новый сценарий с первым куском кода. У меня назван погода на яндексе(можно посмотреть в конекте).
2. Нужно настроить периодический запуск нашего сценария. Например в Объекты/Таймер/Каждый час добавить код вызова

Код: Выделить всё

runscript("погода на яндексе");
3. Нужно отобразить полученные данные в меню.
Заходим в меню управления создаем пункт с типом HTML БЛОК, туда второй кусок кода.

Все. Можно смотреть.

Все сделал как ты написал показывает нолики=(
Выложил скрины посмотри пожалуйста, может что не так сделал?
Вложения
4.PNG
4.PNG (58.15 КБ) 13062 просмотра
3.PNG
3.PNG (38.91 КБ) 13062 просмотра
2.PNG
2.PNG (52.32 КБ) 13062 просмотра
1.PNG
1.PNG (7.34 КБ) 13062 просмотра
За это сообщение автора sashmen поблагодарил:
mirsum (Вт дек 23, 2014 2:37 pm)
Рейтинг: 1.16%
Сервер на raspberry pi Noolite SRF-10-1000, PT111, PU-411, mtrf-64-usb
Connect
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Как погоду настроить

Сообщение ErmolenkoM » Чт ноя 06, 2014 3:50 pm

зайди в ОБЪЕКТЫ создай КЛАСС Погода в нем создай объект Moscow
через минуту проверь что в свойствах объекта Moscow появились значения
За это сообщение автора ErmolenkoM поблагодарил:
sashmen (Чт ноя 06, 2014 3:59 pm)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
sashmen
Сообщения: 27
Зарегистрирован: Ср ноя 05, 2014 11:21 pm
Благодарил (а): 19 раз
Поблагодарили: 3 раза

Re: Как погоду настроить

Сообщение sashmen » Чт ноя 06, 2014 4:03 pm

msh555 писал(а):зайди в ОБЪЕКТЫ создай КЛАСС Погода в нем создай объект Moscow
через минуту проверь что в свойствах объекта Moscow появились значения
Огромное спасибо получилось.
Вложения
5.PNG
5.PNG (9.79 КБ) 13057 просмотров
Сервер на raspberry pi Noolite SRF-10-1000, PT111, PU-411, mtrf-64-usb
Connect
sashmen
Сообщения: 27
Зарегистрирован: Ср ноя 05, 2014 11:21 pm
Благодарил (а): 19 раз
Поблагодарили: 3 раза

Re: Как погоду настроить

Сообщение sashmen » Чт ноя 06, 2014 4:06 pm

PAV писал(а):Дополнение для проговаривания погоды:

Код: Выделить всё

$status="";
    $status.="Сегодня ".gg("Moscow.Type").".";
    say($status,1);
    
    $status="";
    $w=round(gg("Moscow.Temp"));
    $tempw=$w;
    if($tempw >= 11 and $tempw <= 14){
    $tempcels=" градусов ";
    }
    else{

    while ($tempw > 9){
    $tempw=$tempw-10;
    }
    
    if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
    $tempcels= градусов ; }
    if($tempw == 1){
    $tempcels= градус ; }
    if($tempw >= 2 and $tempw <= 4){
    $tempcels= градуса ; }
    }
        //$tNew = abs((float)getGlobal('Moscow.Temp'));
    $status.=' Температура '.getGlobal('Moscow.Temp')." ".$tempcels." цельсия";
    say($status,1);
    $tempw="";
    $tempcels="";
    
    $status="";  
    $h=round(gg("Moscow.Humidity"));
    $tempw=$h;
    if($tempw >= 11 and $tempw <= 14){
    $tempcels=" процентов ";
    }
    else{

    while ($tempw > 9){
    $tempw=$tempw-10;
    }
    
    if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
    $tempcels= процентов ; }
    if($tempw == 1){
    $tempcels= процент ; }
    if($tempw >= 2 and $tempw <= 4){
    $tempcels= процента ; }
    }
    $status.="Относительная влажность ".gg("Moscow.Humidity")." ".$tempcels. ".";
    say($status,1);
    $tempw="";
    $tempcels="";
    
    $status="";
    $pressure=(float)gg("Moscow.Pressure");
    if ($pressure<728) {
     $status.=' Атмосферное давление пониженное';
    } elseif ($pressure>768) {
     $status.=' Атмосферное давление повышенное.';
    } else {
     $status.=' Атмосферное давление нормальное.';
    }
    say($status,1);
    
    $status="";
    // ветер
    $WindSpeed=(float)gg("Moscow.WindSpeed");
    if ($WindSpeed<1) {
     $status.=' Ветра нет.';
    } elseif ($WindSpeed<3) {
     $status.=' Ветер слабый.';
    } elseif ($WindSpeed<6) {
     $status.=' Ветер сильный.';
    } elseif ($WindSpeed<9) {
     $status.=' Ветер очень сильный.';
    } else {
     $status.=' Ветер очень! Очень сильный.';
    }
    $status.=' Направление '.getGlobal('Moscow.WindDir').'.';
    say($status,1);
Можете еще пояснить для чего данный скрипт? Где он погоду проговаривает(через вебморду или на серваке)? Куда втыкать?
Сервер на raspberry pi Noolite SRF-10-1000, PT111, PU-411, mtrf-64-usb
Connect
Ответить