[Сценарий] Погода от Яндекс
-
- Сообщения: 7
- Зарегистрирован: Вс дек 31, 2017 11:47 am
- Благодарил (а): 3 раза
- Поблагодарили: 0
Re: Погода (Яндекс)
Всем доброго времени суток!
Люди добрые, подскажите пожалуйста у кого работает код из шапки? Сделал все как в шапке, но погоды так и нет ((( Подскажите пожалуйста подробные инструкции, как правильно настроить?
Люди добрые, подскажите пожалуйста у кого работает код из шапки? Сделал все как в шапке, но погоды так и нет ((( Подскажите пожалуйста подробные инструкции, как правильно настроить?
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Погода (Яндекс)
Ни у кого не работает. Яндекс давно закрыл это API.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 7
- Зарегистрирован: Вс дек 31, 2017 11:47 am
- Благодарил (а): 3 раза
- Поблагодарили: 0
Re: Погода (Яндекс)
Посоветуйте пожалуйста, где тогда можно взять погоду?nick7zmail писал(а):Ни у кого не работает. Яндекс давно закрыл это API.
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Погода (Яндекс)
Модуль OpenWeatherMapTakosan писал(а):Посоветуйте пожалуйста, где тогда можно взять погоду?nick7zmail писал(а):Ни у кого не работает. Яндекс давно закрыл это API.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Погода (Яндекс)
Немного не та тема)) https://majordomo.smartliving.ru/forum/ ... f=5&t=4340
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 141
- Зарегистрирован: Сб мар 11, 2017 7:03 pm
- Благодарил (а): 50 раз
- Поблагодарили: 15 раз
Re: Погода (Яндекс)
День добрый! Подскажите, в браузере с ноутбука все отображается нормально. В Мажордроиде на Андроид 6 тоже всё норм. А в Мажордроиде на старом планшете на Андроиде 3.2 как будто растягивается по HDR.jpg[/attachment][/spoiler]uuu писал(а):Структура отдаваемых Яндексом данных изменилась- теперь "прогноз"- это картинка, в текстовом виде передаётся только прогнозируемая температура и описание текущей погоды .
внёс небольшие изменения в скрипт
результат может выглядеть так:СпойлерПоказать
Код в Меню управления:Код: Выделить всё
<div style="background: antiquewhite;padding: 7px;"> <div style="font-size:10px; width:50px; display: inline-block;">Сейчас</div> <img src="%Moscow.Image0%" width= 15% align="absmiddle"> <div style="position: absolute;display: inline-block;font-size: 30px;padding-top: 3px;padding-left: 5px;">%Moscow.Temp%</div> <div style="position: absolute;display: inline-block;font-size: 11px;padding-top: 3px;padding-left: 65px;">%Moscow.Humidity%</div> <div style="position: absolute;display: inline-block;font-size: 11px;padding-top: 17px;padding-left: 65px;">%Moscow.Pressure%</div> <div style="position: absolute;display: inline-block;font-size: 11px;padding-top: 30px;padding-left: 65px;">%Moscow.windCast%</div> <div style="font-size: 11px;color: darksalmon;float: right;">%Moscow.updated%</div> </div> <div style="background: #faebd7b3;padding: 7px;"><div style="font-size:10px; width:50px; display: inline-block;">%Moscow.dayPart1%</div><img src="%Moscow.Image1%" width= 15% align="absmiddle"> %Moscow.Temp1% </div> <div style="background: #faebd780;padding: 7px;"><div style="font-size:10px; width:50px; display: inline-block;">%Moscow.dayPart2%</div><img src="%Moscow.Image2%" width= 15% align="absmiddle"> %Moscow.Temp2% </div> <div style="background: #faebd7b3;padding: 7px;"><div style="font-size:10px; width:50px; display: inline-block;">%Moscow.dayPart3%</div><img src="%Moscow.Image3%" width= 15% align="absmiddle"> %Moscow.Temp3% </div> <div style="background: #faebd780;padding: 7px;"><div style="font-size:10px; width:50px; display: inline-block;">%Moscow.dayPart4%</div><img src="%Moscow.Image4%" width= 15% align="absmiddle"> %Moscow.Temp4% </div>
СпойлерПоказатьКод: Выделить всё
$objects=getObjectsByClass("Погода с Yandex"); //имя класса foreach($objects as $obj) { $city_id=gg($obj['TITLE'].".city_id"); //ID города узнаем тут: https://pogoda.yandex.ru/static/cities.xml $data_file="https://export.yandex.ru/bar/reginfo.xml?region=$city_id.xml?"; // адрес xml файла $xml = simplexml_load_file($data_file); // раскладываем xml на массив echo "<pre>"; print_r($xml); echo "</pre>"; /* $temp_yesterday=$xml->yesterday->temperature; //узнаем вчерашнюю температуру в это же время if ($temp_yesterday>0) {$temp_yesterday='+'.$temp_yesterday;} // Если значение температуры положительно, для наглядности добавляем "+" sg($obj['TITLE'].".TempYesterday",$temp_yesterday); */ $temp0=$xml->weather->day->day_part[0]->temperature; if (date('G')==13) {sg($obj['TITLE'].".Temp13h",$temp0);} if (date('G')==21) {sg($obj['TITLE'].".Temp21h",$temp0);} if ($temp0>0) {$temp0=$temp0;} // Если значение температуры положительно, для наглядности добавляем "+" sg($obj['TITLE'].".Temp",$temp0); $tempFrom1=$xml->weather->day->day_part[1]->temperature_from; $tempTo1=$xml->weather->day->day_part[1]->temperature_to; sg($obj['TITLE'].".Temp1",$tempFrom1."...".$tempTo1); $tempFrom2=$xml->weather->day->day_part[2]->temperature_from; $tempTo2=$xml->weather->day->day_part[2]->temperature_to; sg($obj['TITLE'].".Temp2",$tempFrom2."...".$tempTo2); $tempFrom3=$xml->weather->day->day_part[3]->temperature_from; $tempTo3=$xml->weather->day->day_part[3]->temperature_to; sg($obj['TITLE'].".Temp3",$tempFrom3."...".$tempTo3); $tempFrom4=$xml->weather->day->day_part[4]->temperature_from; $tempTo4=$xml->weather->day->day_part[4]->temperature_to; sg($obj['TITLE'].".Temp4",$tempFrom4."...".$tempTo4); sg($obj['TITLE'].".Type",$xml->weather->day->day_part[0]->weather_type); sg($obj['TITLE'].".Pressure",$xml->weather->day->day_part[0]->pressure." мм рт. ст."); sg($obj['TITLE'].".Humidity",$xml->weather->day->day_part[0]->dampness."%"); sg($obj['TITLE'].".WindSpeed",$xml->weather->day->day_part[0]->wind_speed); sg($obj['TITLE'].".Image",str_replace(array('https://yastatic.net/weather/i/icons/blueye/48/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[0]->{"image-v3"})); sg($obj['TITLE'].".Image1",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[1]->{"image-v3"})); sg($obj['TITLE'].".Image2",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[2]->{"image-v3"})); sg($obj['TITLE'].".Image3",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[3]->{"image-v3"})); sg($obj['TITLE'].".Image4",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[4]->{"image-v3"})); function dPartDecl($n,$v) { if (strcasecmp($v, 'утро') == 0) {$day_part = "Утром";} if (strcasecmp($v, 'день') == 0) {$day_part = "Днём";} if (strcasecmp($v, 'вечер') == 0) {$day_part = "Вечером";} if (strcasecmp($v, 'ночь')== 0) {$day_part = "Ночью";} return $day_part; } echo $xml->weather->day->day_part[0][type]; sg($obj['TITLE'].".dayPart0",dPartDecl(0,$xml->weather->day->day_part[0][type])); sg($obj['TITLE'].".dayPart1",dPartDecl(1,$xml->weather->day->day_part[1][type])); sg($obj['TITLE'].".dayPart2",dPartDecl(2,$xml->weather->day->day_part[2][type])); sg($obj['TITLE'].".dayPart3",dPartDecl(3,$xml->weather->day->day_part[3][type])); sg($obj['TITLE'].".dayPart4",dPartDecl(4,$xml->weather->day->day_part[4][type])); /* $rain1=gg($obj['TITLE'].".Type"); $rain2=$xml->day[0]->day_part[0]->weather_type; $rain3=$xml->day[0]->day_part[1]->weather_type; $rain4=$xml->day[0]->day_part[2]->weather_type; $rain5=$xml->weather->day->day_part[4]->weather_type; $rain=($rain1. $rain2. $rain3. $rain4. $rain5); $pos = strpos($rain, "дождь"); if ($pos === false) { sg($obj['TITLE'].".Rain",0); } else { sg($obj['TITLE'].".Rain",1); // say("Возможен дождь",2); } */ $dir = $xml->weather->day->day_part[0]->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 'se': $dir="юго-восточный"; break; case 'ne': $dir="северо-восточный"; break; case 'calm': $dir="штиль"; break; } */ sg($obj['TITLE'].".WindDir",$dir); sg($obj['TITLE'].".SunRise",$xml->weather->day->sun_rise); sg($obj['TITLE'].".SunSet",$xml->weather->day->sunset); $metcast="На улице ".gg($obj['TITLE'].".Type")."."; // состояние ветра, согласно Шкалы Бофорта $WindSpeed=(float)gg($obj['TITLE'].".WindSpeed"); if ($WindSpeed==0) { $windcast.=' Безветренно.'; } elseif ($WindSpeed<2) { $windcast=' Возможен тихий ветер.'; } elseif ($WindSpeed<3) { $windcast=' Возможен легкий ветер.'; } elseif ($WindSpeed<5) { $windcast=' Возможен слабый ветер.'; } elseif ($WindSpeed<8) { $windcast=' Умеренный ветер.'; } elseif ($WindSpeed<11) { $windcast=' Свежий ветер.'; } elseif ($WindSpeed<14) { $windcast=' Сильный ветер.'; } elseif ($WindSpeed<17) { $windcast=' Крепкий ветер.'; } elseif ($WindSpeed<20) { $windcast=' Очень крепкий ветер. Без нужды из дома лучше не выходить.'; } elseif ($WindSpeed<25) { $windcast=' На улице шторм. Выходить из дома не рекомендуется.'; } else { $windcast=' На улице ураган. Выходить из дома не рекомендуется.'; } sg($obj['TITLE'].".windCast",$windcast); $metcast.=$windcast; $w=round(strip_tags(gg($obj['TITLE'].".Temp"))); $tempw=$w; if($w < "0"){ $tempw=abs($w); } if($w > "0"){ $templus=" +"; } $tempcels="°"; $metcast.=' Температура '.gg($obj['TITLE'].".Temp").''.$tempcels.'.'; $tm=(float)gg($obj['TITLE'].".Temp"); if ($tm<-40) { $metcast.=' Мы морозов не боимся!'; } elseif ($tm<-30) { $metcast.=' Очень холодно, оденьтесь теплее.'; } elseif ($tm<-20) { $metcast.=' Самое время есть мороженое.'; } elseif ($tm<-10) { $metcast.=' Холодновато.'; } elseif ($tm<-3) { $metcast.=' Не особо холодно.'; } elseif ($tm<3) { $metcast.=' Значит, возможно, гололёд.'; } elseif ($tm<10) { $metcast.=' Тепловато.'; } elseif ($tm<25) { $metcast.=' Тепло.'; } elseif ($tm<30) { $metcast.=' Жарко.'; } elseif ($tm>30) { $metcast.=' Ташкент.'; } // $metcast.=' Восход солнца сегодня в '.gg($obj['TITLE'].".SunRise").','; // $metcast.=' закат в '.gg($obj['TITLE'].".SunSet").'.'; sg($obj['TITLE'].".metcast",$metcast); // $w3days= gg($obj['TITLE'].".dayPart1")." будет "; $w3days.=gg($obj['TITLE'].".Temp1"); $w3days.="°."; $w3days.=" \r\n".gg($obj['TITLE'].".dayPart2")." будет "; $w3days.=gg($obj['TITLE'].".Temp2"); $w3days.="°."; $w3days.=" \r\n".gg($obj['TITLE'].".dayPart3")." будет "; $w3days.=gg($obj['TITLE'].".Temp3"); $w3days.="°."; sg($obj['TITLE'].".season",$dir1); //время года */ sg($obj['TITLE'].".forecast",$w3days); sg($obj['TITLE'].".updated" , date("H:i",time()));} //say("Читаю прогноз погоды с Yandex", 0);
Хотел приспособить старый планш как терминал.
- Вложения
-
- IMG_20180107_153103_HDR.jpg (3.4 МБ) 6637 просмотров
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: Погода (Яндекс)
я вот не понимаю, вам всем перейти например на [Модуль] Погода от Openweather религия не позволяет, или еще что?olegvolk75 писал(а):...
День добрый! Подскажите, в браузере с ноутбука все отображается нормально. В Мажордроиде на Андроид 6 тоже всё норм. А в Мажордроиде на старом планшете на Андроиде 3.2 как будто растягивается по [img]вертикали раз в 10.
...
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
-
- Сообщения: 364
- Зарегистрирован: Вс янв 15, 2017 5:34 pm
- Откуда: Москва
- Благодарил (а): 100 раз
- Поблагодарили: 53 раза
Re: Погода (Яндекс)
Неее, я думаю поддержать отечественного производителя хочется, а вдруг санкции дойдут и до Openweather, где погоду братьVovix писал(а):перейти например на [Модуль] Погода от Openweather религия не позволяет, или еще что?
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Connect
Connect
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Погода (Яндекс)
Ну пусть тогда яндекс нормальный апи открывает, а не эту мудатню с картинками делать)))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Погода (Яндекс)
Как вариант Тут. Адекватное API, прогноз на 4 дня , более 50 параметров.kas5858 писал(а): где погоду брать
Даже есть погодные станции для ESP8266 и 32.
Извините за Offtop.
- Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS