Hallo
Ich habe ein Problem mit Shelly Plus i4.
Momentan ist die 0.12.0 Firmwahre drauf.
Wenn der Shelly angelernt wird ist noch alles OK, er meldet sich im Heimnetz an und die Bedienung über die Weboderfläche funktioniert wie gewohnt.
Bei der WiFi Einstellung zeigt er rssi:-29dBm am was nicht verwunderlich ist da ein Fritz 1200Ax in 1,5m Abstand hängt.
Der Einbau des Shelly ist ein I4,I4,Dimmer2,Dimmer2,Dimmer2,Dimmer2.
An den ersten I4 sind Taster am zweiten BWM angekoppelt.
Sorry für die lange Einleitung aber das könnte wichtig sein.
Problem macht nur der erste I4, er schaltet plötzlich auf einen Anderen WLAN Knoten im Netzwerk (Mash).
Da mein Haus über 3 Stockwerke geht ist ein mehrfaches Verstärken notwendig.
Jeder seih es nun ein 1200AX oder 4040 sind mit Kabel an die an die Hauptbox angebunden.
Der I4 meldet sich wild im Mash an mal hier mal da (kann man in der Fritz Software gut sehen wenn auch mühsam).
Wenn er an einen Punkt kommt der nur noch rssi:-79dBm hat fängt er an Probleme zu machen und der I4 ist Minutenlang nicht zu erreichen.
Ich dachte das der I4 Defekt seih und habe Ihn ersetzt, aber weit gefehlt, der Neue macht das Selbe Spiel.
Die komplette Geschichte ist erst Aufgetreten als ich vor einigen Wochen einen Fatalen Elektroschaden hatte und dabei die Beiden I4 zerstört wurden.
Ich habe die ersetzt und dabei die Firmwahre 0.12.0 aufgespielt.
Nun kann es ja sein das genau Die das Problem ist aber wo bekomme ich die Alte her um das auszuprobieren?
Warum der I4 der direkt daneben hängt nicht solche Faxen macht ist mir ein Rätzel.
Auch läuft auf beiden das gleiche Scrips ich hänge es mal an möglicherweise ist auch das der Auslöser.
Ach ja noch zu erwähnen ist das Das Script nicht wieder anläuft obwohl ich nach meiner Auffassung alles gemacht habe damit es das macht.
Möglich das einer von Euch mir helfen kann, so ein Profi in Shelly bin ich nun beileibe auch nicht.
Nachtrag :
Ich habe den zweiten I4 mal den Repeater aktiviert.
Dann den ersten (der Probleme machte) auf den zweiten aufgeschaltet siehe da es geht, rssi:-9dBm.
Das kann aber nicht die Lösung sein, denn so komme ich nicht mehr an die Weboberfläche zum konfigurierern ran.
Ich fahre meine Shellys nur mit MQTT und konfiguriere über die Weboberfläche.
Meine Analyse ist das die Neue Firmwahre nicht mit einem Fritz Mash zurecht kommt und dann rumzickt.
Weiterhin habe ich festgestellt das der I4 immer versucht auf die Box4040 aufzuschalten obwohl diese am weitesten weg ist und dann beginnt das Dilemma.
Ach ja noch was, das Script ist ab und an weg wenn der I4 in so eine Error Schleife fährt.
Durchweg sehr BESCHEIDEN und NERVIG.
Möglicherweise liest ja der Softi der das gebaut hat mit, Bitte Bitte schnelle Abhilfe !!!
Hier das Script das da läuft.
// Script für den SHELLY i4
// Tastendruck SW1-SW4 auswerten 0-2 und diese dem MQTT übergeben
// Zählerbeeinflussung vom MQTT den Tastenzählern zuweisen
// --------------------------------------------------------------
//Variabeln deffinieren
let CONFIG = {
device_id: "",
device_mac: "",
device_model: "",
fw_ver: "",
topic_prefix: "",
wifi_ip: "",
};
let Taste = [0,0,0,0]; //Tate SW1 - SW4
let T_Name = ["Nr:1","Nr:2","Nr:3","Nr:4"]; //Name der Taste im MQTT
function isConfigReady() {
for (let key in CONFIG) {
if (CONFIG[key] === "") return false;
}
return true;
}
Shelly.call("Shelly.GetDeviceInfo", null, function (info) {
CONFIG.device_id = info.id;
CONFIG.device_mac = info.mac;
CONFIG.device_model = info.model;
CONFIG.fw_ver = info.fw_id;
});
//Read ip from status
Shelly.call("WiFi.GetStatus", null, function (status) {
if (status.status === "got ip") {
CONFIG.wifi_ip = status.sta_ip;
}
});
//Monitor ip changes
Shelly.addStatusHandler(function (status) {
if (status.component === "wifi" && status.delta.status === "got ip") {
CONFIG.wifi_ip = status.delta.sta_ip;
}
});
//Read mqtt topic prefix
Shelly.call("MQTT.GetConfig", null, function (config) {
CONFIG.topic_prefix = config.topic_prefix;
});
// Eingänge abfragen und Tastendruck von 0 - 2 zählen
Shelly.addEventHandler
(
function (event)
// Event aktivieren
{
if(event.name==="input" && event.info.state === true)
{
let id = event.info.id; //id = Welcher Eingang
if (id > -1 && id < 4) //SW1 - SW3
{
Taste[id] = Taste[id] + 1;
if (Taste[id] === 3)
{
Taste[id] = 0;
}
//print(deviceInfo.id,"/Taste/",T_Name[id],JSON.stringify(Taste[id]));
MQTT.publish(CONFIG.topic_prefix + "/Taste/"+T_Name[id], JSON.stringify(Taste[id]));
}
}
}
)
// Announcen die MQTT ankommen bearbeiten
function announceHandler(topic, message)
{
let kanal = 0;
kanal = JSON.parse(topic.slice(topic.length - 1,topic.length)) -1;
if (message !== "0" && message !== "1" && message !== "2") return;
Taste[kanal] = JSON.parse(message);
MQTT.publish(CONFIG.topic_prefix + "/Taste/"+T_Name[kanal], message);
}
// Announcen im MQTT anmelden
function subscribeToTopics()
{
MQTT.subscribe(CONFIG.topic_prefix + "/Taste/command_Nr_1", announceHandler);
MQTT.subscribe(CONFIG.topic_prefix + "/Taste/command_Nr_2", announceHandler);
MQTT.subscribe(CONFIG.topic_prefix + "/Taste/command_Nr_3", announceHandler);
MQTT.subscribe(CONFIG.topic_prefix + "/Taste/command_Nr_4", announceHandler);
}
//Start a timer that checks if all fields in CONFIG are populated
let configReadyTimer;
function connectToMQTT() {
configReadyTimer = Timer.set(3000, true, function () {
if (!isConfigReady()) return;
if (!MQTT.isConnected()) return;
subscribeToTopics();
Timer.clear(configReadyTimer);
});
}
connectToMQTT();
MQTT.setDisconnectHandler(function () {
connectToMQTT();
});
Alles anzeigen