RUN apt-get update
RUN apt-get -y --no-install-recommends install php7.4 php7.4-cli php7.4-bz2 php7.4-gd php7.4-igbinary php7.4-imap php7.4-xsl php7.4-curl php7.4-json php7.4-imagick php7.4-intl php7.4-memcached php7.4-mysql php7.4-redis php7.4-soap php7.4-ssh2 php7.4-tidy
-RUN apt-get -y --no-install-recommends install monit less nano wakeonlan lynx at xplanet ffmpeg wget curl composer adb git
+RUN apt-get -y --no-install-recommends install monit less nano wakeonlan lynx at ffmpeg wget curl composer adb git
RUN apt-get -y --no-install-recommends install libawl-php
RUN apt-get clean;rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
chown -R 1001:33 ./src
chmod -R 777 ./log
mkdir -p ./log/tortugahome/profiles
-chmod 755 ./src/tools/xplanet/xplanet*
chmod 755 ./src/.docker/phpdocker/php-fpm/startup
chmod -R 755 ./src/bin
chmod -R 755 ./src/servers
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="dataSourceStorageLocal" created-in="IU-252.27397.103">
+ <component name="dataSourceStorageLocal" created-in="IU-253.31033.145">
<data-source name="LFY(3).db" uuid="e5a3291d-855f-44b2-be41-76fe6b0c2136">
<database-info product="SQLite" version="3.25.1" jdbc-version="2.1" driver-name="SQLite JDBC" driver-version="3.25.1" dbms="SQLITE" exact-version="3.25.1" exact-driver-version="3.25">
<identifier-quote-string>"</identifier-quote-string>
<?xml version="1.0" encoding="UTF-8"?>
<dataSource name="LFY_ZiGate.db">
- <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.53">
+ <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.54">
<root id="1"/>
<collation id="2" parent="1" name="BINARY"/>
<collation id="3" parent="1" name="NOCASE"/>
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
- <list default="true" id="352ce63a-b52a-41a2-979b-becda7920939" name="Default" comment="." />
+ <list default="true" id="352ce63a-b52a-41a2-979b-becda7920939" name="Default" comment=".">
+ <change beforePath="$PROJECT_DIR$/.docker/phpdocker/php-fpm/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/.docker/phpdocker/php-fpm/Dockerfile" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.docker/update" beforeDir="false" afterPath="$PROJECT_DIR$/.docker/update" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.local.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/images/earth.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/images/suncurve.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/install.md" beforeDir="false" afterPath="$PROJECT_DIR$/install.md" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/js/home.js" beforeDir="false" afterPath="$PROJECT_DIR$/js/home.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/scripts/cron.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/cron.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/scripts/cron/cron.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/cron/cron.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/scripts/lib/weatherstation.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/lib/weatherstation.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/scripts/xplanet.php" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/jarvis/commands" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/jarvis/console.php" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/jarvis/events" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/pop/pop.py" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/pop/scanner.py" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/pop/startpopdaemon" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/pop/stoppopdaemon" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/pophttp/config.ini" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/config" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/earth_lights_4800.tif" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200401.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200402.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200403.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200404.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200405.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200406.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200407.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200408.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200409.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200410.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200411.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/world.topo.bathy.200412.3x5400x2700.png" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/xplanet-earth" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/xplanet/xplanet-suncurve" beforeDir="false" />
+ </list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
- <component name="PhpWorkspaceProjectConfiguration" interpreter_name="PHP 8.2">
+ <component name="PhpWorkspaceProjectConfiguration" interpreter_name="PHP 8.5">
<include_path>
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/datto/json-rpc" />
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager": "true",
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.git.unshallow": "true",
+ "RunOnceActivity.typescript.service.memoryLimit.init": "true",
"SHELLCHECK.PATH": "C:\\Users\\vince\\AppData\\Roaming\\JetBrains\\IntelliJIdea2025.1\\plugins\\Shell Script\\shellcheck.exe",
"Shell Script.Docker terminal.executor": "Run",
"Shell Script.Update DNS.executor": "Run",
<component name="SharedIndexes">
<attachedChunks>
<set>
- <option value="bundled-jdk-9823dce3aa75-bf35d07a577b-intellij.indexing.shared.core-IU-252.27397.103" />
- <option value="bundled-js-predefined-d6986cc7102b-3aa1da707db6-JavaScript-IU-252.27397.103" />
+ <option value="bundled-jdk-30f59d01ecdd-2fc7cc6b9a17-intellij.indexing.shared.core-IU-253.31033.145" />
+ <option value="bundled-js-predefined-d6986cc7102b-9b0f141eb926-JavaScript-IU-253.31033.145" />
</set>
</attachedChunks>
</component>
<workItem from="1757096550934" duration="2780000" />
<workItem from="1760964057023" duration="1038000" />
<workItem from="1760983092185" duration="58000" />
- <workItem from="1761736064320" duration="133000" />
+ <workItem from="1761736064320" duration="5487000" />
+ <workItem from="1772365933816" duration="4000" />
+ <workItem from="1772370387714" duration="7090000" />
</task>
<task id="LOCAL-00502" summary=".">
<created>1641726946298</created>
<option name="project" value="LOCAL" />
<updated>1687259667913</updated>
</task>
- <option name="localTasksCounter" value="630" />
+ <option name="localTasksCounter" value="631" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<breakpoints>
<line-breakpoint enabled="true" type="php">
<url>file://$PROJECT_DIR$/scripts/cron/cron.php</url>
- <line>257</line>
+ <line>249</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
`sudo add-apt-repository ppa:ondrej/php;sudo add-apt-repository ppa:ondrej/apache2;sudo apt-get update`
-`apt update;apt install composer python3-certbot-apache wakeonlan adb lynx at redis php7.4-fpm php7.4-opcache php7.4-json php7.4-xml php7.4-curl php7.4-redis php7.4-igbinary php7.4-ssh2 php7.4-soap php7.4-sockets php7.4-mysql php7.4-gd php7.4-exif php7.4-imap php7.4-mbstring xplanet fonts-noto-color-emoji`
+`apt update;apt install composer python3-certbot-apache wakeonlan adb lynx at redis php7.4-fpm php7.4-opcache php7.4-json php7.4-xml php7.4-curl php7.4-redis php7.4-igbinary php7.4-ssh2 php7.4-soap php7.4-sockets php7.4-mysql php7.4-gd php7.4-exif php7.4-imap php7.4-mbstring fonts-noto-color-emoji`
`useradd --gid www-data --shell /bin/bash tortugahome`
`mkdir -p /var/log/tortugahome/profiles/;chown -R tortugahome:www-data /var/log/tortugahome`
$(img).on('load', function () {
$(".screensaver").html(img);
})
- img.src = '/images/suncurve.png?j=' + Date.now();
+ img.src = 'https://tools.cocodrilo.enhydra.fr/images/suncurve.png?j=' + Date.now();
}
if (raspberry && !ecomode && !videoPlaying) {
require_once "./cron/cron.php";
cronSqueezeFavorites(0);
-cronSqueezeCheckPlayers(0);
-cronXPlanet(0);
\ No newline at end of file
+cronSqueezeCheckPlayers(0);
\ No newline at end of file
cronSqueezeFavorites($cronmin);
}
if ($cronmin % 15 == 0) {
- cronXPlanet($cronmin);
cronPodcasts($cronmin);
cronMediaLibrary($cronmin);
cronTmdb($cronmin);
hotwaterCheckMode();
}
-
-function cronXPlanet($cronmin) {
- _logSection('XPlanet');
- file_get_contents('https://entree.home.tortuga.enhydra.fr/scripts/xplanet.php');
-}
-
-
function cronBackyard($cronmin)
{
_logSection('Backyard');
$res = '<div class="curve curve-' . $curve . '">';
$res .= '<div class="astre" style="transform: rotate(' . $sunangle . 'deg)"><img src="' . $icon . '" width="20" height="20" style="transform: rotate(' . (-$sunangle) . 'deg)" /></div>';
if ($curve === 'sun') {
- $res .= '<div class="orbit earth" style="background-image:url(\'/images/earth.png?j=' . filemtime(ROOT . '/images/earth.png') . '\'"></div>';
+ $res .= '<div class="orbit earth" style="background-image:url(\'https://tools.cocodrilo.enhydra.fr/images/suncurve.png?j=' . time() . '\'"></div>';
} else {
$res .= '<div class="orbit"></div>';
}
+++ /dev/null
-<?php
-require_once "./import.php";
-$path = ROOT . '/tools/xplanet/';
-$suncurve = $path . 'xplanet-suncurve';
-$earth = $path . 'xplanet-earth';
-
-echo '<pre>' . `$suncurve 2>&1;$earth 2>&1` . '</pre>';
-echo '<img src="/images/earth.png" />';
-echo '<img src="/images/suncurve.png" />';
\ No newline at end of file
+++ /dev/null
-*AIDE*==jv_display_commands
-*BONJOUR*|*SALUT*==say "Bonjour"
-*COMMENT*APPELLE*==say "Je m'appelle $trigger"
-*MERCI*==say "De rien"
-*AU REVOIR*|*BYE*==say "Au revoir $username"; jv_exit
-ANNULE*|TERMINE*==bypass=false; say "Ok"
-ENCORE*==jv_repeat_last_command
-*TEST*==say "Ca fonctionne!"
-*VERSION*==say "Je suis en version $jv_version"
-*REPETE (*) ET (*)==say "(1) (2)"
-*WIFI*|*WI-FI*==say "Le nom du wifi est Tortuga et le mot de passe est z31a8bmd10kk6fqid3v0hq577z"
-*CA VA*==say "Très bien et toi ça va?"
->*OUI*|*SUPER*==say "ravi de l'entendre"
->*PAS MAL*==say "ouais, pareil, ça pourrait aller mieux !"
->*NON*|*PAS*==say "j'en suis navré"
-*AU*LIT*==say "Bonne nuit" && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/light.php?scene=home/aulit&im"
-*ALLUME*LUMIERE*==say "J'allume tout" && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/light.php?scene=home/welcome&im"
-*ETEIN*MAISON*==say "J'éteins tout, à la prochaine" && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/light.php?scene=home/off&im"
-*ALLUM*CAFE*==say "C'est parti ! Profites-en pour te nettoyer une tasse ;)"
-*SENS*VIE*==say "42"
-*RADIO*SALON*==say "D'accord, je mets FIP" && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/squeeze.php?player=Salon&name=FIP"
-*INFO*==say "D'accord, j'allume franceinfo: (BFM, j'aime pas trop)" && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/squeeze.php?player=Salon&name=France%20Info"
-*ALERT*==say "J'ai envoyé une notification lumineuse dans la maison" && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/light.php?scene=home/alert&im"
-*REPLAY*==say "Ok, par contre, seul celui d'Arte passe des choses intéressantes. Je dis ça ..." && jv_curl "https://entree.home.tortuga.enhydra.fr/scripts/light.php?scene=home/alert&im"
+++ /dev/null
-#!/usr/bin/php
-<?php
-$input = '>>> ';
-cls();
-while (true) {
- $stdin = fopen('php://stdin', 'r');
- $question = fread($stdin, 10000);
- if (preg_match('/efface/', $question, $matches)) {
- cls();
- continue;
- }
- if (preg_match('/exit/', $question, $matches)) {
- echo getAnswer('bye');
- exit;
- }
- echo getAnswer($question) . "\n" . $input;
-}
-
-function cls()
-{
- global $input;
- system('clear');
- echo $input;
-}
-
-function getAnswer($question)
-{
- $res = mb_strtoupper(file_get_contents('https://entree.home.tortuga.enhydra.fr/scripts/jarvis.php?question=' . rawurlencode($question)));
- return $res;
-}
\ No newline at end of file
+++ /dev/null
-# Jarvis Events
-# Add your events according to format at bottom
-# Remove the leading # to enable a rule
-# Format:
-# Minutes Hours DayofMth Months DaysofWk Command to execute
-#
-# Amounts formats: * (all), */2 (every 2), 1,2 (1 and 2), 1-3 (from 1 to 3)
-# Shortcuts: @reboot, @yearly, @annually, @monthly, @weekly, @daily , @midnight, @hourly
-#
-# LEGEND
-# ____________________________________________ Minutes (0-59)
-# | ____________________________________ Hours (0-23)
-# | | ____________________________ Days of Month (1-31)
-# | | | ____________________ Months (1-12)
-# | | | | ____________ Days of Week (0-6, 0 is Sun)
-# | | | | | ___ Command to execute
-#___|_______|_______|_______|_______|________|_________________________________
-# Examples
-#---|-------|-------|-------|-------|--------|---------------------------------
-# 0 0 1,15 * * echo "On 1st and 15th of every month at 0am"
-# 30 6 * * 1-5 echo "Every weekday at 6h30"
-# */10 * * * * echo "Every 10 mins"
-# 0 8 30 7 * echo "On July 30th at 8h"
-# @reboot echo "At system startup"
-#___|_______|_______|_______|_______|________|_________________________________
-# Your events below (Remove leading # to enable)
-#---|-------|-------|-------|-------|--------|---------------------------------
-# @reboot ~/jarvis/jarvis.sh -b
-# 0 8 * * * ~/jarvis/jarvis.sh -x "quelle est la météo?" # needs weather plugin
-# 0 7-21 * * * ~/jarvis/jarvis.sh -x "quelle heure est-il?" # needs time plugin
-# 1 7-21 * * * ~/jarvis/jarvis.sh -x "vérifie mes emails" # needs gmail plugin
-# @midnight wget -qO /dev/null "http://mywebsite.com/backup"
+++ /dev/null
-#!/usr/bin/python3
-
-from bluepy import btle
-from urllib import request
-import sys
-
-device = sys.argv[1]
-
-map = ['', '', 'tap', 'long', 'double']
-rooms = {'wc': 'wc', 'sdb': 'sdb'}
-macs = {'wc': 'a0:e6:f8:db:ff:2f', 'sdb': 'a0:e6:f8:dc:01:d7'}
-
-mac = macs[device]
-room = rooms[device]
-
-
-class MyDelegate(btle.DefaultDelegate):
- def __init__(self):
- btle.DefaultDelegate.__init__(self)
-
- def handleNotification(self, cHandle, data):
- print(data[0])
- cmd = map[data[0]]
- print("Notification was received %s" % cmd)
- req = "https://" + room + ".home.tortuga.enhydra.fr/scripts/pop.php?button=" + device + "&action=" + cmd
- try:
- request.urlopen(req)
- except:
- print('request timeout')
-
- print("A notification was handled: %s (%s)" % (cmd, req))
-
-
-print("Connecting to " + mac + " (" + device + ")")
-
-while True:
- # Initialisation -------
- print("Connecting")
- try:
- p = btle.Peripheral(mac, btle.ADDR_TYPE_PUBLIC)
- p.setDelegate(MyDelegate())
-
- # Setup to turn notifications on, e.g.
- svc = p.getServiceByUUID("0000fe61-0000-1000-8000-00805f9b34fb")
-
- ch = svc.getCharacteristics()[0]
- p.writeCharacteristic(ch.valHandle + 1, b'\x02\x00')
-
- ch = svc.getCharacteristics()[1]
- p.writeCharacteristic(ch.valHandle + 1, b'\x02\x00')
-
- ch = svc.getCharacteristics()[2]
- p.writeCharacteristic(ch.valHandle + 1, b'\x02\x00')
-
- ch = svc.getCharacteristics()[3]
- p.writeCharacteristic(ch.valHandle + 1, b'\x02\x00')
-
- while True:
- try:
- if p.waitForNotifications(60.0):
- # handleNotification() was called
- continue
-
- print("Waiting...")
- # Perhaps do something else here
- except:
- print("Disconnected... Waiting for reconnection...")
- break
-
- except btle.BTLEDisconnectError as err:
- print("Disconnect error {0}".format(err))
- continue
+++ /dev/null
-#!/usr/bin/python3
-
-from bluepy.btle import Scanner, DefaultDelegate
-from urllib import request
-import sys
-
-class ScanDelegate(DefaultDelegate):
- def __init__(self):
- DefaultDelegate.__init__(self)
-
- def handleDiscovery(self, dev, isNewDev, isNewData):
- if isNewDev:
- print("Discovered device", dev.addr)
- elif isNewData:
- print("Received new data from", dev.addr)
-
-scanner = Scanner().withDelegate(ScanDelegate())
-devices = scanner.scan(20)
-
-for dev in devices:
- print("Device %s (%s), RSSI=%d dB" % (dev.addr, dev.addrType, dev.rssi))
- for (adtype, desc, value) in dev.getScanData():
- print(" %s = %s" % (desc, value))
+++ /dev/null
-#!/bin/sh
-/sbin/start-stop-daemon --start --quiet --user root --chuid root --name pop-$1 --make-pidfile --pidfile /var/run/pop-$1.pid --background --startas /bin/bash -- -c "exec /var/www/home/tools/pop/pop.py $1 >> /var/log/pop/$1.log 2>&1"
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-/sbin/start-stop-daemon --stop --pidfile /var/run/pop-$1.pid
-pkill -f pop.py
\ No newline at end of file
+++ /dev/null
-[settings]
-; The URL to request if there are no matches from the [switches] section below
-; Note that enabling this will disable the messages that provide the switch config that is helpful for configuring switches
-; See the [switches] section below for details on how to write the URL with substitutions
-; Default value is unset - unknown requests are ignored but will write to console when using -vv
-;default_url = http://example.com?power={onoff}&hue={hue}&saturation={saturation}&brightness={brightness}&kelvin={kelvin}
-
-; The interface to bind to. Binding to a specific interface generally isn't required, but can be useful if you are running
-; multiple LIFX things on a single host, since only 1 thing can listen on each interface
-; Default value is 0.0.0.0
-;interface = 0.0.0.0
-
-; Source IP address white-list - only respond to requests matching the IP address and network mask.
-; Network mask is optional and assumed to be /32 if not specified. i.e. 192.168.0.1 and 192.168.0.1/32 are identical
-; Default value is 0.0.0.0/0
-;ip_filter = 192.168.1.1/24
-
-[switches]
-; Configuration for each individual switch. If multiple lines match then each matching line is requested.
-; The format is
-; <switch configuration> = <URL template>
-; Where
-; <switch configuration> is in the format [#h][,#s][,#b][,#k][,power] where # is a number and [] indicates optional
-; This matches the configuration in the Logitech pop app, for the various color, brightness
-; and on/off components.
-; To find the configuration run `pophttp.py -vv` to show unknown requests, then add the
-; "Pop HTTP" light into the pop switch config, pick a random color then press the pop switch
-; and the configuration will be printed to the console.
-; <URL template> is the URL to request. It parameter names can be enclosed in curly braces to include them in the URL
-; Available parameters are:
-; {onoff} the string `on` or `off` provided by the pop switch
-; {hue} the color hue that was used to identify this switch
-; {saturation} the color saturation that was used to identify this switch
-; {brightness} the light brightness that was used to identify this switch
-; {kelvin} the color temperature that was used to identify this switch
-;500h,500s,32768b,3612k = http://example.com?r=2&power={onoff}&hue={hue}&saturation={saturation}&brightness={brightness}&kelvin={kelvin}
-;500h,500s,32768b,3612k,on = http://example.com?r=3&power={onoff}&hue={hue}&saturation={saturation}&brightness={brightness}&kelvin={kelvin}
-;500h,500s,32768b,3612k,off = http://example.com?r=4&power={onoff}&hue={hue}&saturation={saturation}&brightness={brightness}&kelvin={kelvin}
-;on = http://example.com?r=5&power={onoff}&hue={hue}&saturation={saturation}&brightness={brightness}&kelvin={kelvin}
-;off = http://example.com?r=6&power={onoff}&hue={hue}&saturation={saturation}&brightness={brightness}&kelvin={kelvin}
-0h,65535s,32768b,3612k = https://wc.home.tortuga.enhydra.fr/scripts/pop.php?button=wc&action=tap&im=1
-24701h,39321s,32768b,3612k = https://wc.home.tortuga.enhydra.fr/scripts/pop.php?button=wc&action=double&im=1
-42476h,48573s,32768b,3612k = https://wc.home.tortuga.enhydra.fr/scripts/pop.php?button=wc&action=long&im=1
-
-
-; Additional settings for each URL can be specified in a section with the name of the base URL to be applied to.
-; This could be the top level hostname such as http://example.com, or a path under it, such as http://example.com/upstairs/bedroom/
-; This section is optional and only required if you need to set special settings and multiple sections can be specified matching different URLs.
-;[http://example.com]
-; HTTP(S) authentication mode to use
-; Available values are:
-; basic: Basic HTTP authentication with a username and password.
-;auth=basic
-;username=my.username
-;password=my_password
+++ /dev/null
-[earth]
-"Earth"
-grid=no
-map=/application/tools/xplanet/earth.png
-night_map=/application/tools/xplanet/earth_lights_4800.tif
+++ /dev/null
-#!/bin/sh
-month=$(date +%m)
-ln -sf "/application/tools/xplanet/world.topo.bathy.2004$month.3x5400x2700.png" "/application/tools/xplanet/earth.png"
-xplanet -config /application/tools/xplanet/config -longitude 2.3343236 -latitude 36 -geometry 300x300 -num_times 1 -output /application/images/earth.png
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-month=$(date +%m)
-ln -sf "/application/tools/xplanet/world.topo.bathy.2004$month.3x5400x2700.png" "/application/tools/xplanet/earth.png"
-xplanet -config /application/tools/xplanet/config -longitude 2.3343236 -geometry 1600x1200 -projection rectangular -num_times 1 -output /application/images/suncurve.png
\ No newline at end of file