Andrey Yarizov (Ich war eine Weile hier nicht aktiv.)
MQTT etabliert folgendes Verhalten.
Ein MQTT Publisher sendet mit seiner Kontaktaufnahme zum Broker auch die LWT Nachricht. Die LWT ist also keine separate Nachricht.
Nach dieser Kontaktaufnahme muss sich der Publisher periodisch immer wieder mit einer Ping Nachricht beim Broker melden - üblicherweise spätestens alle 60s. Ist innerhalb dieser Zeit kein Ping eingetroffen, wertet dies der Broker als Nichtverfügbarkeit des Publishers. Grund unbekannt. Danach sendet er an alle Subscriber dieser Nachricht die LWT des nun nicht verfügbaren Publishers. Offenbar tut dies der Broker erst mit eine Latenzzeit von ca. der Hälfte der o.g. Periode. Jedenfalls tut das der von mir genutzte Mosquitto Broker.
Wenn du diese Zeit von ca. 90s verkürzen willst, dann musst du versuchen, tief in die beteiligten Systeme einzugreifen, damit die Periode verkürzt wird, bspw. auf 20s. Ich weiß weder beim Mosquitto und schon gar nicht bei den Shelly, wo/wie ein solcher Eingriff möglich ist. Letzteres kann bestenfalls derjenige wissen, welcher das Betriebssystem bzw. die MQTT Bibliothek für die Shelly zusammenstellt. Damit ist noch nicht klar, wo dies beim eingesetzten Broker gelingt, der ja vom Anwender, also dir, eingestellt wird.
Mir ist nicht bekannt, ob eine solche max. Periodendauer vom Broker an die Publisher übermittelt wird. Diese Frage sollten die Leute von HiveMQ beantworten können. Ich fand dazu auch in deren relativ guter Dokumentation nichts.
Fazit: Du hast schlechte Karten mit deinem Anliegen von bspw. 30s Reaktionszeit. Per Konfiguration oder Skript gibt es dafür keine (dokumentierte) Möglichkeit.
Warum soll diese Latenz von ca. 90s stark verkürzt werden? Willst du einen möglichst sofortigen Alarm als Diebstahlschutz nutzen? Dafür könntest du vor jeden Shelly ein anderes Gerät setzen, bspw. einen messenden Shelly. Letzterer kann leicht per Skript ein Event empfangen und zügig eine MQTT Nachricht veröffentlichen, oder selbst einen Signalgeber aktivieren, wenn die gemessene Stromaufnahme seines Verbrauchers auf ca. 0 sinkt. Es bleibt die Frage, wie fein ein Shelly die Stromaufnahme eines Verbrauchers messen kann. Ich habe dies bisher nicht geprüft. Dies täte jedoch deinen Installationsaufwand (Kosten) ca. verdoppeln. Du könntest prüfen, wie stark die Stromaufnahme eines Shelly i.d.R. schwankt und bspw. für je 5 Shelly einen messenden Shelly einsetzen. Dieser müsste hinreichend genau den Wegfall eines seiner "Klienten" erfassen können. Zudem müsste dessen Firmware eine solche relativ kleine Änderung als Event mitteilen.
So etwas weiß vielleicht thgoebel - trotz meiner späten Reaktion.