Nimm der Timeout-Kram raus.
Bei Bewegung erkannt:
Schalte die Lampe ein - mit Verzögerung 0ms - löschen wenn es noch läuft
Bei Bewegung nicht (mehr) erkannt:
Schalte die Lampe aus - mit Verzögerung 10min - löschen wenn es noch läuft
Nimm der Timeout-Kram raus.
Bei Bewegung erkannt:
Schalte die Lampe ein - mit Verzögerung 0ms - löschen wenn es noch läuft
Bei Bewegung nicht (mehr) erkannt:
Schalte die Lampe aus - mit Verzögerung 10min - löschen wenn es noch läuft
ja, so oft, das ich Nachts schon von träume...
Da steht aber keine Antwort drin.
percent Battery percent state battery.percent 81.5 %
state state Is opened state state false
voltage Battery voltage state battery.voltage 3.015
Ich sehe keine Batteriespannung, dafür aber eine temperature.
Ich verwende nur das DeConz-Gateway.
Die Sensoren werden jetzt wohl als Aquara verkauft.
Ich habe die neuen, etwas eckigen Dinger, die alten waren mehr rundgelutscht.
Ich habe auch zwei Fensterkontakte im Einsatz (die neuen, leicht eckigen).
Winzigkleine Zuckerwürfel.
Leicht an meinen RaspBee-Gateway anzulernen und dann im ioBroker den Zustand "open" abfragen, der dann immer sofort wechselt, wenn das Fenster auf- oder zugeht. Bin überrascht, wie gut die arbeiten.
Reichweite ... ich habe eine 3-Zimmer-Wohnung und im mittleren Raum auf dem Kühlschrank die zentrale Technik installiert.
Der Batteriestand wurde nach 1-2 Tagen dann auch übermittelt und so kann bei einer leeren Batterie ein Alarm ausgelöst werden.
Es wird auch eine Temperatur übermittelt, der ich aber gar nicht traue. 26°C im Schlafzimmer wenn den Tag über die Heizung aus war???
Empfehlenswert!
Damit brauche ich nicht die teureren EQ3-Sensoren für meine Thermostatventile kaufen.
Als nächstes kommen noch drei KERUI-Fensterkontakte, die im goldenen Reich der Mitte irgendwie zusammen 20$ kosteten.
Gestern ist der erste dieser kleinen (runden) Sensoren bei mir eingetroffen. Ich habe ihn gleich an mein DeConz-Gateway angelernt und schwups ... ist das Objekt im ioBroker erschienen.
Es zeigt Luftfeuchtigkeit und Temperatur an. Der Füllstand der Batterie wird mit "null" ausgewiesen. Das kann sich nach meinen Erfahrungen nach einiger Zeit (Tagen) ändern.
Das Problem ist aber ... die Temperatur wird nicht erneuert. Da muß man mit der App von denen die aktuelle Temperatur per Klick abfragen...
Mist.
Heute sind zwei weitere eingetroffen, das gleiche Verhalten...
Ich kann damit NICHT die Temperatur eines Raumes für eine Heizungssteuerung messen.
Ich habe immer mal wieder das Problem, daß mein Touch nicht richtig arbeitet.
Heute abend wieder: Ich tippe auf den Touch, die LED blinkt kurz, kein Schalten der Lampe.
In der Konsole sehe ich dann
22:59:03 MQT: cmnd/arzi-touch/POWER = TOGGLE
22:59:06 MQT: cmnd/arzi-touch/POWER = TOGGLE
22:59:09 MQT: cmnd/arzi-touch/POWER = TOGGLE
und es passiert nichts.
Ich kann aus dem ioBroker das Licht schalten, und über die Konsole funktionieren "POWER ON", "POWER OFF" und "POWER TOGGLE", aber nicht mit meinem Finger.
Der Befehl "POWER = TOGGLE" funktioniert in der Konsole nicht.
Ich vermute auch, daß der Touch jeden Tastendruck erst an den MQTT sendet, der dann den Befehl zurückgibt, und erst dann schaltet der Touch. Das würde ich gerne "verkürzen", so daß er direkt schaltet und dann erst den neuen Status sendet.
Was nun?
Ja.
Nein,
den Script habe ich auch irgendwo "gefunden".
Aber der Script gibt jeden empfangenen Befehl aus, auch vom Nachbarn. Also auf dem Gerät eine Sendung erzwingen und sehen, welcher Code ankommt...
Ich tippe mal auf Dual R2...
Da mußt Du die eingelöteten Pins für Switch0 brücken. Und nach dem Flashen wieder entfernen.
Hallo,
ich persönlich empfehle dieses ganze Anlernen in der Bridge zu vergessen. Kann man alles viel einfacher im IOBROKER programmieren und es gibt keine Beschränkung der Geräteanzahl.
Es gibt da einen Javascript-Script, der automatisch den Result-String auswertet und das Datenwort speichert:
var idJSON = 'mqtt.0.tele.RF-Bridge1.RESULT'; // Datenpunkt-ID mit JSON-String
var RFWert;
function JSONtoRF(json) {
var obj = JSON.parse(json);
RFWert = obj.RfReceived.Data;
var idJSON = 'mqtt.0.RF_Sensor';
var idRFWert = 'mqtt.0.RF_Data';
setState(idRFWert, RFWert);
}
JSONtoRF(getState(idJSON).val); // Script start
on(idJSON, function(dp) { // triggern bei Wertänderung
JSONtoRF(dp.state.val);
});
Alles anzeigen
Den idJSON auf den eigenen RESULT-Datenpunkt der RF-Bridge anpassen,
die Datenpunkte "mqtt.0.RF_Sensor" und "mqtt.0.RF_Data" als Zeichenkette anlegen,
und dann einen Script schreiben, der auf Änderungen von RF_Data lauert.
Blockly-Export:
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="on_ext" id="?r)/{E96+[;dYjo)XiIo" x="-387" y="-262">
<mutation items="1"></mutation>
<field name="CONDITION">ne</field>
<field name="ACK_CONDITION"></field>
<value name="OID0">
<shadow type="field_oid" id="?%.5esdTRLXw?xvnqO^s">
<field name="oid">mqtt.0.RF_Data</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="debug" id="Ee!]Q8nD0cI)zmkLl/db">
<field name="Severity">log</field>
<value name="TEXT">
<shadow type="text" id="Iol(mLH?GNV?uP{OtPfk">
<field name="TEXT">test</field>
</shadow>
<block type="variables_get" id="DjSa)k?HoT*1*HXo`g(%">
<field name="VAR">value</field>
</block>
</value>
<next>
<block type="comment" id="|Ak!b)]:xEV_3.Yal(x|">
<field name="COMMENT">Motion-Detector CT60: Alarm-Signal: D527CE</field>
<next>
<block type="controls_if" id="+,GjO!JEg(Pz.}m~Ch/f">
<value name="IF0">
<block type="logic_compare" id="kKusIL=^t9FY*/2MQj~x">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="pUeDdL}2qZ`qxW9QQ+2P">
<field name="VAR">value</field>
</block>
</value>
<value name="B">
<block type="text" id="QEOHSqMfv[5EqcE25@,F">
<field name="TEXT">xxD527CE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="update" id="^%@nh|_z|+;Bt3qVjIP)">
<mutation delay_input="false"></mutation>
<field name="OID">admin.0.BaZi-Bewegung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="iP/%s5]Hx~sPW./{H,l+">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="update" id="Y|4o/~fNg@L0;uq0.(~;">
<mutation delay_input="true"></mutation>
<field name="OID">admin.0.BaZi-Bewegung</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">10</field>
<field name="UNIT">min</field>
<field name="CLEAR_RUNNING">TRUE</field>
<value name="VALUE">
<block type="logic_boolean" id="(T/4r=_L|@*%}BCqlO5c">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="comment" id="8Pfy%mP:)wnKf5g%BmDU">
<field name="COMMENT">Motion-Detector CT60: Monitoring-Signal: 1015CC</field>
<next>
<block type="comment" id="({b_5VqGea8*m7JdKo:t">
<field name="COMMENT">Motion-Detector CT60: Status Detector und Batterie: 901D03</field>
<next>
<block type="update" id="KMJqmFey%b28/a.0zwO!">
<mutation delay_input="true"></mutation>
<field name="OID">mqtt.0.RF_Data</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">100</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE">
<block type="text" id="pF7Hm8IhPu#h{iH-*RAT">
<field name="TEXT">-</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</xml>
Alles anzeigen
Und man sendet einen Befehl an einen RF-Empfänger, indem man die RESULT-Daten von einem gesendeten Befehl mitschreibt und wieder mitsendet, so daß die Frequenzen und Schritttakte passen, der Inhalt ist dann entscheident:
Blockly-Export
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="on" id="OO)%KkH[6r(swsji*%m9" x="-662" y="-62">
<field name="OID">admin.0.Küche-Deckenlampe</field>
<field name="CONDITION">any</field>
<field name="ACK_CONDITION"></field>
<statement name="STATEMENT">
<block type="controls_if" id="!f?6wt/Q~Qi9QLWE_WET">
<mutation else="1"></mutation>
<value name="IF0">
<block type="variables_get" id="c]bwTM-C31sdf#0VJDlc">
<field name="VAR">value</field>
</block>
</value>
<statement name="DO0">
<block type="request" id="0MrGxDLPRnNciOc2w4{h">
<mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">debug</field>
<value name="URL">
<shadow type="text" id="Efg2=01`?/W3_})IiY`}">
<field name="TEXT">http://RF-Bridge1/cm?cmnd=Backlog RfSync 8680; RfLow 270; RfHigh 840; RfCode %23AA9921</field>
</shadow>
</value>
</block>
</statement>
<statement name="ELSE">
<block type="request" id="O3e[vRC,U8~.gK2Eo}~.">
<mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">debug</field>
<value name="URL">
<shadow type="text" id="jI8P,m|8z:1*o):IE8/A">
<field name="TEXT">http://RF-Bridge1/cm?cmnd=Backlog RfSync 8680; RfLow 270; RfHigh 840; RfCode %23AA9924</field>
</shadow>
</value>
</block>
</statement>
</block>
</statement>
</block>
</xml>
Alles anzeigen
...nur mal beispielhaft kopiert.
Die Codes für meine RF-Lichtschalter habe ich z.B. frei erfunden und in den Lichtschalter angelernt. Läuft prima.
Wer so einen Blockly-Export nicht importieren kann, möge doch dieses Forum nach den bisher aufgeführten Lösungen durchsuchen.
Hab ich hier laufen mit Sonoff Dual R2.
Das Blockly würde ich Dir als Export schicken, dann ist es für Dich leichter...
Echo plus kann die OSRAM- und wohl auch IKEA-Geräte finden und bedienen. IOBROKER hat keinen blassen Schimmer davon, weil es keinen Adapter von Amazon zu IOBROKER gibt.
Wenn Du diese Leuchten wirklich nutzen willst, sieh Dir das Deconz-Gateway an.
Äh...
Die sind von Broadlink...
Bitte nutze PM, ich lese hier nicht so oft.
Welcher Motion-Sensor ?
Ich habe heute meinen zweiten bekommen und die machen Spaß.
Gute und ausreichend schnelle Erkennung wenn ich ins Bad gehe. Timeout steht auf 10 Minuten, das paßt schon. Er funktioniert auch im Arbeitszimmer, wo ich ziemlich still vor meinem Computer sitzen kann.
Leider meldet der zweite BWM als Batteriestatus immer "null", so daß mein Handy vor Warnmeldungen aus meinem Script fast platzt.
Ach ja, ich hatte auch einen SONOFF-PIR-Sensor per RF 433MHz installiert. Der reagierte einfach zu lahm.
Äh,
ich habe hier ein paar 433MHz-Fernbedienungen liegen, die bei RF-Wandschaltern dabei waren. Ich kann dir gerne einen schicken.
Die haben 4 Tasten und senden wohl auch alle den gleichen Code (? nicht getestet).
Damit kannst Du den BL und die TC2 füttern und anlernen.
Ich habe mir den RaspBee geholt und u.a. einen Xiaomi Bewegungsmelder (putzig kleine Teile) angebunden.
Schalten brauchbar schnell.
Bei ZigBee soll es wohl vermaschte und nicht-vermaschte Geräte geben.
Die Batterie-betriebenen sind dann wohl eher nicht-vermascht (Endpoint), wo soll die Energei auch herkommen.
Ich habe ein paar OSRAM Plugs, die sind als vermaschtes Gerät deklariert (Router).
Das geht ja so durch alle Threads, die man zum Thema Tasmota flashen finden kann.
Teilweise sind die Infos alt/falsch oder die Anleitungen falsch.
Teilweise geht das aktuelle Source gar nicht mit ATOM.IO zu flashen, weil man eine ältere Lib verwenden muß, aber immer hakt etwas...
;am kann die Dinger auch fertig geflasht kaufen. Wer da also keine Übung hat ... fertig kaufen.
Frisch aus der Konsole:
---
16:12:20 MQT: stat/RF-Bridge1/RESULT = {"Backlog":"Appended"}
16:12:20 MQT: stat/RF-Bridge1/RESULT = {"RfSync":8680}
16:12:21 MQT: stat/RF-Bridge1/RESULT = {"RfLow":270}
16:12:21 MQT: stat/RF-Bridge1/RESULT = {"RfHigh":840}
16:12:21 MQT: stat/RF-Bridge1/RESULT = {"RfCode":"#AA9921"}
In meinem aktuelle script steht folgende URL im Request-Blockly:
"http://RF-Bridge1/cm?cmnd=Backlog RfSync 8680; RfLow 270; RfHigh 840; RfCode %23AA9921"
Ralf,
sieh in meinen Script. Da wird '#' durch den ASCII-Wert ersetzt...
Ist ja putzig,
der PFL5604 hat einen Standby-Verbrauch von 0,15W. Evtl. hat der Sonoff mehr...
Wozu schalten ?
Der erste Script ist für mich soweit OK, wenn der richtige Datenpunkt beim SONOFF gewählt wurde.