NEWS
[Blockly] Probleme mit Xiaomi-Programmen
-
Guten Morgen zusammen,
nach Tage die ich mich selber da durch gekämpft habe und unzähligen Varianten die probiert wurden, wende ich mich nun an euch und hoffe ich könnt mir helfen. Ich habe einige Xiaomi-Produkte hier, die auch angelernt sind und so - das klappt alles. Allerdings klappen meine Programme nicht, aber schaut selbst:
Das erste Programm. Es funktioniert, das die Beleuchtung bei Sonnenuntergang an geht, und auch das sie um 22:00Uhr wieder ausgeht (sollte sie zumindest). Das ist eigentlich nur zur Info, damit ihr wisst welche Programme ich habe.
Das zweite Programm soll direkt im Anschluss starten. Der BWM von Xiaomi soll zwischen 22:00 und 9:00 genau die gleiche Lampe einschalten, und nach 2 Minuten wieder ausschalten. An geht sie … aber nicht mehr aus. Wenn ich sie per Hand ausmache, und durch den BWM laufen geht sie an, aber nicht wieder aus.
Programm nur 3. Dieses mal geht es um den Gateway von Xiaomi. Auch hier, er soll bei Sonnenuntergang angehen (was er tut), aber er geht um 22:00 nicht mehr aus.
Und zu guter letzt Programm 4. Da die Lampe in Programm 3 um 22:00 ja nicht ausgeht, kann auch der BWM nach 22:00 die Lampe ja nicht schalten, und somit läuft sie von Sonnenuntergang bis zum nächsten morgen wenn ich sie per Hand ausmache.
Es wäre nett wenn ihr da mal drüber schauen könntet und mir den entscheidenen Tipp geben könntet.
Danke schonmal.
-
Hallo DerOstfriese
Viele Sachen auf einmal. :shock:
Zunächst einmal Dinge, die sich bei Dir durchziehen.
Wenn ein Trigger bei "Sonnenuntergang" oder um "22:00" reagieren soll, tut er es auch.
Man muss dann innerhalb des Triggers nicht nochmal abragen, ob es wirklich "Sonnenuntergang" oder "22:00" ist.
Diese zusätzliche Abfrage, kann sogar kontraproduktiv sein.
"Sonnenuntergang" und die Uhrzeit "22:00" ist, pro Tag, ein einmaliges Ereignis.
Wenn es erreicht ist, ist auch schon wieder vorbei.
Muss also bei einer späteren Abfrage nicht mehr wahr sein! Hierbei kann es um Millisekunden gehen.
Also diese unnötigen "Sicherheitsabfragen" rausnehmen.
Zu 4.
Da sind gleich mehrere Fehler drin.
Zum einen Fragst ab ob "Is Motion = wahr" ist.
Dann fragst Du INNERHALB diese Bedingung ab ob "Is Motion = unwahr" ist.
Das ist unmöglich.
Erweitere Deine "Falls-Bedingung" um ein "sonst" oder mach nur eine Abfrage und setzte darin:
steuere Light mit 50
steuere Light mit 0 mit Verzögerung 120 Sek, löschen falls läuft AN
Dann wird Deine Zeitliche Abfrage nicht funktionieren, weil sie tagesübergreifend ist.
Aktuelle Zeit zwischen 22:00 und 09:00 findet nie statt.
Da musst Du so abfragen
Falls "Aktuelle Zeit zwischen 22:00 und 00:00" ODER "Aktuelle Zeit zwischen 00:00 und 09:00"
Grüße
-
Hallo DerOstfriese
Viele Sachen auf einmal. :shock:
Zunächst einmal Dinge, die sich bei Dir durchziehen.
Wenn ein Trigger bei "Sonnenuntergang" oder um "22:00" reagieren soll, tut er es auch.
Man muss dann innerhalb des Triggers nicht nochmal abragen, ob es wirklich "Sonnenuntergang" oder "22:00" ist.
Diese zusätzliche Abfrage, kann sogar kontraproduktiv sein.
"Sonnenuntergang" und die Uhrzeit "22:00" ist, pro Tag, ein einmaliges Ereignis.
Wenn es erreicht ist, ist auch schon wieder vorbei.
Muss also bei einer späteren Abfrage nicht mehr wahr sein! Hierbei kann es um Millisekunden gehen.
Also diese unnötigen "Sicherheitsabfragen" rausnehmen.
So?
Zu 4.
Da sind gleich mehrere Fehler drin.
Zum einen Fragst ab ob "Is Motion = wahr" ist.
Dann fragst Du INNERHALB diese Bedingung ab ob "Is Motion = unwahr" ist.
Das ist unmöglich.
Da bin ich, glaube ich, nur in die falsche Reihe gerutscht - so wie es jetzt ist, ist es besser oder?
Erweitere Deine "Falls-Bedingung" um ein "sonst" oder mach nur eine Abfrage und setzte darin:
steuere Light mit 50
steuere Light mit 0 mit Verzögerung 120 Sek, löschen falls läuft AN
Dann wird Deine Zeitliche Abfrage nicht funktionieren, weil sie tagesübergreifend ist.
Aktuelle Zeit zwischen 22:00 und 09:00 findet nie statt.
Da musst Du so abfragen
Falls "Aktuelle Zeit zwischen 22:00 und 00:00" ODER "Aktuelle Zeit zwischen 00:00 und 09:00"
Grüße `
Und so?
-
Kleiner Tipp zum Zweiten Bild von dir! Da ist ein kleiner Denkfehler mit bei.
Der Motion Sensor von Xiaomi hat die Eigenschaft erst nach zwei Minuten von true auf False zu gehen.
Da du dann aber noch sagst die Lampe soll mit 120 Sekunden Verzögerung ausgehen geht deine Lampe auch erst nach 4 Minuten aus. zeige dir wenn ich von der spätschicht zuhause bin wie ich Das realisiert habe.
-
Da du dann aber noch sagst die Lampe soll mit 120 Sekunden Verzögerung ausgehen geht deine Lampe auch erst nach 4 Minuten aus. zeige dir wenn ich von der spätschicht zuhause bin wie ich Das realisiert habe. `
Er reagiert doch nur auf "wahr". Da ist völlig egal wann der BM wieder auf "unwahr" geht.@DerOstfriese sieht jetzt besser aus.
Grüße
-
Da du dann aber noch sagst die Lampe soll mit 120 Sekunden Verzögerung ausgehen geht deine Lampe auch erst nach 4 Minuten aus. zeige dir wenn ich von der spätschicht zuhause bin wie ich Das realisiert habe. `
Er reagiert doch nur auf "wahr". Da ist völlig egal wann der BM wieder auf "unwahr" geht.@DerOstfriese sieht jetzt besser aus.
Grüße `
Ja der BM reagiert nur auf Wahr, hast du recht. die Xiaomi springen aber nach 120 Sekunden von sich aus erstmal auf False und da er triggert:"is motion = unwahr" und bei "mache" : mit Verzögerung 120 Sekunden, bleibt ensprechend die Lampe nochmals 2 Minuten länger an.Verstehst du was ich meine? Hätte er die Verzögerung weggelassen wäre sie nach 2 Minuten ausgegangen.
Dadurch das False beim BM erst nach 120 Sekunden eintritt und er "steuere" nochmals um 120 Sekunden verzögert bleibt dem ensprechend die Lampe 4 Minuten an bis sie ausgeht.
-
Guten Morgen,
ich laufe schon den ganzen Morgen unterm BWM hin und her und versuche diverse Kombinationen …
Wenn ich die angezeigte Variante nehme, egal ob der Haken bei "löschen falls läuft" gesetzt ist oder nicht, geht die Lampe nach 2 Minuten aus - egal ob ich 2 Minuten im Erfassungsbereich laufe oder ihn nur auslösen lasse und direkt wieder rausgehe. Fakt ist, nach 2 Minuten steh ich im dunkeln.
Nehme ich die Verzögerung raus, dann geht die Lampe gar nicht an - meine Vermutung, er will auf 50% schalten und schaltet direkt danach wieder auf 0%. Richtig?
Die Lampe soll natürlich auch über die 2 Minuten hinaus anbleiben wenn ich im Erfassungsbereich bin. Oder anders gesagt, wenn ich den Bereich verlasse, sollen die 2 Minuten beginnen (versteht ihr meinen letzten Abschnitt oder hab ich mich falsch ausgedrückt?)
Grüße und einen schönen Donnerstag euch.
-
Erstmal eine andere frage, wie ist der Sensor in der MiHome App eingebunden?
Hast du den BM als normalen Bewegungs Sensor oder als Aqara Bewegungssensor eingebunden?
Im Forum habe ich gelesen den normalen Sensor einfach als Aqara einbinden und der Sensor reagiert bei jeder Bewegung.
Bei mir läuft es leider auch noch nicht 100 % aber schon besser als wenn ich den Sensor als "normalen Sensor" eingebunden habe.
Bindest du ihn als "normalen Sensor" ein reagiert er auf Bewegungen nur alle 120 Sekunden.
Lösche dazu auch noch alle Scenen die du in der MiHome App für den Sensor hinterlegt hast.
Was für Lampen steuerst du eigentlich mit den Sensoren? Sind es Yeelights oder andere Namenhafte Produkte?
Ach sorry, sehe du steuerst damit nur die Steckdosen für Leuchte?
Also probiere es bitte mal so:
Entferne erstmal den BM den du jetzt in der MiHome hast und binde Ihn neu in der MiHome App ein, dieses mal aber als Aqara Body Sensor. Auch die älteren BM Modelle kann man als Aqara einbinden.
Wenn du Ihn nämlich nur als "Body Sensor" hinzufügst reagiert der Sensor wirklich nur alle 2 Minuten auf eine Neue Bewegung und ist somit 120 Sekunden "blind". Bindest du ihn als Aqara ein, reagiert er auf jede Bewegung, warum weiß ich auch nicht. Habe es selbst an den Timestamps gesehen.
Probiere es nun dann mal so aus wie ich es in dem Blockly gemacht habe.
Bei steuere musst du natürlich noch das an und aus deines "Gerätes hinzufügen
5553_unbenannt.jpg -
Probiere es nun dann mal so aus wie ich es in dem Blockly gemacht habe. `
Die Zeitabfrage funktioniert so nicht!Wurde weiter oben schon besprochen.
Grüße
-
Die Lampe soll natürlich auch über die 2 Minuten hinaus anbleiben wenn ich im Erfassungsbereich bin. Oder anders gesagt, wenn ich den Bereich verlasse, sollen die 2 Minuten beginnen (versteht ihr meinen letzten Abschnitt oder hab ich mich falsch ausgedrückt?) `
Wie 4-Real auch schon geschrieben hat, muss man erst wissen wie Dein BM reagiert.Da gibt es enorme Unterschiede.
Ich habe nur BM's von HomeMatic. Allein da kann man etliche Dinge in der Konfiguration der Geräte einstellen.
Wichtig ist z.B.
Schaltet Dein BM von "wahr" auf "unwahr"? (Einige BM bleiben auf "wahr")
Wenn er von "wahr" auf "unwahr" umschaltet, wie lange dauert das?
Wenn er auf "wahr" steht, erkennt und meldet er weitere Bewegungen?
Die Fragen kannst nur Du beantworten.
Grüße
-
Die Lampe soll natürlich auch über die 2 Minuten hinaus anbleiben wenn ich im Erfassungsbereich bin. Oder anders gesagt, wenn ich den Bereich verlasse, sollen die 2 Minuten beginnen (versteht ihr meinen letzten Abschnitt oder hab ich mich falsch ausgedrückt?) `
Wie 4-Real auch schon geschrieben hat, muss man erst wissen wie Dein BM reagiert.Da gibt es enorme Unterschiede.
Ich habe nur BM's von HomeMatic. Allein da kann man etliche Dinge in der Konfiguration der Geräte einstellen.
Wichtig ist z.B.
Schaltet Dein BM von "wahr" auf "unwahr"? (Einige BM bleiben auf "wahr")
Wenn er von "wahr" auf "unwahr" umschaltet, wie lange dauert das?
Wenn er auf "wahr" steht, erkennt und meldet er weitere Bewegungen?
Die Fragen kannst nur Du beantworten.
Grüße `
Das mit dem Zeitplan muss er dann eben selbst anpassen War jetzt eigentlich auch nur als Beispiel anzusehen. Muss man also wirklich bei solchen Zeitangaben immer von 00:00 bis 00:00 ausgehen? kann man also nicht über 00:00 hinausgehen? Dachte das funktioniert auch?
Wie ich oben schon geschrieben habe: Die Xiaomi reagieren teils sehr komisch. Wenn man ihn in der MiHome App als "Body Sensor" hinzufügt reagiert er nur nur ein einziges mal und ist dann für 120 Sekunden "blind" und geht dann mit dem State auf "false".
Fügt man Ihn wiederum als "Aqara Body Sensor" hinzu, registriert er komischerweise jede Bewegung, geht aber trotzdem auch nach 120 Sekunden auf "false".
-
kann man also nicht über 00:00 hinausgehen? Dachte das funktioniert auch? `
"Aktuelle Zeit" und "Asto-Zeiten" haben IMMER das Tagesdatum mit im Wert.
So sieht z.B. Sonnenuntergang aus "Thu Feb 22 2018 17:58:56 GMT+0100 (Mitteleuropäische Zeit)"
Abgekürzt würde Dein Zeitvergleich so aussehen.
Falls Aktuelle Zeit (22.02.2018 23:00) zwischen (22.02.2018 22:00) und (22.02.2018 09:00)
Grüße
-
kann man also nicht über 00:00 hinausgehen? Dachte das funktioniert auch? `
"Aktuelle Zeit" und "Asto-Zeiten" haben IMMER das Tagesdatum mit im Wert.
So sieht z.B. Sonnenuntergang aus "Thu Feb 22 2018 17:58:56 GMT+0100 (Mitteleuropäische Zeit)"
Abgekürzt würde Dein Zeitvergleich so aussehen.
Falls Aktuelle Zeit (22.02.2018 23:00) zwischen (22.02.2018 22:00) und (22.02.2018 09:00)
Grüße `
Ah Okay danke für die Aufklärung!das Bedeutet also wenn ich etwas zwischen 17:45 und 04:50 machen will muss ich das in Blockly also so machen:
von 17:45 - 00:00 und dann noch von 00:00 - 04:50 ? Brauche dafür also 2 Blöcke?
Jetzt nochmal zu dem Sensor zurück: Wie kann man es bewerkstelligen, das der Sensor jedes mal erst neu Runterzählt, wenn eine Bewegung Registriert wird?
Das Problem an der Sache ist: Stellt man den Trigger auf aktualisiert, dann bekommt man diese Fehlermeldung und IoBroker reagiert nicht mehr und man muss Zwangsweise den PI neu starten.
-
Jetzt nochmal zu dem Sensor zurück: Wie kann man es bewerkstelligen, das der Sensor jedes mal erst neu Runterzählt, wenn eine Bewegung Registriert wird?
Das Problem an der Sache ist: Stellt man den Trigger auf aktualisiert, dann bekommt man diese Fehlermeldung und IoBroker reagiert nicht mehr und man muss Zwangsweise den PI neu starten. `
Ich habe so einen BM-Sensor nicht.Kann mir aber auch nicht vorstellen, dass ein BM-Sensor so schnell Aktualisierungen sendet.
Da tippe ich eher auf einen Fehler im Programm. Da ich das aber leider nicht kenne, kann ich dazu auch nichts sagen.
Grüße
-
Selbst wenn nur alle 20 Sekunden aktualisiert wird, würde dies ja reichen. könnte man nicht mit Zeitstempel arbeiten?.. das irgendwie Zeitstempel wurde aktualisiert und Motion is true?
Mir fällt leider nur nicht der richtige Schritt ein?
-
Selbst wenn nur alle 20 Sekunden aktualisiert wird, würde dies ja reichen. `
Kann ich mir bei einem batteriebetriebenen Aktor nicht vorstellen.Und der DutyCycle würde ewig aktiviert.
Wie schon gesagt, ich tippe auf Programmfehler.
könnte man nicht mit Zeitstempel arbeiten?.. das irgendwie Zeitstempel wurde aktualisiert und Motion is true?
Mir fällt leider nur nicht der richtige Schritt ein? `
Grüße
-
Ah sowas hab ich gesucht, darunter ist das also ! Danke dir! Werde heute Nacht mal bisschen testen und dann berichten!
-
So, neues Spiel, neues Glück. Heute im Angebot:
Habe die beiden alten BWM nochmal abgelernt und neu als "Aqara BWM" wieder angelernt. Mal sehen ob das was bringt. Werde es um 22:00 testen, oder morgen früh, mal sehen.
Wichtig ist z.B.
Schaltet Dein BM von "wahr" auf "unwahr"? (Einige BM bleiben auf "wahr") Ja, er schaltet von True auf False
Wenn er von "wahr" auf "unwahr" umschaltet, wie lange dauert das? Das umschaltet? Das geht quasi sofort
Wenn er auf "wahr" steht, erkennt und meldet er weitere Bewegungen? Jap, würde mal sagen so aller 3-4 Sekunden
Die Fragen kannst nur Du beantworten.
Grüße `
-
Tatsache :shock:
Der schaltet bei Bewegung erkannt sofort wieder auf false?
Bei weiterer Bewegung schaltet der dann laufend alle 2 bis 3 Sek. auf true und dann wieder auf sofort auf false?
Da ist Dein System ja fast nur mit dem BM beschäftigt.
Noch 2 bis 3 von den Dingern und ….....
Und der arbeitet über Funk und Batterie?
Nenn mir mal die Type...damit ich mir die mal nicht versehentlich kaufe.
Grüße
-
Das kann nicht stimmen. Der schaltet nicht direkt wieder nachdem er True war sofort auf false.
Der aktualisiert nur immer bei einer weiteren Bewegung true und der Zeitstempel wird aktualisiert. auf false springt er erst nach 120 Sekunden.