Seite 9 von 32

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 09:23
von Gyvate
Dann ist ja das in der Anleitung ergänzte PowerShell Skript als Startup-Skript ausreichend, um den WSL-IP Wechsel abzufangen. :thumbup: - Nur nach einem Windows Stand-By müsste es manuell angestossen werden. Ein WSL-Stand-By sollte ja nicht vorkommen, wenn FOSHKplugin als Service läuft.

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 09:53
von olicat
Hi!

Interessant (aber auch logisch):
Auf dem WSL-Host selbst kann man die Webdienste von FOSHKplugin ebenfalls unabhaengig von der jeweilgen IP-Adresse der WSL-Instanz nutzen:

Code: Alles auswählen

http://localhost:8080/status&minmax&refresh=30
Mit localhost in der Adresse koennen also auch alle anderen Web-Befehle von FOSHKplugin genutzt werden.
Solange der Portforward innerhalb des WSL-Hostes passt, ist auch fuer die Wetterstation die eigentliche IP-Adresse der Instanz irrelevant.
Denn die Station selbst schickt die Daten ja zum WSL-Host (der dann aber die eingehenden Pakete zur Instanz schicken muss).
Daher ist dieser netsh-Befehl auch so wichtig.

Oliver

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 11:12
von olicat
Hi!
Eine Automatisierung der entsprechenden Änderungen (sofern möglich) ist in Arbeit.
Hier ein Script das das Port-Forwarding auch bei wechselnder IP-Adresse korrekt wiederherstellen sollte:

Code: Alles auswählen

# setFOSHKpluginProxy4WSL.ps1
# this script should be started with administrator privileges on every Windows start (scheduler)
# Oliver Engel, 05.01.2022

# port on which FOSHKplugin awaits data from the weather station
$httpPort = 8080

# reset current settings
netsh interface portproxy reset

# set portproxy to send all incoming traffic at port httpPort to the same port on WSL virtual machine
netsh interface portproxy add v4tov4 listenport=$httpPort listenaddress=0.0.0.0 connectport=$httpPort connectaddress=127.0.0.1
Das Script sollte in der Aufgabenplanung von Windows als Administrator bei jedem Start von Windows (oder bei Netzwerkverfuegbarkeit) gestartet werden.

Das Script selbst habe ich getestet. Jedoch nicht per Aufgabenverwaltung.

Update: Nach Hinweis von Werner deutlich vereinfacht. Danke!

Oliver

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 12:13
von Werner
Warum macht Ihr es so kompliziert?

Code: Alles auswählen

netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=127.0.0.1
... bei funktioniert das jedenfalls einwandfrei.
Apache2 läuft hier auf Port 80 und die Seite kann man ohne Probleme mit
http://%Rechnername% erreichen oder auf dem Computer selbst mit http://localhost
Voraussetzung das %Rechnername% auch aufgelöst werden kann (z.b. Router-Eintrag)

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 12:26
von olicat
Hallo Werner, Gesundes Neues Jahr!
Warum macht Ihr es so kompliziert?
Tatsaechlich!
Mir war nicht klar, das Windows das Geraffel tatsaechlich nicht IP-seitig trennt.
Das ist natuerlich noch viel einfacher - ein etwaiger IP-Wechsel ist dann voellig egal.
Guter Hinweis, danke!
Somit kann man dann natuerlich auch unter Angabe der IP-Adresse des Wirts auch von beliebigen anderen Clients im LAN auf den FOSHKplugin-Web-Service zugreifen (bei Dir auf den Apache).
Sehr schoen.

Nutzt Du fuer den Apache dann auch den systemd-Ersatz oder wie machst Du das?

Oliver

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 19:06
von Werner
@Oliver
Nutzt Du fuer den Apache dann auch den systemd-Ersatz oder wie machst Du das?
Jein - funktioniert bei mir nicht - bekomme permision denied.
Hab aber noch nicht untersucht warum dass so ist.
Mache es momentan über ein eigenes Shell-Script: services.sh im Home-Verzeichnis

Code: Alles auswählen

#!/bin/bash
# Start Services if not running

