WS3600 mit LUX und UV Index möglich?

Begonnen von stefanru, 30 November 2016, 00:47:09

Vorheriges Thema - Nächstes Thema

stefanru

Hi!

ich benutze eine WH3080/WH1080 kompatible Wetterstation.
Benutze pywws zum einlesen am USB.
Funktioniert mit dem WS3600 template super!

Sie hat noch readings für LUX und UV intensität. Hier ein Output.
Die letzten 2 Zahlen sagen 17.6 luc und 0 UV inensität.
2016-11-29 23:16:00,1,49,21.1,50,19.9,1008.2,0,0,6,0,0,17.6,0
Bekommt man das in das Template mit rein?
Ich finde dazu leider nichts hätte die Readings schon gerne...

Vielen Dank,
Stefan

stefanru

Hi zusammen,

ich habe das nun selbst in das 70_WS3600.pm

#added for WS-3080
    "IL"      => "Illuminance",
    "UV"      => "UV",

Soll / kann ich das ins FHEM git pflegen?

Viele Grüße,
Stefan

stefanru

Hi,

da hast du scheinbar recht. Josch reagiert nicht auf PM's.
Leider kann ich rudolfkoenig gar keine schicke, da seine PM Box mich nicht mag :-)

Ich hoffe einfach mal er liest das hier.

Gruß,
Stefan

rudolfkoenig

Direkt was einchecken ist untersagt, das muss ueber den MAINTAINER gehen. Gib Josch ein bisschen Zeit, jeder darf 'ne Weile ungestoert im Urlaub oder Krankenhaus sitzen. Wenn er sich nach 3 Wochen nicht gemeldet hat, dann ist sein Modul offiziell verweist, ich erbe es, und verschenke es an dem erstbesten, der sich meldet :) Wenn du ihn schon frueher vergeblich versucht hast zu erreichen, dann ist das Modul sofort verweist.

Mein PM ist fuer alle gesperrt, da ich nicht noch ein Pseudo-Mailbox aufmachen will.
Meine Email-Adresse steht z.Bsp. auf fhem.de, ganz unten.

stefanru

Perfekt!
Finde ich auch gut so.
Jetzt weiß ich wie es funktionert.

War mir schon klar dass dein PM für alle zu ist :-)
und wolte dann auch nicht auf deine private E-Mail schreiben.

Ich melde mich dann in 3 Wochen nochmal, oder eher im neuen Jahr bei dir.
Josch lassen wir natürlich noch etwas Zeit.

Danke und Gruß,
Stefan



stefanru

#5
Hi,

hatte mitlerweile Kontakt mit Jörg.
Er sagte ich könnte es einpflegen.

Nun will ich aber erstmal alles hier zusammentragen da ich noch weitere Änderungen durchgeführt habe:
1. Readings:
#added for WS-3080
    "IL"      => "Illuminance",
    "UV"      => "UV",
#calculated readings
    "TEMPap"  => "Temp-apparent",
    "TEMPwc"  => "Temp-wind-chill",
    "DPin"    => "Dew-Point-in",
    "DPout"   => "Dew-Point_out",
    "DIRdeg"  => "Wind-Direction-Degrees",
    "WSkn"    => "Wind-Speed-Knots",
    "WGkn"    => "Wind-Gust-Knots",
    "WSkmph"  => "Wind-Speed-KmH",
    "WGkmph"  => "Wind-Gust-KmH",
    "Forecastcode"=> "Forecast-Code",


