[Modul] Shelly

Moin,

dein IPS MQTT Server hört auch auf auf 1883 und nicht auf 1024?

Hallo Norden,

Auch Dir Danke fürs Helfen und den Hinweis. Ja, der MQTT Server läuft auf dem Port 1883. Da habe ich schon einige Tasmotas laufen. Im Shelly Webfront habe ich die IP des Symcon Servers einmal mit und einmal ohne Port versucht. Gefunden wird der Shelly in Symcon in beiden Varianten. Habe es jetzt wieder mit der Portangabe :1883 im direkten Anschluss an die IP eingegeben, gespeichert und neu gestartet. Die Portangabe wird im Webfront im Beipsiel Text eg:myserver:1883 angegeben. darin habe ich den Server angegeben.
x.x.x.x:1883

Erstellen kann ich den Shelly leider in beiden Varianten nicht.

Freundliche Grüße,
Christian

Hallo norden,
hallo Nall-chan,

ich habe es gerade hinbekommen. Vorher hatte ich als Instanz den Shelly 1 manuell angelegt. Beim Versuche diesen zu aktivieren, ist der Schalter selbstständig wieder aus gegangen.
Ich habe nun den Shelly 1 Mini Gen 3 manuell als Instanz mit der im Webfront angegebenen Client-ID angegeben und als Modell den Shelly 1 Mini Gen 3 gewählt.
Damit hat es nun manuell nun funktioniert.

Danke für das Helfen und die Unterstützung.
Freundliche Grüße,
Christian

Hallo Kai,
das Shelly Wall Display sieht als Taster/Display ganz schick aus, aber anscheinend kann ich es bis jetzt nicht ohne Shelly Cloud einrichten/programmieren.
Hast du eine Unterstützung mit deinem Shelly-Modul geplant? Kann ich dabei irgendwie unterstützen?
Grüße aus dem Saarland
Michael

Hallo,

ich habe mal versucht den neuen 0-10 Volt Dimmer einzubinden. Es klappt so mäßig. Die Instanz kann nicht erstellt werden.

Angepasst habe ich die module.php, Zeile 202 und 539.

Dann noch ein Verzeichnis für das Gerät mit hoffentlich passendem Inhalt angelegt.

Was habe ich vergessen?

Gruß

Marc
Shelly.7z (14,8 KB)

Hallo,
ich versuche gerade einen Shelly Dimmer Pro 2PM in Betrieb zu nehmen und bekomme eine Fehlermeldung beim Versuch über das Modul zu schalten: „error“:{„code“:404,„message“:„No handler for Switch.Set“}
Der Status vom Dimmer wird korrekt nach Symcon übertragen und der Dimmer lässt sich auch über die Shelly App ganz normal steuern.

