Hallo,
ich möchte gerne mein Arduino UNO über Ethernet bedienen, komme aber nicht weiter und hoffe daher auf Hilfe.
Mein Testaufbau:
Auf meinem Breadboard habe ich zwei LED's und einen Taster:
- Taster an PIN2
- LED grün an PIN 6
- LED rot an PIN 5
Die LED's möchte ich über FHEM/Firmata steuern, den Status des Tasters über FHEM/Firmata angezeigt bekommen.
So sieht meine FHEM.cfg aus:
define ard FRM 3030 global
attr ard room 9.7_Arduino
define pin2_taster FRM_IN 2
#attr pin2_taster count-mode falling
attr pin2_taster room 0.1_Draußen,9.7_Arduino
attr pin2_taster stateFormat reading
define pin5_led_rot FRM_OUT 5
#attr pin5_led_rot restoreOnReconnect on
#attr pin5_led_rot restoreOnStartup on
attr pin5_led_rot room 9.7_Arduino
attr pin5_led_rot stateFormat value
define pin6_led_gruen FRM_OUT 6
#attr pin6_led_gruen restoreOnReconnect on
#attr pin6_led_gruen restoreOnStartup on
attr pin6_led_gruen room 9.7_Arduino
attr pin6_led_gruen stateFormat value
Die LED's lassen sich nun auch über FHEM/FRM_OUT schalten , auch der Schaltzustand des Tasters wird über FHEM/FRM_IN angezeigt.
Nun zum Problem:
Schalte ich nun beide LED's ein, drücke anschließend auf den Taster und schalte danach z.B. die rote LED (PIN5) aus, so wird auch die grüne LED(PIN6) auf LOW gesetzt. FHEMseitig ist der PIN6 natürlich noch auf HIGH, dieser wurde von Hand noch nicht umgeschaltet.
Es gab auch schon andere Szenarien, bei der Arduino-Seitig der PIN einfach auf LOW gesetzt wurde. Auch mit anderen PIN's hatte ich schon gespielt, immerwieder ist dieses Schaltverhalten festgestellt worden. Mit dem o.g Testaufbau ist das Verhalten aber bei mir zu 100% reproduzierbar. Es ist auch unabhängig davon, ob die Kommunikation über USB oder Ethernet läuft.
Hat jemand eine Idee, woran das Verhalten liegen könnte? Handelt es sich ggf um ein Bug, oder habe ich einfach nur einen Gedankenfehler?!
Noch kurz ein paar weitere Informationen:
Board: Arduino Uno
Ethernet: Ethernet Shield v2.0 (DFRobot)
Firmata: Aktuell aus GIT, habe das ConfigurableFirmata verwendet.
FHEM: v5.5 aktualisiert mit fhemupdate.
Vielen Dank für Eure Anregungen !
Viele Grüße
Michael
Nachtrag:
Habe auf dem Arduino mal das Standardfirmata gespielt, gleiches Verhalten.
Wenn ich jedoch aus der FHEM.cfg die FRM_IN Einträge auskommentiere, dann funktioniert es, wie es soll (die LED's behalten ihren Zustand).
Es scheint so, als ob es eine Wechselwirkung zwischen FRM_IN und FRM_OUT gibt.
Gruß
Michael
Hat denn sonst keiner Probleme mit unbeabsichtigten Zustandsänderungen der Pins durch das FRM_IN / FRM_OUT Modul?
Hallo,
Probleme hatte ich auch mal , ardiono 2560 da funktionierten einige Pins überhabt nicht, lag an der firmata und wurde damals behoben.
d.h. klappt mit der aktuellen version bei mir.
Mein Problem ist momentan der status nach einem neustart von fhem.
--------------------------------
IN ist STATE auf: reading
attr stateFormat reading
Readings
reading off
------------------------------
OUT ist STATE auf: value
attr stateFormat value
attr restoreOnReconnect off
attr restoreOnStartup off
Readings
value off
-----------------------------
das ändert sich erst nach dem 1. schalten.
durch dieses falsche STATE wird natürlich ein notiy welches denn off erwartet erstmal nicht ausgeführt.
Wie sind deine States der INs und OUTs nach einem rereadcfg oder neustart von fhem?
Hast du Pulldownwiederstände drin?
Was sagt der Eventmonitor ?
Hallo mcbain2k,
erstmal vielen Dank für Deine Antwort.
Zitat von: mcbain2k am 24 Februar 2014, 23:11:15
Wie sind deine States der INs und OUTs nach einem rereadcfg oder neustart von fhem?
Hmm, das gucke ich mir heute abend nochmal an, ich habe evtl. zuviel gespielt und möchte nochmal alles wieder auf Grundzustand bringen.
Zitat von: mcbain2k am 24 Februar 2014, 23:11:15
Hast du Pulldownwiederstände drin?
Am Taster habe ich einen 10k Pulldownwiderstand. Anzumerken ist, das ich diesen Aufbau eigentlich schon länger in Betrieb habe, um meine Haustürklingel steuern zu können. Da ich aber nun von FHEM infiziert wurde, möchte ich natürlich die Steuerung hierüber laufen lassen. Anzumerken ist schon, das ich Leie in der Elektronik bin, ich dieses nur als Hobby mit gefährlichen Halbwissen :D betreibe. Aber das macht die Sache nur noch interessanter.
Zitat von: mcbain2k am 24 Februar 2014, 23:11:15
Was sagt der Eventmonitor ?
2014-02-25 10:33:09 FRM_OUT pin5_led_rot value: on
2014-02-25 10:33:10 FRM_OUT pin6_led_gruen value: on
2014-02-25 10:33:12 FRM_IN pin2_taster reading: on
2014-02-25 10:33:12 FRM_IN pin2_taster reading: off
2014-02-25 10:33:15 FRM_OUT pin6_led_gruen value: off
Nach dem ich pin6 auf off geschaltet habe, ging auch pin5 auf LOW.
Vielleicht sei noch anzumerken, das ich den UNO R2 habe, ggf. gibt es da noch Unterschiede.
Gruß
Michael
Zitat von: wacholder am 24 Februar 2014, 18:37:59
Hat denn sonst keiner Probleme mit unbeabsichtigten Zustandsänderungen der Pins durch das FRM_IN / FRM_OUT Modul?
Doch, ich kämpfe seit drei Wochen mit einen neu in Betrieb genommen UNO + Firmata V2.05 via USB und FRM_IN
Aber der Reihe nach :
Angeschlossen sind 2 Pins mit 1-Wire (DS1820 und DS2324emu) = ohne Problem bzw. Fehler
5 Pins als Input mit aktivierten internem PullUp , werden beschaltet mit Schalter/Relais bzw. Optokoppler Masse auf den Pin.
3 Pins ohne Fehler ( Optokoppler,Schalter, Relais ),
1 Pin ( Nr. 6) mit sporadischen on/off/on Wechsel die nicht nachvollziehbar sind ( ca 2-3 pro Tag , Optokoppler)
und ein Pin (die Nr.2 , Schalter ) mit sehr häufigen on/off/on Wechsel (mehr als 20 am Tag) für die ich keinen Grund finde - ausser sie decken sich zeitlich mit den Fehlinmeldungen des Pin Nr. 6.
Danke Wzut für Deine Info.
Zitat von: Wzut am 25 Februar 2014, 15:55:39
3 Pins ohne Fehler ( Optokoppler,Schalter, Relais ),
Welche Pins laufen den "Problemlos"? Ich habe hier die Pins 5,6 (OUT) und Pin 2 (IN) in Betrieb. Ich würde dann meinen Taster mal auf einen "problemlosen" Pin legen und mal gucken was passiert.
Bitte sehr :
2 - Input - Sorgenkind
3 - Input - ohne Fehler
4 - Input - ohne Fehler
5 - 1-Wire
6 - Input - einige Fehler
7 - 1-Wire
9 - Input - ohne Fehler
ja tauschen würde ich auch gerne , leider habe ich aber diverse Bauteile auf einer Lochrasterplatine verlötet und die sitzt als Shield auf dem UNO.
Ich habe bisher den Fehler ausschlieslich in meiner Schaltung / Verdrahtung gesucht.
So, habe mal ein paar Testfälle ausprobiert:
Beschreibung der Tabelle:
Fehlerhaft: Fehler wie im ersten Posting beschrieben.
IN/OUT: Definition der Pins
P2-9: Pins.
Nach dem ich den Testfall aufgebaut hatte, wurden die LED's (OUT) auf ON gesetzt, anschließend der Taster betätigt und einer der LED's wieder auf LOW gesetzt. Ging die zweite LED auch aus, dann Fehler, ansonsten OK.
Fazit:
Ich kann kein System erkennen, es gibt aber wohl auch funktionierende Konstellation.
Weiterhin konnte ich Pin4 nicht in FHEM intialisieren, es kam folgende Fehlermeldung:
für FRM_IN:
error initializing: unsupported mode '0' for pin '4'
für FRM_OUT:
error initializing: unsupported mode '1' for pin '4'
Die Testfälle:
Testfall P 5 P6 P2 P7 P9 P8 P3 Ergebnis
1 OUT OUT IN Fehlerhaft
2 OUT IN OUT Fehlerhaft
3 IN OUT OUT Fehlerhaft
4 OUT OUT IN Fehlerhaft
5 OUT OUT IN Fehlerhaft
6 OUT OUT IN Fehlerhaft
7 IN OUT OUT Fehlerhaft
8 IN OUT OUT Fehlerhaft
9 OUT IN OUT Fehlerhaft
10 IN OUT OUT Fehlerhaft
11 OUT OUT IN Fehlerhaft
12 OUT OUT IN OK
13 OUT OUT IN OK
14 OUT OUT IN OK
15 IN OUT OUT OK
16 IN OUT OUT nicht getestet
17 OUT IN OUT nicht getestet
18 IN OUT OUT nicht getestet
19 OUT OUT IN OK
20 OUT OUT IN OK
21 OUT OUT IN Fehlerhaft
22 OUT OUT IN OK
Sehr merkwürdig das ganze...