Ich habe die Bridge schon ein halbes Jahr und ich kann alles über 433MHz in IoBroker ansteuern. 5 Bewegungsmelder 10 Fenster-Tür-Kontakte mehrer Handsender ...... und die Reichweite ist perfekt.
Beiträge von mera
-
-
Euere Programmierung hat mich auf eine Idee gebracht!
Jedoch möchte ich keinen Bewegungsmelder verwenden. Der würde bei meinen Katzen ständig angehen.Ist es den auch möglich auch das Licht automatisch ausgehen zu lassen. z.B. 5 Min nach einem Anschaltbefehl?
Ich habe es mal versucht, doch leider funktioniert es nicht. Vielleicht kann mir jemand erklären, was in meinem Skript nicht stimmt.
porbiere mal so
-
-
-
Danke nochmal für das Script. Es läuft eigentlich alles bestens, mir ist nun aber folgende Meldung im Log aufgefallen:
CodeWrong type of mqtt.0.tele.sonoff-bridge-01.Data: "string". Please fix, while deprecated and will not work in next versions. at JSONtoRF (script.js.Javascipte-Umwandlungen.Sonoff_Bridge_MQTT:11:5) at Object.<anonymous> (script.js.Javascipte-Umwandlungen.Sonoff_Bridge_MQTT:17:5)
Ich habe eigentlich Dein Script 1zu1 übernommen, nur die Objekte sitzen an anderen Positionen.
Soll ich das einfach ignorieren? Muss ich mir Sorgen zukünftig machen?
Benutzt Du zwischenzeitlich Admin 3 im iobroker?
Ich habe mein Script auch ein bisschen geändert.
################
//{"RfReceived":{"Sync":12560,"Low":420,"High":1230,"Data":"D0FAAE","RfKey":"None"}}
var idJSON = 'mqtt.0.tele.Sonoff_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'; // Datenpunkt-ID mit JSON-String
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);
//});
on({id: "mqtt.0.tele.Sonoff_Bridge.RESULT"/*tele/Sonoff_Bridge/RESULT*/, change: "any"}, function (dp) {
JSONtoRF(dp.state.val);
});
schimmer-media.de/attachment/2375/
RAW sollte ungefähr so aussehen:
{
"from": "system.adapter.admin.0",
"ts": 1515779237492,
"common": {
"name": "Data",
"role": "variable",
"type": "string",
"desc": "funk",
"def": "",
"read": true,
"write": true,
"custom": {
"sql.0": {
"enabled": true,
"changesOnly": true,
"debounce": "",
"retention": "31123000",
"changesRelogInterval": "",
"changesMinDelta": "",
"storageType": ""
}
}
},
"native": {
"topic": "tele/Sonoff_Bridge/Data"
},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
},
"_id": "mqtt.0.Data",
"type": "state"
}
-
Also bei mir steht die Bridge unten im Flur und der Bewegungsmelder auf dem Dachboden schaltet ohne Problem dort das Licht ein.
-
Ein Touch von mir habe ich zu fest in die Dose geschraubt, da hat der Schalter auch schlecht reagiert.
Nachdem ich ihn etwas gelöst habe, funktioniert er wieder gut
-
Da bluefox (der, der den Sonoff-Adapter geschrieben hat) noch nicht die results der Bridge intrigiert hat, habe ich das RF-Signal über den MQTT-Adapter ausgelesen.
Der MQTT-Adapter gibt dann ein result aus der etwa so aussieht.
{"RfReceived":{"Sync":11890,"Low":390,"High":1210,"Data":"7AACF1","RfKey":"None"}}
Diesen habe ich mit folgenden Script zerlegt.
schimmer-media.de/attachment/214/
schimmer-media.de/attachment/215/
var idJSON = 'mqtt.0.tele.Sonoff_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'; // Datenpunkt-ID mit JSON-String
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);
});
Dann nur noch ein Object unter mqtt.0 als Datenpunkt anlegen und der Wert ("7AACF1") wird ausgegeben.
Danach kann das RF-Signal weiter verarbeitet werden.
schimmer-media.de/attachment/217/
schimmer-media.de/attachment/218/
{
"_id": "mqtt.0.Data",
"type": "state",
"common": {
"name": "Data",
"role": "",
"type": "string",
"desc": "funk",
"def": "",
"read": true,
"write": true
},
"native": {},
"from": "system.adapter.admin.0",
"ts": 1315777750245,
"acl": {
"object": 1638,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1638
}
}