[Сценарий] Фазы луны.

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

newz20
Сообщения: 173
Зарегистрирован: Пт апр 06, 2018 9:40 am

Re: [Сценарий] Фазы луны.

Сообщение newz20 »

Nail писал(а): Пн мар 30, 2020 12:23 pm Так примеры код на сцене , у кого какие варианты я не нашел :(
У меня банальный вывод информации, никаких изяществ. Тупа элемен хтмл

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

<div style="font-size:14px; padding:2px;">
<img src="/img/moon/%Moon.MoonPhaseimg%" align="right" width="40" height="40">
Дата следующего полнолуния: %Moon.fullNewMoon%<br/>
Дата следующего новолуния:  %Moon.nextNewMoon%<br/>
Фаза:     %Moon.MoonPhaseName%
  </div>
Аватара пользователя
Nail
Сообщения: 377
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара

Re: [Сценарий] Фазы луны.

Сообщение Nail »

newz20 писал(а): Пн мар 30, 2020 12:00 pm
buba911 писал(а): Пн мар 30, 2020 11:55 am
newz20 писал(а): Пн мар 30, 2020 8:37 am
include("./MoonPhase.php"); вот в этой строчке указывается путь,
Спасибо, как я понял, файл MoonPhase.php надо скопировать в какое нибудь место(например в домашнюю папку)
А дальше? Где вызывать и как, что означает include(""); ? Как можно использовать эту команду? Примерчик бы ...
я так понимаю в данной строке указано .

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

require_once('lib/MoonPhase.php'); //пака majordomo / подпапка lib/сам файл  MoonPhase.php
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS DIN Mini. Broadlink.
Аватара пользователя
buba911
Сообщения: 127
Зарегистрирован: Пт дек 07, 2018 4:57 pm

Re: [Сценарий] Фазы луны.

Сообщение buba911 »

Тогда ещё вопрос. Необходимо создавать объект Moon самому
моон.PNG
моон.PNG (28.31 КБ) 8006 просмотров
или он создастся сам после выполнения скрипта?
Raspberry Pi3B+ v4.44
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm

Re: [Сценарий] Фазы луны.

Сообщение Divan »

Ставим модуль через восстановление системы. Скачайте ниже. Как нажали восстановить через обновление системы, после этого создаем сценарий и вставляем код ниже, после чего запускаем сценарии и они создадут в ThisComputers свойства луны. Запускать сценарий раз в сутки, либо через крон, либо через метод Day. как вам удобно.

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

include("./MoonPhase.php");
// create an instance of the class, and use the current time
$moon = new MoonPhase();
//$age = round( $moon->age(), 1 );
$age = round( $moon->age(), 0 );
$stage = $moon->phase() < 0.5 ? 'растущая' : 'убывающая';
$distance = round( $moon->distance(), 2 );
$nextnewtime = gmdate( 'G:i:s', $moon->next_new_moon() );
$nextnewdate = gmdate( 'd.m.Y', $moon->next_new_moon() );
$nextfulltime = gmdate( 'G:i:s', $moon->next_full_moon() );
$nextfulldate = gmdate( 'd.m.Y', $moon->next_full_moon() );
$phasename = $moon->phase_name();
sg('MoonAge',$age); //Возраст луны (лунный день)
sg('MoonStage',$stage); //Стадия луны
sg('MoonDistance',$distance); //Дистанция до луны
sg('MoonNextNewTime',$nextnewtime); //Время следующего полнолуния 
sg('MoonNextNewDate',$nextnewdate); //Новолуние
sg('MoonNextFullTime',$nextfulltime); //Длительность лунного дня
sg('MoonNextFullDate',$nextfulldate); //Дата следующего полнолуния
sg('MoonPhaseName',$phasename); //Фаза луны
Как выглядит фаза луны у меня
SPOILERSPOILER_SHOW
Снимок.JPG
Снимок.JPG (89.82 КБ) 7983 просмотра

В вашей сцене создайте HTML блок и вставьте этот код

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

<style>
.squaremoon {
 width: 500px; \\ ширина
 height: 250px; \\ высота
 border-radius: 5%; \\скругление краев
 border: 4px solid #FF7F50; \\цвет рамки
 padding:20px 10px 20px 10px;
 background-color: rgba(0, 0, 0, .4); \\фон
 }
</style>
<div class="squaremoon"><br/>
<div style="font-size:25px; color:#FFFFFF">Фаза луны</div>&nbsp;
<div style="font-size:20px; color:#FFFFFF">Фаза луны:&nbsp%ThisComputer.MoonPhaseName%</div>
<div style="font-size:20px; color:#FFFFFF">Возраст луны (лунный день):&nbsp%ThisComputer.MoonAge%</div>
<div style="font-size:20px; color:#FFFFFF">Длительность лунного дня:&nbsp%ThisComputer.MoonNextFullTime%</div>
<div style="font-size:20px; color:#FFFFFF">Дата следующего полнолуния:&nbsp%ThisComputer.MoonNextFullDate%</div>
<div style="font-size:20px; color:#FFFFFF">Время следующего полнолуния:&nbsp%ThisComputer.MoonNextNewTime%</div>
<div style="font-size:20px; color:#FFFFFF">Дистанция до луны:&nbsp%ThisComputer.MoonDistance%</div>
</div>
Вложения
MoonPhase.zip
(4.07 КБ) 348 скачиваний
repacked_MoonPhase.tgz
(4.24 КБ) 412 скачиваний
Последний раз редактировалось Divan Ср июл 22, 2020 5:53 pm, всего редактировалось 1 раз.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
Nail
Сообщения: 377
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара

Re: [Сценарий] Фазы луны.

Сообщение Nail »

newz20 писал(а): Ср дек 05, 2018 3:29 pm Я банально вывожу даты и фазу в текстовом формате в 3 строки, рядом справа картинку с луной :) 2018-12-05_15-28-42.png
Подскажите какой путь должен быть к картинкам( или какой папке должны лежать картинки)?
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS DIN Mini. Broadlink.
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm

Re: [Сценарий] Фазы луны.

Сообщение Divan »

Nail писал(а): Пн апр 13, 2020 11:19 am
newz20 писал(а): Ср дек 05, 2018 3:29 pm Я банально вывожу даты и фазу в текстовом формате в 3 строки, рядом справа картинку с луной :) 2018-12-05_15-28-42.png
Подскажите какой путь должен быть к картинкам( или какой папке должны лежать картинки)?
Создаете в "Изображении" папку с любым именем, например moonPhase
SPOILERSPOILER_SHOW
загрузить изображение 01.jpg
загрузить изображение 01.jpg (51.55 КБ) 7836 просмотров
загрузить изображение 02.jpg
загрузить изображение 02.jpg (72.1 КБ) 7836 просмотров
Здесь вы увидите полученный путь к изображению
SPOILERSPOILER_SHOW
Получили путь.jpg
Получили путь.jpg (50.16 КБ) 7836 просмотров
<img src="/cms/scenes/styles/MoonPhase/%MoonPhase05%.png" align="absmiddle" width="220" height="220" alt=""></img>

/cms/scenes/styles/MoonPhase/ - это путь к изображению
%MoonPhase05%.png - это значение берется из объекта moon, который вы создали сами. %% ставится перед форматом png, это нужно для отображения иконки, если имя значении будет соответствовать иконке.
width="220" height="220" - ширина и высотка изображения, если это не нужно, то просто не указываете их
alt="" если имя значении не соответствует иконке, то будет значок "нет изображения", чтобы этого не было, нужно прописать alt=""
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
AndrewStick
Сообщения: 35
Зарегистрирован: Пт янв 15, 2021 5:56 am
Откуда: Москва
Контактная информация:

Re: [Сценарий] Фазы луны.

Сообщение AndrewStick »

Здравствуйте. Недавно открыл для себя MD. Разбираюсь потихоньку...
Вот мой вариант Луны
SPOILERSPOILER_SHOW
QIP Shot - Screen 537.jpg
QIP Shot - Screen 537.jpg (70.46 КБ) 6774 просмотра
Сделал 30 картинок, на каждый лунный день. Там же картинки слева от текста.

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

