Hallo @M-P-L
verantwortlich ist der Konfigurationsparameter "SecondsMeasurementDelay". Dieser sitzt im Standard auf 120, d.h. alle 2 Minuten sendet der air-Q Messwerte an die Cloud und an einen MQTT-Server.
Allerdings sollte der Wert nicht kleiner 60 sein. Also unter 1 Minute wirst Du nicht kommen können.
Setzen kannst Du diesen Parameter mit https://forum.air-q.com/topic/87/anwendung-für-usercalibration-und-konfiguration-des-air-q-http-post und der Methode Config.
Bestbewertete Beiträge von Micha
-
RE: iobroker Script
-
RE: HTTP Post configuration
See https://docs.air-q.com/ how to configure your air-Q. You need the serial number of your air-Q to access the document.
For example:
{
"httpPOST": {
"URL": "https://your.server.url",
"Headers": {"Content-Type": "application/json"}
}
}You can send the config to the air-Q for example by using my tool https://forum.air-q.com/topic/87/anwendung-für-usercalibration-und-konfiguration-des-air-q-http-post?page=1.
How often the air-Q sends values to your server, you can configure with
{
"SecondsMeasurementDelay": 120
}In this case every 120 sec. the air-Q will send all values to your server. This is the default.
An example what you can do on server side you will find in https://forum.air-q.com/topic/93/eigene-air-q-datenbank.
This application put all measured values from the air-Q into a MySql-DB. -
RE: Air Q an unterschiedlichen Standorten - WLan
Hallo @karen,
da haben wir wohl beide die Doku nicht zu Ende gelesen.Weiter unten steht noch, wie ein oder mehrere WLANs über die userconfig.json auf der SD-Karte konfiguriert werden können. Leider ist dort auch kein Beispiel für mehrere WLANs angegeben.
Aus aktuellem Anlass - ich ziehe gerade mit meinem Büro um in eine neue Netzwerk-Infrastruktur - habe ich das mal ausprobiert.
Auf der SD-Karte habe ich in der userconfig.json eingetragen:
{
"WLANssid": {
"WLAN1-SSID": "WLAN1-Key",
"WLAN2-SSID": "WLAN2-Key",
"WLAN3-SSID": "WLAN3-Key"
}
}Klar: "WLAN<n>-SSID" und "WLAN<n>-Key" sind hier nur Platzhalter für die eigenen WLAN-Konfigurationen.
Und siehe da es funktioniert. Der air-Q verbindet sich jeweils mit dem WLAN-Router, der am aufgestelltem Ort am stärksten sendet, also i.d.R. der am nächsten steht.
Also Lob an das air-Q-Team, das ist echt spitze und spart mir aktuell beim Umzug viel Arbeit.Wer das selber ausprobieren oder nutzen will:
Die userconfig.json steht auf der SD-Karte im Root-Verzeichnis.Ich habe diese Datei mit einem Windows-Text-Editor (Notepad++) erstellt mit Ansi-Kodierung und als Zeilenende habe ich <cr><lf> genutzt, das scheint inzwischen auch zu funktionieren; wenn nicht, dann wie in der Doku angegeben das Zeilenende nur mit <lf> nutzen.
Um auf die ursprüngliche Frage von @eggaz zurück zu kommen:
- Wechselt man häufiger zwischen bekannten WLANs, dann würde ich wie oben beschrieben die WLANs zuvor in der userconfig.json eintragen.
- Wenn man in ein zuvor unbekanntes WLAN wechselt (also z.B. im Hotel im Urlaub), dann wie @Jeremy-air-Q vorgehen. Ergänzend zu seinen Aussagen: es dauert recht lange bis der air-Q seinen Hotspot aufmacht - also etwas Geduld.
-
RE: Hausautomation: fhem
Hier Beschreibung und Code, um einen air-Q in die Hausautomation fhem einzubinden.
Voraussetzung:
Ein Web-Server mit php, z.B. Raspberry PI mit Apache und php.
Für php muss openssl installiert sein.
Es ist möglich und sinnvoll, wenn das alles auf dem fhem Server selbst installiert wird.Installation:
Trage im unten stehendem php-Script das Passwort und die IP-Adresse des air-Q ein.
Kopiere dieses php-Script auf den Web-Server.
Z.B. nach /var/www/html/airq/get.phpAufruf erfolgt dann über
http://<Server-IP>/airq/get.php?cmd={ping | config | data | log | dirbuff | file&request=<Year/Month/Day/Filename>}
Achtung: mit https bekommt man Probleme, da man von einer https-Seite keine Daten über http holen kann und der air-Q kein https versteht.
Einbindung in fhem:
define airq_01_http HTTPMOD http://127.0.0.1/airq/get.php?cmd=data 300 attr airq_01_http enforceGoodReadingNames 1 attr airq_01_http extractAllJSON 2
Erklärung:
...HTTPMOD http://127.0.0.1/airq/get.php?cmd=data...: Die IP-Adresse muss angepasst werden, falls das php-Script nicht auf dem fhem-Server instaliert ist.
... 300 ...: Hier wird ein Scan-Intervall von 300 vorgegeben, d.h. alle 300 sek. = 5 Minuten werden Daten abegfragt
attr airq_01_http enforceGoodReadingNames 1: Um "gute" Namen für die Readings zu bekommen.
attr airq_01_http extractAllJSON 2: Wenn fhem das erste Mal Daten empfängt werden gemäß der erhaltenen JSON-Attribute gleich die Readings automatisch erstellt.Weitere Möglichkeiten mit dem Script:
Ist das Script so konfiguriert, dass man es auch vom lokalen Netzwerk aus aufrufen kannheader('Access-Control-Allow-Origin: *');
dann kann man folgende Kommandos auch direkt in einem Browser absetzen, bzw. die Daten in eigene HTML-Seiten einbinden.
- http://<Server-IP>/airq/get.php?cmd=ping
Kurze Information über den air-Q als JSON. - http://<Server-IP>/airq/get.php?cmd=config
Die komplette Konfiguration des air-Q als JSON. - http://<Server-IP>/airq/get.php?cmd=data
Aktuelle Sensordaten als JSON. Dies wird in der fhem Anbindung genutzt. - http://<Server-IP>/airq/get.php?cmd=log
Die letzten Log-Einträge im air-Q. Sehr praktisch, wenn mal etwas schief läuft auf dem air-Q. - http://<Server-IP>/airq/get.php?cmd=dirbuff
Liest das Datei-Verzeichnis mit den historischen Messdaten auf dem air-Q aus und gibt JSON zurück. - http://<Server-IP>/airq/get.php?cmd=file&request=<Year/Month/Day/Filename>
Liest historische Messdaten vom air-Q. Die Dateinamen bekommt man über .../dirbuff siehe oben.
Und hier das Script:
<?php $password = "Hier das air-Q Passwort eintragen"; // config: set your air-Q password here $airq = "http://<Hier die IP-Adresse des air-Q eintragen>"; // config: use your own ip-adress // falls die Seite im lokalen Netz auch außerhalb des Servers aufgerufen werden muss, braucht man Access-Control-Allow-Origin header('Access-Control-Allow-Origin: *'); function decrypt($msgb64,$password) { $airqpass = $password; if (strlen($airqpass) < 32) { for ($i = strlen($airqpass); $i < 32; $i++) { $airqpass = $airqpass . '0'; } } else { if (strlen($airqpass) > 32) { $airqpass = substr($airqpass,0,32); } } $key = utf8_encode ($airqpass); // $cyphertext = base64_decode ($msgb64); // But with verly long messages there could be some problems in base64_decode $decoded = ""; for ($i=0; $i < ceil(strlen($msgb64)/256); $i++) $decoded = $decoded . base64_decode(substr($msgb64,$i*256,256)); $cyphertext = $decoded; $iv = substr($cyphertext,0,16); $cyphertext = substr($cyphertext,16,strlen($cyphertext)); // With php version <= 7.1 you can use the following, but this is deleted in version 7.2 and above // $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $cyphertext, MCRYPT_MODE_CBC, $iv); $decrypted = openssl_decrypt($cyphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); return utf8_encode($decrypted); } function encrypt($msgb64,$password) { $airqpass = $password; if (strlen($airqpass) < 32) { for ($i = strlen($airqpass); $i < 32; $i++) { $airqpass = $airqpass . '0'; } } else { if (strlen($airqpass) > 32) { $airqpass = substr($airqpass,0,32); } } $key = utf8_encode ($airqpass); $iv = substr(openssl_random_pseudo_bytes(32),0,16); $encrypted = openssl_encrypt($msgb64, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($iv . $encrypted); } $_GET_lower = array_change_key_case($_GET, CASE_LOWER); $_POST_lower = array_change_key_case($_POST, CASE_LOWER); $cmd = ''; if (array_key_exists('cmd', $_GET_lower)) {$cmd = $_GET_lower['cmd'];} if (array_key_exists('cmd', $_POST_lower)) {$cmd = $_POST_lower['cmd'];} $request = ''; if (array_key_exists('request', $_GET_lower)) {$request = $_GET_lower['request'];} if (array_key_exists('request', $_POST_lower)) {$request = $_POST_lower['request'];} // Possible comands: ping, config, data, log, dirbuff, file&request=.. if ($cmd == '') { header('Content-Type: text/html'); echo 'Usage: ../get.php?cmd=ping | config | data | log | dirbuff | file&request=<Year/Month/Day/Filename>'; } else { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = ""; $url = $airq . '/' . $cmd; if ($cmd == 'file') { $url = $url . '?request=' . encrypt($request,$password); } curl_setopt($ch, CURLOPT_URL, $url); $output = curl_exec($ch); if ($cmd == 'dirbuff') { $output = decrypt($output,$password); } else { if ($cmd == 'file') { $output = decrypt($output,$password); } else { $json = json_decode($output, true); $output = decrypt($json["content"],$password); } } if ($cmd == 'log') { header('Content-Type: text/html'); echo str_replace("\\\"","\"",str_replace("\\n\", \"","",substr($output,2,strlen($output)-6))); // delete [], /n } else { header('Content-Type: application/json'); echo $output; } } ?>
- http://<Server-IP>/airq/get.php?cmd=ping
-
WLAN-Stärke am air-Q messen
Die WLAN-Stärke der sichtbaren APs am air-Q messen und über den Miniwebserver sichtbar machen wäre eine tolle und eigentlich recht einfache Erweiterung für den air-Q.
-
RE: Firmware-Updates (aktuell)
Gratulation!
- Mit 1.63 läuft jetzt der air-Q seit 14 Tagen bei mir mit MQTT ohne Probleme.
- Mit 1.64 kann jetzt auch das MQTT-Retain-Flag gesetzt werden, was für mich recht wichtig ist.
- MQTT kann jetzt auch über die Web-Oberfläche konfiguriert werden. Das doch lästige Entfernen der SD-Karte entfällt dadurch. Gerade am Anfang bis die Konfiguration mal dann steht ist das schon sehr hilfreich.
- Die neuen Raumtypen classroom und medical sind echt gut zu gebrauchen.
- Die dazu implementierten LED-Themen machen neugierig. Auf weitere LED-Themen freue ich mich schon.
-
Genauigkeit der Messwerte
Wie genau sind eigentlich die Messwerte der einzelnen Sensoren?
Wie werden die Sensoren bei Corant kalibriert?Selber kann ich das nur sehr eingeschränkt überprüfen, aber für ein paar wenige Sensoren ist es mir bedingt möglich.
Ich habe neben den Air-Q 4 weitere digitale Temperatur-Sensoren und einen klassisch analogen. Der Maximalabstand ist kleiner 70 cm.
Meine eigenen Sensoren zeigen mehr oder weniger konstant eine Abweichung von maximal +/- 0,5 ° Celsius an.
Der Air-Q zeigt dagegen eine um nahezu konstant 2,4 ° niedrigere Temperatur an.Drei meiner digitalen Sensoren (DHT22) messen auch die Luftfeuchte. Die gemessenen Werte varieren hier zwischen +/- 2 % Luftfeuchte.
Der Air-Q zeigt hingegen immer eine höhere Luftfeuchte an. Je nach Temperatur sind hier Abweichungen zwischen 3 % und 8 % Luftfeuchte.Feinstaub (pm 2.5 und pm10):
Ich habe auch einen Feinstaubsensor (SDS011).
Vergleiche ich jetzt meinen Sensor mit dem Air-Q dann liegen die Werte sehr häufig sehr nahe beieinander.
Aber es erscheinen deutlich mehr Peeks beim SDS011.
Sowohl beim Air-Q als auch beim SDS011 protokolliere ich alle 5 Minuten die Messwerte. Hier könnte also generell ein Messproblem auf meiner Seite vorliegen?Schwefeldioxid:
Ich habe keinen anderen Sensor, kann das also nicht überprüfen.
Aber ich bekomme nahezu konstant 208.70 +/- 0.1 µg/m³ angezeigt.
Dieser Wert erscheint mir einfach viel zu hoch! -
Hausautomation: fhem
Den Air-Q habe ich in die Hausautomation fhem eingebunden. 3 alternative Lösungen (teils mit Einschränkungen) existieren:
- MQTT: Air-Q sendet die Daten zyklisch an den MQTT-Broker (mosquitto). fhem erhält vom Broker die Daten im JSON-Format. Problem hier: Air-Q hat häufiger Probleme beim Senden der Daten, sollte aber wohl irgendwann von Corant wohl behoben sein. Aber prinzipiell funktioniert es, es fehlen nur ab und zu die Daten.
- Http post: Der Air-Q sendet via http-post die Daten an den Server. Problem hier: Man kann zwar http-post im Air-Q aktivieren, aber Air-Q hat da noch einen Bug und sendet nie etwas, sollte aber wohl irgendwann von Corant wohl behoben sein. Dann werde ich hier auch noch eine alternative Lösung implementieren.
- via fhem httpmod: Das funktioniert tadellos. fhem holt zyklisch die Daten und decodiert den JSON-String in die einzelnen Readings.
Aber fhem kann nicht die Daten direkt vom Air-Q holen, da diese codiert sind. Ich habe dazu eine kleine php-Seite dazwischen geschaltet, die die Decodierung übernimmt und den so erhalten JSON-String dann liefert.
Bei Interesse einfach melden.
-
RE: Daten von Air Q auf Laptop übertragen
Aktuell arbeite ich an einer Möglichkeit, vom airQ die historischen Daten auf einem PC zu laden und als CSV zu speichern.
Einzelne Dateien funktionieren bereits, jetzt mache ich noch den Download aller Daten eines Tages.
Realisiert habe ich das in html/JavaScript. Das hat den Vorteil, dass man nichts weiteres installieren muss. Man muss nur ein paar Dateien kopieren. Es sollte auch weitestgehend Plattform unabhängig sein. Und es läuft auch ohne Server.
Ich schätze nächste Woche ist die Beta-Version fertig. -
RE: Firmware-Updates (aktuell)
Mit diesem Update fiel mir auf, dass meine Applikation "Eigene air-Q Datenbank" nicht mehr funktioniert. Ursache ist, dass bei sound_max jetzt auch eine errorrate geliefert wird.
Ich habe diese Applikation entsprechend angepasst. Ihr findet sie unter https://forum.air-q.com/topic/93/eigene-air-q-datenbank/7?_=1646817559055 sobald @Mario-air-Q die zip-Datei zum Download anbietet.
Neuster Beitrag von Micha
-
RE: VOC - Sensor erreicht Messgrenze
Kellerräume haben häufig eine höhere Belastung durch schadhafte Gase, da diese meist schwerer als Luft sind. Aber diese Extremwert vor allem die abrupten Ausschläge kann man damit kaum erklären.
Keller sind ja auch häufig etwas feuchter. Kann da eventuell auch Schimmel sein? Im Zimmer selbst oder auch in benachbarten Zimmer.
Interessant wäre noch zu wissen, wie geheizt wird: Öl, Gas, Holz. Kann von da etwas kommen?
Dann würde ich Vergleichsmessungen im EG oder höher machen, um den "Kellereffekt" etwas zu quantifizieren.
-
RE: Kohlenmonoxid CO
Aus Wikipedia entnehme ich:
Durchschnitt Nordhalbkugel: 0,14 ppm
Städtische Umgebung: 100-200 ppm (vor allem durch Autoabgase)
Wohngebäude: 0,5 - 5 ppm
Wohngebäude mit Gasbrenner (Herd, Etagenheizung o.ä.): bis zu 15 ppm
Ich messe bei mir: 0,9 -1,3 ppm (Stadtrandlage) in sehr seltenen Fällen bis knapp 3 ppm (mehrere Personen im Raum und schlecht gelüftet)Bei der Angabe von Grenzwerten bezieht man sich nicht auf temporäre Maximalwerte sondern meist auf 8h-Mittelwerte.
Laut Umweltbundesamt:
Am 1. Januar 2005 ist zum Schutz von Mensch und Umwelt der Grenzwert für Kohlenmonoxid in Kraft getreten. Danach darf der höchste 8-Stunden-Mittelwert eines Tages 10 mg/m3 nicht überschreiten.
Das entspricht 8 ppm.Air Quality Index für den 8h-Mittelwert:
0 - 4,4 ppm -> Gut
4,5 - 9,4 ppm -> moderat
9,5 - 12,4 ppm -> ungesund für sensible Menschen
12,5 - 15,4 ppm -> ungesund
15,5 - 30,4 ppm -> sehr ungesund
ab 30,5 ppm -> gefährlichDer Air Quality Index stammt aus den USA. Amerikaner scheinen wohl robuster zu sein ;-)
-
RE: Nebeneinanderstehende Geräte zeigen teilweise sehr unterschiedliche Werte
Meine Vermutung ist zum einen "unterschiedliche Kalibrierungswerte" und dann geht wahrscheinlich die Temperatur auch rechnerisch in die Berechnung anderer Werte (-> air-Q: stimmt das?) ein.
Also ich würde zuerst die Temperaturen manuell kalibrieren. Und dann die Grafiken noch einmal genau prüfen und erst danach gegebenenfalls weitere Sensoren kalibrieren. -
RE: Cloud / Hotspot keine Verbindung
WLAN-Passwort und Kennwort der Fritzbox sind 2 verschiedene Dinge.
Im AirQ muss Du das WLAN-Passwort verwenden!
Das Kennwort der Fritzbox brauchst Du, wenn Du über einen Browser (auf PC oder Handy bei bereits bestehender Verbindung) Deine Fritzbox abfragen oder konfigurieren willst. -
RE: Cloud / Hotspot keine Verbindung
Schaue im Router nach, ob der AirQ dort unter den aktiven WLAN-Verbindungen gelistet wird.
Eventuell ist das WLAN-Signal des Routers beim Standort des AirQ zu schwach.
Lösung wäre dann alternativ:
Standortwechsel AirQ,
Standortwechsel Router,
oder falls beides nicht geht: zusätzlichen WLAN-Repeater einsetzen. -
RE: Unerklärliche Sprünge in PM Messwerten
Ich gehe davon aus, dass diese Veränderungen von Außen kommen. Ein Haus ist nie dicht, selbst wenn Fenster geschlossen und Rollladen unten sind. Zumindest ist das bei mir so. Ich erkenne an den PM-Werten und NO2-Werten, wenn meine Nachbarn ihre Holzöfen befeuern. Selbst die ungefähre Windrichtung und -stärke kann ich aus diesen Sprüngen ableiten, da die meisten Holzöfen südwestlich von unserem Haus liegen.
Der Peak bei Dir am 1.Januar kann sehr gut am Silvesterfeuerwerk liegen. Auch das kann ich bei mir deutlich erkennen, obwohl dieses Jahr starker Wind und anschließender Regen den Peak deutlich abgeflacht haben, im Vergleich zu den letzten Jahren.
Also wie sieht es bei Dir aus:
Nachbarn mit Holzöfen,
Windrichtung,
Eventuell spielt am Meer auch Ebbe, Flut, Wellengang und Windrichtung eine Rolle??
Eine sehr große Rolle spielt bei mir auch die Wetterlage, insbesondere Inversionswetterlagen, Regen und Sturm. Allerdings sind das keine solche Sprünge sondern eher über einen längeren Zeitraum. -
RE: Sprunghafter Anstieg der PM Werte
Also bei mir in Stadtnähe steigen nahezu immer die PM.Werte sehr stark an, wenn ich ein Fenster im air-Q-Raum oder im Zimmer gegenüber bei offener Tür öffne.
In günstigen Fällen steigt der PM-10-Wert um 15 µg/cm³, aber auch Werte zwischen 50 - 100 µg/cm³ kommen immer mal wieder vor. -
RE: Firmware-Updates (aktuell)
In der technischen Dokumentation zur neuen Firmware 1.83.0 habe ich eine einfache Lösung gefunden.
Über die Konfiguration von "deactivated_sensors" kann man das Übertragen von "uptime" wieder aktivieren.
Also z.B.:{ "deactivated_sensors":["measuretime","pm_cnts","virus","pressure_rel"] }
-
RE: Firmware-Updates (aktuell)
Hallo @Daniel-air-Q,
im Releaselog steht:
"Änderung: Counts der unterschiedlichen Partikelgrößen, Messzeit und Laufzeit werden standardmäßig nicht mehr ausgegeben, um Dateigröße zu verringern und Downloadgeschwindigkeit zu erhöhen."Damit fehlen also:
measuretime
cnt0_3
cnt0_5
cnt1
cnt2_5
cnt5
cnt10
uptimeFast alles kann ich verschmerzen, aber wieso fehlt "uptime".
Wie kann ich jetzt feststellen, dass der air-Q sich neu gestartet hat?Ich habe unregelmäßig 1 - 2 mal pro Woche einen Restart des air-Q, meist "System restarted. Cause: Reboot requested by software: 4 seconds since last measurement; Boot counters: 9/1/0/228/77". Das möchte ich eigentlich genau beobachten!
BTW: Wenn sich durch eine neue Version das API ändert, sollte das meiner Meinung etwas deutlicher hervorgehoben werden. Ich habe eine ganze Reihe von Anwendungen, die auf dem API aufsetzen. Und ich würde gerne vor dem Installieren der neuen Version wissen, was alles da an Änderungen auf mich zu kommt; insbesondere wenn die Änderungen nicht kompatibel sind.
-
RE: [gelöst] air-Q started regelmäßig neu
Da liege ich mit ca. 2 Neustarts pro Woche deutlich höher. Da ich in der Cloud dadurch keinerlei Messwerte verliere und in meiner eigenen Datenbank jeweils höchstens 1 Wert verliere bei einem Intervall von 5 Minuten, stört mich das nicht wirklich.