Von IPSymcon an Arduino Nano mit ENC28J60 Daten schicken

Hallo zusammen,

ich möchte von IPSymcon 3.4 aus ein Relais schalten bzw. Daten an einen Arduino Nano mit ENC28J60 Ethernetmodul und UIPEthernet Lib schicken.
Folgende Seite hat mir schon sehr geholfen und ich kann die Eingänge des Arduino in IPSymcon einlesen.

https://www.symcon.de/forum/threads/24522-Daten-vom-Arduino-an-IPS-%C3%BCbermitteln-Ethernet
Skripte aus Post #8.

Welche Befehle auf Arduino und IPSymcon Seite brauch ich? Ich hab schon versucht im Arduino mit client.read die Daten zu bekommen. Kann mir jemand erklären wie das funktioniert? Ich hab schon einiges dazu gefunden, jedoch hat das nie funktioniert.

Arduino:

byte inputByte = 0;

inputByte = client.read();
Serial.println (inputByte);

IPSymcon:

  <?
if($_IPS['SENDER'] == "RegisterVariable") {

    $data = RegVar_GetBuffer($_IPS['INSTANCE']);
    $data .= $_IPS['VALUE'];

// Daten senden Anfang

RegVar_SendText(44920 /*[System\Arduino Zirkulation\Register Variable]*/, "1");

// Daten senden Ende


    if (strpos($data, '{') === false || strpos($data, '}') === false) {
        RegVar_SetBuffer($_IPS['INSTANCE'], $data);
   } else {
        while (strpos($data, '{') !== false && strpos($data, '}') !== false) {
            $pos1 = strpos($data, '{');
            $pos2 = strpos($data, '}');
            $msg = substr($data, $pos1, ($pos2-$pos1)+1);
            $json = json_decode($msg);
            if ($json) {
               foreach($json as $entryName => $entryValue) {
                    IPS_LogMessage("Arduino", $entry_name.": ".$entryValue);
                  switch ($entryName) {
                     case "input_d1":
                        SetValue(47870 /*[System\Arduino Zirkulation\Status\D1]*/, !$entryValue);
                       break;
                      case "input_d2":
                       SetValue(55630 /*[System\Arduino Zirkulation\Status\D2]*/, !$entryValue);
                       break;
                      case "input_d3":
                       SetValue(33652 /*[System\Arduino Zirkulation\Status\D3]*/, !$entryValue);
                       break;
                      case "input_d4":
                         $var_time = IPS_GetVariable(54316 /*[System\Arduino Zirkulation\Status\D4]*/)['VariableUpdated'];
                         if (time() - $var_time >= 1) {
                           SetValue(54316 /*[System\Arduino Zirkulation\Status\D4]*/, !$entryValue);
                            }
                       break;
                     case "input_d5":
                         $var_time = IPS_GetVariable(40664 /*[System\Arduino Zirkulation\Status\D5]*/)['VariableUpdated'];
                     if (time() - $var_time >= 1) {
                            SetValue(40664 /*[System\Arduino Zirkulation\Status\D5]*/, !$entryValue);
                            }
                       break;
                      case "input_d6":
                         $var_time = IPS_GetVariable(42683 /*[System\Arduino Zirkulation\Status\D6]*/)['VariableUpdated'];
                         if (time() - $var_time >= 1) {
                           SetValue(42683 /*[System\Arduino Zirkulation\Status\D6]*/, !$entryValue);
                            }
                       break;
                      case "input_d7":
                       SetValue(26887 /*[System\Arduino Zirkulation\Status\D7]*/, !$entryValue);
                       break;
                      case "input_d8":
                         $var_time = IPS_GetVariable(28173 /*[System\Arduino Zirkulation\Status\D8]*/)['VariableUpdated'];
                         if (time() - $var_time >= 1) {
                           SetValue(28173 /*[System\Arduino Zirkulation\Status\D8]*/, !$entryValue);
                            }
                       break;
                    }
                }
            }
            $data = substr($data, $pos2 + 1);
            RegVar_SetBuffer($_IPS['INSTANCE'], $data);
        }
    }
}

?>

Es kommt immer nur eine 0 an.

IO-Instanz

Register Variable

Symcon

Über eine Unterstützung würde ich mich sehr freuen!

Edit:

-> Kann geschlossen werden. Der ENC28J60 scheidet für mich in Zukunft aus. Hab das weder in dieser Variante noch mit der Mudbus Lib zum laufen bekommen. Zudem kommt noch der viel zu große Speicherbedarf durch die verwendete Lib UIPEthernet hinzu.

Wird trotz höherem Platzbedarf im Gehäuse nun mit UNO und Ethernetschield sowie Mudbus Lib umgesetzt. Das läuft wenigstes von Anfang an sauber und in einem schon vorhandenen MEGA seit Monaten stabil…