Einen wunderschönen guten Morgen,
nach einer fast 1 jährigen Pause bin ich wieder dabei mich Konnekting auseinader zu setzen. Das Schlüsselbrett, welches ich vor gut einem Jahr aufgesetzt hatte läuft indes tadellos
Folgende Problemstellung:
Ich muss/möchte meine Diskstation per KNX ein und ausschalten können. Dafür hab ich nen Photomos parallel zum Schalter der Taster an der Diskstaion gelötet, den ich nun gern mit meiner UUPS hier gern schalten wollen würden.
Mein Problem ist hier jedoch der Sketch für den Arduino. Ich hatte da vor einem Jahr schon versucht einen Aktor-Sketch zu bauen, bin da aber nie zu einem funktionierendem Ergebnis gekommen.
folgendes habe ich bereits:
die switcher4_0.3.h:
und soweit bin ich bis jetzt in der .ino:
das ist im Prinzip alles ein bisschen aus dem Demo-Sketch und meinem sehr sehr begrenztem Wissen über Programmiersprachen entstanden. Und das wird der Grund sein, warum es auch nicht geht 
Wäre jemand der sich damit auskennt so freundlich mir einen hilfreichen Hinweis zu geben? Meine unendliche Dankbarkeit wäre Ihm sicher!
VG René
nach einer fast 1 jährigen Pause bin ich wieder dabei mich Konnekting auseinader zu setzen. Das Schlüsselbrett, welches ich vor gut einem Jahr aufgesetzt hatte läuft indes tadellos

Folgende Problemstellung:
Ich muss/möchte meine Diskstation per KNX ein und ausschalten können. Dafür hab ich nen Photomos parallel zum Schalter der Taster an der Diskstaion gelötet, den ich nun gern mit meiner UUPS hier gern schalten wollen würden.
Mein Problem ist hier jedoch der Sketch für den Arduino. Ich hatte da vor einem Jahr schon versucht einen Aktor-Sketch zu bauen, bin da aber nie zu einem funktionierendem Ergebnis gekommen.
folgendes habe ich bereits:
die switcher4_0.3.h:
Code:
#define MANUFACTURER_ID 4112 #define DEVICE_ID 10 #define REVISION 0 #define COMOBJ_A 0 #define COMOBJ_B 1 #define COMOBJ_C 2 #define COMOBJ_D 3 #define PARAM_initialDelay 0 #define PARAM_outputA_active 1 #define PARAM_outputB_active 2 #define PARAM_outputC_active 3 #define PARAM_outputD_active 4 KnxComObject KnxDevice::_comObjectsList[] = { /* Index 0 - A */ KnxComObject(KNX_DPT_1_001, 0x34), /* Index 1 - B */ KnxComObject(KNX_DPT_1_001, 0x34), /* Index 2 - C */ KnxComObject(KNX_DPT_1_001, 0x34), /* Index 3 - D */ KnxComObject(KNX_DPT_1_001, 0x34) }; const byte KnxDevice::_numberOfComObjects = sizeof (_comObjectsList) / sizeof (KnxComObject); // do not change this code byte KonnektingDevice::_paramSizeList[] = { /* Index 0 - initialDelay */ PARAM_UINT8, /* Index 1 - outputA_active */ PARAM_UINT8, /* Index 2 - outputB_active */ PARAM_UINT8, /* Index 3 - outputC_active */ PARAM_UINT8, /* Index 4 - outputD_active */ PARAM_UINT8 }; const byte KonnektingDevice::_numberOfParams = sizeof (_paramSizeList); // do not change this code
Code:
#define PROG_LED_PIN 8 #define PROG_BUTTON_PIN 7 #define KNX_SERIAL Serial1 #define TEST_LED 4 #define OUT_A 3 #define OUT_B 5 #define OUT_C 6 #define OUT_D 9 #define DEBUGSERIAL Serial byte pinNummber[] = {OUT_A,OUT_B,OUT_C,OUT_D}; byte outputActive[] = {0,0,0,0}; bool lastState[] = {0,0,0,0}; bool currentState[] = {0,0,0,0}; unsigned long blinkDelay = 2500; unsigned long lastmillis = millis(); int laststate = false; #include <KonnektingDevice.h> #include <DebugUtil.h> #include "switcher4_0.3.h" void knxEvents(byte index) { // nothing to do in this sketch switch (index) { case COMOBJ_A: // object index has been updated if (Knx.read(COMOBJ_A)) { digitalWrite(OUT_A, HIGH); Debug.println(F("Toggle Pin3: on")); } else { digitalWrite(OUT_A, LOW); Debug.println(F("Toggle Pin3: off")); } break; case COMOBJ_B: // object index has been updated if (Knx.read(COMOBJ_B)) { digitalWrite(OUT_B, HIGH); Debug.println(F("Toggle Pin5: on")); } else { digitalWrite(OUT_B, LOW); Debug.println(F("Toggle Pin5: off")); } break; case COMOBJ_C: // object index has been updated if (Knx.read(COMOBJ_C)) { digitalWrite(OUT_C, HIGH); Debug.println(F("Toggle Pin6: on")); } else { digitalWrite(OUT_C, LOW); Debug.println(F("Toggle Pin6: off")); } break; case COMOBJ_D: // object index has been updated if (Knx.read(COMOBJ_D)) { digitalWrite(OUT_D, HIGH); Debug.println(F("Toggle Pin9: on")); } else { digitalWrite(OUT_D, LOW); Debug.println(F("Toggle Pin9: off")); } break; default: break; } } void setup() { #ifdef KDEBUG DEBUGSERIAL.begin(9600); while (!DEBUGSERIAL) Debug.setPrintStream(&DEBUGSERIAL); #endif Konnekting.init(KNX_SERIAL, PROG_BUTTON_PIN, PROG_LED_PIN, MANUFACTURER_ID, DEVICE_ID, REVISION); if (!Konnekting.isFactorySetting()){ int startDelay = (int) Konnekting.getUINT16Param(PARAM_initialDelay); if (startDelay > 0) { #ifdef KDEBUG Debug.println(F("delay for %d ms"),startDelay); #endif delay(startDelay); #ifdef KDEBUG Debug.println(F("ready!")); #endif } for (byte i= 0;i<OUTPUTS;i++){ outputActive[i] = (bool)Konnekting.getUINT8Param(i); //output active? } } } void loop() { // Do KNX related stuff (like sending/receiving KNX telegrams) // This is required in every KONNEKTING aplication sketch Knx.task(); unsigned long currentmillis = millis(); /* * only do measurements and other sketch related stuff if not in programming mode * means: only when konnekting is ready for appliction */ if (Konnekting.isReadyForApplication()) { if (currentmillis - lastmillis >= blinkDelay) { Debug.println(F("Actual state: %d"), laststate); Knx.write(1, laststate); laststate = !laststate; lastmillis = currentmillis; digitalWrite(TEST_LED, HIGH); Debug.println(F("DONE")); } } }

Wäre jemand der sich damit auskennt so freundlich mir einen hilfreichen Hinweis zu geben? Meine unendliche Dankbarkeit wäre Ihm sicher!

VG René
Kommentar