[Сценарий] Погода от Яндекс
Re: Погода (Яндекс)
Всем доброго времени суток!
Люди добрые, подскажите пожалуйста у кого работает код из шапки? Сделал все как в шапке, но погоды так и нет ((( Подскажите пожалуйста подробные инструкции, как правильно настроить?
Люди добрые, подскажите пожалуйста у кого работает код из шапки? Сделал все как в шапке, но погоды так и нет ((( Подскажите пожалуйста подробные инструкции, как правильно настроить?
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Погода (Яндекс)
Ни у кого не работает. Яндекс давно закрыл это API.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Погода (Яндекс)
Посоветуйте пожалуйста, где тогда можно взять погоду?nick7zmail писал(а):Ни у кого не работает. Яндекс давно закрыл это API.
Re: Погода (Яндекс)
Модуль OpenWeatherMapTakosan писал(а):Посоветуйте пожалуйста, где тогда можно взять погоду?nick7zmail писал(а):Ни у кого не работает. Яндекс давно закрыл это API.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
gitHub сырого модуля 2й версии
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Погода (Яндекс)
Немного не та тема)) https://majordomo.smartliving.ru/forum/ ... f=5&t=4340
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
olegvolk75
- Сообщения: 141
- Зарегистрирован: Сб мар 11, 2017 7:03 pm
Re: Погода (Яндекс)
День добрый! Подскажите, в браузере с ноутбука все отображается нормально. В Мажордроиде на Андроид 6 тоже всё норм. А в Мажордроиде на старом планшете на Андроиде 3.2 как будто растягивается поuuu писал(а):Структура отдаваемых Яндексом данных изменилась- теперь "прогноз"- это картинка, в текстовом виде передаётся только прогнозируемая температура и описание текущей погоды .
внёс небольшие изменения в скрипт
результат может выглядеть так:SPOILERSPOILER_SHOW
Код в Меню управления:Код: Выделить всё
<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>SPOILERSPOILER_SHOWКод: Выделить всё
$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 МБ) 9649 просмотров
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Контактная информация:
Re: Погода (Яндекс)
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" (кнопка Спасибо) справа! :=-
Re: Погода (Яндекс)
Неее, я думаю поддержать отечественного производителя хочется, а вдруг санкции дойдут и до Openweather, где погоду братьVovix писал(а):перейти например на [Модуль] Погода от Openweather религия не позволяет, или еще что?
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Погода (Яндекс)
Ну пусть тогда яндекс нормальный апи открывает, а не эту мудатню с картинками делать)))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Погода (Яндекс)
Как вариант Тут. Адекватное API, прогноз на 4 дня , более 50 параметров.kas5858 писал(а): где погоду брать![]()
Даже есть погодные станции для ESP8266 и 32.
Извините за Offtop.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
