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-Werte
Es gibt eine ganze Reihe von Zimmerpflanzen, um gezielt Schadstoffe aus der Luft heraus zu filtern. Darunter gehören z.B. Grünlilie, Drachenbaum, Efeutute, Fensterblatt, Bogenhanf, Gemeiner Efeu, Kentia-Palme, Einblatt, Korbmarante, Gummibaum, Birkenfeige, Dieffenbachie, Flamingoblume, Chrysantheme, Farne, Orchideen, Sukkulenten z.B. Aloe Vera, u.v.a.m.
ABER informiere Dich vorher. Einige dieser Pflanzen (z.B. Chrysantheme) sollte man nicht essen, da sie giftig sind. Also bei kleinen Kindern und Haustieren diese besser nicht nehmen.
Diese Pflanzen filtern insbesondere auch einige der schädlichen VOCs, wie z.B. Formaldehyd, Trichlorethen , Benzol, Xylol, Toluol, Ammoniak, u.v.a.m.
Der Gemeine Efeu soll laut einer NASA-Studie z.B. 94 % aller Luftschadstoffe aus der Luft filtern. Sogar Schimmelsporen soll diese Pflanze innerhalb von 8 h zu 80% herausfiltern.
Zudem regulieren diese Pflanzen die Luftfeuchtigkeit und reichern die Luft mit Sauerstoff an. Und das Grün in der Wohnung sorgt für sich alleine schon für ein Wohlgefühl.
Wie Du schreibst liegen die von der Baubiologin gemessenen Werte bereits unter den Grenzwerten. Ich bin mir recht sicher, dass Du mit diesen Pflanzen die Werte noch einmal deutlich reduzierst. Bevor ich über Neukauf und Umzug nachdenke, würde ich zuerst mal dieses probieren. -
RE: Voc-Werte
Die vom airQ gemessenen Werte VOC und TVOC für sich alleine genommen eignen sich meiner Meinung nach nicht, um Aussagen zur Luftqualität zu machen.
Rasierwasser, Parfüm, Desinfektion von Händen usw. lassen den VOC-Wert beim airQ nach oben schnellen. Auch gibt es eine Vielzahl von stark beworbenen Raumdüften, die die Luft erfrischen sollen. Auch das sind alles VOCs. Ich habe schon festgestellt, dass ich im meinem Büro im 4.Stock erhöhte VOC-Werte bekam, wenn bei offenem Fenster unter auf der Straße eine stark parfümierte Frau vorbei ging.
VOC ist ein Sammelbegriff. Darunter befinden sich sehr schädliche Stoffe wie z.B. Formaldehyd aber z.B. auch Alkohol. Ob tatsächlich sehr schädliche VOC-Stoffe in der Luft sind, sind sehr aufwendige und sehr teure Analysen notwendig. Ich selbst habe das Problem beim 3D-Drucken. Die Druckplatte muss vor dem Druck sehr gut gereinigt werden. Dazu verwendet man meist Propanol. Und der VOC-Wert knallt dann extrem hoch. Oder stell mal eine Schale mit frischen Obst - insbesondere Bananen - neben den airQ.
Trotzdem kann der airQ wertvolle Indizien liefern, aber dazu muss man sehr gezielt messen und vor allem Vergleichsmessungen durchführen.
Beispiel: Will man prüfen, ob ein Schrank aus Pressspannplatten mit Formaldehyd belastet ist, stellt man den Schrank in einen gut gelüfteten und ansonsten fast leeren Raum. Dann misst man den VOC-Wert im Raum und anschließend im geschlossenen Schrank. Deutlich höhere Werte im Schrank wären dann ein Indiz für Formaldehyd. Allerdings können auch hier dann noch nicht vollständig getrockneter Leim oder Farbe die Ursache sein.
Pflanzen im Raum können den VOC-Wert erhöhen. Auch dazu misst man den VOC-Wert mit Pflanze und anschließend ohne Pflanze.Lass Dich durch erhöhte VOC-Werte nicht "verrückt" machen.
Um die Luftqualität in geschlossenen Räumen zu kontrollieren und positiv zu beeinflussen:- Beobachte CO2- und CO-Werte: Steigt der Wert stark an, wenn Menschen im Raum sind, dann lüfte. Das ist auch sehr hilfreich, um die Ansteckungsgefahr bei Infektionen zu minimieren. Stichwort: Corona
- NO2-Werte und vor allem Feinstaub kommt in aller Regel über die Außenluft. Gerade im Winter während der Heizperiode sollte man bei erhöhten Werten nicht unbedingt viel lüften, sondern im Gegenteil eher sparsam damit umgehen. Das kann natürlich kontraproduktiv zu 1. sein. Also nur kurz Querlüften.
- Steigen Feinstaub-Werte nach dem Staub-Saugen, sollte man den Filter beim Staubsauger prüfen und gegebenenfalls austauschen.
- Hat man generell zu hohe Feinstaubwerte in geschlossenen Räumen, dann sollte man gegebenenfalls Teppichböden entfernen oder einen Luftfilter anschaffen.
- Ozon kann insbesondere in Büroräumen durch Laser-Drucker entstehen. Diese sollte man dann bei Nicht-Gebrauch ausschalten.
- Pflanzen in Wohnräumen sollte man prüfen. Einmal können Verwesungen und Pilze insbesondere bei zu nasser Erde Problem bereiten. Dann können Pflanzen generell nach ihrer Beeinflussung der Luft ausgesucht werden. Es gibt Pflanzen, die besonders geeignet sind, Schadstoffe aus der Luft zu binden. Z.B. Bogenhanf (Sansevieria) bindet Formaldehyd und andere Schadstoffe. Andere Pflanzen können dagegen die Raumluft insbesondere Nachts negativ beeinflussen. Einfach mal googlen, da findet man eine Fülle von Infos.
Also Du kannst vieles machen, um die Luftqualität zu optimieren. Dabei sind CO2-, CO-, Feinstaub-, Ozon- und NO2-Werte vom airQ gemessen sehr hilfreich. Also richte Deine Energie auf diese Werte, die tatsächlich eine Aussage zur Luftqualität liefern und die Du beeinflussen kannst.
Aber VOC-Werte für sich alleine genommen, sind meiner Meinung nach leider absolut ungeeignet. -
RE: Hätte nicht gedacht, daß es so ein Messgerät schon gibt
Hallo @qqqq07,
geht es "nur" um ein -Anzeigebrett- aktueller Messwerte, dann geht das mit dem air-Q auch recht einfach.
Schau Dir mal https://forum.air-q.com/topic/36/airq-api-nutzen an. Irgendwo im Thread findest Du auch einen Download des Paketes. Das könnte ein guter Startpunkt für Dich sein.
Das Paket besteht aus einer HTML-Seite und einiges an Javascript. Das lässt sich auch einfach auf einen PC kopieren und kann von dort mit einem Browser zur Ausführung gebracht werden. D.h. Du brauchst dazu nicht zwangsweise einen eigenen Server. Allerdings funktioniert das ohne Server nicht auf einem Smartphone - bzw. habe ich nicht hinbekommen.Wie man von GAIA Messwerte bekommt, weiß ich leider nicht, da ich keinen GAIA besitze.
-
RE: Hätte nicht gedacht, daß es so ein Messgerät schon gibt
Hallo @qqqq07
Ja, der air-Q ist schon ein kleines Wunderwerk. Neben der Vielzahl der Sensoren schätze ich besonders die Offenheit des Systems. Ich kann die Messwerte via MQTT oder http verteilen und aktuelle Werte einfach abfragen. Ich habe auch eine Fülle weiterer meist selbstgebaute Sensoren in und ums Haus verbaut und ich frage zyklisch öffentliche Messstationen ab.
Alle diese Messwerte landen bei mir zuerst in einem MQTT-Broker, den ich auf einem kleinen Raspberry PI installiert habe. Ausgewählte Messwerte gehen zusätzlich in eine Datenbank, damit historische Betrachtungen möglich sind. Der MQTT-Broker liefert dann ebenso ausgewählte Messwerte an mein SmartHome System. Ich verwende da (noch) FHEM, aber das geht wohl so gut wie mit jedem der bekannten SmartHome Systeme. Hauptvorteil dieser Vorgehensweise ist, dass ich jetzt eine nahezu einheitliche Schnittstelle zu allen Sensormesswerten habe.
Um die Werte jetzt aufbereitet anzeigen zu lassen, habe ich drei alternative bzw. sich ergänzende Methoden realisiert:Auf dem PI mit dem MQTT-Broker ist auch Apache installiert. Über html, php und teilweise Javascript stehen mir jetzt viele vergleichende Darstellungen der unterschiedlichen Messwerte zur Verfügung. Diese kann ich vom PC und vom Smartphone abfragen.
Historische Daten aus der Datenbank bereite ich mit Grafana auf. Die Grafiken sind dann wieder über PC und Smartphone aufrufbar.
Über eine selbstgebaute Anzeige mit einem ESP32 und einem TFT-Display bringe ich aktuelle Werte zur Anzeige. Da gibt es Bausätze, mit denen sich dies leicht realisieren lässt, z.B. der AZ-Touch. Dieses Gerät habe ich so programmiert, dass ich die Anzeige sehr frei konfigurieren kann und mehrere Anzeigen umschaltbar einstellen kann. Ich beschränke mich da (noch) auf eine reine textuelle Darstellung, aber mit dem Farb-TFT-Display wäre auch alles andere machbar.
Für all dieses ist natürlich einiges an Know How nötig. Aber zum Aufsetzen eines Raspberry PI mit einem MQTT-Broker und einem Apache-Server gibt es im Internet einige sehr gute Schritt-für-Schritt Anleitungen, ebenso auch für eine Datenbank MySQL und Grafana. Die Programmierung eines ESP32 mit TFT-Display verlangt aber schon deutliche tiefere Kenntnisse und Erfahrungen.
Preislich wird man alles für 100-150 € realisieren können.
Wenn Du in diese Richtung gehen willst, stehe ich Dir für Fragen gerne zur Verfügung.
-
RE: Angaben in Datei zu Sensorwerten
Erst einmal möchte ich ein paar Missverständnisse bereinigen:
Eine Echtzeitübertragung der Daten per MQTT dagegen halte ich für vollkommen uninteressant
MQTT ist keine Echtzeitübertragung sondern ein Netzwerkprotokoll zur M2M (machine to machine) Kommunikation. Damit können auch leicht kleine unperformante MQTT-Geräte mit einem MQTT-Broker verbunden werden. Ich hatte vorgeschlagen, dass man http-Post oder MQTT verwenden kann. Wer andere IoT Lösungen hat oder plant ist sicher mit mqtt gut bedient, ansonsten kann man auch http-Post verwenden. MQTT ist etwas sparsamer als http-Post, aber letztendlich in dieser Fragestellung reine Geschmacksfrage.
Deine Argumente, dass das alles mit dem kleinen Prozessor nicht machbar wäre ….
Da hast Du mich wohl falsch verstanden. Wenn man Teile der Aufbereitung der Daten und der Auswertung auf den airQ verlagert und ihn nicht ausschließlich als Datenlieferanten nutzt, dann wird es problematisch. Solange das alles auf einem PC geschieht, wird der airQ ja gar nicht zusätzlich belastet außer dass er die Rohdaten liefern muss.
Und ich schätze, dass man Performance Probleme bekommt, sobald man historische Daten auswerten will.
Unter „Performance Probleme“ verstehe ich dabei nicht, dass der airQ Problem bekommt, sondern die Auswertung selbst nicht performant ist.
Wenn ich die App im lokalen Netz starte, dann dauert es schon eine gute Weile bis die Daten der letzten 12 h (Default) in der App geladen sind. Mach einmal eine Auswertung über eine Woche, dann geht die Wartezeit in den Minutenbereich.
Genau diese Wartezeiten wird man auch bekommen, wenn man mit einem Javascript Code die Daten vom airQ holt. Aus einer Datenbank bekommt man diese im Sekundenbereich.Die Schnittstelle für den Datenzugriff bei größeren Anfragen sollte aber ebenfalls HTML sein, ….
Also die bestehende Schnittstelle basiert nicht auf HTML und HTML würde in diesem Zusammenhang auch keinen Sinn machen. Die Daten selber sind (nach der Docodierung) als JSON-Strings codiert.
Und wie gesagt, es gibt bereits Code-Beispiele mit der man Daten vom airQ via Javascript holen kann. Also alles ist heute bereits machbar, außer dass der Javascript- und HTML-Code nicht auf dem airQ, sondern auf dem PC liegen muss.
Die Daten dann aufzubereiten, grafisch darzustellen und ein ansprechendes GUI bereit zu stellen ist halt eine sehr große Menge Arbeit.nur leider mit Dokumentationen nur für Science Nutzer und ineffektiven Mechanismen.
Wieso dies? Der Javascript Code zum Holen der Daten vom airQ steht hier im Forum.
Siehe auch: https://forum.air-q.com/topic/36/airq-api-nutzen/12?page=2
und https://forum.air-q.com/topic/93/eigene-air-q-datenbank-für-z-b-grafana-etc/8
und https://forum.air-q.com/topic/408/php-script-zum-speichern-der-air-q-daten-in-eine-textdatei
und https://forum.air-q.com/topic/74/csv-download/12Und wo soll da jetzt ein ineffektiver Mechanismus sein?
-
RE: Angaben in Datei zu Sensorwerten
Teile der Funktionen der App in Javascript und HTML zu programmieren ist auch sehr aufwendig und anscheinend braucht man dazu die teurere Science Version. Und ich schätze, dass man Performance Probleme bekommt, sobald man historische Daten auswerten will.
Eine preiswerte Alternative und deutlich einfacher zu entwickeln ist einen kleinen Server z.B. Raspberry aufzusetzen. Dafür muss man einmalig ca. 100 € spendieren. Im Dauerbetrieb braucht der Raspberry vielleicht 5-6 Watt, ist also im Betrieb recht sparsam. Und die Performance ist absolut ausreichend.
Auf dem Raspberry installiert man Apache, php, mySQL, phpMyAdmin und z.B. Grafana, und bei Bedarf noch einen mqtt-Server. Das alles ist in 1-2 h erledigt.
Die Daten vom airQ bekommt man über http-Post oder mqtt auf den Server. Das ist leicht in der Konfiguration des airQ einstellbar. Für die Serverseite muss man dann noch etwas programmieren, um die Daten in die Datenbank zu bekommen. Beispiele dazu habe ich gepostet.
Danach kann man mit Grafana seine individuellen grafischen Auswertungen erstellen. Bei Bedarf bindet man diese noch in entsprechende HTML-Seiten ein.Nachfolgend ein kleines Beispiel:
-
RE: Angaben in Datei zu Sensorwerten
ad 2) der Vorteil liegt im Platzbedarf
Ich habe mal eben meine SD-Karte geprüft. Mein airQ ist seit Juni 2020 in Betrieb und alle Daten sind auf der SD-Karte. In den über 4 Jahren werden dazu 1,6 Mbyte benötigt. Die SD-Karte hat 16 GB. Ich schätze grob, dass bevor es Speicherplatzengpass gibt, die SD-Karte selber stirbt oder der airQ oder ich persönlich.
ad 3) auf dem Server braucht nur ein minimaler Webserver zu laufen, die HTML und Javascript Daten wären deutlich größer – aber würden auf dem Client ausgeführt
Das entspricht meinem Vorschlag.
ad 4) auch die derzeitige App liest ihre Daten vom Air-Q, da würde sich also nichts ändern – außer dass man Systemunabhängig ist und dass der Kunde bei entsprechendem Wissen die Funktionalität per JS entsprechend eigenen Vorstellungen erweitern kann
Nahezu alles kann man schön heute machen, außer dass die HMTL- und Javascript-Dateien nicht auf dem airQ stehen sondern lokal auf einem PC oder Server.
Das API ist dokumentiert und ich vermute stark, dass auch die App ausschließlich dieses API benutzt. -
RE: Angaben in Datei zu Sensorwerten
Da sind jetzt mehrere Fragen, Antworten und Ideen gepostet, die nicht unbedingt zusammen gehören.
-
https statt die aktuell verwendete Verschlüsselung: Das würde ich zwar auch begrüßen, macht es doch den Zugriff deutlich einfacher. Aber kommt dann nicht schnell die Frage nach Datensicherheit auf? D.h. Zugriff nur über Name und Passwort oder gar Benutzerverwaltung und das ganze Session-Handling. Auch wenn ich persönlich https begrüßen würde, ich kann mir denken, dass die airQ-Entwicklung da weiter denken muss, und die Anforderung nach Datensicherheit nicht einfach über Bord schmeißen darf. Ob die bestehende Verschlüsselung tatsächlich die Datensicherheit ausreichend gewährleistet, sei dahin gestellt.
-
SQLite:
Genau genommen sind das zwei Vorschläge:
a. airQ schreibt die Daten in eine SQLite-Datei statt in eine TXT-Datei.
Das sollte theoretisch möglich sein, gibt es doch SQLite-Libraries für den verwendeten ESP32. Aber wo soll der Vorteil sein??
b. airQ bietet über ein API die in SQLite gespeicherten Daten an. Damit verlagert man eine klassische Server-Funktionalität auf den airQ, wo sie definitiv nicht hingehört. -
Der airQ startet ein Programm auf der SD-Karte:
Wenn dieses Programm dann tatsächlich auf dem airQ ausgeführt werden soll, denke ich dass dies kaum lösbar ist und vor allem recht kritisch ist.
Wird das Programm aber auf Client-Seite zur Ausführung gebracht, z.B. als Javascript, dann wäre das leicht lösbar und technisch unkritisch. Ich hatte das auch mal vor einiger Zeit vorgeschlagen. Der airQ ist bereits ein Mini-Webserver und könnte Space auf der SD-Karte für Web-Anwendungen reservieren. Man bräuchte lediglich eine kleine Fileserver-Funktionalität um Dateien in diesem Web-Space zu managen. Für den ESP32 gibt es da auch bereits einige Libraries. Meine vielen kleinen Tools würde ich dann dort hinschieben. -
airQ versus Cloud:
Auch ich bin nicht unbedingt ein Freund der Cloud, aber Teile dieser Funktionalität auf den airQ zu schieben ist meiner Meinung nach der falsche Weg. Weitere Server-Funktionalitäten gehören technisch nicht dorthin. Der verwendete Micro Controller ESP32 ist als Basis für einen Server schlichtweg ungeeignet. Hier dann noch sicherstellen, dass die Sensor-Daten alle 1-2 Sekunden gescannt werden, wird kaum möglich sein. Performance Problem jeder Art sind dann vorprogrammiert. Wer keine Cloud im Internet benutzen möchte (wie ich z.B.), der muss dann halt seine eigene Cloud sprich einen lokalen Server aufbauen. Und er airQ bietet zum Glück über sein API alles an, was man so braucht. Ich verwende dazu einen kleinen sparsamen Raspberry mit mySQL als Datenbank und Grafana zur grafischen Auswertung. Der kostet nicht einmal 100 €, ist sehr sparsam im Unterhalt und trotzdem für meine Bedürfnisse ausreichend performant. Wie man die Daten stets aktuell vom airQ auf den Raspberry bekommt, habe ich mit diversen kleinen Tools realisiert, die hier alle veröffentlich sind. Wer diesen Weg einschlagen möchte, kann mich gerne kontaktieren, ich helfe gerne dabei. Aber ein gewisses technisches Know How muss man dann schon mitbringen.
Ein Vorteil ist dann auch, dass man so die airQ-Daten auch mit anderen gesammelten Daten korrelieren kann – Wetterberichte, Luftqualitäten von öffentlichen Messstationen, eigene Wetterstationen und vieles andere mehr.
Wenn wir das weiter diskutieren wollen, sollten wir vielleicht für jeden Sachverhalt einen eigenen Thread aufmachen.
-
-
RE: Einfluss der Netzspannung auf den air-Q?
Also Du hast hier eine Veränderung von etwa 0,3° C bei einer Messgenauigkeit von 0,5° C.
Bei einer Genauigkeit von 0,5° C müsste man eigentlich alle Messwerte auf 0,5° runden, Die Details unter 0,5° kann man eigentlich nicht verwenden, da man nie weiß ob das jetzt tatsächlich an der Temperatur liegt oder einfach nur der Genauigkeit geschuldet ist.
Sichtbar wird das nur, da die angezeigte Kurve nicht unten bei 0° startet, sondern bei 24,2°, d.h. eigentlich zoomst Du den Bereich in Y-Achse gewaltig. Nur dadurch wird diese minimale Differenz überhaupt erst sichtbar.
Bilder von meinem air-Q heute:
Mit Sichtbarkeit der 0°-Achse.
Gezoomt in Y-Richtung. Nur dadurch wird die Differenz sichtbar.In Elektronik kenne ich mich jetzt nicht besonders aus. Aber müssten nicht solche Netzschwankungen hinter dem Netzteil vollständig kompensiert sein?
-
RE: Einfluss der Netzspannung auf den air-Q?
Wenn ich das richtig gehe, geht es doch um Temperaturschwankungen von weniger wie 0,4° C.
Macht es da Sinn nach Ursachen zu suchen??
Innerhalb eines Raumes ist die Temperatur doch sowie schon einer deutlich größeren Schwankung unterworfen. Je nachdem wo der air-Q steht, reicht doch bereits eine kleine Luftverwirbelung um Schwankungen von 0,4° zu erzeugen. Und alleine die Messgenauigkeit des Temperatursensors liegt bei +/- 0,5° C.