[ "`service syslog-ng status | sed 's/.*not running.*/nok/'`" == "nok" ] && sudo service syslog-ng start
[ "`service dbus status | sed 's/.*not running.*/nok/'`" == "nok" ] && sudo service dbus start
[ "`service cron status | sed 's/.*not running.*/nok/'`" == "nok" ] && sudo service cron start
[ "`service ssh status | sed 's/.*not running.*/nok/'`" == "nok" ] && sudo service ssh start
[ "`service apache2 status | sed 's/.*not running.*/nok/'`" == "nok" ] && sudo service apache2 start
Starten dann WSL mit:

Code: Alles auswählen

wsl.exe bash ~/services.sh

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 20:00
von neuling10
Hallo zusammen,

nach diversen Recherchen wurde ich auf das FOSHKplugin aufmerksam, dass meine Erwartung theoretisch zu 100% abdeckt. Dafür schon mal ein großes Dankeschön für die Entwicklung.

Leider stehe ich noch bei der Konfiguration an.

Folgende Umgebung:
- Raspi 4 mit Pi OS Lite, auf Docker Container laufen OpenHAB, InfluxDB, Grafana und MQTT als Container in einer Portainer-Umgebung. Läuft derzeit noch mit SD Card, SSD Umstieg ist geplant
- GW1000A, die vormals Daten über Meteobridge an einem eigenen Raspi an WU, AmbientWeather und Ecowitt sendete
- Neben der Außenstation weitere Sensoren (Blitzsensor, Bodenfeuchtesendor, Luftqualitätssensor, Innensensoren (Temperatur, Luftfeuchtigkeit), die alle an den GW1000 angebunden sind
- Synology NAS
- FritzBox

Ziel:
- Raspi mit Meteobridge entfällt, Nachteil ist auch dass Meteobridge nur minütlich Daten nach AmbientWeather exportiert, obwohl AmbientWeather mit einem Binding sehr gut in OpenHAB integrierbar wäre
- FOSHKplugin (generic) auf einem Raspi gemeinsam mit OpenHAB und den Docker Containern laufen lassen
- Wetterdaten sollen alle 10 Sekunden sämtliche Sensordaten an die InfluxDB senden
- Senden der Daten an MQTT und Auslösen von Aktionen via MQTT auf OpenHAB

Problemstellung:
Auf dem OpenHAB-Raspi habe ich das FOSHKplugin soweit erfolgreich installiert.
http://<IP>:8081/ und /observations/current/json/units=m geben mir leider nichts bzw. nur null-Werte aus
/FOSHKplugin/state meldet "running" zurück

Hat jemand eine Idee, warum ich keine Wetterdaten erhalte?

Anbei meine Config-Datei ohne IPs.

Sorry, sollte ich noch etwas unklar formuliert haben, ich bin noch ein kompletter Neuling und beschäftige mich erst knapp ein Monat mit Linux und div. Smart Home Anwendungen auf Linux (openHAB, MQTT, InfluxDB usw.)... :-)

Grüße
Bernhard

Re: FOSHKplugin

Verfasst: 05 Jan 2022, 21:50
von olicat
Hi!

Lt. Config laeuft FOSHKplugin auf Port 8082 - probier doch mal http://ipaddr:8082/status&minmax bzw. http://ipaddr:8082/JSON?status&minmax&units=m
minmax und status kannst Du jeweils weglassen, beachte aber die Grossschreibung bei JSON!
Oder wolltest Du ein WU-Binding innerhalb von OpenHAB nutzen?
Dann probier bitte http://ipaddr:8082/observations/current/json/units=m.

Du solltest mit WS View (oder WSView Plus) pruefen, ob die Custom Server-Konfiguration tatsaechlich korrekt ist. Immerhin scheint FOSHKplugin schon laenger keine Daten der Wetterstation empfangen zu haben (inWStimeoutWarning = True).

Das erzeugte Log-File /opt/FOSHKplugin/log-foshkplugin.log enthaelt ggf. zusaetzliche hilfreiche Hinweise.

Fuer das Senden an die InfluxDB v1.x benoetigst Du noch einen entsprechenden Forward etwa in der Art:

Code: Alles auswählen

