NetAtmo Wetterdaten HOWTO

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

blueb6
Beiträge: 118
Registriert: 08.01.2015, 20:22
Wohnort: Neufeld/Leitha
Danksagung erhalten: 3 Mal

Re: NetAtmo Wetterdaten HOWTO

Beitrag von blueb6 » 10.08.2023, 10:55

Hi,

so einen Webserver hab ich eingerichtete und das Zip File entpackt und hochgeladen
das File Config.php wurde angepasst mit meinen userdaten

wenn ich aber jetzt

Code: Alles auswählen

http://XXX.XXX.XXX.XXX./Netatmo/req_netatmo/ReqNetatmoData.php
aufrufe bekomme ich folgende Fehler:

Diese Seite funktioniert nicht
xxx.xxx.xxx.xxx kann diese Anfrage momentan nicht verarbeiten
http error 500

kann mir jemand einen tipp geben?

Danke
lg Tom
LG Tom
________________________________________________________
2 mal CCU3 (Raspberrymatic) 1 mal CCU2, 10 Lan Gateway, und ca. 180 Komponenten

fwiehl
Beiträge: 114
Registriert: 20.01.2020, 11:06
System: CCU
Hat sich bedankt: 8 Mal
Danksagung erhalten: 6 Mal

Re: NetAtmo Wetterdaten HOWTO

Beitrag von fwiehl » 13.08.2023, 11:40

Eckstone hat geschrieben:
16.07.2023, 13:20
Hi, anbei das Script für Wetterstation und drei Zusatzmodule, läuft super. Kleine Fehlerbeseitigung, sonst top. Danke für die Mühe. 8)

Code: Alles auswählen

!Abfrage der Netatmodaten über eigenen webserver
string netatmoRequest ="/usr/local/addons/cuxd/curl -k -# http://<eigene webseite>/Netatmo/ReqNetatmoData.php?start=Start&state=123456789";

dom.GetObject ("CUxD.CUX2801001:1.CMD_SETS").State(netatmoRequest);      !Der auszuführende Befehl wird festgelegt
dom.GetObject ("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);            !mit Wert 1 kann anschließend mit CMD_RETS der Output abgefragt werden
string netatmoData = dom.GetObject ("CUxD.CUX2801001:1.CMD_RETS").State().Trim();  !Mit der Abfrage von .State() des Datenpunktes CMD_RETS wird das Befehl ausgeführt und das Ergebnis zurückgeliefert
! Der String liefert Timestamp (als integer-Wert), WZ_Temp, WZ_CO2, WZ_Rel_Feuchte, WZ_Sonometer, Luftdruck, Luftdruck_Abs, Luftdruck_Trend, TempAussen_Netatmo,
! LuftfeuchteAussen_Netatmo, Regen_Aktuell_Netatmo, Regenmenge_1h_Netatmo, Regenmenge_24h_Netatmo, dummy, dummy, dummy, dummy, dummy, Regenmenge_Monat_Netatmo
!Beispiel: 1665505994, 21.8, 742, 54, 42, 1020, 996.7, stable, 11.4, 70, 0, 0, 0.1, 22.2, 709, 57, 1016.3, 41, 10

! Schreiben der gelieferten Werte in die entsprechenden Systemvariablen:
if ((netatmoData <> null) && (netatmoData.Length() > 0)) {
  string tin = netatmoData.StrValueByIndex(",",1);
  dom.GetObject("WZ_Temp").State(tin);

  string co2 = netatmoData.StrValueByIndex(",",2);
  dom.GetObject("WZ_CO2").State(co2);

  string huin = netatmoData.StrValueByIndex(",",3);
  dom.GetObject("WZ_Rel_Feuchte").State(huin);

  string noise = netatmoData.StrValueByIndex(",",4);
  dom.GetObject("WZ_Sonometer").State(noise);

  string press = netatmoData.StrValueByIndex(",",5);
  dom.GetObject("Luftdruck").State(press);

  string pressAbs = netatmoData.StrValueByIndex(",",6);
  dom.GetObject("Luftdruck_Abs").State(pressAbs);

  string trend = netatmoData.StrValueByIndex(",",7);
  dom.GetObject("Luftdruck_Trend").State(trend);

  string tout = netatmoData.StrValueByIndex(",",8);
  dom.GetObject("TempAussen_Netatmo").State(tout);

  string huout = netatmoData.StrValueByIndex(",",9);
  dom.GetObject("LuftfeuchteAussen_Netatmo").State(huout);

  string rainakt = netatmoData.StrValueByIndex(",",10);
  dom.GetObject("Regen_Aktuell_Netatmo").State(rainakt);

  string rain1h = netatmoData.StrValueByIndex(",",11);
  dom.GetObject("Regenmenge_1h_Netatmo").State(rain1h);

  string rain24h = netatmoData.StrValueByIndex(",",12);
  dom.GetObject("Regenmenge_24h_Netatmo").State(rain24h);
  
  string tbad = netatmoData.StrValueByIndex(",",13);
  dom.GetObject("Bad_Temp").State(tbad);

  string hubad = netatmoData.StrValueByIndex(",",15);
  dom.GetObject("Luftfeuchte_Bad").State(hubad);
  
  string tsz = netatmoData.StrValueByIndex(",",16);
  dom.GetObject("SZ_Temp").State(tsz);

  string husz = netatmoData.StrValueByIndex(",",18);
  dom.GetObject("Luftfeuchte_SZ").State(husz);
  
  string tzim = netatmoData.StrValueByIndex(",",19);
  dom.GetObject("Zim_Temp").State(tzim);

  string huzim = netatmoData.StrValueByIndex(",",21);
  dom.GetObject("Luftfeuchte_Zim").State(huzim);
  
  string rain1M = netatmoData.StrValueByIndex(",",27);
  dom.GetObject("Regenmenge_Monat_Netatmo").State(rain1M);
 
}
Hallo,
Bei mir funktioniert das Skript jetzt auch. Die Daten werden ausgelesen und in Systemvariablen geschrieben.
Kann man eigentlich auch irgendwie einen Timestamp mitgeben und in eine Systemvariable schreiben? Fände ich hilfreich, da man dann auf den ersten Blick sieht, wann das letzte Mal die Daten vvon NetAtmo ausgelesen wurden.
CCU3 mit ca. 140 HmIP und 10 HM Geräten im Mischbetrieb. 2 HmIP-HAP
HmIPW wired Rollladensteuerung mit Rollladenaktoren 5 x HmIPW-DRBL4 für 18 Rollläden
Rollladenbeschattung über 2 HmIP-SLO Lichtsensoren
ModBus Ansteuerung PV-Anlage SMA Solar, Modbus Ansteuerung Netatmo Wetterstation
Integration von Apple HomeKit über HAP-HomeMatic Plugin der CCU3
zusätzlich 3 Raspberry pi mit HOOBS 4 Apple HomeKit Bridge, Plug-in für iRobot Roomba Saugroboter, Yamaha MusicCast, Camera FFmpeg, Nest Protect, Husqvarna Automower

fwiehl
Beiträge: 114
Registriert: 20.01.2020, 11:06
System: CCU
Hat sich bedankt: 8 Mal
Danksagung erhalten: 6 Mal

Re: NetAtmo Wetterdaten HOWTO

Beitrag von fwiehl » 23.08.2023, 18:36

Das Auslesen des UNIX Timestamp aus Netatmo funktioniert nun bei mir!

Der UNIX Zeitstempel steckt im Wert 0. Hiermit habe ich das Skript entsprechend ergänzt.
Neue Variablen definieren
"Netatmo UNIX Zeitstempel"
"Netatmo UNIX Zeitstempel konvertiert"
string time = netatmoData.StrValueByIndex(",",0);
dom.GetObject("Netatmo UNIX Zeitstempel").State(time);
Im Anschluß daran wird diese Variable in ein Datum und Zeitformat konvertiert und in eine neue Variable geschrieben:
vara = dom.GetObject("Netatmo UNIX Zeitstempel").Value();
dom.GetObject("Netatmo UNIX Zeitstempel konvertiert").State(vara.ToInteger().ToTime().ToString("%A, %d.%m.%Y %H:%M:%S"));
CCU3 mit ca. 140 HmIP und 10 HM Geräten im Mischbetrieb. 2 HmIP-HAP
HmIPW wired Rollladensteuerung mit Rollladenaktoren 5 x HmIPW-DRBL4 für 18 Rollläden
Rollladenbeschattung über 2 HmIP-SLO Lichtsensoren
ModBus Ansteuerung PV-Anlage SMA Solar, Modbus Ansteuerung Netatmo Wetterstation
Integration von Apple HomeKit über HAP-HomeMatic Plugin der CCU3
zusätzlich 3 Raspberry pi mit HOOBS 4 Apple HomeKit Bridge, Plug-in für iRobot Roomba Saugroboter, Yamaha MusicCast, Camera FFmpeg, Nest Protect, Husqvarna Automower

DidiTheE
Beiträge: 102
Registriert: 19.02.2018, 20:52
Wohnort: Waldshut-Tiengen
Hat sich bedankt: 11 Mal
Danksagung erhalten: 7 Mal

Re: NetAtmo Wetterdaten HOWTO

Beitrag von DidiTheE » 30.09.2023, 19:36

Ich hatte mich nach der Umstellung der Authenfizierungsmethode zuerst damit abgefunden, dass ich keine NetAtmo Daten mehr in HM sehe.

Und den hier beschriebene Workaround (viewtopic.php?f=31&t=28188&start=70#p742908) wollte ich mangels Web Server nicht angehen.

Doch nachdem ich den ioBroker zum Einlesen von Fremdsystemen in Betrieb genommen und mit meinem HM System verbunden hatte, hat sich eine sehr einfache Umstellung eröffnet, die das Zugriffsproblem ganz ohne Anpassungen auf HM Seite auflöst.
Und das Beste: Alle bisherigen HM Programme und Skripte rund um meine NetAtmo Geräte laufen auf Anhieb wieder :D

Eine Beischreibung des Umstiegs findet ihr hier
viewtopic.php?f=19&t=79526&p=779080#p779080
- Raspberry 3B (Charly)
- 121 Geräten mit insgesamt 493 Kanälen, 1 HmIP-HAP als Repeater
- 2 separate Raspberry mit jeweils Historian und ioBroker

blueb6
Beiträge: 118
Registriert: 08.01.2015, 20:22
Wohnort: Neufeld/Leitha
Danksagung erhalten: 3 Mal

Re: NetAtmo Wetterdaten HOWTO

Beitrag von blueb6 » 13.10.2023, 10:11

Hallo

Ich hab für mich denke ich den leichtesten Workaround gefunden,...

Ich hab auf eine Raspi den io-Broker aufgesetzt und dann Netatmo integriert das funktioniert ganz easy
genauso habe ich die CCU integriert

dann schiebe ich alle 5 min die werte von Netatmo in die Variablen der Homematic mit einem kleinen Programm was ich mittels Blocky erstellt habe


funktioniert super und ist viel einfacher wie die ganze Server Sache.....

lg Tom
LG Tom
________________________________________________________
2 mal CCU3 (Raspberrymatic) 1 mal CCU2, 10 Lan Gateway, und ca. 180 Komponenten

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“