OC3 Daten an wunderground

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Benutzeravatar
AudioSonic
Beiträge: 236
Registriert: 31.08.2014, 20:15

Re: OC3 Daten an wunderground

Beitrag von AudioSonic » 05.12.2016, 15:52

hi,

schön das es jetzt - endlich - funktioniert...vermutlich warst du wirklich der Erste....
Danke an BP mit der Auflösung, dass die WebUI "systemeigene" Systemvariablen übersetzt, das is ja echt mal ein Stolperstein....

Grüße

ColleLupi
Beiträge: 228
Registriert: 10.12.2008, 09:26

Re: OC3 Daten an wunderground

Beitrag von ColleLupi » 10.02.2017, 17:02

Vielen Dank an AudioSonic!!!!!

Der Script für Wunderground hat sofort geklappt.So liebe ich diese Scriptsprache. :D
Vielleicht zur besseren Übersicht für Nachmacher:
Mit HQ WebUI (Auch ein geniales Tool aus diesem Forum) unter Ausführen den Script und die Variablen geprüft. Erleichtert die Übersicht ob alles klappt.
Gruß
Stefan

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: OC3 Daten an wunderground

Beitrag von Marcus1@@@ » 19.05.2017, 17:24

Code: Alles auswählen

    !Wetterdaten des OC3 an Wunderground senden - by AudioSonic

    !Daten der PWS (Personal Weather Station) eingeben, zuvor PWS Anlegen unter www.wunderground.com -> more -> register your PWS
    !eigene Daten hier eingeben
    string ID = "ABCDEFG5"; !eigene Wunderground Station ID eingeben
    string PW = "12345ABC"; !eigenen Wunderground Station Key eingeben
    string OC3 = "LEQ1234567"; !eigene Seriennr. des OC3 eintragen 

    !zu übermittelnde Werte aus OC3
    !ab hier muss nichts mehr geändert werden.
    real tempc = dom.GetObject("BidCos-RF."#OC3#":1.TEMPERATURE").Value(); !Messwert vom OC3 in Grad Celsius
    integer humidity = dom.GetObject("BidCos-RF."#OC3#":1.HUMIDITY").Value(); !Messwert vom OC3 in %
    real windspeedkmh = dom.GetObject("BidCos-RF."#OC3#":1.WIND_SPEED").Value(); !Messwert vom OC3 in km/h 
    integer winddir = dom.GetObject("BidCos-RF."#OC3#":1.WIND_DIRECTION").Value(); !Messwert vom OC3
    real dailyrainmm = dom.GetObject("Regen heute").Value(); !Messwert vom OC3 in mm, die Regenmenge muss in der Systemvariablen "Regen heute" vorliegen. WICHTIG! Wurde die SV "Regen heute" von der CCU beim Anlernen des OC3 automatisch erzeugt, muss sie einmalig in "Regen heute1" und dann wieder zurück in "Regen heute" umbenannt werden, da sie sonst vom Skript nicht als solche erkannt wird und das Skript dann abbricht und die Daten nicht an WU gesendet werden.

    !Umrechnung der Werte, da Wunderground nur "Englische-Einheiten" akzeptiert, z.B. von Grad Celsius in Grad Fahrenheit
    real tempf = (1.8 * tempc) + 32.0;
    real windspeedmph = 0.621371192 * windspeedkmh;
    real dailyrainin = 0.03937 * dailyrainmm;

    !Wetterdaten an Wunderground übermitteln
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID="#ID#"&PASSWORD="#PW#"&dateutc=now&tempf="#tempf#"&humidity="#humidity#"&windspeedmph="#windspeedmph#"&winddir="#winddir#"&dailyrainin="#dailyrainin#"&action=updateraw'");
Wie kann ich das den von CUXD exec auf system.exec umschreiben?
Grüße

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: OC3 Daten an wunderground

Beitrag von Marcus1@@@ » 20.05.2017, 14:39

Code: Alles auswählen

!Wetterdaten an Wunderground übermitteln
string stdout;
string stderr;
system.Exec ("curl -s -k 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID="#ID#"&PASSWORD="#PW#"&dateutc=now&tempf="#tempf#"&humidity="#humidity#"&windspeedmph="#windspeedmph#"&winddir="#winddir#"&dailyrainin="#dailyrainin#"&action=updateraw'", &stdout ,&stderr);
Irgendwie funktioniert das so nicht. Ich bekomme im Log dann auch das:
May 20 14:24:48 homematic-ccu2 local0.err ReGaHss: Error: Failed to close mutex 'mtxStaticIseEsp'! [../Platform/Common/iseSysLx.cpp (123)]

korra82
Beiträge: 2
Registriert: 23.08.2016, 16:34

Re: OC3 Daten an wunderground

Beitrag von korra82 » 05.06.2017, 16:41

Hallo,

Ich nutze das Script um die Daten an WU über ioBroker zu senden, das funktioniert perfekt dank diesem Forum.
Jetzt habe ich auch eine WDC 7000 und möchte gerne den Luftdruck auch übetragen.
Da ich im Skripten nicht der hellste bin möchte ich fragen ob mir wer dabei helfen könnte oder schon jemand die entsprechenden Werte in seinen Script integriert hat.
Anbei noch der Script welcher gerade bei mir in Verwendung ist.
Danke, Thomas

Code: Alles auswählen

/* Skript zum Beschreiben der Personal Weather Station
Autor: pix (30.6.2016), mit Anpassungen durch dtp

nach dem Vorbild dieses HM-Skriptes von mape http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007

Voraussetzung: Anmeldung einer PWS unter https://www.wunderground.com/personal-weather-station/signup (Hardware: other)
*/

var pws_id =  "??????"; // "Station ID" der PWS
var pws_key = "??????"; // "Station Key" der PWS 

var idtempc =        "hm-rpc.0.NEQ0293866.1.TEMPERATURE"; // Tempertur in °C
var idhumidity =     "hm-rpc.0.NEQ0293866.1.HUMIDITY"; // Luftfeuchtigkeit in %
var idwinddir =      "hm-rpc.0.NEQ0293866.1.WIND_DIRECTION"; // Windrichtung (0-360°)
var idwindspeedkmh = "hm-rpc.0.NEQ0293866.1.WIND_SPEED"; // Windgeschwindigkeit in km/h
var iddailyrainmm =  "hm-rega.0.1587"; // Regen heute in mm

// Ab hier nix mehr anpassen

var request = require('request');

function weatherupdate() {
    var tempc = getState(idtempc).val;
    var tempf = (tempc * 1.8) + 32;  // Umwandlung °C in °F
    var humidity = getState(idhumidity).val;
    var winddir = getState(idwinddir).val;
    var windspeedkmh = getState(idwindspeedkmh).val;
    var windspeedmph = windspeedkmh * 0.621371;  // Umwandlung km/h in mph
    var dailyrainmm = getState(iddailyrainmm).val;
    var dailyrainin = dailyrainmm * 0.0393701;  // Umwandlung mm in in
    
    var weatherURL = 'https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&dailyrainin=' + dailyrainin + '&action=updateraw' + '&realtime=1&rtfreq=2.5';
    
    try {
        request(weatherURL,function (error, response, body) {
            if (!error && response.statusCode == 200) {
               // Update ok
               log('Wunderground Personal Weather Station successfully updated','debug');
            } else {
                log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn');
                log(error,'error');
            }
        });
    } catch (e) {
        log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error');
    }    
}

on(idtempc, weatherupdate); // aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor
on(idhumidity, weatherupdate); // aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor
on(idwinddir, weatherupdate); // aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor
on(idwindspeedkmh, weatherupdate); // aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
on(iddailyrainmm, weatherupdate); // aktualisieren, wenn neuer Regenwert von HM-Kombisensor

prinzeisenherz1
Beiträge: 194
Registriert: 22.01.2015, 19:44
Danksagung erhalten: 1 Mal

Re: OC3 Daten an wunderground

Beitrag von prinzeisenherz1 » 06.06.2017, 10:24

Hi Korra82,

Ich hab auf iobroker Dein Script mal erweitert und kann es Dir gerne zukommenlassen.
Was möchtest Du denn noch gerne erweitert haben?

Gruß
Johnny

korra82
Beiträge: 2
Registriert: 23.08.2016, 16:34

Re: OC3 Daten an wunderground

Beitrag von korra82 » 06.06.2017, 19:01

Hallo Prinzeisenherz1,

Ich möchte gerne den Luftdruck der WDC 7000 in den Script einbinden und mitsenden.
liegt unter hm-rpc.0.NEQ0187263/ HM-WDC7000 NEQ0187263:10.AIR_PRESSURE
Falls du den Luftdruck schon eingebunden hast kannst du mir den Script schicken und ich ändere mir die Werte wo die Daten unter hm-rpc.0 liegen selber, das bring ich hin.

Gruß
Thomas

bibo09
Beiträge: 165
Registriert: 30.03.2015, 17:34

Re: OC3 Daten an wunderground

Beitrag von bibo09 » 31.08.2017, 20:31

Abend,

ich würde gerne das Script von AudioSonic soweit anpassen, dass noch Windgeschwindigkeit,Windrichtung,Regen,Luftdruck und Helligkeit,
an Wunderground übermittelt werden kann.
Leider fehlen mir hierfür die Kenntnisse. Bisher ist es mir nur anhand dieses Skript gelungen die Außentemperatur zu übermitteln.
Es handelt sich hierbei um einzelne Sensoren.

Kann mir bitte jemand hierfür Support geben?

Code: Alles auswählen

!eigene Wetterdaten an Wunderground senden - by AudioSonic

!Daten der PWS (Personal Weather Station) eingeben, zuvor PWS Anlegen unter www.wunderground.com -> more -> register your PWS
string ID = "ABCDEFG5"; !eigene Wunderground Station ID eingeben
string PW = "12345ABC"; !eigenen Wunderground Station Key eingeben 

!zu übermittelnde Werte definieren
real tempc = dom.GetObject("Aussentemperatur").Value(); ! die Außentemperatur liegt in der Systemvariable "Aussentemperatur" vor 

!Umrechnung der Werte, da Wunderground nur "Englische-Einheiten" akzeptiert, z.B. von Grad Celsius in Grad Fahrenheit
real tempf = (1.8 * tempc) + 32.0;

!weitere mögliche Umrechnungen, je nach Bedarf:
!real windspeedmph = 0.621371192 * windspeedkmh;
!real dailyrainin = 0.03937 * dailyrainmm;
!real baromin = 0.0295301 * barommb;

!Werte an Wunderground senden. Die Url unten nach " State("extra/curl -s -k " um gewünschte Variablen ergänzen, welche oben definiert worden sind, nach dem Muster: &tempf="#tempf#", die Variablen vor " &action=updateraw " einfügen. Unbedingt die festgelegten Bezeichnungen von Wunderground für die Parameter verwenden, siehe http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol   siehe Abschnitt "List of Fields"

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID="#ID#"&PASSWORD="#PW#"&dateutc=now&tempf="#tempf#"&action=updateraw'");

bibo09
Beiträge: 165
Registriert: 30.03.2015, 17:34

Re: OC3 Daten an wunderground

Beitrag von bibo09 » 01.09.2017, 05:11

Morgen,

habe es nun doch nach langen testen hinbekommen.
Was ich leider nicht gefunden habe, ist die Übermittlung von der Station (W_Station).
Wie müsste die Station im Skript wiedergegeben werden?
Dazu habe ich leider nichts bei wunderground im Wiki gefunden.

Gruß
bibo

ceerix
Beiträge: 54
Registriert: 22.12.2015, 22:20

Re: OC3 Daten an wunderground

Beitrag von ceerix » 01.09.2017, 08:35

Könntest du bitte dein angepasstes Skript zur Verfügung stellen?

Beste Grüße
Alex
--------------------------------------------
Rasperrymatic mit 144 Kanälen in 54 Geräten und 72 CUxD-Kanäle in 12 CUxD-Geräten
--------------------------------------------

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“