[Forward-3]
FWD_CMT = InfluxDB v1.x-Forward of metric values
FWD_TYPE = INFLUXMET
FWD_ENABLE = True
FWD_SID = username
FWD_PWD = password
FWD_URL = http://localhost@database
FWD_STATUS = True
FWD_INTERVAL =
FWD_EXEC =
FWD_IGNORE =
Und auch fuer MQTT (metrisch) waere ein entsprechender Forward moeglich:

Code: Alles auswählen

[Forward-30]
FWD_CMT = MQTT-Forward of metric values to MQTT-broker@localhost
FWD_TYPE = MQTTMET
FWD_ENABLE = True
FWD_SID = username
FWD_PWD = password
FWD_URL = localhost:1883%metric_
FWD_STATUS = True
FWD_INTERVAL =
FWD_EXEC =
FWD_IGNORE = PASSKEY
Oder willst Du das JSON per cron und curl im Intervall abholen?

Ich halte einen Intervall von 10 Sekunden fuer Wetterdaten nicht fuer sinnvoll - vorallem, wenn lt. Config die Wetterstation nur alle 60 Sekunden sendet. Ich kenne aber auch Deine genaue Aufgabenstellung nicht.

Ansonsten kann ich nur dringend die zusaetzliche Konfiguration von Pushover fuer die Benachrichtigung per Push-Notification empfehlen. Ich mag diesen Dienst nicht mehr missen.
Und im Sommer (spaetestens) koennte die verbesserte Sonnenstundenberechnung hilfreich sein, diese musst Du aber in der Config enablen und Deine Geo-Koordinaten eintragen.

Lt. Config-File hast Du die aktuelle public Beta v0.0.9 im Einsatz, korrekt?

Achja, Du hast bisher Daten an Ambient Weather verschickt? Besitzt Du eine entsprechende Lizens? Dann koenntest Du AW natuerlich auch weiter ueber FOSHKplugin beliefern.

Gruss, Oliver

Re: FOSHKplugin

Verfasst: 08 Jan 2022, 11:36
von Floridadriver
Guten Tag zusammen,
ich komme da (leider) nicht mehr mit.
Ich suche nach einer einfachen Lösung meine Wetterdaten vom DP1500
a) an mehere Tablets PWT weiterzugeben
b) meine Wetterdaten auf meinem PC zu sicher und einzusehen z. B. mit PC-Wetterstation Werner Krenn (oder was auch immer mir empfehlen könnt) .
Ich habe eine FTP server undkönnte auch Daten zwischenspeichern.

Ich würde gerne meinen Beelink U59 mit Windows 11pro mit WSL und FOSHKplugin nutzen, weil halt schon da ist.
Falls LoxBerry mit FOSHKplugin einfacher ist, sollte an der Anschaffung eines Raspberry Pi 3+ nicht scheitern. Auf den Raspberry hätte ich dann gerne in meinem Netzwerk Zugriff mit Windows Remote Desktop (oder was Ihr emfehlt). Ist halt einfacher da ist Tastatur, Maus und Bildschirm bereits angeschlossen.
Das funktioniert wohl nicht mit Loxberry
https://www.wintotal.de/tipp/raspberry- ... e-desktop/

Ich suche halt nach einer einfachen, für mich darstellbaren Lösung.
Ich Danke euch allen mit der Geduld mit mir

Michael

Re: FOSHKplugin

Verfasst: 08 Jan 2022, 11:51
von olicat
Hi!
ich komme da (leider) nicht mehr mit.
An welcher Stelle von der Anleitung kommst Du denn nicht mehr mit?
Unter der Voraussetzung, das Dein Beelink permanent laeuft (und auch nur dann!) sollten all Deine in Deinem Post gewuenschten Dinge mit genau der dort beschriebenen Loesung moeglich sein.

Im Groben geht es dabei "nur" um:
1. Installation WSL
2. Installation von FOSHKplugin unten in den Recipes unter "Installation of FOSHKplugin generic version for several PWT instances"
3. Finetuning

An welcher Stelle kommst Du denn nicht weiter?
Die LoxBerry-Loesung benoetigst Du nicht.

Oliver