NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
Man kann natĂŒrlich auch innerhalb der Serie(n) zB. auf 14 Tage beschrĂ€nken mittels einer Retention Policy. Dann wird immer alles Ă€lter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).

Die Gruppierung wegzulassen hatte ich schon probiert, das hat leider nicht geholfen.
Grafana fragt die Werte trotzdem immer nur in dem aktuellen Zeitraum ab, also z.B. die letzten 24h. Das sieht man im Query Inspector, bei jeder Abfrage steht am Ende der Zeitraum: z.B.
SELECT "value" FROM "javascript.0.Wetterstation.Regenstatus" WHERE time >= now() - 24h and time <= now()
Und wenn er da keine Daten findet, wird auch nichts angezeigt, die Gruppierung hat da keinen Unterschied gemacht.Ich lasse jetzt auch einfach die betroffenen Datenpunkte zwar nur bei Ănderung schreiben, aber zusĂ€tzlich nochmal alle 6 Stunden.
@viper4iob Dann haben sie es wohl irgendwann geÀndert (ich glaube es gab in den letzten 14 Tagen vier neue Versionen).
Mir ist es allerdings auch nicht aufgefallen, da ich es eben auch zusÀtzlich alle 12 Stunden schreiben lasse. -
@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
- Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json fĂŒllen der nur "0" als Wert enthĂ€lt?
- Wenn Du um 01:03 Deine Statistik erstellst, auch fĂŒr den laufenden Monat einen json erstellst bzw. Aktualisierst?
- Das gleiche fĂŒr das laufende Jahr?
- Das gleiche fĂŒr die Rekordwerte?
Pauschal ja, aber da ich ein massives Zeitproblem habe aktuell leider nicht.
#1 ist eher unkritisch, dass sollte sich auch zeitnah lösen lassen, da es max. nur eine handvoll Quellcode ist.
#2-4 birgt leider noch ein weiteres Problem (bei #2 nicht so dramatisch). #3 + #4 sind, gerade zum Ende des Jahres bei vielen DatensĂ€tzen, eigentlich ein absolutes "Killerfeature" fĂŒr Pi-Nutzer. Der braucht da 2-3 Minuten unter JS dafĂŒr, dabei laggt dann das ganze System. Unter Linux dauert die Abfrage unter 2 Sekunden, dann wĂ€re aber ein Teil der Statistik im JS-Teil, der andere im Wetterstation-Skript...
Das schreit dann schon wieder fast nach einer Wetterstatistik.sh, gerade weil es dann eigentlich nur Abfragen gegen die InfluxDB sind, wobei das fĂŒr #4 eigentlich nicht gilt...
...und wo ich gerade tippe, #4? Das sind Allzeitwerte, also bspw. die höchste jemals gemessene AuĂentemperatur von 43.1° gemessen am 15.07.2020
Solange es jetzt nicht ĂŒber 43.1°C wird (oder du den Wert löschst) wird sich da nix mehr weiter tun ;)
Sonst bitte Stellungnahme in dreifacher, schriftlicher AusfĂŒhrung mit Durchschlag auf Normblatt 08/15 DIN A4 quer, gelocht mit SchrĂ€gstanzung
Danke fĂŒr Deine schnelle Antwort, leider ist mir das Normblatt 08/15 DIN A4 quer, gelocht mit SchrĂ€gstanzung ausgegangen