TXT: 08.07.2024, 18:45:07 |  sendMQTTMQTT Server | {"DataID":"{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}","PacketType":3,"QualityOfService":0,"Retain":false,"Topic":"shellyprodm2pm-08f9e0e70848\/rpc","Payload":"{\"id\":1,\"src\":\"user_1\",\"method\":\"Switch.Set\",\"params\":{\"id\":0,\"brightness\":null,\"transition\":0,\"toggle_after\":0}}"}
HEX: 08.07.2024, 18:45:07 |  sendMQTTMQTT Server | 7B 22 44 61 74 61 49 44 22 3A 22 7B 30 34 33 45 41 34 39 31 2D 30 33 32 35 2D 34 41 44 44 2D 38 46 43 32 2D 41 33 30 43 38 45 45 42 34 44 33 46 7D 22 2C 22 50 61 63 6B 65 74 54 79 70 65 22 3A 33 2C 22 51 75 61 6C 69 74 79 4F 66 53 65 72 76 69 63 65 22 3A 30 2C 22 52 65 74 61 69 6E 22 3A 66 61 6C 73 65 2C 22 54 6F 70 69 63 22 3A 22 73 68 65 6C 6C 79 70 72 6F 64 6D 32 70 6D 2D 30 38 66 39 65 30 65 37 30 38 34 38 5C 2F 72 70 63 22 2C 22 50 61 79 6C 6F 61 64 22 3A 22 7B 5C 22 69 64 5C 22 3A 31 2C 5C 22 73 72 63 5C 22 3A 5C 22 75 73 65 72 5F 31 5C 22 2C 5C 22 6D 65 74 68 6F 64 5C 22 3A 5C 22 53 77 69 74 63 68 2E 53 65 74 5C 22 2C 5C 22 70 61 72 61 6D 73 5C 22 3A 7B 5C 22 69 64 5C 22 3A 30 2C 5C 22 62 72 69 67 68 74 6E 65 73 73 5C 22 3A 6E 75 6C 6C 2C 5C 22 74 72 61 6E 73 69 74 69 6F 6E 5C 22 3A 30 2C 5C 22 74 6F 67 67 6C 65 5F 61 66 74 65 72 5C 22 3A 30 7D 7D 22 7D 
TXT: 08.07.2024, 18:45:07 |          JSON:DataID | {7F7632D9-FA40-4F38-8DEA-C83CD4325A32}
HEX: 08.07.2024, 18:45:07 |          JSON:DataID | 7B 37 46 37 36 33 32 44 39 2D 46 41 34 30 2D 34 46 33 38 2D 38 44 45 41 2D 43 38 33 43 44 34 33 32 35 41 33 32 7D 
TXT: 08.07.2024, 18:45:07 |      JSON:PacketType | 3
HEX: 08.07.2024, 18:45:07 |      JSON:PacketType | 33 
TXT: 08.07.2024, 18:45:07 |         JSON:Payload | {"id":1,"src":"shellyprodm2pm-08f9e0e70848","dst":"user_1","error":{"code":404,"message":"No handler for Switch.Set"}}
HEX: 08.07.2024, 18:45:07 |         JSON:Payload | 7B 22 69 64 22 3A 31 2C 22 73 72 63 22 3A 22 73 68 65 6C 6C 79 70 72 6F 64 6D 32 70 6D 2D 30 38 66 39 65 30 65 37 30 38 34 38 22 2C 22 64 73 74 22 3A 22 75 73 65 72 5F 31 22 2C 22 65 72 72 6F 72 22 3A 7B 22 63 6F 64 65 22 3A 34 30 34 2C 22 6D 65 73 73 61 67 65 22 3A 22 4E 6F 20 68 61 6E 64 6C 65 72 20 66 6F 72 20 53 77 69 74 63 68 2E 53 65 74 22 7D 7D 
TXT: 08.07.2024, 18:45:07 | JSON:QualityOfService | 1
HEX: 08.07.2024, 18:45:07 | JSON:QualityOfService | 31 
TXT: 08.07.2024, 18:45:07 |          JSON:Retain | FALSE
HEX: 08.07.2024, 18:45:07 |          JSON:Retain | 46 41 4C 53 45 
TXT: 08.07.2024, 18:45:07 |           JSON:Topic | user_1/rpc
HEX: 08.07.2024, 18:45:07 |           JSON:Topic | 75 73 65 72 5F 31 2F 72 70 63 

Beim Versuch über die Schieberegler zu dimmen erhalte ich sofort eine Fehlermeldung:
Warning: Undefined variable $value in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.shelly\ShellyProDimmerPM\module.php on line 220
(Code: -32603)

Mache ich hier etwas falsch, oder ist der Dimmer noch nicht richtig im Modul eingebunden?
Firmware ist 20240625-123141/1.3.3-gbdfd9b3, habe es aber auch mit der neuen Beta 1.4.0-beta1 versucht.

Edit: Das Schalten habe ich hinbekommen, indem ich in der module.php die method in der Funktion SwitchMode auf Light.Set umgeschrieben habe. In der Funktion SetBrightness war auch ein Fehler:
‚brightness‘ => $value habe ich zu ‚brightness‘ => $brightness geändert, das Dimmen funktioniert aber immer noch nicht.

Edit2:
transition und toggle_after dürfen nicht 0 sein, deswegen hat die Funktion setBrightness nicht funktioniert. Meine functions in der module.php sehen jetzt so aus und funktionieren damit erstmal:

    public function SetBrightness(int $id, int $brightness, int $transition = 1, int $toggle_after = 0)
    {
        $Topic = $this->ReadPropertyString('MQTTTopic') . '/rpc';

        $Payload['id'] = 1;
        $Payload['src'] = 'user_1';
        $Payload['method'] = 'Light.Set';
        $Payload['params'] = ['id' => $id, 'brightness' => $brightness, 'transition_duration' => $transition];
		if($toggle_after != 0)$Payload['params']['toggle_after'] = $toggle_after;

        $this->sendMQTT($Topic, json_encode($Payload));
    }
    private function SwitchMode(int $id, bool $value)
    {
        $Topic = $this->ReadPropertyString('MQTTTopic') . '/rpc';

        $Payload['id'] = 1;
        $Payload['src'] = 'user_1';
        $Payload['method'] = 'Light.Set';
        $Payload['params'] = ['id' => $id, 'on' => $value];

        $this->sendMQTT($Topic, json_encode($Payload));
    }
}

Hab von Shelly das Plug & Play Starter Kit Einbruchschutz gekauft; das besteht aus:
1x Shelly Bluetooth Gateway
3x Shelly Bluetooth Bewegungsmelder
3x Shelly Bluetooth Tür-Fensterkontakt

