MQTT Server - Produktiv / Testhardware

Hallo,

mein IPS Produktivsystem läuft zur Zeit auf einem RASPI, jetzt mache erste Test mit Docker auf Synology … bis zum Umzug dauert es noch da ich schlechte Festplatten geliefert bekommen habe und so noch nicht das Risiko des Umschaltens gehen will.
Der mqtt Server ist jetzt mein einziges Problem: eine Menge IOT Hardware ist auf den RASPI eingestellt…wenn ich nun im Testsystem arbeite habe ich keine Lust an zig Geräten den mqtt Server umzumappen und nach der Spielerei wieder zurück ==> wie löst ihr so etwas?

Gruß, Michael

In Symcon den MQTT Client benutzen und sich auch auf den Rpi verbinden.
Und erst später den in IPS diese Instanz austauschen gegen den MQTT Server und die Geräte umkonfigurieren.
Michael

Verstanden … aber doch ein gewissser Aufwand … da IPS doch jetzt einen gut funktionierenden mqtt Client hat, wie wäre es denn wenn man den Broker grundsätzlich im Docker Container auf dem NAS laufen lassen würde (eclipse mosqitto) und sich mit den Clients dahin verbindet? Dann könnte man experimentiren und hin und her ziehen ohne den ganzen Shelly Zoo umzukonfigurieren…hat da schon jemand Erfahrung mit mqtt im Container?

Gruß, Michael

Den Shelly Zoo kannst doch per Script über die http Api sehr einfach umprogrammieren.
https://shelly-api-docs.shelly.cloud/_review/mqtt/#settings

Die Shellys melden sich alle, sofern du es nicht ausgeschaltet hast per mDNS (wenn du sie im Shelly Konfigurator siehst ist dies der Fall).
Auszug aus dem Konfigurator-Quellcode

$mDNSInstanceIDs = IPS_GetInstanceListByModuleID('{780B2D48-916C-4D59-AD35-5A429B2355A5}');
$resultServiceTypes = ZC_QueryServiceType($mDNSInstanceIDs[0], '_http._tcp', '');

foreach ($resultServiceTypes as $key => $device) {
    if (strpos(strtolower($device['Name']), 'shelly') !== false) {
        $deviceInfo = ZC_QueryService($mDNSInstanceIDs[0], $device['Name'], '_http._tcp', 'local.');
        
        print $device['Name'] ." ". $deviceInfo[0]['IPv4'][0]."
";
        // hier CURL, ggf. mit AUTH einfügen auf  http://". $deviceInfo[0]['IPv4'][0]."/settings?mqtt_server=NEUEIP:PORT
    }
}

Cool wäre es jetzt, man könnte im Konfigurator mehrere Geräte auswählen und dann über ein Popup-Menü diese Einstellung automatisch setzen lassen. Vielleicht rede ich mal mit KaiS, ob ich das einbauen soll.

Ich habe auch ein Script, womit man die MQTT Einstellungen der Shellys verändern kann.

Ich kann es posten, wenn ich am PC bin.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Kai, Tobias, das hört sich gut an … dann blieben ‚nur‘ noch ein paar TASMOTA Devices, meine Heizungsabfrage per ebusd, der ardumower, der go-echarger und ein paar esp32 Basteleien … erstaunlich was sich da so alles im Laufe der zeit gesammelt hat.

Gruß, Michael

Für Tasmota habe ich auch ein Script. :smiley:

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

…das hab ich mir fast gedacht :wink:
Interessiert wäre ich natürlich an beiden Scripts :stuck_out_tongue:
Gruß, Michael

Und nochmal die Frage, ob es nicht sinnig wäre das in den Konfigurator einzubauen. Weil aktuell muss ich immer die Shellys (und Tasmotas) per Hand umstellen obwohl sie sich eigentlich schon bequem bei Symcon melden.

…das in den Konfigurator eiinzubauen ist sicher keine schlechte Idee …

Ich hab übrigens mal testweise auf dem NAS im Docker eclipse/mosquitto installiert und in IPS einen Client darauf verlinkt …klappt einwandfrei.
Kai, deine shelly Module schauen fix auf den IPS internen mqtt Server, richtig? Da ergibt sich schnell der Gedanke ob man im Modul nicht auch die Wahl des Servers einbauen könnte?

Gruß, Michael

In dem Modul kannst du doch das „Gateway“ ändern. Entweder den MQTT Client auswählen oder den MQTT Server. Automatisiert wird halt erstmalig ein MQTT Server eingerichtet.

…du hast recht, da hab ich den Wald vor lauter Bäumen nicht gesehen …

Das hat bei mir nicht wirklich funktioniert. Da kam jede Minute eine „EOF while reading vom Socket“ Meldung. Nur mit dem internen MQTT Server funktioniert das richtig (bei mir)