2. Einlesen mehrerer Werte, für z.B. Wetter Texte
foreach my $inputline ( @lines ) {
    $inputline =~ s/\s+$//;
    my ($rawreading, $val, $val2) = split(/ /, $inputline, 3);  #<=== change: Split into 2 values
    #my ($rawreading, $val) = split(/ /, $inputline, 2); # Splits only in two. No val2
    if(defined($rawreading)) {
      my $logmsg = "WS3600(Dbg): $name read $inputline|$rawreading|$val";
         $logmsg .= "|$val2" if(defined($val2));
      Log3 $name, 4, $logmsg;
#      Log3 $name, 4, "WS3600(Dbg): $name read $inputline|$rawreading|$val|$val2";
    if(defined($TranslatedCodes{$rawreading})) {
      $reading = $TranslatedCodes{$rawreading};
              readingsBulkUpdate($hash,$reading, $val . " " . $val2); #<=== change: read booth values
      $AnythingRead = 1;
    }


3. Template Datei:
#locale "False"#
#timezone local#

Date #idx "%d-%h-%Y"#

Time #idx "%H:%M:%S"#

Ti #temp_in "%.1f"#

To #temp_out "%.1f"#

RHi #hum_in "%d"#

RHo #hum_out "%d"#

TEMPap #calc "apparent_temp(data['temp_out'], data['hum_out'], data['wind_ave'])" "%.1f" "0.0"#

TEMPwc #calc "wind_chill(data['temp_out'], data['wind_ave'])" "%.1f" "0.0"#

DPin #calc "dew_point(data['temp_in'], data['hum_in'])" "%.1f" "0.0"#

DPout #calc "dew_point(data['temp_out'], data['hum_out'])" "%.1f" "0.0"#

DIR #wind_dir "%s"#

DIRtext #wind_dir "%s" "-" "winddir_text(x)"#

DIRdeg #wind_dir "%.1f" "0.0" "winddir_degrees(x)"#

WS #wind_ave "%.1f"#

WG #wind_gust "%.1f"#

WSkn #calc "wind_kn(data['wind_ave'])" "%0.1f" "0.0"#

WGkn #calc "wind_kn(data['wind_gust'])" "%0.1f" "0.0"#

WSkmph #calc "wind_kn(data['wind_ave'])" "%0.1f" "0.0"#

WGkmph #calc "wind_kn(data['wind_gust'])" "%0.1f" "0.0"#

RP #rel_pressure "%.1f"#

AP #abs_pressure "%.1f"#

IL #illuminance "%.1f"#

UV #uv "%d"#

Tendency #pressure_trend "%s" "" "pressure_trend_text(x)"#

#raw#
Rtot #rain "%0.1f"#

R1h #calc "rain_hour(data)" "%0.1f" "0.0"#

R24h #calc "rain_day(data)" "%0.1f" "0.0"#

#hourly#
Forecast #calc "Zambretti(params, data)" "%s"#

Forecastcode #calc "ZambrettiCode(params, data)" "%s"#


Bei mir bleibt die Frage wie pflege ich es ins repository. Da brauche ich doch eine Berechtigung für, oder?

Gruß,
Stefan

Josch

Hi Stefan,

meine Zusage bezog sich auf die damals bekannten 2 Zeilen und weil ich annahm, dass Du schon Entwickler bist. WS3600 soll dazu dienen, alle (Roh-)Werte, die die Wetterstation liefert, in FHEM verfügbar zu machen. Abgeleitete Werte (wie eben z.B. der Wind in verschiedenen Maßeinheiten) gehören im Interesse der Universalität nicht dazu. Der nächste möchte es vielleicht lieber in Beaufort, ganz zu schweigen von allen möglichen statistischen Werten. Das ufert erstens schnell aus und geht m.E. viel besser mit den vorhandenen Mitteln wie Userreadings, Modul average, Modul rain usw. Das alles in WS3600 quetschen zu wollen halte ich für unzweckmäßig.
Zum zweiten Punkt: Mir ist der konkrete Anwendungsfall nicht ganz klar. Besteht der einzulesende "Sachverhalt" denn immer aus zwei Werten? Was ist, wenn es drei oder mehr sind, wie ich bei "Wetter Text" vermuten würde?
Zum dritten Punkt: Bisher brauchte man keine Template-Datei. Wo kommt die ins Spiel?

Gruß Jörg

stefanru

Hi Jörg,

danke für deine Antwort.
Nein bin kein Entwickler und somit kann ich die Änderung nicht selbst durchführen.

Bei den Werten in anderen Einheiten gebe ich dir völlig recht. Das braucht man wirklich nicht so.
Aber z.B. den Forecastcode nach Zambaretti werde ich hier nicht hinbekommen.
Bei Windchill und gefühlte Temperatur bin ich mir auch nicht sicher, fine ich eigentlich ganz praktisch.

Die Template Datei ist für pywws und erweitert die hier angegebene: https://wiki.fhem.de/wiki/WS3600

Das mit den 2 Values ist etwas mit dem Forschlaghammer.
Für die Time Readings werden ja 2 verwendet.
Also verwende ich auch 2. Im ersten steht dann das erste Wort und im 2ten alle anderen.
Somit habe ich dann im FHEM das Reading:
Forecast      Schönes Wetter, wird allerdings unbeständiger

Vor der Änderung stand da dann nur Schönes.

Danke und Gruß,
Stefan



Josch

Windchill gibts ja schon bei den TranslatedCodes, die gefühlte Temperatur ist dann als Differenz zur echten kein Problem mit Userreadings. Für den Zambretti-Code hätte ich 2 Vorschläge: Dein Beispiel sieht für mich so aus, als ob eine Aufteilung auf "Forecast" und "Tendency" sinnvoll wäre. Alternativ könnte man den Forecast in die Gruppe TranslatedDateTimeCodes verschieben. Dann ergäbe sich das von Dir gewünschte Verhalten.

Gruß Jörg

stefanru

Hi Jörg,

ja das klingt soweit gut.

Habe mir nochmal das File und die Werte angesehen.
Im Standard fehlt denke ich Dew-Point für innen und außen. Er nimmt nur einen, die WS1080 liefert aber beide.

WindChill gibts tatsächlich schon. Kann bei mir raus.
Windgeschwindigkeit war eh geklärt.

Zu Tendency und Forecast, die sind ja schon drin und ja wenn Forcast in TranslatedDateTimeCodes kommt würde das passen und der Text kommt in voller Pracht :-)
Ich habe noch einen dritten Wert. Den Wert als Zambretti-Code. Das ist ziemlich praktisch, z.B. für das TabletUI. Die Meteocons (Icons fürs Wetter) bassieren genau auf diesem Code.
Umwandlung in Icons also problemlos möglich.
Denke den solte man als ForcastZC noch mit reinnehmen, ist 1 Buchstabe.

Wenn das für dich so passt wären wir uns einig über die Erweiterungen.
Würdest du es einbauen?

Ich würde dann auch eine neue template datei für pywws machen und schauen wer die WIKI damit aktualisieren kann.

Danke und Gruß,
Stefan

Bieberburg

Hi,
ich habe lange nach einer (verlässlichen) Lösung gesucht, meine WS3080 an die FHEM am RPi anzuschließen. Leider scheint noch keine Dekodierung der Funkdaten vorzuliegen, es muss also die Basisstation über USB ausgelesen werden.
Dies gelingt hier mit dem Umweg über ein Ausleseprogramm für die WS3080, das die Daten in eine Textdatei schreibt, aus der FHEM mit dem Modul WS3600 die Daten holt.
Aus den verschiedenen Foren und Blogs habe ich mir folgendes zusammengestellt, um die Daten verlässlich in den RPi einzulesen und über FHEM abzuspeichern:

Am einfachsten ging es schließlich mit PYWWS, wie auf der Website beschrieben: http://pythonhosted.org/pywws/en/html/guides/getstarted.html
Allerdings ist GITHUB meine bevorzugte Lösung für die Installation: http://pythonhosted.org/pywws/en/html/guides/getstarted.html#clone-the-repository
Die Doku zu PYWWS ist jetzt hier: http://pywws.readthedocs.org/
Die WS3080 über USB-Kabel an den RPi anschließen und die Verbindung zur Wetterstation testen: http://pythonhosted.org/pywws/en/html/guides/getstarted.html#test-the-weather-station-connection
Tritt der Fehler "ImportError: No USB library found" auf, dann fehlt die USB-Library für RPi, die PyUSB, siehe: http://martinsant.net/?page_id=983

Läuft das Auslesen auf Kommando wie beschrieben, dann kann "live logging" installiert werden. Ich wählte aber nicht das Originalverfahren von PYWWS, sondern mit folgendes mit shell-Script und Cron-Job: https://talktech.info/2013/12/31/personal-weather-station-raspberrypi-part-2/
Das shell-script muss allerdings an die eigenen Verzeichnisse angepasst und noch ausführbar gemacht werden: https://www.cyberciti.biz/faq/run-execute-sh-shell-script/
Der Cron-Job muss dem crontab-Befehl geändert werden: https://debian-administration.org/article/56/Command_scheduling_with_cron

Das Python-Script entsprechend für WS3080 erweitern:
conv = {
        'idx'          : safestrptime,
        'delay'        : int,
        'hum_in'       : int,
        'temp_in'      : float,
        'hum_out'      : int,
        'temp_out'     : float,
        'abs_pressure' : float,
        'wind_ave'     : float,
        'wind_gust'    : float,
        'wind_dir'     : int,
        'rain'         : float,
        'status'       : int,
        'illuminance'  : float,
        'uv'           : int,
        }


Das FHEM Template ws3600.txt für die Ausgabe an FHEM muss in die ,,live"-section of ini-file eingebunden werden.
Das Format ist im Template ws3600.txt zu WS3600-Modul der FHEM beschrieben, hier die Erweiterung:
#locale False#
Date #idx "%d-%h-%Y"#
Time #idx "%H:%M:%S"#
Ti #temp_in "%.1f"#
To #temp_out "%.1f"#
RHi #hum_in "%d"#
RHo #hum_out "%d"#
DIR #wind_dir "%s"#
DIRtext #wind_dir "%s" "" "wind_dir_text[x]"#
WS #wind_ave "%.0f"#
WG #wind_gust "%.0f"#
Rtot #rain "%0.1f"#
RP #rel_pressure "%.0f"#
Tendency #pressure_trend "%s" "" "pressure_trend_text(x)"#
Illu #illuminance "%0.1f"#
UV #uv "%d"#


In FHEM kann die Wetterstation dann wie folgt definiert werden (300s-Intervall):
define myWS3080 WS3600 "cat /tmp/weather/uploads/ws3600.txt" 300
define FileLog_WS3600 FileLog ./log/WS3600-%Y-%m.log myWS3080.*


Grüße
Stephan

stefanru

Hi Stephan,

schöne Anleitung. Genau so habe ich das auch am Laufen.
Aber die WS3600.pm hat noch kein Reading für ILLU und UV.

Oder ist da schon was passiert?

Gruß,
Stefan

Josch

Hi Stefan,

habe mich mal mit den gewünschten Änderungen befasst. Illuminance und UV-Index sind klar, das ist das, was die WS-3080 gegenüber der WS-1080 mehr hat. 2x Taupunkt kann ich weder bei WS-1080 noch WS-3080 finden. Die Bedienungsanleitungen zeigen nur 1x Taupunkt, die Easyweather-Software zeigt nur 1x Taupunkt und das mir vorliegende EPROM-Layout der WS-1080 hat auch nur Platz für einen. Würde ich also so lassen, zumal man in FHEM mit dem Modul Dewpoint jederzeit einen eigenen Taupunkt berechnen kann. Forecast wird wie besprochen die ganze Zeile einlesen und den Zambretti-Code nehm' ich noch dazu (obwohl der sicher auch nicht aus der WS stammt, sondern vom PYWWS-Script generiert wird, aber hier fällt mir kein FHEM-Ersatz ein). Sobald ich fertig bin, würde ich dir das Modul mal zum Testen schicken, bevor ich es einchecke. OK?

Gruß Jörg

stefanru

Hi Jörg,

ja klingt gut.
Taupunkt kann man natürlich berechnen.

Wenn du was hast teste ich es gerne.

Gruß,
Stefan

killah78

#14
Zitat von: Bieberburg am 14 Januar 2017, 20:19:56
Hi,
ich habe lange nach einer (verlässlichen) Lösung gesucht, meine WS3080 an die FHEM am RPi anzuschließen. Leider scheint noch keine Dekodierung der Funkdaten vorzuliegen, es muss also die Basisstation über USB ausgelesen werden.

Hi Bieberburg,
ich bin auch in der Planung mir eine Wetterstation zu kaufen und bin auch auf die 3080 aufmerksam geworden. Hast du auch die 3080 Pass18c? Du schreibst, dass noch keine Dekodierung der DAten vorliegen. Kannst du mir sagen, ob denn die Rohdaten an einem 433er CUL oder Signalduino erkannt werden? Also sprich OOK/ASK? Und falls ja, könntest du mir zwei bis drei vom CUL/sduino empfangene Rohdaten mit den dazugehörigen Werten vom Display zukommen lassen?

Kann mir nicht vorstellen, dass die Dekodierung so umständlich ist, zumindest es sich ja um den/einen "Nachfolger" der 1080 handelt. Denke da eher, dass die 3080 nicht so im Umlauf ist. Würde aber gerne diese kaufen, eben wegen des UV Sensors. Ein USB Auslesen wäre aber für mich nicht möglich bzw. kein gangbarer Weg.

Gruss
killah78

Edit: Habe herausgefunden, das es mehrere Versionen der 3080 gibt. Falls du die OOK Version hast, nenn doch bitte mal deinen "Pass"-code aus dem Batteriefach. :-)

