NEWS
SONOFF[emoji768] PIR2 Funk-Infrarotdetektor
-
Weiss jemand ob man den auch einbinden kann, bzw. hat den jemand im Einsatz?
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201801 ... 12c3f1.jpg">https://uploads.tapatalk-cdn.com/20180107/792a88797c7819957509b2410812c3f1.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201801 ... c471a8.jpg">https://uploads.tapatalk-cdn.com/20180107/7428b93ee3d40c4378c4981e0bc471a8.jpg</link_text>" />Gesendet von meinem SM-G930F mit Tapatalk~~~~
-
Ja habe ich im Einsatz in Verbindung mit einer Sonoff RF Bridge am Iobroker.
-
Geht das ganz einfach, oder muß man da irgendetwas flashen?
-
Hallo Georgius,
ich habe einen ähnlichen PIR- Sensor von Digoo und das Einbinden ist sehr einfach über ein paar Skripte zu bewerkstelligen (ist nix wildes, habe sogar ich geschafft).
Die Skripte sind nicht von mir sondern aus dem WWW. Ich weiß nicht, ob ich die Seite hier verlinken darf. Ansonsten vielen Dank an BigWumpus, der allerdings das Skript auch nur aus dem Netz hatte
Du benötigst eine geflashte Sonoff RF Bridge und den PIR
Als erstes erstellst du ein neues Java- Skript:
! 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);
! });RF-Bridge1 auf deinen eigenen RESULT-Datenpunkt der RF-Bridge anpassen (steht unter Objekte-> mqtt.)
Die Datenpunkte "mqtt.0.RF_Sensor" und "mqtt.0.RF_Data" als Zeichenkette unter Objekte anlegen,
und dann einen Script schreiben, der auf Änderungen von RF_Data lauert.
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">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>
! <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?HoT1HXog(%"><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_5VqGea8m7JdKo: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>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 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">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>
! <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>Als nächstes schaust du bewegungslos auf die Konsoloe deiner RF- Bridge, bewegst dich dann ganz spontan und schon erscheint der RF- Code von deinem PIR (vorausgesetzt du hast ihn eingeschaltet und er ist in der Nähe)
Diesen Code nimmst du dann und setzt ihn in folgendes Skript ein (das ist von mir zusammengeklaut worden, damit schalte ich alles mögliche)
-
für das XXXXX trägst du den RF- Code von deinem PIR ein.
-
für sonoff.0.DVES_DXXXXXXX.POWER die Lampe oder sonst irgendwas was eingeschaltet werden soll.
Ich habe noch eine Zeitschaltung eingebaut. Das ist der Wert 20000 . Dieser Wert wird in Millisekunden gerechnet
! var DASHBUTTON = 'mqtt.0.RF_Data';
! var AKTOR = 'sonoff.0.DVES_DXXXXXXX.POWER'; // Hier die ID des Aktors eintragen.
! on({id: DASHBUTTON, val: 'XXXXXXX'}, function (obj) {
! var b = getState(AKTOR).val;
! if (b === false) { setState(AKTOR, true); }
! { setStateDelayed(AKTOR, false, 20000 ,false); }
! }
! );Das ganze ohne Zeitsteuerung sieht so aus (einfach an/ aus)
! var DASHBUTTON = 'mqtt.0.RF_Data';
! var AKTOR = 'sonoff.0.DVES_XXXXXXX1.POWER'; // Hier die ID des Aktors eintragen.
! on({id: DASHBUTTON, val: 'XXXXXX'}, function (obj) {
! var b = getState(AKTOR).val;
! if (b === false) { setState(AKTOR, true); } else { setState(AKTOR, false); }
! }
! );Ich hoffe ich konnte helfen
Viele Grüße,
Henning
-
-
Hi,
mein Problem kommt dem hier am nächsten. Wie so viele bin ich Anfänger. Prinzipiell läuft alles. ioBroker!!
Sonoff Adapter läuft.
Ich würde auch gerne einen Bewegungsmelder in ein Datenfeld schreiben.20:18:27 MQT: tele/C-M-Bridge/RESULT = {"Time":"2020-05-11T20:18:27","RfReceived":{"Sync":12590,"Low":380,"High":1200,"Data":"F7327E","RfKey":"None"}}
Das steht in meiner Bridge. Mir ist klar das ich mit "F7327E" weiter arbeiten kann. Dies mache ich auch schon. Der Schirm der Lösung oben ist, dass dieser Wert in ein Datenfeld geschrieben wird. irgendwie schaffe ich es aber nicht. Ich weiss nicht wie ich die 3 Zeilen mit den Datenpunkten anpassen muss.
mein script sieht so aus:
var idJSON = 'mqtt.0.tele.C-M-Bridge.RESULT'; // Datenpunkt-ID mit JSON-String
var RFWert;
function JSONtoRF(json) {
var obj = JSON.parse(json);
RFWert = obj.RfReceived.Data;
var idJSON = 'mqtt.0.Sensor';
var idRFWert = 'mqtt.0.Data';
setState(idRFWert, RFWert);
}
JSONtoRF(getState(idJSON).val); // Script start
on(idJSON, function(dp) { // triggern bei Wertänderung
JSONtoRF(dp.state.val);
});die beiden Datenpunkte habe ich angelegt:
wenn ich das script starte kommt folgendes:
Danke für eine Hilfe.
-
Ergänzen möchte ich:
So sieht das Objekt bei sonoff aus:
hier nur eine anderer Wert eines anderen Sensorsein MQTT Adapter läuft als Client ... weiss aber nicht ob dich den überhaupt brauche oder ob der sonoff Adapter reicht:
Danke!