[Skript] Sonnengang

Ich mach hier mal ein neuen Thread auf um das später besser supporten zu können.

Die Idee ist aus dieser Diskussion …

hervorgegangen.

Ursprünglich wurde die Visu (Bild) von der Seite sonnenverlauf.de kompliziert mittels phantomJS abgeholt. Aber die Seite hat sich so stark verändert das es einfach nicht mehr hingehauen hat.

Darum habe ich etwas mit php und der gd-lib rumexperimentiert, aber transparente PNGs sind mir damit ein Rätsel :frowning:

Dann bin ich wieder zurück auf das gute alte HTML & CSS und diesmal noch mit CANVAS und malen. Habe wieder mal viel gelernt (sowohl PHP als auch HTML).

Das Ergebnis sieht jetzt so aus:

Eigentlich nutze ich es ehr wenig, aber es halt halt Spaß gemacht :wink:

Jetzt noch 1-2 Tage testen ob alles rund läuft - im wahrsten Sinne des Wortes und dann kommt das Skript samt Anleitung!

Gruß Heiko

8 „Gefällt mir“

Hallo Heiko,

sehr neckig! So eine Visualisierung habe ich schon gesucht. Ich freu mich auf’s testen und dir dann Feedback geben.

Viele Grüße,
Kevin

Freut mich - wenn es anderen auch gefällt :slight_smile:

Gerade schon den ersten Fehler behoben - meine Sonne wollte einfach nicht unter gehen :smiley: :smiley: :smiley:

… jetzt läuft sie wieder, Gott sei dank :slight_smile:

Hallo Heiko,
da lese ich mal mit, die Idee finde ich sehr spannend. Bin gerne beim Test dabei.

Gruß Jochen

Hi,

melde ebenfalls Interesse an …

Grüße
Proxima

Siehst du Heiko,
du machst mal wieder jede Menge Leute glücklich. So kenne ich dich :handshake:

lg

Na mal sehen ob ich jetzt alle glücklich mache - ich gehe mal ins Risiko!

Also das Script lief die Nacht fehlerfrei durch und macht immer noch was es soll. Da ich maximal am WE zu einer ausführlichen Beschreibung komme aber Euch nicht so lange warten lassen will - hier schon mal alle Resourcen …

  1. Bilder für Hintergrund - Standard Berliner Fernsehturm :slight_smile: - und das Grad-Diagramm kann hier runtergeladen werden (Ziel: /webfront/user/sunrun)
    https://wilkware.de/wp-content/uploads/2023/01/sunrise-user-res.zip
  2. Das Script habe ich zu meiner Skript-Bibliothek hinzugefügt
    GitHub - Wilkware/ips-scripts: IPS script library

Wer sich traut kann schon anfangen!

Im Skript sollten 4 Dinge angepasst werden:

  • DEBUG auf false setzen wenn alles läuft
  • LAT & LON auf eigenen Längen- und Breitengrad ändern
  • SIZE den eigenen Webfront-Wünschen anpassen (Darstellung ist immer quadratisch)

Und natürlich das Bild bg.png (Fernsehturm) austauschen - höstens man wohnt da :smiley:

Gruß Heiko

2 „Gefällt mir“

Vielen Dank schonmal vorab!

Ich scheitere jedoch an einer ganz frühen Stelle, nämlich an der globalen Funktion. :worried:

require_once(IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.'System.Functions.ips.php');

Die Skriptdatei habe ich heruntergeladen und einfach kühn in den Ordner ‚scripts‘ kopiert. Die oben stehende Skriptzeile habe ich dann uncommented.
So macht man das aber scheinbar nicht. Wie ist es richtig? Anmerkung: IPS läuft auf einem Docker, falls das relevant ist.

Hi,

naja, nicht die feine englische Art - aber könnte funktionieren!

Wenn diesen Weg hätte ich es wie folgt gemacht:

  1. neues Skript in der Konsole anlegen
  2. dieses Skript über Menü ‚Skriptverwaltung‘ umbenennen in ‚System.Functions.ips.php‘
  3. Inhalt von meinem Skript reinkopieren und abspeichern

Aber was ist den der Fehler der kommt?

Gruß Heiko

PS: Du benötigst natürlich beide Scripte:

  • System.Functions.ips.php (Globale Funktionen)
  • Weather.Sunrun.ips.php (Sonnengang)

Gruß Heiko

Die erste Variante hat zwar keine Fehlermeldung gebracht, aber es hat auch die Variablen nicht angelegt.
Die zweite Variante hat funktioniert.

