Re: NetAtmo Wetterdaten HOWTO
Verfasst: 30.03.2023, 09:46
hmm, schade und doof :( Das Problem kann ich mit PHP8 auf jeden Fall nicht nachvollziehen.
Heimautomation mit ELV HomeMatic und FHZ Funk-Hauszentralen
https://homematic-forum.de/forum/
Hast du in der CCU-Firewall die IP deiner Synology freigegeben?blackbasket hat geschrieben: ↑29.03.2023, 11:06ich scheitere jetzt gerade aber leider am Abruf der Werte in der CCU... da bekomme ich leider rein gar nichts zurück...
Nein, aber das sollte auch nicht notwendig sein. Der HTTP request erfolgt ja von der CCU auf den Webserver (die Synology ist bei mir ein Strato-Webserver).HEINEN_Eric hat geschrieben: ↑30.03.2023, 09:48Hast du in der CCU-Firewall die IP deiner Synology freigegeben?blackbasket hat geschrieben: ↑29.03.2023, 11:06ich scheitere jetzt gerade aber leider am Abruf der Werte in der CCU... da bekomme ich leider rein gar nichts zurück...
LG
Eric
Code: Alles auswählen
array_push($wish_data, $value);
Code: Alles auswählen
echo $value.", ";
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);
}