Nochmal Edit: Denke mein Ansinnen passt nicht ganz hier her, weil es hier um das Modul WS3600 geht und nicht um Funk. Habe deshalb einen neuen Thread erstellt: https://forum.fhem.de/index.php/topic,67587.0.html

Josch

#15
Neuer Stand, der UV, Illuminance und Zambretti-Code berücksichtigt, ist eingecheckt.

stefanru

Danke Josch,
Ich teste mal nach meinem Urlaub...

Gruss,
Stefan

SabineT

Zitat von: Josch am 07 Januar 2017, 21:05:54
Windchill gibts ja schon bei den TranslatedCodes, die gefühlte Temperatur ist dann als Differenz zur echten kein Problem mit Userreadings. Für den Zambretti-Code hätte ich 2 Vorschläge: Dein Beispiel sieht für mich so aus, als ob eine Aufteilung auf "Forecast" und "Tendency" sinnvoll wäre. Alternativ könnte man den Forecast in die Gruppe TranslatedDateTimeCodes verschieben. Dann ergäbe sich das von Dir gewünschte Verhalten.

Gruß Jörg
Hallo Jörg!

Tendency sollte auch in die Gruppe TranslatedDateTimeCodes verschoben werden, da hier mehr als 1 Wort vorkommen kann (z.B. "langsam steigend").
Ich hatte das vor 1 Woche bereits hier: https://forum.fhem.de/index.php/topic,70834.msg623389.html#msg623389 vorgeschlagen.

lg, Sabine

SabineT

Übrigens sollte man ws3600.txt dann am Rechner, auf dem das pywws lauft, löschen, nachdem es eingelesen wurde, da sonst die Daten nochmals gelesen werden, falls pywws mal abstürzt oder aus sonst einem Grund keine neuen Daten liefert.

Da bei mir pywws auf einem eigenen Raspi lauft hab ich mir dazu ein shellscript pywws2fhem.sh geschrieben, das ich dann vom fhem aus aufrufe ("ssh pi@wetterpi /home/pi/weather/pywws2fhem.sh"):
#!/bin/sh
cd ~/weather/results
if [ -f ws3600.txt ]
then
  cat ws3600.txt
  rm ws3600.txt
fi




lg,
Sabine

Josch

Hallo Sabine,

da ich die Vorhersage nicht verwende, hätte ich mir den Hinweis zu Tendency von Stefan gewünscht, aber der hat sich nicht mehr gemeldet.
Bau ich bei Gelegenheit mal ein. Wird aber sicher nicht gleich werden. Jetzt haben Garten und Co. die Priorität  ;)

Gruß Jörg

stefanru

Hi Josch,

sorry. War hier auch sehr im Stress und hatte andere Projekte.
Ja das mit tendency habe ich auch so gelöst.
Hatte ich vergessen.

Hi Sabine,

kannst du mir erklären warum man das ws3600.txt löschen soll?
Das habe ich jetzt nicht ganz verstanden.

Danke und Gruß,
Stefan

SabineT

Zitat von: stefanru am 03 Mai 2017, 20:45:28
Hi Sabine,

kannst du mir erklären warum man das ws3600.txt löschen soll?
Das habe ich jetzt nicht ganz verstanden.

Danke und Gruß,
Stefan
weil die gleichen Daten sonst nochmals gelesen werden, falls mal pywws gestoppt ist (ob durch Absturz oder gewollt ist dabei egal). fhem vergleicht da leider nicht, ob sich DTIME geändert hat.

Bei mir schaut das Template übrigens jetzt so aus:
DTime #idx "%d-%h-%Y %H:%M:%S"#

Tendency #pressure_trend "%s" "" "pressure_trend_text(x)"#

Forecast #calc "Zambretti(params, data)" "%s"#

ZCode #calc "ZambrettiCode(params, data)" "%s"#

R1h #rain "%.1f"#

#raw#
Ti #temp_in "%.1f"#

To #temp_out "%.1f"#

DP #calc "dew_point(data['temp_out'], data['hum_out'])" "%.1f"#

WC #calc "apparent_temp(data['temp_out'], data['hum_out'], data['wind_ave'])" "%.1f"#

