Hi Dutchman,
Als erstes, vielen Dank für diese Eintrag, gut Inspiration
Als zweites, entschuldigung für meine deutsche Sprache, bin auch Holländer....
Ich habe schon für einzige Zeit OpenHab gebraucht weil es für OpenHab, Google Assistant unterstützung gibt. Seit 2 Wochen spiele ich herum mit ioBroker und habe, gleich wie du, gedacht OpenHab noch immer zu gebrauchen für die Kommunikation mit Google.
Auch will ich gerne das Basic UI von OpenHAB auf meinem Handy nutzen. So verzögerungen zwichen OH and ioBroker müssen wie kurz wie möglich sein.
Befor ich diese eintrag von dir gefunden habe, habe ich per script, 2 states direkt mit einander verknüpft.
on(OHobjname,IOobjname);
on(IOobjname,OHobjname);
Ich hatte erwartet das dies zu einem "endless loop" führen sollte, weil die 2 States einander anstoßen, aber dies funktioniert allerdings Prima. Die states werden in beide Richtungen sofort übernommen.
Die "naming convention" für die items in OpenHab habe ich von dir übernommen um automatisch die states zu verknüpfen
Ich habe jetzt das folgendes script, was Prima funktioniert:
var AllOpenHABChannels = $('state[id=openhab.0.items.*]');
AllOpenHABChannels.each(function(obj) {
var OHobjname = obj
var IOobjname = getObject(obj).native.name
var find = ["____"];
var replace = ['#'];
IOobjname = replaceStr(IOobjname, find, replace);
find = ["___"];
replace = ['-'];
IOobjname = replaceStr(IOobjname, find, replace);
find = ["__"];
replace = ['.'];
IOobjname = replaceStr(IOobjname, find, replace);
log("Linking OpenHAB: " + OHobjname + " to: " + IOobjname + " writable: " + getObject(IOobjname).common.write);
// only link writable items in ioBroker to OpenHab
if (getObject(IOobjname).common.write) {
on(OHobjname,IOobjname);
}
on(IOobjname,OHobjname);
});
// Replacement function to items where reguar replace with split fails
function replaceStr(str, find, replace) {
for (var i = 0; i < find.length; i++) {
str = str.replace(new RegExp(find[i], 'gi'), replace[i]);
}
return str;
}
Weil ich gerade angefangen bin mit ioBroker möchte ich gerne deine Meinung haben. Habe ich Sache übersehen?