Jump to content
🌟 NOTIFICATION/Benachrichtigung: Welcome to our New Store! - shelly.com 🌟 ×

Sending UDP Datagrams via Script?


Recommended Posts

Soon a Shelly Pro 3em will be installed to measure power and energy consumption of my household. 

I want to know if it is possible to send simple data (e.g. current power in Watts) in UDP/IP to a destination address:port using scripts.

So far I only managed to do sth like this with HTTP but I would prefer to use UDP for time critical regulation of an adaptive battery charger.

Link to comment
Share on other sites

Posted (edited)

Ich würde aber gerne selber festlegen in welchem Format, wie oft und unter welchen Bedingungen Messwerte gesendet werden.

Konkret ich will eigene Mindestwertänderung (z.B. deltaPower > 4W) und Zeit Hysterese (z.B. maximal alle 2 Sekunden senden) festlegen.

Einfaches blindes raussenden mit fester Frequenz genügt mir nicht.

Gibt es dafür auch eine Möglichkeit?

Edited by energy-geek
Link to comment
Share on other sites

@energy-geek

Du wirst erstaunt sein wie simpel die Lösung sein kann.

Shelly Script:

////////////////////////////////////////////////////////////////////////////////////////////
///
/// Send simplest UDP telegram from Shelly
///
////////////////////////////////////////////////////////////////////////////////////////////
///
/// Created by 'if_then_else' © 2024
///
////////////////////////////////////////////////////////////////////////////////////////////
function timerHandler() {
    print('This is a UPD telegram with a random floating point number - *** ' + Math.random() + ' ***')
};
////////////////////////////////////////////////////////////////////////////////////////////
Timer.set(2000, true, timerHandler, null);
////////////////////////////////////////////////////////////////////////////////////////////

Das must du am Shelly einstellen:

Screenshot2024-10-04223254.png.ca229a0aa53263c74e946777fc1c7ac8.png

Dann solltest du im Netzwerk unter dem Port 1234 deine UDP Telegramme empfangen.

Das ist eine Basic UDP übertragung funktioniert aber perfekt

Ich denke die Hauptarbeit ist bei einem Produktiv-System dann auf der UDP Client Seite....

 

Link to comment
Share on other sites

Habs getestet es funktioniert grundsätzlich schon. Aber damit wird halt einfach der gesamte Debug Log laufend gesendet. Mich interessiert ja eigentlich nur wenn sich ein bestimmter Messwert ändert, diese Wertänderungen sind im Debug Log glücklicherweise auch enthalten, trotzdem wird viel zu viel gesendet und der Empfänger muss sich dann immer in Echtzeit alles rausfiltern um an den relevanten Wert zu kommen.

Geht das nicht auch irgendwie selektiver, also dass man selber einstellt, was überhaupt gesendet werden soll?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Erstelle neue...