Hallo,
Ich habe ein Modul geschrieben um Daten über die Luftqualität einer Stadt von der Seite http://aqicn.org/ zu erhalten. Diese werden in Readings gesteckt und es wird eine allgemeine Zustandszusammenfassung im state geschrieben.
Desweiten wird in kommenden Versionen noch ein Reading für die Gesundheitliche Auswirkungen geben. Eventuell auch mit Weblink unterstützung.
Das Modul kann in einer ersten alpha Version aus meinem Git geladen werden.
Ihr müsst Euch zu erst einen Token holen (http://www.aqicn.org/data-platform/token)
Danach könnt Ihr dann das Grunddevice definieren
define aqicnWebBridge Aqicn token=<YOUR-TOKEN>
Wenn das geschehen ist könnt Ihr das Station Device definieren. Wie das geht ist ersichtlich. Einfach im Grunddevice nach Eurer Stadt suchen und eine Station auswählen.
Das Modul kommt offiziell per FHEM update zu Euch
Grüße
Leon
Hi Leon,
vielen Dank!
Habe es gerade getestet, läuft soweit.
Habe mal München angelegt und wollte jetzt einen zweiten Ort, da kommt allerdings nach der Suche nur noch:
<html><table><tr><td><table class="block wide"><tr class="even"><td><b>City</b></td><td><b>Last Update Time</b></td><td><b>Latitude</b></td><td><b>Longitude</b></td><td></td></tr>
Hallo Mitch,
Dann wird es für diesen Ort keine Daten geben. Da muss ich noch ne Fehlerbehandlung einbauen.
Danke Dir für die Meldung und das testen.
Grüße
Ja, das war es. Habe gerade auf der Seite getestet und er findet keinen Ort.
Werde es jetzt mal für München laufen lassen und berichten.
Super. Vielen vielen Dank.
Super, CoolTux, nochmal herzlichen Dank, dass Du das Modul gebaut hast!
Die Suche funktioniert noch nicht richtig.
Ein "Chicago" bringt
<html><table><tr><td><table class="block wide"><tr class="even"><td><b>City</b></td><td><b>Last Update Time</b></td><td><b>Latitude</b></td><td><b>Longitude</b></td><td></td></tr>
Lt. http://aqicn.org/json-api/demo/ (http://aqicn.org/json-api/demo/) gibt es keine Station in Chicago, d.h. die "table" Meldung heißt wohl, dass es die Station nicht gibt.
Beijing (Peking) bringt
fhemweb.js line 1:
SyntaxError: missing ) after argument list
In Beijing gibt es einige, hier muss etwas anderes schief gelaufen sein. Andere Städte wie Chengdu, Shenzhen gehen auch noch nicht.
Buenos Aires bringt
usage: stationSearchByCity
Städte mit Leerzeichen scheinen generell nicht zu funktionieren (LA, NYC, Bad Cannstatt...) - die kann aber hinzufügen, wenn man nur "buenos" oder "york" tippt.
Der Rest sieht soweit gut aus, City Name, etc muss noch etwas formatiert werden. Werde mir Gedanken machen, wie man das alles ideal gestaltet. Ggf. kann man den AQI in ug/m3 umrechnen (siehe meinen Anfänger Thread https://forum.fhem.de/index.php/topic,78000.msg701543.html#msg701543 (https://forum.fhem.de/index.php/topic,78000.msg701543.html#msg701543)), dann können Leute mit ihren PMS und SDS direkt vergleichen. Wobei zum Vergleichen eher der AQI nützlich ist als direkte Werte.
Zur Info: https://github.com/ctgnauh/aqicn (https://github.com/ctgnauh/aqicn) hat auch etwas gebastelt. Vielleicht kannst Du da noch ein paar "Inspirationen" sammeln. Das ist - glaube ich JS. Kenne mich damit aber nicht aus ;)
Danke!
Ich habe eins der AQIcn Widgets (http://aqicn.org/faq/2015-07-28/air-quality-widget-new-improved-feed/ (http://aqicn.org/faq/2015-07-28/air-quality-widget-new-improved-feed/)) in TabletUI eingebunden.
Header:
<title>FHEM-Tablet-UI</title>
</head>
<body>
<script type="text/javascript" charset="utf-8">
(function(w,d,t,f){ w[f]=w[f]||function(c,k,n){s=w[f],k=s['k']=(s['k']||(k?('&k='+k):''));s['c']=
c=(c instanceof Array)?c:[c];s['n']=n=n||0;L=d.createElement(t),e=d.getElementsByTagName(t)[0];
L.async=1;L.src='//feed.aqicn.org/feed/'+(c[n].city)+'/'+(c[n].lang||'')+'/feed.v1.js?n='+n+k;
e.parentNode.insertBefore(L,e); }; })( window,document,'script','_aqiFeed' );
</script>
<div class="gridster">
Zelle:
<li data-row="2" data-col="2" data-sizey="2" data-sizex="2">
<header>AIR QUALITY</header>
<div class="sheet">
<div class="row">
<div class="cell" data-width="450px">
<div class="cell bg-orange" >
<span id="city-aqi-container"></span>
<script type="text/javascript" charset="utf-8">
_aqiFeed({
display:"<div style='%style;max-width:80px;text-align:center;'><small>%cityname AQI:</small> <div style='font-size:30px;height:40px;padding-top:1px;'>%aqiv</div> %impact</div>",
container:"city-aqi-container",
city:"berlin" });
</script>
</div>
</div>
Das funktioniert super (ohne Token!). Aber direkt auf die Fhem Oberfläche habe ich das noch nicht bekommen. Hier gibt's ja auch Vorhersage-Grafiken, etc. (z.B. http://aqicn.org/city/germany/berlin/ (http://aqicn.org/city/germany/berlin/)), die man toll einbinden könnte. Auch beispielsweise die Karte, die die Stationen zeigt. Oder Anzeige der abonnierten Stationen als Array ("E. multiple Widgets" auf der Widgets Webseite).
Ich verstehe noch nicht, wie man Java-Skript auf die FHEM Oberfläche bekommt und hatte noch keine Zeit das anzugucken.
https://fhem.de/commandref.html#weblink
Sollte nicht weblink völlig ausreichend dafür sein?
Dasmit den Städten schaue ich mir an. Gibt wohl noch einiges zu tun ;D
Grüße
Zitat von: CoolTux am 20 Oktober 2017, 06:06:17
https://fhem.de/commandref.html#weblink
Sollte nicht weblink völlig ausreichend dafür sein?
Wahrscheinlich schon, aber muss mir ansehen, wie das geht, wenn man JS Code braucht. Wahrscheinlich simple. Knoff-hoff...
Zitat von: maddhin am 20 Oktober 2017, 05:14:27
Beijing (Peking) bringt
fhemweb.js line 1:
SyntaxError: missing ) after argument list
Also Beijing (Peking) geht jetzt, es kommt nichts zurück. Das ist korrekt, auch die API selbst gibt nichts zurück.
Allerdings nur Beijing bringt genau Deinen Fehler fhemweb.js line 1:
Das muß ich erstmal Hinterfragen bei Rudi, scheint eventuell ein Bug zu sein. Denn die Antwort wird korrekt zusammen gebaut. Der Browser kann sie wunderbar anzeigen.
Zitat von: CoolTux am 20 Oktober 2017, 06:43:26
Also Beijing (Peking) geht jetzt, es kommt nichts zurück. Das ist korrekt, auch die API selbst gibt nichts zurück.
Allerdings nur Beijing bringt genau Deinen Fehler fhemweb.js line 1:
Das muß ich erstmal Hinterfragen bei Rudi, scheint eventuell ein Bug zu sein. Denn die Antwort wird korrekt zusammen gebaut. Der Browser kann sie wunderbar anzeigen.
Die Abfrage mit dem JSONREADINGS.PM funktioniert für Beijing, muss aber heute Abend nochmal prüfen, ob es da ggf. auch eine Fehlermeldung gab. Chengdu, Shenzhen hatten aber die gleichen Fehlermeldungen wenn ich mich recht errinnere. Werde auch nochmal ein paar mehr Städte ausprobieren, die mir so in den Sinn kommen und sehen, ob es noch andere Städte mit dem Problem gibt.
Wie gesagt ich habe auch noch einen Fehler gefixt wenn ein Leerzeichen mit drin ist. Das geht jetzt. Und die Tabele wurde bei leeren Array falsch zusammen gebaut. Ist auch gefixt. Kann aber gerade nicht hochladen weil ich ne Menge debug Ausgaben drin habe wegen dem Java Script Fehler
Ach so. Fast vergessen. Welche Readings fehlen denn. Hatte versucht nur die zu nehmen welchen in der Tat wichtig und Wertvoll sind.
Habe die Debugausgaben mal auskommentiert und eine neue Version im Git geladen.
Grüße
So es konnten nun alle Probleme beseitigt werden. Es dürfen also gerne neue kommen.
Ich habe eine Deutsche Übersetzung für das state Reading der Stationen eingebaut. So fern Euer globales language Attribut DE ist oder Ihr im Aqicn Device language de gesetzt habt kommt die deutsche Übersetzung.
Neue Version steht online bereit.
Grüße
Zitat von: CoolTux am 19 Oktober 2017, 14:02:53
Wenn das geschehen ist könnt Ihr das Station Device definieren. Wie das geht ist ersichtlich.
Aber nur wenn man FHEMWEB nutzt, via telnet leider nicht. Auch ein "get Aqicn stationSearchByCity Ort" liefert via telnet nix zurück.
Die Commandref beschreibt nur das Client Modul und besginnt mit:
ZitatAqicn - Retrieves data from a Tesla Powerwall 2AC System
;)
Gibt ja auch noch keine commandref ;D
Das ganze über telnet baue ich noch ein.
Ich habe mal etwas mit den Widgets rumgespielt und man kann das jetzt via weblink integrieren:
define <name> weblink iframe http://<fhem-ip>:8083/fhem/ftui/<widget name>.html
aufhübschen (width/height anpassen):
attr <name> htmlattr width="200" height="230" frameborder="0" marginheight="0" marginwidth="0"
Die entsprechende(n) Datei(en) sind als .html im /www/tablet Verzeichnis zu speichern damit diese abrufbar sind (oder eben überall wo sie zugreifbar sind).
Ob der Weg über die html Dateien, die im TabletUI Verzeichnis liegen richtig ist, bezweifle ich, aber die Krücke funktioniert erstmal...
Unter http://aqicn.org/faq/2015-07-28/air-quality-widget-new-improved-feed/ (http://aqicn.org/faq/2015-07-28/air-quality-widget-new-improved-feed/) gibt's die jeweiligen Infos und Beispiele, wie man die Widgets an seine Bedürfnisse anpassen kann. Ich habe versucht die beiden Dateien so zu füllen, dass ersichtlich ist was wie wo hinkommt.
Das mit dem Array habe ich aber nicht hinbekommen. Da gibt es eine
ReferenceError: $ is not defined
at Object.displayCity [as callback] (AQIWidget_array.html:22)
at aqi.cityname (feed.v1.js?n=7:1)
at feed.v1.js?n=7:1
Fehlermeldung. Da ich weder JS noch HTML spreche und Google ungnädig war, muss da leider jemand anders nochmal rübergucken. Siehe anbei Array.
Generell wäre es natürlich genial diese Widgets "automatisch via Modul generieren zu lassen" -- ggf. indem man die display/city/language Variablen übergibt. Muss aber nicht und macht die Sache wohl unnötig komplex. Der TabletUI-HTML Umweg ist OK weil flexibel, aber nicht jeder hat TabetUI installiert. Ggf. kann man die Dateien auch woanders speichern...
AQI Widget:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<script type="text/javascript" charset="utf-8">
(function(w,d,t,f){ w[f]=w[f]||function(c,k,n){s=w[f],k=s['k']=(s['k']||(k?('&k='+k):''));s['c']=
c=(c instanceof Array)?c:[c];s['n']=n=n||0;L=d.createElement(t),e=d.getElementsByTagName(t)[0];
L.async=1;L.src='http://feed.aqicn.org/feed/'+(c[n].city)+'/'+(c[n].lang||'')+'/feed.v1.js?n='+n+k;
e.parentNode.insertBefore(L,e); }; })( window,document,'script','_aqiFeed' );
</script>
<span id="city-aqi-container"></span>
<script type="text/javascript" charset="utf-8">
_aqiFeed({
display:"<div style='%style;max-width:80px;text-align:center;'><small>%cityname AQI:</small><div style='font-size:30px;height:40px;padding-top:1px;'>%aqiv</div> %impact</div>",
container:"city-aqi-container",
city:"berlin",
lang:"en"
});
</script>
</body>
</html>
AQI Widget Details:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<script type="text/javascript" charset="utf-8">
(function(w,d,t,f){ w[f]=w[f]||function(c,k,n){s=w[f],k=s['k']=(s['k']||(k?('&k='+k):''));s['c']=
c=(c instanceof Array)?c:[c];s['n']=n=n||0;L=d.createElement(t),e=d.getElementsByTagName(t)[0];
L.async=1;L.src='http://feed.aqicn.org/feed/'+(c[n].city)+'/'+(c[n].lang||'')+'/feed.v1.js?n='+n+k;
e.parentNode.insertBefore(L,e); }; })( window,document,'script','_aqiFeed' );
</script>
<span id="city-aqi-container"></span>
<script type="text/javascript" charset="utf-8">
_aqiFeed({
display:"%details",
container:"city-aqi-container",
city:"berlin",
lang:"en"
});
</script>
</body>
</html>
AQI Widget Arrays (geht nicht):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<script type="text/javascript" charset="utf-8">
(function(w,d,t,f){ w[f]=w[f]||function(c,k,n){s=w[f],k=s['k']=(s['k']||(k?('&k='+k):''));s['c']=
c=(c instanceof Array)?c:[c];s['n']=n=n||0;L=d.createElement(t),e=d.getElementsByTagName(t)[0];
L.async=1;L.src='http://feed.aqicn.org/feed/'+(c[n].city)+'/'+(c[n].lang||'')+'/feed.v1.js?n='+n+k;
e.parentNode.insertBefore(L,e); }; })( window,document,'script','_aqiFeed' );
var cities = ["london", "newyork", "seoul", "guangzhou", "tokyo", "shanghai", "paris","hongkong"];
var aqiWidgetConfig = [];
cities.forEach(function(city) { aqiWidgetConfig.push({city:city, callback: displayCity}); });
_aqiFeed(aqiWidgetConfig);
function displayCity(aqi) {
$("#mutiple-city-aqi").append(aqi.text("<center>%cityname<br>%aqi<br><small>%date</small></center>"));
}
</script>
</body>
</html>
Hatte gerade ein
PERL WARNING: Use of uninitialized value $aqi in numeric lt (<) at /usr/share/fhem/FHEM/46_Aqicn.pm line 572.
im Log.
Beijing funkt jetzt, danke!
Wie kann man das Abfrageintervall verändern?
Über Interval Attribut
Neue Version online.
Setzt mal das Attribut stateFormat auf htmlStyle und schaut mal.
Also das Reading AQI zu nehmen für die ganzen Anzeigen ist Kacke. Schau Dir mal den Screenshot bitte an. Auch der dominatPoll hilft hier nichts. Wir sollten wirklich das PM2.5-AQI nehmen, das scheint immer einen Wert zu haben.
Ok vergiss es, Berlin hat das Reading erst gar nicht. Ich mache jetzt ne Abfrage und stelle entsprechend die Readings zusammen.
Hm, eigentlich dachte ich die haben AQI und dominantPoll extra gemacht DAMIT immer ein AQI da ist.
ABER: Potsdam Zentrum sind die letzten Werte am 2017-10-20 22:00:00 gemessen worden. D.h. vor 3 Tagen. Meiner Meinung nach wird AQI auf "-" gestellt, wenn nach einer Zeit x keine Werte mehr kommen. Intelligent design?
Also ggf. ein "keine aktuellen Werte" oder wirklich einen "-" lassen damit man weiß, dass die Station "offline" ist..
Berlin hat doch AQI 20... :o
EDIT: erst lesen, dann tippen.. OK, Du hattest über das PM 2.5 Reading gesprochen...
Ich habe das jetzt einfach mal durch eine Abfrage gelöst.
Bin gerade dabei die HealthImplications ein zu bauen. Danach kann man ja noch überlegen wie man veraltete Daten Darstellen könnte
Neue Version ist online 0.0.56
Zitat von: CoolTux am 23 Oktober 2017, 10:45:35
Ich habe das jetzt einfach mal durch eine Abfrage gelöst.
Bin gerade dabei die HealthImplications ein zu bauen. Danach kann man ja noch überlegen wie man veraltete Daten Darstellen könnte
Super - ist wahrscheinlich das einfachste die Daten von Wiki oder AQICN für die Health implications zu übernehmen.
Ich habe bisher noch keine nachhaltige Recherche zu den EU bzw. deutschen Standards gemacht. Das ist kompliziert und bezieht verschiedene Schadstoffe ein. Die amerikanischen Standards sind so schön einfach definiert:)
Und das schönes an AQICN ist auch, dass man alle Werte in µg/m³ umrechnen kann und dann in anderen Standard - wenn man das möchte.
Werde die neue Version heute Abend testen - bin etwas in Rückstand nachdem ich gestern meinen RPi und Fhem neu aufsetzen und wiederherstellen musste.
Wäre schick wenn Du vieleicht Zeit finden könntest eine Art Commandref zu den Readings zu schreiben. Kannst auch einfach Text schreiben ich kann das dann als Commandref schreiben. Müsste aber eben enlisch sein.
Zitat von: CoolTux am 23 Oktober 2017, 11:14:49
Wäre schick wenn Du vieleicht Zeit finden könntest eine Art Commandref zu den Readings zu schreiben. Kannst auch einfach Text schreiben ich kann das dann als Commandref schreiben. Müsste aber eben enlisch sein.
No worries, dauert aber ggf. ein paar Tage bis ich das fertig habe
Zitat von: maddhin am 23 Oktober 2017, 11:21:59
No worries, dauert aber ggf. ein paar Tage bis ich das fertig habe
Hat Zeit.
Ich mache jetzt die Telnet Variante fertig.
Ich habe das Modul soeben offiziell ins SVN geladen. Ab morgen per Update Version 0.2.0
Grüße
Hi Leon,
hab mir gerade mal angeguckt, was das Modul überhaupt so tun soll. Der Name ist ja nicht gerade sprechend, nach lesen der commandref aber nachvollziehbar. ;)
Wenn ich mir die Webpage ansehe, scheint das Update von den deutschen Stationen mehr schlecht als recht zu funktionieren. >:(
Ich nutze das innoffizielle Umwelt-Modul von Markus. Weiterentwicklung hat er ja wg. der rechtlichen Problemstellung eingestellt (oder war das gar nicht sein Grund :-\) :'(
Ließen sich die Module "verheiraten" ? Oder siehst Du da auch die rechtlichen Probleme....
Grüße Markus
Hallo Markus,
Müsste ich mir erstmal in Ruhe anschauen was das für ein Modul sein soll.
Hast Du ein Link für mich bitte.
Grüße
Ähmm, natürlich nicht Umwelt(mein device), sondern airquality (https://forum.fhem.de/index.php/topic,68623.msg601023.html#msg601023) :-[
Also wenn ich das richtig verstanden habe wurde das Modul ansprechend der Nutzungsbedingungen angepasst und funktioniert auch. Mehr gibt wohl die Nutzungsbedingungen nicht her als das was das Modul liefert. Markus arbeitet halt bloß nicht aktiv daran weiter oder macht es offiziell.
Aber bei Problemen fixt er bestimmt noch.
Mag mich da jetzt nicht reinhängen.
Grüße
Danke, ich schicke ihm mal ne PN, ich hatte es zumindest anders interpretiert. Eine "Hochzeit" fänd ich trotzdem nicht verkehrt. Ein Modul weniger bei gleicher Funktionalität. Man kommt ja nicht mehr mit, was es alles so gibt. ;D
Grüße Markus
Naja, ob die Heirat sinnvoll ist? AQIcn ist international und trägt das Open Data-Prinzip. Mein Gefühl ist auch, dass die Deutschen Messstellen dort aktueller in den Daten sind als beim UBA. Ich sehe keinen Vorteil in einer "Verheiratung".
Zitat von: volschin am 15 November 2017, 17:55:01
Naja, ob die Heirat sinnvoll ist? AQIcn ist international und trägt das Open Data-Prinzip. Mein Gefühl ist auch, dass die Deutschen Messstellen dort aktueller in den Daten sind als beim UBA. Ich sehe keinen Vorteil in einer "Verheiratung".
zu dem Thema "was gibt es denn sonst noch": Ich hatte mir https://airvisual.com/ (https://airvisual.com/) angeguckt (jetzt wohl von IQAir gekauft!). Die scheinen irgendwie auf AQIcn zuzugreifen oder vielleicht sind die Leute von AQIcn zu AirVisual gegangen. Die Ähnlichkeit ist verdächtig und ich meine mich zu errinnern, das AirVisual damals mit Community-Gedanken als App rauskam.
AirVisual scheint zumindest aktiver zu sein. Was ich interessant an AirVisual finde ist die Möglichkeit Voraussagen zu bekommen - wobei das ggf. nicht über die kostenlose API geht. AQIcn hat zwar wirklich tolle Vorhersagegrafiken, aber es scheint keine Möglichkeit zu geben die Daten irgendwie zu extrahieren und für FHEM nutzbar zu machen.
Ich habe mir heute mal die Werte nach Homebridge geholt.
Für die, die es interessiert, hier das passende Mapping:
genericDeviceType AirQualitySensor
homebridgeMapping
AirQuality=AQI,values=/[1-4]\d/:EXCELLENT;/[5-9]\d/:GOOD;/1[0-4]\d/:FAIR;/1[5-9]\d/:INFERIOR;/[2-9]\d\d/:POOR
OzoneDensity=O3-AQI,minStep=0.1
NitrogenDioxideDensity=NO2-AQI,minStep=0.1
PM10Density=PM10-AQI
PM2_5Density=PM2.5-AQI
SulphurDioxideDensity=SO2-AQI,minStep=0.1
CarbonMonoxideLevel=CO-AQI,minStep=0.1
Die bei Eurer Station möglicherweise nicht gelieferten Werte einfach aus der Liste der Mappings löschen.
Hallo,
habe heute das Modul ausprobiert. Funktioniert bei mir nicht, weil alle Messstationen in Wien nicht über den Namen Wien gefunden werden. Wahrscheinlich wegen der vielen Blanks in den Namen. Wäre es nicht sinnvoller über Koordinaten zu suchen? Sollte doch genauso möglich sein.
http://waqi.info/
Wenn ich hier Wien eingebe finde ich von der Stadt auch nichts. Nur Treffer Wiener-Str oder so.
aber wenn über Koordinaten auf http://aqicn.org suche, bekomme ich mehr als 10 Stationen in Wien. Verenden aber alle nicht den Namen Wien!
Hast Du mal geshcaut ob die Daten der Stationen aktuell sind?
heute von 11 Uhr z.B http://aqicn.org/city/austria/untere-bachgasse-park-vor-schule/
etwas südlich von Wien
Ich schaue mal ob die API da was her gibt.
Hallo,
leider will das Modul bei mir nicht so funktionieren wie es soll, es wird einfach kein Device angelegt.
so sieht das Logfile aus:
2018.05.07 19:09:08 4: Aqicn (Airquality) - Send with URI: https://api.waqi.info/search/?token=b678aae77040bc83ae7cae4d8a23e2a42277e07e&keyword=berlin
2018.05.07 19:09:09 4: Aqicn (Airquality) - Recieve JSON data: {"status":"ok","data":[{"uid":6132,"aqi":"42","time":{"tz":"+0100","stime":"2018-05-07 17:00:00","vtime":1525708800},"station":{"name":"Berlin, Germany","geo":[52.5200066,13.404954],"url":"germany/berlin"}}]}
2018.05.07 19:09:09 4: Aqicn (Airquality) - Recieve JSON data: {"status":"ok","data":[{"uid":6132,"aqi":"42","time":{"tz":"+0100","stime":"2018-05-07 17:00:00","vtime":1525708800},"station":{"name":"Berlin, Germany","geo":[52.5200066,13.404954],"url":"germany/berlin"}}]}
Du solltest eigentlich eine Auswahl im FHEMWEB nach einem get bekommen. Öffnet sich ein extra Fenster wo die suchresultate drin stehen?
Es öffnet sich ein Fenster und ichklicke auf Device anlegen,
danach spring FHEM zurück und es wird kein Device angelegt.
Gehe Mal nur mit der maus über den Link anlegen und schaue dir in der Statusleiste an wie der Link aus schaut.
https://192.168.178.100:8085/no/fhem?cmd=define+Berlin__Germany+Aqicn+6132&fwcsrf=csrf_287532385397702
8085 ?
Ich glaube das wird nix. Kannst du zu Testzwecken Mal bitte 8083 nehmen?
Was genau ist 8085 bei dir für ein FHEMWEB? Ist da irgendwas eingeschränkt?
https://192.168.178.100:8083/no/fhem?cmd=define+Berlin__Germany+Aqicn+6132
legt aber über die Schaltfläche kein Device an.
Gebe ich aber define Berlin__Germany Aqicn 6132
in die FHEM-Kommandzeile, dann wird das Device angelegt
Was macht denn das no da zwischen in der URL
Ich schau mal bei mir
http://fhem02.tuxnet.local:8083/fhem?cmd=define+Berlin__Germany+Aqicn+1234&fwcsrf=csrf_8798475984
So sieht es bei mir aus. Dein "no" kommt mir komisch vor.
Hier ein List:
Internals:
CFGFN
DEF token=*********************************
HOST api.waqi.info
NAME Airquality
NOTIFYDEV global
NR 22821
NTFY_ORDER 50-Airquality
STATE search finished
TOKEN **************************
TYPE Aqicn
VERSION 0.2.1
Helper:
DBLOG:
state:
logdb:
TIME 1525715467.2366
VALUE search finished
READINGS:
2018-05-07 19:51:07 state search finished
Attributes:
room AQICN
verbose 5
Gib mal bitte ein list von WEB
list WEB:
Internals:
CONNECTS 1361
DEF 8083 global
FD 7
NAME WEB
NR 8
NTFY_ORDER 50-WEB
PORT 8083
SSL 1
STATE Initialized
TYPE FHEMWEB
Attributes:
HTTPS 1
JavaScripts codemirror/fhem_codemirror.js
SVGcache 1
codemirrorParam { "lineWrapping":true }
csrfToken none
endPlotNow 1
group Visualisierung
iconPath fhemSVG:openautomation:default:icons_small
longpoll 1
menuEntries Backup,/fhem?cmd=backup
plotfork 1
room System
sslVersion TLSv12:!SSLv3
stylesheetPrefix darktouchpad
sieht ok aus
gib mal bitte das in Dein Browser ein
https://192.168.178.100:8085/fhem?cmd=define+Berlin__Germany+Aqicn+6132&fwcsrf=csrf_287532385397702
Wie erwartet wird das Device angelegt.
tut mir leid aber da bin ich wirklich ratlos. ich weiß beim besten willen nicht wo dieses no herkommen soll.
Ist nicht schlimm, ich weiss ja wie ich jetzt zum Ziel komme, Danke für die super Unterstützung!
Gerne
Steht denn in Deinem Browser innerhalb der URL auch dieses no drin?
nein
Kannst du noch auf einem anderen System testen?
meinst Du an einem anderen Rechner? Falls ja, habe ich schon.
Ja an einem anderen fhem Rechner
Hast du? Und da war es auch so mit dem no?
Es wurde kein Device angelegt, somit denke ich ja, aber ich checke es nocmal.
Ich habe es gerade am gleichen Rechner mit Edge getestet, da ist das Problem nicht da, das Device wir sauber angelegt, also scheint es ein Firefox Problem zu sein.
Das ist ja interessant. Es liegt am Browser. Das muss ich mal testen. Danke Dir.
Zitat von: CoolTux am 07 Mai 2018, 21:27:56
Es liegt am Browser. Das muss ich mal testen.
In Chrome gehts auch - nur Firefox macht da keine Laune.
Anderes Thema: In der Commandref fehlt leider, dass man beim define noch token=.... anhängen muss.
Danke dir für dein Modul - funktioniert soweit sonst :)
Viele Grüße,
Uli
Vielen Dank Uli,
Ziehe ich die Tage grade.
Grüße
Hmm, ich raff dat net...
Finde keine gescheiten Stationen...
Kleiner Feldberg wäre mir am nächsten, wird nicht gefunden. Friedberg Limburg an der Lahn auch nicht. Nicht mal Frankfurt am Main. Wenn ich nach Frankfurt suche, kommt nur Frankfurt Oder... Kann ich das irgendwie per Hand definieren mit Infos von AQICN?
define <name> Aqicn <STATION-UID>
Die Station ID musst versuchen über die Seite waqi.info zu bekommen.
Wäre das hier die @10806 ? Will leider nicht :( Weder mit noch ohne @ Zeichen...
<script type='text/javascript' src='https://widgets.waqi.info/jswgt/?size=large&city=@10860'></script><noscript>Not seeing a widget? (<a href='https://aqicn.org/'>More info</a>)</noscript>
Aus den Infos werde ich leider nicht schlau.
Deine ganzen Städte kennt das System nicht, also nicht mal wenn ich auf der Seite direkt suche.
http://aqicn.org/city/germany/hesse/kleiner-feldberg/ zum Beispiel
Findet die Suche leider nicht, nicht mal die auf der Webseite.
Finde aktuell aber auch kein Hinweis bezüglich ID
Hmm, schade... Naja, vieleicht klappt es ja irgendwann...
Habe im Quellcode was gefunden
{"aqi":"66","idx":2844,"vtime":1541581200,"id":"Germany\/Hesse\/Limburg","name":"Limburg","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/limburg\/m\/","geo":["50.38321918","8.06099637"]},
{"aqi":"66","idx":2857,"vtime":1541581200,"id":"Germany\/Hesse\/Limburg-Schiede","name":"Limburg-Schiede","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/limburg-schiede\/m\/","geo":["50.386426","8.059909"]},
{"aqi":"65","idx":2841,"vtime":1541577600,"id":"Germany\/Hesse\/Hanau","name":"Hanau","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/hanau\/m\/","geo":["50.136111111111","8.9191666666667"]},
{"aqi":"66","idx":2864,"vtime":1541577600,"id":"Germany\/Hesse\/Wetzlar","name":"Wetzlar","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/wetzlar\/m\/","geo":["50.551944444444","8.5013888888889"]},
{"aqi":"71","idx":2837,"vtime":1541581200,"id":"Germany\/Hesse\/Darmstadt","name":"Darmstadt","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/darmstadt\/m\/","geo":["49.873055555556","8.6652777777778"]}]}); }
{"name":{"en":"Kleiner Feldberg","zh-CN":"Kleiner Feldberg","ja":"Kleiner Feldberg","es":"Kleiner Feldberg","ko":"Kleiner Feldberg","ru":"Kleiner Feldberg","zh-TW":"Kleiner Feldberg","fr":"Kleiner Feldberg","pl":"Kleiner Feldberg","de":"Kleiner Feldberg","pt":"Kleiner Feldberg","vi":"Kleiner Feldberg"},"title":{"en":"Kleiner Feldberg AQI","zh-CN":"Kleiner Feldberg AQI","ja":"Kleiner Feldberg AQI","es":"ICA de Kleiner Feldberg","ko":"Kleiner Feldberg AQI","ru":"Kleiner Feldberg \u0410\u041a\u0418","zh-TW":"Kleiner Feldberg AQI","fr":"IQA de Kleiner Feldberg","pl":"Kleiner Feldberg AQI","de":"Kleiner Feldberg AQI","pt":"IQA de Kleiner Feldberg","vi":"Kleiner Feldberg AQI"}},"nearest":
[{"aqi":"67","idx":2856,"vtime":1541581200,"id":"Germany\/Hesse\/KleinerFeldberg","name":"Kleiner Feldberg","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/kleiner-feldberg\/m\/","geo":["50.224722222222","8.4411111111111"]},
{"aqi":"62","idx":2838,"vtime":1541577600,"id":"Germany\/Hesse\/Frankfurt-H%C3%B6chst","name":"Frankfurt-H\u00f6chst","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/frankfurt-hochst\/m\/","geo":["50.101666666667","8.5425"]},
{"aqi":"67","idx":2839,"vtime":1541581200,"id":"Germany\/Hesse\/Frankfurt-Schwanheim","name":"Frankfurt-Schwanheim","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/frankfurt-schwanheim\/m\/","geo":["50.075464","8.576305"]},
{"aqi":"64","idx":2851,"vtime":1541581200,"id":"Germany\/Hesse\/Frankfurt\/FriedbergerLandstr.","name":"Friedberger Landstr., Frankfurt","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/frankfurt\/friedberger-landstr.\/m\/","geo":
["50.125555555556","8.6927777777778"]},{"aqi":"66","idx":2847,"vtime":1541581200,"id":"Germany\/Hesse\/Wiesbaden-Ringkirche","name":"Wiesbaden-Ringkirche","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/wiesbaden-ringkirche\/m\/","geo":["50.078333333333","8.2313888888889"]},
{"aqi":"67","idx":2978,"vtime":1541584800,"id":"Germany\/Hesse\/Wiesbaden-SchiersteinerStr.","name":"Wiesbaden-Schiersteiner
Str.","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/wiesbaden-schiersteiner-str.\/m\/","geo":["50.07211952","8.22886516"]},{"aqi":"79","idx":2848,"vtime":1541581200,"id":"Germany\/Hesse\/Wiesbaden-S%C3%BCd","name":"Wiesbaden-S\u00fcd","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/wiesbaden-sud\/m\/","geo":["50.051666666667","8.2458333333333"]},
{"aqi":"71","idx":2846,"vtime":1541581200,"id":"Germany\/Hesse\/Raunheim","name":"Raunheim","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/raunheim\/m\/","geo":["50.010833333333","8.4525"]},
{"aqi":"64","idx":2852,"vtime":1541581200,"id":"Germany\/Hesse\/Frankfurt-Ost","name":"Frankfurt-Ost","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/frankfurt-ost\/m\/","geo":["50.126666666667","8.7483333333333"]},
{"aqi":"72","idx":2843,"vtime":1541584800,"id":"Germany\/RheinlandPfalz\/Mainz-Parcusstra%C3%9Fe","name":"Mainz-Parcusstra\u00dfe","curl":"http:\/\/aqicn.org\/city\/germany\/rheinlandpfalz\/mainz-parcusstrasse\/m\/","geo":
["50.001032","8.261091"]},{"aqi":"65","idx":2861,"vtime":1541577600,"id":"Germany\/Hesse\/Offenbach-UntereGrenzstra%C3%9Fe","name":"Offenbach-Untere Grenzstra\u00dfe","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/offenbach-untere-grenzstrasse\/m\/","geo":["50.10148617","8.78484098"]},
{"aqi":"74","idx":2829,"vtime":1541581200,"id":"Germany\/RheinlandPfalz\/Mainz-Mombach","name":"Mainz-Mombach","curl":"http:\/\/aqicn.org\/city\/germany\/rheinlandpfalz\/mainz-mombach\/m\/","geo":["50.016667","8.216667"]},
{"aqi":"91","idx":2844,"vtime":1541584800,"id":"Germany\/RheinlandPfalz\/Mainz-Zitadelle","name":"Mainz-Zitadelle","curl":"http:\/\/aqicn.org\/city\/germany\/rheinlandpfalz\/mainz-zitadelle\/m\/","geo":["49.9937671","8.2736363"]},
{"aqi":"66","idx":2844,"vtime":1541581200,"id":"Germany\/Hesse\/Limburg","name":"Limburg","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/limburg\/m\/","geo":["50.38321918","8.06099637"]},
{"aqi":"66","idx":2857,"vtime":1541581200,"id":"Germany\/Hesse\/Limburg-Schiede","name":"Limburg-Schiede","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/limburg-schiede\/m\/","geo":["50.386426","8.059909"]},
{"aqi":"65","idx":2841,"vtime":1541577600,"id":"Germany\/Hesse\/Hanau","name":"Hanau","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/hanau\/m\/","geo":["50.136111111111","8.9191666666667"]},
{"aqi":"66","idx":2864,"vtime":1541577600,"id":"Germany\/Hesse\/Wetzlar","name":"Wetzlar","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/wetzlar\/m\/","geo":["50.551944444444","8.5013888888889"]},
{"aqi":"71","idx":2837,"vtime":1541581200,"id":"Germany\/Hesse\/Darmstadt","name":"Darmstadt","curl":"http:\/\/aqicn.org\/city\/germany\/hesse\/darmstadt\/m\/","geo":["49.873055555556","8.6652777777778"]}]})
idx wäre die korrekte id und Du musst nur suchen nach idx":28. Also hier in meinen Text suchen, dann steht dahinter immer genau der Ortsname. Ist leider alles was ich Dir anbieten kann.
Ach das ist doch cool, danke Dir! Die Werte stimmen allerdings nicht mit der Webseite überein (bsp Kleiner Feldberg, 2856), aber ist auch ne Stunde aktueller. Ich denke die Api ist schneller oder so... Werde es mal beobachten.
Hmm, stimmt leider gar nicht überein, müssen andere Indizes sein...
Komisch. Stimmt gar nichts?
Nope, nicht mal annähernd, also zumindest der Hauptwert. Die anderen habe ich gar nicht geprüft... Weder mein 5 Stelliger Index noch der 4 stellige aus dem Quellcode scheinen zu passen.
Also wegen mir mach Dich da nicht verrückt, im Grunde ist der "kleine Feldberg" als deutlich nächste Messstation auch 15 km von mir weg und ich wohne mitten in der Pampa, bei mir is immer gute Luft ;D So richtig aussagekräftig wäre das also sowieso nicht für mich.
Allerdings vermute ich mal, dass Du das Problem auch für andere gelöst haben möchtest ;)
Naja, lösen kann ich da ehrlich gesagt gar nichts. Ich kann nur mit dem arbeiten was man mir gibt. Wenn API der Seite mir falsche Daten liefert kann ich da leider gar nichts machen.
Grüße