Arduino direkt mit Pokeys verbinden

Hi,

ich versuche seit gestern einen Pokeys mit einem ESP8266 zu verbinden.
Das Ziel ist, die Schaltausgänge vom Pokyes Kabellos zu erweitern, bzw vom Arduino etwas zum Pokeys zu senden (z.b. Temperatur oder Schaltzustände)
Das alles direkt ohne extra Software.

Bisher erreicht habe ich (noch nicht viel), der Pokeys sendet mir UDP Pakete, welche auch schon auf dem Arduino ankommen (Temperatur und Schaltzustände)
Nun hab ich aber keine Ahnung wie ich das im Arduino verarbeiten kann, also z.b. ein Relays am Ausgang des Arduino schalten. (im Moment sehe ich nur in dem Serial Monitor das da Werte ankommen)

In die andere Richtung Arduino->Pokeys hab ich keine Idee, da der Pokeys nur UDP Sender aber keinen Empfänger hat (auch wenn ich meine, dass es ab einer bestimmten Firmware sowas geben sollte)

Modbus wäre natürlich auch ein Thema aber da gibt es wieder viele Librarys für den ESP und ich weiß nicht welche ich benötige und wie ich es dann auswerte.
Bei Modbus hätte ich eine gute Vorlage der Adressen im IPS, IPS kommuniziert ja seit Jahren sehr gut mit den Pokeys.
Ansonsten gibt es ja noch die HTTP Requests, weiß nicht ob man da was erreichen kann.
Ich hab auch geschaut ob es was Fertiges gibt, wie Tasmota oder ESPHome, das scheint mir aber alles nicht das Richtige zu sein…

vlt kann mir jemand mit ein paar Codeschnipseln helfen, eigentlich ist es nicht mal für mich (bei mir geht ja alles über IPS)… aber so ist das halt, wenn man viele Pokeys in der Bekanntschaft verbaut hat… :grin:

@Helmut (ich hab dich mal markiert, da du ja immer recht fit warst mit dem Pokeys)

Grüße

Du musst eine UDP Instanz zu Deinem Pokeys erstellen.
zB mit Port Nr 20057 als Empfangs- und Sendeport.
Ein Beispielscript habe ich schnell mal geschrieben um es zu probieren, nicht so gut, weil mit IPS Sleep ;-(
Aber es funktioniert. In PoBlock geht nur UDP senden, auch da muß der Port zu IP–Symcon passen, wenn man was zu IP-Symcon schickt.
Der Empfang in PoBlock geht natürlich auch, einfach so ein Script erstellen und per UDP was senden, was in PoBlock aber dann auch verarbeitet wird.
Per ESP geht es natürlich auch, ich hatte da auch mal was gemacht, muß ich aber erst suchen.
Es steht auch in meiner Wordpress Seite.

// UDP Abfrage oder Setzen per UDP
// Über IP Adresse vom Pokeys, z.B. Port 20057, den Syntax über UDP:

//J eder Befehl startet mit einem Buchstaben, welcher eine Abkürzung der I/O’s ist:
//– I: digital input
//– A: analog input
//– O: digital output
//– E: encoder input
//– C: digital counter input
//– S: EasySensors values
//– B: PoBlocks shared slot

//Dann quasi die Aufgabe:
//– G: get
//– S: set
//– R: reporting

//Und zuletzt die Parameter:
//– V: value
//– S: status
// Script :
//$Text1="BSV0=107";
//$Text2="BSV2=1";
//$Text="IGV10?";
//$Text="AGV43?";

$Text2="OSV17=0";  // setzt Pin 17 auf 0
$Text3="OSV17=1";  // setzt Pin 17 auf 1
//$Text="IGV10?";
//$Text="AGV43?";
//$Text="SGV43?";
//$Ergebnis; 

$Ergebniss=USCK_SendText(40784, $Text3);
echo $Ergebniss;
$Text="ORV17?";   // fragt Pin 17 auf Zustand ab
$Ergebniss=USCK_SendText(40784, $Text);
echo $Ergebniss;
IPS_Sleep(500);
$Ergebniss=USCK_SendText(40784, $Text2);
$Text="ORV17?";
$Ergebniss=USCK_SendText(40784, $Text);
echo $Ergebniss;

?>

Wegen des ESP mußt Du etwas warten, bin i.M. etwas busy.

Wenn Du UDP Daten per ESP bekommst, dann schicke einfach HTTP Befehle in Abhängigkeit an zB Schelly Relais (IP-ADR-Shelly+/relay/0?turn=off oder on) oder an dieses preiswerte Gerät
Die Dinger kannst Du per I2C erweitern und sind super Preiswert.
Steckt Tasmota drin, so dass Du auch was in IP-Symcon bekommen kannst, per MQTT.
Tasmota HTTP oder MQTT Befehle sind hier
Meine Empfehlung: nimm Die mit Kleinspannung, dem eingebauten Netz Schaltregler traue ich nicht so, wegen der Raster Abstände Netzseitig oder bastel eine 1A Sicherung dazwischen ;-(

Danke für deine Antwort,ich schau mir das morgen mal an.
Aber wie gesagt ips pokeys, pokeys ips funktioniert alles tadellos.

Die Kommunikation pokeys zum arduino,welcher dann direkt solch ein arduino Relais schaltet,also direkt am Pin vom Arduino, das ist das Ziel.

Andersherum wäre die Anwendung, einen ds18b20am arduino welcher diesen Wert direkt zum pokeys schickt. (Oder halt ein Reed)
Achso ds18b20 hatte ich gestern auch schon am Arduino angeschlossen und den Wert im Monitor gesehen.
Beim Senden war dann aber wieder Schluss…

Kein Thema,hier brennt es nicht: :slight_smile:

Steht schon etwas im Beitrag wegen der HTTP Befehle zu Shelly

ich hab mal wieder gebastelt, komme aber nicht weiter… Arduino ist neu für mich :grinning:

im Moment kommt das hier am ESP vom Pokeys an

ESP UDP empfang

a und d sind Temperaturen, b und c sind Schaltzustände

hab aber keine Ahnung wie der ESP darauf reagieren kann.

also z.B. wenn „in_b=1“ dann schalte „D4“ auf High (um dann einfach ein Relays zu schalten)

Ich weiß aber nicht ob es überhaupt der richtige Weg ist, schön wäre natülich, wenn der Pokeys einen schaltbefehlt an den ESP sendet und dann auch einen Status zurückbekommt, bzw. den Schaltstatus vom ESP abrufen kann… mhhhh mit IPS wäre es sooo einfach :see_no_evil:

Einfacher wäre es, wenn Du Dein ESP INO-File mal als Zip sendest oder ein Link zu Deiner Quelle des Codes.
Warum muß es gerade ein ESP sein?
Wenn die Relais in der Nähe des ESP’s sind könnten Abrissfunken stören.
Oder ist es was fertiges?

Im Anhang findest Du ein ESP32 Programm, das von einem PoBlock Programm auf einem Pokeys57E " gespeist " wird.
Du mußt drauf achten, dass Du im ESP32 Programm die Pokeys57E Adresse einträgst von der der ESP32 die UDP Nachricht bekommt.
Empfang- und Sender-Port Angaben müssen auch stimmen.
Mein Payload Beispiel ist der String von dem ersten UDP Sender In_a=00000 , der wechselt auf In_a=00001 und Das wertet der ESP32 aus, schaltet eine LED an und aus.
UDP_m_Pokeys.zip (1,8 KB)
UDP_Beispiel_3Relais.zip (1,1 KB)

ohhh sehr cool danke, das probiere ich aus und gebe Rückmeldung. :smiling_face: