Autor Thema: Wetterdaten für Wetter.com  (Gelesen 23115 mal)

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Wetterdaten für Wetter.com
« am: 31 März 2014, 17:43:14 »
Moin.

Seit einiger Zeit nutze ich eine Homematic Wetterstation "HM-WDS100-C6-O" zur Wetteraufzeichnung. Da ich auch am privaten Wetternetzwerk von wetter.com teilnehme, habe ich nach eine Lösung zur Übertragung der Daten mittels FHEM gesucht. Bisher gab es keine Lösung, so dass ich hier selber aktiv geworden bin. Nach Rücksprache mit dem Support von wetter.com habe ich die API erhalten, wie die Daten zu übertragen sind.

http://support.wetter.com/attachments/token/titkme05m63xv8e/?name=2013-06-01+-+WeatherReport-API.de.pdf

Um die Daten zu übertragen habe ich in 99_MyUtils.pm eine Funktion erstellt.

sub
myWetterCom($$$$$$)
{
        my ($hu,$te,$dp,$ws,$pa,$wd) = @_;
        my $id = "4711";
my $pwd = "passwort";
my $sid = "fhem";
my $dtutc = strftime "%Y%m%d%H%M", gmtime;
        my $dt         = strftime "%Y%m%d%H%M", localtime;

my $urlString = "http://interface.wetterarchiv.de/weather/";
my $dataString = "id=$id&pwd=$pwd&sid=$sid&dtutc=$dtutc&dt=$dt&hu=$hu&te=$te&dp=$dp&ws=$ws&pa=$pa&wd=$wd";

my $sendString = $urlString."?".$dataString;

GetFileFromURL($sendString);
}

In diesem Beispiel werden die Luftfeuchtigkeit, die Temperatur, der Taupunkt, die Windgeschwindigkeit, die Regenmenge der letzten Stunde und die Windrichtung übertragen.

Die "id" und "pwd" ist die ID und das Passwort der Wetterstation im privaten Netzwerk. Die "SID" ist die Geräte-Kennung im Netzwerk. Diese ist von Wetter.com für Daten aus FHEM-Projekten mit "fhem" vorgegeben und sollte nicht verändert werden.

Nun werden die Daten mittels define jede halbe Stunde übertagen.
define define WetterComSenden at +*00:30 {\
       my $menge_log = myDiff("3600", "FileLog_Wetterstation", "10:::");;\
        fhem("set Regenmenge_Stunde_log $menge_log");; \
        my $ws = (ReadingsVal("Wetterstation", "windSpeed", 0) / 3.6);;\
           $ws = int(100 * $ws + 0.5) / 100;;\
        my $hu = ReadingsVal("Wetterstation", "humidity", 0);;\
        my $te = ReadingsVal("Wetterstation", "temperature", 0);;\
        my $dp = ReadingsVal("Wetterstation", "dewpoint", 0);;\
        my $wd = ReadingsVal("Wetterstation", "windDirection", 0);;\
        myWetterCom($hu,$te,$dp,$ws,$menge_log,$wd);;\
}

Schöne Grüße
Frank S.

Edit: Berechnung der UTC nach Vorschlag von Betateilchen geändert.
« Letzte Änderung: 12 April 2014, 21:14:18 von Frank S. »

Offline sweetie-pie

  • Jr. Member
  • **
  • Beiträge: 93
Antw:Wetterdaten für Wetter.com
« Antwort #1 am: 02 April 2014, 08:48:00 »
Super Sache. Das wollte ich auch schon immer machen, bin aber bisher nicht dazu gekommen.
Jetzt hat mich der Support von Wetter.com auf deinen Post aufmerksam gemacht.  Auch toller Service.

Manche Dinge erledigen sich halt von allein, man muss es nur lange genug vor sich herschieben...  ;)

Als kleinen Hinweis würde ich darüber nachdenken evtl. dies http://www.fhemwiki.de/wiki/Blocking_Call noch zu integrieren.
Es verhindert ein Hängen von fhem, falls die Antwort von Wetter.com auf sich warten lässt....

Gruß
 Holger




Offline Michael

  • Full Member
  • ***
  • Beiträge: 467
  • Rechtschreibfehler dürfen Behalten werden!
Antw:Wetterdaten für Wetter.com
« Antwort #2 am: 04 April 2014, 17:18:23 »
Moin

@Frank S
Super was du da gemacht hast.  :)
Werde es gleich versuchen Umzusetzen.

Bringe es bitte ins Wiki damit es nicht verloren geht.
Wäre schade drum.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
FS20 ST-2/3 | BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Antw:Wetterdaten für Wetter.com
« Antwort #3 am: 04 April 2014, 18:05:47 »
Moin.

Danke für die Blumen. Ihr meint sicher dieses Wiki: http://www.fhemwiki.de/wiki/Hauptseite

Ich werde es die Tage dort einfügen.

Jetz fehlt noch ein Luftdruckmesser. Mit dem "HM-WDS100-C6-O" geht es leider nicht.

Schöne GRüße
Frank

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16913
  • s/fhem\.cfg/configDB/g
Antw:Wetterdaten für Wetter.com
« Antwort #4 am: 12 April 2014, 09:54:55 »
Hast Du was dagegen, wenn ich Deine Idee bei Gelegenheit in ein echtes Modul umsetze?
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Antw:Wetterdaten für Wetter.com
« Antwort #5 am: 12 April 2014, 20:18:15 »
Moin.

Da habe ich nichts gegen.

Schöne Grüße
Frank

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16913
  • s/fhem\.cfg/configDB/g
Antw:Wetterdaten für Wetter.com
« Antwort #6 am: 12 April 2014, 20:42:23 »
Hinweis:

my $dtutc = strftime "%Y%m%d%H%M", localtime(time+$offset);

Vorausgesetzt, Du bist in Deutschland zu Hause, dann stimmt die Berechnung nicht. Den offset von 3600 musst Du nicht addieren, sondern abiziehen, um auf utc zu kommen. Und jetzt ist Sommerzeit, da ist der Offset sogar -7200

Vorschlag:

my $dtutc = strftime "%Y%m%d%H%M", gmtime;
« Letzte Änderung: 12 April 2014, 20:48:45 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Antw:Wetterdaten für Wetter.com
« Antwort #7 am: 12 April 2014, 21:16:07 »
Moin.

Danke für den Hinweis mit der Berechnung der UTC. Ich habe den Vorschlag gleich übernommen.

Schöne Grüße
Frank

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16913
  • s/fhem\.cfg/configDB/g
Antw:Wetterdaten für Wetter.com
« Antwort #8 am: 12 April 2014, 21:42:45 »
Hallo Frank,

schau mal, was meinst Du zu dieser Idee?

(http://up.picr.de/17940005jh.jpg)

  • Das Define besteht nur aus stationId + Passwort (im Screenshot nicht zu sehen)
  • In den Attributen wird für jeden (laut API) möglichen Wetterparameter ein Eintrag nach dem Muster <device>:<reading>[:offset] festgelegt.
  • Aus den definierten Attributen wird der "data" String zusammengebaut, der dann für die Übertragung an die url mit den "Grunddaten" angehängt wird.

Als nächstes muss ich die eigentliche Übertragung einbauen.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16913
  • s/fhem\.cfg/configDB/g
Antw:Wetterdaten für Wetter.com
« Antwort #9 am: 12 April 2014, 22:33:44 »
Hier schonmal die Doku :)

(http://up.picr.de/17940731la.jpg)

Und im Anhang das Modul 55_weco.pm zum Testen. Ich werde noch ein paar Tests machen, vermutlich wird das Modul heute noch eingecheckt und morgen per Update verteilt.
« Letzte Änderung: 12 April 2014, 23:03:47 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16913
  • s/fhem\.cfg/configDB/g
Antw:Wetterdaten für Wetter.com
« Antwort #10 am: 12 April 2014, 23:03:30 »
*grmpf* blöder Fehler bei den Attributen - nun beseitigt :)
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Antw:Wetterdaten für Wetter.com
« Antwort #11 am: 13 April 2014, 09:12:39 »
Guten Morgen.

Danke für die schnelle Umsetzung. Schaut gut aus. Ich werde es bei Gelegenheit  testen.

Schöne Grüße
Frank S.

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Antw:Wetterdaten für Wetter.com
« Antwort #12 am: 13 April 2014, 10:10:42 »
Moin.

Ich habe gerade das Modul über Update eingefügt.

Dann wie folgt im Progamm eingefügt:

define WetterComSenden_Mod weco stat_id pwd
attr WetterComSenden_Mod wecote temp:Wetterstation:temperature
attr WetterComSenden_Mod wecohu humidity:Wetterstation:humidity
attr WetterComSenden_Mod wecodp dewpoint:Wetterstation:dewpoint:273.15

Nur bekomme ich nun die Fehlermeldung:

"Cannot load module weco Please define WetterComSenden_Mod first Please define WetterComSenden_Mod first Please define WetterComSenden_Mod first"

Habe ich dort etwas falsch gemacht, oder ist das Modul noch nicht aktiv?

Schöne Grüße
Frank

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16913
  • s/fhem\.cfg/configDB/g
Antw:Wetterdaten für Wetter.com
« Antwort #13 am: 13 April 2014, 10:39:50 »
1. Du hast die Attribute falsch gesetzt. (Deine Definition dürfte für eine 98_openweathermap Definition sein)

2. Warum das Modul nicht geladen werden kann, solltest Du im Logfile nachschauen. Hattest Du Dein fhem nach dem Update neugestartet?

« Letzte Änderung: 13 April 2014, 10:42:29 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Frank S.

  • Jr. Member
  • **
  • Beiträge: 88
    • http://www.bahnhof-ofd.de
Antw:Wetterdaten für Wetter.com
« Antwort #14 am: 13 April 2014, 11:58:15 »
Moin.

Zu Punkt 1: Stimmt. Daher habe ich die übernommen. Muss ich dann noch anpassen.

Zu Punkt 2: Ich habe den Server nach dem Update neu gestartet. Im Logfile erhalte ich folgende Fehlermeldung:

2014.04.13 11:51:08 1: reload: Error:Modul 55_weco deactivated:
 Type of arg 1 to each must be hash or array (not private variable) at /var/InternerSpeicher/fhem/FHEM/55_weco.pm line 96, near "$a)

Schöne Grüße
Frank

 

decade-submarginal