[46_Aqicn] neues Modul für Luftqualität einer Stadt

Begonnen von CoolTux, 19 Oktober 2017, 14:02:53

Vorheriges Thema - Nächstes Thema

CoolTux

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

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Mitch

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>
FHEM im Proxmox Container

CoolTux

 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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Mitch

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.
FHEM im Proxmox Container

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

maddhin

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/ 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), 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 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!

maddhin

#6
Ich habe eins der AQIcn Widgets (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/), 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.


CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Dasmit den Städten schaue ich mir an. Gibt wohl noch einiges zu tun  ;D



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

maddhin

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...

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

maddhin

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.

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ach so. Fast vergessen. Welche Readings fehlen denn. Hatte versucht nur die zu nehmen welchen in der Tat wichtig und Wertvoll sind.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Habe die Debugausgaben mal auskommentiert und eine neue Version im Git geladen.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net