NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Hallo,
nach dem Update von 1.4 auf 1.5 funktioniert fast alles.
"Info.Letzter_Regen" zeigt mir nurnoch "vor Tagen" an, der Wert fehlt also. Mit der 1.4 hat das tadellos funktioniert.
In der Config habe ich wie immer "LAST_RAIN=DIFF" eingestellt.
Ich sehe in den Objekten aber auch dass "Info.Letzter_Regen" regelmäßig aktualisiert (grün) wird.Hat das sonst noch jemand beobachtet?
-
Erst mal das "Einfache"...
@Rushmed Ich habe da so eine Ahnung (denn bei mir funktioniert es ). Du nutzt wahrscheinlich- kein OpenSenseMap?
- und hast wahrscheinlich vergessen jq zu installieren?
Falls bei
which jq
kein Verzeichnis als Antwort kommt:sudo apt-get install jq
Durch die Umstellung auf HTTPS/Authentifizierung waren auch Änderungen in den Rückmeldungen des ioB nötig (ua. beim Regen...). Da funktioniert die Auswertung der Rückgabewerte ohne "jq" nicht mehrjq = wenige kiloByte großer JSON-Parser unter Linux
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Dort konnte ich die Daten für Weathercloud, Underground, mein WLAN-Zugangsdaten und die Zeitzone einstellen. Mehr leider nicht.
nicht gut...
Ich weiß nicht wie gut deine Netzwerkkenntnisse sind und wie viel Aufwand du betreiben möchtest, aber wenn es keine Möglichkeit gibt deine Station entsprechend zu konfigurieren, dann wird es aufwändig.
Das Ganze basiert einfach darauf, dass man sich die WU - URL mit den Daten an einen lokalen Rechner schicken lässt. Diese URL mit den Daten hast du zwar auch, nur schickt er es halt direkt an WU.
Wenn man einen eigenen DNS-Server (geht auch mit PiHole) aufsetzt (mit einer Fritz!Box geht es leider nicht) und die Namensauflösung nicht mehr von der Fritz!Box oä. sondern vom eigenen DNS übernehmen lässt, kann man die Domain-Adresse von WU auf einen eigenen Rechner "umbiegen". So käme man auch an die Daten. -
@SBorg Ok, hört sich erstmal kompliziert an . Ich werde mich mal rein lesen ...
Trotzdem danke erstmal -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
sudo apt-get install jq
Volltreffer, danke.
-
Wird sich zukünftig auch überprüfen lassen:
-
Hallo,
vielleicht stand es hier schon irgendwo.
aber die Innentemperatur wird bei mit mit 2 nachkommastellen angezeigt, kann ich das umstellen? -
@eviltrooper Hi, nö, aber je nach dem was du mit dem Datenpunkt anstellst bzw. anstellen willst, kannst du es ja in NodeRED, Blockly, JS, VIS, Grafana etc. abstellen.
-
@SBorg
ja ist mir auch gerade eingefallen.. ich dummbeutel.. im VIS kann ich das ja auch einstellen..
Sorry für die dumme Frage -
@eviltrooper sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ich dummbeutel.. im VIS kann ich das ja auch einstellen..
Sorry für die dumme FrageVeto, es gibt hier keine Dummbeutel oder dumme Fragen. Ich vergesse auch mal was oder sehe den Wald vor lauter Bäumen nicht immer
Die Materie ist ja auch ziemlich komplex und vielen fremd -
Hallo,
kann mir jemand sagen was die Fehlermeldung "nc: getnameinfo: Temporary failure in name resolution" bedeutet?
Mit "nc -lv -p 1080" bekomme ich die selbe Ausgabe.
Dankeschön!
Edit: Habs gelöst.
In der Datei /etc/resolv.conf
Nameserver auf 8.8.8.8Edit2: Mhm.. Dat hat zwar temporär funktioniert aber nach einem Neustart ist diese Änderung wieder überschrieben und das Script funktioniert wieder nicht.
Hat dann doch jemand eine Idee? -
@sonystar sagte in [Linux Shell-Skript] WLAN-Wetterstation:
aber nach einem Neustart ist diese Änderung wieder überschrieben
Das ist auch normal, denn /etc/resolv.conf ist ein SymLink. Mach mal ein
ls -al /etc/resolv.conf
dann siehst du es. Notiere dir mal das Ziel (zB. /etc/run/resolve/stub-resolv.conf), dann löscht du den Symlink und legst eine "echte" Datei an mittelsrm -iv /etc/resolv.conf && touch /etc/resolv.conf
Jetzt kannst du sie normal editieren + einfach nameserver 8.8.8.8 eintragen. Das überlebt dann auch einen Systemneustart.Funktioniert nun etwas anderes nicht, kannst du den SymLink wieder herstellen. Die Originaldatei blieb erhalten
-
Vielen Dank für die Hilfe. Habe die Datei gelöscht und eine neue erstellt.
Die Datei /etc/resolv.conf sieht nun so aus:# Generated by NetworkManager search fritz.box nameserver 8.8.8.8
Damit funktioniert auch alles.
Nach einem Neustart des Systems steht in der Datei allerdings folgendes:# Generated by NetworkManager search fritz.box nameserver 127.0.0.53
Damit geht nichts.
Habe auch schon meinen "richtigen" DNS server dort eingetragen, auch dieser wird mit jedem Neustart überschrieben.
-
@sonystar Was aber komisch ist, denn 127.0.0.53 ist eigentlich korrekt.
# Generated by NetworkManager
Der läuft bei dir. Den brauchst du aber nicht wenn du unter /etc/resolv.conf den Server händisch angibst:
sudo systemctl stop systemd-resolved
zum Anhalten- dann
sudo systemctl disable systemd-resolved
zum Abschalten beim booten - jetzt kannst du die resolv.conf (s.o.) nochmals anlegen (falls es noch immer ein SymLink sein sollte)
-
Also das scheint erstmal nicht funktioniert zu haben, aktuell ist der Rechner für mich nicht mehr erreichbar. Muss dazu sagen dass die Technik im Garten steht und so für mich nicht greifbar ist. Kann den Rechner zwar noch anpingen und iobroker erreiche ich auch, Teamviewer und das Script laufen allerdings nicht. Werd mich morgen mal ins Auto setzen und vorort schauen was los ist. Hatte die Fritzbox eingetragen als DNS, morgen probier ich mal den Google-dns und werd ssh einrichten.
-
Also mit deaktiviertem NetworkManager funktioniert es nicht, dann hat der Rechner kein Internet mehr. Auf die ioBroker-Oberfläche komme ich wegen bestehender VPN noch drauf aber sonstige Dienste gehen nicht. Das komische war dass in der resolv.conf trotzdem wieder die 127.0.0.53 drin stand. Das hatte ich nach deaktivierung des NetworkManager geändert auf die IP der Fritzbox.
Es bleibt dabei, mit aktiviertem NetworkManager und Reboot des Rechners läuft der Script nicht mit der Fehlermeldung:
wetter@Desktop-Wetter:~/WLAN-Wetterstation-1.4.0$ ./wetterstation.sh --debug Connection to xxx.xxx.xxx.xxx xxxx port [tcp/*] succeeded! nc: getnameinfo: Temporary failure in name resolution
Erst wenn ich in der Datei resolv.conf die IP ändere auf Google oder Fritzbox läuft das Script.
Hast du noch eine Idee?
-
@sonystar Welche Distri nutzt du denn?
Grundsätzlich ist erst mal die 127.0.0.53 richtig. Hier schaut der Rechner dann auf den Nameserver und löst dann den Namen in die IP auf.
Aktuell wird zur Konfiguration des Netzwerkes eigentlich "netplan" benutzt. Dann sollte eine *.yaml unter /etc/netplan liegen:# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: ens18: dhcp4: no dhcp6: yes addresses: [192.168.112.3/24] gateway4: 192.168.112.1 nameservers: addresses: [192.168.112.1]
Wie bei yaml üblich sind auch hier die Einrückungen wichtig,
Versuche zuerst aber mal ein
nc -nlvw 1 -p 1080
mit den "falschen" Netzwerkeinstellungen. Funktioniert das? -
@SBorg Ich nutze Ubuntu 20.04.
nc -nlvw 1 -p 1080 scheint zu funktionieren
Die Datei /etc/netplan/*.yaml sieht bei mir so aus
-
@sonystar sagte in [Linux Shell-Skript] WLAN-Wetterstation:
renderer: NetworkManager
da bin ich leider raus. Würdest du direkt am Rechner sitzen ev. ja, so aber bei einem Fehler ab ins Auto... Ne, ohne mich
Wenn es aber mittels "n" beim netcat funktioniert, nehmen wir doch das einfach.
Im Installationsverzeichnis vom Skriptnano wetterstation.sub
CTRL+W drücken, get_data eingeben und [ENTER]
2 Zeilen unter dem Cursor siehst du dann "... nc -lvw 1 -p ..." dort fügst du ein "n" ein: "... nc -nlvw 1 -p ..."~12 Zeilen tiefer beginnt dann "ws_data", dort das selbe. Speichern und es sollte funktionieren.
Nehme ich dann für die V1.6.0 auf, da wir sowieso nur mit IP arbeiten und nicht zwangsläufig die Namensauflösung brauchen. -
@SBorg Mein Held des Tages! Vielen Dank, es läuft nun nach einem Restart sauber los!