/moon620/moon%ThisComputer.MoonAge%.png
Архив великоват, на форум не влезает.
Поэтому Я.Диск
newz20
Сообщения: 173
Зарегистрирован: Пт апр 06, 2018 9:40 am

Re: [Сценарий] Фазы луны.

Сообщение newz20 »

AndrewStick писал(а): Пт янв 15, 2021 12:30 pm Здравствуйте. Недавно открыл для себя MD. Разбираюсь потихоньку...
Вот мой вариант Луны
SPOILERSPOILER_SHOW
QIP Shot - Screen 537.jpg
Сделал 30 картинок, на каждый лунный день. Там же картинки слева от текста.

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

/moon620/moon%ThisComputer.MoonAge%.png
Архив великоват, на форум не влезает.
Поэтому Я.Диск
молодца, очень хорошо смотрится
Аватара пользователя
AndrewStick
Сообщения: 35
Зарегистрирован: Пт янв 15, 2021 5:56 am
Откуда: Москва
Контактная информация:

Re: [Сценарий] Фазы луны.

Сообщение AndrewStick »

Так, на всякий случай.
Разобрался с правильным отображением новолуний и полнолуний.
Всегда теперь показывает следующее ближайшее. Т.е. Если ново/полно луние уже прошло, будет выводиться дата-время в следующем месяце.
Если еще нет, то ближайшая в этом месяце.

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

include("./MoonPhase.php");
// create an instance of the class, and use the current time
$moon = new MoonPhase();
//$age = round( $moon->age(), 1 );
$age = round( $moon->age(), 0 );
$stage = $moon->phase() < 0.5 ? 'растущая' : 'убывающая';
$distance = round( $moon->distance(), 2 );

if($moon->new_moon()>time()){
$nextnewtime = date( 'G:i:s', $moon->new_moon() ); // gmdate - по Гринвичу, date - местное время
$nextnewdate = date( 'd.m.Y', $moon->new_moon() );
}else{
$nextnewtime = date( 'G:i:s', $moon->next_new_moon() ); // new_moon текущая, next_new_moon следующая
$nextnewdate = date( 'd.m.Y', $moon->next_new_moon() );
}

if($moon->full_moon()>time()){
$nextfulltime = date( 'G:i:s', $moon->full_moon() );  // full_moon текущая, next_full_moon следующая
$nextfulldate = date( 'd.m.Y', $moon->full_moon() );
}else{
$nextfulltime = date( 'G:i:s', $moon->next_full_moon() );
$nextfulldate = date( 'd.m.Y', $moon->next_full_moon() );
}

$phasename = $moon->phase_name(); // Название фазы 
sg('MoonAge',$age); //Возраст луны (лунный день)
sg('MoonStage',$stage); //Стадия луны (растущая/убывающая)
sg('MoonDistance',$distance); //Дистанция до луны
sg('MoonNextNewTime',$nextnewtime); //Время следующего новолуния
sg('MoonNextNewDate',$nextnewdate); //Дата следующего новолуния
sg('MoonNextFullTime',$nextfulltime); //Время следующего полнолуния
sg('MoonNextFullDate',$nextfulldate); //Дата следующего полнолуния
sg('MoonPhaseName',$phasename); //Фаза луны
sg('SysInfo.MoonPhaseName',$phasename);//Передача значении в класс ScenePurple
За это отвечают вон те 2 IF в середине. Если уже было, сорри. Не заметил.
pasha413
Сообщения: 131
Зарегистрирован: Сб янв 13, 2018 6:28 pm

Re: [Сценарий] Фазы луны.

Сообщение pasha413 »

Здравствуйте. что-то у меня луна не меняется. постоянно так. с погодой пока не разобрался еще,да и иконки комнат пропали..
Вложения
moon.jpg
moon.jpg (166.92 КБ) 6410 просмотров
Моё: Orange Pi Zero H2 + DietPi / Paspberry Pi3b + MJD 3.41
Ответить