Community

Darstellung Z-Wave mit Z-UNO

Ich spiele ja gerade etwas mit dem Z-UNO rum.

Ich habe an einem Eingang (2) einen Schalter angeschlossen.

Dann habe ich im Z-UNO alle 10 Kanäle mit einem Schalter belegt (UNO_SWITCH_BINARY).
Wenn ich das jetzt bei homee anlerne, sehe ich auch diese 10 Schalter.
Wenn ich den Schalter am Z-UNO betätige, sehe ich das in homee auch. So weit, so gut.

Jetzt gestalte ich den Z-UNO um und belege nur noch einen Kanal mit einem Schalter. Ich exkludiere mein vorheriges Gerät und lerne es neu an. Ich sehe im Z-UNO immer noch die 10 Schalter. Betätige ich den Schalter am Z-UNO passiert bei homee nichts. Ist ja auch logisch, weil auf Kanal 1 kein Schalter angeschlossen ist.

Gestalte ich den Z-UNO erneut um, so das ich zwei Kanäle mit einem Schalter belege, wird er in homee immer noch als 10 Schalter angezeigt. Da jetzt der zweite Kanal, an dem ein Schalter angeschlossen ist, aktiv ist, sehe ich das auch wieder im homee.

Ich glaube, das ich durch dieses Szenario eindeutig herausgetestet habe, das der homee falsch anzeigt.

Kennt jemand von euch dieses Verhalten ebenfalls?
Kennt jemand von euch eine Lösung, so das homee nur das anzeigt, was ich beim Z-UNO eingestellt habe?

Das kurze abheben des Z-Wave Würfels hat keine Verbesserung gebracht.

Vll. ist das ne dämliche Frage, aber ich frag trotzdem mal :slight_smile:
Hast du im Quellcode von Z-UNO denn beim Umbauen auch nur noch einen Kanal initialisiert?
Oder hast du den Quellcode gleich gelassen und nur am homee exkludiert und wieder neu inkludiert?

Natürlich habe ich im Z-UNO auch den Kanal neu Konfiguriert. :smiley:

Die Schritte im einzelnen:

  1. Z-UNO 10 Kanäle konfiguriert

  2. Z-UNO compiliert und erfolgreich hochgeladen

  3. Z-UNO an homee angelernt (Ergebnis 10 x Schalter, Schalter Kanal 2 funktioniert)

  4. Z-UNO an home abgelernt (excludiert, gelöscht)

  5. Z-UNO einen Kanal konfiguriert (alle anderen gelöscht)

  6. Z-UNO compiliert und erfolgreich hochgeladen

  7. Z-UNO an homee angelernt (Ergebnis 10 x Schalter, Schalter Kanal 2 funktioniert nicht)

  8. Z-UNO an home abgelernt (excludiert, gelöscht)

  9. Z-UNO zwei Kanäle konfiguriert

  10. Z-UNO compiliert und erfolgreich hochgeladen

  11. Z-UNO an homee angelernt (Ergebnis 10 x Schalter, Schalter Kanal 2 funktioniert)

Also wenn du möchtest, kannst du gerne mal deine Z-UNO Codes zeigen und ich versuch das nachzustellen.
Wird aber bestimmt ne Woche dauern (bin nächste Woche ziemlich „busy“ :roll_eyes:).

Darf ich den hier rein posten?

Ich glaub schon :slight_smile:

Ich kann den gerade wieder mal nicht auf die 10 Schalter umprogrammieren.
homee weigert sich beharrlich das anzunehmen. Dauert also noch etwas.

Da ist das Sketch

Ich habe das umkonfigurieren durch auskommentieren bei ZUNO_SETUP_CHANNELS gemacht

byte actValue;
byte triggered;

ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_ALWAYS_AWAKE);