RHi #hum_in "%d"#

RHo #hum_out "%d"#

DIR #wind_dir "%.0f" "-" "winddir_degrees(x)"#

DIRtext #wind_dir "%s" "-" "winddir_text(x)"#

WS #wind_ave "%.1f"#

WG #wind_gust "%.1f"#

RP #rel_pressure "%.1f"#

Rtot #rain "%0.1f"#

R24h #calc "rain_day(data)" "%.1f"#


Und ins Log schreib ich in der "T:..." Zeile noch zusätzlich die Windrichtung in Grad hinein (hänge die am Ende der Zeile als "WD:" dran), damit ich dann beim Plot die Anzeige der Windrichtung von der Windgeschwindigkeit abhängig machen kann (wird dann nur bei mehr als 0.5m/s ausgegeben, darunter ist die Richtung eh nur ein Zufallswert, speziell, wenn die Windfahne nicht hoch genug über Hindernissen in der Umgebung montiert ist).

lg,
Sabine

stefanru

Hi,

noch eine Frage.
Ich hatte am Anfang viele Probleme mit pywws und Abbrüchen mit meiner 3080.

Mittlerweile habe ich es im Griff obwohl nicht klar ist woran es lag. Laut Jim Entwickler ist das Protokoll der 3080 dafür anfällig.
Glaube mitlerweile eher es liegt an der Spannungsversorgung oder so.

Nun aber zur Frage.
Ich habe in FHEM noch weitere Temperatursensoren über Funk.
Ich steuere meine Heizung mit den Daten der Wetterstation 3080.
Könnte ich einen Ausfall der Station, keine Daten mehr vom pywws erkennen und die Heizungssteuerung auf einen der Funksensoren umleiten?

Im Prinzip wüsste ich wie das geht, aber wie erkenne ich den Ausfall?
Also z.B. am Dtime, aber wie sage ich z.B. in FHEM "wenn Dtime länger als 5 min nicht aktualisiert"?

Oder gibt es eine bessere Lösung?

Danke,
Stefan


stefanru

Ok hab es jetzt kapiert wie du das meinst und konnte nun auch mit doif die Wettersensoren bei ausfall zusammenschalten.

Gruß,
Stefan

bernd_zwo

#24
Erstmal danke an alle hier!

Weil ich in diesem Thread die bislang beste Zusammenfassung unter fhem für PYWWS gefunden habe, packe ich meine Info hier auch mal mit hinein:

Daemons und Services werden ja mittlerweile in Debian Jessie und den Derivaten per systemd gestartet.

@borpin (Brian) hat dazu seine Lösung gebloggt, die auch sehr gut hierher passt: https://tech.borpin.co.uk/2017/03/28/installing-pywws-and-running-it-as-a-daemon/

Dazu ein neues Service-Skript anlegen:

/etc/systemd/system/pywws.service

[Unit]
Description=PYWWS-Livelog daemon
After=syslog.target
After=network.target
Wants=systemd-networkd-wait-online.service