Meine Versuche die Sensoren mit IPS brauchbar zu verbinden sind bisher nicht besonders befriedigend.

Nach Lesen im [Modul] Shelly Bereich (4337 Msg) hab ich für meine Shellys folgende Erkenntnis:
• Für mein ‚Shelly BLU Gateway‘ brauche ich ein (oder mehere) -Skripte, die auf die ‚ShellyBLU‘-Devices ausgerichtet sind
• Da die MQTT-Device-Instanzen der Fa. IP-Symcon unbrauchbar sind, muß ich die ‚ShellyBLUGateway‘, ‚ShellyBLU Motion‘, ‚ShellyBLUDoorWindow‘ Module verwenden.

Was bisher geschah:

  • Das Shelly Bluetooth Gateway hab ich im Access Point-Modus mit meinem wLAN verbunden:
  • WiFi enabled, SSID, Password eingegeben
  • Device info: als Gerätename ‚ShGW1‘ eingetragen (Shelly Gateway #1), Device id belassen
  • MQTT settings; alles eingeschaltet (Enable ‚MQTT Control‘. Enable RPC over MQTT, RPC status notifications over MQTT, Generic status update over MQTT, No SSL. MQTT prefix ‚ShGW1‘,
  • Server: 192.168.0.10:1883 (mein IPS-PC), Client ID ‚ShGW1‘, Username und Password eingegeben

Unter Scripts habe ich das ble-shelly-motion.js eingefügt aus der Skripting Library von Shelly (BLE in Scripting - Shelly BLU Motion script actions [ble-shelly-motion.js]: „Example how to use a Shelly BLU Motion, read advertising data, decode and turn on switch“)
Modifiziert: allowedMacAddresses: null (d.h. MAC-Filter ausgeschaltet).

Nachdem ich noch folgendes Script gestartet habe:
Shelly BLU devices event handler for scripts [ble-shelly-blu.js]
„Script that handles and parses events from all Shelly BLU devices and emits event with the received data. Made to be used with „ble-events-handler.js“ script that handles the events“
kamen plötzlich Werte:am Shelly BLU Motion-Modul an.

Die ganzen Zusammenhänge verstehe ich nicht und hab auch auf den Web-Seiten der Fa. Shelly keine Erklärung gefunden außer dass ich einen Scripting-Kurs für 66€ buchen kann und dann in 6 Monaten Bescheid weiss.

Bevor ich jetzt weiter für mich alleine rumexperimentiere und dabei evtl. das Rad neu erfinde wollte ich mal fragen, ob schon jemand eine Lösung speziell für das Shelly Bluetooth Gateway hat und bereit ist, diese unter einem Thema für Anleitungen posten (z.B. skripte-php-sql-anleitungen).

Viele Grüsse
Harald

Hallo,

Vielleicht kann mir jemand einen Tipp geben, warum kein Shelly im Modul angezeigt wird? Im MQTT Server sind die Shellys sichtbar und es ist ein Plug S, sowie ein Pro 2. Laut Beschreibung werden beide Typen unterstützt. Das Modul habe ich auch als Beta installiert, aber dies ändert auch nichts.

Kennt jemand dieses Problem?


Das ist der Konfigurator für die BLU Geräte… Sprich, du hast den falschen Konfigurator angelegt.
Michael

Hallo Michael,
vielen Dank für die schnelle Antwort.

Manchmal kann es so einfach sein, mit dem anderen Konfigurator geht es. Ich habe die „V2 Version“ genutzt, da ich keinen Unterschied sehe. Mir ist aber aufgefallen, dass nur bei einem Gerät die IP Adresse ausgelesen wird, ist das normal?

die neueren Endgeräte übermitteln keine IP mehr - ist zu vernachlässigen und wenn überhaupt nur ein Schönheitsfehler :wink:

V2 ist die aktuelle Konfigurator-Version. V1 braucht man nicht mehr.

Hallo sunnyww,

vielen Dank für dir Erklärung.

1 „Gefällt mir“

Ich schaue mir das bei Gelegnheit an. :slight_smile:

Das kannst du einfach ignorieren.

Das Shelly 1 Mini Gen 3 sollte aber schon funktionieren.
Kannst du mal ein Debug vom Konfigurator posten, dann habe ich da im Konfigurator einfach etwas vergessen einzuabeun.

Man kann das Display leider nicht wirklich ohne die Cloud bedienen, es kommen ein paar Werte per MQTT aber nicht wirklich viel, das was über MQTT reinkommt werde ich noch einbauen.

In der aktuellen Beta Version sollte der Dimmer schon lange eingebunden sein.

In der aktuellen Beta Verison ist das gefixt.

Du musst auf dem BLE Gateway das Script einrichten: ble-shelly-blu.js
MQTT dort aktivieren udn mti dem MQTT Server von Symcon verknüpfen.

Wenn du das erledigt hast, dann legst du den Shelly BLU Configurator an und dann sollten dort schon die Geräte auftauchen.

Grüße,
Kai

Moin Kai,

ich habe mal die Beta installiert, aber das Modul wird nicht gefunden.

Gruß

Marc

Hallo Kai,
ich habe noch nicht auf die neue Beta aktualisiert, weil nach Ansicht des geänderten Codes die SetBrightness-Funktion immer noch nicht mit der aktuellen Firmware funktionieren kann. Für den ProDimmer2PM darf weder $transition noch $toggle_after = 0 sein, deshalb hatte ich die Funktion ein wenig umgebaut damit $toggle_after nur bei != 0 mit übergeben wird und die $transition hatte ich auf 1 gesetzt, weil das Modul hier offenbar einen int erwartet, damit war 1 der kleinste mögliche Wert. Der Richtige Name für den Endpunkt transition ist dann übrigens laut Doku transition_duration und nicht nur transition.
Die method muss meiner Meinung nach auch auf Light.Set umgeschrieben werden anstelle von Switch.Set. Zusätzlich habe ich noch ‚on‘ => true hinzugefügt, weil der Dimmer sonst beim Setzen einer Helligkeit nicht einschaltet, was im Vergleich zum Dimmer2 inkonsistent wäre. Hier nochmal mein funktionierender Entwurf:
public function SetBrightness(int $id, int $brightness, int $transition = 1, int $toggle_after = 0)
{
$Topic = $this->ReadPropertyString(‚MQTTTopic‘) . ‚/rpc‘;

    $Payload['id'] = 1;
    $Payload['src'] = 'user_1';
    $Payload['method'] = 'Light.Set';
    $Payload['params'] = ['id' => $id, 'on' => true, 'brightness' => $brightness, 'transition_duration' => $transition];
	if($toggle_after != 0)$Payload['params']['toggle_after'] = $toggle_after;

    $this->sendMQTT($Topic, json_encode($Payload));
}

Hallo Kai,

ich habe den Shelly Pro 2 über den Konfigurator angelegt und ich nutze die aktuelle Beta von Dir.

Leider wird das Gerät immer als Offline angezeigt und ich kann es nicht schalten. Den Shelly habe ich mehrfach neu gestartet und auch das Ausschalten über die Sicherung hat nicht geholfen.

Hast Du noch eine Idee?

Hallo Zusammen

Ich habe neu nun zwei Shellys eingebaut (2 x Shelly 1 PM Mini Gen3). Und ich muss noch dazu sagen, dass es die ersten Shellys sind; ich habe also noch keine Erfahrung damit :slight_smile:

Dasjenige, welche ich gestern eingebaut hatte, wurde nach ein bisschen hin- und her (Firewall-Rules mussten noch definiert werden, da in einem sep. IoT-Netzwerk; zudem musste ich noch den MQTT-Port 1883 noch im Docker erkennbar machen…) dann ohne weiteres im Konfigurator V2 erkannt und die Variabeln updaten sich ohne Probleme. Korrektur: sie aktualisieren sich nicht regelmässig.

Beim zweiten, den ich heute montiert hatte, werden nicht alle Variabeln aktualisiert. Bsp. Volt und Offline-Status werden nicht aktualisiert… und ich weiss nun nicht mehr weiter…

Ich habe versucht, in diesem doch recht langem Thread etwas hierzu zu finden, aber es hat mir leider nicht weitergeholfen… Oder ich stelle mich zu blöde an :slight_smile:

Hat jemand eine Idee, wo ich suchen muss? Oder muss ich einfach warten, bis alles soweit klappt? (wie das schon mal bei meinen ZigBee-Geräten der Fall war…)

Danke für die Unterstützung
Grüsse

@M70 Einstellungen in der Instanzkonfiguration sind aber richtig und dort auch das richtige Gerät ausgwählt? Mehr fällt mir nicht ein.
Shelly

… einmal stomlosmachen, meist hilft das schon, wenn sonst alles stimmt.

Danke, ich habe mal die betroffene Shelly rebootet. Und siehe da, dannach wurden weitere (die noch fehlenden) Werte angezeigt.

Es sieht so aus, dass dadurch das Problem behoben werden konnte. Nun muss ich mal schauen, ob die (ursprünglich nicht aktualisierten Werte, wie Volt und Online-Status) sich nun tatsächlich altualisieren.