// Set up 10 channels
ZUNO_SETUP_CHANNELS(
ZUNO_SWITCH_BINARY(getterSwitch01, setterSwitch01), // Channel 01
ZUNO_SWITCH_BINARY(getterSwitch02, setterSwitch02), // Channel 02
ZUNO_SWITCH_BINARY(getterSwitch03, setterSwitch03), // Channel 03
ZUNO_SWITCH_BINARY(getterSwitch04, setterSwitch04), // Channel 04
ZUNO_SWITCH_BINARY(getterSwitch05, setterSwitch05), // Channel 05
ZUNO_SWITCH_BINARY(getterSwitch06, setterSwitch06), // Channel 06
ZUNO_SWITCH_BINARY(getterSwitch07, setterSwitch07), // Channel 07
ZUNO_SWITCH_BINARY(getterSwitch08, setterSwitch08), // Channel 08
ZUNO_SWITCH_BINARY(getterSwitch09, setterSwitch09), // Channel 09
ZUNO_SWITCH_BINARY(getterSwitch10, setterSwitch10) // Channel 10
);

void setup()
{
Serial.begin(9600);

actValue = 0; // Initialisiert actValue
triggered = 0; // Initialisiert triggered

pinMode(1, INPUT); // Schaltet den Pin auf INPUT
digitalWrite(1, HIGH); // Schaltet den Internen Pullup ein, so das der Taster gegen NULL schalten kann

pinMode(13, OUTPUT); // Schaltet den Pin auf OUTPUT
digitalWrite(13, LOW); // Schaltet die weiße On Board LED ab
}

void loop()
{
actValue = !digitalRead(1); // Invertiert weil interner Pullup ist „1“

if((actValue > 0) && (triggered == 0))
{
triggered = 1;
zunoSendReport(2); // Sendet Report an Channel 2
Serial.println(„Send Report Channel 2 für ON“);
}
else if((actValue == 0) && (triggered == 1))
{
triggered = 0;
zunoSendReport(2); // Sendet Report an Channel 2
Serial.println(„Send Report Channel 2 für OFF“);
}
}

void setterSwitch01(byte Zswitch) { Serial.print("Set [0] = "); Serial.println(Zswitch); }
void setterSwitch02(byte Zswitch) { Serial.print("Set [1] = "); Serial.println(Zswitch); }
void setterSwitch03(byte Zswitch) { Serial.print("Set [2] = "); Serial.println(Zswitch); }
void setterSwitch04(byte Zswitch) { Serial.print("Set [3] = "); Serial.println(Zswitch); }
void setterSwitch05(byte Zswitch) { Serial.print("Set [4] = "); Serial.println(Zswitch); }
void setterSwitch06(byte Zswitch) { Serial.print("Set [5] = "); Serial.println(Zswitch); }
void setterSwitch07(byte Zswitch) { Serial.print("Set [6] = "); Serial.println(Zswitch); }
void setterSwitch08(byte Zswitch) { Serial.print("Set [7] = "); Serial.println(Zswitch); }
void setterSwitch09(byte Zswitch) { Serial.print("Set [8] = "); Serial.println(Zswitch); }
void setterSwitch10(byte Zswitch) { Serial.print("Set [9] = "); Serial.println(Zswitch); }

byte getterSwitch01() { Serial.print("Get [0] = "); Serial.println(actValue); return 0; }
byte getterSwitch02() { Serial.print("Get [1] = "); Serial.println(actValue); return actValue; }
byte getterSwitch03() { Serial.print("Get [2] = "); Serial.println(actValue); return 0; }
byte getterSwitch04() { Serial.print("Get [3] = "); Serial.println(actValue); return 0; }
byte getterSwitch05() { Serial.print("Get [4] = "); Serial.println(actValue); return 0; }
byte getterSwitch06() { Serial.print("Get [5] = "); Serial.println(actValue); return 0; }
byte getterSwitch07() { Serial.print("Get [6] = "); Serial.println(actValue); return 0; }
byte getterSwitch08() { Serial.print("Get [7] = "); Serial.println(actValue); return 0; }
byte getterSwitch09() { Serial.print("Get [8] = "); Serial.println(actValue); return 0; }
byte getterSwitch10() { Serial.print("Get [9] = "); Serial.println(actValue); return 0; }

// End Of Code

Hast du die Setzer und getter auch auskommentiert? Hats du mal versucht nicht auszukommemtieren sondern die Zeilen mal komplett aus dem Code zu nehmen, sodass es wirklich nur einen oder zwei Switches gibt auch im Code?

