[Gelöst] Firmata - Mit Tastendruck schalten

Begonnen von merlin2k11, 03 August 2016, 10:19:38

Vorheriges Thema - Nächstes Thema

merlin2k11

Hallo,
ich habe einen Arduino Uno mit W5100 Netzwerk Shield und der Configurable Firmata hier stehen. Jetzt wollte ich über einen Taster der an meinem Sensor Shield ist eine Leuchtdiode ein und ausschalten. Jedoch möchte das nicht so ganz klappen. Könnt Ihr mir sagen wo ich meinen Fehler habe?

Der Arduino mit der Einstellung der möglichen Taster und Ausgänge

define FIRMATA FRM 3230 global
define S1_A1 FRM_IN 15
attr S1_A1 IODev FIRMATA
attr S1_A1 activeLow yes
attr S1_A1 room test
attr S1_A1 stateFormat reading
attr S1_A1 webCmd toggle
define S2_A2 FRM_IN 16
attr S2_A2 IODev FIRMATA
attr S2_A2 activeLow yes
attr S2_A2 room test
attr S2_A2 stateFormat reading
define S3_A3 FRM_IN 17
attr S3_A3 IODev FIRMATA
attr S3_A3 activeLow yes
attr S3_A3 room test
attr S3_A3 stateFormat reading
define Poti_A0 FRM_AD 14
attr Poti_A0 IODev FIRMATA
attr Poti_A0 event-min-interval 5
attr Poti_A0 room test
attr Poti_A0 stateFormat reading
define Diode_D1 FRM_OUT 13
attr Diode_D1 IODev FIRMATA
attr Diode_D1 activeLow yes
attr Diode_D1 room test
attr Diode_D1 stateFormat value
define Diode_D2 FRM_OUT 12
attr Diode_D2 IODev FIRMATA
attr Diode_D2 room test
attr Diode_D2 stateFormat value
define Diode_D3 FRM_OUT 11
attr Diode_D3 IODev FIRMATA
attr Diode_D3 room test
attr Diode_D3 stateFormat value
define Diode_D4 FRM_OUT 10
attr Diode_D4 IODev FIRMATA
attr Diode_D4 room test
attr Diode_D4 stateFormat value


Jetzt möchte ich das der Taster S3_A3 bei einem Tastendruck die Diode_D2 toggelt.


define n_S3_A3 notify S3_A3:on set Diode_D2 toggle
attr n_S3_A3 room test


Weder am Arduino noch in Fhem kann ich sehen das die Leuchtdiode geschaltet würde.

Gruß Armin

Knurb

Hallo,

steht die Verbindung zwischen Fhem und dem Arduino denn prinzipiell? Ich bin zwar auch noch recht neu im Thema habe aber auch einen Arduino/Firmata in Fhem eingebunden.
Kannst du bitte mal die Internals des FIRMATA devices posten?

Knurb

merlin2k11

Hallo Knurb,
was meinst du mit Internals?

Durch mein Experimentieren habe ich S3_A3 zur zeit in S3 umbenannt. Des weiteren nutze ich gerade 2 Arduinos einen als Taster Eingang und einer als Taster Ausgang. Beides für sich funktioniert auch in FHEM. Ich kann die LED über die Weboberfläche EIN und AUS schalten. Den Status des Tasters kann ich auch sehen.

Wenn ich ein Dummy Schalter anlege funktioniert es auch, nur die Verknüpfung zwischen dem Hardware Taster und dem Hardware Ausgang klappt nicht. Software Taster und Hardware Taster hingegen klappt.

Arduino mit Standart Firmata - Hardware Taster hängt an Eingang A3 (Firmata PIN 17) (Das ist ein Fertiges I/O shield was ich nur gerade wegen den fertig aufgebauten Tastern und LEDs nutze)
(http://www.bilder-upload.eu/thumb/896d34-1470691238.jpg)
Der Eingang im Detail
(http://www.bilder-upload.eu/thumb/93a365-1470691898.jpg)

Arduino als Hardware Ausgang -  Die LED hängt an Ausgang A2 (Firmata PIN 16)
(http://www.bilder-upload.eu/thumb/306e92-1470691301.jpg)
Der Ausgang im Detail
(http://www.bilder-upload.eu/thumb/503eea-1470691843.jpg)

notify Hardware Taster S3 - Ausgang
(http://www.bilder-upload.eu/thumb/f9c3cb-1470691183.jpg)

notify Software Taster mit Hardware Ausgang - das klappt
(http://www.bilder-upload.eu/thumb/371dba-1470691718.jpg)

Der Software Schalter
(http://www.bilder-upload.eu/thumb/b334f6-1470692133.jpg)


Gruß Armin

Knurb

Hallo und sorry für meine späte Antwort (Bin gerade am renovieren)

Ich denk mal, dass es einfach an dem Notify liegt. Hast du mal im Eventmonitor geguckt, welches Event ausgelöst wird, wenn du den Taster betätigst?
Ich habe mal kurz einen Schalter bei mir an den Arduino geklemmt. Wenn ich meinen Taster (habe ich auch S3 genannt) nun drücke, wird das Event "S3 reading: on" bzw. beim loslassen "S3 reading: off" erzeugt.
Damit würde dein Notify nach meinem Verständnis so nicht funktionieren.

Wenn bei dir der gleiche Event ausgelöst wird wie bei meinem Test, dann sollte folgendes Notify klappen
S3:.* {
if($EVTPART1 eq "on"){fhem("set LED_optiboot toggle");}
}


Gruß

Knurb

merlin2k11

Hallo,
das mit dem Renovieren geht bei mir nächste Woche wieder los, Heizung weiter bauen ... aber zurück zum Thema.

Ich danke dir. Mit dem was du geschrieben hast funktioniert es super. Nun kann ich mit den Tastern die Ausgänge schalten.

Vielen dank

Gruß Armin

Knurb

Gern geschehen, dann dir viel Spaß beim renovieren. :)

Knurb