[Service]
Type=simple
User=fhem
Group=dialout
ExecStart=/usr/bin/python /usr/local/bin/pywws-livelog -v -l /opt/fhem/weather/data/livelogger-new.log /opt/fhem/weather/data

Restart=always
RestartSec=90
StartLimitInterval=400
StartLimitBurst=3

# Give the script some time to startup
TimeoutSec=300

[Install]
WantedBy=multi-user.target


"User", "Group" und die Verzeichnisse in "ExecStart" müssen der jeweiligen Installation angepasst werden.
Die Abhängigkeit von networkd und mosquitto (MQTT) aus dem Original von Brian habe ich entfernt, da er es in seinem speziellen Fall für die Kommunikation mit EmonCMS benötigt.

Schön an der systemd-Lösung finde ich, dass der Service automatisch überwacht und neu gestartet wird.

Sollte man vorher einen sysVInit init-daemon ("/etc/init.d") benutzt haben, kann man ihn mit sudo update-rc.d -f pywws remove entfernen

Nach einem reboot kann man dann mit "service pywws start" wie gewohnt den PYWWS-livelogger starten, Meldungen finden sich im syslog.

Gruß, Bernd
Meine Installation: fhem 5.8, Raspi 2 / Raspbian, Busware CUL 868, HM-MOD-UART, HM-CFG-USB-2 (aCulfw V 1.26.04 a-culfw Build: 306), JeeLink V3, fht8v, TX29DTH-IT, HM- (diverse)

Bieberburg

Hi all,
die WS3080 schickt mit dem "Code: 5436790018" die Rohdaten des Strahlungssensors über Funk direkt an den CUL. Das sind die einzigen "unkodierten" Daten, die ich lesen konnte.
Da ich die Strahlungsdaten mit meinem PV-Ertrag vergleichen will, habe ich mir hier ein eigenes Reading gemacht (alle anderen Daten laufen ohnehin langsam, daher über USB).
#DUMMY
define d_Illumination dummy
attr d_Illumination room Sens.TH
define n_Illu notify WS3080:Code:\s54.* \
{my $a=(hex (substr $EVTPART1, -8)/10000);;;; fhem "set d_Illumination $a"}
define FileLog_Illu FileLog ./log/Illu-%Y-%m.log d_Illumination:.*

Die PV-Leistung über JSON-Interface und diese Strahlungsdaten lege ich in einer Grafik übereinander. Damit kann ich zB Schattenbildung oder Schnee am Panel erkennen. Auch der Einfluss der Aussentemperatur ist gut zu sehen.
Viel Spaß

stefanru

Hi,

ich muss mich nun wieder melden.
Bin gerade am suchen nach blocking calls in meinem FHEM.
Einer der alle 120 Sekunden auftritt ist leider das Einlesen der Wetterdaten.
Ich benutze folgendes Skript:

#!/bin/sh
cd ~/weather/results
if [ -f ws3600.txt ]
then
  cat ws3600.txt
  rm ws3600.txt&
fi


Ich rufe es mit:
DEF   "/home/pi/weather/results/result.sh" 120

Die Freezes sehen so aus:

2020.03.05 00:12:02 1: [Freezemon] myFreezemon: possible freeze starting at 00:12:01, delay is 1.479 possibly caused by: tmr-WS3600_Read(meineWetterstation)
2020.03.05 00:14:02 1: [Freezemon] myFreezemon: possible freeze starting at 00:14:01, delay is 1.185 possibly caused by: tmr-WS3600_Read(meineWetterstation)
2020.03.05 00:16:02 1: [Freezemon] myFreezemon: possible freeze starting at 00:16:01, delay is 1.625 possibly caused by: tmr-WS3600_Read(meineWetterstation)


Habt ihr das auch? Gibt es einen Weg das zu verhindern?

Gruß,
Stefan

me

Zitat von: stefanru am 05 März 2020, 11:16:56
Habt ihr das auch? Gibt es einen Weg das zu verhindern?

Habe bei einer WS2300 und fetch2300 teilweise bis hoch 30 sec. Verzögerung und das jede Minute obwohl nur alle 5 Minuten abgefragt werden soll.
Würde mich auch interessieren ob es da einen Weg gibt.