Nein, die übrigen Setter und Getter habe ich nicht auskommentiert. Meine Begründung ist: Es sind dann ganz normale Funktionen, die mit Z-Wave nichts mehr zu tun haben.

In der Konfiguration übergebe ich ja den Pointer auf die vom Z-Wave-Modul verwendeten Funktionen. Sollte also eigentlich nichts ausmachen.

Aber ich werde auch das mal probieren. Ich greife ja inzwischen nach jedem Strohhalm.

OK, ich habe den Code vollkommen gelöscht.
Das Selbe Verhalten. Die 10 Schalter bleiben hartnäckig.

Hast du mal nen Firmwarereset beim Z UNO gemacht bzw. Nen anderes Beispiel Projekt rauf gespielt?

Und noch ne (evtl. dämliche) Frage für zwischendurch:
Du verwendest Arduino IDE Version 1.6.5?
Also nicht die generell aktuellste Arduino IDE Version, sondern explizit die auf Z-Uno-Seite erwähnte Version 1.6.5 (die als letzte mit dem Z-Uno voll kompatible Version geführt wird)?

Ein anderes Beispiel habe ich auch schon mal ausprobiert. Das Selbe Spielchen.

Was meinst du mit Firmwarereset? Meinst du damit den RST-Taster auf dem Z-UNO Board? Den habe ich auch schon gedrückt.
Oder meinst du was anderes?

Ich habe den Z-UNO schon ausgesteckt und ne weile gewartet. Keine Änderung.

Ich habe mir die IDE 1.8.13 runtergeladen. Das ging aber nicht, weil da immer ein Compilerfehler kam.
Dann habe ich im Forum gesucht und die haben da geschrieben, dass das noch ein Bug ist. Ich sollte die 1.8.12 runterladen.

Sie läuft soweit, sogut. Er verliert öfters den USB-Kontakt. Manchmal hängt er sich auch nach dem uploaden auf (grüne LED leuchtet dauerhaft). Wenn ich dann aber einen neuen Versuch starte, geht es meistens.

Im News-Release von Z-Uno steht, dass mittlerweile Arduino IDE 1.6.5 und 1.8.5 unterstützt werden (mit 1.8.5 war mir auch neu, grad gefunden :slight_smile:)
https://z-uno.z-wave.me/news/2017/11/new-z-uno-software-release-211/

Da die immer so stark drauf beharren, dass man eine (oder zwei) konkrete Versionen verwenden soll, ist das auf jeden Fall einen Versuch wert.
Du kannst auch diese speziellen „Z-Uno Arduino IDE Versionen“ auch zusätzlich zu einer anderen IDE Version laufen lassen (z.B. als Portable Version).
Dann kannst du ohne großen Installier-/Deinstallier-Aufwand einfach mal rumprobieren :slight_smile:

Device reset :link:

Z-Uno can be excluded from network by following Exclusion process via Z-Wave controller or by resetting the device via Service button: hold Service button for 5 seconds and then press three times . Use this procedure only if your controller is missing or inoperable. Note that the sketch is not erased during exclusion or reset process.

Puh, wenn ich jetzt vor jedem Anlernen diesen „Device Reset“ mache, dann scheint es zu funktionieren.

Wenn dem so ist ==> Mensch bin ich froh euch zu haben.

Tausend Dank

Ich habe mir mal die IDE 1.6.5 heruntergeladen.
Da kommen dann ganz andere Fehler und stabil läuft die auch nicht grummel.

Die Schreiben bei deinem Link etwas von Software 2.1.1
Ich habe schon 2.1.5 installiert. Ging irgendwie automatisch.

Wenn das mit dem Device Reset jetzt immer klappt, bleibe ich erst mal bei meiner 1.8.12. Wenn ich wieder Probleme habe, werde ich mal deinen Vorschlag prüfen.

Auch dir vielen tausend Dank für deine Unterstützung.

Eigentlich sollte es auch ohne den gehen. Zumindest hat es bei mir bisher immer funktioniert. Nun habe ich meinen aber seid einem halben Jahr nicht mehr neu geflashed, da er fleißig seine Aufgaben macht.