NEWS
Probleme mit Aqara Temperatur- und Feuchtigkeitssensor
-
so sehen bei mir die Tuya Zigbee T-H- Sensoren aus.
Ich wollte eine LCD-Anzeige, damit ich auch vor Ort ablesen kann.
Ansonsten habe ich- aqara Opple Taster, die gut funktionieren. Hatte allerdings einen Totatlausfall in der ersten Woche.
- aqara Bewegungsmelder sind klein und gut. Habe 4 davon in Betrieb.
- aqara Helligkeitssensoren sind auch ordentlich; habe 5 davon in Betrieb.
Allerdings habe ich auch 5 ikea Leuchten an Dauerstrom, die als router wirken können.
-
@canetti2 Ich habe von den Xiaomi Sensoren verschiedene im Einsatz - alle ohne Probleme.
Mich würde eher interessieren:
- was setzt du noch an Zigbee Hardware ein ?
- welchen Zigbee Kanal nutzt du ?
- wie ist die Auslastung im entsprechenden WLan Kanal ?
A.
-
Vielen Dank für Eure Antworten - das ist super nett.
@mickym der eingeschlafene Temperatursensor war AUßEN montiert. Luftlinie zwischen Sensor und CC26X2R1 beträgt ca. 7 Meter. Aber Sensor und CC26X2R1 trennen die Außenwand und eine zusätzliche Innenwand.
@klassisch der Tuya Zigbee mit LCD-Anzeige ist ja echt praktisch. Vom Desing finde ich ihn etwas klobig - aber hauptsache er arbeitet fehlerfrei und zuverlässig.
@Asgothian
Gateway: CC26X2R1 an Raspberry Pi angeschlossen
Sensoren:
1 x Aquara Temperatursensor
1 x Aquara Steckdose
https://de.gearbest.com/smart-lamp-controllers/pp_009232106564.html... also nicht wirklich viel - aber ich fange ja auch gerade erst an
Zigbee-Kanal: 11
Auslastung im WLAN-Kanal: Der WLAN-Kanal wird schon fleißig benutzt!Laut ZIgbee-Adapter ist der 11er Kanal aber angeblich der "beste". Wie aussagekräftig ist die Empfehlung? Mein eigenes WLAN hat übrigens eine dynamische Kanalvergabe. Wir macht Ihr das? Vergebt Ihr Eurem WLAN einen fixen Kanal, der sich dann natürlich vom Zigbee-Kanal unterscheidet?
Und dann noch eine ganz blöde Frage: Wenn Zigbee den 11er Kanal benutzt. Ist es dann egal, wenn ich mein WLAN auf 10 bzw. 12 Stelle oder ist es besser, wenn der Kanal "numerisch" weiter entfernt ist - also das Kanal 4 und 11 sich weniger stören als Kanal 10 und 11?
-
@canetti2 Ich hab zwar den CC2531 - aber da waren 8 Meter und 2 Innenwände schon zu viel.
-
@mickym ok, aber der CC26X2R1 soll ja angeblich deutlich leistungsfähiger als der CC2531 sein ...
Was ich an der Geschichte übrigens auch tragisch finde, ist, dass ich nur durch Zufall bemerkt habe, dass der Temperatursensor "eingeschlafen" ist. Gibt es da vielleicht einen Adapter, der alle Sensoren automatisch auf Funktion prüft? ... oder muss man sich da selber ein Blockly Script basteln, welches historische Werte mit aktuellen Werten vergleicht und sich dann meldet, wenn sich die Werte nicht ändern?
Man könnte das ja einfacher lösen, wenn der Wert der "Letzten Änderung" als Objekt gespeichert wird - aber das ist ja seltsamerweise nicht der Fall ;-(
-
@canetti2 Ich prüfe das mit meiner Logikmaschine (bei Dir Blockly, bei mir Node Red). Ich mach da keine komplizierten Zeitvergleiche, sondern gibt Alarm, wenn sich ein Sensor länger als 2 Stunden nicht meldet.
-
@canetti2 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:
Man könnte das ja einfacher lösen, wenn der Wert der "Letzten Änderung" als Objekt gespeichert wird - aber das ist ja seltsamerweise nicht der Fall ;-(
Das ist nicht korrekt. IoBroker speichert für jeden State den Timestamp der letzten Aktualisierung sowie die Quelle davon.
A.
-
@canetti2 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:
Man könnte das ja einfacher lösen, wenn der Wert der "Letzten Änderung" als Objekt gespeichert wird - aber das ist ja seltsamerweise nicht der Fall ;-(
Hm, also meine Aqara-Sensoren haben alle einen ‚available‘-state, der zuverlässig auf ‚false‘ steht, falls der jeweilige Sensor aus dem Netz fällt. Was bei meinen allerdings seit Monaten nicht mehr passiert ist (~20 Stück)…
-
@Asgothian wo wird denn der Timestamp gespeichert?
Wenn ich mit der Maus über die einzelnen Werte gehe, wird mir der Zeitpunkt der letzten Aktualisierung angezeigt - nur in welchem Objekt wird dieser gespeichert?
@JLeg Das ist ein interessanter Hinweis. Du meinst also, dass bei meinem Sensorausfall "Available state" den Wert false angenommen haben muss? Sollte der Sensor nochmals einschlafen - was ich nicht hoffe - werde ich das mal prüfen.
-
-
@canetti2 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:
@JLeg Das ist ein interessanter Hinweis. Du meinst also, dass bei meinem Sensorausfall "Available state" den Wert false angenommen haben muss? Sollte der Sensor nochmals einschlafen - was ich nicht hoffe - werde ich das mal prüfen.
Ja, bei mir ist das so - das benutze ich teilweise auch "aktiv" (Prüfung und Meldung, falls "false") - solange nichts gemeldet wird, läuft der Sensor; in den seltenen Fällen mit "Alarm" war der Sensor dann tatsächlich "offline" (mit veralteten Daten)...
-
So, jetzt ist es leider wieder passiert - seit 3,5 Stunden tut sich beim Temperatursensor nichts mehr.
Schaut Euch mal bitte die Screenshots an:Demach sollte alles "perfekt" laufen. Auch der "available Status" ist true. Der Zigbee-Adapter erkennt also leider nicht, dass da irgendwas nicht läuft. Der einzige Hinweis ist der Zeitstempel, der leider nicht zu einer automatischen Fehlermeldung führt.
Könnte evtl. der Temperatursensor defekt sein? ... aber das müsste doch dann vom System eigentlich erkannt werden, oder?
-
@canetti2 Bist Du sicher, daß sich in dieser Zeit die Temperatur nicht stark genug geändert hat. Etliche batteriebetriebene Sensoren melden nur, wenn sich die Temperatur mehr als x Grad ändert.
Ich überwache Sensoren, Adapter und vieles mehr mit Watchdogs in Javaskript. Die Blaupause dazu hat @paul53 dankenswerterweise geliefert
-
Richtig - ich hab meinen gerade mal 10s in die Hand genommen und schon meldet der.
@canetti2 Melden sich denn beide nicht mehr? Wobei bei mir wie gesagt mindestens 1 Meldung innerhalb von 2 Stunden kommt. Deine LinkQuality schaut auch gut aus - der einzige Unterschied zu mir ist neben den CC2531 der ja schlechter sein soll, dass meine Sensoren über Router und nicht mehr direkt mit dem Coordinator kommunizieren.
Ggf. würde ich halt die Sensoren immer am Einsatzort pairen - auch wenn mir da manche Fachleute widersprechen. -
@mickym Nein, nur der eine Außensensor hat sich nicht mehr gemeldet. Seit heute morgen funkt er auf einmal wieder - sehr seltsam.
@klassisch vielen Dank für Deine "watchdog" Empfehlung. Das Skript funktioniert tatsächlich sehr gut und schlägt an, wenn sich ein Sensor nach einer vorgebenen Zeit nicht meldet. Problem: Wenn ich 20 Sensoren habe, müsste ich diese dann ja mit 20 entsprechenden Skripten überwachen lassen. Und jeder neue Sensor müsste ein neues Skript bekommen. Das ist ja ein immenser Aufwand. Da wäre ich doch dankbar, wenn es irgendeine automatisierte Lösung geben würde...
-
@canetti2
lese mal mit, da mich meine Aqara Sensoren (T&H und die Tür/Fensterkontakte) auch regelmäßig "ärgern" trotz einiger Router.Das Skript klingt interessant und schaue ich mir sehr gerne mal an. Eine Skript implementierung je Sensor sehe ich ehrlich gesagt nicht wirklich als Aufwand, da gibt es Schlimmeres.
Soweit ich es jetzt überflogen habe, wurde Deine Frage bzgl. Wifi noch nicht geklärt. Wifi betreibt man auf Kanal 1,6 oder 11 da sie sich so nicht gegenseitig beeinflussen. Also mal die Umgebung scannen was sich bei Dir anbietet. Zu diesem Ergebnis auch die Wahl deines Zigbee Kanals um möglichst keine Störungen durch eigene oder andere Wifis zu haben. Wie gut die Auto-Erkennung funktioniert kann ich nicht sagen. Ich mach das lieber manuell, da weiß ich was passiert. Vorsicht ggf. sind nach Kanalwechsel die Zigbee Devices neu zu pairen.
Edit: Nachdem ich es jetzt studiert habe, Ich habe noch nicht ganz verstanden, was der Watchdog per skript bringt. Batteriebetriebene Aqara Sensoren wie die T&H senden keine zyklischen Daten d.h. wenn sich die Temperatur x Tage nicht ändert senden sie x-Tage keinen Wert. Somit bekomme ich ggf einen Watchdog Alarm obwohl alles in Ordnung ist. Ein Watchdog auf extrem hohe Zeit zu setzen ist für mein Verständnis wenig sinnvoll. Einen Verfügbarkeitsanfrage wie zB einen Ping lässt sich bei Zigbee ja nicht manuell ausführen oder erzeugen und auswerten oder irre ich da?
Allgemein natürlich alles eine Frage wofür man diese Informationen wie die Temperaturen nutzen möchte. Ich habe sie mal für einen einfachen Fall als Visualisierung auf ein VIS gepackt und hier finde ich es schon problematisch, dass ich nicht sicher sein kann, ob die informationen stimmen die da stehen.
Man kann in VIS zusätzlich anzeigen lassen wie alt die Informationen sind. Also eine automatische Auswertung des Zeitstempels. Für jemanden der das VIS betrachtet finde ich das aber schlecht gelöst. Ich drücke ihm so den Zusatzaufwand auf die Nase jetzt auch noch diese Zeitinformationen zu lesen und zu verarbeiten. Bastel derzeit an einer Lösung wo die Temperaturen ausgeblendet/unsichtbar werden, wenn der Zeitstempel älter ist als x Tage, Stunden oder Minuten je nach Sensor....Somit ist schon mal sicher dass der Bediener "keinen Mist vor die Linse bekommt". Schaut er allerdings nur noch auf leere Seiten ohne Infos wirds auch sinnfrei....Zwar recht einfach, aber werte nun den Zeitstempel aus und wenn 3h keine neue Temperatur geschickt wurde, wird ein Datenpunkt gesetzt. Entsprechend dem Datenpunkt werden die Daten Sichtbar/Unsichtbar auf dem VIS:
-
@canetti2 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:
Problem: Wenn ich 20 Sensoren habe, müsste ich diese dann ja mit 20 entsprechenden Skripten überwachen lassen. Und jeder neue Sensor müsste ein neues Skript bekommen.
Man kann das alles auch in ein Skript schreiben.
Einfach die Blöcke untereinander schreiben.
Erst mal copy&paste und dann noch etwas Anpassungen.
Man muß nur für jeden Sensor eine eigene timer-Variable anlegen.
Dann halt die entsprechenden Objekt-Ids eintragen und den Text für die Mail/telegram Nachricht anpassen.Es gibt sicher elegantere Lösungen mit Arrays für die Id und Namen und Zeiten.
Aber da muß man sich tiefer in JScript einarbeiten. Und dann brauchen manche Sesnoren eine etwas andere Behandlung und dann wird es nochmals komplizierter.Bei 20 Sensoren fährt man mit brute force schneller zum Ziel.
Kannst Dir ja pro Tag 4 Sensoren vornehmen. Nach einer Woche bist Du durch - spätestens.
Das ist ja ein immenser Aufwand.
Nicht wiklrich
Da wäre ich doch dankbar, wenn es irgendeine automatisierte Lösung geben würde...
vielleicht kann einer der Adapter das mittlerweile vielleicht sogar. Ich habe halt so angefangen, und wenn ein Sensor dazu kommt, dann wird halt wieder was in das Skript reingebaut. Was läuft, läuft....
-
@pete0815 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:
Edit: Nachdem ich es jetzt studiert habe, Ich habe noch nicht ganz verstanden, was der Watchdog per skript bringt. Batteriebetriebene Aqara Sensoren wie die T&H senden keine zyklischen Daten d.h. wenn sich die Temperatur x Tage nicht ändert senden sie x-Tage keinen Wert. Somit bekomme ich ggf einen Watchdog Alarm obwohl alles in Ordnung ist. Ein Watchdog auf extrem hohe Zeit zu setzen ist für mein Verständnis wenig sinnvoll. Einen Verfügbarkeitsanfrage wie zB einen Ping lässt sich bei Zigbee ja nicht manuell ausführen oder erzeugen und auswerten oder irre ich da?
Kann ich nicht bestätigen. Meine batteriebetriebenen Aquara Sensoren melden sich mindestens 1 mal in 2 Stunden (egal ob Bewegungsmelder mit Luxmeter oder Temperatur & Feuchtigkeit). Die Würfel überwache ich gerade nicht, aber auch hier sehe ich, selbst bei dem Würfel den ich mehrere Stunden nicht angefasst habe, dass voltage und oder link quality übertragen werden:
-
Ich habe jetzt das Skript von @paul53 ein wenig überarbeitet bzw. erweitert:
var sensorId = [ 'zigbee.0.00xxxxxx.temperature', 'zigbee.0.00xxxxxx.temperature', 'zigbee.0.00xxxxxx.click', 'zigbee.0.04xxxxxxxx.load_power', ]; for (var i = 0; i < sensorId.length; i++) { watchDog(sensorId[i]); } function watchDog(sensorId){ var timer = null; on({id: sensorId}, function() { // löst bei jeder Aktualisierung aus if(timer) clearTimeout(timer); // laufender Timer wird gestoppt timer = setTimeout(function() { // Neustart Timer console.log('Sensorausfall ' + sensorId); // Aktion, wenn Verzögerungszeit abgelaufen ist sendTo("telegram", "send", { text:('****** Achtung Sensorausfall ******\n' + 'Typ: ' + getObject(sensorId).common.name + '\nID: ' + sensorId) }); }, 120 * 60000); // 120 Minuten in ms = 120 * 60000 }); }
Wenn ich einen neuen Sensor bekomme, dessen Funktion ich überwachen möchte, trage ich die ID einfach in das Array senorId ein.
Sobald sich einer der Sensoren in meinem Fall nach 120 Minuten nicht meldet, erhalte ich eine automatische Warnmeldung per Telegram mit allen nötigen Informationen. Alternativ kann man sich natürlich auch per Mail oder was auch immer benachrichtigen lassen.
-
@canetti2 vielen Dank! Interessant. Wenn ich das richtig verstehe, wird für jeden Sensor im Skript so eine Funktion angelegt. Jede Funktion generiert dann auch ihre eigene timer-Variable.
Alle Sensoren müssen dann dieselbe timeout Zeit haben und andere Sonderbehandlungen sind dann auch nicht möglichl
Was ich nicht verstanden habe: _id. Was macht das?