Aber SpaĂ bei Seite, ich habe bzw. bin ja dabei mit Javascript die Tabellen wie im Screenshot zu sehen, zu erstellen.
Meine Frage: Wenn ich also am zB. 1.1.2022 im laufe des Tages mein Script laufen lasse, der die Dummy Monate 02 - 12.2022 erstellt, kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?Die Aktualisierung des laufenden Monats, der Rekordwerte und des laufenden Jahres lÀuft ja schon bei mir.
Wenn Dein Programm dies beinhalten wĂŒrde wĂ€hre es halt fĂŒr alle verfĂŒgbar.Bei Fragen, geht es auch ohne NormblĂ€tter!!
MfG
Wastl -
@viper4iob Dann haben sie es wohl irgendwann geÀndert (ich glaube es gab in den letzten 14 Tagen vier neue Versionen).
Mir ist es allerdings auch nicht aufgefallen, da ich es eben auch zusÀtzlich alle 12 Stunden schreiben lasse.Noch ein kleiner Punkt zum Thema Grafana, und zwar die Windrose.
Ich hatte mich gewundert, warum diese bei wenig Wind, wo sich also auch seltener die Windrichtung Àndert, immer Wind aus 0° angezeigt wird:
Nun ist es so, dass hier das DB Abfrage Intervall 1 Minute ist, dass heiĂt Grafana liest fĂŒr jede Minute einen Wert aus der InfluxDB aus.
Wenn aber kein Wert verfĂŒgbar ist, wird dieser mit null gefĂŒllt. Und null wird aber scheinbar von der Windrose als 0° interpretiert.
Ich lasse die Werte vom iobroker nur bei Ănderungen in die DB schreiben, weil sich der Wert im Normalfall sehr hĂ€ufig Ă€ndert, auĂer bei geringem Wind.
Wenn sich jetzt also z.B. 5 min lang die Richtung nicht Àndert, dann habe ich einen realen Wert und 4 null-Werte, was mir das Gesamtbild der Windrose verfÀlscht.Ich habe jetzt statt fill(null) fill(previous) eingestellt, was das Bild meiner Meinung nach verbessert. Und es entspricht ja auch dem, was die Windfahne macht, sie bleibt so stehen bis sie ihre Richtung wieder Àndert:

Man könnte jetzt natĂŒrlich auch im iobroker den Wert minĂŒtlich schreiben lassen, wĂŒrde aber am Ende zum gleichen Ergebnis fĂŒhren.
-
Danke fĂŒr Deine schnelle Antwort, leider ist mir das Normblatt 08/15 DIN A4 quer, gelocht mit SchrĂ€gstanzung ausgegangen

Aber SpaĂ bei Seite, ich habe bzw. bin ja dabei mit Javascript die Tabellen wie im Screenshot zu sehen, zu erstellen.
Meine Frage: Wenn ich also am zB. 1.1.2022 im laufe des Tages mein Script laufen lasse, der die Dummy Monate 02 - 12.2022 erstellt, kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?Die Aktualisierung des laufenden Monats, der Rekordwerte und des laufenden Jahres lÀuft ja schon bei mir.
Wenn Dein Programm dies beinhalten wĂŒrde wĂ€hre es halt fĂŒr alle verfĂŒgbar.Bei Fragen, geht es auch ohne NormblĂ€tter!!
MfG
Wastl@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:

kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?
Sollte nichts ausmachen. Wenn es die DPs schon gibt legt er sie halt einfach nicht nochmals an.
Du mĂŒsstest nur, wenn du es nutzt, das AutoDelete um ein Jahr erhöhen als du wirklich willst, sonst löscht er wg. der "falschen" Zeitstempel die Daten zu frĂŒh (bspw. wird dann der Dezember bereits im Januar angelegt und ist dann lt. Zeitstempel im Dezember 11 Monate alt ;) ). -
Noch ein kleiner Punkt zum Thema Grafana, und zwar die Windrose.
Ich hatte mich gewundert, warum diese bei wenig Wind, wo sich also auch seltener die Windrichtung Àndert, immer Wind aus 0° angezeigt wird:
Nun ist es so, dass hier das DB Abfrage Intervall 1 Minute ist, dass heiĂt Grafana liest fĂŒr jede Minute einen Wert aus der InfluxDB aus.
Wenn aber kein Wert verfĂŒgbar ist, wird dieser mit null gefĂŒllt. Und null wird aber scheinbar von der Windrose als 0° interpretiert.
Ich lasse die Werte vom iobroker nur bei Ănderungen in die DB schreiben, weil sich der Wert im Normalfall sehr hĂ€ufig Ă€ndert, auĂer bei geringem Wind.
Wenn sich jetzt also z.B. 5 min lang die Richtung nicht Àndert, dann habe ich einen realen Wert und 4 null-Werte, was mir das Gesamtbild der Windrose verfÀlscht.Ich habe jetzt statt fill(null) fill(previous) eingestellt, was das Bild meiner Meinung nach verbessert. Und es entspricht ja auch dem, was die Windfahne macht, sie bleibt so stehen bis sie ihre Richtung wieder Àndert:

Man könnte jetzt natĂŒrlich auch im iobroker den Wert minĂŒtlich schreiben lassen, wĂŒrde aber am Ende zum gleichen Ergebnis fĂŒhren.
@viper4iob Was euch immer so alles auffÀllt

-
@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:

kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?
Sollte nichts ausmachen. Wenn es die DPs schon gibt legt er sie halt einfach nicht nochmals an.
Du mĂŒsstest nur, wenn du es nutzt, das AutoDelete um ein Jahr erhöhen als du wirklich willst, sonst löscht er wg. der "falschen" Zeitstempel die Daten zu frĂŒh (bspw. wird dann der Dezember bereits im Januar angelegt und ist dann lt. Zeitstempel im Dezember 11 Monate alt ;) ). -
Nochmals Danke fĂŒr die schnelle Antwort.
Ich habe AutoDelete_Data, AutoReset_Jahresstatistik jeweils auf 0 und Reset_Jahresstatistik auf false, also dĂŒrfte doch nichts passieren, oder?
MfG
WastlHallo
Kann mir jemand sagen warum der Datenpunkt Maximaltemperatur Tag sich immer wieder aktualisiert mit der normalen AuĂentemperatur?Wenn die AuĂentemperatur runter geht ĂŒbernimmt er leicht zeitversetzt auch diesen Wert.
Muss ich da irgendwas Àndern oder einstellen?
-
Nochmals Danke fĂŒr die schnelle Antwort.
Ich habe AutoDelete_Data, AutoReset_Jahresstatistik jeweils auf 0 und Reset_Jahresstatistik auf false, also dĂŒrfte doch nichts passieren, oder?
MfG
Wastl@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
also dĂŒrfte doch nichts passieren, oder?
Eigentlich nicht, aber nutzt du BackitUp? Sonst notfalls sicherheitshalber am 31.12. ein Backup per Hand ziehen, man weiĂ ja nie ... ;)
-
Hallo
Kann mir jemand sagen warum der Datenpunkt Maximaltemperatur Tag sich immer wieder aktualisiert mit der normalen AuĂentemperatur?Wenn die AuĂentemperatur runter geht ĂŒbernimmt er leicht zeitversetzt auch diesen Wert.
Muss ich da irgendwas Àndern oder einstellen?
@martin-0 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Muss ich da irgendwas Àndern oder einstellen?
Jein, zwar nicht speziell, aber da der Wert nur per InfluxDB ermittelt wird, muss Influx natĂŒrlich aktiviert und korrekt eingerichtet sein.
-
@martin-0 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Muss ich da irgendwas Àndern oder einstellen?
Jein, zwar nicht speziell, aber da der Wert nur per InfluxDB ermittelt wird, muss Influx natĂŒrlich aktiviert und korrekt eingerichtet sein.
-
Wie immer keine Werbung, Provision, Affiliate-Link oÀ., einfach nur falls wer sucht:
Eurochron EFWS 2900 Funk-Wetterstation mit Gutscheinrabatt etc. inkl. Versand 105,95 âŹ
Ist mal ein echter Schnapper ;) -
Wie immer keine Werbung, Provision, Affiliate-Link oÀ., einfach nur falls wer sucht:
Eurochron EFWS 2900 Funk-Wetterstation mit Gutscheinrabatt etc. inkl. Versand 105,95 âŹ
Ist mal ein echter Schnapper ;)Ich wollte die OpenSenseMap Registrierung ĂŒber das Skript durchfĂŒhren:
./wetterstation.sh --osem_reg.
Nur leider bricht diese gleich mit folgendem Fehler ab:

So sieht die conf aus:

Die Zeile, die den Fehler erzeugt, ist diese:

Jetzt habe ich mich gefragt, wo dieser
OSEM_USERher kommt, der hier geprĂŒft wird, in der conf gibt es nur einensenseBox_USER, und die Abfrage am Terminal durch read kommt erst nach dieser PrĂŒfung. Und ich konnte auch keine Stelle finden, an der dersenseBox_USERaus der conf ausgelesen und in denOSEM_USERgeschrieben wird.
Und selbst wenn imOSEM_USERan der Stelle den Inhalt aussenseBox_USERhĂ€tte, mĂŒsste dann das PrĂŒfen auf den Leerstring vielleicht eher so aussehenif [ ! -z $OSEM_USER ];?
Nun weià ich auch nicht, ob nur ich damit ein Problem habe, weil das ws_update Skript bei mir auch nicht richtig lÀuft, wo das patchen schief geht und ich immer noch nicht weià warum.
Aber vielleicht ist es ja hier ein anderes Problem ;-) -
Ich wollte die OpenSenseMap Registrierung ĂŒber das Skript durchfĂŒhren:
./wetterstation.sh --osem_reg.
Nur leider bricht diese gleich mit folgendem Fehler ab:

So sieht die conf aus:

Die Zeile, die den Fehler erzeugt, ist diese:

Jetzt habe ich mich gefragt, wo dieser
OSEM_USERher kommt, der hier geprĂŒft wird, in der conf gibt es nur einensenseBox_USER, und die Abfrage am Terminal durch read kommt erst nach dieser PrĂŒfung. Und ich konnte auch keine Stelle finden, an der dersenseBox_USERaus der conf ausgelesen und in denOSEM_USERgeschrieben wird.
Und selbst wenn imOSEM_USERan der Stelle den Inhalt aussenseBox_USERhĂ€tte, mĂŒsste dann das PrĂŒfen auf den Leerstring vielleicht eher so aussehenif [ ! -z $OSEM_USER ];?
Nun weià ich auch nicht, ob nur ich damit ein Problem habe, weil das ws_update Skript bei mir auch nicht richtig lÀuft, wo das patchen schief geht und ich immer noch nicht weià warum.
Aber vielleicht ist es ja hier ein anderes Problem ;-)@viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.
Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher gelÀufige [ "$var" != "" ] Variante geÀndert (+ nun mit der richtigen Variablen
).BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
EnthÀlt noch kleinere Schönheitskorrekturen. -
@viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.
Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher gelÀufige [ "$var" != "" ] Variante geÀndert (+ nun mit der richtigen Variablen
).BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
EnthÀlt noch kleinere Schönheitskorrekturen.@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.
Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher gelÀufige [ "$var" != "" ] Variante geÀndert (+ nun mit der richtigen Variablen
).BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
EnthĂ€lt noch kleinere Schönheitskorrekturen.Danke, fĂŒr das schnelle Beheben.
Mein Linux versucht aber beiif variable;den Inhalt als Kommando auszufĂŒhren, wenn dort etwas gesetzt ist und bei einem Leerstring, liefert es true zurĂŒck. Hier ein kleiner Test, 2 identische Skripte, bei einem ist die Variable OSEM_USER leer und bei dem anderen gesetzt:
So ist es besser lesbar:
viper@kubix:/opt/wetterstation$ cat test_leer.sh #!/bin/bash OSEM_USER= if $OSEM_USER; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ cat test_gesetzt.sh #!/bin/bash OSEM_USER=ahg123 if $OSEM_USER; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_leer.sh [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt! viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_gesetzt.sh ./test_gesetzt.sh: Zeile 5: ahg123: Befehl nicht gefunden viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ bash --version GNU bash, Version 5.0.17(1)-release (x86_64-pc-linux-gnu) -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.
Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher gelÀufige [ "$var" != "" ] Variante geÀndert (+ nun mit der richtigen Variablen
).BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
EnthĂ€lt noch kleinere Schönheitskorrekturen.Danke, fĂŒr das schnelle Beheben.
Mein Linux versucht aber beiif variable;den Inhalt als Kommando auszufĂŒhren, wenn dort etwas gesetzt ist und bei einem Leerstring, liefert es true zurĂŒck. Hier ein kleiner Test, 2 identische Skripte, bei einem ist die Variable OSEM_USER leer und bei dem anderen gesetzt:
So ist es besser lesbar:
viper@kubix:/opt/wetterstation$ cat test_leer.sh #!/bin/bash OSEM_USER= if $OSEM_USER; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ cat test_gesetzt.sh #!/bin/bash OSEM_USER=ahg123 if $OSEM_USER; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_leer.sh [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt! viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_gesetzt.sh ./test_gesetzt.sh: Zeile 5: ahg123: Befehl nicht gefunden viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ bash --version GNU bash, Version 5.0.17(1)-release (x86_64-pc-linux-gnu)@viper4iob Witzig, oder auch nicht... ;)
Mache mal spaĂeshalber den Gegentest direkt in der Console:
a=1 test $a && echo "Gesetzt" || echo "Nö" test $b && echo "Gesetzt" || echo "Nö" -
@viper4iob Witzig, oder auch nicht... ;)
Mache mal spaĂeshalber den Gegentest direkt in der Console:
a=1 test $a && echo "Gesetzt" || echo "Nö" test $b && echo "Gesetzt" || echo "Nö"@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
a=1 test $a && echo "Gesetzt" || echo "Nö" test $b && echo "Gesetzt" || echo "Nö"
Erst direkt in der Konsole, dann als Skript:
viper@kubix:/opt/wetterstation$ a=1 viper@kubix:/opt/wetterstation$ test $a && echo "Gesetzt" || echo "Nö" Gesetzt viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ test $b && echo "Gesetzt" || echo "Nö" Nö viper@kubix:/opt/wetterstation$ ./test.sh Gesetzt Nö -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
a=1 test $a && echo "Gesetzt" || echo "Nö" test $b && echo "Gesetzt" || echo "Nö"
Erst direkt in der Konsole, dann als Skript:
viper@kubix:/opt/wetterstation$ a=1 viper@kubix:/opt/wetterstation$ test $a && echo "Gesetzt" || echo "Nö" Gesetzt viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ test $b && echo "Gesetzt" || echo "Nö" Nö viper@kubix:/opt/wetterstation$ ./test.sh Gesetzt Nö@viper4iob
Ich glaube ich habs:if $OSEM_USER;... if [ $OSEM_USER ];...Ersteres fĂŒhrt zu oben genannten Problem, mit eckigen Klammern geht es.
EDIT
Hier nochmal alles:viper@kubix:/opt/wetterstation$ cat test_leer.sh #!/bin/bash OSEM_USER= if [ $OSEM_USER ]; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ cat test_gesetzt.sh #!/bin/bash OSEM_USER=ahg123 if [ $OSEM_USER ]; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_leer.sh viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_gesetzt.sh [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt! viper@kubix:/opt/wetterstation$ -
@viper4iob
Ich glaube ich habs:if $OSEM_USER;... if [ $OSEM_USER ];...Ersteres fĂŒhrt zu oben genannten Problem, mit eckigen Klammern geht es.
EDIT
Hier nochmal alles:viper@kubix:/opt/wetterstation$ cat test_leer.sh #!/bin/bash OSEM_USER= if [ $OSEM_USER ]; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ cat test_gesetzt.sh #!/bin/bash OSEM_USER=ahg123 if [ $OSEM_USER ]; then echo -e "\n${RE} [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt!\n";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_leer.sh viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ ./test_gesetzt.sh [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt! viper@kubix:/opt/wetterstation$@viper4iob Trotzdem sehr eigenartig, da "test" die Vereinfachung von "if - then - else" ist und in der Console funktioniert, im Skript dann aber wieder nicht.
Memo to me: Also sicherheitshalber, wenn faul, dann zumindest in [] oder gleich die Langvariante nehmen... ;)
-
@viper4iob Trotzdem sehr eigenartig, da "test" die Vereinfachung von "if - then - else" ist und in der Console funktioniert, im Skript dann aber wieder nicht.
Memo to me: Also sicherheitshalber, wenn faul, dann zumindest in [] oder gleich die Langvariante nehmen... ;)
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob Trotzdem sehr eigenartig, da "test" die Vereinfachung von "if - then - else" ist und in der Console funktioniert, im Skript dann aber wieder nicht.
Memo to me: Also sicherheitshalber, wenn faul, dann zumindest in [] oder gleich die Langvariante nehmen... ;)
Naja, das Kommando
testhat in der Konsole und im Skript das gleiche Ergebnis geliefert.
Aber die Kombination aus dem if-Statement ohne Klammern scheint problematisch zu sein.In der Konsole passiert genau der gleiche Fehler, Vergleich if ohne und mit []:
viper@kubix:/opt/wetterstation$ OSEM_USER= viper@kubix:/opt/wetterstation$ echo $OSEM_USER viper@kubix:/opt/wetterstation$ if $OSEM_USER; then echo "gesetzt";fi gesetzt viper@kubix:/opt/wetterstation$ if [ $OSEM_USER ]; then echo "gesetzt";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ OSEM_USER=zgh123 viper@kubix:/opt/wetterstation$ echo $OSEM_USER zgh123 viper@kubix:/opt/wetterstation$ if $OSEM_USER; then echo "gesetzt";fi zgh123: Befehl nicht gefunden. viper@kubix:/opt/wetterstation$ if [ $OSEM_USER ]; then echo "gesetzt";fi gesetzt viper@kubix:/opt/wetterstation$ -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob Trotzdem sehr eigenartig, da "test" die Vereinfachung von "if - then - else" ist und in der Console funktioniert, im Skript dann aber wieder nicht.
Memo to me: Also sicherheitshalber, wenn faul, dann zumindest in [] oder gleich die Langvariante nehmen... ;)
Naja, das Kommando
testhat in der Konsole und im Skript das gleiche Ergebnis geliefert.
Aber die Kombination aus dem if-Statement ohne Klammern scheint problematisch zu sein.In der Konsole passiert genau der gleiche Fehler, Vergleich if ohne und mit []:
viper@kubix:/opt/wetterstation$ OSEM_USER= viper@kubix:/opt/wetterstation$ echo $OSEM_USER viper@kubix:/opt/wetterstation$ if $OSEM_USER; then echo "gesetzt";fi gesetzt viper@kubix:/opt/wetterstation$ if [ $OSEM_USER ]; then echo "gesetzt";fi viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ viper@kubix:/opt/wetterstation$ OSEM_USER=zgh123 viper@kubix:/opt/wetterstation$ echo $OSEM_USER zgh123 viper@kubix:/opt/wetterstation$ if $OSEM_USER; then echo "gesetzt";fi zgh123: Befehl nicht gefunden. viper@kubix:/opt/wetterstation$ if [ $OSEM_USER ]; then echo "gesetzt";fi gesetzt viper@kubix:/opt/wetterstation$Zum Thema zurĂŒck :-)
Ich habe jetzt die sh und sub Dateien bei mir aktualisiert.
Nun scheitere ich aber am Punkt 2 des Install Guides genau an der gleichen Stelle.
Das Skript bricht ab, weil nun wirklich ein user gesetzt ist und man kann dann sie SenseBox nicht registrieren.Die Registrierungsmail habe ich zwischen den beiden Aufrufen bestÀtigt.
Alle Eingaben korrekt [J/N]: J Lege neuen SenseBox-User an... OK Speichere User und Passwort in wetterstation.conf ab... OK Vor dem fortfahren nun bitte zuerst die Email-Adresse verifizieren (Email von OpenSenseMap im Posteingang)... viper@kubix:/opt/wetterstation$ ./wetterstation.sh --osem_reg [FEHLER:] ABBRUCH! Es ist bereits ein Username fĂŒr OpenSenseMap in der Konfiguration gesetzt! viper@kubix:/opt/wetterstation$Ich denke diese if-Abfrage, ob der user schon vorhanden ist, sollte erst kommen, wenn man die Frage nach dem Einrichten eines neuen Users mit Ja bestĂ€tigt hat, also nach hier:
echo -en "\n$WE Neuen SenseBox-User registrieren [${GR}Ja/Nein${WE}]: $GE" read JN if [ ! $JN ]; then JN="Nein"; fi if [ $JN == "Ja" ]; then
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden