Verschiedenes > Bastelecke

Firmata schaltet manchmal fehlerhaft

(1/2) > >>

funclass:
Hab mal eine Frage an die Profis.

Ich habe seit einiger Zeit an meinem Raspi2 neben dem NanoCUL noch einen Arduino Nano mit Firmata (Standard v2.06) im Einsatz. Die ersten 8 I/Os sind als Digitalausgang definiert, an denen ein 8fach-Relaisblock dranhängt (http://www.amazon.de/dp/B00AEIDWXK). Dieser wird direkt vom Nano mit Strom versorgt, und schaltet die Relais jeweils bei LOW ein. FHEM ist aktuell und läuft seit dem Wechsel auf den Raspi2 und einer Aufräumaktion ohne Probleme (vorher gab's fast täglich Abstürze).

Nun zu meinem Problem: manchmal schaltet der Nano wahllos ein paar Relais ein. Meist passiert dies wenn ein vorher bewusst aktiviertes Relais wieder ausgeschaltet werden soll (manuell oder auch zeitgesteuert). Da die Relais meine Gartenbewässerung ansteuern, ist dieses Verhalten äußerst ärgerlich und auch problematisch. Hatte vorher mit der configurable FIRMATA das gleiche Problem und bin deshalb vor einigen Tagen auf die Standardversion umgestiegen, leider ohne Erfolg.  :(

Kennt jemand dieses Phänomen und kann mir helfen?

Rossini600:
Hallo

Ich denke das die Relais zu viel Strom ziehen. Passiert das auch wenn du nur ein Relais zur gleichen Zeit angezogen hast? Das passierte bei mir auch ohne angeschlossene Verbraucher. Musst das Board selbst mit eigenen 5v versorgen.

AxelSchweiss:
Hallo
Ich habe das Problem auch.
Gleiche Firmware aber über Ethernet.
Als "Last" hängt nur eine LED dran.
Ich vermute das die Firmware eine reset macht oder abstürzt.
Eventuell Speichermangel.
Reproduzierbar war das Verhalten bisher nicht.
Ich vermute aber das FHEM bei einem Neustart einen Reset macht.
Allerdings passiert das auch sporadisch.
Auf einem Analogport bekomme ich auch ab und zu lustige Wert .... 28000 ... Und so.

funclass:

--- Zitat von: Rossini600 am 16 Juni 2015, 12:26:29 ---Hallo

Ich denke das die Relais zu viel Strom ziehen. Passiert das auch wenn du nur ein Relais zur gleichen Zeit angezogen hast? Das passierte bei mir auch ohne angeschlossene Verbraucher. Musst das Board selbst mit eigenen 5v versorgen.

--- Ende Zitat ---

Da ich nur einen Beregnungskreis auf einmal nutzen kann, ist generell immer nur ein Relais aktiviert. Da aber auch alle gleichzeitig problemlos anziehen (wenn ich das will) schließe ich "Strommangel" als Grund aus. Ein Bug in der Firmware des Nano käme schon eher in Frage. Hab auch oft versucht, durch viele Schaltbefehle das Verhalten zu reproduzieren, leider klappt das nicht wirklich. Es passiert genau dann, wenn es eine Weile sauber lief und man es am wenigsten erwartet. Sende ich dann einen Ausschaltbefehl für eines der (fälschlicherweise) angezogenen Relais schalten sich manchmal mehrere oder auch alle wieder aus. Hatte mit meinem Raspi1 auch öfter USB-Probleme (Verbindungsabbrüche und Reconnects), vielleicht wäre das ja auch ne mögliche Ursache.

funclass:
Ich habe das Verbose-Attribut mal auf 5 gesetzt um vielleicht etwas über das Log herauszubekommen. Vorhin gab es dann wieder eine seltsame Schaltaktion. Vielleicht kann ja jemand mit etwas mehr Kenntnissen zum Firmata-Protokoll oder dem FRM-Modul weiterhelfen.

Da ich im Garten etwas Rasen nachgesät habe, schaltet die Beregnung aktuell alle 2 Stunden im Wechsel 2 Begegnungskreise für 6min ein (on-for-timer).
Wenn alles funktioniert  :D, sehen die Logeinträge so aus (inkl. meiner Kommentare zur ausgeführten Aktion):

--- Code: ---(Relais 1 ein)
2015.06.17 14:00:00 5: FRM:>907801
2015.06.17 14:00:00 5: SW: 907801
(Relais 1 aus)
2015.06.17 14:06:00 5: FRM:>907c01
2015.06.17 14:06:00 5: SW: 907c01
(Relais 2 ein)
2015.06.17 16:00:00 5: FRM:>907401
2015.06.17 16:00:00 5: SW: 907401
(Relais 2 aus)
2015.06.17 16:06:00 5: FRM:>907c01
2015.06.17 16:06:00 5: SW: 907c01

--- Ende Code ---

Und das wurde aufgezeichnet, als beim Abschaltbefehl für das Relais 1 plötzlich alle Relais eingeschaltet wurden  :-[:

--- Code: ---(Relais 1 ein)
2015.06.17 18:00:00 5: FRM:>907801
2015.06.17 18:00:00 5: SW: 907801
(Relais 1 aus -> mit Fehlverhalten)
2015.06.17 18:06:00 5: FRM:>907c01
2015.06.17 18:06:00 5: SW: 907c01
2015.06.17 18:06:03 5: FRM:<f90206
2015.06.17 18:06:03 5: FRM:<f079020653007400
2015.06.17 18:06:03 5: FRM:<61006e006400610072
2015.06.17 18:06:03 5: FRM:<0064004600690072
2015.06.17 18:06:03 5: FRM:<006d006100740061002e0069006e006f
2015.06.17 18:06:03 5: FRM:<00f7e03902e13401
2015.06.17 18:06:03 5: FRM:<e25e00e32100e47500e50201e63501e722
2015.06.17 18:06:03 5: FRM:<01

--- Ende Code ---

Wenn ich dann die Relais einzeln ansteuere, reagieren teilweise auch mehrere auf eine Aktion. Hab das ganze auch mal in folgendem Video https://www.dropbox.com/s/phhd7rllbuebir2/Firmata.mov?dl=0 festgehalten.

--- Code: ---(Relais 6 ein -> Relais 1 bis 5 schalten aus)
2015.06.17 19:19:28 5: FRM:>907c00
2015.06.17 19:19:28 5: SW: 907c00
(Relais 6 aus)
2015.06.17 19:19:31 5: FRM:>907c01
2015.06.17 19:19:31 5: SW: 907c01
(Relais 7 aus -> Relais 7 und 8 schalten aus)
2015.06.17 19:19:35 5: FRM:>910300
2015.06.17 19:19:35 5: SW: 910300

--- Ende Code ---

Der Vollständigkeit halber noch der FRM-Auszug aus meiner fhem.cfg:

--- Code: ---define FIRMATA FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50482UM-if00-port0@57600
attr FIRMATA model nano
define Relais01 FRM_OUT 2
attr Relais01 IODev FIRMATA
attr Relais01 activeLow yes
attr Relais01 stateFormat value
define Relais02 FRM_OUT 3
attr Relais02 IODev FIRMATA
attr Relais02 activeLow yes
attr Relais02 stateFormat value
define Relais03 FRM_OUT 4
attr Relais03 IODev FIRMATA
attr Relais03 activeLow yes
attr Relais03 stateFormat value
define Relais04 FRM_OUT 5
attr Relais04 IODev FIRMATA
attr Relais04 activeLow yes
attr Relais04 stateFormat value
define Relais05 FRM_OUT 6
attr Relais05 IODev FIRMATA
attr Relais05 activeLow yes
attr Relais05 stateFormat value
define Relais06 FRM_OUT 7
attr Relais06 IODev FIRMATA
attr Relais06 activeLow yes
attr Relais06 stateFormat value
define Relais07 FRM_OUT 8
attr Relais07 IODev FIRMATA
attr Relais07 activeLow yes
attr Relais07 stateFormat value
define Relais08 FRM_OUT 9
attr Relais08 IODev FIRMATA
attr Relais08 activeLow yes
attr Relais08 stateFormat value

--- Ende Code ---

Nun hoffe ich mal, dass jemand eine zündende Idee zur Ursache hat  :o

beste Grüße
funclass

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln