Moin,
ohne zu tief dort mit dem Gerät befasst zuhaben gibt es doch den Dimmer 0-10V?
https://www.shelly.com/de/products/shop/shelly-plus-0-10-v-dimmer
Matze
Moin,
ohne zu tief dort mit dem Gerät befasst zuhaben gibt es doch den Dimmer 0-10V?
https://www.shelly.com/de/products/shop/shelly-plus-0-10-v-dimmer
Matze
JHOP83 das einfache NSPanel kann man mit Tasmota umflashen, das Pro wird schwieriger, da dort Android wohl drauf ist, aber ist wohl auch möglich
Weiß zwar nicht ob es möglich ist, mal das Sonoff NSPanel (Pro) angeschaut?
Der Taster schaltet immer den Jung Dimmer, so wie der von SparkyMaster gepostete Original Schaltplan würde ein Shelly 1 einfach wie der letzte Taster angeschlossen werden. Anders funktioniert es mit dem Dimmer nicht
Shelly Plus I4 in 230V und 24VDC Variante, hat einen Eingang mehr als der alte I3
Benutzt du auch die Cloud? Falls nicht mach eine 2. Shelly Instanz und binde ihn mal über MQTT in die 2.Instanz ein. Und schaue ob dort auch das Problem besteht
Du kannst übers Log sehen wann sich was wie an und abmeldet, egal ob Shelly Adapter oder MQTT Adapter, kannst oben im log auch auf den Adapter filtern. Ist er über Coap oder MQTT an gebunden?
Warum hast du sie in einem CT und nicht in einer VM? Brauche bei mir mit Proxmox nur die IOBroker VM neustarten. Außer zu Update Zwecke wird beides neugestartet
Moin,
diese findest du auf dem WebUI vom Shelly: http://IP vom Shelly/ im Browser eingeben.
Jetzt kommen wir aber zum Haken an der Sache, oben wird von einem Shelly mit Coap geredet, dieses Protokoll kann der Shelly Pro4PM aber nicht mehr, da er ein Gen2 Gerät ist, diese können nur über MQTT reden. Wie weit Hoobs das kann weiß ich nicht.
Matze
dewaldo hast du denn so wie in der Anleitung vom Shelly Adapter, das Script aus dem Adapter benutzt?
Hier mal das Script:
/ v0.1
let SCRIPT_VERSION = '0.1';
let BTHOME_SVC_ID_STR = 'fcd2';
let uint8 = 0;
let int8 = 1;
let uint16 = 2;
let int16 = 3;
let uint24 = 4;
let int24 = 5;
let BTH = {};
let SHELLY_ID = undefined;
BTH[0x00] = { n: 'pid', t: uint8 };
BTH[0x01] = { n: 'battery', t: uint8, u: '%' };
BTH[0x02] = { n: 'temperature', t: int16, f: 0.01, u: 'tC' };
BTH[0x03] = { n: 'humidity', t: uint16, f: 0.01, u: '%' };
BTH[0x05] = { n: 'illuminance', t: uint24, f: 0.01 };
BTH[0x1a] = { n: 'door', t: uint8 };
BTH[0x20] = { n: 'moisture', t: uint8 };
BTH[0x21] = { n: 'motion', t: uint8 };
BTH[0x2d] = { n: 'window', t: uint8 };
BTH[0x3a] = { n: 'button', t: uint8 };
BTH[0x3f] = { n: 'rotation', t: int16, f: 0.1 };
function getByteSize(type) {
if (type === uint8 || type === int8) return 1;
if (type === uint16 || type === int16) return 2;
if (type === uint24 || type === int24) return 3;
// impossible as advertisements are much smaller
return 255;
}
let BTHomeDecoder = {
utoi: function (num, bitsz) {
let mask = 1 << (bitsz - 1);
return num & mask ? num - (1 << bitsz) : num;
},
getUInt8: function (buffer) {
return buffer.at(0);
},
getInt8: function (buffer) {
return this.utoi(this.getUInt8(buffer), 8);
},
getUInt16LE: function (buffer) {
return 0xffff & ((buffer.at(1) << 8) | buffer.at(0));
},
getInt16LE: function (buffer) {
return this.utoi(this.getUInt16LE(buffer), 16);
},
getUInt24LE: function (buffer) {
return (
0x00ffffff & ((buffer.at(2) << 16) | (buffer.at(1) << 8) | buffer.at(0))
);
},
getInt24LE: function (buffer) {
return this.utoi(this.getUInt24LE(buffer), 24);
},
getBufValue: function (type, buffer) {
if (buffer.length < getByteSize(type)) return null;
let res = null;
if (type === uint8) res = this.getUInt8(buffer);
if (type === int8) res = this.getInt8(buffer);
if (type === uint16) res = this.getUInt16LE(buffer);
if (type === int16) res = this.getInt16LE(buffer);
if (type === uint24) res = this.getUInt24LE(buffer);
if (type === int24) res = this.getInt24LE(buffer);
return res;
},
unpack: function (buffer) {
// beacons might not provide BTH service data
if (typeof buffer !== 'string' || buffer.length === 0) return null;
let result = {};
let _dib = buffer.at(0);
result['encryption'] = _dib & 0x1 ? true : false;
result['BTHome_version'] = _dib >> 5;
if (result['BTHome_version'] !== 2) return null;
// can not handle encrypted data
if (result['encryption']) return result;
buffer = buffer.slice(1);
let _bth;
let _value;
while (buffer.length > 0) {
_bth = BTH[buffer.at(0)];
if (typeof _bth === 'undefined') {
console.log('Error: unknown type');
break;
}
buffer = buffer.slice(1);
_value = this.getBufValue(_bth.t, buffer);
if (_value === null) break;
if (typeof _bth.f !== 'undefined') _value = _value * _bth.f;
result[_bth.n] = _value;
buffer = buffer.slice(getByteSize(_bth.t));
}
return result;
},
};
let lastPacketId = 0x100;
// Callback for the BLE scanner object
function bleScanCallback(event, result) {
// exit if not a result of a scan
if (event !== BLE.Scanner.SCAN_RESULT) {
return;
}
// exit if service_data member is missing
if (
typeof result.service_data === 'undefined' ||
typeof result.service_data[BTHOME_SVC_ID_STR] === 'undefined'
) {
// console.log('Error: Missing service_data member');
return;
}
let unpackedData = BTHomeDecoder.unpack(
result.service_data[BTHOME_SVC_ID_STR]
);
// exit if unpacked data is null or the device is encrypted
if (
unpackedData === null ||
typeof unpackedData === "undefined" ||
unpackedData["encryption"]
) {
console.log('Error: Encrypted devices are not supported');
return;
}
// exit if the event is duplicated
if (lastPacketId === unpackedData.pid) {
return;
}
lastPacketId = unpackedData.pid;
unpackedData.rssi = result.rssi;
unpackedData.address = result.addr;
// create MQTT-Payload
let message = {
scriptVersion: SCRIPT_VERSION,
src: SHELLY_ID,
srcBle: {
type: result.local_name,
mac: result.addr
},
payload: unpackedData
};
console.log('Received ' + JSON.stringify(unpackedData));
if (MQTT.isConnected()) {
MQTT.publish(SHELLY_ID + '/events/ble', JSON.stringify(message));
}
}
// Initializes the script and performs the necessary checks and configurations
function init() {
// get the config of ble component
let bleConfig = Shelly.getComponentConfig('ble');
// exit if the BLE isn't enabled
if (!bleConfig.enable) {
console.log('Error: The Bluetooth is not enabled, please enable it in the settings');
return;
}
// check if the scanner is already running
if (BLE.Scanner.isRunning()) {
console.log('Info: The BLE gateway is running, the BLE scan configuration is managed by the device');
} else {
// start the scanner
let bleScanner = BLE.Scanner.Start({
duration_ms: BLE.Scanner.INFINITE_SCAN,
active: true
});
if (!bleScanner) {
console.log('Error: Can not start new scanner');
}
}
BLE.Scanner.Subscribe(bleScanCallback);
}
Shelly.call('Mqtt.GetConfig', '', function (res, err_code, err_msg, ud) {
SHELLY_ID = res['topic_prefix'];
init();
});
Alles anzeigen
Es kommt doch so gesehen im Shelly Adapter an:
oben unter BLE die einzelnen BLU Geräte ( Ich habe nur Buttons)
unten unter dem Shelly mit aktiven BLE die Events
Ja da steht Own FW beziehungsweise Custom FW, nicht Original FW. Andere Möglichkeit wäre ausbauen und über Anschluss C und Null an einem Standort kurz in Betrieb nehmen wo du Internet hast zum Updaten.
Matze
Also zu kalt glaube ich nicht:
dann würde ich den auf 1882 in der Shelly Instanz lassen und bei deinen 22 Shellys nach und nach den Port ändern, tritt es dann wieder auf, sollte man in dem Moment den Shelly heraus finden der dort Mist macht.
Wenn es dann nicht mehr auftritt, müsstest du mal schauen ob du noch was im Netzwerk laufen hast was ja auch unbewusst einfach auf diesem Port sendet
Außerdem kann man doch im internen Netzwerk nur mit IPV4 arbeiten ... oder ?
Trotz dessen können Geräte auch eine IPv6 haben, wo man nicht denkt das Sie eine hätten:
Beispiel NSPanel mit Tasmota:
benutzt du FB oder anderes Equipment wie Unifi etc.
Wenn du den Port im Shelly Adapter änderst und auch in den Shellys wie oben Dewaldo schon schrieb, wandert der Fehler mit?
Moin,
nur mal so gefragt, hast du vllt noch was anderes im Smarthomeoder Netzwerk was aus versehen auf dem MQTT Port vom Shelly Adapter sendet? die Adresse oben sieht extrem nach einer IPv6 aus.
oder den MQTT Adapter installiert im IOB? der hat standardmäßig den gleichen Port wie der Shelly Adapter
Für mich stellt sich die Frage handelt es sich um alle Rollläden oder nur um 1-2. wenn letzteres wie alt sind diese ungefähr?