Windrose grafisch programmieren?

Für allgemeine Software
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#31

Beitrag von olicat »

Hi!

Du kannst ja am Server nur auf Daten des Servers zugreifen.
Fehlt der refresh, kommt vom Client schlicht keine Anfrage und somit kannst Du am Server (per php) nicht darauf reagieren.
Client-seitig koennte man da bestimmt irgendwas mit Javascript basteln, dass die aktuelle Zeit mit der Zeit eines Seiten-Elements vergleicht und ggf. ein anderes Seitenelement (etwa ein Icon) austauscht.
Nur klappt das natuerlich nicht, wenn der Client Javascript deaktiviert hat.

Insofern kannst Du Dich dann auch gleich ganz auf den refresh verlassen. Zumindest hier in meinen Versuchen klappt das ganz gut.
Selbst nach dem Schlafenlegen des Notebooks und erneuten Aufwecken am naechsten Morgen wird der refresh problemlos durchgefuehrt.
Es kann aber - zwischen den refresh-Intervallen - durchaus ein "alter" Wert angezeigt werden.
Da musst Du einschaetzen, ob das kritisch ist oder nicht und ob Du zusaetzlich dann noch eine Javascript-Loesung basteln willst.

Ansonsten wuerde ich schon versuchen, die 3 Zeilen des Awekas-Widgets selbst nachzuempfinden - ich mach mich nur ungern von anderen abhaengig.

Da Du die Daten ohnehin schon selbst empfaengst, kannst Du ja die betreffenden Daten leicht in eine Datei schreiben, die von Deinem PHP-Script dann ausgelesen wird. Oder nutzt Du die Awekas-API zur Abfrage der Werte? Dann ist das ja beinahe noch einfacher (wenn auch gefaehrlicher, da dann auch noch abhaengig von Awekas).

Bzgl. der automatischen Bildschirmanpassung koenntest Du mal ein paar Versuche mit viewport machen:

Code: Alles auswählen

<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"> 
Oliver
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#32

Beitrag von Wetterfrosch »

@Oli,

Nein, die Messwerte müssen nicht sekundengenau sein, es geht hauptsächlich um die Windrichtung und die wird als 10-minütige gemittelte Windrichtung angezeigt, somit spielt es keine Rolle ob man zwischen 2 refresh noch alte Daten sieht, denn in dieser Zeit ändert sich an der Anzeige wegen des Zeitraumes des Mittelwertes sowieso nicht viel.
Ich denke mit meiner "Online" Abrage reicht es so, damit ist zumindest gewährleistet, dass die Daten die angezeigt werden, keine alten Daten sind, d.h. falls sich das System irgendwie aufgehängt hat und keine neuen Daten mehr liefert, das wird dann erkannt.

Dein Meta code habe ich eben mal eingebaut, ändert aber nix an der Ansicht, auf dem Smartphone bleibt es weiterhin klein.
Habe aber eben diesen gefunden, damit gehts:

Code: Alles auswählen

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> 
Jetzt muss ich nur erstmal alle relevanten Messwerte bei mir zwischenspeichern, ich würde diese gerne einfachheitshalber in ein Array einlesen und danach dieses Array über mein Script auslesen und ausgeben.

Kannst du mir schnell nochmal helfen, wie lese ich die Messwerte nochmal in ein Array ein und speichere dieses dann in einer datei und wie lese ich danach diese Datei wieder aus und greife auf die enzelnen Werte zu?
Zuletzt geändert von Wetterfrosch am 10 Feb 2023, 17:11, insgesamt 3-mal geändert.
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#33

Beitrag von Wetterfrosch »

Also Das mit der Seitengröße klappt.

Jetzt brauch ich nur nochmal schnell Unterstützung bezüglich Array.
Zuletzt geändert von Wetterfrosch am 10 Feb 2023, 17:12, insgesamt 1-mal geändert.
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#34

Beitrag von olicat »

Hi!

Bin gerade nicht vorm Rechner.
Aber das hier sieht vielversprechend aus.

Oliver
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#35

Beitrag von Wetterfrosch »

Also Fragestellung hat sich gerade geändert ;-)

Muss die relevanten Werte doch erst mal in ein neues Array abspeichern, würde dazu die normale Anordnung hintereinander bevorzugen da man da ja dann einfach über array[] und der entsprechenden Stellennummer das auslesen kann.

