LoxBerry-Plugin: FOSHKplugin - Wettergateway Froggit DP1500 / Ecowitt GW1000 anbinden
Einklappen
X
-
Ich habe bei der Installation des FOHSK Plugins folgendes Problem:
arm-linux-gnueabihf-g++ -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I. -I/usr/include/python3.9 -c msgpack/_cmsgpack.cpp -o build/temp.linux-armv7l-cpython-39/msgpack/_cmsgpack.o
error: command 'arm-linux-gnueabihf-g++' failed: No such file or directory
----------------------------------------
ERROR: Failed building wheel for msgpack
Failed to build msgpack
ERROR: Could not build wheels for msgpack which use PEP 517 and cannot be installed directly
yes: standard output: Broken pipe
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
WARNING: Python influxdb installation failed! The plugin will not work without.
WARNING: Giving up.
22:29:47.487 CRITICAL: Script/Command fails. Installation cannot be continued.
Egal ob ich die Release oder die Beta Version installiere. Weiß jemand, was hier das Problem ist?Kommentar
-
Hallo,
ich hab mir das FOSHK Plugin installiert erst einmal vielen Dank für deine / eure Mühe, es ist auch für Menschen ohne Programmierkenntnisse so dokumentiert und funktional dass man eine echte Freude damit hat!
Meine aktuelle Hardware ist eine Wetterstation GW2000 und ein WS90 Sensor (beides direkt von Ecowitt gekauft), diese schicken brav die Werte und ich kann diese auch in der Config einbinden.
Einige der Parameter verwende ich zum automatisierten Aus- und Einfahren eines Sonnensegels - Wind / Temperaturen / Sonnenschein. Regenparameter verwende ich derzeit nicht, da ich nicht davon ausgehe dass der WS90 auch den Beginn des Regens so exakt messen kann dass das Tuch halbwegs trocken aufgerollt ist. Zudem ist das aufgerollte Segel unter freiem Himmel, ein manuelles ausfahren und trocknen bei nächster Gelegenheit nach regnerischen Tagen ist ohnehin nötig.
Zuvor habe ich eine Wetterstation von Renkforce (Conrad) verwendet, die WH2600 mit dem "Boot"-Aussensensor. Die war nach zwei Jahren aber leider sehr unzuverlässig was die Verbindungen von Sensor zu Basisstation und Basisstation zum LAN anbelangte, trotz kabelgebundener Versorgung des Sensors.
Bei der alten Wetterstation habe ich den Online Status des Aussensensors über die Aussenluftfeuchtigkeit indirekt geprüft (wenn der Wert "0" war -> Offline da eine tatsächliche Luftfeuchte von 0% defacto unmöglich ist). Der Online-Status der Basisstation war über die Zeit (Minutenanzeige auf der HTTP Seite der Basisstation vs. Minutenanzeige des Miniserver) abgedeckt.
Beim Ausfall einer der beiden Stati wurde das Sonnensegel eingefahren -> Sicherheitsschaltung damit bei Ausfall und anschließendem Gewitter kein Schaden entstehen kann.
Der langen Vorrede folgt nun meine Frage:
Wie bzw. mit welchem Parameter könnte ich bei der vorhandenen GW2000 Basisstation und dem FOSHK Plugin den Online-Status prüfen?
Die Außenluftfeuchte hab ich ja, es fehlt nur die Überwachung der Basisstation. Der Parameter "FOSHK-running" gibt ja nur an ob das Plugin läuft.
Denkbar wäre die Überwachung eines Parameters auf Änderungen, aber möglicherweise gibt es eine elegantere Lösung.Kommentar
-
Hi!
Zwar habe ich hier nur gute Erfahrungen - sowohl Aussensensor als auch Konsole sind eigentlich immer online. Aber entsprechende Pruefungen sollten trotzdem moeglich sein.
Um die Praesenz der Konsole zu ueberwachen, koenntest Du den VI wswarning nutzen. Der wird True, wenn sich die Konsole laenger nicht gemeldet hat.
Im Config-File foshkplugin.conf ist dazu folgendes einzustellen:
Code:[Warning] WSDOG_WARNING = True WSDOG_INTERVAL = 3
Zur Ueberwachung des Vorhandenseins eines Sensors bietet sich der VI sensorwarning an.
Dazu sollte dann jedoch im Config-File foshkplugin.conf folgende Eintragung erfolgen:
Code:[Warning] SENSOR_WARNING = True SENSOR_MANDATORY = wh90batt
Fehlt der (etwa im Falles des Ausfalls des Sensors) erfolgt eine Warnung.
Die Statusmeldungen werden per default nur ereignisorientiert gesendet, um Netzwerkbandbreite nicht zu verschwenden.
Wenn aber eine Statusmeldung verlorengeht (etwa, weil zum Sendezeitpunkt der Miniserver gerade neugestartet wurde) wird bis zur naechsten Statusaenderung und damit einhergehender Sendung u.U. ein falscher Status angezeigt.
Daher empfiehlt es sich, zumindest "manchmal" den aktuellen Status neu zu uebertragen:
Code:[Config] UDP_STATRESEND = 60 # cycle sending of warnings via UDP in seconds
Die angegebenen VIs sollten in der FOSHKplugin-Loxone-Vorlage vorhanden sein.
Du kannst Dir die VIs aber auch schnell selbst einrichten - als Befehlserkennung kannst Du
Code:SID=FOSHKweather\isensorwarning=\i\v SID=FOSHKweather\iwswarning=\i\v
BTW:
Der WS90 ist im Ecowitt-Universum der Sensor mit der schnellsten Regenerkennung. Demnaechst soll es auch ein Firmware-Update geben, das bei erkannten Regen einen Key srain_piezo = 1 sendet. Damit liesse sich eine zeitnahe Einholung des Sonnensegels realisieren. Bisher muesste man mit erain_piezomm basteln.
Viel Erfolg, OliverZuletzt geändert von olicat; 23.08.2024, 17:11.Kommentar
-
Hallo Oliver,
danke für die rasche Antwort. Es freut mich zu hören dass diese Hardware zuverlässig läuft. Wie gesagt war ich anderes gewohnt.
Mit WSDOG_INTERVAL wird festgelegt, nach wie vielen Intervallen eine entsprechende Meldung ausgeloest wird. Wenn Du also einen Sendeintervall von 60 Sekunden in der Konsole konfiguriert hat, wird bei WSDOG_INTERVAL= 3 nach 3 Intervallen ohne Dateneingang - also nach 3 Minuten eine Warnung ausgegeben.
Zur Ueberwachung des Vorhandenseins eines Sensors bietet sich der VI sensorwarning an.
Dazu sollte dann jedoch im Config-File foshkplugin.conf folgende Eintragung erfolgen:
Code:[Warning] SENSOR_WARNING = True SENSOR_MANDATORY = wh90batt
Fehlt der (etwa im Falles des Ausfalls des Sensors) erfolgt eine Warnung.
Die Statusmeldungen werden per default nur ereignisorientiert gesendet, um Netzwerkbandbreite nicht zu verschwenden.
Wenn aber eine Statusmeldung verlorengeht (etwa, weil zum Sendezeitpunkt der Miniserver gerade neugestartet wurde) wird bis zur naechsten Statusaenderung und damit einhergehender Sendung u.U. ein falscher Status angezeigt.
Daher empfiehlt es sich, zumindest "manchmal" den aktuellen Status neu zu uebertragen:
Code:[Config] UDP_STATRESEND = 60 # cycle sending of warnings via UDP in seconds
Und noch eine allgemeine Frage - wie viel an Daten (circa) wird mit diesem Plugin übertragen wenn alle Parameter verschickt werden? Bei einem GBit LAN im Haushalt ist bestimmt ausreichend Bandbreite vorhanden, oder belastet dies den Loxberry/Miniserver stark?
BTW:
Der WS90 ist im Ecowitt-Universum der Sensor mit der schnellsten Regenerkennung. Demnaechst soll es auch ein Firmware-Update geben, das bei erkannten Regen einen Key srain_piezo = 1 sendet. Damit liesse sich eine zeitnahe Einholung des Sonnensegels realisieren. Bisher muesste man mit erain_piezomm basteln.
Grüße
Peter
Kommentar
-
Hey Oliver,
Vielen Dank für deine schnelle Antwort! Ich habs in der Konsole eingegeben und folgende Meldung erhalten:
Reading state information... Done
Note, selecting 'gcc' instead of 'gcc-arm-linux-gnueabihf'
gcc is already the newest version (4:10.2.1-1+rpi1).
0 upgraded, 0 newly installed, 0 to remove and 70 not upgraded.
danach hab ich die Beta installiert und wieder das erhalten:
arm-linux-gnueabihf-g++ -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I. -I/usr/include/python3.9 -c msgpack/_cmsgpack.cpp -o build/temp.linux-armv7l-cpython-39/msgpack/_cmsgpack.o
error: command 'arm-linux-gnueabihf-g++' failed: No such file or directory
----------------------------------------
ERROR: Failed building wheel for msgpack
Failed to build msgpack
ERROR: Could not build wheels for msgpack which use PEP 517 and cannot be installed directly
yes: standard output: Broken pipe
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
WARNING: Python influxdb installation failed! The plugin will not work without.
WARNING: Giving up.
21:50:12.548 CRITICAL: Script/Command fails. Installation cannot be continued.
23.08.2024 21:50:12 TASK FINISHED
Hast du noch eine andere Idee?
Liebe Grüße,
KlemensKommentar
-
Hi!
Ist der Wert "60" ein Sekundenwert oder die Anzahl der Übertragungen?
Und noch eine allgemeine Frage - wie viel an Daten (circa) wird mit diesem Plugin übertragen wenn alle Parameter verschickt werden? Bei einem GBit LAN im Haushalt ist bestimmt ausreichend Bandbreite vorhanden, oder belastet dies den Loxberry/Miniserver stark?
Hier sind es pro Intervall ca. 4500 Zeichen (wenn auch die Status-Werte uebertragen werden). Ich habe hier aber auch einen groesseren "Zoo".
Die Last am MS kann ich nicht einschaetzen. Jedoch muss jede eingehende UDP-Sendung fuer die Befehlsverarbeitung geparsed und verglichen werden. Je mehr Keys da enthalten sind desto mehr hat der MS zu tun.
Mir ist bisher aber noch nicht aufgefallen, dass es den MS beeintraechtigt.
Kann es sein dass diese Änderung bereits implementiert wurde?
Dafuer ist erstmal auch eine Anpassung der Firmware des GW2000 noetig, denn das muss dann den neuen Key srain_piezo senden.
Zum Ansprechverhalten ...
Ich hatte mal in 2022 folgenden Screenshot gemacht:
Da ist recht gut erkennbar, dass zuerst der WS90 den Regen meldet, sehr viel spaeter dann auch der WH40 und noch etwas spaeter erst der WH65.
Beachte den Wechsel von 0 auf einen hoeheren Wert in der unteren Grafik.
Das Problem - vorallem bei geringem Regen (Nieseln) - ist, dass die letztgenannten Sensoren mit einer Kipploeffel-Mechanik arbeiten.
Erst wenn der Kipploeffel gefuellt ist, sendet der Sensor einen (neuen) Regenwert an die Konsole.
Und es dauert eben, bis der Loeffel voll ist und kippt.
Beim WS90 werden schon die ersten Tropfen gezaehlt.
Wobei die Grafiken hier ein spezielles Regenereignis zeigen. Wenn es gleich heftig losregnet erkennen auch die mechanischen Regenmesser zeitnah den Regen.
Aber IMMER erst - bauartbedingt - nach dem WS90.
OliverZuletzt geändert von olicat; 24.08.2024, 10:12.Kommentar
-
Hi!
Auf Deinem System ist irgendwas nicht ganz "normal" (aka nicht wie erwartet).
Irgendwas in Deiner pip/Python-Installation meint offenbar, dass gcc-arm-linux-gnueabihf genutzt werden soll, was es aber gar nicht gibt.
Note, selecting 'gcc' instead of 'gcc-arm-linux-gnueabihf'
error: command 'arm-linux-gnueabihf-g++' failed: No such file or directory
Code:sudo apt-get install build-essential
Viel Erfolg!
Oliver
Kommentar
-
Vielen, vielen Dank Oliver! Dein Tipp hat geholfen und ich konnte im Anschluss das Beta Plugin ohne Probleme installieren! Danke für deine schnelle Hilfe!
Liebe Grüße,
KlemensKommentar
-
Hallo,
ich bin jetzt neu ins Plugin eingestiegen und habe eine bescheidene Frage.
Ich nutze das Plugin mit einem Ecowitt GW1100 und die Export Funktion über Rawtext zu einem FTP Server.
Das klappt alles soweit.
Diese gesendete txt-Datei möchte ich mittels eines grep-Befehles auslesen und die Zeilen dann an meinen Meteohub (Wetterserver, dürfte vielleicht bekannt sein) über die Plugin Funktion übergeben.
Der Meteohub akzeptiert aber nur Daten bzw. Strings, die ein spezielles Format haben.
Als Beispiel:
humidityin=55 müsste dann data10 55
baromrelin=29 müsste dann data11 29
tempinf=75 müsste dann data12 75 heißen usw..
Kann ich die ausgebenen Strings in der fohskplugin.txt also irgendwie beeinflussen/einstellen?
Müsste/kann ich da die foshkplugin.py irgendwo anpassen?
Hat jemand vielleicht noch eine andere Idee, wie ich das bewerkstelligen kann?
Gruß und danke für Tipps!Kommentar
-
Hi!
Ich wuerde da einen anderen Ansatz verfolgen: TAGFILE.
Mit einem TAGFILE-Forward kannst Du beliebige Textdateien mit Werten der Konsole ausfuellen.
Siehe hier.
Du benoetigst also eine Forward-Definition in der foshkplugin.conf:
Code:[Forward-29] FWD_ENABLE = True # you may disable the forward instead of deleting FWD_CMT = TAGFILE-Test tag-definition # comment field - for your info FWD_OPTION = config=tag-definition.conf # file with tag definition: config=/path/to/configfile FWD_URL = ftps://my.domain.tld/httpdocs/img/ # you may specify a local path, a ftp or http address FWD_INTERVAL = 60 # in seconds - if not specified a forward will be executed/sent on every weather station interval FWD_IGNORE = # not really usefull in the TAGFILE context FWD_TYPE = TAGFILE # use TAGFILE for creating tagged files FWD_SID = ftpuser # user name for ftp/http access FWD_PWD = ftppasswd # password for uploading via ftp/http FWD_EXEC = # a script to be started before saving the output - e.g. to add custom key=value entries
Code:[Tagfile] infile = tagfile.template # mandatory! - name of the template file with embedded tags (default: "") outfile = outfile.txt # name of the final output file (default: "") append = False # determines whether outfile is overwritten or appended in each interval (default: False) task = save # sets final processing - SAVE for writing a file, GET for sending via http(s)/GET, and POST for sending via http/POST (default: save) tag = [[@keyname]] # defines the structure of the tag - this type of string is searched for in the infile and replaced with the corresponding value (default: <!-- @keyname -->) postscript = # possibility to specify a bash script to be started after saving the output file but before sending it (default: "") dtime_format = # sets output format for values with a date/time - use "%d.%m.%Y %H:%M:%S" for european 24h display - Python like - see https://www.w3schools.com/python/python_datetime.asp (default: %d.%m.%Y %H:%M:%S) locale_format = # defines the language of the names of the weekdays and months - use en_US.utf8 for English terms in dates (default: "") pre_count = # length of the output value - padded with spaces if necessary (default: "") pre_fill = # string to prepend (default: space) - could be for html files dec_count = # number of decimal places (default: "" = as is) dec_separator default = # you may define a comma as a decimal separator (default: .)
Code:data10 [[@humidityin]] data11 [[@baromrelin]] data12 [[@tempinf]]
Code:data10 55 data11 29 data12 75
Viel Erfolg!
OliverZuletzt geändert von olicat; 29.08.2024, 15:58.Kommentar
-
Wichtig:
Der TAGFILE-Forward wird erst ab v0.10 von FOSHKplugin unterstuetzt - dafuer waere also die aktuelle Beta-Version noetig. Weil Du hier im Loxforum schreibst, denke ich Du nutzt die LoxBerry-Version?
Du kannst den TAGFILE-Forward zusaetzlich zum bereits bestehenden RAWTEXT-Forward nutzen.
BTW:
Mit der TAGFILE-Funktion sind auch jede Menge anderer spannender Dinge moeglich:
Oliver
Kommentar
-
Vielen Dank für den Hinweis!
Das trifft sich gut.
Ich bin nämlich gerade mit dem Beta-Generic Plugin auf ein anderes Rasp System umgezogen, was schon meine Webcams bedient und kein Loxberry System hat.
Aber sich das erstmal auf Loxberry anzusehen, war schon sehr hilfreich und sehr "bedienerfreundlich", was einen "Neuling" anbelangt.
Da konnte ich die config´s gleich übernehmen und es funzt nun auch mit der generic-Version.
Das andere nehme ich mir dann für die nächsten Tage vor.
Hoffe übrigens, das der WH57 auch ordentliche Daten liefert. Nur wegen diesem Spielzeug treibe ich den Aufwand.
Den Rest habe ich schon...
Gruß Robby
alias webcam-beucha.de
Kommentar
-
Hi olicat,
mit Version 0.10 mausert sich das FOSHK-Plugin zur eierlegenden Wollmichsau (Banner, Tags, etc. pp.) - Glückwünsch! Wirklich klasse Leistung!
Bisher habe ich das Plugin nur am Rande verfolgt, weil ich keine Ecowitt Station habe. Nun sind wir dabei, uns eine eigene "LoxBerry"-Wetterstation als DIY-Projekt zu bauen: Jemand Lust eine Raspberry Wetterstation mit zu bauen? - loxforum.com
Die Sensoren werden über das MultiIO-Plugin an MQTT angebunden. Ich überlege jetzt, welche Auswertesoftware (z. B. zur Erstellung einer Webseite, eines Banners, zur Umrechnung von Wetterwerten etc.) man verwenden könnte. Bisher wollte ich WeeWX: open source weather software nutzen und über MQTT mit Werten füttern (gibt dazu ein MQTT Plugin).
Jetzt überlege ich, ob man nicht eher eine FOSHK-Station simulieren könnte und dann das FOSHK-Plugin zur weiteren Verarbeitung nutzen könnte. Wir würden dazu die MQTT-Topics vom MultiIO Plugin abonnieren, die Daten entsprechend aufbereiten und dann über einen Simulator im Ecowitt-Format ausgeben, sodass sich das FOSHK-Plugin diese Daten quasi als FOSHK-Wetterstation abholen könnte.
Was denkst Du darüber? Gibt es irgendwo eine Format-Beschreibung, wie das FOSHK-Plugin die Daten erwartet?🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine
LoxBerry - Beyond the Limits
Kommentar
Kommentar