Da ich ja die Science Version habe, habe habe ich mir anhand der Dokumentation folgendes kleines Script gebastelt, was die Werte für Sound alle zwei Sekunden abfrägt:
import base64
import requests
from Crypto.Cipher import AES
from pprint import pprint
import json
import time
########################
airqpass = '<password>'
#########################
def unpad(data):
return data[:-ord(data[-1])]
def decodeMessage(msgb64):
msg = base64.b64decode(msgb64)
key = airqpass.encode('utf-8')
if len(key) < 32:
for i in range(32-len(key)):
key += b'0'
elif len(key) > 32:
key = key[:32]
cipher = AES.new(key=key, mode=AES.MODE_CBC, IV=msg[:16])
return unpad(cipher.decrypt(msg[16:]).decode('utf-8'))
def get_request(url):
r = requests.get(url)
msg = json.loads(decodeMessage(r.json()['content']))
print(msg['sound'])
while True:
get_request('http://air-q.example.com/data')
time.sleep(2)
Dabei erhalte ich folgende Ausgabe:
[13.0, 20.0]
[13.0, 20.0]
[13.0, 20.0]
[68.4, 2.0]
[63.6, 2.1]
[44.2, 4.2]
[48.7, 3.3]
[57.5, 2.4]
[60.0, 2.3]
[43.0, 4.5]
[75.8, 1.9]
[75.8, 1.9]
[70.0, 2.0]
[13.0, 20.0]
[13.0, 20.0]
Anmerkung: Die Aussschläge auf >13 db sind Momente in denen ich Klatsche, um eine Änderung zu provozieren.
Wenn ich die Dokumentation bzgl. Messwerte in Klammern [1] korrekt deute, sollte der erste Wert den gemessenen Wert darstellen und der zweite Wert die Toleranz in Prozent. Folge ich diesem Beispiel, würde also der gemessene Wert (13 db) um 20% abweichen (±), was entweder einem maximalen Wert von 15,6 db oder einem minimalen Wert von 10,4 db entsprechen würde.
Wie ich bereits erwähnt habe, habe ich dauerhaft ~40 db, mal ein paar db mehr, mal weniger. Zum Zeitpunkt der Messung habe ich auch mit meinem Peaktech im ungefähr selben Winkel und derselben Mikrofonausrichtung [2] gemessen und hatte bei jeder Messung um die 40 db, mal etwas mehr, mal etwas weniger. In keinem Fall kann also ein Wert zwischen 10,4 db und 15,6 db ein realistischer Wert sein.
Mir ist durchaus bewusst, dass der Sensor ab 40 db angegeben ist, aber dauerhaft so ein niedriger Wert scheint mir schlicht falsch zu sein, zumal ich ja um die 40 db sein sollte.
Ist das so "vorgesehen" (natürlich nicht absichtlich, sondern schlicht ggf. eine Limitierung des Sensors) oder ist der Sensor als defekt zu bewerten?
Eine andere Erklärung wäre für mich eine Abweichung in db, anstatt in %, dann wäre der reelle Wert der niedrigen Messung ~33 db, was ich (fast) noch als Messtoleranz bewerten würde, bei einem Sensor der mit 40 db bis 109 db angegeben wird.
Da du auch das Thema Strom-Schwankungen ansprichst: Der Air Q hängt bei mir an einer Online-USV, die gefilterten Strom (ohne große Schwankungen) an das Gerät weitergibt. Zusätzlich monitore ich auch die USV und kann sehr geringen Schwankungen verifizieren: Zum Zeitpunkt der Messung gab es eine Schwankung zwischen 233.533 Volt und 233.554 Volt (ausgehend, sprich an den Air Q), eingehend (sprich von der Steckdose) sind die Schwankungen teilweise >1 Volt (je nach Auslastung des Stromnetzes nehme ich an; beim Zeitpunkt der Messung gab es eine Schwankung von 233.4 zu 233.55 ), dies sollte aber zuverlässig durch die USV gefiltert bzw. ausgeglichen werden.
Könntet ihr ggf. mal überprüfen, ob in einer relativ ruhigen Umgebung das Problem reproduzierbar ist? Ansonsten würde ich gerne versuchen entweder den Sensor oder das Gerät zu tauschen, um zu schauen ob das einfach nur ein Defekt des Boards/Sensors ist.
Vielen lieben Dank vorab.
[1]: Zitat aus der Dokumentation
"Messwerte in Klammern geben dabei den Wert und seinen dynamisch berechneten Größtfehler an. "oxygen": [20.865, 0.85] bedeutet also, dass Sauerstoff eine Volumen-Konzentration von 20.865 ± 0.85 % aufweist."
[2]: Beitrag bzgl. Mikrofonposition und -ausrichtung.
https://forum.air-q.com/topic/40/lärm-sensor/2?_=1668297212796