Видеотелефоны Grandstream GXV3000. Часть 1 - Показываем погоду на экране.

Для начала уточню Grandstream GXV3000 = RTVC VXP-100 (да-да, это мы их так продаём).
Про саму спецификацию телефонов можете почитать на ссылкам выше. Телефоны телефонами, но нас интересует его функционал. Из спецификации, да и настроек выходит что:
1. Он умеет/должен показывать на экране погоду;
2. Он умеет/должен показывать на экране RSS новости;
3. Он умеет/должен загружать адресную книгу.

НО! Я нигде не нашёл информации о формате файлов по первому и второму пунктам. Да, да, даже RSS у него какой-то свой, узкоглазый наверно . Поэтому надеюсь кому-нибудь моя статья ещё пригодится.
Итак, прикручиваем вывод погоды. Вот мои изыскания:

<?php

//Название города. Брать их XMLки нет возможности, т.к. в этих телефонах не полный шрифт UTF-8
$town = Moscow;
//Саму информацию о погоде беру с сайта Гисметео
$url = "http://informer.gismeteo.ru/xml/27612_1.xml";
        if($xml = simplexml_load_file($url, 'SimpleXMLElement',LIBXML_NOCDATA)){

//минимальная температура
$temp_min = $xml->REPORT->TOWN->FORECAST[0]->TEMPERATURE['min'];
//максимальная температура
$temp_max = $xml->REPORT->TOWN->FORECAST[0]->TEMPERATURE['max'];
//скорость ветра минимальная
$wind_min = $xml->REPORT->TOWN->FORECAST[0]->WIND['min'];
////скорость ветра максимальная
$wind_max = $xml->REPORT->TOWN->FORECAST[0]->WIND['max'];
//ID направления ветра
$wind_direction_id = $xml->REPORT->TOWN->FORECAST[0]->WIND['direction'];
//ID типа погоды
$weather_id = $xml->REPORT->TOWN->FORECAST[0]->PHENOMENA['precipitation'];
//Дата прогноза погоды
$d =
        $xml->REPORT->TOWN->FORECAST[0]['year']."-".
        $xml->REPORT->TOWN->FORECAST[0]['month']."-".
        $xml->REPORT->TOWN->FORECAST[0]['day'];

//Направление ветра в румбах, 0 - северный, 1 - северо-восточный,  и т.д.
$wind = '';
switch($wind_direction_id){
        case 0: $wind = 'N'; break;
        case 1: $wind = 'NE'; break;
        case 2: $wind = 'E'; break;
        case 3: $wind = 'SE'; break;
        case 4: $wind = 'S'; break;
        case 5: $wind = 'SW'; break;
        case 6: $wind = 'W'; break;
        case 7: $wind = 'NW'; break;
}
//Средняя скорость ветра
$wind_sr = ($wind_max+$wind_min)/2;

//Тип осадков: 4 - дождь, 5 - ливень, 6,7 – снег, 8 - гроза, 9 - нет данных, 10 - без осадков
$weather = '';
switch ($weather_id){
        case 4: $weather = 'Rain'; break;//точно подходит
        case 5: $weather = 'Heavy shower'; break;//Не проверял
        case 6: $weather = 'Snow'; break;//точно подходит
        case 7: $weather = 'Snow'; break;//точно подходит
        case 8: $weather = 'Storm'; break;//Не проверял
        case 9: $weather = 'N/D'; break;//точно подходит
        case 10: $weather = 'Sunny'; break;//точно подходит

}
//Ну и вывод в XMLку. Сколько я искал её формат, это неописуемо...
echo '<?xml version="1.0" encoding="UTF-8"?>
        <weatherreport time="'.$dt.'">
                <location>
                        <city>'.$town.'</city>
                        <country>Russian Federation</country>
                </location>
                <forecast>
                        <date>'.$dt.'</date>
                        <temperature>'.$temp_min.'..'.$temp_max.' "C '.$wind_sr.'m/s '.$wind.'</temperature>
                        <weather>'.$weather.'</weather>
                </forecast>
        </weatherreport>';
}
?>


В настройках ставим:


В принципе и всё. Может скрипт и не оптимален, но он работает, а больше и не надо.
Кстати, это и пример как грабить погоду с Гисметео .
Извиняюсь, но у меня нет возможности показать как это выглядит на экране телефона.

Следующим пунктом будет адресная книга (вроде нашёл пример XMLки) или RSS.
  • +3
  • 02 февраля 2010, 11:28
  • Mihael

Комментарии (2)

RSS свернуть / развернуть
+
0
Хороший аппарат. Если rss настроить — телевизор можно выкидывать
avatar

yababay

  • 02 февраля 2010, 12:35
+
0
Спасибо за инфу !
avatar

Markony

  • 02 февраля 2010, 17:17

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.