Checker Posted June 29 Share Posted June 29 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) Finnish French German Italian Portuguese (European) Spanish Link to comment Share on other sites More sharing options...
Heinz Posted July 2 Share Posted July 2 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) Finnish French German Italian Portuguese (European) Spanish Link to comment Share on other sites More sharing options...
Checker Posted July 12 Author Share Posted July 12 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) Finnish French German Italian Portuguese (European) Spanish Link to comment Share on other sites More sharing options...
tvbshelly Posted July 13 Share Posted July 13 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) Finnish French German Italian Portuguese (European) Spanish Link to comment Share on other sites More sharing options...
tvbshelly Posted July 13 Share Posted July 13 Wenn deine Anwendung auf nodejs basiert, kannst du hier mal schauen: https://github.com/onlxltd/bonjour-service Quote Translate Revert translation? English (American) Finnish French German Italian Portuguese (European) Spanish Link to comment Share on other sites More sharing options...
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.