NEWS
Feinstaubsensor
-
Das ist ja fein.
Der Adapter funktioniert sehr gut.
Danke für den Hinweis.
-
Ich habe einen Schönheitsfehler entdeckt. Wenn eine Station xxxx auf luftdaten.info plötzlich ihren Dienst einstellt (bei mir ist sie einfach von der Übersicht verschwunden), ist das JSON-File von api.luftdaten.info/v1/sensor/xxxx/ leer.
Das führt dann zu einem Fehler im Adapter:
2018-06-26 21:45:00.613 - info: luftdaten.0 sensor type: remote 2018-06-26 21:45:00.613 - info: luftdaten.0 sensor identifier: 2628 2018-06-26 21:45:00.613 - info: luftdaten.0 remote request 2018-06-26 21:45:03.183 - error: luftdaten.0 uncaught exception: Cannot read property 'sensordatavalues' of undefined 2018-06-26 21:45:03.183 - error: luftdaten.0 TypeError: Cannot read property 'sensordatavalues' of undefined at Request._callback (C:\dev\iobroker\node_modules\iobroker.luftdaten\main.js:69:48) at Request.self.callback (C:\dev\iobroker\node_modules\iobroker.luftdaten\node_modules\request\request.js:185:22) at emitTwo (events.js:126:13) at Request.emit (events.js:214:7) at Request. (C:\dev\iobroker\node_modules\iobroker.luftdaten\node_modules\request\request.js:1157:10) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at IncomingMessage. (C:\dev\iobroker\node_modules\iobroker.luftdaten\node_modules\request\request.js:1079:12) at Object.onceWrapper (events.js:313:30) at emitNone (events.js:111:20) 2018-06-26 21:45:03.693 - info: luftdaten.0 terminating
Ich schlage deshalb vorsichtigerweise folgende Ergänzung in der main.js ab Zeile 56 vor:
} else if (sensorType == "remote") { adapter.log.info('remote request'); var url = "http://api.luftdaten.info/v1/sensor/" + sensorIdentifier + "/"; request( { url: url, json: true }, function (error, response, content) { adapter.log.debug('Request done'); if (!error && response.statusCode == 200) { if (content.length > 0) { for (var key in content[0].sensordatavalues) { [...] } } else { adapter.log.warn("No JSON-data in response from '" + url + "'. Please check remote sensor identifier."); } } else { adapter.log.error(error); } } ); }
Das gleiche kann man zur Sicherheit auch in die lokale Abfrage einbauen.
-
Muß das auf github geändert werden, oder kann man das auch selber? Wenn ja, wo finde ich die Datei auf meinem pi3?
Grüße und Danke
-
Wenn bei Dir alles geht, brauchst Du erst mal nichts zu machen. Ist mehr als Anregung für den Author des Adapters gemeint, um diesen Sonderfall abzufangen. Und der macht das dann auf Github. Ich habe deshalb dort einen Issue erstellt. Als der Fehler bei mir auftrat, hab ich halt mal nach der Ursache gesucht.
Wenn Du aber nicht warten kannst, findest Du die Datei unter
<iobroker-homeverzeichnnis auf/deinem/pi3="">/node_modules/iobroker.luftdaten/main.js</iobroker-homeverzeichnnis>
Viele Grüße, Thomas
-
Habe heute ein Update vom Modul gemacht, sollte jetzt weniger loggen und den Fehler nicht mehr ausgeben.
-
Danke für den Adapter.
Das geht jetzt natürlich einfacher als mit Skript.
Eine Frage / Anregung: Kann der Adapter direkt mehrere Stationen abfragen? Oder muss ich dafür jeweils eine neue Instanz anlegen?
-
Es gibt übrigens auch einen Adapter, der sowohl einen lokalen Sensor oder auch von luftdaten.info einbinden kann.
Leider ist er noch nicht offiziell, ist aber über github verfügbar und funktioniert problemlos.
https://github.com/klein0r/ioBroker.luftdaten
Wen es interessiert:
Der Autor hat den Adapter während eines Youtube-iobroker-Tutorials als Beispiel zur Adapter-Programmierung erstellt.
Ich habe den Adapter bei mir installiert. Leider produziert der sehr, sehr viele Log-Einträge. Gibt es eine Möglichkeit das zu unterbinden?
Grüße und Danke
Manfred
-
Eine Frage / Anregung: Kann der Adapter direkt mehrere Stationen abfragen? Oder muss ich dafür jeweils eine neue Instanz anlegen? `
Würde mich auch interessieren. Muss ich mehrere Instanzen machen für mehrere Stationen ?
Ich bräuchte 5 plus einen lokalen.
Kurze Info wäre gut.
Anmerkung:
Im Skript kommen noch ein paar mehr Daten, die der Adapter nicht liefert. Ist das so gewollt ?
ZB.: timestamp, sensor-id, sensor-type usw.
-
Es gibt übrigens auch einen Adapter, der sowohl einen lokalen Sensor oder auch von luftdaten.info einbinden kann.
Leider ist er noch nicht offiziell, ist aber über github verfügbar und funktioniert problemlos.
Hallo,
wenn man zwei oder mehr Sesnoren-IDs hat muss man dann mit mehreren Instanzen des Adapters arbeiten ?
-
Könnt ihr mal zeigen wie ihr das in der VIS darstellt und evtl. eure Widgets zur Verfügung stellen?
-
Hallo,
hat den Sensor auch wer direkt per usb am pi am laufen?