Danke für den Tipp, das kannte ich noch nicht. Und das war auch die Lösung meines Problems.

Prima, jetzt wollen wir aber auch das Ergebnis sehen :wink:


In einer ruhigeren Minute muss ich nur das Bild noch etwas besser ausrichten, dass die Sonne genau mittig aufs Dach strahlt.

Komisch ist, dass ein Link zur Variable ‚Position‘ die 3 bunten Linien nicht anzeigt, alles andere aber schon. :thinking:

1 „Gefällt mir“

Wie, wo, was meinst Du - man sieht doch alles?

Das ist ja auch wieder das Original. Aber ich habe es jetzt gerade nochmal probiert, jetzt geht es. Komisch. Ich nehme alles zurück.

Nachtrag: Wenn ich den Link von ‚Position‘ im gleichen Ordner belasse wie das Skript, dann fehlen die 3 bunten Linien. Wenn ich den Link in einen anderen Ordner schiebe, sind sie wieder da. Noch mehr komisch. :thinking: :thinking: :thinking: Aber auch nicht überlebensnotwendig.

1 „Gefällt mir“

Gleich mal ein paar Fragen:

Die Größe des Hintergrunds (Googlemaps) ist egal?
Muss es ein *.PNG sein?
Kann man die Sonne kleiner/größer machen?
Könnte man LAT und LONG nicht aus IPS auslesen?
Gibts einen Schatten als Option? Dir ist doch sicher schon wieder langweilig Heiko.

lg

Langweilig - wann soll mir das passieren :smiley:

Grundsätzlich schon, aber …

  1. das Bild wird immer quadratisch auf die eingestellte $SIZE gezogen, also SIZExSIZE
  2. ist es nicht quadratisch wird es entsprechend verzerrt
  3. ist es kleiner als SIZE wird es schnell pixelig

Nein, hatte selber schon JPEG probiert. Habe nicht alle Formate durchgetestet, aber einfach probieren.

Ich glaube nicht das man die Sonne kleiner oder größer machen kann :smiley: Aber man kann den Kreis natürlich mit einem anderen Durchmesser zeichnen :smiley:

Ja, könnte man auch - hatte auch schon dran gedacht. Dann müsste man die ID vom Location Control hinterlegen. Bin mir nicht sicher was aufwendiger ist. Außerdem kann man so auch andere Positionen ausprobieren, z.B. Ferienhaus usw. :slight_smile:

Nein, was wäre den Dein Wunsch?

NEIN :smiley:

Gruß Heiko

Habt ihr es wieder geschafft :frowning:

Habe mal die ganzen Ressourcen-Sachen dynamisiert …

# HTML Zeichenoptionen
$DRAW = [
    'bg' => '/user/sunrun/bg.png', // Hintergrundbild (Karte)
    'chart' => '/user/sunrun/chart.svg', // Chart- bzw Diagrambild
    'size' => 600, // Größe (Quadrad) des Containers (px)
    'line' => 4, // Linienstärke
    'sunrise' => '#FC9C54', // Linienfarbe Sonnenaufgang
    'sunset' => '#FD5E53', // Linienfarbe Sonnenuntergang
    'sunpos' => '#FFE373', // Linienfarbe Sonnengang (akt. Position)
    'sunradius' => 16, //  Sonnenradius (px)
    'sunline' => 2, //  Sonnenkreis Linienstärke (px)
    'sunrisefill' => '#F1C40F', // Farbe aufgegangene Sonne (Innen)
    'sunrisestroke' => '#FC9C54', // Farbe aufgegangene Sonne (Kreis)
    'sunsetfill' => '#57544B', // Farbe untergegangene Sonne (Innen)
    'sunsetstroke' => '#F7f2E0', // Farbe untergegangene Sonne (Kreis)
];

Check ich bis Mittag ein!

Gruß Heiko

2 „Gefällt mir“

So und jetzt ist endgültig Schluss …

# Location Control ID (wenn 0 => müssen $LAT & $LON korrekt gesetzt werden)
$LCID = 16504;
# Latitude
$LAT = '52.5208';
# Longitude
$LON = '13.4094';
1 „Gefällt mir“

Version 2.1.20230127 ist eingecheckt!

Neu:

  • Zeichenresourcen können zentral manipuliert werden
  • Location Control kann genutzt werden um Längen- und Breitengrad auszulesen

Finale
Heiko

3 „Gefällt mir“