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

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

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

newz20
Сообщения: 172
Зарегистрирован: Пт апр 06, 2018 9:40 am
Благодарил (а): 93 раза
Поблагодарили: 93 раза

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

Сообщение newz20 » Пн мар 30, 2020 12:27 pm

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>
За это сообщение автора newz20 поблагодарили (всего 2):
Nail (Пн мар 30, 2020 12:32 pm) • Samir77 (Пт апр 24, 2020 10:53 am)
Рейтинг: 2.33%
Аватара пользователя
Nail
Сообщения: 373
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара
Благодарил (а): 174 раза
Поблагодарили: 28 раз

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

Сообщение Nail » Пн мар 30, 2020 12:58 pm

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 ZigBee Gateway. Broadlink.
Аватара пользователя
buba911
Сообщения: 127
Зарегистрирован: Пт дек 07, 2018 4:57 pm
Благодарил (а): 42 раза
Поблагодарили: 7 раз

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

Сообщение buba911 » Пн мар 30, 2020 6:16 pm

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

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

Сообщение Divan » Пн мар 30, 2020 8:53 pm

Ставим модуль через восстановление системы. Скачайте ниже. Как нажали восстановить через обновление системы, после этого создаем сценарий и вставляем код ниже, после чего запускаем сценарии и они создадут в 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); //Фаза луны
Как выглядит фаза луны у меня
СпойлерПоказать
Снимок.JPG
Снимок.JPG (89.82 КБ) 4521 просмотр

В вашей сцене создайте 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 КБ) 226 скачиваний
repacked_MoonPhase.tgz
(4.24 КБ) 271 скачивание
Последний раз редактировалось Divan Ср июл 22, 2020 5:53 pm, всего редактировалось 1 раз.
За это сообщение автора Divan поблагодарили (всего 2):
Sergey1968 (Вс ноя 08, 2020 11:02 pm) • omegared (Вт апр 27, 2021 9:26 am)
Рейтинг: 2.33%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
Nail
Сообщения: 373
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара
Благодарил (а): 174 раза
Поблагодарили: 28 раз

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

Сообщение Nail » Пн апр 13, 2020 11:19 am

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 ZigBee Gateway. Broadlink.
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Пн апр 13, 2020 1:51 pm

Nail писал(а):
Пн апр 13, 2020 11:19 am
newz20 писал(а):
Ср дек 05, 2018 3:29 pm
Я банально вывожу даты и фазу в текстовом формате в 3 строки, рядом справа картинку с луной :) 2018-12-05_15-28-42.png
Подскажите какой путь должен быть к картинкам( или какой папке должны лежать картинки)?
Создаете в "Изображении" папку с любым именем, например moonPhase
СпойлерПоказать
загрузить изображение 01.jpg
загрузить изображение 01.jpg (51.55 КБ) 4374 просмотра
загрузить изображение 02.jpg
загрузить изображение 02.jpg (72.1 КБ) 4374 просмотра
Здесь вы увидите полученный путь к изображению
СпойлерПоказать
Получили путь.jpg
Получили путь.jpg (50.16 КБ) 4374 просмотра
<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=""
За это сообщение автора Divan поблагодарил:
Nail (Пн апр 13, 2020 4:59 pm)
Рейтинг: 1.16%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
AndrewStick
Сообщения: 32
Зарегистрирован: Пт янв 15, 2021 5:56 am
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 12 раз
Контактная информация:

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

Сообщение AndrewStick » Пт янв 15, 2021 12:30 pm

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

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

/moon620/moon%ThisComputer.MoonAge%.png
Архив великоват, на форум не влезает.
Поэтому Я.Диск
За это сообщение автора AndrewStick поблагодарили (всего 3):
newz20 (Пт янв 15, 2021 12:50 pm) • Jilber (Пт янв 15, 2021 9:36 pm) • xor (Пт янв 15, 2021 11:08 pm)
Рейтинг: 3.49%
newz20
Сообщения: 172
Зарегистрирован: Пт апр 06, 2018 9:40 am
Благодарил (а): 93 раза
Поблагодарили: 93 раза

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

Сообщение newz20 » Пт янв 15, 2021 1:23 pm

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

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

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

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

Сообщение AndrewStick » Сб янв 30, 2021 5:47 pm

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

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

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
Благодарил (а): 34 раза
Поблагодарили: 4 раза

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

Сообщение pasha413 » Ср фев 10, 2021 4:50 pm

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