Checker Posted June 29, 2024 Posted June 29, 2024 Hi, is there a broadcast channel or port to descover shelly devices localy? and can I verify whether a device is online? Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Heinz Posted July 2, 2024 Posted July 2, 2024 Im not sure of a broadcast channel but to get the status you can use http://<IPaddress>/rpc/shelly.getstatus Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Checker Posted July 12, 2024 Author Posted July 12, 2024 Hi, ok - das habe ich mit einem 'scanbereich' bereits realisiert. bzw. eher mit: for(i = start, i <= end, i++) { IPaddress = '192.168.178.' + i; http://{IPaddress}/status } Ich nutze die URL '.../status'; das ist Versionsunabhängiger. Die Suche dauert jedoch unter Umständen sehr lange. Bsp.: 172.17.x.x Allerdings wäre mir etwas wie lieber: udpClient = new UdpClient(); udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, udpPortWhichShellyIsListeningTo)); Task.Run(() => { var recvBuffer = udpClient.Receive(ref from); string recieved = Encoding.UTF8.GetString(recvBuffer); }); und die App schafft das ja auch, mein Netzwerk zu scannen - in nur wenigen Augenblicken. Zudem erkennt die App, ob ein Gerät Online / Offline ist. Auf das MQTT Topic '/online = true' kann ich mich nicht verlassen, da bei einem Sicherungsfall immernoch '/online = true' im Topic steht. Dort habe ich mir mit einem OnlineToggler behilfsmäßig weitergeholfen: MQTT.subscribe(onlineToggler, function(getTopic, getMessage) { if(getTopic == onlineToggler && getMessage != "1") { MQTT.publish(onlineToggler, "1"); } }); Der Server setzt jetzt zyklisch den Wert auf 0 und wenn's der Shelly nicht schafft ihn auf 1 zu setzen, ist der Shelly wahrscheinlich offline. Aber wie macht das die App? Kennt sich jemand mit den zwei Themen aus oder hat schonmal ein Wireshark mitlaufen lassen? Gruß Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
tvbshelly Posted July 13, 2024 Posted July 13, 2024 Alle Shelly Gen2+ nutzen mDNS um sich im lokalen Netz "sichtbar" zu machen: https://shelly-api-docs.shelly.cloud/gen2/General/mDNS/ Devices advertise two types of services: _http._tcp - a web server serving on port 80. This service is also advertised for Gen1 shellies _shelly._tcp - service instance specific to Gen2+ Shelly devices. Vielleicht kannst du diese Annoucements lesen/auswerten und damit ohne Scannen die Geräte finden (zumindest Gen2+). Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
tvbshelly Posted July 13, 2024 Posted July 13, 2024 Wenn deine Anwendung auf nodejs basiert, kannst du hier mal schauen: https://github.com/onlxltd/bonjour-service Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.