Aber wie lege ich so ein Array nochmal in einer datei an und lese sie danach wieder aus?
Hab das erst einmal gemacht und das ist ewig her und komme gerade nicht zurecht damit.
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#36

Beitrag von olicat »

Hi!

Wenn Du das Array selbst schreiben kannst, dann schreibe es als array mit serialize/unserialize:

Code: Alles auswählen

<?php
  $array = array("1","2","3","4","5");
  echo "array filled:\n";
  foreach ($array as $ele) {
    echo "$ele \n";
  }
  $weather_data = serialize($array);
  file_put_contents("data-file.txt", $weather_data);

  $array = array();
  echo "array cleaned:\n";
  foreach ($array as $ele) {
    echo "$ele \n";
  }
  $weather_data = file_get_contents("data-file.txt");
  $array = unserialize($weather_data);
  echo "array filled from file:\n";
  foreach ($array as $ele) {
    echo "$ele \n";
  }

  # oder

  $array = array();
  echo "other way - elements: ".count($array)."\n";
  $array[0] = "eins";
  $array[1] = "zwei";
  $array[2] = "drei";
  $array[3] = "vier";
  $array[4] = "fuenf";
  echo "array filled - elements: ".count($array)."\n";

  $weather_data = serialize($array);
  file_put_contents("data-file.txt", $weather_data);

  $array = array();
  echo "array cleaned - elements: ".count($array)."\n";
  $weather_data = file_get_contents("data-file.txt");
  $array = unserialize($weather_data);
  echo "array filled from file - elements: ".count($array)."\n";

?>
Wenn eine reine Textdatei vorliegt, in der pro Zeile ein definierter Wert vorliegt, koenntest Du mit explode arbeiten.

BTW:
Ich weiss noch immer nicht, wo Du die darzustellenden Werte eigentlich her hast. Kommen die direkt per http von der Station oder via Awekas-API?
Oder noch anders?

Oliver
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#37

Beitrag von Wetterfrosch »

Hi Oli,

habs mittlerweile hinbekommen, doch jetzt tut sich das nächste große Problem auf und ich bekomme es nicht in den Griff:

Das Problem mit den Sonderzeichen :-(
Sie werden durchweg falsch angezeigt, habe mein PHP-Script mit dem ich das Widget erstelle auf charset=utf-8 gestellt und auch mit der Seite mit der ich das ganze dann abrufe ebenso, trotzdem wirds durchweg falsch angezeigt.
Ich doctore jetzt schon Stunden rum, hab halb googel leer gelesen, ich bekomms nicht hin und sieht halt scheiße aus, wenn das ° Zeichen falsch angezeigt wird :-(
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#38

Beitrag von olicat »

Hi!

Da haben wir ja beinahe die letzten Stunden gemeinsam verbracht ...
Auch ich kaempfte mit den Sonderzeichen und der Interaktion von Perl, Python und html bei Lesen & Schreiben von Werten aus/in Dateien und deren Praesentation. Auch ich war beinahe verzweifelt.
Jetzt scheint es bei mir hier zu funktionieren ...

So was Einfaches wie &deg; hilft bei Dir nicht?

Oliver
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#39

Beitrag von Wetterfrosch »

genau das &deg; kenne ich von meinen anderen Seite wo ich auch schon das Problem hatte, dort funktioniert das einwandfrei, doch bei meinem aktuellen Problem wird dann das &deg; 1:1 ausgegeben :-(

Ich muss dazu sagen, es geht um die Beschriftung des Widget in PHP über imageString, da entsteht das Problem.
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrose grafisch programmieren?

#40

Beitrag von Wetterfrosch »

schau mal hier, soweit bin ich jetzt:

https://wetterstation-badenweiler.de/MLV.php

Was mir gar nicht einleuchtet, ich hab 2 ähnliche Seiten, auf denen ich auch ein Widget programmiert habe, dort werden die Sonderzeichen genommen und ich hab auf denen Seiten im header nix anderes stehen wie auf meiner aktuellen Problemseite, das ist echt komisch.

So, ich geb auf, dann gibts in der Anzeige halt nur ein Celicius ohne Grad und aus Böe wurde halt Boe :-(
Antworten