FHEM Forum

FHEM => Sonstiges => Thema gestartet von: blueberry63 am 08 April 2014, 16:16:31

Titel: FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 08 April 2014, 16:16:31
Hallo,

könnte mir jemand zu o.g. Thema unter die Arme greifen?

Für mich ist das ganze Thema Arduino+Firmata neu. Die HW ist noch auf dem Postweg, aber ich möchte die Vorgehensweise schon mal grob verstehen.

Was ich bis jetzt verstanden habe:
Arduino über die "ConfigurableFirmata" betanken (gehen wir mal davon aus, dass ich das irgendwann hinbekomme).
Ein IODevice in FHEM anlegen: define FIRMATA FRM <serviceport> global
Einen Port als Ausgang definieren: define Firmata_OUT FRM_OUT <port>

Was ich nicht verstanden habe:
Wie wird das Funkmodul angesteuert, um die Steckdosen zu schalten?

Anmerkung: z.Zt. betreibe ich das Funkmodul direkt am Raspi (genShellScript+send)

Für einige Tips wäre ich dankbar.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 08 April 2014, 17:58:59
Zitat von: blueberry63 am 08 April 2014, 16:16:31
Arduino über die "ConfigurableFirmata" betanken
[...]
Wie wird das Funkmodul angesteuert, um die Steckdosen zu schalten?
Über Firmata überhaupt nicht, es sei denn das Funkmodul hat eingebaute Intelligenz und man muss nur einen Knopfdruck simulieren, was man über FRM_OUT (plus korrekten Anschluss des Funkmoduls an einen I/O-pin des Arduinos) in Verbindung mit set <frmout> on-for-timer 1 (http://fhem.de/commandref_DE.html#set) leicht erreichen kann.

Ohne Intelligenz (sprich eingebautes Funkprotokoll) im Funkmodul müsstest Du erst mal die ConfigurableFirmata um das Funkprotokoll erweitern und ein dazu passendes FRM-submodul schreiben.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 08 April 2014, 19:31:40
Hallo Norbert,

inzwischen habe ich folgenden Beitrag von Wzut zu diesem Thema gefunden:

http://forum.fhem.de/index.php/topic,10744.msg110669.html#msg110669 (http://forum.fhem.de/index.php/topic,10744.msg110669.html#msg110669)

Ist dies vielleicht die "finale" Lösung?

Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 08 April 2014, 23:52:13
ach stimmt, WZut hat da ja mal was dafür eingebaut. Hatte hab leider nicht die passende Hardware das auszuprobieren. (Und zwischenzeitlich gar nicht mehr auf dem Schirm...).

Berichte mal, wie sich das bewährt.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 09 April 2014, 11:24:25
Hallo Norbert,

ich werde mich auf jeden Fall melden und berichten, wie es gelaufen ist.

Mich wundert es etwas, dass diese Konstallation nicht mehr Leute interessiert. Oder kennst Du/jemand eine andere Lösung, wie man einen Arduino mit RF 433-Modul über Ethernet zum Steuern von Funksteckdosen in FHEM verwendet?

Gruß
Blueberry63

P.S.: Habe eben erfahren, dass der Arduino erst ab dem 15. April geliefert wird  :(
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 15 April 2014, 20:49:27
Hallo Norbert,

die Hardware ist angekommen und nun starte ich als Newbie mit Arduino.

WZut schreibt in seinem Beitrag:
Zitat
Software :
RCSwitch Lib für Arduino -> http://code.google.com/p/rc-switch/
Firmata von Norbert V2.05

Ist mit "Firmata von Norbert V2.05" die "ConfigurableFirmata" gemeint?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 15 April 2014, 21:20:20
Zitat von: blueberry63 am 15 April 2014, 20:49:27
Ist mit "Firmata von Norbert V2.05" die "ConfigurableFirmata" gemeint?
Ja

und noch ein Tipp : spiele zuerst die Beispiele der RCswitch lib durch und versuche deine Steckdosen damit zu schalten bevor du mit Firmata weiter machst.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 April 2014, 10:47:39
Hallo Wzut,

Danke für den Tip. Ich werde über den Fortschritt berichten. Wenn ich DAS hinbekomme, hast Du was gut bei mir
;-)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 April 2014, 13:58:27
@Wzut
Muß ich bei der Auswahl der PINS am Arduino etwas beachten (z.Bsp. muß es ein PWM-kanal sein?)?
Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 16 April 2014, 15:40:02
Nein, das Sendemodul sollte mit jedem Digital Out laufen.
Die Einschränkungen kommen  später Firmata ( SD Karte ,  Ethernet)
Ich hatte das Ding damals am Pin 3
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 April 2014, 18:34:49
 :D :D :D
Unglaublich: voller Erfolg beim ersten Versuch!!!

Was ich gemacht habe (Arduino UNO+Ethernet Shield):
nach der Anleitung von Wzut im o.g. Thread und dem Wiki von Norbert die ConfigurableFirmata in die Arduino IDE gespielt, Netzwerkeinstellungen angepasst, RCswitch Library hinzugefügt, kompiliert, unnötige Libraries gelöscht, mit den Modulen von Wzut die originalen Servo-Dateien überspielt,kompiliert und den Arduino betankt.
Nach der richtigen  >:( Umrechnung des 12-stelligen Binärwertes hat es dann sofort funktioniert.

VIELEN DANK für diese tolle Lösung an Wzut und Norbert!

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 April 2014, 19:03:26
@Wzut
Hast Du es geschafft, die einzelnen Steckdosen als Device anzulegen, die man auch über die Weboberfläche per Button schalten kann?

Könnte man diese Devices auch mit "on-till..." usw. programmieren? Das wäre natürlich der Hammer.

Ich will aber nicht mosern, der aktuelle Stand ist schon super!

Gruß
Blueberry63 
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Franz Tenbrock am 16 April 2014, 19:33:08
Hallo
kannst du nicht eine Zusammenfassung von Anfänger für Anfänger schreiben, wenn man es gerade gemacht hat ist das in der Regel recht einfach...
Dann haben alle was davon. Es ist ja immer recht mühsam sich die ganzen Threads durchzulesen... Nur so als Anregung... Am besten ist es wenn es dann noch ins Wiki käme. Das ist gar nicht so schwer, Hab das mal für Zisterne Füllstand mittels Ultraschallsensor gemacht. Ist auch für einen selbst gut wenn man nach einer Zeit das Ganze noch einmal anpacken muss.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 April 2014, 19:46:13
OK, versprochen. Über die Osterfeiertage werde ich die Installation und Konfiguration beschreiben - wenn ich mich damit nicht mit fremden Federn schmücke (Wzut).

Allerdings: wenn die Möglichkeit besteht, die einzelnen Steckdosen als separate Geräte in FHEM zu definieren, dann würde ich mit der Beschreibung noch warten.

Gruß
Blueberry
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 16 April 2014, 19:50:12
Zitat von: blueberry63 am 16 April 2014, 19:03:26
Hast Du es geschafft, die einzelnen Steckdosen als Device anzulegen, die man auch über die Weboberfläche per Button schalten kann?
Ich hatte das ganze nur für ein paar Tage auf einem Steckbrett, eigentlich mehr als Neugier und weil ich was (dazu) lernen wollte. Ich habe mir heute Mittag die von mir damals missbrauchten Servo Dateien angeschaut .... oh je das geht mit meinem heutigen Wissenstand garantiert auch etwas eleganter. Warte mal bis nach Ostern, dann stecke ich mir das auch wieder zusammen und werde mich nochmal an die überarbeitung sowohl der Arduino lib als auch des FHEM Moduls machen.
Daher : warte mal noch etwas mit dem Wiki Eintrag
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 April 2014, 22:56:16
Ist OK. Bin gespannt, was bei der Osterbastelei rauskommt  :)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 17 April 2014, 10:34:15
Noch eine Frage zwischendurch: würde das Ganze auch auf einem Arduino Nano laufen? Für einen Tip zum günstigen Einkauf der Komponenten wäre ich auch dankbar.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 17 April 2014, 19:29:57
Ne,ne keine Osterbastelei ich bin nicht zu Hause bis Montag. Aber ich habe mir gestern Abend das 20_FRM:Serco nochmal angeschaut - da werde ich einen ersatz für schreiben , ähnlich dem IT Modul. Damit kann man dann für jede Steckdose ein eigenes FHEM Device anlegen. Was den Nano angeht, ich habe keine Ahnung wieviel Speicher der hat.Stell doch in deinerArduino IDE einfach mal Board Nano ein lass deine Version einfach mal übersetzen. Be ider Zusammenfassung erscheint dann schon eine Fehlermeldung wenn es nicht reicht.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 17 April 2014, 22:38:40
Ich habe inzwischen eine Lösung für mich gefunden: ich lege einfach ein F20-Dummy mit Notify an.

Zitat
define ARD433 FRM 3030 global
define STECKD_BAUHS FRM_SERVO 7
attr STECKD_BAUHS IODev ARD433
attr STECKD_BAUHS room System

### STECKD Werkraum
define STECKD_WERKR FS20 55b2 00
attr STECKD_WERKR room Werkraum
define n_steckd_werkrON notify STECKD_WERKR:on { fhem("set STECKD_BAUHS angle 3874") }
attr n_steckd_werkrON room Werkraum
define n_steckd_werkrOFF notify STECKD_WERKR:off { fhem("set STECKD_BAUHS angle 3873") }
attr n_steckd_werkrOFF room Werkraum

Damit habe ich für jede einzelne Steckdose ein "Gerät", das ich sowohl  per Weboberfläche, als auch in Notifies mit ON/OFF schalten (nur on-for-timer/on-till geht leider nicht).

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 17 April 2014, 22:44:43
Hallo,

ich habe noch ein Verständnis-Problem: ist FHEMDUINO eine Konkurrenz zu diesem Projekt hier bzw. was ist der Unterschied?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Franz Tenbrock am 18 April 2014, 08:11:09
FHEMDUINO hängt soweit ich mich erinnere am usb Port, das hier am Ethernet
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Olly am 18 April 2014, 09:54:33
Zitat von: Franz Tenbrock am 18 April 2014, 08:11:09
FHEMDUINO hängt soweit ich mich erinnere am usb Port, das hier am Ethernet
So ist es. ;-)
Man kann den Arduino mit Firmata auch direkt per USB anschliessen, dann ist es quasi wie FHEMDuino.

Gruss

    Olly
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Olly am 18 April 2014, 09:55:03
sorry, doppelt....
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Olly am 18 April 2014, 09:56:10
Sorry, doppelt....
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 18 April 2014, 11:19:28
ZitatFHEMDUINO hängt soweit ich mich erinnere am usb Port, das hier am Ethernet

Wäre es dann nicht sinnvoll, beide Projekte zusammenzulegen?

Und: soll ich mal einen entsprechenden Post im FHEMDUINO-Thread posten? Ich möchte aber Wzut nicht überrumpeln...

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 18 April 2014, 14:45:23
Zitat von: blueberry63 am 18 April 2014, 11:19:28
Wäre es dann nicht sinnvoll, beide Projekte zusammenzulegen?
Für FHEMduino habe ich auch schon mal was veröffentlicht (für PEARL Temp Sensoren). FHEMduino und Firmata nutzen zwar beide den Arduino, aber das wars dann auch schon mit der Gemeinsamkeit. So ist diese Steckdosenschalterei nur ein Nebenprodukt, denn der Firmata Anwender wird mehr Wert auf die digitalen und analogen I/Os und den einfachen Anschluss von OneWire legen. Zumal mit Firmata leicht zwischen Anschluss via USB oder Ethernet gewählt werden kann.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 18 April 2014, 15:43:38
@Wzut

Ok, das habe ich jetzt verstanden.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 22 April 2014, 19:26:31
Hallo zusammen,

ich möchte auch Baumarkt-Steckdosen mit einem Arduino schalten.

Meine bisherigen Erfahrungen: ich habe einen Arduino Mega mit ConfigurableFirmata im Einsatz, an dem ein paar Stromzähler hängen. Damit bin ich auch sehr zufrieden. Vor kurzem habe ich einen RF433-Sender und -Empfänger erstanden. Mit einem kleinen Sketch und der RCSwitch-Bibliothek habe ich es ziemlich schnell hinbekommen, Baumarkt-Steckdosen damit zu schalten. Soweit, so gut.

Als nächstes möchte ich das in FHEM integrieren. Auf der Suche nach bestehenden Lösungen bin ich auf FHEMduino gestoßen. Mit FHEMduino und dem bestehenden FHEM-Modul IT war das auch ziemlich einfach und komfortabel zu bewerkstelligen.

Dummerweise kann man ja aber immer nur einen Sketch gleichzeitig auf einem Arduino laufen lassen, also entweder Firmata oder FHEMduino. Ich möchte aber weder auf die Stromzähler verzichten noch für jede Anwendung einen neuen Arduino anschaffen. Die Suche nach einem allgemeinen "Sketch-Multiplexer" verlief erfolglos (ist wohl auch spätestens beim Einsatz von Interrupts nicht ohne Weiteres möglich). Ein Arduino-Sketch aus dem ban-Projekt (https://github.com/threez/ban/blob/master/src/HomeControl.ino) verknüpft RCSwitch mit Firmata, leider aber nicht ConfigurableFirmata.

Vor ein paar Tagen bin ich über einen Hinweis von Norbert gestoßen, dass ConfigurableFirmata ja explizit für die Erweiterung um neue Features entwickelt wurde und habe mir das DHT11-Beispiel (https://github.com/firmata/arduino/tree/configurable/examples/DHT11Firmata) angesehen. Gestern habe ich nun ein Gerüst für ein RCSwitch-Feature entwickelt. Erst jetzt sehe ich, dass Wzut im Prinzip dasselbe Ziel hat und auch schon eine Spezialversion des Servo-Features (http://forum.fhem.de/index.php/topic,10744.msg110669.html#msg110669) zu diesem Zweck entwickelt hat.

Bevor wir jetzt parallel entwickeln, möchte ich hier meinen aktuellen Stand posten. Vielleicht kann ja mal jemand drüberschauen, der mehr Erfahrung mit der Arduino-Entwicklung hat. Der Sketch ist kompilierbar, wurde aber noch nicht ausgeführt (also völlig ungetestet). Die Perl-Seite fehlt noch komplett. Ich schätze, man benötigt neben einem neuen Modul 20_FRM_RCSWITCH Anpassungen in 10_FRM, Platform und Protocol.


Christian
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: drdownload am 23 April 2014, 09:29:29
Was für Stromzähler hast Du denn hier im Einsatz?

LG Alex
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 April 2014, 12:10:53
Ich wollte mich kurz melden, um zu berichten, dass ich nun eine Lösung für das Schalten der Steckdosen mit "on-for-timer/on-till" gefunden habe. Das Stichwort heißt "readingsProxy":

DAS FRM-Device als Basis:

define ARD433 FRM 3030 global
define STECKD_BAUHS FRM_SERVO 7
attr STECKD_BAUHS IODev ARD433
attr STECKD_BAUHS room System


Die einzelne Steckdose (hier: STECKD_DRUCKER):

define STECKD_DRUCKER readingsProxy STECKD_BAUHS state
attr STECKD_DRUCKER setFn {readingsSingleUpdate($defs{$name}, "state", $CMD, 1);; ($CMD eq "on")?"angle 3650":"angle 3649";;}
attr STECKD_DRUCKER setList on off
attr STECKD_DRUCKER valueFn {undef}


Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 April 2014, 13:05:28
Zitat von: drdownload am 23 April 2014, 09:29:29
Was für Stromzähler hast Du denn hier im Einsatz?

Einphasige S0-Zähler von eBay, baugleich zu denen von B+G E-Tech. Es gibt auch einen eigenen Thread (http://forum.fhem.de/index.php?topic=13155.0), in dem ich die Einbindung beschrieben habe.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 April 2014, 22:04:34
Ich habe mich heute mit der Perl-Seite beschäftigt und ein neues Modul ins Leben gerufen, Arbeitsname FRM_RCSWITCH. Ich habe damit erfolgreich per FHEM eine Steckdose geschaltet. Für alle Interessierten hängt der aktuelle Stand an. Das Archiv enthält den Sketch ConfigurableFirmata, das Firmata-Feature RCSwitchFirmata, das FHEM-Modul FRM_RCSWITCH und die geänderten Perl-Firmata-Module. Im Arduino-Library-Ordner muss dazu noch RCSwitch liegen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 24 April 2014, 12:26:59
fein, ich habe inzwischen auch ein neues FHEM Modul dafür 20_FRM_RC :)
Sollte man nun mal testen wie sich das alles optimal verheiraten lässt, da ich jetzt ersteinmal die Bedienung im Webinterface verbessern wollte.
Bzw. für jede Dose ein eigenes Device zur Verfügung stehen soll.
Legen wir das erste mal an :

define Steckdose1 FRM_RC <pin Nr>
attr Steckdose1 DIP 1000101000
attr Steckdose1 IODev <FIRMATA Device Name>
 
die Umrechnung der 10 Schalter entfällt nun , sie müssen direkt im Attribut DIP übergeben werden.
Wichtig auch das der Firmata Device Name unter IODev übergeben wird.
Ist das Device erfolgreich angelegt kann nun im Webinterface direkt an und aus geschaltet werden oder mit on-for-timer/off-for-timer zeitverzögert

Versucht man nun eine zweite Steckdose anzulegen nach obigen Muster gibt es eine Fehlermeldung da 10_FRM nur ein Device pro Pin zulässt.
Abhilfe : einfach 100 zur Pin Nr. dazuzählen:

define Steckdose2 FRM_RC <pin Nr +100>
attr Steckdose2 DIP 1000100100
attr Steckdose2 IODev <FIRMATA Device Name>

define Steckdose3 FRM_RC <pin Nr +100>
attr Steckdose3 DIP 1000100010
attr Steckdose3 IODev <FIRMATA Device Name>

define Steckdose4 FRM_RC <pin Nr +100>
attr Steckdose4 DIP 1000100001
attr Steckdose4 IODev <FIRMATA Device Name>
 

viel Spass beim testen
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 24 April 2014, 13:35:01
Hallo Wzut,

ich werde es nachher sofort testen.

Wie würde denn das 3. Gerät (und weitere) definiert: PIN +101, PIN+102 usw.?

Wäre es nicht sinnvoller, eine weitere "Geräte-Ebene" einzuführen (ähnlich wie bei meiner Konfig über "readingsProxy"):


define RC433Modul FRM_RC <pin Nr>
attr RC433Modul IODev <FIRMATA Device Name>

define Steckdose1 FRM_RCSUB
attr Steckdose1 FRMRC RC433Modul
attr Steckdose1 DIP 1000101000
...


Gruß
Blueberry63

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 24 April 2014, 16:33:22
Zitat von: blueberry63 am 24 April 2014, 13:35:01
Wie würde denn das 3. Gerät (und weitere) definiert: PIN +101, PIN+102 usw.?
nein , alle Geräte bekommen die gleich Pin Nr. wie das zweite :) es ändert sich immer nur der Name und natürlich attr DIP

Ich weiss ist hässlich, aber ich wollte jetzt nicht noch ne Version von 10_FRM anhängen die das abfängt.
Sinnvoller ist den Weg von fhem-user , d.h. zuerst wirklich sauber das Ding auf der Arduino Ebene einbinden ( + einem neuen PIN Mode) und danach die FHEM FRM Module dazu passend machen. Zu guter letzt mit Norbert reden damit er das auch einfach übernehmen kann und zukünftig via update zur Verfügung steht.

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 24 April 2014, 18:43:15
Hier kommt das 1. Testergebnis:

OK: ON,OFF,TOGGLE,OFF-FOR-TIMER
NOK: ON-FOR-TIMER (geht nicht mehr aus)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 24 April 2014, 19:17:26
...und der nächste Bericht:

Das Anlegen mehrerer Steckdosen funktioniert nicht, es kommt die Fehlermeldung:

Zitat
error initializing 'STECKD_1': Device 'STECKD_2 allready defined for pin 7

Also kann Gerät1 nicht angelegt werden, da Gerät2(!) auch schon mit PIN 7 definiert ist (hat aber in DEF 107)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 24 April 2014, 21:13:50
OK, das mit dem on-for-timer kann eigentlich nur ne Kleinigkeit sein. Ist vermutlich beim letzten aufräumen passiert. Schau ich morgen früh nach.
Die Fehlermeldung kommt von 10_FRM , das ist genau der Effekt wenn der Pin schon mal für ein Gerät definiert ist. Allerdings wundert mich das jetzt, denn genau das sollte ja mit den +100 umgangen werden. Muss ich auch morgen nachschauen ob in meiner 10_FRM noch Zeilen auskommentiert sind.

Danach werde ich aber auf jeden Fall mit der missbrauchten Firmata_Servo Schluss machen und auf die Variante von fhem-user umsteigen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 24 April 2014, 22:49:02
@Wzut,

wenn Du eh auf der Basis von FHEM-USER weitermachen willst, dann mußt Du Dir "für mich" keine Mühe machen. Ich warte gerne, wenn nachher eine Lösung rauskommt, die ins Konzept von FRM paßt.

In der Zwischenzeit komme ich mit meiner "readingsProxy"-Lösung gut zurecht.

Zum Testen bin ich aber natürlich jederzeit bereit.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 24 April 2014, 23:05:17
Ich (fhem-user) habe jetzt den Alias Christian. Ist nicht so sperrig.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 25 April 2014, 08:11:18
Kurzer Zwischenstand: ich mache weiter auf der Arduino-Seite. Ich integriere die RCSwitch-Parameter (z.B. pulseLength) und möchte mir danach ansehen, ob nicht auch der Empfang von Daten möglich ist. Wenn ich mir das DHT11-Beispiel ansehe, scheint das nicht allzu schwierig zu sein. Vermutlich wäre es dann sinnvoll, Senden und Empfangen in getrennten Firmata-Features unterzubringen, analog zu DigitalInput und DigitalOutput.

Die Perl-Seite ist ja zur Zeit funktionsfähig, aber nicht besonders komfortabel. Eigentlich wünsche ich mir so eine Art Klon des Moduls 10_IT. Das kommt dann später.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 25 April 2014, 09:06:51
Den Fehler bei on-for-timer habe ich gefunden und für das zweite, dritte, usw. Geräte auch eine andere Difinition eingeführt.
WICHTIG : Die Pin Nr. des 1+n Device muss nun gleich dem ersten Device sein (also nicht mehr +100 !) und es muss das neue Attribut SubDev auf 1 gesetzt werden.
Bsp bei mir :

define Steckdose1 FRM_RC 3
attr Steckdose1 DIP 1000101000
attr Steckdose1 IODev FIRMATA
attr Steckdose1 room Dosen

define Steckdose2 FRM_RC 3
attr Steckdose2 DIP 1000100100
attr Steckdose2 IODev FIRMATA
attr Steckdose2 SubDev 1
attr Steckdose2 room Dosen
 
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Olly am 25 April 2014, 09:08:16
Hi,

das finde ich toll hier, was ihr macht. Damit kann ich ja quasi meine Funkreichweite erweitern, indem ich einen 433 MHz Sender per Arduino und Netzwerk an entsprechender Stelle platziere.
Weiter so. ;-)

Gruss

     Olly
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 April 2014, 11:42:03
@Wzut

ich habe die Konfiguration nach Deiner neuen Definition umgestellt, bekomme aber wieder denselben Fehler beim Neustart:

Zitaterror initializing 'STECKD_1': Device 'STECKD_2 allready defined for pin 7

Liegt es vielleicht an der Reihenfolge bei der Initialisierung der Geräte beim Neustart?

Gruß
Blueberry63

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 April 2014, 11:47:54
@Olly,

ZitatDamit kann ich ja quasi meine Funkreichweite erweitern, indem ich einen 433 MHz Sender per Arduino und Netzwerk an entsprechender Stelle platziere

...genau das ist es, was mir so wichtig ist. Wenn man nämlich seinen FHEM-Server ungünstig plaziert hat (z.Bsp. Keller), dann bringt einem das 433-Funkmodul direkt am Server nicht viel. Leider kenne ich mich mit der Programmierung nicht genug aus, daß ich hier selbst eine Lösung erarbeiten könnte.

Deswegen: auch von mir nochmal ein DICKES Lob an Wzut, Christian und alle, die hier ihre Zeit investieren.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 25 April 2014, 12:25:35
Zitat von: blueberry63 am 25 April 2014, 11:42:03
bekomme aber wieder denselben Fehler beim Neustart:
Trotz SubDev 1 beim zweiten Device ??? poste doch bitte mal den ganzen Firmata Abschnitt deiner config
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 April 2014, 14:09:10
Here we go:


define ARD433 FRM 3030 global

define STECKD_FLURO FRM_RC 7
attr STECKD_FLURO DIP 1110000100
attr STECKD_FLURO room Flur_oben,Lampen,Steckdosen

define STECKD_FLURU FRM_RC 7
attr STECKD_FLURU DIP 1110001000
attr STECKD_FLURU IODev ARD433
attr STECKD_FLURU SubDev 1
attr STECKD_FLURU room Flur_unten,Lampen,Steckdosen

define STECKD_DRUCKER FRM_RC 7
attr STECKD_DRUCKER DIP 1110010000
attr STECKD_DRUCKER IODev ARD433
attr STECKD_DRUCKER SubDev 1
attr STECKD_DRUCKER room Steckdosen

define STECKD_TVBZ FRM_RC 7
attr STECKD_TVBZ DIP 1110000010
attr STECKD_TVBZ IODev ARD433
attr STECKD_TVBZ SubDev 1
attr STECKD_TVBZ room Steckdosen

define STECKD_TVV FRM_RC 7
attr STECKD_TVV DIP 1111010000
attr STECKD_TVV IODev ARD433
attr STECKD_TVV SubDev 1
attr STECKD_TVV room Steckdosen

define STECKD_WERKR FRM_RC 7
attr STECKD_WERKR DIP 1110001000
attr STECKD_WERKR IODev ARD433
attr STECKD_WERKR SubDev 1
attr STECKD_WERKR room Steckdosen


Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 April 2014, 14:21:17
Habe gerade gesehen, das beim 1. Geräte (STECKD_FLURO) kein "ioDev" definiert ist. Wenn ich das nachholen will, kommt folgende Meldung:
Zitat
cannot set attribute IODev to ARD433 for STECKD_FLURO: Device 'STECKD_DRUCKER' allready defined for pin 7

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 25 April 2014, 16:28:08
Jo , ist klar :)
FRM arbeitet deine Firmata Devices NICHT in der Reihenfolge ab wie sie in der config stehen , sondern alphabetisch -> demnach ist Drucker dein erstes Device, wirf da das SubDevice raus und beim FLURO das IoDev rein.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 April 2014, 19:08:21
Jetzt klappt alles perfekt!  :)

Gruß
Blueberry
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 26 April 2014, 20:20:19
Zitat von: Christian. am 25 April 2014, 08:11:18
Die Perl-Seite ist ja zur Zeit funktionsfähig, aber nicht besonders komfortabel.
FIRMATA Empfang wäre natürlich auch noch schön , bleibe bitte an der Arduino Seite dran. Ich möchte auf der Perl/FHEM Seite weiter schrauben, allerdings habe ich es bis jetzt nicht geschafft mit deinen Dateien meine Steckdose zu schalten. Finde z.Z auch nicht raus warum es nicht klappt.
Die Fehlermeldung auf der Konsole beim senden :
Use of uninitialized value $buf in split at ./FHEM/10_FRM.pm line 616.
Use of uninitialized value $wbuf in string eq at /usr/local/lib/perl/5.10.1/Device/SerialPort.pm line 1729.

$buf hat keinen Inhalt beim senden .... hm hm hm
Beim suchen bin ich in deiner Protocol.pm noch über eine print Anweisung gestolpert.
Tipp : ich würde sie ersetzen durch etwas in der Art :
main::Log 3 , "FRM: unsupported character -> ".$c
dann hat man die Fehlermeldung zumindest im log :)
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 27 April 2014, 09:40:10
Hmmm... da fällt mir spontan wenig zu ein. Wir müssen herausbekommen, wie weit Deine Nachricht kommt.

Bau doch mal Log-Statements ein,
Damit Änderungen an den Dateien in lib wirksam werden, muss man (glaube ich) FHEM neustarten; das Modul FRM_RCSWITCH neu zu laden reicht jedenfalls nicht.

Der Aufruf, der meine Steckdose erfolgreich schaltet, lautet übrigens
set rcswitch message 00F0FF0FFF0F

Das println habe ich ersetzt. Vielleicht wäre es noch sinnvoller, bei einem fehlerhaftem Code abzubrechen und eine Fehlermeldung zurückzugeben.

Ich mache wie beschrieben auf der Arduino-Seite weiter. Gib Bescheid, wenn Du irgendwie weiterkommst.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 27 April 2014, 10:29:59
Ok, das mit dem FHEM Neustart ist kler - ebenso das ich die Bits ändern muss , d.h wenn ich ne 1 hatte jetzt ne 0 und statt 0 ein F
einen Fehler habe ich inzwischen gefunden in der Constants.pm :
RCSWITCH                 => 0x10
war nur im Block für die V2.06 , ich verwende allerdings noch die V2.05
den Loglevel habe ich inzwischen auf 5 und da sehe ich auch das es beim Sendeversuch nichts zum senden gibt :
2014.04.27 10:19:55 5: 4>
2014.04.27 10:19:55 5: SW:

aber ich bleibe dran , wäre doch gelacht ....

EDIT : in Constants.pm fehlte mir bei V2.05 auch noch
RCSWITCH_SEND_REQUEST    => 0x67

nun klappt es :)
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 28 April 2014, 11:10:48
Update :
Ich habe meine 20_FRM_RC angepasst damit sie mit der Version von Christian. zusammen arbeitet.
In meiner Bastelkiste hatte ich auch noch von Intertechno einen Funk-Allrounder ITL-1000 und eine Mini Fernbedienung ITK-200
Den ITL-1000 kann ich inzwischen auch an & aus schalten musste nur das Attr OnCode 00 setzen (OffCode konnte bei 01 bleiben)
Da der ITL-1000 keine 10er Dip Schalter Reihe hat sondern den Code von der Fernbedienung lernt, hatte ich zuerst den Mini Handsender angelernt und danach versucht diesen Code zu senden. Der Sender hat z.Z am Drehrad die Einstellung B 2 , das entspricht dem DIP Code 01110 11110
Wenn an dem Thema Intertechno schalten Interesse besteht werde ich noch versuchen das Modul so zu ändern das man die Intertechno Sender Einstellung direkt als Attribut angeben kann und nicht erst auf DIP Schalter umrechnen muss. Da ich selbst aber keine weiteren IT Produkte habe eine Frage an die IT Nutzer :
Die Mini Fernbedienung hat ein Drehrad mit den möglichen Einstellungen von A1 bis D4 (d.h. 16 Stellungen) ist das bei den grösseren Modellen identisch oder kann hier mehr eingestellt werden ?   

Edit : gerade eim Wiki gefunden : http://www.fhemwiki.de/wiki/Intertechno_Code_Berechnung
Ich werde das Modul ändern so das dann immer IT Code verwendet werden muss   
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 28 April 2014, 17:01:39
Zitat von: Wzut am 28 April 2014, 11:10:48
Ich werde das Modul ändern so das dann immer IT Code verwendet werden muss

Macht es wirklich Sinn, noch ein Modul für IT zu machen ? Neben dem 10_IT.pm gibt es ja schon das FHEMduino. Und nun noch eines. Ist es nicht möglich, das FRM_RC als IODev für das 10_IT Modul zur Verfügung zu stellen ? Dann hat man die ganze IT Code Berechnung nur einmal.

Ich finde die Idee, IT über FRM zu schalten übrigens sehr gut. Da könnte ich mir auch einen Arduino sparen :-)
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 28 April 2014, 19:44:38
Zitat von: papa am 28 April 2014, 17:01:39Ist es nicht möglich, das FRM_RC als IODev für das 10_IT Modul zur Verfügung zu stellen ?
Aus meiner Sicht ist ein RCSwitch-FHEM-Modul zuständig für den RC-Sender, also 1 Arduino-Pin. Die logischen Geräte, also z.B. Steckdosen, kämen oben drauf - die teilen sich alle den 1 Sende-Pin. Mit diesem Ansatz wären auch mehrere Funk-Sender mit unterschiedlichen Frequenzen denkbar, die man gleichzeitig nutzen kann. Ich kann papa also nur zustimmen und fände es sehr sinnvoll, eine solche Schichtenarchitektur aufzubauen und 10_IT weiterzuverwenden.

Ich hatte mir das im Vorfeld auch schonmal angeschaut; zur Zeit sind in 10_IT aber direkte Aufrufe auf CUL_SimpleWrite, die Kopplung zum CUL ist recht hoch. Ich fühle mich immer noch als FHEM- und Perl-Neuling - könnte hier vielleicht jemand aushelfen und die CUL-spezifischen aus dem Modul herausziehen?

Zitat von: papa am 28 April 2014, 17:01:39Neben dem 10_IT.pm gibt es ja schon das FHEMduino.
Wenn ich FHEMduino richtig verstanden habe, ist das ein CUL-Emulator, d.h. das bestehende 10_IT sollte damit laufen. Leider steht der Arduino mit FHEMduino aber leider für keine weiteren Aufgaben zur Verfügung.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 28 April 2014, 20:31:22
Zitat von: Christian. am 28 April 2014, 19:44:38
die Kopplung zum CUL ist recht hoch. Ich fühle mich immer noch als FHEM- und Perl-Neuling
Jetzt mach dich mal nicht kleiner als du bist .... Ob Neuling oder nicht, was du bisher geliefert hast hatte Hand und Fuß, also Brust raus :)
Spass beiseite, schau noch mal rein ins 10_IT und ziehe den FHEM Grundpart ab den jedes Modul hat und  die Homematic / IT Umschaltung für den CUL. Was bleibt dann noch an echten netto Funktionen übrig ?

a. die Tabellen für die verschiedenen Schaltertypen. Es sind genau diese Codes die jetzt zu Firmata rüber müssen damit die RCSwitch.cpp sie mit ihrer SendTriState Funktion an/aus schalten kann und das ist genau der Teil den ich eigentlich in 20_FRM_RC noch einbauen wollte.

b. kann das 10_IT noch Schalter dimmen. Wäre das mit der RCSwitch.cpp heute überhaupt machbar ?     
 
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 28 April 2014, 21:14:43
Danke für das Lob!

Zitat von: Wzut am 28 April 2014, 20:31:22ziehe den FHEM Grundpart ab den jedes Modul hat und  die Homematic / IT Umschaltung für den CUL
Ach so, sind die CUL-Abhängigkeiten nur zum Hin- und Herschalten zwischen FS und HM? Dann ist das für das Senden über Firmata ja überflüssig...

Zitat von: Wzut am 28 April 2014, 20:31:22b. kann das 10_IT noch Schalter dimmen. Wäre das mit der RCSwitch.cpp heute überhaupt machbar ?
Wenn ich das Modul 10_IT richtig lese, gibt es technisch keinen Unterschied zwischen schalten und dimmen - in beiden Fällen wird ein Code gesendet, auf den das Gerät dann entsprechend reagiert.

Wie würde denn die gemeinsme Nutzung eines einzelnen Arduino-Pins durch mehrere Geräte aussehen, geht das sauber in nur einem Modul?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 29 April 2014, 10:28:46
Zitat von: Christian. am 28 April 2014, 21:14:43
Wie würde denn die gemeinsme Nutzung eines einzelnen Arduino-Pins durch mehrere Geräte aussehen, geht das sauber in nur einem Modul?
Ja, das geht  siehe meine Postings vom WE. Ich würde den Fall allerdings gerne nochmal mit Norbert durchsprechen vllt. hat er ja noch eine bessere Idee.
(mir gefällt z.Z.nur nicht das 10_FRM die Devices nicht in der Reihenfolge abarbeitet wie sie in der config stehen)

Als Anhang meine letzte  Version mit direkter IT Code Unterstützung, die sollte bei dir fast aus dem Stand auch laufen, da ich von deinen Dateien nur in der Protocol.pm die Message Prüfung ganz entfernt und in mein Modul verlagert habe.
Ich habe nun eine Baumarktdose mit DIP Schalter und die eine IT Dose am laufen, so schaut es aktuell aus :
define Steckdose1 FRM_RC 3
attr Steckdose1 IODev FIRMATA
attr Steckdose1 CodeType DIP
attr Steckdose1 RCCode 1000101000

define Steckdose2 FRM_RC 3
attr Steckdose2 IODev FIRMATA
attr Steckdose2 CodeType IT
attr Steckdose2 RCCode B2
attr Steckdose2 OnCode FF
attr Steckdose2 OffCode F0
attr Steckdose2 SubDev 1

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 29 April 2014, 12:09:47
Hm, das sieht eigentlich ganz gut aus. Nur eine Sache gefällt mir dabei aber noch nicht 100%ig. Ich erweitere den Arduino-Sketch ja gerade um die RCSwitch-Parameter (protocol, pulseLength, repeatTransmit). Das sind Eigenschaften des Senders, die für alle Empfänger gemeinsam gelten. In FHEM möchte ich die über eine attr-Deklaration setzen. Wo gehört diese Deklaration hin? Zur ersten deklarierten Steckdose? Zur alphabetisch ersten Steckdose? Mehrfach, also an jeder Steckdose? Ich sehe die eher in einem eigenen FHEM-Modul, das nur für den Sender zuständig ist. Das Modul für die Steckdosen käme dann oben drauf.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 29 April 2014, 12:30:34
Auch auf die Gefahr hin, dass ich nerve. Ich finde den Ansatz hier alles nochmal neu aufzurollen nicht wirklich gut.
Wenn das FRM_RC Device also IODev für IT geht, würde das so aussehen.


define SteckdosenIT FRM_RC 3
attr Steckdose1 IODev FIRMATA

define Steckdose1 IT 1000101000 00 11
attr Steckdose1 IODev SteckdosenIT

define Steckdose2 IT B2
attr Steckdose2 IODev SteckdosenIT


Das IT Modul schickt übrigens immer den TriState-Code zum IODev. Somit kann die gesamte Umrechnung im FRM_RC entfallen.

Wenn der Empfang mit eingebaut werden soll, dann müsste das Define FRM_RC noch einen Parameter für den Empfangspin optional kriegen. Es gabt hier im Forum auch schon mal nen Patch, der den Empfang von IT mittels einer angepassten CUL-Firmware realisiert hat. Vielleicht kriegt man das jetzt alles mal zusammen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 29 April 2014, 12:59:19
Zitat von: papa am 29 April 2014, 12:30:34Wenn der Empfang mit eingebaut werden soll, dann müsste das Define FRM_RC noch einen Parameter für den Empfangspin optional kriegen.
Ich würde stattddessen sowohl Arduino-seitig als auch FHEM-seitig das Senden und den Empfang strikt voneinander trennen, also 2 Arduino-Sketches (die beide in ConfigurableFirmata eingebunden werden können) und zwei getrennte FHEM-Module. Im RCSwitch stehen die Funktionen auch ohne Zusammenhang nebeneinander und teilen sich keine Parameter. In der Praxis wird es Nutzer geben, die nur senden und solche, die nur empfangen. Das wäre dann ganz analog zu FRM_IN und FRM_OUT.

Zitat von: papa am 29 April 2014, 12:30:34Das IT Modul schickt übrigens immer den TriState-Code zum IODev.
Was müsste so ein IODev-Modul denn leisten, d.h. welche Funktionen oder Attribute gehören da rein?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 29 April 2014, 13:27:30
Zitat von: Christian. am 29 April 2014, 12:59:19
Ich würde stattddessen sowohl Arduino-seitig als auch FHEM-seitig das Senden und den Empfang strikt voneinander trennen, also 2 Arduino-Sketches (die beide in ConfigurableFirmata eingebunden werden können) und zwei getrennte FHEM-Module. Im RCSwitch stehen die Funktionen auch ohne Zusammenhang nebeneinander und teilen sich keine Parameter. In der Praxis wird es Nutzer geben, die nur senden und solche, die nur empfangen. Das wäre dann ganz analog zu FRM_IN und FRM_OUT.

Dann müssten die IT-Devices aber 2 IODevs unterstützen. Eines für das Senden und eines für das Empfangen. Ich glaube so was geht nicht.

Zitat von: Christian. am 29 April 2014, 12:59:19
Was müsste so ein IODev-Modul denn leisten, d.h. welche Funktionen oder Attribute gehören da rein?

Das ist eine gute Frage - habe noch nie ein Modul entwickelt. Im IT-Code finden sich auf jeden Fall "AttrFn", "GetGn" und "WriteFn" - allerdings über CUL_SimpleWrite().
Da sind halt auch ein paar CUL-spezifische Sachen drin, wie z.B. den rfmode umschalten. Die entsprechenden Writes, könnte ein FRM_RC ja einfach ignorieren.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 29 April 2014, 14:56:02
Zitat von: papa am 29 April 2014, 13:27:30Dann müssten die IT-Devices aber 2 IODevs unterstützen. Eines für das Senden und eines für das Empfangen. Ich glaube so was geht nicht.
Meinem Verständnis nach ist 10_IT ein reines Sendemodul - oder täusche ich mich?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 29 April 2014, 15:43:45
Zitat von: Christian. am 29 April 2014, 14:56:02
Meinem Verständnis nach ist 10_IT ein reines Sendemodul - oder täusche ich mich?

http://forum.fhem.de/index.php/topic,14348.0.html (http://forum.fhem.de/index.php/topic,14348.0.html) hier wurde schon mal der Empfang mit CUL integriert.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 29 April 2014, 15:49:11
Zitat von: Christian. am 29 April 2014, 12:09:47
um die RCSwitch-Parameter (protocol, pulseLength, repeatTransmit).
meinst du man muss sie wirklich aus FHEM heraus ändern ?
Bis jetzt ging es doch auch mit den default Werten der RCSwitch.cpp

ZitatEigenschaften des Senders, die für alle Empfänger gemeinsam gelten.
warum ? Wenn du der Meinung bist man müsste sie ändern, dann kann der Anwender auch ebenso gut Mischbetrieb an Geräten haben, d.h. für das eine brauch er andere Werte als für das andere.

ZitatIn FHEM möchte ich die über eine attr-Deklaration setzen. Wo gehört diese Deklaration hin?
Ja , ich würde einfach die attr Liste um diese Parameter erweitern und mit default Werten vorbesetzen. 
Aber bedenke bitte das dann jedesmal vor dem senden des eigentlichen Codes noch geschaut werden muss welche Parameter an den Arduino müssen. D.h. dann sind jedesmal zwei SysEx fällig, Parameter ändern und Code senden. - wieder unter der Bedienung der Anwender nutzt Mischbetrieb sonst kannst das natürlich einmal beim Init erledigen.

ZitatMehrfach, also an jeder Steckdose?
nach meiner Logik , ja


Zitat von: papa am 29 April 2014, 12:30:34
Ich finde den Ansatz hier alles nochmal neu aufzurollen nicht wirklich gut.
Es steht dir selbstverständlich frei uns (bzw. mir) es  vorzumachen wie es besser geht,
denn mit meinem heutigen Wissenstand kann ich es nicht. Meine eine Baumarksteckdose geht an und aus, d.h. ich bin soweit glücklich
und gebe das Staffelholz gerne weiter.


Zitat von: papa
habe noch nie ein Modul entwickelt
dann ist ja jetzt die beste Gelegenheit damit anzufangen :)

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 29 April 2014, 17:16:05
Zitat von: Wzut am 29 April 2014, 15:49:11
dann ist ja jetzt die beste Gelegenheit damit anzufangen :)

Leider lassen Job & Familie nicht genügend Zeit für umfangreiche Entwicklungen. Ich sehe allerdings, dass hier viel Zeit und Energie in unterschiedliche Lösungen für IT gesteckt werden. Ich versuche nur, diese zu bündeln und in eine gemeinsame Architektur zu überführen. Das Ganze könnte dann hoffentlich auch mal in das offizielle Update einfließen und damit allen FHEM-Usern zu Gute kommen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 30 April 2014, 14:24:17
Hallo Ihr,

ich hatte leider ziemlich wenig Zeit die letzten 14 Tage, den Thread habe ich erst gestern genauer gelesen. Finde ich ziemlich cool, wie zügig Ihr das umgesetzt habt!

Das verwendete Sysex-Protokoll sollte man aber noch mal ein bischen überarbeiten, so dass es die RCSwitch-library möglichst vollständing unterstützt - auch wenn das noch nicht alles implementiert ist, aber sonst verbaut man sich (oder anderen) später den Weg. Also nicht einfach eine einezige Funktion der Library unterhalb des Sysex-befehls, sondern darunter noch Subkommandos (senden, configurieren, empfangen...), schaut einfach mal z.B. in die OneWireFirmata.cpp (https://github.com/firmata/arduino/blob/configurable/utility/OneWireFirmata.cpp#L48) rein, da erkennt man schnell das Prinzip. Bitte macht für das Protokoll ein Proposal im Protocol-repository (https://github.com/firmata/protocol) auf Github (einfach auf Github das Repository clonen und dann das Proposal als neue 'rcswitch.md'-datei per pull-request gegen protocol/master abschicken).

Ich hab mal einen Blick in die Implementierung geworfen, die RCSwitch-library arbeitet empfangsseitig ja über Interrupts und damit (abgesehen von den zum Timing der Sequenzen nicht vermeidbaren delays im µS-Bereich) nicht blockierend und sollte damit gut mit anderen Firmata-Features koexistieren können. (Das ist nicht so selbstverständlich - leider sind viele Libraries nicht dafür gemacht mit anderem code reibungslos parallel laufen zu können). Wenn das Protokoll steht spricht aus meiner Sicht nichts dagegen das zügig in die 'offizielle' ConfigurableFirmata aufzunehmen, damit es seinen offiziell reservierten Pinmode + Sysex-command bekommt.

Analoges auch für die Perl-firmata (Protocol.pm): Da würde ich darum bitten, die Dateien im FHEM-SVN nicht zu ändern, sondern alle Änderungen als Pull-request gegen das perl-firmata Repository auf Github (https://github.com/ntruchsess/perl-firmata) einzusteuern. Es macht keinen Sinn eine 'FHEM'-Spezialversion der Perl-firmata zu pflegen. Wenn man neue Features nicht in das 'offizielle' Firmata-protokoll einsteuert, dann kommt es auch nicht in die Perl-firmata rein. (Was kein Problem wäre - man kann die entsprechenden Aufrufe zum Zusammenbauen und Abschicken des Requests ja auch im FHEM-modul selbst machen).

Änderungen am FRM-code sind da natürlich unkomplizierter - die leben ja nur innerhalb von FHEM... Wobei ich es auch da bevorzugen würde einen pull-request gegen meinen fhem-mirror (https://github.com/ntruchsess/fhem-mirror) auf Github zu kriegen bzw. alle, die an FRM und Submodulen mitarbeiten wollen auf diesem Repository berechtigen würde, damit man da vor Veröffendlichung im FHEM-SVN in eigenen Branches unkompliziert zusammenarbeiten kann.
Gerade beim Thema: 'mehrere FRM-Client-Instanzen teilen sich einen Arduino-Pin' besteht da offensichtlich noch Optimierungspotenzial ;-)

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 30 April 2014, 14:54:13
Dank für die ausführliche Antwort, aber an einem Punkt möchte ich nochmal nachfassen:
Zitat von: ntruchsess am 30 April 2014, 14:24:17
Gerade beim Thema: 'mehrere FRM-Client-Instanzen teilen sich einen Arduino-Pin' besteht da offensichtlich noch Optimierungspotenzial ;-)

Hier ist eine entscheidende Frage an dich als Autor von 10_FRM.pm offen:
Bist du gewillt in 10_FRM eine "Sonderbehandlung" für Geräte die sich einen Pin teilen einzuführen oder ist dein Standpunkt eher in der Richtung zu sehen "soll doch das Fremdmodul sehen wie es klar kommt" ?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 30 April 2014, 15:34:21
Zitat von: Wzut am 30 April 2014, 14:54:13
Bist du gewillt in 10_FRM eine "Sonderbehandlung" für Geräte die sich einen Pin teilen einzuführen oder ist dein Standpunkt eher in der Richtung zu sehen "soll doch das Fremdmodul sehen wie es klar kommt" ?

Da bin ich flexibel und für alle sinnvollen Vorschläge offen. 10_FRM ist ja keine 'öffendliche API', wo man alles lieber 3 mal durchdenkt und nach Veröffendlichung kaum noch was ändern kann, weil man die Nutzer nicht kennt. (Das ist ein ganz wesentlicher Unterschied zum 'offiziellen' Firmata-protokoll oder auch der Perl-firmata). Sag einfach was gebraucht wird, oder mach (wenn der code schon steht) entsprechende Pull-requests auf Github um die Details am Code selbst (auf Github kann man sehr schön Kommentare zu jeder code-zeile eines Pull-requests hinzufügen) zu diskutieren.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 30 April 2014, 18:54:52
Zitat von: ntruchsess am 30 April 2014, 14:24:17Finde ich ziemlich cool, wie zügig Ihr das umgesetzt habt!
Danke :)

Zitat von: ntruchsess am 30 April 2014, 14:24:17Das verwendete Sysex-Protokoll sollte man aber noch mal ein bischen überarbeiten
Keine Sorge, das habe ich bereits getan, ganz analog zu OneWire. Ich stelle mir den Sketch als vollständigen Adapter zu RCSwitch vor. Ich habe zuletzt das Übermitteln der Sende-Parameter implementiert und arbeite jetzt an einer Rückmeldung. Danach möchte ich mich um den Empfang von Daten kümmern.

Zitat von: ntruchsess am 30 April 2014, 14:24:17Bitte macht für das Protokoll ein Proposal auf Github
Git ist Neuland für mich, aber das schaue ich mir an. Ich hatte sowieso vor, dass alles erstmal "über Deinen Tisch" geht - die Firmata-Erweiterung ebenso wie die Perl-Module. Auf diesem Weg ist es sicher am praktischsten.

Zitat von: ntruchsess am 30 April 2014, 14:24:17
Gerade beim Thema: 'mehrere FRM-Client-Instanzen teilen sich einen Arduino-Pin' besteht da offensichtlich noch Optimierungspotenzial ;-)
Ja, ich finde es prima, dass wir uns hier im Forum darüber austauschen können, bevor jemand von uns viel Arbeit in eine Lösung steckt, die sich hinterher als verbesserungswürdig herausstellt. Ich habe meinen RF-Sender/Empfänger für 2€ (brutto und inkl. Versand!?!) erstanden und ging deshalb davon aus, dass man bei unterschiedlichen Geräten einfach mehrere Pins mit je einem Sender belegt. An eine gemeinsame Nutzung hatte ich überhaupt nicht gedacht. Grundsätzlich bin ich der Meinung von papa, dass man möglichst viel Code gemeinsam nutzen und möglichst wenig doppeln sollte. Andererseits hat Wzut auch Recht, dass im 10_IT-Modul gar nicht so furchtbar viel Logik enthalten ist. Vielleicht finden wir ja gemeinsam eine optimale Lösung.

Ich plane jetzt zunächst, die Arduino-Seite rund zu machen und das dann auf github zu veröffentlichen. Dann können wir uns das ja mal gemeinsam ansehen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 30 April 2014, 23:12:02
Zitat von: Christian. am 30 April 2014, 18:54:52
Ich habe meinen RF-Sender/Empfänger für 2€ (brutto und inkl. Versand!?!) erstanden und ging deshalb davon aus, dass man bei unterschiedlichen Geräten einfach mehrere Pins mit je einem Sender belegt. An eine gemeinsame Nutzung hatte ich überhaupt nicht gedacht.
Auch wenn die Teile billig sind: wenn alle auf der gleichen Frequenz laufen wäre das eher kontraproduktiv.

Zitat von: Christian. am 30 April 2014, 18:54:52
Grundsätzlich bin ich der Meinung von papa, dass man möglichst viel Code gemeinsam nutzen und möglichst wenig doppeln sollte. Andererseits hat Wzut auch Recht, dass im 10_IT-Modul gar nicht so furchtbar viel Logik enthalten ist.
Eine gemeinsame codebasis nutzen bedeutet primär ein gemeinsames Interface zu implementieren. Wie das z.B. bei den plattformübergreifenden I2C-modulen (http://forum.fhem.de/index.php/topic,19797.msg159683.html#new) realisiert worden ist. Selbst wenn man nur vergleichsweise wenig logic im 10_IT.pm hat, wenn man das für mehrere Backends nutzen würde, wäre das nicht nur leichter wartbar, sondern auch für die Anwender einfacher verständlich.
Im Grunde genommen bräuchte man für so simple Ein/Ausschalter-module auch noch eine API zwischen dem physikalischen Modul, das mit der Hardware spricht und den logischen - zu schaltenden - Einheiten, die im Prinzip nicht viel mehr als 'set xxx on/off' + SetExtensions verstehen. Das könnte man für alles was über ein physikalisches Gerät mehrere Aktoren an/aus schalten kann (gilt genauso für GPIO-pins am Pi oder FRM_IN/FRM_OUT am Arduino) für den Benutzer komplett vereinheitlichen.

Zitat von: Christian. am 30 April 2014, 18:54:52
Ich plane jetzt zunächst, die Arduino-Seite rund zu machen und das dann auf github zu veröffentlichen.
Nur keine Scheu. Einfach das Firmata-repository (https://github.com/firmata/arduino) auf Github clonen und einen neuen Branch dafür anlegen (auch wenn der code noch nicht fertig ist). Da kann Dir keiner was kaputtmachen und im besten Fall bekommst du wertvolles Feedback.

Gruß

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 Mai 2014, 00:24:49
Das Senden und die zugehörige Konfiguration sind jetzt soweit fertig. Ich habe deshalb auf GitHub Pull-Requests für firmata/protocol (Proposal), firmata/arduino (RCOutputFirmata), ntruchsess/fhem-mirror (20_FRM_RCOUT) und ntruchsess/perl-firmata erstellt. Ist alles immer noch sehr fremd für mich, bin für Kommentare offen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 05 Mai 2014, 10:28:16
Hallo Christian,

klappt ja prima mit den pull-requests (ich würde nur einen weniger nichtssagenden nick als 'git-developer' auf github benutzen).
Als erstes müssen wir den pull-request gegen Firamta-configurable_dev (https://github.com/firmata/arduino/pull/131) mit Jeff Hoeffs abgestimmt bekommen, ich habe ein paar Kommentare rein geschrieben. Die anderen Pull-requests machen wir dann im Nachgang, die sind ja abhängig davon, was bzw. wie da in die Configurablefirmata aufgenommen wird.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 08 Mai 2014, 11:39:08
Hallo Christian,

Ich habe gesehen, Du würdest das RCSwitch-feature (wg. der Problematik mit der Abhängigkeit zur RCSwitch-library (https://github.com/firmata/arduino/issues/132)) lieber als Example zur ConfigurableFirmata beisteuern. Das ist grundsätzlich mal in Ordnung. Das bedeutet aber auch, dass ich die code-Änderungen an der perl-firmata nicht übernehmen kann (weil nicht 'offizielles' Firmata-protokoll), das müsste dann ins FRM_RC_OUT-modul und einer kleinen Erweiterung des FRM-moduls um einen Sysex-listener gemacht werden. Der Pin-mode und das primäre Sysex-command sollten dann konfigurierbar (natürlich mit zum RCSwitch-example passenden Defaultwerten) gehalten werden.

Mit anderen vorrausichtlich auch nicht so weit benutzten FirmataFeatures wie DHT11-Unterstützung könnte man dann im Prinzip genauso verfahren.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 08 Mai 2014, 17:05:51
Hmmm... so hatte ich mir das nicht vorgestellt... Und wenn wir RCSwitch dazulegen, könnte es mit in den Standard? Das wäre mir dann eigentlich lieber, nachdem ich das schon so vorbereitet habe. Was ist denn Dein Favorit?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 08 Mai 2014, 17:21:16
mein Favorit wäre eigentlich ein Konzept für beliebige Firmata-erweiterungen außerhalb des Standards zu haben. An sich nicht schwer, aber das sollte (auf FRM-Seite) sauber durchdacht sein um keine neuen Hürden zu generieren.

RCSwitch-unterstützung würde ich schon in den Standard aufnehmen (allerdings ohne die RCSwitch-library. Die würde ich nur inkludieren, wenn man sie tatsächlich verändert hätte). In das RCSwitch-feature muss halt ein Hinweis rein, wo man die Library herbekommt (das RCSwitch-feature braucht eh noch ein bischen Dokumentation im Sourcecode, sonst weiß niemand, wozu das eigentlich gut ist.... Dann eine Headerdatei zur ConfigurableFirmata, über die man das Compilieren der Features, die externe Abhängigkeiten haben, explizit per '#define ENABLE_FEATURE_XXX' oder so anschaltet an- und ausschalten kann. In den betreffenden Features wird die gleiche Haederdatei als erstes mit eingebunden gefolgt von einem '#ifdef ENABLE_FEATURE_XXX', das den code des Features quasi abschaltet, wenn man das Feature nicht enabled hat. Das wäre aus meiner Sicht der einfachste Weg.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 09 Mai 2014, 07:44:08
Die Idee, Erweiterungen auch ohne Anpassungen am Standard vornehmen zu können, gefällt mir. Ich fühlte mich anfangs nicht so wohl dabei, in Constants, Protocol und Platform Anpassungen machen zu müssen. So eine Art Plugin-Konzept wäre schön. Dann müsste man Pin-Mode, Command usw.aber irgendwie weiter oben (im 20_FRM-Modul) angeben können. Das meintest Du hoffentlich.

Kurzer Zwischenstand zum Thema Empfang: das habe ich lokal implementiert, sowohl Arduino- als auch FHEM-seitig. Erste Tests funktionieren prima. Ich habe für den Test ein Modul geschrieben, das den Tristate-Code und alle Empfangsparameter als Readings enthält.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 09 Mai 2014, 07:58:58
Zitat von: Christian. am 09 Mai 2014, 07:44:08
Dann müsste man Pin-Mode, Command usw.aber irgendwie weiter oben (im 20_FRM-Modul) angeben können. Das meintest Du hoffentlich.

ja genau, weiter oben eben. Die nötige Funktionalität ist in der Perl-firmata ja zugänglich. Idealerweise im jeweiligen FRM-Client-modul.
Zum Empfangen muss halt ein Sysex-listener in 10_FRM rein, der die empfangenen Sysex-messages an die jeweiligen 20_FRM_Client-module dispatched. Oder man erweitert das Sysex-listener-konzept der Perl-firmata, dass man je einen Listener pro Sysex-command registrieren kann, dann könnten die 20_FRM_Client-module direkt empfangen (gefällt mir eigentlich besser, schau ich mir heute nachmittag mal näher an, sollte nicht schwer sein, dass in die Perl-firmata aufzunehmen).

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 10 Mai 2014, 21:48:27
Ich habe den Empfang jetzt fertig. Auch bei den Sende-Komponenten habe ich noch ein bisschen weitergemacht, es werden jetzt alle 3 Varianten von RCSwitch unterstützt (Code als String, long und TriState-String). Alle Änderungen habe ich jetzt auch bei GitHub hochgeladen.

Norbert, wenn Du ein Konzept für die Erweiterung von perl-firmata hast, passe ich meinen Code gerne nochmal an. Ansonsten warte ich jetzt auf Reaktionen vom Firmata-Team.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 16 Mai 2014, 07:04:02
Aus meiner Sicht ist das RCSwitch-Feature jetzt sowohl auf Arduino- als auch auch FHEM-Seite auf einem stabilen Stand. Man kann Daten senden, empfangen und RCSwitch konfigurieren. Der Code ist dokumentiert. Wer es ausprobieren möchte, ist herzlich dazu eingeladen. Der Code befindet sich in den Projekten auf GitHub (https://github.com/git-developer/), jeweils im Branch rcswitch. Der Einfachheit halber habe ich den aktuellen Stand auch als Archiv angehängt.

Wie geht es jetzt weiter?

Ich freue mich über Feedback.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 Mai 2014, 11:09:33
Hallo Christian,

ich habe mal einen schnellen Versuch gemacht, einen Sketch zusammenzubauen. Beim komplilieren bekomme ich folgenden Fehler:
Zitat
ConfigurableFirmata:270: error: 'stream' was not declared in this scope

Habe ich etwas beim Einfügen Deiner Programmteile in die Arduino IDE falschgemacht?

UPDATE: habe den Fehler gefunden: hatte gleichzeitig "define remote_ip" + "#define remote_host "server.local" aktiviert


Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 Mai 2014, 11:44:09
Hallo Michael,

kannst Du kurz zeigen, welche Module für die Ansteuerung der Funksteckdosen unbedingt not wendig sind. Ich liste mal alle Module auf und Du könntest Deine Version darunter schreiben. Ich denke, daß wird vielen anderen helfen, ihr Sketche abzuspecken.


//ETHERNET Begin
// für WIZ5100
#include <SPI.h>
#include <Ethernet.h>
oder (für ENC28J60)
//#include <Dhcp.h>
//#include <Dns.h>
//#include <ethernet_comp.h>
//#include <UIPClient.h>
//#include <UIPEthernet.h>
//#include <UIPServer.h>
//#include <UIPUdp.h>
//ETHERNET End

#include <Firmata.h>
#include <utility/DigitalInputFirmata.h>
DigitalInputFirmata digitalInput;

#include <utility/DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;

#include <utility/AnalogInputFirmata.h>
AnalogInputFirmata analogInput;

#include <utility/AnalogOutputFirmata.h>
AnalogOutputFirmata analogOutput;

#include <Servo.h> //wouldn't load from ServoFirmata.h in Arduino1.0.3
#include <utility/ServoFirmata.h>
ServoFirmata servo;

#include <Wire.h> //wouldn't load from I2CFirmata.h in Arduino1.0.3
#include <utility/I2CFirmata.h>
I2CFirmata i2c;

#include <utility/OneWireFirmata.h>
OneWireFirmata oneWire;

#include <utility/StepperFirmata.h>
StepperFirmata stepper;

#include <RCSwitch.h> //wouldn't load from I2CFirmata.h in Arduino1.0.3
#include <utility/RCOutputFirmata.h>
RCOutputFirmata rcOutputFirmata;

#include <utility/FirmataExt.h>
FirmataExt firmataExt;

#include <utility/FirmataScheduler.h>
FirmataScheduler scheduler;

#include <utility/EncoderFirmata.h>
EncoderFirmata encoder;



Danke
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 Mai 2014, 12:40:05
Hallo Michael, hallo Norbert,

bei der Verwendung eines ENC28J60 Ethernet Shields bekommt man die Software wohl kaum in einen Arduino geladen. Bei meinem Test (nur kompiliert, nicht mit HW getestet) habe ich folgende Module geladen:


#include <utility/DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;

#include <Servo.h> //wouldn't load from ServoFirmata.h in Arduino1.0.3
#include <utility/ServoFirmata.h>
ServoFirmata servo;

#include <Wire.h> //wouldn't load from I2CFirmata.h in Arduino1.0.3

#include <RCSwitch.h> //wouldn't load from I2CFirmata.h in Arduino1.0.3
#include <utility/RCOutputFirmata.h>
RCOutputFirmata rcOutputFirmata;



ENC28J60 Ethernet shield (nur #include <UIPEthernet.h>):
"Binäre Sketchgröße: 32.078 Bytes (von einem Maximum von 32.256 Bytes)"

WIZ5100 Ethernet shield:
"Binäre Sketchgröße: 22.666 Bytes (von einem Maximum von 32.256 Bytes)"

(Das ist schon ein grasser Unterschied!)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 16 Mai 2014, 14:49:54
32K sind verdammt knapp - siehe meine Probleme beim NET-IO mit dem Atmega32 -> http://forum.fhem.de/index.php/topic,16681.msg151072.html
Mit den dortigen Tipps von Norbert passte der Sketch dann , allerdings war das Ding  sehr unzuverlässig im Dauerbetrieb
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 16 Mai 2014, 14:56:26
@Christian,

wie sieht denn die Definition der Geräte in FHEM aus? Immer noch so:

Zitat
define ARD433 FRM 3030 global

define STD_A1 FRM_RC 7
attr STD_A1 DIP 1110010000
attr STD_A1 IODev ARD433

define STD_A2 FRM_RC 7
attr STD_A2 DIP 1111010000
attr STD_A2 IODev ARD433
attr STD_A2 SubDev 1

Ich würde dann heute Abend testen.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 16 Mai 2014, 17:22:56
Bei mir sieht die Konfiguration ungefähr so aus (ohne Gewähr, bin grad unterwegs):
define firmata FRM COM9@57600
define sender FRM_RCOUT 7
attr sender IODev firmata


Senden geht per set, z.B.
set sender tristateCode 00FFF00FFF0F
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 16 Mai 2014, 22:21:12
Ich habe 20_FRM_RCOUT so erweitert, dass es als IODev für 10_IT verwendet werden kann.

Beispiel-Konfiguration:
define firmata FRM COM9@57600
define rc_sender FRM_RCOUT 4
attr rc_sender IODev firmata
define schalter IT 00F0FF0FFF 0F 00
attr schalter IODev rc_sender


on, off und on-till konnte ich erfolgreich testen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 17 Mai 2014, 22:44:47
Zitat von: Christian. am 16 Mai 2014, 22:21:12
Ich habe 20_FRM_RCOUT so erweitert, dass es als IODev für 10_IT verwendet werden kann.

Cool. Ich hoffe, ich komme in der nächsten Woche mal zu testen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 18 Mai 2014, 15:20:20
Hallo Christian,
das Senden funktioniert schon prima  :D
gerade getestet mit der 10_IT.
Wie sieht das mit dem Empfangen aus ?
Habe das in der Configurablen Firmata hinzugefügt.
Aber leider kommt in der FRM_RCIN nichts an.
Geht das noch nicht ?.
Ansonsten bis jetzt prima Arbeit.

Gruß Bernd 
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 18 Mai 2014, 16:12:05
Hallo Christian,

ich bekomme folgende Fehlermeldung bei "RC_SENDER":

Zitat
STATE: error initializing: unsupported mode '10' for pin '7'



define ARD433 FRM 3030 global
attr ARD433 room System

### TEST RC
define RC_SENDER FRM_RCOUT 7
attr RC_SENDER IODev ARD433
attr RC_SENDER room Test

define SCHALTERA2 IT FFFF0F0000 F0 00
### 1111010000
attr SCHALTERA2 IODev RC_SENDER
attr SCHALTERA2 room Test


Woran kann das liegen?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 18 Mai 2014, 20:50:55
@Bastelbernd
Der ConfigurableFirmata.ino aus meinem letzten Archiv fehlen die Zeilen zur Aktivierung von RCInputFirmata. Neben der üblichen Einbindung muss für das Feature noch das Reporting aktiviert werden. Ein Beispiel hängt an; dort sind für RCInputFirmata die Zeilen 107ff, 232ff und 318ff relevant. Damit sollten eingehende RF-Signale FHEM-seitig im Modul 20_FRM_RCIN angezeigt werden. Eine Verknüpfung zu 10_IT gibt es derzeit nicht.

@blueberry
Die Fehlermeldung bedeutet, dass auf dem Arduino das RCOutputFirmata-Feature nicht zur Verfügung steht. Möglicherweise hast Du das Feature in der ConfigurableFirmata.ino auskommentiert? Dann hilft Dir schon die angehängte Version, probier es damit mal. Ansonsten würde ich vermuten, dass Du entweder auf FHEM-Seite oder auf Arduino-Seite nicht alle angepassten Dateien aus dem Archiv im Einsatz hast. Wzut war z.B. drüber gestolpert, dass das Feature noch nicht in Firmata-Version 2.5 zur Verfügung steht (hier (http://forum.fhem.de/index.php/topic,22320.msg163074.html#msg163074) beschrieben).
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 18 Mai 2014, 23:19:39
Es scheint jetzt prinzipiell zu funktionnieren (keine Fehlermeldung mehr), aber ich bekomme mit dem Code für meine Pollin-Steckdosen nicht klar. Kann man noch die DIP-Schalterstellungen direkt als DIP-Code eingeben?

Mein Beispiel: 1111010000 (1=ON)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 18 Mai 2014, 23:28:21
... was bedeutet übrigens Tristat- Long- und Charactercode?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 19 Mai 2014, 06:08:39
Bei 1=On und 0=Off wird der DIP-Code 1111010000 wird zum Tristate-Code 0000F0FFFF. Die Konfiguration wäre dann
define SCHALTERA2 IT 0000F0FFFF FF F0

Zitat von: blueberry63 am 18 Mai 2014, 23:28:21... was bedeutet übrigens Tristat- Long- und Charactercode?
Das wichtigste habe ich in der Modul-Dokumentation beschrieben. RCSwitch hat 3 Funktionen zum Senden, die jeweils einen anderen Parameter haben:
Im RCSwitch-Code habe ich gesehen, dass die Funktionen zueinander inkompatibel sind, d.h. bei jeder der 3 Funktionen wird der Code anders durch die Luft geschickt. Ich selber benötige nur die Tristate-Variante. 10_IT funktioniert auch nur mit Tristate.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 19 Mai 2014, 12:55:00
Ich benutze bisher keine 433-Mhz basierte Hardware. Wird aber Zeit, dass ich mit der Aufnahme des Features in den Firmata-standard weiterkomme, daher mal eine kurze Frage in die Runde: was genau brauche ich als Minimalausstattung zum testen? (Link auf die billigste eBay-variante reicht, es muss nur repräsentativ sein. Ich will damit nur testen und nichts reales schalten...)

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 19 Mai 2014, 13:04:34
Sender für 3,49€
http://www.watterott.com/de/RF-Link-Sender-434MHz

der Empfänger für 4,37 € ist nicht so der Hit , geht aber auf dem Schreibtisch
http://www.watterott.com/de/RF-Link-2400bps-Empfaenger-434MHz 

bei ebay nach 434MhZ Empfänger suchen mit dem Zusatz "Superhet" - die sollen laut Aussage im FHEMduino Thread sehr gut sein.

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 19 Mai 2014, 13:50:02
Hallo Christian,

Leider komme ich mit dem Empfangen nicht weiter. Auch mit denen letzten Sketch geht es nicht. Es kommen keine Daten an.
Senden geht prima.
Hast du noch einen Tipp für mich, wie man das besser eingrenzen kann woran das liegt?

Gruß Bernd
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 19 Mai 2014, 14:05:24
Zitat von: Wzut am 19 Mai 2014, 13:04:34
Sender für 3,49€
http://www.watterott.com/de/RF-Link-Sender-434MHz

der Empfänger für 4,37 € ist nicht so der Hit , geht aber auf dem Schreibtisch
http://www.watterott.com/de/RF-Link-2400bps-Empfaenger-434MHz 

bei ebay nach 434MhZ Empfänger suchen mit dem Zusatz "Superhet" - die sollen laut Aussage im FHEMduino Thread sehr gut sein.

danke, aber wenn ich das richtig verstehe habe kann ich meinen Arduino damit Sende- und Empfangstauglich machen, habe aber noch keinen Sensor oder Aktor als Gegenstelle?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 19 Mai 2014, 14:11:28
richtig, wenn es lieber "billig" magst -> 3er Set für 9.95 http://forum.fhem.de/index.php/topic,18235.0.html
oder was aus dem Baumarkt (IT, ELRO, etc )  Bsp bei Obi ELRO 3er Set ca. 15 Euro
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 19 Mai 2014, 17:04:35
@Bastelbernd
Ich glaube, ich habe ein entscheidendes Detail bisher unterschlagen: der Empfang basiert auf Interrupts, d.h. der Empfangspin muss Interrupt-fähig sein. Bei den meisten Boards sind das Pin 2 und 3. Wenn der Pin nicht interrupt-fähig ist, sollte es aber eigentlich einen Fehler beim Initialisieren von 20_FRM_RCIN geben. Wenn das Dein Problem auch nicht löst, kannst Du das Empfangsmodul mal mit RCSwitch direkt testen. RCSwitch enthält Beispiel-Sketches, die alles Empfangene auf der Konsole ausgeben.

@Norbert
Sender & Empfänger bei eBay (http://www.ebay.de/itm/111348577239). Die günstigsten Steckdosen gibt's vermutlich bei Pollin.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 19 Mai 2014, 17:21:40
Hallo Christian,
das mit den Interrupts war mir schon klar. Habe das auch schon mit RCSwitch getestet, da geht der Empfang. Pin ist 2.
Wenn man den in der FRM_RCIN ändert gibt das auch einen Fehler.Habe auch Verbose 5 aktiviert.
Sieht so aus als ob der aber auf dem Arduino nicht aktiviert wird.
Ich weiß auch nicht weiter.

Gruß Bernd
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 19 Mai 2014, 20:44:08
 >:( Ich komme leider nicht weiter. Folgende Fehlermeldung sehe ich im LOG:

Zitat
error initializing 'RC_SENDER': Undefined subroutine &main::FRM_RCIN_apply_attribute called

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 19 Mai 2014, 21:01:11
@Christian: kann es sein, daß in Deiner letzten Ino ein Fehler ist:


#ifdef RCOutputFirmata_h
  firmataExt.addFeature(rcOutput);
#endif
#ifdef RCOutputFirmata_h
  firmataExt.addFeature(rcInput);
#endif


?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 19 Mai 2014, 21:07:17
Ja, habe ich gerade eben auch bemerkt. Und in Zeile 126 fehlt auch noch die Ergänzung von RCInputFirmata_h. Und noch einer: in 20_FRM_RCOUT, Zeile 69 steht FRM_RCIN_apply_attribute statt FRM_RCOUT_apply_attribute (der dürfte aber keine Auswirkungen bis auf Deine Log-Meldung haben). Ich zieh das jetzt grade.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 19 Mai 2014, 22:02:02
Irgendwie ist es wie verhext... bei mir geht es auch nicht mehr: RCSwitch funktioniert, aber in RCInputFirmata liefert RCSwitch->available() immer false. Ich muss mir das nochmal in Ruhe ansehen, das kann ich aber erst in den nächsten Tagen tun. Sorry.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 19 Mai 2014, 22:55:24
Zitat von: Christian. am 19 Mai 2014, 17:04:35
@Norbert
Sender & Empfänger bei eBay (http://www.ebay.de/itm/111348577239). Die günstigsten Steckdosen gibt's vermutlich bei Pollin.

danke, gleich mal geordert. Sonst rede ich bei dem Thema hier wie der Blinde von der Farbe ;-)

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 20 Mai 2014, 07:55:09
@Bernd
Versuch bitte mal die angehängte ConfigurableFirmata.ino. Bei mir funktioniert der Empfang jetzt wieder, sofern DigitalOutputFirmata nicht eingebunden wird. Was dahinter steckt, ist mir unklar, aber immerhin lässt sich das Problem reproduzieren.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 20 Mai 2014, 15:13:30
Hallo Christian,
habe in der .ino das mal so geändert
  // pins with analog capability default to analog input
  // otherwise, pins default to digital output
  for (byte i=3; i < TOTAL_PINS; i++) {
    if (IS_PIN_ANALOG(i)) {
#ifdef AnalogInputFirmata_h
      // turns off pullup, configures everything

dann gehts auch mit der DigitalOutputFirmata. Ich kann damit erst mal leben.
Prima Arbeit  :D

Gruß Bernd
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 20 Mai 2014, 20:19:58
Ich kann mit der letzten INO nun auch Erfolg vermelden. GENIAL!  :D

Danke
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 21 Mai 2014, 14:26:40
Was mir heute noch im LOG aufgefallen ist: nach einem "shutdwon restart" kommen folgende Meldungen für  alle neuen IT Devices:

Beispiel:

No I/O device found for STD_D1


Die Steckdose kann einwandfrei gesteuert werden

...und wurde folgendermassen angelegt:

define ARD433 FRM 3030 global

define SENDER433 FRM_RCOUT 7
attr SENDER433 IODev ARD433
attr SENDER433 defaultBitCount 24

define STD_D1 IT 000FFFFF0F 0F F0
attr STD_D1 IODev SENDER433


Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 22 Mai 2014, 07:10:19
Zitat von: Christian. am 20 Mai 2014, 07:55:09
Was dahinter steckt, ist mir unklar, aber immerhin lässt sich das Problem reproduzieren.

Ich habe das Problem jetzt gefunden und gelöst. RCInputFirmata setzt den Pinmode des Arduino nicht auf INPUT. Deshalb funktioniert der Empfang nur, falls kein anderes Feature den Pinmode setzt. Der Befehl Firmata.setPinMode(i, OUTPUT) in ConfigurableFirmata.systemResetCallback() führt aber dazu, dass beim Reset des Arduino für alle DigitalOutput-fähigen Pins der Pinmode auf OUTPUT gesetzt wird. Ich werde das anpassen.

Für Ungeduldige: Zeile 135 von RCInputFirmata.cpp muss von
RCSwitch *receiver = receivers[pin];
geändert werden nach

pinMode(PIN_TO_DIGITAL(pin), INPUT);
RCSwitch *receiver = receivers[pin];
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 22 Mai 2014, 21:40:57
Das angehängte Archiv enthält alle zuvor beschriebenen Fehlerkorrekturen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 06:31:29
Zitat von: blueberry63 am 21 Mai 2014, 14:26:40
Was mir heute noch im LOG aufgefallen ist: nach einem "shutdwon restart" kommen folgende Meldungen für  alle neuen IT Devices:

Beispiel:

No I/O device found for STD_D1

Danke für den Hinweis. Offenbar kann ein Modul, das als IODev verwendet wird, seine potentiellen Verwender (sog. "Clients") auflisten, damit FHEM die beiden Module einander zuorden kann. Ich habe deshalb das Modul IT als Client für FRM_RCOUT deklariert. Damit verschwindet die Meldung. Auf die Funktionalität hat die Meldung offenbar keine Auswirkung.

Für Ungeduldige: in FRM_RCOUT_Initialize muss folgende Zeile ergänzt werden:
$hash->{Clients} = ":IT:";
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 09:11:33
ZitatNo I/O device found for STD_D1

Diese Fehlermeldungen sind jetzt weg.

Nachdem nun das SENDEN über IT einwandfrei funktioniert (nochmal ein dickes Lob), möchte ich fragen, welche Möglichkeiten das EMPFANGEN von Signalen bietet bzw. wie wird es umgesetzt. Hier meine Fragen/Ideen:


Gruß
Blueberry63

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 23 Mai 2014, 09:27:39
Zitat
Die Funksteckdosen liefern doch keine Rückmeldung über ihren Zustand, oder?
Nein, ist ne Einbahnstrasse
ZitatKönnte man theoretisch die Daten von Funkwetterstationen auslesen?
ja, wird aber auf der Arduino Seite noch ne lib fällig bzw. man müsste die rcswitch erweitern.
ZitatKönnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen
ja und nein :) ja weil die rcswitch lib das heute schon kann. ( ich nutze das z.B. in der Verbindung IT mit CUL433). Aber : Ich habe z.Z drei verschiedene Fernbedienungen und Steckdosen im Einsatz -> echte IT , Elro und noch ein Noname Baumarktprodukt. Schalten gehen alle Steckdosen mit dem IT Protokoll, aber beim Empfang gibt es wohl doch Umterschiede, am Besten klappt das bis jetzt mit echten Intertechno Produkten.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 12:44:46
@Wzut:
ZitatKönnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen

ja und nein :) ja weil die rcswitch lib das heute schon kann. ( ich nutze das z.B. in der Verbindung IT mit CUL433). Aber : Ich habe z.Z drei verschiedene Fernbedienungen und Steckdosen im Einsatz -> echte IT , Elro und noch ein Noname Baumarktprodukt. Schalten gehen alle Steckdosen mit dem IT Protokoll, aber beim Empfang gibt es wohl doch Umterschiede, am Besten klappt das bis jetzt mit echten Intertechno Produkten.

Heißt das, die Fernbedienungen senden alle unterschiedliche Signale/Protokolle? Wie wird denn eine Anbindung an FHEM dann umgesetzt? Passiert die Auswertung der Signale auf der FHEM-Seite?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 23 Mai 2014, 14:03:48
Zitat von: blueberry63 am 23 Mai 2014, 12:44:46
Heißt das, die Fernbedienungen senden alle unterschiedliche Signale/Protokolle?
meine drei sind halt nicht 100% identisch
Zitat
Wie wird denn eine Anbindung an FHEM dann umgesetzt? Passiert die Auswertung der Signale auf der FHEM-Seite?
das dekodieren der Funksignale muss auf der Arduino Seite passieren , die Anbindung an FHEM kann dann wieder das 10_IT.pm machen, dazu gibt es eine eigene Version vom 22 August 2013 (siehe http://forum.fhem.de/index.php/topic,14348.msg91401.html#msg91401 )
da aber der ursprüngliche Autor von 10_IT wohl nicht mehr aktiv ist hat jetzt justme1968 die Wartung übernommen ( siehe http://forum.fhem.de/index.php/topic,22612.msg169915.html#msg169915 )
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 14:54:40
OK, wenn ich es also richtig verstehe, dann kann EIN Arduino+Receiver nur für EINEN Zweck eingesetzt werden? Es wird nicht möglich sein, bspw. als FB-Empfänger für FHEM und als Empfänger für eine Wetterstation zu fungieren.

Wie könnten denn die weiteren Planungen für die Receiver-Seite aussehen?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 15:28:43
Zitat von: blueberry63 am 23 Mai 2014, 09:11:33
Könnte man theoretisch die Daten von Funkwetterstationen auslesen?
Das hängt vom Protokoll der Wetterstation ab. Wenn der Empfänger etwas hereinbekommt, dann könnte man diese Signale auswerten und geeignet darstellen. Das könnte man z.B. in einem eigenen Modul machen, das die Events zu den Readings von FRM_RCIN auswertet. Sollte der Empfänger nichts herein bekommen, dann muss man zunächst wie von Wzut vorgeschlagen auf der Arduino-Seite eine Erweiterung vornehmen.

Zitat von: blueberry63 am 23 Mai 2014, 09:11:33
Könnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen (dazu hab eich im Forum schon mal etwas gelesen)?
Ja. Das Prinzip wäre dasselbe wie bei der Wetterstation: ein Modul überwacht die Readings von FRM_RCIN und reagiert entsprechend.

Zitat von: blueberry63 am 23 Mai 2014, 14:54:40
Es wird nicht möglich sein, bspw. als FB-Empfänger für FHEM und als Empfänger für eine Wetterstation zu fungieren.
Das hängt nur davon ab, ob die Wetterstation eins der in RCSwitch implementierten Protokolle verwendet. RCInputFirmata könnte theoretisch auch unterschiedliche Empfänger gleichzeitig betreiben; RCSwitch ist aber (Stand heute) auf einen einzigen Empfangspin beschränkt.

Zitat von: blueberry63 am 23 Mai 2014, 14:54:40
Wie könnten denn die weiteren Planungen für die Receiver-Seite aussehen?
Was mich angeht: ich habe den Code entwickelt und veröffentlicht und werde gern mit Norbert zusammen daran arbeiten, dass er in irgend einer Form in die offiziellen Distributionen von FHEM und Firmata einfliesst. Danach plane ich aber keine Weiterentwicklung.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 15:39:11
...kann ich denn heute schon mit den zuletzt geposteten Programmteilen und der INO für die Ansteuerung der Funksteckdosen (was bei mir ja super läuft) auch schon Daten in FHEM empfangen (das Receiver-Modul habe ich mal an PIN2 angeschlossen)? Wenn ja, was muß ich tun? Die Auswertung der Readings in FHEM bekomme ich ja vielleicht selbst auf die Reihe.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 15:50:54
Ja klar. Das müsste ungefähr so gehen:

define firmata FRM COM9@57600
define receiver FRM_RCIN 2
attr receiver IODev firmata

Die Readings findest Du dann wie gewohnt auf der Seite des Gerätes, im Beispiel receiver.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 16:00:01
Den Receiver habe ich "spaßeshalber" schon so in FHEM definiert. Aber da außer "State = initialized" nicht zu sehen ist, dachte ich, es fehlt noch etwas. Ich bin davon ausgegangen, daß irgendetwas in meiner Umgebung auf 433 Mhz funkt. Reagiert denn der Arduino auf alles, was da so "rumschwirrt"?

(sorry, wenn ich mich zu dumm anstelle)

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 16:04:22
Also bei mir reagiert er nur auf die Fernbedienung der Funksteckdose.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 23 Mai 2014, 16:30:00
soetwas funktioniert auch prima
(http://thumbs.ebaystatic.com/d/l180/pict/200973333723_1.jpg)
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 18:18:10
Sollten beim RCIn Device noch andere Readings auftauchen, als "State"? Bei meiner Pollin-FB bekomme ich jedenfalls keine Daten angezeigt
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 18:29:52
Anbei ein Screenshot von mir. Die Definition dazu:

define firmata FRM COM9@57600
attr firmata room Arduino

define receiver FRM_RCIN 3
attr receiver IODev firmata
attr receiver room Arduino


Die ConfigurableFirmata.ino stammt aus dem letzten veröffentlichten Archiv, RCInputFirmata ist natürlich nicht auskommentiert.

Ich habe eine einfache Baumarkt-Steckdose, Modell SD401 der OCSM GmbH.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 18:36:12
Zitat von: blueberry63 am 23 Mai 2014, 18:18:10
Bei meiner Pollin-FB bekomme ich jedenfalls keine Daten angezeigt
Du könntest mal testen, ob Du mit einem RCSwitch-Beispiel-Sketch etwas empfängst. Nur dann kann es auch in FHEM ankommen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Sid-L am 23 Mai 2014, 21:14:16
Guten Abend.

Vielen Dank für eure Arbeit, das ist genau die richtige Anwendung für mich. Leider bin ich, was Arduino und Firmata angeht, noch recht unbewandert.

Ich habe die Version "RCSwitchFirmata-2014-05-22.zip" mit einem Arduino an einem Raspi via USB getestet. Leider bekomme ich schon bei der Definition define FIRMATA FRM /dev/ttyACM0@57600 den Fehler Error:Modul 10_FRM deactivated:
Too many arguments for main::AssignIoPort at ./FHEM/10_FRM.pm line 566, near "))"


Mit der originalen 10_FRM.pm konnte mit der gleichen Definition zumindest eine Verbindung zu Firmata hergestellt werden: 2014.05.23 20:56:00 3: Opening FIRMATA device /dev/ttyACM0
2014.05.23 20:56:00 3: Setting FIRMATA baudrate to 57600
2014.05.23 20:56:00 3: FIRMATA device opened
2014.05.23 20:56:03 3: querying Firmata Firmware Version
2014.05.23 20:56:04 3: querying Firmata Firmware Version
2014.05.23 20:56:04 3: Firmata Firmware Version: ConfigurableFirmataRC.ino V_2_07
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 21:51:44
Das liest sich, als würde die Funktion AssignIoPort() in der fhem.pl bei Dir weniger Argumente verlangen als bei mir. Hast Du möglicherweise eine ältere Version von FHEM? Ich habe gegen die aktuelle Entwicklungsversion entwickelt, auf die Du mit update development aktualisieren kannst.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 23 Mai 2014, 22:07:03
ZitatDu könntest mal testen, ob Du mit einem RCSwitch-Beispiel-Sketch etwas empfängst. Nur dann kann es auch in FHEM ankommen.

Habe ich gemacht: ich habe das "ReceiveDemo_Simple Beispiel genommen. Beim Arduino habe ich Pin D2 genommen, am Receiver-Modul habe einen der beiden DATA-Ausgänge verbunden (3.3V und GND ist ja klar). Ist das richtig?

Ergebnis: der Serial-Monitor der Arduino-IDE bleibt leer!?

Hat jemand eine Idee?

Gruß
Blueberry63

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 Mai 2014, 22:18:31
Das klingt alles korrekt. Du könntest evtl. mal den anderen DATA-Pin probieren. Ansonsten bietet RCSwitch noch einen Parameter receiveTolerance, den Du verändern kannst.

Mein Empfänger arbeitet übrigens mit 5V.

Wenn Du keinerlei Signale empfängst, dann ist vermutlich entweder das Protokoll Deiner Steckdosen inkompatibel zu RCSwitch oder der Empfänger defekt.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 24 Mai 2014, 10:11:02
Zitat von: blueberry63 am 23 Mai 2014, 22:07:03
Ergebnis: der Serial-Monitor der Arduino-IDE bleibt leer!?
Lade dir mal das angehängte Beispiel auf den Arduino , das benutze ich immer um zu sehen was da überhaupt kommt
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: T.ihmann am 24 Mai 2014, 10:17:53
Hallo,

ich wollte mal in diesem Thread nachfragen, ob jemand Probleme mit periodischen Disconnects des Arduinos mit ENC28J60 Ethernet hat (OneWire, DigitalIn/Out). Bei mir tritt dieser Fall ca. alle 10h auf und fhem.pl wird beendet (http://forum.fhem.de/index.php/topic,10744.msg171002.html#msg171002). Ich versuche das Problem gerade etwas einzugrenzen und überlege, ob es vielleicht am Arduino Sketch liegt. Insofern wäre es hilfreich zu wissen, ob Eure Ethernet Anbindung mit ENC28J60 rund läuft. Danke.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 24 Mai 2014, 15:06:37
Nun funktioniert bei mir auch das Receiver-Modul. Eure Tips und Wzut's INO haben mir geholfen, aber letztendlich war es eine lockere Steckverbindung  :-[

Meine 1. Tests ergeben, daß das mehrmalige Drücken derselben Taste an der Pollin-FB unterschiedliche Werte für "Tristatecode" und "Value" in FHEM bringen. Hat jemand eine Erklärung dafür?  So würde natürlich eine Auswertung für ein Notify extrem schwierig bzw. unmöglich.

@Bernd: welche FB zeigst Du uns im Bild?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 24 Mai 2014, 17:11:44
@blueberry63,
das ist keine FB sondern ein Bewegungsmelder  ;)
http://www.ebay.de/itm/200973333723?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 (http://www.ebay.de/itm/200973333723?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649)

Meine Fernbedienung oder der Bewegungsmelder senden immer dieselben Werte, lassen sich mit einem dummy und Notify prima auswerten.

Gruß Bernd
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 24 Mai 2014, 17:23:25
Zitat von: blueberry63 am 24 Mai 2014, 15:06:37
Meine 1. Tests ergeben, daß das mehrmalige Drücken derselben Taste an der Pollin-FB unterschiedliche Werte für "Tristatecode" und "Value" in FHEM bringen. Hat jemand eine Erklärung dafür?

Schau Dir mal genau an, inwieweit sich die Werte unterscheiden. Bei mir sind bei den letzten paar Signalen die letzten 2-3 Stellen falsch. Da vorher aber oft genug das richtige Signal empfangen wurde, sollte das kein Problem darstellen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 24 Mai 2014, 19:12:29
Ich habe inzwischen rausgefunden, daß die Werte für dieselbe Taste der FB nur verschieden sind, wenn man schnell hintereinander drückt. Läßt man einige Sekunden Pause zwischen dem Drücken der Taste, sind die Werte zuverlässig immer gleich (?!).

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Sid-L am 24 Mai 2014, 21:03:43
Zitat von: Christian. am 23 Mai 2014, 21:51:44
Das liest sich, als würde die Funktion AssignIoPort() in der fhem.pl bei Dir weniger Argumente verlangen als bei mir. Hast Du möglicherweise eine ältere Version von FHEM? Ich habe gegen die aktuelle Entwicklungsversion entwickelt, auf die Du mit update development aktualisieren kannst.

Das wars, funktioniert, vielen Dank!
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 27 Mai 2014, 12:52:41
Hallo,

nachdem der Empfang von Signalen einer Fernbedienung nun auch funtioniert, wollte ich Euch kurz meine Lösung für einen virtuellen Alarm-Schalter vorstellen. Das Besondere ist eigentlich nur, daß ich das mehrfache Triggern verhindere. Ich habe nämlich festgestellt, daß die FB die Signale mehrfach sendet, obwohl die Taste nur einmal gedrückt worden ist.

Zusatz-Feature, die ich hier nicht naeher beschreibe: kurzes Klingeln meiner Fritzbox+EMail zur Bestaetigung, daß die Aktion erfolgreich war.


# Der Arduino
define ARD433 FRM 3030 global

# Das Empfangsteil an PIN D2
define EMPF433 FRM_RCIN 2
attr EMPF433 IODev ARD433

# Dummy gegen Mehrfach-Trigger
define d_empf433 dummy

# Dummy Alarm
define Alarm dummy
attr Alarm eventMap 0:AUS 1:EIN
attr Alarm setList 0 1
attr Alarm webCmd 0:1

# Das Notify schaltet den Alarm EIN/AUS
# Filter mit "21", da mein Code auf der FB mit "21" anfaengt

define n_AlarmFB notify EMPF433:.*21.* { \
  if (ReadingsVal("EMPF433","value","0") == 21855) { \
    if (ReadingsVal("d_empf433","state","") ne "on") { \
      fhem ("set d_empf433 on");; \
      fhem ("define a1 at +00:00:10 set d_empf433 off");; \
      fhem ("set Alarm EIN");; \
      {FBCallr(1,620,6,'192.168.xxx.xxx')};; \
      {DebianMail('aaaa@@bbbbb.de','Alarm','Alarm=EIN')};; \
    };; \
  };; \
  if (ReadingsVal("EMPF433","value","0") == 21780) { \
    if (ReadingsVal("d_empf433","state","") ne "on") { \
      fhem ("set d_empf433 on");; \
      fhem ("define a1 at +00:00:10 set d_empf433 off");; \
      fhem ("set Alarm AUS");; \
      {FBCallr(1,620,6,'192.168.xxx.xxx')};; \
      {DebianMail('aaaa@@bbbbb.de','Alarm','Alarm=AUS')};; \
    };; \
  };; \
}
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 03 Juni 2014, 16:42:23
@Christian, Norbert:

Wie geht es denn eigentlich mit dieser Entwicklung weiter? Die Lösung ist für mich perfekt und ich kann mit diesem Stand sehr gut leben. Aber ich habe gesehen, daß ja Änderungen in "10_FRM.pm" nötig waren und da frage ich mich natürlich, wie es zusammenpaßt, wenn dieses Modul ein Update erfährt.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 03 Juni 2014, 17:54:20
Ich würde die Änderungen gern in Firmata und FHEM integrieren und habe wie von Norbert vorgeschlagen entsprechende Pull-Requests auf GitHub erstellt.

Meine Module 20_FRM_RC* benötigen Änderungen an 10_FRM (liegt bei Norbert). 10_FRM benötigt Änderungen an der Perl-Firmata-Implementierung (liegt auch bei Norbert). Die wiederum setzt auf Firmata auf (das machen glaube ich Jeff Hoefs und Norbert). Ich habe alle Änderungen eingereicht und warte auf Feedback. Es ist wohl noch nicht so ganz raus, ob man alles wie von mir vorgeschlagen übernehmen kann.

Du hast Recht, dass weitere Änderungen an einer der beteiligten Komponenten zu Konflikten führen können.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 04 Juni 2014, 09:53:35
Hallo Christian,

wie Du weißt ist das Problem ja, dass Dein Feature von der RCSwitch-library abhängig ist, was ja leider dazu führt, dass die ConfigurableFirmata gar nicht mehr compiliert, wenn der Benutzer die Library nicht installiert hat. (Liegt daran, dass die Arduino-IDE alles compiliert, was in utility zu finden ist, da hilft auch ein auskommentieren im Sketch nichts). Du wolltest deshalb das Feature als Example zur Configurable-firmata beisteuern, was aber auch impliziert, dass ich es nicht in den perl-firmata-core (so wie die perl-firmata aktuell gestrickt ist) aufnehmen würde und man den betreffenden code ins fhem-modul verschieben müsste. Wie weit bist Du damit gekommen?

Alternativ bräuchte man halt ein Konzept, wie man in der Configurable-Firmata mit Abhängigkeiten zu Fremdlibraries umgehen sollte (z.B. conditionales compilieren der Features, gesteuert über ein zu includierendes header-file oder so was...), dann könnte ich den pull-request für perl-firmata und FRM einfach so übernehmen. Ich habe leider aktuell wenig Zeit da selber was auszuarbeiten (reale Baustelle vor dem Haus...), über funktionierende Lösungsvorschläge würde ich mich freuen.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 04 Juni 2014, 11:21:50
@Bernd

Zitatdas ist keine FB sondern ein Bewegungsmelder

Ich habe mir gestern auch so ein Teil bestellt. Könntest Du mir Deine Implementierung schicken/posten?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Bastelbernd am 04 Juni 2014, 15:15:12
Hallo Blueberry63,

habe das erst einmal mit einem dummy  und notify gelöst
define Pir1 dummy
attr Pir1 room IT
define p1 notify rc_empf {if( ReadingsVal("rc_empf","value",0)== 8898060){fhem("setreading Pir1 state on ");;{fhem("define Pir1_aus at +00:01:00 setreading Pir1 state off")}}}
attr p1 room IT


besser währe natürlich ein Modul dafür  :D

Gruß Bernd
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 Juni 2014, 17:17:16
Zitat von: ntruchsess am 04 Juni 2014, 09:53:35
Du wolltest deshalb das Feature als Example zur Configurable-firmata beisteuern, was aber auch impliziert, dass ich es nicht in den perl-firmata-core (so wie die perl-firmata aktuell gestrickt ist) aufnehmen würde und man den betreffenden code ins fhem-modul verschieben müsste. Wie weit bist Du damit gekommen?

Ich habe das so verstanden, dass dafür die Perl-Firmata zunächst so erweitert werden muss, dass keine Feature-spezifischen Funktionen mehr notwendig sind. Ich meine die packet und handle-Funktionen in Protocol.pm. Den Inhalt kann ich in die Module verschieben, aber irgendwie muss ich die Daten doch an die Perl-Firmata übergeben. Es müsste diese Funktionen in allgemeiner Form geben. Und die in Constants.pm definierten Konstanten (z.B. RC_DATA) müssen auch noch irgendwie heruntergegeben werden. Ich habe keine Idee, wie ich das bewerkstelligen soll.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 04 Juni 2014, 22:15:43
Um Sysex-messages zu versenden, habe ich Dir gerade eine methode 'sysex_send' in Platform.pm ingebaut (https://github.com/ntruchsess/fhem-mirror/commit/cb0989ff01159e7e7446734bdf9b7f1991c24ab3).

Empfangen von Sysex-messages geht analog zum DHT-11-example (https://github.com/ntruchsess/perl-firmata/blob/master/examples/example_DHT11.pl).

Da man nur einen sysex-observer registrieren kann, muss der natürlich ins FRM.pm und die empfangenen Messages an das RC_FRM-submodul (und ggf. später an noch kommende 'non-standard'-Firmata-module) dispatchen. Ich denke da z.B. an Ultraschall-distanzmessung oder DHT11.

Die Konstanten können erst mal im FRM.pm definiert sein, die sind ja noch kein 'Firmata-standard'.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 Juni 2014, 20:16:39
Danke Norbert, das sehe ich mir an. Ich habe aber gemerkt, dass ich erstmal meine Git-Kenntnisse verbessern muss - ich habe es noch nicht geschafft, meine und Deine Änderungen in einem Branch zusammenzuführen. Soll ich die Änderungen in den bestehenden Pull-Request committen oder einen neuen erstellen?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 05 Juni 2014, 23:10:53
UPDATE: Kommando zurück: mein UNO hatte sich wohl aufgegangen (das 1. Mal!)

Hallo,
kann es sein, daß nach dem Update von letzter Nacht hier nichts mehr geht? Ich habe auf der Arduino-Seite definitiv nichts geändert und bei FHEM eben nur das Update laufen lassen. Jetzt kann ich weder die Funksteckdosen schalten, noch bekomme ich über mein RCIN-Device Signale empfangen???

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 06 Juni 2014, 06:41:50
Das kann ich nicht reproduzieren. Ich habe gerade ein update development fhem abgesetzt, FHEM heruntergefahren und dann RCSwitchFirmata-2014-05-22.zip entpackt. Damit kann ich genauso schalten wie zuvor.

Ideen für die Fehlersuche: Hast Du das Archiv entpackt? Sind Deine Geräte definiert? Findest Du etwas im Log? Kannst Du mit RCSwitch senden und empfangen?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 06 Juni 2014, 09:02:47
Hallo Christian,

hat sich erledigt: wie ich oben im Update geschrieben habe, hatte sich mien UNO wohl das 1. Mal aufgehangen. Jetzt funktioniert alles wieder.

Eine andere Möglichkeit wäre noch, daß ich gestern einen NANO mit Ethernet Shield installiert und an FHEM angebunden habe. Hier habe ich aber einen anderen Port verwendet und so dürfte sich ja eigentlich nichts in die Quere kommen. Momentan ist der NANO nicht mehr am Netz, aber ich werde heute Abend weitermachen und ggf. berichten.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 12 Juni 2014, 19:49:11
Hallo Christian,

ich habe jetzt mal interessehalber 2 Arduino mit Funkmodul im Netz und - falls ich keinen Fehler gemacht habe - nun gibt es Probleme: einer der beiden Arduinos hängt sich auf bzw. ist nicht erreichbar.

Gibt es irgendetwas zu beachten, wenn man 2 FRM- (Port ist natürlich unterschiedlich) + 2 FRMRC_OUT-Devices (PIN ist gleich) definiert?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 12 Juni 2014, 19:53:25
Nein, bei FRM_RCOUT fällt mir da nichts ein. RCSwitch erlaubt maximal einen Empfänger, also kann es pro Arduino nur ein FRM_RCIN-Device geben. Bei den Sendern sind mir aber keine Einschränkungen bekannt.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 13 Juni 2014, 13:14:42
Gestern Abend liefen die beiden Arduinos dann irgendwie und ich konnte über beide , aber heute morgen nach "update" und "shutdown restart" war der UNO wieder weg (Pingen geht noch).

Kann es sein, daß irgendetwas beim "initialisieren" der Arduinos während des Starts von FHEM schiefläuft?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 13 Juni 2014, 19:49:44
Zitat von: blueberry63 am 13 Juni 2014, 13:14:42
Kann es sein, daß irgendetwas beim "initialisieren" der Arduinos während des Starts von FHEM schiefläuft?

Falls das der Fall ist, solltest Du etwas dazu im Log finden. Wenn alle Devices ohne Fehler angelegt werden, würde ich zunächst nach anderen Fehlerquellen suchen. Hast Du nach dem Update das Archiv ausgepackt? Hat der Arduino genug freien Speicher? Ist die Spannungsversorgung sichergestellt (z.B. bei Verwendung eines passiven USB-Hubs)? Funktionieren dein Nano und Dein Uno problemlos und stabil, wenn sie einzeln eingebunden werden? Was hat bei Deinem letzten Problem geholfen?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 13 Juni 2014, 21:27:32
ich kann mich nur kurz melden, da ich die nächsten 2 Tage unterwegs bin. Für jetzt nur so viel: einzeln laufen die Arduinos ohne Probleme, der Uno steigt aus, wenn der Nano aktiv ist.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 14 Juni 2014, 09:10:42
Hast du auch daran gedacht den beiden nicht nur eine unterschiedliche IP zu verpassen sondern auch die MAC Adresse geändert  ?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 15 Juni 2014, 20:00:53
Zitat
Hast du auch daran gedacht den beiden nicht nur eine unterschiedliche IP zu verpassen sondern auch die MAC Adresse geändert  ?

DANKE, das war der Fehler! Peinlich, peinlich!

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 07 Juli 2014, 21:47:40
@Christian,

seit einem FHEM-Update heute Morgen bekomme ich folgende Fehlermeldung beim Schalten der Steckdosen:

Zitat
Use of uninitialized value in numeric gt (>) at ./FHEM/20_FRM_RCIN.pm line 121.

Kannst Du mir helfen?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 08 Juli 2014, 05:54:25
Dieser Warnhinweis müsste kommen, wenn das Attribut verbose fehlt. Auf die Funktion hat er keine Auswirkung.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 08 Juli 2014, 10:22:26
Heute Morgen geht es wieder (???). Ich werde das beobachten.

Wie sieht es eigentlich mit der offiziellen Implementierung aus?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 08 Juli 2014, 17:18:27
Ich habe mich im Juni daran versucht, der Umbau ist aber aufwändiger als gedacht. Ich braucht etwas Ruhe dafür. Im Moment habe ich aber immer nur ein paar Minuten am Stück Zeit, weil ich derzeit sehr eingespannt bin. Ich kann leider auch nicht sagen, wann sich das ändert. Du solltest deshalb nicht auf mich warten.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 08 Juli 2014, 19:16:37
Hallo Christian,

kein Problem, es gibt sicher wichtigere Sachen als FHEM. Außerdem funktinoniert die Konfiguration für mich perfekt.

Gruß Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 23 August 2014, 14:16:56
Hallo zusammen, insbesondere Norbert,

ich habe inzwischen etwas Zeit gefunden, die notwendigen Änderungen zu implementieren. Ich habe den aktuellen Stand gerade in die GitHub-Repositories hochgeladen. 'perl-firmata' muss nicht mehr angepasst werden, den Pull-Request habe ich deshalb entfernt. in 'arduino' ist RCSwitch jetzt ein eigenes Beispiel und nicht mehr Teil der ConfigurableFirmata; und in 'fhem-mirror' habe ich alle Änderungen in die FRM_RC-Module verschoben. Ein entsprechendes Archiv hängt an.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 24 August 2014, 09:21:08
cool. Wenn ich Ende der Woche aus dem Urlaub zurück bin, dann teste ich das gleich mal durch :-)

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 12 September 2014, 08:47:59
Hallo Christian,

prima, dass die Ansteuerung der Funkmodule vielleicht bald in den Standard kommt (das sehe ich doch richtig, oder?).

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 12 September 2014, 17:37:14
In den offiziellen Firmata-Standard zwar nicht, aber hoffentlich ins ConfigurableFirmata-Release und in FHEM, sodass ein zusätzliches Archiv überflüssig wird. Sobald Norbert Zeit dafür findet, wird es sicher weitergehen. Bis es soweit ist, ist das Archiv vom 23.08. auch eine Lösung, die zu keinen Konflikten mit FHEM-Updates führt.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: golem am 02 Oktober 2014, 21:44:17
Hallo,

habe die Version vom 23.08. auf dem Arduino. Und die entsprechenden Dateien ins FHEM kopiert.
Beim Starten bekomme ich folgende Meldung


2014.10.02 22:03:16 5: FRM:>ff
2014.10.02 22:03:21 4: Connection accepted from FRM:192.168.0.6:1035
2014.10.02 22:03:21 5: FRM:>ff
2014.10.02 22:03:24 3: querying Firmata Firmware Version
2014.10.02 22:03:24 5: FRM:>f079f7
2014.10.02 22:03:24 5: FRM:<f079020652004300530077006900740063
2014.10.02 22:03:24 5: FRM:<0068004600690072006d006100740061002e0069006e006f00f7
2014.10.02 22:03:24 3: Firmata Firmware Version: RCSwitchFirmata.ino V_2_06
2014.10.02 22:03:24 5: FRM:>f069f7
2014.10.02 22:03:24 5: FRM:>f06bf7
2014.10.02 22:03:24 5: FRM:<f07155006e00680061006e0064006c0065006400200073007900730065007800200063
2014.10.02 22:03:24 5: FRM:<006f006d006d0061006e006400f7f06c7f7f0001010107010a010b017f0001010107010a010b017f7f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017f000101010701
2014.10.02 22:03:24 3: received String_data: Unhandled sysex command
2014.10.02 22:03:24 5: FRM:<0a017f7f7f7f7f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017ff7
2014.10.02 22:03:26 5: FRM:>f07a6807f7


Gruß Denis

So habs mit Verbose 5 nochmal gemacht
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 03 Oktober 2014, 07:47:33
Hallo Denis,

laut Log sendet an FHEM Deinen Arduino die Kommandos ANALOG_MAPPING_QUERY und CAPABILITY_QUERY und erhält die Antwort Unhandled sysex command. Die Kommandos haben mit RCSwitch nichts zu tun. Ich vermute deshalb entweder, dass Du die RCSwitchFirmata.ino noch nicht passend konfiguriert hast (durch Ein- und Auskommentieren der für Dich passenden Features), oder dass der Arduino vielleicht zuwenig freien Speicher hat und sich deshalb merkwürdig verhält.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 31 Oktober 2014, 07:13:08
Hallo Christian,

ich habe es nun endlich mal geschaft, die geänderte Firmata und die Module einzuspielen. Dabei habe ich nach Anlegen eines FRM_RCOUT folgende Fehlermeldungen im Log, wenn die 1Wire Temperatursensoren ihre Werte liefern.


Use of uninitialized value $pin in array element at ./FHEM/15_FRM_RC.pm line 179.


Die Temperatur wird dann auch nicht mehr aktualisiert.

Ohne jetzt tiefer in den Code gesehen zu haben, vermute ich, dass Dein Modul versucht, die 1Wire Nachrichten auszuwerten und dabei der Fehler auftritt.

Jetzt doch mal in den Code geschaut ... Ich denke, Du musst erst mal prüfen, ob das Command überhaupt für FRM_RC ist und dann den Rest im Observer ausführen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 31 Oktober 2014, 20:08:14
Hallo papa,

ja, das könnte möglich sein, wenn der SysEx-Observer auch für OneWire-Signale aufgerufen wird. Ich selbst habe neben den Funk-Komponenten nur digitale Eingänge, da würde dieses Problem gar nicht auftreten.

Ich sehe es mir an. Ich hoffe, ich komme am Wochenende dazu.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: ntruchsess am 31 Oktober 2014, 20:25:04
der SysEx-observer wird für alle SysEx-messages aufgerufen (https://github.com/ntruchsess/perl-firmata/blob/master/lib/Device/Firmata/Platform.pm#L209). Natürlich auch für 1-Wire.

Gruß,

Norbert
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 02 November 2014, 12:24:38
Hallo papa,

ich habe die Implementierung wie folgt geändert:

Bitte teste, ob das Dein Problem behebt.

Edit: Das ursprünglich an diesen Beitrag angehängte Archiv RCSwitchFirmata-2014-11-01.zip enthält zueinander inkompatible Dateien. Die Version RCSwitchFirmata-2014-11-02.zip des nächsten Beitrags behebt diesen Fehler.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 02 November 2014, 19:22:59
Hallo Christian,

ich habe endlich mal wieder etwas Zeit, um mit FHEM weiter zu machen und habe direkt die neue Version vom 1.11. getestet und die 3 Dateien in FHEM eingespielt:

15_FRM_RC.pm
20_FRM_RCIN.pm
20_FRM_RCOUT.pm


Meldung auf der Konsole:

Starting fhem...
Subroutine FRM_RCIN_Initialize redefined at ./FHEM/20_FRM_RCIN.pm line 27, <$fh> line 329.
Not an ARRAY reference at ./FHEM/10_FRM.pm line 496.


LOG:

2014.11.02 19:05:32 1: reload: Error:Modul 20_FRM_RCIN deactivated:
Too many arguments for main::FRM_RC_Init at ./FHEM/20_FRM_RCIN.pm line 47, near "$args)"

2014.11.02 19:05:32 0: Too many arguments for main::FRM_RC_Init at ./FHEM/20_FRM_RCIN.pm line 47, near "$args)"


2014.11.02 19:05:33 1: configfile: Cannot load module FRM_RCIN

2014.11.02 19:05:39 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.02 19:05:39 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.02 19:05:42 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.


FHEM startet jetzt nicht mehr :-(

Hast Du eine schnelle Abhilfe?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 02 November 2014, 21:25:23
Hallo blueberry63,

ich habe ins Archiv vom 01.11. offenbar nur das aktualisierte FRM_RC-Modul gepackt und die beiden anderen Module in der alten Version belassen. Die angehängte Version vom 02.11. enthält jetzt auch die passenden Module FRM_RCIN und FRM_RC_OUT.

Falls es weitere Probleme gibt und Du auf eine laufende Version angewiesen bist, kannst Du auch weiterhin mit der Version vom 23.08. arbeiten.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 02 November 2014, 22:57:25
Mit den neuen Dateien läuft FHEM wieder und es gibt auch keine Fehlermeldungen mehr. Allerdings schalten die Steckdosen auch nicht :-(

Gibt es noch etwas auf der Arduino-Seite zu beachten? Ich habe zwar die entsprechenden Dateien ins Arduino-LIB-Verzeichnis, allerdings habe ich meine alte INO-Datei genommen und nach Kompilierung den NANO neu betankt.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 03 November 2014, 07:03:33
Zitat von: blueberry63 am 02 November 2014, 22:57:25
Gibt es noch etwas auf der Arduino-Seite zu beachten?

Nein, der Arduino-Teil ist unverändert geblieben.

Schau doch mal, ob Dein Device so aussieht, wie Du es erwartest. Ist z.B. das IODev gesetzt? Steht was im Log? Falls Du sicher bist, dass Deine Konfiguration in Ordnung ist, setze das verbose-Attribut hoch und poste das Log.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 03 November 2014, 16:25:55
Hallo Christian,

folgendes kann ich mitloggen, wenn ich eine Steckdose einschalte:


2014.11.03 16:19:24 5: Cmd: >set STD_I1_FLURU on<
2014.11.03 16:19:24 2: IT set STD_I1_FLURU on
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value $command in concatenation (.) or string at ./FHEM/15_FRM_RC.pm line 264.
2014.11.03 16:19:24 4: SENDER433n: Sending  40 7 64 0 21
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value $sysex_data[0] in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.03 16:19:24 5: FRM:>000028074000540000
2014.11.03 16:19:24 5: SW: 000028074000540000
2014.11.03 16:19:24 4: Answer from SENDER433n: raw => isF00000000FFF


Hilft Dir das weiter?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 03 November 2014, 21:09:00
Hmmm... die erste Warnung deutet darauf hin, dass die Registrierung von FRM_RCOUT im Firmata-Modul nicht stattgefunden hat; das passiert aber automatisch beim define. Das ist schonmal seltsam. Die Firmata-Nachricht beginnt mit 00 und nicht mit F0 - die Nachricht ist also keine SysEx-Nachricht. Das ist ebenfalls seltsam. Deshalb vermute ich das Problem in Deiner Installation oder Konfiguration.

Ich habe gerade eine frische Test-Installation von FHEM 5.5 aufgesetzt und auf den neuesten Stand aktualisiert. Nach dem Kopieren der FRM_RC-Module hat das Senden und Empfangen tadellos funktioniert. Probier das doch auch mal.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 04 November 2014, 13:55:00
Hallo Christian,

ich habe nochmal ein "update force" ausgeführt und nach einem "shutdown restart" sehe ich folgende Zeilen im LOG:


2014.11.04 13:43:16 3: querying Firmata Firmware Version
2014.11.04 13:43:16 3: Firmata Firmware Version: confFirmNanoRc5.ino V_2_07
2014.11.04 13:43:16 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.04 13:43:16 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.04 13:43:19 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.04 13:43:19 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.


Die "10_FRM.pm" ist laut Kopfzeile vom 23.05.2014. Ist das richrtig?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 November 2014, 17:11:13
Ja, laut FHEM-Subversion-Repository ist das die aktuelle Version.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 04 November 2014, 19:54:45
Hallo Christian,

ich komme einfach nicht weiter. Daher fasse ich nochmal zusammen, was ich gemacht habe:


LOG:

2014.11.04 19:34:54 2: IT set STD_I1_FLURU off
2014.11.04 19:34:54 1: PERL WARNING: Use of uninitialized value $command in concatenation (.) or string at ./FHEM/15_FRM_RC.pm line 264.
2014.11.04 19:34:54 1: PERL WARNING: Use of uninitialized value in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.04 19:34:54 1: PERL WARNING: Use of uninitialized value $sysex_data[0] in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.04 19:34:54 1: PERL WARNING: Use of uninitialized value in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.


DEFs:

define ARDnano FRM 3035 global

define SENDER433n FRM_RCOUT 7
attr SENDER433n IODev ARDnano
attr SENDER433n defaultBitCount 24

### STECKD_FLURU
define STD_I1_FLURU IT F00000000F FF F0
attr STD_I1_FLURU IODev SENDER433u


Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 November 2014, 20:45:24
Das IODev passt nicht:
Zitat von: blueberry63 am 04 November 2014, 19:54:45

define SENDER433n FRM_RCOUT 7

attr STD_I1_FLURU IODev SENDER433u

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 04 November 2014, 21:00:47
Sorry, das war ein Fehler beim Kopieren (da ich zum Testen zwischen den beiden Arduinos wechsle). Aber auch so funktioniert es nicht :-(  :


define ARDnano FRM 3035 global

define SENDER433n FRM_RCOUT 7
attr SENDER433n IODev ARDnano
attr SENDER433n defaultBitCount 24

### STECKD_FLURU
define STD_I1_FLURU IT F00000000F FF F0
attr STD_I1_FLURU IODev SENDER433n


Hast Du noch eine Idee, was ich testen kann? Wenn ich wenigsten wüßte, ob es an meiner Konfiguration liegt. Vielleicht sollte ich einfach mit der alten Version weitermachen und warten, wie es anderen mit der neuen Version geht...

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 November 2014, 21:15:43
Zitat von: blueberry63 am 04 November 2014, 21:00:47Vielleicht sollte ich einfach mit der alten Version weitermachen und warten, wie es anderen mit der neuen Version geht...
Ich würde vorschlagen, Fehlerquellen auszuschließen und das Problem von zwei Seiten einzukreisen:
Ist das lib-Verzeichnis (in dem Firmata liegt) unverändert?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 November 2014, 21:28:25
Die Firmata-Version auf Deinem Arduino-Sketch ist 2.07. Änder das mal auf 2.06 und teste nochmal.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 04 November 2014, 21:31:16
Kurze Zwischenmeldung: die alte Version (vom Mai) funktioniert nicht mit dem neu betankten Arduino Nano, sondern nur mit dem unveränderten UNO.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 04 November 2014, 22:12:26
So - ich habe es jetzt auch ausprobieren können und kann positive Rückmeldung geben. Sowohl die 1Wire Temperaturesensoren als auch das Schalten der IT Steckdosen funktionieren bestens.

Super Arbeit - Danke.

Die nächsten Tage probiere ich dann auch noch das Empfangen der IT Fernbedienung.

Habe übrigens auch den 2.06 Skretch.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 05 November 2014, 12:02:47
Der Empfang geht auch.

Weiss jemand, wie man nun die IT Codes so weiterleitet, dass das angepasste 10_IT.pm Modul von hier http://forum.fhem.de/index.php/topic,14348.0.html (http://forum.fhem.de/index.php/topic,14348.0.html) auch was damit anfangen kann? Ich hätte gern den Status meiner IT Steckdosen aktualisiert, wenn jemand mit der Fernbedienung schaltet.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 05 November 2014, 15:44:41
Könnt Ihr mir mal bitte auf die Sprünge helfen? Wo bekomme ich denn die Firmata-Version 2.06 her? Da habe ich noch nie drauf geachtet   :-[

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 November 2014, 15:56:21
Du musst nur die Versionsummer in Deinem Arduino-Sketch ändern. Defaultmäßig steht die in der Firmata.h (die dritte Stelle heißt FIRMATA_BUGFIX_VERSION).
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 05 November 2014, 16:01:52
Habe mich mal selbst an FRM_RCIN versucht. Keine Ahnung, ob das so wirklich richtig ist. Jetzt leitet er die empfangenen Codes auch an IT weiter.

Christian - kannst Du das mal in deinen Code mit aufnehmen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 November 2014, 19:49:58
Zitat von: papa am 05 November 2014, 16:01:52Christian - kannst Du das mal in deinen Code mit aufnehmen.

Grundsätzlich gern, kein Problem. Verstehe ich das denn richtig, dass die Änderung nur in Zusammenhang mit dem gepatchen IT-Modul funktioniert?

Ich habe nämlich auch nach einer Möglichkeit gesucht, den Zustand der Schalter bei Betätigung der Fernbedienung automatisch zu ändern. Ich habe das bei mir über ein notify umgesetzt:


define notify_steckdosen notify receiver.tristateCode:.00F0F([0F]{5})[0F]([0F]) {\
  if ($EVENT =~ /tristateCode:.00F0F([0F]{5})[0F]([0F])/) {\
    my $id = chr(ord('a') + index($1, '0'));;\
    my $state = ( $2 eq 'F' ? 'on' : 'off');;\
    readingsSingleUpdate($defs{"steckdose_$id"}, 'state', $state , 0);;\
    return "$id = $state";;\
  }\
}

Dazu gehört folgende Zuordnung von Steckdosen zu TriState-Codes:

steckdose_a: 00F0F0FFFF 0F F0
steckdose_b: 00F0FF0FFF 0F F0
steckdose_c: 00F0FFF0FF 0F F0
steckdose_d: 00F0FFFF0F 0F F0
steckdose_e: 00F0FFFFF0 0F F0


Vorteil: funktioniert mit dem unveränderten IT-Modul.
Nachteil: man muss das notify definieren.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 05 November 2014, 20:12:03
Hallo,

ich funke mal schnell dazwischen: ES FUNKTIONIERT!  :)

...mit der Sketch-Version 2.60

Danke und Gruß
Markus
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 05 November 2014, 20:54:47
Zitat von: Christian. am 05 November 2014, 19:49:58
Grundsätzlich gern, kein Problem. Verstehe ich das denn richtig, dass die Änderung nur in Zusammenhang mit dem gepatchen IT-Modul funktioniert?

Ja - keine Ahnung, wie wir die Aufnahme in das offizielle Update puschen können.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 November 2014, 21:36:18
Ich bekomme mit Deiner Änderung bei jedem empfangenen Code eine Warnung:
2014.11.05 21:30:53 3: receiver: Unknown IT device detected, define one to get detailed information.
Das vorgeschlagene define bringt aber leider keine Details... gefällt mir nicht...
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 November 2014, 21:42:39
Zitat von: blueberry63 am 05 November 2014, 20:12:03
ich funke mal schnell dazwischen: ES FUNKTIONIERT!  :)

...mit der Sketch-Version 2.60
Na herzlichen Glückwunsch! Damit kein anderer Deine Schmerzen erleiden muss, habe ich gerade noch eine Prüfung eingebaut: wenn auf dem Arduino eine nicht unterstützte Firmata-Version läuft, bricht die Initialisierung der FRM_RC-Devices mit einer Fehlermeldung und einer Liste der unterstützten Versionen ab.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 November 2014, 22:00:31
Im Anhang befindet sich die aktuelle Version, in die ich auch die Änderung von papa eingebaut habe. Ins Git-Repository, über das RCSwitchFirmata hoffentlich irgendwann in die offizielle Version von FHEM übernommen wird, werde ich diese Änderung aber nicht übernehmen, solange das offizielle IT-Modul keine Implementierung von Parse enthält.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: papa am 06 November 2014, 08:36:14
Zitat von: Christian. am 05 November 2014, 21:36:18
Ich bekomme mit Deiner Änderung bei jedem empfangenen Code eine Warnung:
2014.11.05 21:30:53 3: receiver: Unknown IT device detected, define one to get detailed information.
Das vorgeschlagene define bringt aber leider keine Details... gefällt mir nicht...

Hm - ich schicke ja einfach alles als IT Code weiter. Vielleicht muss man noch prüfen, ob es denn wirklich ein IT Code ist ?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 06 November 2014, 13:51:16
Nein, ich habe nachgesehen: die Meldung wird von perl.pl immer ausgegeben, wenn das IT-Modul keine Parse-Funktion enthält. Und das ist genau der Unterschied zwischen der normalen under der gepatchten Version.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 15 November 2014, 09:18:58
Hallo,

Zitat
Im Anhang befindet sich die aktuelle Version, in die ich auch die Änderung von papa eingebaut habe. Ins Git-Repository, über das RCSwitchFirmata hoffentlich irgendwann in die offizielle Version von FHEM übernommen wird, werde ich diese Änderung aber nicht übernehmen, solange das offizielle IT-Modul keine Implementierung von Parse enthält.

heute habe ich beim UPDATE gesehen, daß das Modul 10_IT.pm mit "parse received it messages" eingespielt worden ist. Bedeutet es, daß 20_FRM_RCIN nun entsprechend angepaßt werden kann? Und was fehlt jetzt noch, um die FRM_RC-Module in den Standard zu übernehmen? Bei mir funktioniert jedenfalls alles (FRM_RCOUT) bestens und ich bin sehr zufrieden mit dieser Lösung, da ich hiermit bei der Positionierung des 433 MHz-Funkmoduls flexibler bin, als wenn das Teil direkt am FHEM-Server angeschlossen ist. Nochmal GROSSEN DANK für die tolle Arbeit.

Gruß
Blueberry63

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 15 November 2014, 15:15:30
Danke für den Hinweis. Ich habe gerade FHEM aktualisiert und getestet; alles funktioniert wie gewünscht. Ich werde die Änderung von papa also auch ins Git-Repository hochladen, damit Norbert sie ins offizielle FHEM-Subversion-Repository übernehmen kann.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: digital.arts am 20 November 2014, 13:49:28
Hallo,
@blueberry63
kannst Du bitte eine kurze Übersicht der Pinbelegung (Anschluß-Schema) posten,
wie ich einen 433er Sender und 433er Empfänger an einen Nano (mit ENC28J60 Shield) verbinde.
Wäre sehr nett von Dir; ich habe in den alten Posts (u.a. von Wzut) leider nichts konkretes dafür gefunden (jedenfalls nichts, das ich als Laie umsetzen kann  ::) )

vg
Karl
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 20 November 2014, 13:53:32
@digital.arts

heute geht es nicht mehr, aber morgen Abend werde ich es hier posten.

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 20 November 2014, 15:21:35
@digital.arts

ich habe noch ein Foto von meinem Testaufbau gefunden. Vielleicht reicht Dir das ja schon. Allerdings verwende ich kein ENC28J60-, sondern das W5100-Shield. Der Treiber für das ENC28J60 ist für den Nano zu groß!

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: digital.arts am 21 November 2014, 00:02:44
Hallo Blueberry63,
Danke schon mal für das Foto, aber ein zusätzlicher Pin - Plan wäre trotzdem sehr hilfreich.
Mit dem ENC probier ich es, hab auch einen "1wire-LAN-nanoFirmata" damit am laufen...
Notfalls bestell ich mir halt noch W5100...

Vg
Karl
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 21 November 2014, 11:31:14
Zitat von: digital.arts am 21 November 2014, 00:02:44
ein zusätzlicher Pin - Plan wäre trotzdem sehr hilfreich.
Das einfache Sendemodul hat doch nur vier Pins : VCC,GND, DATA & ANT
ANT = Antenne
VCC = 5V
GND = Masse
Data = ein beliebieger freier I/O Pin des Arduinos , welchen du genommen hast legst du dann beim define in FHEM fest. 
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: digital.arts am 21 November 2014, 12:42:34
Hallo,
@Wzut
Danke für den Hinweis; hätte ich auch selber draufkommen können, habe mir ja auch schon einen 1wire-Lan-nanoFirmata
zusammengebaut... da definiere ich ja auch den Pin, an dem meine 18B20 hängen  ::)

Dann werde ich am WE was zum basteln haben  :)

VG
Karl
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 21 November 2014, 21:05:35
@Digital.arts

hier ist der versprochene PIN-Belegungsplan (s. Anhang)

Gruß
Blueberry63


Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: digital.arts am 25 November 2014, 22:15:33
Hallo,

ich habe leider noch keinen richtigen Erfolg mit dem "RC-Firmata-Arduino" gehabt...
Was funktioniert:
- Verkabelung Nano mit 433er Sender und 433er Empfänger
- SendDemo-Sketch aus dem RCSwitch-Ordner funktioniert, d.h. schaltet eine meiner Dosen ein/aus (wie im Sketch vorgesehen...)
- ReceiveDemo_Advanced -Sketch aus dem RCSwitch-Ordner funktioniert, d.h. meine Fernbedienung wird erkannt (Werte für alle Tasten erscheinen)
Ich gehe also davon aus, dass die Hardware soweit richtig angeschlossen ist und auch funktioniert.

Was habe ich dann getan:
- RCSwitchFirmata-Sketch vom 5.11. angepasst (Ethernet deaktiviert, da noch kein W5100 vorhanden, überflüssige Module auskommentiert...)
/*
* Firmata is a generic protocol for communicating with microcontrollers
* from software on a host computer. It is intended to work with
* any host computer software package.
*
* To download a host software package, please click on the following link
* to open the download page in your default browser.
*
* http://firmata.org/wiki/Download
*/

/*
  Copyright (C) 2006-2008 Hans-Christoph Steiner.  All rights reserved.
  Copyright (C) 2010-2011 Paul Stoffregen.  All rights reserved.
  Copyright (C) 2009 Shigeru Kobayashi.  All rights reserved.
  Copyright (C) 2009-2013 Jeff Hoefs.  All rights reserved.
  Copyright (C) 2013 Norbert Truchsess. All rights reserved.
  Copyright (C) 2014 Nicolas Panel. All rights reserved.
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  See file LICENSE.txt for further informations on licensing terms.

  formatted using the GNU C formatting and indenting
*/


#include <Firmata.h>

/*
* by default Firmata uses the Serial-port (over USB) of Arduino.
* ConfigurableFirmata may also comunicate over ethernet using tcp/ip.
* To configure this 'Network Firmata' to use the original WIZ5100-based
* ethernet-shield or Arduino Ethernet uncomment the includes of 'SPI.h' and 'Ethernet.h':
*/

//#include <SPI.h>
//#include <Ethernet.h>

/*
* To configure 'Network Firmata' to use an ENC28J60 based board include
* 'UIPEthernet.h' (no SPI.h required). The UIPEthernet-library can be downloaded
* from: https://github.com/ntruchsess/arduino_uip
*/

//#include <UIPEthernet.h>

#if defined ethernet_h || defined UIPETHERNET_H
/*==============================================================================
* Network configuration for Network Firmata
*============================================================================*/
#define NETWORK_FIRMATA
//replace with ip of server you want to connect to, comment out if using 'remote_host'
#define remote_ip IPAddress(192,168,1,35)
//replace with hostname of server you want to connect to, comment out if using 'remote_ip'
//#define remote_host "server.local"
//replace with the port that your server is listening on
#define remote_port 3040
//replace with arduinos ip-address. Comment out if Ethernet-startup should use dhcp
#define local_ip IPAddress(192,168,1,172)
//replace with ethernet shield mac. It's mandatory every device is assigned a unique mac
const byte mac[] = {0x90,0xA2,0xDA,0x0D,0x07,0x03};
#endif

// To configure, save this file to your working directory so you can edit it
// then comment out the include and declaration for any features that you do
// not need below.

// Also note that the current compile size for an Arduino Uno with all of the
// following features enabled is about 22.4k. If you are using an older Arduino
// or other microcontroller with less memory you will not be able to include
// all of the following feature classes.

#include <utility/DigitalInputFirmata.h>
DigitalInputFirmata digitalInput;

#include <utility/DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;

//#include <utility/AnalogInputFirmata.h>
//AnalogInputFirmata analogInput;

//#include <utility/AnalogOutputFirmata.h>
//AnalogOutputFirmata analogOutput;

#include <Servo.h> //wouldn't load from ServoFirmata.h in Arduino1.0.3
//#include <utility/ServoFirmata.h>
//ServoFirmata servo;

#include <Wire.h> //wouldn't load from I2CFirmata.h in Arduino1.0.3
//#include <utility/I2CFirmata.h>
//I2CFirmata i2c;

//#include <utility/OneWireFirmata.h>
//OneWireFirmata oneWire;

//#include <utility/StepperFirmata.h>
//StepperFirmata stepper;

#include <RCSwitch.h> //wouldn't load from RCOutputFirmata.h in Arduino1.0.3
#include <utility/RCOutputFirmata.h>
RCOutputFirmata rcOutput;

#include <RCSwitch.h> //wouldn't load from RCInputFirmata.h in Arduino1.0.3
#include <utility/RCInputFirmata.h>
RCInputFirmata rcInput;

//#include <utility/FirmataExt.h>
//FirmataExt firmataExt;

//#include <utility/FirmataScheduler.h>
//FirmataScheduler scheduler;

//#include <utility/EncoderFirmata.h>
//EncoderFirmata encoder;


// dependencies. Do not comment out the following lines
#if defined AnalogOutputFirmata_h || defined ServoFirmata_h
#include <utility/AnalogWrite.h>
#endif

#if defined AnalogInputFirmata_h || defined I2CFirmata_h || defined EncoderFirmata_h || defined RCInputFirmata_h
#include <utility/FirmataReporting.h>
FirmataReporting reporting;
#endif

// dependencies for Network Firmata. Do not comment out.
#ifdef NETWORK_FIRMATA
#if defined remote_ip && defined remote_host
#error "cannot define both remote_ip and remote_host at the same time!"
#endif
#include <utility/EthernetClientStream.h>
EthernetClient client;
#if defined remote_ip && !defined remote_host
#ifdef local_ip
  EthernetClientStream stream(client,local_ip,remote_ip,NULL,remote_port);
#else
  EthernetClientStream stream(client,IPAddress(0,0,0,0),remote_ip,NULL,remote_port);
#endif
#endif
#if !defined remote_ip && defined remote_host
#ifdef local_ip
  EthernetClientStream stream(client,local_ip,IPAddress(0,0,0,0),remote_host,remote_port);
#else
  EthernetClientStream stream(client,IPAddress(0,0,0,0),IPAddress(0,0,0,0),remote_host,remote_port);
#endif
#endif
#endif

/*==============================================================================
* FUNCTIONS
*============================================================================*/

void systemResetCallback()
{
  // initialize a defalt state

  // pins with analog capability default to analog input
  // otherwise, pins default to digital output
  for (byte i=0; i < TOTAL_PINS; i++) {
    if (IS_PIN_ANALOG(i)) {
#ifdef AnalogInputFirmata_h
      // turns off pullup, configures everything
      Firmata.setPinMode(i, ANALOG);
#endif
    } else if (IS_PIN_DIGITAL(i)) {
#ifdef DigitalOutputFirmata_h
      // sets the output to 0, configures portConfigInputs
      Firmata.setPinMode(i, OUTPUT);
#endif
    }
  }

#ifdef FirmataExt_h
  firmataExt.reset();
#endif
}

/*==============================================================================
* SETUP()
*============================================================================*/

void setup()
{
#ifdef NETWORK_FIRMATA
#ifdef local_ip
  Ethernet.begin((uint8_t*)mac,local_ip);  //start ethernet
#else
  Ethernet.begin((uint8_t*)mac); //start ethernet using dhcp
#endif
  delay(1000);
#endif
  Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION);

#if defined AnalogOutputFirmata_h || defined ServoFirmata_h
  /* analogWriteCallback is declared in AnalogWrite.h */
  Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);
#endif

  #ifdef FirmataExt_h
#ifdef DigitalInputFirmata_h
  firmataExt.addFeature(digitalInput);
#endif
#ifdef DigitalOutputFirmata_h
  firmataExt.addFeature(digitalOutput);
#endif
#ifdef AnalogInputFirmata_h
  firmataExt.addFeature(analogInput);
#endif
#ifdef AnalogOutputFirmata_h
  firmataExt.addFeature(analogOutput);
#endif
#ifdef ServoFirmata_h
  firmataExt.addFeature(servo);
#endif
#ifdef I2CFirmata_h
  firmataExt.addFeature(i2c);
#endif
#ifdef OneWireFirmata_h
  firmataExt.addFeature(oneWire);
#endif
#ifdef StepperFirmata_h
  firmataExt.addFeature(stepper);
#endif
#ifdef RCOutputFirmata_h
  firmataExt.addFeature(rcOutput);
#endif
#ifdef RCInputFirmata_h
  firmataExt.addFeature(rcInput);
#endif
#ifdef FirmataReporting_h
  firmataExt.addFeature(reporting);
#endif
#ifdef FirmataScheduler_h
  firmataExt.addFeature(scheduler);
#endif
#ifdef EncoderFirmata_h
  firmataExt.addFeature(encoder);
#endif
#endif
  /* systemResetCallback is declared here (in ConfigurableFirmata.ino) */
  Firmata.attach(SYSTEM_RESET, systemResetCallback);

  // Network Firmata communicates with Ethernet-shields over SPI. Therefor all
  // SPI-pins must be set to IGNORE. Otherwise Firmata would break SPI-communication.
  // add Pin 10 and configure pin 53 as output if using a MEGA with Ethernetshield.
  // No need to ignore pin 10 on MEGA with ENC28J60, as here pin 53 should be connected to SS:
#ifdef NETWORK_FIRMATA
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i=0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4==i
        // || 10==i //explicitly ignore pin 10 on MEGA as 53 is hardware-SS but Ethernet-shield uses pin 10 for SS
        ) {
      Firmata.setPinMode(i, IGNORE);
    }
  }
//  pinMode(PIN_TO_DIGITAL(53), OUTPUT); configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT); // switch off SD-card bypassing Firmata
  digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;

  // start up Network Firmata:
  Firmata.begin(stream);
#else
  // start up the default Firmata using Serial interface:
  Firmata.begin(57600);
#endif
  systemResetCallback();  // reset to default config
}

/*==============================================================================
* LOOP()
*============================================================================*/
void loop()
{
#ifdef DigitalInputFirmata_h
  /* DIGITALREAD - as fast as possible, check for changes and output them to the
   * stream buffer using Firmata.write()  */
  digitalInput.report();
#endif

  /* STREAMREAD - processing incoming messagse as soon as possible, while still
   * checking digital inputs.  */
  while(Firmata.available()) {
    Firmata.processInput();
#ifdef FirmataScheduler_h
    if (!Firmata.isParsingMessage()) {
      goto runtasks;
    }
  }
  if (!Firmata.isParsingMessage()) {
runtasks: scheduler.runTasks();
#endif
  }

  /* SEND STREAM WRITE BUFFER - TO DO: make sure that the stream buffer doesn't go over
   * 60 bytes. use a timer to sending an event character every 4 ms to
   * trigger the buffer to dump. */

#ifdef FirmataReporting_h
  if (reporting.elapsed()) {
#ifdef AnalogInputFirmata_h
    /* ANALOGREAD - do all analogReads() at the configured sampling interval */
    analogInput.report();
#endif
#ifdef I2CFirmata_h
    // report i2c data for all device with read continuous mode enabled
    i2c.report();
#endif
#ifdef EncoderFirmata_h
    // report encoders positions if reporting enabled.
    encoder.report();
#endif
#ifdef RCInputFirmata_h
    rcInput.report();
#endif
  }
#endif
#ifdef StepperFirmata_h
  stepper.update();
#endif
#if defined NETWORK_FIRMATA && !defined local_ip
  if (Ethernet.maintain())
    {
      stream.maintain(Ethernet.localIP());
    }
#endif
}


Wird ohne Fehler kompiliert und geflasht
- Module FRM_RC, FRM_RCIN, FRM_RCOUT vom 5.11. in den FHEM-Module-Ordner kopiert

Meine Definitionen:


define ARD433 FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A94JRDT5-if00-port0@57600

# Empfänger an PIN D2
define EMPF433 FRM_RCIN 2
attr EMPF433 IODev ARD433

# Sender an PIN D7
define SENDER433 FRM_RCOUT 7
attr SENDER433 IODev ARD433

### Teststeckdose
define test IT 00FFF0FFFF 0F F0
attr test IODev SENDER433 



Wird alles ohne Fehler angelegt, aber die Steckdose reagiert nicht auf on oder off aus FHEM heraus...
mein Log dazu:

2014.11.25 21:43:44 5: Initializing Type Library:
2014.11.25 21:43:44 1: Including fhem.cfg
2014.11.25 21:43:44 5: Cmd: >attr global userattr devStateIcon devStateStyle icon sortby webCmd widgetOverride<
2014.11.25 21:43:44 5: Cmd: >attr global autoload_undefined_devices 1<
2014.11.25 21:43:44 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2014.11.25 21:43:44 5: Cmd: >attr global modpath .<
2014.11.25 21:43:44 5: Cmd: >attr global motd Error messages while initializing FHEM:
statefile: Undefined value Fa64a5a<
2014.11.25 21:43:44 5: Cmd: >attr global sendStatistics onUpdate<
2014.11.25 21:43:44 5: Cmd: >attr global statefile ./log/fhem.save<
2014.11.25 21:43:44 5: Cmd: >attr global uniqueID ./FHEM/FhemUtils/uniqueID<
2014.11.25 21:43:44 5: Cmd: >attr global updateInBackground 1<
2014.11.25 21:43:44 5: Cmd: >attr global verbose 5<
2014.11.25 21:43:44 5: Cmd: >define telnetPort telnet 7072 global<
2014.11.25 21:43:44 5: Loading ./FHEM/98_telnet.pm
2014.11.25 21:43:44 3: telnetPort: port 7072 opened
2014.11.25 21:43:44 5: Cmd: >define WEB FHEMWEB 8083 global<
2014.11.25 21:43:44 5: Loading ./FHEM/01_FHEMWEB.pm
2014.11.25 21:43:45 3: WEB: port 8083 opened
2014.11.25 21:43:45 5: Cmd: >attr WEB basicAuth xxx<
2014.11.25 21:43:45 5: Cmd: >define WEBphone FHEMWEB 8084 global<
2014.11.25 21:43:45 3: WEBphone: port 8084 opened
2014.11.25 21:43:45 5: Cmd: >attr WEBphone basicAuth xxx<
2014.11.25 21:43:45 5: Cmd: >attr WEBphone stylesheetPrefix smallscreen<
2014.11.25 21:43:45 5: Cmd: >define WEBtablet FHEMWEB 8085 global<
2014.11.25 21:43:45 3: WEBtablet: port 8085 opened
2014.11.25 21:43:45 5: Cmd: >attr WEBtablet basicAuth xxx<
2014.11.25 21:43:45 5: Cmd: >attr WEBtablet stylesheetPrefix touchpadattr<
2014.11.25 21:43:45 5: Cmd: >define Logfile FileLog ./log/fhem-%Y-%m.log fakelog<
2014.11.25 21:43:45 5: Loading ./FHEM/92_FileLog.pm
2014.11.25 21:43:45 5: Cmd: >define autocreate autocreate<
2014.11.25 21:43:45 5: Loading ./FHEM/98_autocreate.pm
2014.11.25 21:43:45 5: Cmd: >attr autocreate ignoreTypes KW9010|Lifetec|AURIOL<
2014.11.25 21:43:45 5: Cmd: >define eventTypes eventTypes ./log/eventTypes.txt<
2014.11.25 21:43:45 5: Loading ./FHEM/91_eventTypes.pm
2014.11.25 21:43:45 2: eventTypes: loaded 128 events from ./log/eventTypes.txt
2014.11.25 21:43:45 5: Cmd: >define ARD433 FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A94JRDT5-if00-port0@57600<
2014.11.25 21:43:45 5: Loading ./FHEM/10_FRM.pm
2014.11.25 21:43:46 5: Cmd: >define EMPF433 FRM_RCIN 2<
2014.11.25 21:43:46 5: Loading ./FHEM/20_FRM_RCIN.pm
2014.11.25 21:43:46 5: Loading ./FHEM/15_FRM_RC.pm
2014.11.25 21:43:46 5: EMPF433: FRM_RC_Define
2014.11.25 21:43:46 5: Cmd: >attr EMPF433 IODev ARD433<
2014.11.25 21:43:46 4: EMPF433: IODev := ARD433
2014.11.25 21:43:46 4: EMPF433: IODev is not applied during init
2014.11.25 21:43:46 5: Cmd: >define SENDER433 FRM_RCOUT 7<
2014.11.25 21:43:46 5: Loading ./FHEM/20_FRM_RCOUT.pm
2014.11.25 21:43:46 5: SENDER433: FRM_RC_Define
2014.11.25 21:43:46 5: Cmd: >attr SENDER433 IODev ARD433<
2014.11.25 21:43:46 4: SENDER433: IODev := ARD433
2014.11.25 21:43:46 4: SENDER433: IODev is not applied during init
2014.11.25 21:43:46 5: Cmd: >define test IT 00FFF0FFFF 0F F0<
2014.11.25 21:43:46 5: Loading ./FHEM/10_IT.pm
2014.11.25 21:43:46 5: Cmd: >attr test IODev SENDER433<
2014.11.25 21:43:46 1: Including ./log/fhem.save
2014.11.25 21:43:46 5: Cmd: >setstate EMPF433 2014-11-25 21:41:25 state Initialized<
2014.11.25 21:43:46 5: Cmd: >setstate Logfile active<
2014.11.25 21:43:46 5: Cmd: >setstate SENDER433 2014-11-25 21:41:25 state Initialized<
2014.11.25 21:43:46 5: Cmd: >setstate autocreate active<
2014.11.25 21:43:46 5: Cmd: >setstate eventTypes active<
2014.11.25 21:43:46 5: Cmd: >setstate global <no definition><
2014.11.25 21:43:46 5: Cmd: >setstate test off<
2014.11.25 21:43:46 5: Cmd: >setstate test 2014-11-25 21:41:58 state off<
2014.11.25 21:43:46 5: Triggering global (1 changes)
2014.11.25 21:43:46 5: Notify loop for global INITIALIZED
2014.11.25 21:43:46 3: Opening ARD433 device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A94JRDT5-if00-port0
2014.11.25 21:43:46 3: Setting ARD433 baudrate to 57600
2014.11.25 21:43:46 3: ARD433 device opened
2014.11.25 21:43:46 5: FRM:>ff
2014.11.25 21:43:46 5: SW: ff
2014.11.25 21:43:49 3: querying Firmata Firmware Version
2014.11.25 21:43:49 5: FRM:>f079f7
2014.11.25 21:43:49 5: SW: f079f7
2014.11.25 21:43:50 3: querying Firmata Firmware Version
2014.11.25 21:43:50 5: FRM:>f079f7
2014.11.25 21:43:50 5: SW: f079f7
2014.11.25 21:43:50 5: FRM:<f90206f079020652004300530077006900740063006800
2014.11.25 21:43:50 5: FRM:<4600690072006d0061007400610032002e0069006e006f00f7f0790206520043005300770069007400630068004600690072006d0061007400610032002e0069006e006f00f7f07902065200430053007700690074006300
2014.11.25 21:43:50 3: Firmata Firmware Version: RCSwitchFirmata2.ino V_2_06
2014.11.25 21:43:50 5: FRM:>f069f7
2014.11.25 21:43:50 5: SW: f069f7
2014.11.25 21:43:50 5: FRM:>f06bf7
2014.11.25 21:43:50 5: SW: f06bf7
2014.11.25 21:43:50 5: FRM:<68004600690072006d0061007400610032002e0069006e006f00f7
2014.11.25 21:43:51 5: FRM:>f07a6807f7
2014.11.25 21:43:51 5: SW: f07a6807f7
2014.11.25 21:43:51 5: FRM:>f4020b
2014.11.25 21:43:51 5: SW: f4020b
2014.11.25 21:43:51 4: EMPF433: Registering new sysex observer
2014.11.25 21:43:51 5: Triggering EMPF433 (1 changes)
2014.11.25 21:43:51 5: Notify loop for EMPF433 Initialized
2014.11.25 21:43:51 4: eventTypes: FRM_RCIN EMPF433 Initialized -> Initialized
2014.11.25 21:43:51 4: eventTypes: FRM_RCIN EMPF433 state: Initialized -> state: Initialized
2014.11.25 21:43:51 5: FRM:>f4070a
2014.11.25 21:43:51 5: SW: f4070a
2014.11.25 21:43:51 4: SENDER433: Reusing existing sysex observer CODE(0x2218a48)
2014.11.25 21:43:51 5: Triggering SENDER433 (1 changes)
2014.11.25 21:43:51 5: Notify loop for SENDER433 Initialized
2014.11.25 21:43:51 4: eventTypes: FRM_RCOUT SENDER433 Initialized -> Initialized
2014.11.25 21:43:51 4: eventTypes: FRM_RCOUT SENDER433 state: Initialized -> state: Initialized
2014.11.25 21:43:51 5: EMPF433: FRM_RC_Notify: INITIALIZED
2014.11.25 21:43:51 4: EMPF433: IODev is already configured
2014.11.25 21:43:51 5: EMPF433: gndPin is undefined
2014.11.25 21:43:51 5: EMPF433: vccPin is undefined
2014.11.25 21:43:51 5: EMPF433: tolerance is undefined
2014.11.25 21:43:51 5: EMPF433: rawData is undefined
2014.11.25 21:43:51 5: SENDER433: FRM_RC_Notify: INITIALIZED
2014.11.25 21:43:51 4: SENDER433: IODev is already configured
2014.11.25 21:43:51 5: SENDER433: gndPin is undefined
2014.11.25 21:43:51 5: SENDER433: vccPin is undefined
2014.11.25 21:43:51 5: SENDER433: protocol is undefined
2014.11.25 21:43:51 5: SENDER433: repeatTransmit is undefined
2014.11.25 21:43:51 5: SENDER433: pulseLength is undefined
2014.11.25 21:43:51 2: SecurityCheck:  telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2014.11.25 21:43:51 0: Server started with 12 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user root, pid 2364)
2014.11.25 21:43:51 4: Connection accepted from FHEMWEB:192.168.1.36:49814
2014.11.25 21:43:51 4: Connection accepted from FHEMWEB:192.168.1.36:49815
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49814 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=&timestamp=1416948225695
2014.11.25 21:43:52 4: Connection closed for FHEMWEB:192.168.1.36:49815
2014.11.25 21:43:52 4: Connection closed for FHEMWEB:192.168.1.36:49814
2014.11.25 21:43:52 4: Connection accepted from FHEMWEB:192.168.1.36:49816
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem?room=all
2014.11.25 21:43:52 4: /fhem?room=all / RL:1523 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/pgm2/style.css
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/pgm2/fhemweb_slider.js
2014.11.25 21:43:52 4: Connection accepted from FHEMWEB:192.168.1.36:49817
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/pgm2/fhemweb_svg.js
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49817 GET /fhem/pgm2/svg.js
2014.11.25 21:43:52 4: Connection accepted from FHEMWEB:192.168.1.36:49818
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/pgm2/fhemweb_textField.js
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49818 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.11.25 21:43:52 4: Connection accepted from FHEMWEB:192.168.1.36:49819
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49817 GET /fhem/pgm2/defaultCommon.css
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/icons/favicon
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49819 GET /fhem/pgm2/fhemweb_multiple.js
2014.11.25 21:43:52 4: Connection accepted from FHEMWEB:192.168.1.36:49820
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49818 GET /fhem/pgm2/dashboard_style.css
2014.11.25 21:43:52 4: Connection accepted from FHEMWEB:192.168.1.36:49821
2014.11.25 21:43:52 4: HTTP FHEMWEB:192.168.1.36:49820 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.25 21:43:53 4: HTTP FHEMWEB:192.168.1.36:49821 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.11.25 21:43:53 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/images/default/icoEverything.png
2014.11.25 21:43:53 4: HTTP FHEMWEB:192.168.1.36:49817 GET /fhem/images/default/off.png
2014.11.25 21:43:53 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem/images/default/fhemicon.png
2014.11.25 21:43:53 4: HTTP FHEMWEB:192.168.1.36:49816 GET /fhem?XHR=1&inform=type=status;filter=room=all&timestamp=1416948234650
2014.11.25 21:44:00 4: HTTP FHEMWEB:192.168.1.36:49819 GET /fhem?XHR=1&cmd.test=set%20test%20on&room=all
2014.11.25 21:44:00 5: Cmd: >set test on<
2014.11.25 21:44:00 2: IT set test on
2014.11.25 21:44:00 4: SENDER433: Sending 0 40 7 5 69 81
2014.11.25 21:44:00 5: FRM:>f0002807050a4502f7
2014.11.25 21:44:00 5: SW: f0002807050a4502f7
2014.11.25 21:44:00 4: Answer from SENDER433: raw => is00FFF0FFFF0F
2014.11.25 21:44:00 5: Triggering test (1 changes)
2014.11.25 21:44:00 5: Notify loop for test on
2014.11.25 21:44:00 4: eventTypes: IT test on -> on
2014.11.25 21:44:00 4: /fhem?XHR=1&cmd.test=set%20test%20on&room=all / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:44:00 4: HTTP FHEMWEB:192.168.1.36:49819 GET /fhem/images/default/on.png
2014.11.25 21:44:02 4: HTTP FHEMWEB:192.168.1.36:49819 GET /fhem?XHR=1&cmd.test=set%20test%20off&room=all
2014.11.25 21:44:02 5: Cmd: >set test off<
2014.11.25 21:44:02 2: IT set test off
2014.11.25 21:44:02 4: SENDER433: Sending 0 40 7 5 69 84
2014.11.25 21:44:02 5: FRM:>f0002807050a5102f7
2014.11.25 21:44:02 5: SW: f0002807050a5102f7
2014.11.25 21:44:02 4: Answer from SENDER433: raw => is00FFF0FFFFF0
2014.11.25 21:44:02 5: Triggering test (1 changes)
2014.11.25 21:44:02 5: Notify loop for test off
2014.11.25 21:44:02 4: eventTypes: IT test off -> off
2014.11.25 21:44:02 4: /fhem?XHR=1&cmd.test=set%20test%20off&room=all / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:44:04 4: HTTP FHEMWEB:192.168.1.36:49819 GET /fhem?XHR=1&cmd.test=set%20test%20on&room=all
2014.11.25 21:44:04 5: Cmd: >set test on<
2014.11.25 21:44:04 2: IT set test on
2014.11.25 21:44:04 4: SENDER433: Sending 0 40 7 5 69 81
2014.11.25 21:44:04 5: FRM:>f0002807050a4502f7
2014.11.25 21:44:04 5: SW: f0002807050a4502f7
2014.11.25 21:44:04 4: Answer from SENDER433: raw => is00FFF0FFFF0F
2014.11.25 21:44:04 5: Triggering test (1 changes)
2014.11.25 21:44:04 5: Notify loop for test on
2014.11.25 21:44:04 4: eventTypes: IT test on -> on
2014.11.25 21:44:04 4: /fhem?XHR=1&cmd.test=set%20test%20on&room=all / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:44:05 4: HTTP FHEMWEB:192.168.1.36:49819 GET /fhem?XHR=1&cmd.test=set%20test%20off&room=all
2014.11.25 21:44:05 5: Cmd: >set test off<
2014.11.25 21:44:05 2: IT set test off
2014.11.25 21:44:05 4: SENDER433: Sending 0 40 7 5 69 84
2014.11.25 21:44:05 5: FRM:>f0002807050a5102f7
2014.11.25 21:44:05 5: SW: f0002807050a5102f7
2014.11.25 21:44:05 4: Answer from SENDER433: raw => is00FFF0FFFFF0
2014.11.25 21:44:05 5: Triggering test (1 changes)
2014.11.25 21:44:05 5: Notify loop for test off
2014.11.25 21:44:05 4: eventTypes: IT test off -> off
2014.11.25 21:44:05 4: /fhem?XHR=1&cmd.test=set%20test%20off&room=all / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:44:23 4: Connection accepted from telnet:127.0.0.1:52374
2014.11.25 21:44:23 5: Cmd: >shutdown<
2014.11.25 21:44:23 5: Triggering global (1 changes)
2014.11.25 21:44:23 5: Notify loop for global SHUTDOWN
2014.11.25 21:44:23 5: EMPF433: FRM_RC_Notify: SHUTDOWN
2014.11.25 21:44:23 5: SENDER433: FRM_RC_Notify: SHUTDOWN
2014.11.25 21:44:23 0: Server shutdown
2014.11.25 21:45:21 5: Initializing Type Library:
2014.11.25 21:45:21 1: Including fhem.cfg
2014.11.25 21:45:21 5: Cmd: >attr global userattr devStateIcon devStateStyle icon sortby webCmd widgetOverride<
2014.11.25 21:45:21 5: Cmd: >attr global autoload_undefined_devices 1<
2014.11.25 21:45:21 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2014.11.25 21:45:21 5: Cmd: >attr global modpath .<
2014.11.25 21:45:21 5: Cmd: >attr global motd Error messages while initializing FHEM:
statefile: Undefined value Fa64a5a<
2014.11.25 21:45:21 5: Cmd: >attr global sendStatistics onUpdate<
2014.11.25 21:45:21 5: Cmd: >attr global statefile ./log/fhem.save<
2014.11.25 21:45:21 5: Cmd: >attr global uniqueID ./FHEM/FhemUtils/uniqueID<
2014.11.25 21:45:21 5: Cmd: >attr global updateInBackground 1<
2014.11.25 21:45:21 5: Cmd: >attr global verbose 5<
2014.11.25 21:45:21 5: Cmd: >define telnetPort telnet 7072 global<
2014.11.25 21:45:21 5: Loading ./FHEM/98_telnet.pm
2014.11.25 21:45:21 3: telnetPort: port 7072 opened
2014.11.25 21:45:21 5: Cmd: >define WEB FHEMWEB 8083 global<
2014.11.25 21:45:21 5: Loading ./FHEM/01_FHEMWEB.pm
2014.11.25 21:45:22 3: WEB: port 8083 opened
2014.11.25 21:45:22 5: Cmd: >attr WEB basicAuth xxx<
2014.11.25 21:45:22 5: Cmd: >define WEBphone FHEMWEB 8084 global<
2014.11.25 21:45:22 3: WEBphone: port 8084 opened
2014.11.25 21:45:22 5: Cmd: >attr WEBphone basicAuth xxx<
2014.11.25 21:45:22 5: Cmd: >attr WEBphone stylesheetPrefix smallscreen<
2014.11.25 21:45:22 5: Cmd: >define WEBtablet FHEMWEB 8085 global<
2014.11.25 21:45:22 3: WEBtablet: port 8085 opened
2014.11.25 21:45:22 5: Cmd: >attr WEBtablet basicAuth xxx=<
2014.11.25 21:45:22 5: Cmd: >attr WEBtablet stylesheetPrefix touchpadattr<
2014.11.25 21:45:22 5: Cmd: >define Logfile FileLog ./log/fhem-%Y-%m.log fakelog<
2014.11.25 21:45:22 5: Loading ./FHEM/92_FileLog.pm
2014.11.25 21:45:22 5: Cmd: >define autocreate autocreate<
2014.11.25 21:45:22 5: Loading ./FHEM/98_autocreate.pm
2014.11.25 21:45:22 5: Cmd: >attr autocreate ignoreTypes KW9010|Lifetec|AURIOL<
2014.11.25 21:45:22 5: Cmd: >define eventTypes eventTypes ./log/eventTypes.txt<
2014.11.25 21:45:22 5: Loading ./FHEM/91_eventTypes.pm
2014.11.25 21:45:22 2: eventTypes: loaded 128 events from ./log/eventTypes.txt
2014.11.25 21:45:22 5: Cmd: >define ARD433 FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A94JRDT5-if00-port0@57600<
2014.11.25 21:45:22 5: Loading ./FHEM/10_FRM.pm
2014.11.25 21:45:23 5: Cmd: >define EMPF433 FRM_RCIN 2<
2014.11.25 21:45:23 5: Loading ./FHEM/20_FRM_RCIN.pm
2014.11.25 21:45:23 5: Loading ./FHEM/15_FRM_RC.pm
2014.11.25 21:45:23 5: EMPF433: FRM_RC_Define
2014.11.25 21:45:23 5: Cmd: >attr EMPF433 IODev ARD433<
2014.11.25 21:45:23 4: EMPF433: IODev := ARD433
2014.11.25 21:45:23 4: EMPF433: IODev is not applied during init
2014.11.25 21:45:23 5: Cmd: >define SENDER433 FRM_RCOUT 7<
2014.11.25 21:45:23 5: Loading ./FHEM/20_FRM_RCOUT.pm
2014.11.25 21:45:23 5: SENDER433: FRM_RC_Define
2014.11.25 21:45:23 5: Cmd: >attr SENDER433 IODev ARD433<
2014.11.25 21:45:23 4: SENDER433: IODev := ARD433
2014.11.25 21:45:23 4: SENDER433: IODev is not applied during init
2014.11.25 21:45:23 5: Cmd: >define test IT 00FFF0FFFF 0F F0<
2014.11.25 21:45:23 5: Loading ./FHEM/10_IT.pm
2014.11.25 21:45:23 5: Cmd: >attr test IODev SENDER433<
2014.11.25 21:45:23 1: Including ./log/fhem.save
2014.11.25 21:45:23 5: Cmd: >setstate EMPF433 2014-11-25 21:43:51 state Initialized<
2014.11.25 21:45:23 5: Cmd: >setstate Logfile active<
2014.11.25 21:45:23 5: Cmd: >setstate SENDER433 2014-11-25 21:43:51 state Initialized<
2014.11.25 21:45:23 5: Cmd: >setstate autocreate active<
2014.11.25 21:45:23 5: Cmd: >setstate eventTypes active<
2014.11.25 21:45:23 5: Cmd: >setstate global <no definition><
2014.11.25 21:45:23 5: Cmd: >setstate test off<
2014.11.25 21:45:23 5: Cmd: >setstate test 2014-11-25 21:44:05 state off<
2014.11.25 21:45:23 5: Triggering global (1 changes)
2014.11.25 21:45:23 5: Notify loop for global INITIALIZED
2014.11.25 21:45:23 3: Opening ARD433 device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A94JRDT5-if00-port0
2014.11.25 21:45:23 3: Setting ARD433 baudrate to 57600
2014.11.25 21:45:23 3: ARD433 device opened
2014.11.25 21:45:23 5: FRM:>ff
2014.11.25 21:45:23 5: SW: ff
2014.11.25 21:45:26 3: querying Firmata Firmware Version
2014.11.25 21:45:26 5: FRM:>f079f7
2014.11.25 21:45:26 5: SW: f079f7
2014.11.25 21:45:27 3: querying Firmata Firmware Version
2014.11.25 21:45:27 5: FRM:>f079f7
2014.11.25 21:45:27 5: SW: f079f7
2014.11.25 21:45:27 5: FRM:<f902
2014.11.25 21:45:27 5: FRM:<06f0790206520043005300770069007400630068004600690072006d0061007400610032002e0069006e006f00f7f0790206520043005300770069007400630068004600690072
2014.11.25 21:45:27 3: Firmata Firmware Version: RCSwitchFirmata2.ino V_2_06
2014.11.25 21:45:27 5: FRM:>f069f7
2014.11.25 21:45:27 5: SW: f069f7
2014.11.25 21:45:27 5: FRM:>f06bf7
2014.11.25 21:45:27 5: SW: f06bf7
2014.11.25 21:45:27 5: FRM:<006d0061007400610032002e0069006e006f00f7f0790206520043005300770069007400630068004600690072006d0061007400610032002e0069006e006f00f7
2014.11.25 21:45:28 5: FRM:>f07a6807f7
2014.11.25 21:45:28 5: SW: f07a6807f7
2014.11.25 21:45:28 5: FRM:>f4020b
2014.11.25 21:45:28 5: SW: f4020b
2014.11.25 21:45:28 4: EMPF433: Registering new sysex observer
2014.11.25 21:45:28 5: Triggering EMPF433 (1 changes)
2014.11.25 21:45:28 5: Notify loop for EMPF433 Initialized
2014.11.25 21:45:28 4: eventTypes: FRM_RCIN EMPF433 Initialized -> Initialized
2014.11.25 21:45:28 4: eventTypes: FRM_RCIN EMPF433 state: Initialized -> state: Initialized
2014.11.25 21:45:28 5: FRM:>f4070a
2014.11.25 21:45:28 5: SW: f4070a
2014.11.25 21:45:28 4: SENDER433: Reusing existing sysex observer CODE(0x1d67a48)
2014.11.25 21:45:28 5: Triggering SENDER433 (1 changes)
2014.11.25 21:45:28 5: Notify loop for SENDER433 Initialized
2014.11.25 21:45:28 4: eventTypes: FRM_RCOUT SENDER433 Initialized -> Initialized
2014.11.25 21:45:28 4: eventTypes: FRM_RCOUT SENDER433 state: Initialized -> state: Initialized
2014.11.25 21:45:28 5: EMPF433: FRM_RC_Notify: INITIALIZED
2014.11.25 21:45:28 4: EMPF433: IODev is already configured
2014.11.25 21:45:28 5: EMPF433: gndPin is undefined
2014.11.25 21:45:28 5: EMPF433: vccPin is undefined
2014.11.25 21:45:28 5: EMPF433: tolerance is undefined
2014.11.25 21:45:28 5: EMPF433: rawData is undefined
2014.11.25 21:45:28 5: SENDER433: FRM_RC_Notify: INITIALIZED
2014.11.25 21:45:28 4: SENDER433: IODev is already configured
2014.11.25 21:45:28 5: SENDER433: gndPin is undefined
2014.11.25 21:45:28 5: SENDER433: vccPin is undefined
2014.11.25 21:45:28 5: SENDER433: protocol is undefined
2014.11.25 21:45:28 5: SENDER433: repeatTransmit is undefined
2014.11.25 21:45:28 5: SENDER433: pulseLength is undefined
2014.11.25 21:45:28 2: SecurityCheck:  telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2014.11.25 21:45:28 0: Server started with 12 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user root, pid 2371)
2014.11.25 21:45:28 4: Connection accepted from FHEMWEB:192.168.1.36:49862
2014.11.25 21:45:28 4: Connection accepted from FHEMWEB:192.168.1.36:49863
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem?room=all
2014.11.25 21:45:29 4: /fhem?room=all / RL:1539 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49863 GET /fhem?XHR=1&inform=type=status;filter=room=all&timestamp=1416948326841
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/pgm2/style.css
2014.11.25 21:45:29 4: Connection accepted from FHEMWEB:192.168.1.36:49864
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/pgm2/fhemweb_noArg.js
2014.11.25 21:45:29 4: Connection accepted from FHEMWEB:192.168.1.36:49865
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49864 GET /fhem/pgm2/svg.js
2014.11.25 21:45:29 4: Connection accepted from FHEMWEB:192.168.1.36:49866
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/pgm2/fhemweb_slider.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49864 GET /fhem/pgm2/fhemweb_svg.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49865 GET /fhem/pgm2/fhemweb.js
2014.11.25 21:45:29 4: Connection accepted from FHEMWEB:192.168.1.36:49867
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49866 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/pgm2/fhemweb_textField.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49864 GET /fhem/pgm2/fhemweb_time.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49865 GET /fhem/pgm2/defaultCommon.css
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49867 GET /fhem/pgm2/fhemweb_multiple.js
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49866 GET /fhem/icons/favicon
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/pgm2/dashboard_style.css
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/images/default/icoEverything.png
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49864 GET /fhem/images/default/off.png
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem/images/default/fhemicon.png
2014.11.25 21:45:29 4: HTTP FHEMWEB:192.168.1.36:49862 GET /fhem?XHR=1&inform=type=status;filter=room=all&timestamp=1416948331166
2014.11.25 21:45:34 4: HTTP FHEMWEB:192.168.1.36:49865 GET /fhem?XHR=1&cmd.test=set%20test%20on&room=all
2014.11.25 21:45:34 5: Cmd: >set test on<
2014.11.25 21:45:34 2: IT set test on
2014.11.25 21:45:34 4: SENDER433: Sending 0 40 7 5 69 81
2014.11.25 21:45:34 5: FRM:>f0002807050a4502f7
2014.11.25 21:45:34 5: SW: f0002807050a4502f7
2014.11.25 21:45:34 4: Answer from SENDER433: raw => is00FFF0FFFF0F
2014.11.25 21:45:34 5: Triggering test (1 changes)
2014.11.25 21:45:34 5: Notify loop for test on
2014.11.25 21:45:34 4: eventTypes: IT test on -> on
2014.11.25 21:45:34 4: /fhem?XHR=1&cmd.test=set%20test%20on&room=all / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:45:34 4: HTTP FHEMWEB:192.168.1.36:49865 GET /fhem/images/default/on.png
2014.11.25 21:45:35 4: HTTP FHEMWEB:192.168.1.36:49865 GET /fhem?XHR=1&cmd.test=set%20test%20off&room=all
2014.11.25 21:45:35 5: Cmd: >set test off<
2014.11.25 21:45:35 2: IT set test off
2014.11.25 21:45:35 4: SENDER433: Sending 0 40 7 5 69 84
2014.11.25 21:45:35 5: FRM:>f0002807050a5102f7
2014.11.25 21:45:35 5: SW: f0002807050a5102f7
2014.11.25 21:45:35 4: Answer from SENDER433: raw => is00FFF0FFFFF0
2014.11.25 21:45:35 5: Triggering test (1 changes)
2014.11.25 21:45:35 5: Notify loop for test off
2014.11.25 21:45:35 4: eventTypes: IT test off -> off
2014.11.25 21:45:35 4: /fhem?XHR=1&cmd.test=set%20test%20off&room=all / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.11.25 21:45:37 4: Connection closed for FHEMWEB:192.168.1.36:49863
2014.11.25 21:45:37 4: Connection closed for FHEMWEB:192.168.1.36:49862


Was habe ich übersehen, oder was ist falsch ??

Für Hilfe oder Tips wäre ich sehr dankbar

VG
Karl
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 26 November 2014, 05:49:54
Hallo Karl,

Zitat von: digital.arts am 25 November 2014, 22:15:33

//#include <utility/FirmataExt.h>
//FirmataExt firmataExt;


das ist ein bisschen zuviel. FirmataExt ist wichtig für die Kommunikation mit dem Host. Nimm es mal dazu und probiers es nochmal, der Rest sieht gut aus.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: digital.arts am 26 November 2014, 08:21:48
Guten Morgen,
@Christian.
Danke für den Hinweis, werde ich heute Abend testen...

vg
Karl
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 26 November 2014, 10:34:11
da bin ich mal gespannt, ob das alles noch in den Speicher paßt...
::)
Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: digital.arts am 26 November 2014, 18:51:21
Hallo,
@Christian.
Super, das war es ! Mit aktiviertem firmataExt schalten die Steckdosen, auch die Fernbedienungen werden erkannt. Danke nochmal für den Tip.

@blueberry63
Na ja, nachdem ich auch wieder die Funktion für den ENC28J60 aktiviert hatte, ging zwar das flashen noch, aber 29.xxx belegte Bytes von 30.xxx war doch zuviel.
So wurde der Nano nicht mehr im FHEM erkannt... ABER: weil ich eigentlich eh nur die 433er Sendefunktion brauche, testweise die Funktion digitalinputfirmata deaktiviert...
UND: nur noch 28.580 von 30.720 Bytes Größe ! Damit funktioniert es !! 433er Dosen schalten über LAN.
OK, wenn ich dann mal die bestellten W5100 bekomme, dann wird der Sketch auch wieder kleiner und ich kann dann sogar die 1wire-Funktion mit aktivieren...

Aber so funktioniert es auf jeden Fall schon mal, und damit bin ich schon zufrieden (vorerst)  ;)

VG
Karl

Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 01 Dezember 2014, 14:15:27
@Christian,

pünktlich zum 1. Advent habe ich meine Weihnachtsbeleuchtung, gesteuert über Funksteckdosen, aktiviert. Dabei ist mir aufgefallen, daß ich nicht mehrere Dosen gleichzeitig schalten kann. In der Weboberfläche wurden die Geräte als "eingeschalltet" angezeigt, wirklich geschaltet hatte aber nur eine von drei Steckdosen. Wenn ich das Ein-/Ausschalten zeitlich auseinanderziehe, funktioniert es prima. Hast Du/jemand dazu eine Erklärung?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: RitterSport am 01 Dezember 2014, 15:01:44
Kann ich Bestätigen, das gleiche Problem bei mir.
Also als Bsp. ein set IT1 on ;; set IT2 on etc geht nicht. Ich ziehe sie auch auseinander.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 01 Dezember 2014, 16:06:16
Zitat von: blueberry63 am 01 Dezember 2014, 14:15:27Dabei ist mir aufgefallen, daß ich nicht mehrere Dosen gleichzeitig schalten kann.

Das kann ich nicht reproduzieren. Ich habe gerade bei mir
set steckdose_(a|c) on
probiert, das funktioniert wie erwartet. Das Log sieht (mit verbose 5) auch wie erwartet aus:
2014.12.01 15:57:00 2: IT set steckdose_a on
2014.12.01 15:57:00 4: sender: Sending 0 40 7 1 87 3
2014.12.01 15:57:00 5: FRM:>f0002807012e0d00f7
2014.12.01 15:57:00 5: SW: f0002807012e0d00f7
2014.12.01 15:57:00 2: IT set steckdose_c on
2014.12.01 15:57:00 4: sender: Sending 0 40 7 4 84 81
2014.12.01 15:57:00 5: FRM:>f000280704284502f7
2014.12.01 15:57:00 5: SW: f000280704284502f7
2014.12.01 15:57:00 5: FRM:<f0002807012e0d00f7
2014.12.01 15:57:00 4: tristateCode: 000FFFF10001
2014.12.01 15:57:01 5: FRM:<f000280704284502f7
2014.12.01 15:57:01 4: tristateCode: 00F0FFF0FF0F


Wie sieht denn Euer Log aus?

Möglicherweise bringt es auch etwas, die Attribute pulseLength und repeatTransmit des FRM_RCOUT-Moduls zu variieren. Ich habe mich bei mir an den Werten der Original-Fernbedienung orientiert.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 01 Dezember 2014, 16:14:59
Bei mir im LOG waren die Ein-Ausschalt-Befehle ganz normal zusehen. Ich könnte heute Abend nochmal mit VERBOSE=5 eine Test machen.


ZitatMöglicherweise bringt es auch etwas, die Attribute pulseLength und repeatTransmit des FRM_RCOUT-Moduls zu variieren

Wie ermittle ich denn die Werte für pulseLength und repeatTransmit?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 01 Dezember 2014, 17:56:04
Zitat von: blueberry63 am 01 Dezember 2014, 16:14:59Wie ermittle ich denn die Werte für pulseLength und repeatTransmit?

pulseLength ist die Dauer eines Signals; für die Ermittlung habe ich die Original-Fernbedienung betätigt und den empfangenen Wert aus dem FRM_RCIN-device abgelesen (ich habe 2 verschiedene Fabrikate und erhalte einen Wert von 190 bzw. 350). repeatTransmit ist die Anzahl von Wiederholungen des Signals; der RCSwitch-Default für ist 10, man könnte also z.B. Werte zwischen 2 und 20 probieren.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: RitterSport am 01 Dezember 2014, 19:16:32
Ich muss meine Aussage revidieren:

Sie schalten bei mir auch zu gleichen Zeiten, WENN die IT-Dosen weit genug auseinander sind. Gerade mal getestet.
Aufgefallen war mir das Verhalten allerdings bei einer Konstruktion , beid er 2 Dosen nebeneinander waren....
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: zentis666 am 04 Juni 2015, 20:11:13
Hallo!
Ich muss das alte Thema nochmal aufwärmen:
bei mir läuft Firmata auf einem Arduino Mega mit Ethernet Shield seit ca. 2 Monaten problemlos.
Kompiliert habe ich mit IDE 1.0.6, ich schalte meine Pollin Funksteckdosen.

Nun wollte ich heute auf einen Nano mit ENC28J60 umziehen und hab ein Update auf die akutelle IDE (1.6.4) gemacht.
Ich hab den Sketch umkonfiguriert ( ENC28J60 lib ist installiert) und auf dem neuen IDE kompiliert das Ganze nicht mehr:
Ich bekomme bei den .h Dateien immer
ConfigurableFirmata.ino:92:41: fatal error: utility/DigitalInputFirmata.h: No such file or directory
Das ist unter Windows und auch unter Linux Mint (Debian) so.

Den aktuellen Sketch von Github hab ich auch gezogen, kommt das Gleiche.

Wenn ich den Pfad komplett in den Sketch schreibe sind diese Fehler weg, dann bekomme ich aber weitere Fehler, z.B.

ConfigurableFirmata.ino:106:1: error: 'ServoFirmata' does not name a type
ConfigurableFirmata.ino: In function 'void systemResetCallback()':
ConfigurableFirmata.ino:184:15: error: 'class FirmataClass' has no member named 'setPinMode'
ConfigurableFirmata.ino: In function 'void loop()':
ConfigurableFirmata.ino:300:18: error: 'class FirmataClass' has no member named 'isParsingMessage'
ConfigurableFirmata.ino:304:16: error: 'class FirmataClass' has no member named 'isParsingMessage'
'ServoFirmata' does not name a type


Läuft das Ganze überhaupt auf dem akutellen IDE oder kann man Firmata nur mit 1.0.* nutzen?
Oder mach ich irgendwas grundsätzlich falsch?

Gruß
Sven
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 05 Juni 2015, 19:55:20
Zitat von: zentis666 am 04 Juni 2015, 20:11:13
Läuft das Ganze überhaupt auf dem akutellen IDE oder kann man Firmata nur mit 1.0.* nutzen?

ich arbeite mit der Arduino IDE 1.5.6-r2, das klappt nach wie vor ohne Probleme. Ich hatte mal die Version 1.5.8 probiert, damit kam es aber zu Compile-Fehlern. Die aktuelle 1.6.4 funktioniert bei mir auch nicht. Ich vermute, dass nicht mehr die Firmata-Version aus dem Benutzererzeichnis eingebunden wird. Ich habe es mir aber nicht genauer angesehen.

Nebenbei bemerkt finde ich es übrigens ziemlich daneben, wenn eine Anwendung zwischen Version 1.5.6 auf 1.5.8 sich derart inkompatibel ändert...
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 21 Juni 2015, 13:24:10
Hallo,

seit einiger Zeit bekomme ich nach einem FHEM Update folgende Zeilen angezeigt:

Zitat
Calling /usr/bin/perl ./contrib/commandref_join.pl, this may take a while
EN FHEM/20_FRM_RCOUT.pm: Unbalanced code (-2, last line ok: 339)

Das Schalten der Baumarkt/IT-Steckdosen funktioniert noch einwand frei. Kann ich die Meldung ignorieren?

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 21 Juni 2015, 22:04:22
Ja. In der genannten Zeile 339 befindet sich die HTML-Dokumentation des Moduls:
      <code>pulseLength</code>: RCSwitch parameter <code>pulseLength</code>
      (default: 350; see RCSwitch documentation for details)</code>

Das abschließende </code> wird das Problem sein. Völlig unkritisch.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: zentis666 am 24 Juni 2015, 23:22:21
Guten Abend!
Ich hab es endlich geschafft meinen ersten Nano zu betanken,
mit den Resten meiner alten Konfig konnte ich schon mal das Signal meiner Pollin FB empfangen,
prinzipiell geht es also. Da senden nicht ging hab ich die 3 defines mal gelöscht und wollte sie neu anlegen. define ARDnano FRM 3030 global mach ich als erstes. Leider bekomme ich nun nach define SEND433 FRM_RCOUT 7
oder auch define EMPF433 FRM_RCIN 2 immer SEND433/EMPF433 no IODev assigned

Ich steh grad auf dem Schlauch... wie bekomme ich denn das IODev zugeordnet?
Gruss
Sven
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 Juni 2015, 08:49:29
Bei mir sieht das z.Bsp. so aus:

define ARDnano FRM 3035 global
attr ARDnano model nano

define SENDER433n FRM_RCOUT 7
attr SENDER433n IODev ARDnano
attr SENDER433n defaultBitCount 24

define EMPF433n FRM_RCIN 2
attr EMPF433n IODev ARDnano


Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: zentis666 am 25 Juni 2015, 12:50:44
Das wollte ich ja auch so machen, lief auch schon mal mit nem Uno. Ich bekomme halt immer diese Fehlermeldung wenn ich Sender/Empfänger definieren will. Das IODev sollte wenn ich das richtig verstanden habe automatisch gesetzt werden. Die attr Befehle kann ich gar nicht absetzen da das define nicht funktioniert hat. Sollte ich die Zeilen einfach mal in die fhem.config reinkopieren und neu starten? Wollte eigentlich nicht direkt an der config basteln...


Gesendet von iPhone mit Tapatalk
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: blueberry63 am 25 Juni 2015, 12:55:25
ZitatSollte ich die Zeilen einfach mal in die fhem.config reinkopieren und neu starten? Wollte eigentlich nicht direkt an der config basteln...

Ich glaube, ich hatte das damals direkt über fhem.cfg gemacht (Neustart).

Gruß
Blueberry63
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: zentis666 am 25 Juni 2015, 22:22:15
Hi blueberry63,
reinkopieren und fhem neu starten hat funktioniert,
danke!
Gruß
Sven
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Pythonf am 26 September 2015, 01:33:44
Ich grab diesen Thread mal wieder aus, da Ich einige Fragen dazu hab.

Die erste wäre: Wenn das Modul funktioniert, könnte man hierzu doch einen Eintrag im Wiki erstellen. Unter anderem auch zu den Teilen die man an der ConfigurableFirmata abändern um die Bauteile zu implementieren. Generell finde ich sind leider nicht alle funktionierenden Module irgendwo vermerkt was die Recherche aber auch die Kreativität durch Unwissenheit was alles geht ein wenig eingeschränkt - außerdem spart man so Geld ein paar wenige Euro für Arduino und I/O paar oder ein 433mHz CUL machen doch einen Unterschied.

Eine zweite Frage wäre ob z.B. der PIR-1000 Bewegungsmelder mit der Firmata funktioniert, sprich kann man Nachrichten nicht nur senden sondern auch empfangen? Auch bezüglich IT Fernbedienungen?

Und meine dritte Frage wäre, ob man hier eine Erweiterung einführen kann um Rohdaten zu senden und zu empfangen. Was ich damit meine ist, ob man die hier vorgestellten Sende und Empfangsoptionen auf simple Weise hinzufügen kann http://forum.fhem.de/index.php/topic,12599.45.html (http://forum.fhem.de/index.php/topic,12599.45.html) Wenn ich mich mit der Programmierung von Arduinos und FHEM Modulen besser auskennen würde, würde ich das auch selbst versuchen, aber dazu fehlt mir die Erfahrung. Wenn meine Empfänger/Sender angekommen sind müsste ich bisher nämlich leider 2 Arduinos programmieren um zum einen meine IT Steckdosen und dann eventl. den Beweungsmelder zu empfangen und zu steuern und mit dem anderen die Rolläden.

Beste Grüße
Fabian
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 27 September 2015, 09:59:47
Zitat von: Pythonf am 26 September 2015, 01:33:44
Wenn das Modul funktioniert, könnte man hierzu doch einen Eintrag im Wiki erstellen.
Das ist eine gute Idee, auch wenn ich dazu aus Zeitgründen momentan nichts beisteuern kann. Jedes Modul ist aber gemäß FHEM-Konvention am Dateiende dokumentiert, dort solltest Du alles Notwendige finden. Das Archiv aus Antwort #197 (http://forum.fhem.de/index.php/topic,22320.msg215634.html#msg215634) ist nach wie vor aktuell. Der Arduino-Sketch RCSwitchFirmata ist ohne Änderungen lauffähig; Du kannst bei Bedarf einzelne Firmata-Features auskommentieren, um Speicher zu sparen.

Zitat
Eine zweite Frage wäre ob z.B. der PIR-1000 Bewegungsmelder mit der Firmata funktioniert, sprich kann man Nachrichten nicht nur senden sondern auch empfangen? Auch bezüglich IT Fernbedienungen?
Grundsätzlich funktioniert der Empfang von Intertechno-Fernbedienungen, dafür ist das Modul FRM_RCIN zuständig. Ich habe es mit meinen Funksteckdosen erfolgreich ausprobiert. Unterstützt werden alle Protokolle der RCSwitch-Bibliothek (https://code.google.com/p/rc-switch/). Ob das auch für Deine Bewegungsmelder gilt, weiß ich nicht.

Zitat
Und meine dritte Frage wäre, ob man hier eine Erweiterung einführen kann um Rohdaten zu senden und zu empfangen.
Für das Senden ist FRM_RCOUT zuständig, damit können auch Rohdaten gesendet werden. Hier gilt ebenfalls, das alle Protokolle der RCSwitch-Bibliothek unterstützt werden.

Zitat
Was ich damit meine ist, ob man die hier vorgestellten Sende und Empfangsoptionen auf simple Weise hinzufügen kann
Möglich ist das sicher. Falls das Protokoll nicht von RCSwitch unterstützt wird, müsste neben den FHEM-Modulen zusätzlich entweder RCSwitchFirmata oder besser direkt RCSwitch erweitert werden. Ob das auf simple Weise möglich ist, hängt von Deinen Vorkenntnissen ab.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: jdelphi am 14 Dezember 2015, 11:09:13
Hallo Leute,

ich kam dieses WE mal dazu, mich mit dem Funk auseinander zu setzen.
Der Aufbau und die Inbetriebnahme ging für die Komplexität recht gut.

Einzig bei dem Definieren vom Sender und Empfänger mittels ,,define EMPF433 FRM_RCIN 2" gab es das bekannte Hänger, dass er gerne als erstes dass IODev hätte. Die Zeile hatte ich dann von Hand in die Config eingetragen.

Nun zu meinen Problemchen:

Wenn ich den Empfänger angeschlossen habe, geht bei mir das Senden nicht mehr.
Empfangen geht jedoch wunderbar, hatte plötzlich dank autocreate neue Devices :-)

Meine Steckdosen reagieren nicht auf den Code, den ich empfangen habe, ich muss sie nochmal erneut mit anlernen. (Es ist das Home easy System von ELRO / ELV / sonstiges) Diese haben am Empfänger keinen einstellbaren code, sondern sind Lernfähig. Den Sender kann man nicht umstellen.  So beim schreiben kommt mir die Vermutung, das diese noch mehr als nur das reine 1,0,T Signal auswerten. (Bspw. Pulspausenverhältniss, was ach das obere Problem erklären könnte, (Int Auslösung vom Empfänger → langsammeres Pulspausenverhältniss beim Senden → Empfänger erkennt das signal als eines von einem anderen Sender).

Eine meiner Steckdosen lassen sich leider nicht anlernen :-( warum auch immer, mit der Original Fernbedienung geht sie.

Momentan kämpfe ich noch ein wenig mit der Reichweite rum, hier bin ich offen für Empfehlungen, was ihr so an Antennen Verwendet, sowie die Ausrichtung und deren Länge.
Sowie Versorgungsspannung des Senders.

Nun zu meinen Fragen, kann man mehr als einen Arduino mit Firmata anschließen ?

Ich denke da an sowas wie:
Sender 1
define FIRMATA1 FRM 3030 [global]

define EMPF433_1 FRM_RCIN 2
attr EMPF433_1 IODev FIRMATA1

define ELRO1 IT 011F00000F FF F0
attr ELRO1 IODev SENDER433_1

Sender 2
define FIRMATA2 FRM 3031 [global]

define EMPF433_2 FRM_RCIN 2
attr EMPF433_2 IODev FIRMATA2

define ELRO2 IT 011000000F FF F0
attr ELRO2 IODev SENDER433_2
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Wzut am 14 Dezember 2015, 13:28:55
Zitat von: jdelphi am 14 Dezember 2015, 11:09:13
Nun zu meinen Fragen, kann man mehr als einen Arduino mit Firmata anschließen ?
define FIRMATA1 FRM 3030
define FIRMATA2 FRM 3031
Sicher geht das , hast schon richtig zwei verschiedene Ports vorgesehen.
Denk aber bitte auch daran die andere Portnummer (3031) auch im Arduino Sketch zu verwenden und neben einer anderen Source IP auch die gerne vergessene MAC Adresse zu  ändern :)
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: jdelphi am 20 Dezember 2015, 22:06:38
Okay das mit den 2 Firmata scheint schon einmal zu klappen.

Aber nun ein neues kleines Problem, das Autocreate legt ja schön fein neue Devices an, wenn ich mit der Original Fernbedienung was sende.
Ich hatte nun mal alle Devices gelöscht,und wollte alles neu anlernen.
Leider legt Autocreate keine neuen Devices mehr an, die es schon einmal angelegt hatte.
Wie kann ich Autocreate nun dazu überreden, das es doch so lieb ist, und mir die Devices nochmal erneut anlegt?
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: pinguin am 04 November 2016, 12:49:35
Hallo,

ich habe eine Frage zu diesem Thema in den Anfängerbereich gestellt:

https://forum.fhem.de/index.php/topic,60144.0.html (https://forum.fhem.de/index.php/topic,60144.0.html)

Ich denke aber, dass das u.U. hier besser aufgehoben ist. Vielleicht wäre es möglich, dass sich mal jemand ansieht.

Danke und viele Grüße

Torsten
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Meck am 29 November 2017, 16:41:42
Hallo,

gefällt mir was ihr hier gemacht habt. Jetzt bin ich gerade dabei das ganze auch aus zu probieren.

Folgende Randbedienungen habe ich.

1. Meine IDE ist aktuell 1.8.5
2. ConfigurableFirmata ist aktuell 2.10.0
   https://github.com/firmata/ConfigurableFirmata
3. RCSwitch ist aktuell 2.6.2
   https://github.com/sui77/rc-switch
4. Verwende aktuel einen Arduino Uno R3

Wenn ich jetzt dieses Setup verwende

Mir die vorherigen Beiträge anschaue und daraus dann folgenden Code ableite

/*
  Firmata is a generic protocol for communicating with microcontrollers
  from software on a host computer. It is intended to work with
  any host computer software package.

  To download a host software package, please clink on the following link
  to open the download page in your default browser.

  https://github.com/firmata/ConfigurableFirmata#firmata-client-libraries

  Copyright (C) 2006-2008 Hans-Christoph Steiner.  All rights reserved.
  Copyright (C) 2010-2011 Paul Stoffregen.  All rights reserved.
  Copyright (C) 2009 Shigeru Kobayashi.  All rights reserved.
  Copyright (C) 2013 Norbert Truchsess. All rights reserved.
  Copyright (C) 2014 Nicolas Panel. All rights reserved.
  Copyright (C) 2009-2017 Jeff Hoefs.  All rights reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  See file LICENSE.txt for further informations on licensing terms.

  Last updated: September 16th, 2017
*/

/*
README

This is an example use of ConfigurableFirmata. The easiest way to create a configuration is to
use http://firmatabuilder.com and select the communication transport and the firmata features
to include and an Arduino sketch (.ino) file will be generated and downloaded automatically.

To manually configure a sketch, copy this file and follow the instructions in the
ETHERNET CONFIGURATION OPTION (if you want to use Ethernet instead of Serial/USB) and
FIRMATA FEATURE CONFIGURATION sections in this file.
*/

#include "ConfigurableFirmata.h"

/*==============================================================================
* ETHERNET CONFIGURATION OPTION
*
* By default Firmata uses the Serial-port (over USB) of the Arduino. ConfigurableFirmata may also
* comunicate over ethernet using tcp/ip. To configure this sketch to use Ethernet instead of
* Serial, uncomment the approprate includes for your particular hardware. See STEPS 1 - 5 below.
* If you want to use Serial (over USB) then skip ahead to the FIRMATA FEATURE CONFIGURATION
* section further down in this file.
*
* If you enable Ethernet, you will need a Firmata client library with a network transport that can
* act as a server in order to establish a connection between ConfigurableFirmataEthernet and the
* Firmata host application (your application).
*
* To use ConfigurableFirmata with Ethernet you will need to have one of the following
* boards or shields:
*
*  - Arduino Ethernet shield (or clone)
*  - Arduino Ethernet board (or clone)
*  - Arduino Yun
*
*  If you are using an Arduino Ethernet shield you cannot use the following pins on
*  the following boards. Firmata will ignore any requests to use these pins:
*
*  - Arduino Uno or other ATMega328 boards: (D4, D10, D11, D12, D13)
*  - Arduino Mega: (D4, D10, D50, D51, D52, D53)
*  - Arduino Leonardo: (D4, D10)
*  - Arduino Due: (D4, D10)
*  - Arduino Zero: (D4, D10)
*
*  If you are using an ArduinoEthernet board, the following pins cannot be used (same as Uno):
*  - D4, D10, D11, D12, D13
*============================================================================*/

// STEP 1 [REQUIRED]
// Uncomment / comment the appropriate set of includes for your hardware (OPTION A, B or C)

/*
* OPTION A: Configure for Arduino Ethernet board or Arduino Ethernet shield (or clone)
*
* To configure ConfigurableFirmata to use the an Arduino Ethernet Shield or Arduino Ethernet
* Board (both use the same WIZ5100-based Ethernet controller), uncomment the SPI and Ethernet
* includes below.
*/
#include <SPI.h>
#include <Ethernet.h>


/*
* OPTION B: Configure for a board or shield using an ENC28J60-based Ethernet controller,
* uncomment out the UIPEthernet include below.
*
* The UIPEthernet-library can be downloaded
* from: https://github.com/ntruchsess/arduino_uip
*/
//#include <UIPEthernet.h>


/*
* OPTION C: Configure for Arduino Yun
*
* The Ethernet port on the Arduino Yun board can be used with Firmata in this configuration.
* To execute StandardFirmataEthernet on Yun uncomment the Bridge and YunClient includes below.
*
* NOTE: in order to compile for the Yun you will also need to comment out some of the includes
* and declarations in the FIRMATA FEATURE CONFIGURATION section later in this file. Including all
* features exceeds the RAM and Flash memory of the Yun. Comment out anything you don't need.
*
* On Yun there's no need to configure local_ip and mac address as this is automatically
* configured on the linux-side of Yun.
*
* Establishing a connection with the Yun may take several seconds.
*/
//#include <Bridge.h>
//#include <YunClient.h>

#if defined ethernet_h || defined UIPETHERNET_H || defined _YUN_CLIENT_H_
#define NETWORK_FIRMATA

// STEP 2 [REQUIRED for all boards and shields]
// replace with IP of the server you want to connect to, comment out if using 'remote_host'
#define remote_ip IPAddress(192, 168, 1, 35)
// OR replace with hostname of server you want to connect to, comment out if using 'remote_ip'
// #define remote_host "server.local"

// STEP 3 [REQUIRED unless using Arduino Yun]
// Replace with the port that your server is listening on
#define remote_port 3030

// STEP 4 [REQUIRED unless using Arduino Yun OR if not using DHCP]
// Replace with your board or Ethernet shield's IP address
// Comment out if you want to use DHCP
#define local_ip IPAddress(192, 168, 1, 172)

// STEP 5 [REQUIRED unless using Arduino Yun]
// replace with Ethernet shield mac. Must be unique for your network
const byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x07, 0x02};
#endif

/*==============================================================================
* FIRMATA FEATURE CONFIGURATION
*
* Comment out the include and declaration for any features that you do not need
* below.
*
* WARNING: Including all of the following features (especially if also using
* Ethernet) may exceed the Flash and/or RAM of lower memory boards such as the
* Arduino Uno or Leonardo.
*============================================================================*/

#include <DigitalInputFirmata.h>
DigitalInputFirmata digitalInput;

#include <DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;

//#include <AnalogInputFirmata.h>
//AnalogInputFirmata analogInput;

//#include <AnalogOutputFirmata.h>
//AnalogOutputFirmata analogOutput;

#include <Servo.h>
//#include <ServoFirmata.h>
//ServoFirmata servo;
// ServoFirmata depends on AnalogOutputFirmata
//#if defined ServoFirmata_h && ! defined AnalogOutputFirmata_h
//#error AnalogOutputFirmata must be included to use ServoFirmata
//#endif

#include <Wire.h>
//#include <I2CFirmata.h>
//I2CFirmata i2c;

//#include <OneWireFirmata.h>
//OneWireFirmata oneWire;

// StepperFirmata is deprecated as of ConfigurableFirmata v2.10.0. Please update your
// client implementation to use the new, more full featured and scalable AccelStepperFirmata.
//#include <StepperFirmata.h>
//StepperFirmata stepper;

//#include <AccelStepperFirmata.h>
//AccelStepperFirmata accelStepper;

//#include <SerialFirmata.h>
//SerialFirmata serial;

#include <RCSwitch.h>
#include <RCOutputFirmata.h>
RCOutputFirmata rcOutput;

#include <RCSwitch.h>
#include <RCInputFirmata.h>
RCInputFirmata rcInput;


#include <FirmataExt.h>
FirmataExt firmataExt;

//#include <FirmataScheduler.h>
//FirmataScheduler scheduler;

// To add Encoder support you must first install the FirmataEncoder and Encoder libraries:
// https://github.com/firmata/FirmataEncoder
// https://www.pjrc.com/teensy/td_libs_Encoder.html
// #include <Encoder.h>
// #include <FirmataEncoder.h>
// FirmataEncoder encoder;

/*===================================================================================
* END FEATURE CONFIGURATION - you should not need to change anything below this line
*==================================================================================*/

// dependencies. Do not comment out the following lines
#if defined AnalogOutputFirmata_h || defined ServoFirmata_h
#include <AnalogWrite.h>
#endif

#if defined AnalogInputFirmata_h || defined I2CFirmata_h || defined FirmataEncoder_h || defined RCInputFirmata_h
#include <FirmataReporting.h>
FirmataReporting reporting;
#endif

// dependencies for Network Firmata. Do not comment out.
#ifdef NETWORK_FIRMATA
#if defined remote_ip && defined remote_host
#error "cannot define both remote_ip and remote_host at the same time!"
#endif
#include <EthernetClientStream.h>
#ifdef _YUN_CLIENT_H_
YunClient client;
#else
EthernetClient client;
#endif
#if defined remote_ip && !defined remote_host
#ifdef local_ip
EthernetClientStream stream(client, local_ip, remote_ip, NULL, remote_port);
#else
EthernetClientStream stream(client, IPAddress(0, 0, 0, 0), remote_ip, NULL, remote_port);
#endif
#endif
#if !defined remote_ip && defined remote_host
#ifdef local_ip
EthernetClientStream stream(client, local_ip, IPAddress(0, 0, 0, 0), remote_host, remote_port);
#else
EthernetClientStream stream(client, IPAddress(0, 0, 0, 0), IPAddress(0, 0, 0, 0), remote_host, remote_port);
#endif
#endif
#endif

/*==============================================================================
* FUNCTIONS
*============================================================================*/

void systemResetCallback()
{
  // initialize a default state

  // pins with analog capability default to analog input
  // otherwise, pins default to digital output
  for (byte i = 0; i < TOTAL_PINS; i++) {
    if (IS_PIN_ANALOG(i)) {
#ifdef AnalogInputFirmata_h
      // turns off pull-up, configures everything
      Firmata.setPinMode(i, PIN_MODE_ANALOG);
#endif
    } else if (IS_PIN_DIGITAL(i)) {
#ifdef DigitalOutputFirmata_h
      // sets the output to 0, configures portConfigInputs
      Firmata.setPinMode(i, OUTPUT);
#endif
    }
  }

#ifdef FirmataExt_h
  firmataExt.reset();
#endif
}

/*==============================================================================
* SETUP()
*============================================================================*/

void setup()
{
  /*
   * ETHERNET SETUP
   */
#ifdef NETWORK_FIRMATA
#ifdef _YUN_CLIENT_H_
  Bridge.begin();
#else
#ifdef local_ip
  Ethernet.begin((uint8_t *)mac, local_ip); //start Ethernet
#else
  Ethernet.begin((uint8_t *)mac); //start Ethernet using dhcp
#endif
#endif
  delay(1000);
#endif

  /*
   * FIRMATA SETUP
   */
  Firmata.setFirmwareVersion(FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION);

#ifdef FirmataExt_h
#ifdef DigitalInputFirmata_h
  firmataExt.addFeature(digitalInput);
#endif
#ifdef DigitalOutputFirmata_h
  firmataExt.addFeature(digitalOutput);
#endif
#ifdef AnalogInputFirmata_h
  firmataExt.addFeature(analogInput);
#endif
#ifdef AnalogOutputFirmata_h
  firmataExt.addFeature(analogOutput);
#endif
#ifdef ServoFirmata_h
  firmataExt.addFeature(servo);
#endif
#ifdef I2CFirmata_h
  firmataExt.addFeature(i2c);
#endif
#ifdef OneWireFirmata_h
  firmataExt.addFeature(oneWire);
#endif
#ifdef StepperFirmata_h
  firmataExt.addFeature(stepper);
#endif
#ifdef AccelStepperFirmata_h
  firmataExt.addFeature(accelStepper);
#endif
#ifdef SerialFirmata_h
  firmataExt.addFeature(serial);
#endif
#ifdef RCOutputFirmata_h
  firmataExt.addFeature(rcOutput);
#endif
#ifdef RCInputFirmata_h
  firmataExt.addFeature(rcInput);
#endif
#ifdef FirmataReporting_h
  firmataExt.addFeature(reporting);
#endif
#ifdef FirmataScheduler_h
  firmataExt.addFeature(scheduler);
#endif
#ifdef FirmataEncoder_h
  firmataExt.addFeature(encoder);
#endif
#endif
  /* systemResetCallback is declared here (in ConfigurableFirmata.ino) */
  Firmata.attach(SYSTEM_RESET, systemResetCallback);

  // Network Firmata communicates with Ethernet-shields over SPI. Therefor all
  // SPI-pins must be set to PIN_MODE_IGNORE. Otherwise Firmata would break SPI-communication.
  // add Pin 10 and configure pin 53 as output if using a MEGA with Ethernetshield.
  // No need to ignore pin 10 on MEGA with ENC28J60, as here pin 53 should be connected to SS:
#ifdef NETWORK_FIRMATA

  #ifndef _YUN_CLIENT_H_
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i = 0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4 == i  // SD Card on Ethernet shield uses pin 4 for SS
        || 10 == i // Ethernet-shield uses pin 10 for SS
       ) {
      Firmata.setPinMode(i, PIN_MODE_IGNORE);
    }
  }
  //  pinMode(PIN_TO_DIGITAL(53), OUTPUT); configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT); // switch off SD-card bypassing Firmata
  digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;
  #endif

  #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    pinMode(PIN_TO_DIGITAL(53), OUTPUT); // configure hardware SS as output on MEGA
  #endif

  // start up Network Firmata:
  Firmata.begin(stream);
#else
  // Uncomment to save a couple of seconds by disabling the startup blink sequence.
  // Firmata.disableBlinkVersion();

  // start up the default Firmata using Serial interface:
  Firmata.begin(57600);
#endif
  systemResetCallback();  // reset to default config
}

/*==============================================================================
* LOOP()
*============================================================================*/
void loop()
{
#ifdef DigitalInputFirmata_h
  /* DIGITALREAD - as fast as possible, check for changes and output them to the
   * stream buffer using Firmata.write()  */
  digitalInput.report();
#endif

  /* STREAMREAD - processing incoming message as soon as possible, while still
   * checking digital inputs.  */
  while (Firmata.available()) {
    Firmata.processInput();
#ifdef FirmataScheduler_h
    if (!Firmata.isParsingMessage()) {
      goto runtasks;
    }
  }
  if (!Firmata.isParsingMessage()) {
runtasks: scheduler.runTasks();
#endif
  }

  /* SEND STREAM WRITE BUFFER - TO DO: make sure that the stream buffer doesn't go over
   * 60 bytes. use a timer to sending an event character every 4 ms to
   * trigger the buffer to dump. */

#ifdef FirmataReporting_h
  if (reporting.elapsed()) {
#ifdef AnalogInputFirmata_h
    /* ANALOGREAD - do all analogReads() at the configured sampling interval */
    analogInput.report();
#endif
#ifdef I2CFirmata_h
    // report i2c data for all device with read continuous mode enabled
    i2c.report();
#endif
#ifdef FirmataEncoder_h
    // report encoders positions if reporting enabled.
    encoder.report();
#endif
#ifdef EncoderFirmata_h
    // report encoders positions if reporting enabled.
    encoder.report();
#endif
#ifdef RCInputFirmata_h
    rcInput.report();
#endif
  }
#endif
#ifdef StepperFirmata_h
  stepper.update();
#endif
#ifdef AccelStepperFirmata_h
  accelStepper.update();
#endif
#ifdef SerialFirmata_h
  serial.update();
#endif

#if defined NETWORK_FIRMATA && !defined local_ip &&!defined _YUN_CLIENT_H_
  // only necessary when using DHCP, ensures local IP is updated appropriately if it changes
  if (Ethernet.maintain()) {
    stream.maintain(Ethernet.localIP());
  }
#endif
}


bekomme ich folgende Fehlermeldung:


/home/xxx/Arduino/RCGateway2/RCGateway2.ino:190:29: fatal error: RCOutputFirmata.h: No such file or directory
#include <RCOutputFirmata.h>
                             ^
compilation terminated.
exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.


also Schlussfolgere ich, dass mir folgende Liberys feheln.

#include <RCOutputFirmata.h>
#include <RCInputFirmata.h>


Jetzt frage ich auch was habe ich über sehen?

Vielen Dank für eure Unterstützung.

Wenn ich es zum laufen gebracht habe, werde ich mein Setup nochmals neu dokumentieren und hier zur Verfügung stellen.

Gruß
Meck


Edit:Antwort wohl überlesen #197 ist die RcFirmata die ich überlesen habe. Werde es ausprobieren. Und Rückmeldung gebe.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 29 November 2017, 18:41:28
Dir fehlt wahrscheinlich noch RCSwitchFirmata (https://forum.fhem.de/index.php/topic,22320.msg215634.html#msg215634).
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Meck am 03 Dezember 2017, 21:13:28
Christian. Du hattest recht.
So nach mehreren versuchen habe ich es immer noch nicht zum laufen bekommen.

Abgespecktes Ziel ist es zunächst über ein über USB angeschlossenen Arduino Mini Pollin Funksteckdosen zuschalten bzw. die Fernbedienung zu empfangen .

Da ich es nicht geschafft habe, bitte ich euch um Unterstützung.  Am besten ich beschreibe einfach mal was ich gemacht habe. Da seid dem hier hier das gemacht habt sich auch bei Ardunino und FHEM etwas getan hat.

1. Meine IDE ist  1.8.5 unter Linux
    Mein Arduino ist ein Mini China clone mit CH340G Chip
2. ConfigurableFirmata ist 2.10.0
   https://github.com/firmata/ConfigurableFirmata
3. RCSwitch ist  2.6.2
   https://github.com/sui77/rc-switch
4. Verwedung der RCSwitchFirmata aus Post #197
5. Mein FHEM ist Rev  13447


Damit ich den Code kompilieren konnte musste ich die Dateien RCOutputFirmata.h RCInputFirmata.h aus der RCSwitchFirmata apassen.

#include <utility/FirmataFeature.h>

habe ich wie folgt geändert.

#include <FirmataFeature.h>

Danach habe ich die Dateien RCInputFirmata.cpp  RCInputFirmata.h  RCOutputFirmata.cpp  RCOutputFirmata.h in das Verzeichnis /home/[USER]/Arduino/libraries/ConfigurableFirmata/src/ kopiert.

Danach hab ich das angepasst Beispiel Sketch auf den Arduino gespielt.

/*
  Firmata is a generic protocol for communicating with microcontrollers
  from software on a host computer. It is intended to work with
  any host computer software package.

  To download a host software package, please clink on the following link
  to open the download page in your default browser.

  https://github.com/firmata/ConfigurableFirmata#firmata-client-libraries

  Copyright (C) 2006-2008 Hans-Christoph Steiner.  All rights reserved.
  Copyright (C) 2010-2011 Paul Stoffregen.  All rights reserved.
  Copyright (C) 2009 Shigeru Kobayashi.  All rights reserved.
  Copyright (C) 2013 Norbert Truchsess. All rights reserved.
  Copyright (C) 2014 Nicolas Panel. All rights reserved.
  Copyright (C) 2009-2017 Jeff Hoefs.  All rights reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  See file LICENSE.txt for further informations on licensing terms.

  Last updated: September 16th, 2017
*/

/*
README

This is an example use of ConfigurableFirmata. The easiest way to create a configuration is to
use http://firmatabuilder.com and select the communication transport and the firmata features
to include and an Arduino sketch (.ino) file will be generated and downloaded automatically.

To manually configure a sketch, copy this file and follow the instructions in the
ETHERNET CONFIGURATION OPTION (if you want to use Ethernet instead of Serial/USB) and
FIRMATA FEATURE CONFIGURATION sections in this file.
*/

#include "ConfigurableFirmata.h"

/*==============================================================================
* ETHERNET CONFIGURATION OPTION
*
* By default Firmata uses the Serial-port (over USB) of the Arduino. ConfigurableFirmata may also
* comunicate over ethernet using tcp/ip. To configure this sketch to use Ethernet instead of
* Serial, uncomment the approprate includes for your particular hardware. See STEPS 1 - 5 below.
* If you want to use Serial (over USB) then skip ahead to the FIRMATA FEATURE CONFIGURATION
* section further down in this file.
*
* If you enable Ethernet, you will need a Firmata client library with a network transport that can
* act as a server in order to establish a connection between ConfigurableFirmataEthernet and the
* Firmata host application (your application).
*
* To use ConfigurableFirmata with Ethernet you will need to have one of the following
* boards or shields:
*
*  - Arduino Ethernet shield (or clone)
*  - Arduino Ethernet board (or clone)
*  - Arduino Yun
*
*  If you are using an Arduino Ethernet shield you cannot use the following pins on
*  the following boards. Firmata will ignore any requests to use these pins:
*
*  - Arduino Uno or other ATMega328 boards: (D4, D10, D11, D12, D13)
*  - Arduino Mega: (D4, D10, D50, D51, D52, D53)
*  - Arduino Leonardo: (D4, D10)
*  - Arduino Due: (D4, D10)
*  - Arduino Zero: (D4, D10)
*
*  If you are using an ArduinoEthernet board, the following pins cannot be used (same as Uno):
*  - D4, D10, D11, D12, D13
*============================================================================*/

// STEP 1 [REQUIRED]
// Uncomment / comment the appropriate set of includes for your hardware (OPTION A, B or C)

/*
* OPTION A: Configure for Arduino Ethernet board or Arduino Ethernet shield (or clone)
*
* To configure ConfigurableFirmata to use the an Arduino Ethernet Shield or Arduino Ethernet
* Board (both use the same WIZ5100-based Ethernet controller), uncomment the SPI and Ethernet
* includes below.
*/
//#include <SPI.h>
//#include <Ethernet.h>


/*
* OPTION B: Configure for a board or shield using an ENC28J60-based Ethernet controller,
* uncomment out the UIPEthernet include below.
*
* The UIPEthernet-library can be downloaded
* from: https://github.com/ntruchsess/arduino_uip
*/
//#include <UIPEthernet.h>


/*
* OPTION C: Configure for Arduino Yun
*
* The Ethernet port on the Arduino Yun board can be used with Firmata in this configuration.
* To execute StandardFirmataEthernet on Yun uncomment the Bridge and YunClient includes below.
*
* NOTE: in order to compile for the Yun you will also need to comment out some of the includes
* and declarations in the FIRMATA FEATURE CONFIGURATION section later in this file. Including all
* features exceeds the RAM and Flash memory of the Yun. Comment out anything you don't need.
*
* On Yun there's no need to configure local_ip and mac address as this is automatically
* configured on the linux-side of Yun.
*
* Establishing a connection with the Yun may take several seconds.
*/
//#include <Bridge.h>
//#include <YunClient.h>

#if defined ethernet_h || defined UIPETHERNET_H || defined _YUN_CLIENT_H_
#define NETWORK_FIRMATA

// STEP 2 [REQUIRED for all boards and shields]
// replace with IP of the server you want to connect to, comment out if using 'remote_host'
#define remote_ip IPAddress(192, 168, 1, 75)
// OR replace with hostname of server you want to connect to, comment out if using 'remote_ip'
// #define remote_host "server.local"

// STEP 3 [REQUIRED unless using Arduino Yun]
// Replace with the port that your server is listening on
#define remote_port 3030

// STEP 4 [REQUIRED unless using Arduino Yun OR if not using DHCP]
// Replace with your board or Ethernet shield's IP address
// Comment out if you want to use DHCP
#define local_ip IPAddress(192, 168, 1, 172)

// STEP 5 [REQUIRED unless using Arduino Yun]
// replace with Ethernet shield mac. Must be unique for your network
const byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x07, 0x02};
#endif

/*==============================================================================
* FIRMATA FEATURE CONFIGURATION
*
* Comment out the include and declaration for any features that you do not need
* below.
*
* WARNING: Including all of the following features (especially if also using
* Ethernet) may exceed the Flash and/or RAM of lower memory boards such as the
* Arduino Uno or Leonardo.
*============================================================================*/

#include <DigitalInputFirmata.h>
DigitalInputFirmata digitalInput;

#include <DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;

//#include <AnalogInputFirmata.h>
//AnalogInputFirmata analogInput;

//#include <AnalogOutputFirmata.h>
//AnalogOutputFirmata analogOutput;

#include <Servo.h>
//#include <ServoFirmata.h>
//ServoFirmata servo;
// ServoFirmata depends on AnalogOutputFirmata
//#if defined ServoFirmata_h && ! defined AnalogOutputFirmata_h
//#error AnalogOutputFirmata must be included to use ServoFirmata
//#endif

#include <Wire.h>
//#include <I2CFirmata.h>
//I2CFirmata i2c;

//#include <OneWireFirmata.h>
//OneWireFirmata oneWire;

// StepperFirmata is deprecated as of ConfigurableFirmata v2.10.0. Please update your
// client implementation to use the new, more full featured and scalable AccelStepperFirmata.
//#include <StepperFirmata.h>
//StepperFirmata stepper;

//#include <AccelStepperFirmata.h>
//AccelStepperFirmata accelStepper;

//#include <SerialFirmata.h>
//SerialFirmata serial;

#include <RCSwitch.h>
#include <RCOutputFirmata.h>
RCOutputFirmata rcOutput;

#include <RCSwitch.h>
#include <RCInputFirmata.h>
RCInputFirmata rcInput;


#include <FirmataExt.h>
FirmataExt firmataExt;

//#include <FirmataScheduler.h>
//FirmataScheduler scheduler;

// To add Encoder support you must first install the FirmataEncoder and Encoder libraries:
// https://github.com/firmata/FirmataEncoder
// https://www.pjrc.com/teensy/td_libs_Encoder.html
// #include <Encoder.h>
// #include <FirmataEncoder.h>
// FirmataEncoder encoder;

/*===================================================================================
* END FEATURE CONFIGURATION - you should not need to change anything below this line
*==================================================================================*/

// dependencies. Do not comment out the following lines
#if defined AnalogOutputFirmata_h || defined ServoFirmata_h
#include <AnalogWrite.h>
#endif

#if defined AnalogInputFirmata_h || defined I2CFirmata_h || defined FirmataEncoder_h || defined RCInputFirmata_h
#include <FirmataReporting.h>
FirmataReporting reporting;
#endif

// dependencies for Network Firmata. Do not comment out.
#ifdef NETWORK_FIRMATA
#if defined remote_ip && defined remote_host
#error "cannot define both remote_ip and remote_host at the same time!"
#endif
#include <EthernetClientStream.h>
#ifdef _YUN_CLIENT_H_
YunClient client;
#else
EthernetClient client;
#endif
#if defined remote_ip && !defined remote_host
#ifdef local_ip
EthernetClientStream stream(client, local_ip, remote_ip, NULL, remote_port);
#else
EthernetClientStream stream(client, IPAddress(0, 0, 0, 0), remote_ip, NULL, remote_port);
#endif
#endif
#if !defined remote_ip && defined remote_host
#ifdef local_ip
EthernetClientStream stream(client, local_ip, IPAddress(0, 0, 0, 0), remote_host, remote_port);
#else
EthernetClientStream stream(client, IPAddress(0, 0, 0, 0), IPAddress(0, 0, 0, 0), remote_host, remote_port);
#endif
#endif
#endif

/*==============================================================================
* FUNCTIONS
*============================================================================*/

void systemResetCallback()
{
  // initialize a default state

  // pins with analog capability default to analog input
  // otherwise, pins default to digital output
  for (byte i = 0; i < TOTAL_PINS; i++) {
    if (IS_PIN_ANALOG(i)) {
#ifdef AnalogInputFirmata_h
      // turns off pull-up, configures everything
      Firmata.setPinMode(i, PIN_MODE_ANALOG);
#endif
    } else if (IS_PIN_DIGITAL(i)) {
#ifdef DigitalOutputFirmata_h
      // sets the output to 0, configures portConfigInputs
      Firmata.setPinMode(i, OUTPUT);
#endif
    }
  }

#ifdef FirmataExt_h
  firmataExt.reset();
#endif
}

/*==============================================================================
* SETUP()
*============================================================================*/

void setup()
{
  /*
   * ETHERNET SETUP
   */
#ifdef NETWORK_FIRMATA
#ifdef _YUN_CLIENT_H_
  Bridge.begin();
#else
#ifdef local_ip
  Ethernet.begin((uint8_t *)mac, local_ip); //start Ethernet
#else
  Ethernet.begin((uint8_t *)mac); //start Ethernet using dhcp
#endif
#endif
  delay(1000);
#endif

  /*
   * FIRMATA SETUP
   */
  Firmata.setFirmwareVersion(FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION);

#ifdef FirmataExt_h
#ifdef DigitalInputFirmata_h
  firmataExt.addFeature(digitalInput);
#endif
#ifdef DigitalOutputFirmata_h
  firmataExt.addFeature(digitalOutput);
#endif
#ifdef AnalogInputFirmata_h
  firmataExt.addFeature(analogInput);
#endif
#ifdef AnalogOutputFirmata_h
  firmataExt.addFeature(analogOutput);
#endif
#ifdef ServoFirmata_h
  firmataExt.addFeature(servo);
#endif
#ifdef I2CFirmata_h
  firmataExt.addFeature(i2c);
#endif
#ifdef OneWireFirmata_h
  firmataExt.addFeature(oneWire);
#endif
#ifdef StepperFirmata_h
  firmataExt.addFeature(stepper);
#endif
#ifdef AccelStepperFirmata_h
  firmataExt.addFeature(accelStepper);
#endif
#ifdef SerialFirmata_h
  firmataExt.addFeature(serial);
#endif
#ifdef RCOutputFirmata_h
  firmataExt.addFeature(rcOutput);
#endif
#ifdef RCInputFirmata_h
  firmataExt.addFeature(rcInput);
#endif
#ifdef FirmataReporting_h
  firmataExt.addFeature(reporting);
#endif
#ifdef FirmataScheduler_h
  firmataExt.addFeature(scheduler);
#endif
#ifdef FirmataEncoder_h
  firmataExt.addFeature(encoder);
#endif
#endif
  /* systemResetCallback is declared here (in ConfigurableFirmata.ino) */
  Firmata.attach(SYSTEM_RESET, systemResetCallback);

  // Network Firmata communicates with Ethernet-shields over SPI. Therefor all
  // SPI-pins must be set to PIN_MODE_IGNORE. Otherwise Firmata would break SPI-communication.
  // add Pin 10 and configure pin 53 as output if using a MEGA with Ethernetshield.
  // No need to ignore pin 10 on MEGA with ENC28J60, as here pin 53 should be connected to SS:
#ifdef NETWORK_FIRMATA

  #ifndef _YUN_CLIENT_H_
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i = 0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4 == i  // SD Card on Ethernet shield uses pin 4 for SS
        || 10 == i // Ethernet-shield uses pin 10 for SS
       ) {
      Firmata.setPinMode(i, PIN_MODE_IGNORE);
    }
  }
  //  pinMode(PIN_TO_DIGITAL(53), OUTPUT); configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT); // switch off SD-card bypassing Firmata
  digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;
  #endif

  #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    pinMode(PIN_TO_DIGITAL(53), OUTPUT); // configure hardware SS as output on MEGA
  #endif

  // start up Network Firmata:
  Firmata.begin(stream);
#else
  // Uncomment to save a couple of seconds by disabling the startup blink sequence.
  // Firmata.disableBlinkVersion();

  // start up the default Firmata using Serial interface:
  Firmata.begin(57600);
#endif
  systemResetCallback();  // reset to default config
}

/*==============================================================================
* LOOP()
*============================================================================*/
void loop()
{
#ifdef DigitalInputFirmata_h
  /* DIGITALREAD - as fast as possible, check for changes and output them to the
   * stream buffer using Firmata.write()  */
  digitalInput.report();
#endif

  /* STREAMREAD - processing incoming message as soon as possible, while still
   * checking digital inputs.  */
  while (Firmata.available()) {
    Firmata.processInput();
#ifdef FirmataScheduler_h
    if (!Firmata.isParsingMessage()) {
      goto runtasks;
    }
  }
  if (!Firmata.isParsingMessage()) {
runtasks: scheduler.runTasks();
#endif
  }

  /* SEND STREAM WRITE BUFFER - TO DO: make sure that the stream buffer doesn't go over
   * 60 bytes. use a timer to sending an event character every 4 ms to
   * trigger the buffer to dump. */

#ifdef FirmataReporting_h
  if (reporting.elapsed()) {
#ifdef AnalogInputFirmata_h
    /* ANALOGREAD - do all analogReads() at the configured sampling interval */
    analogInput.report();
#endif
#ifdef I2CFirmata_h
    // report i2c data for all device with read continuous mode enabled
    i2c.report();
#endif
#ifdef FirmataEncoder_h
    // report encoders positions if reporting enabled.
    encoder.report();
#endif
#ifdef EncoderFirmata_h
    // report encoders positions if reporting enabled.
    encoder.report();
#endif
#ifdef RCInputFirmata_h
    rcInput.report();
#endif
  }
#endif
#ifdef StepperFirmata_h
  stepper.update();
#endif
#ifdef AccelStepperFirmata_h
  accelStepper.update();
#endif
#ifdef SerialFirmata_h
  serial.update();
#endif

#if defined NETWORK_FIRMATA && !defined local_ip &&!defined _YUN_CLIENT_H_
  // only necessary when using DHCP, ensures local IP is updated appropriately if it changes
  if (Ethernet.maintain()) {
    stream.maintain(Ethernet.localIP());
  }
#endif
}


Folgende Info bekomme ich von der IDE

In file included from /home/[USER]/Arduino/RCGateway2/RCGateway2.ino:163:0:
/home/[USER]/Downloads/arduino-1.8.5/libraries/Servo/src/Servo.h:84:0: warning: "MAX_SERVOS" redefined
#define MAX_SERVOS   (_Nbr_16timers  * SERVOS_PER_TIMER)
^
In file included from /home/[USER]/Arduino/libraries/ConfigurableFirmata/src/ConfigurableFirmata.h:18:0,
                 from /home/[USER]/Arduino/RCGateway2/RCGateway2.ino:40:
/home/[USER]/Arduino/libraries/ConfigurableFirmata/src/utility/Boards.h:33:0: note: this is the location of the previous definition
#define MAX_SERVOS 0
^
In file included from /home/[USER]/Arduino/libraries/ConfigurableFirmata/src/OneWireFirmata.cpp:17:0:
/home/[USER]/Arduino/libraries/ConfigurableFirmata/src/OneWireFirmata.h:38:0: warning: "ONEWIRE_CRC" redefined
#define ONEWIRE_CRC 0 //for OneWire.h: crc-functions are not used by Firmata
^
In file included from /home/[USER]/Arduino/libraries/ConfigurableFirmata/src/OneWireFirmata.h:18:0,
                 from /home/meck/Arduino/libraries/ConfigurableFirmata/src/OneWireFirmata.cpp:17:
/home/[USER]/Arduino/libraries/ConfigurableFirmata/src/utility/OneWire.h:30:0: note: this is the location of the previous definition
#define ONEWIRE_CRC 1
^
Der Sketch verwendet 11566 Bytes (37%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 1091 Bytes (53%) des dynamischen Speichers, 957 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.



Folgende Dateien habe ich in das Verzeichnis /opt/fhem/FHEM/ Kopiert
15_FRM_RC.pm
20_FRM_RCIN.pm
20_FRM_RCOUT.pm

Danach in FHEM

reload 15_FRM_RC.pm
reload 20_FRM_RCOUT.pm
reload 20_FRM_RCIN.pm


Da das define vom SENDER433n auch bei mir nicht geklappt hat habe ich die config manuell angepasst und das System neu gestartet

opt/fhem/fhem.cfg


define RCSwitchGateWay FRM 3030 global
attr RCSwitchGateWay model mini
define SENDER433n FRM_RCOUT 7
attr SENDER433n IODev  RCSwitchGateWay
attr SENDER433n defaultBitCount 24
define EMPF433n FRM_RCIN 2
attr EMPF433n IODev  RCSwitchGateWay

Folgende Loggs wurden nach dem Start geschrieben

2017.12.01 21:07:47 1: PERL WARNING: Constant subroutine main::RC_ATTRIBUTES redefined at /usr/share/perl/5.22/constant.pm line 171.
2017.12.01 21:07:47 1: PERL WARNING: Constant subroutine main::RC_TRISTATE_BIT_VALUES redefined at /usr/share/perl/5.22/constant.pm line 171.
2017.12.01 21:07:47 1: PERL WARNING: Constant subroutine main::RC_TRISTATE_CHARS redefined at /usr/share/perl/5.22/constant.pm line 171.
2017.12.01 21:07:47 1: PERL WARNING: Constant subroutine main::RC_TRISTATE_BITS redefined at /usr/share/perl/5.22/constant.pm line 171.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_Initialize redefined at ./FHEM/15_FRM_RC.pm line 37.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_Define redefined at ./FHEM/15_FRM_RC.pm line 42.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_Undefine redefined at ./FHEM/15_FRM_RC.pm line 51.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_Init redefined at ./FHEM/15_FRM_RC.pm line 61.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_Notify redefined at ./FHEM/15_FRM_RC.pm line 87.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_Attr redefined at ./FHEM/15_FRM_RC.pm line 116.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_register_observer redefined at ./FHEM/15_FRM_RC.pm line 139.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_unregister_observer redefined at ./FHEM/15_FRM_RC.pm line 162.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_apply_attribute redefined at ./FHEM/15_FRM_RC.pm line 169.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_set_parameter redefined at ./FHEM/15_FRM_RC.pm line 207.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_observe_sysex redefined at ./FHEM/15_FRM_RC.pm line 213.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_get_tristate_code redefined at ./FHEM/15_FRM_RC.pm line 247.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_get_tristate_bits redefined at ./FHEM/15_FRM_RC.pm line 254.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_get_tristate_byte redefined at ./FHEM/15_FRM_RC.pm line 259.
2017.12.01 21:07:47 1: PERL WARNING: Subroutine FRM_RC_send_message redefined at ./FHEM/15_FRM_RC.pm line 267.
2017.12.01 21:08:10 1: PERL WARNING: Constant subroutine main::RCIN_PARAMETERS redefined at /usr/share/perl/5.22/constant.pm line 171.
2017.12.01 21:08:10 1: PERL WARNING: Constant subroutine main::RCIN_PARAMETER_NAMES redefined at /usr/share/perl/5.22/constant.pm line 171.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_Initialize redefined at ./FHEM/20_FRM_RCIN.pm line 30.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_Init redefined at ./FHEM/20_FRM_RCIN.pm line 50.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_Notify redefined at ./FHEM/20_FRM_RCIN.pm line 55.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_Attr redefined at ./FHEM/20_FRM_RCIN.pm line 61.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_handle_rc_response redefined at ./FHEM/20_FRM_RCIN.pm line 68.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_notify redefined at ./FHEM/20_FRM_RCIN.pm line 92.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_long_to_tristate_code redefined at ./FHEM/20_FRM_RCIN.pm line 140.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_get_attributes redefined at ./FHEM/20_FRM_RCIN.pm line 150.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_get_internal_value redefined at ./FHEM/20_FRM_RCIN.pm line 155.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_get_user_value redefined at ./FHEM/20_FRM_RCIN.pm line 163.
2017.12.01 21:08:10 1: PERL WARNING: Subroutine FRM_RCIN_is_rawdata_enabled redefined at ./FHEM/20_FRM_RCIN.pm line 171.


Leider funktioniert dieses Setup nicht.
Vielen Dank für eure Unterstützung.


Gruß
Meck
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 03 Dezember 2017, 22:11:38
Da fallen mir verschiedene Dinge ein bzw. auf.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Meck am 04 Dezember 2017, 21:37:35
Vielen Dank Christian. danke für deine Hilfe mit Punkt 1. Hattest du recht. 
Bei Punkt 3 muss ich sagen das in der RCSwitchFirmata nur die bereits von mir genannten Dateien sind.  Jetzt vermute ich auch wie du, dass das FHEM Modul sowie die Configurable Firmata nicht mehr zusammen passen.

2017.12.04 21:11:37 3: Setting RCSwitchGateWay serial parameters to 57600,8,N,1
2017.12.04 21:11:40 3: querying Firmata Firmware Version
2017.12.04 21:11:41 3: querying Firmata Firmware Version
2017.12.04 21:11:42 3: querying Firmata Firmware Version
2017.12.04 21:11:42 3: no response from Firmata, closing DevIO
2017.12.04 21:11:42 1: /dev/ttyUSB0 disconnected, waiting to reappear (RCSwitchGateWay)
2017.12.04 21:11:52 3: Setting RCSwitchGateWay serial parameters to 57600,8,N,1
2017.12.04 21:11:52 1: PERL WARNING: Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 206.
2017.12.04 21:11:55 3: querying Firmata Firmware Version
2017.12.04 21:11:56 3: querying Firmata Firmware Version
2017.12.04 21:11:56 3: Firmata Firmware Version: RCGateway2.ino V_2_10
2017.12.04 21:11:56 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 632.
2017.12.04 21:11:56 1: PERL WARNING: Use of uninitialized value $wbuf in string eq at /usr/lib/i386-linux-gnu/perl5/5.22/Device/SerialPort.pm line 1729.
2017.12.04 21:11:57 2: error initializing 'EMPF433n': Unsupported firmata protocol version V_2_10. Supported versions: V_2_06 V_2_05 V_2_04 V_2_03 V_2_02 V_2_01
2017.12.04 21:11:57 2: error initializing 'SENDER433n': Unsupported firmata protocol version V_2_10. Supported versions: V_2_06 V_2_05 V_2_04 V_2_03 V_2_02 V_2_01
2017.12.04 21:11:57 1: /dev/ttyUSB0 reappeared (RCSwitchGateWay)


Schade jetzt hört aufgrund meines geringen wissen meine Möglichkeiten auf.

Vielleicht werde ich es noch mal in der Zukunft aufgreifen wenn ich mein Wissen ausgebaut habe.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 04 Dezember 2017, 22:39:53
Probier mal, in der Datei ConfigurableFirmata.h (https://github.com/firmata/ConfigurableFirmata/blob/75073b90aa881116e37086ebb4a84d58e60d0d9f/src/ConfigurableFirmata.h#L35) die FIRMATA_FIRMWARE_MINOR_VERSION von 10 auf 6 zu ändern. Das hat in der Vergangenheit schon einem anderen Leidensgenossen geholfen (https://forum.fhem.de/index.php/topic,22320.msg215547.html#msg215547).
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: jensb am 19 Dezember 2017, 22:03:23
Das Problem mit ConfigurableFirmata oberhalb von Version 2.6 und der Kompatibilität mit FHEM ist mittlerweile leider schon mehr als 2 Jahre alt und die Lösung fast genauso. Die in diesem Thread beschriebenen Ansätze sind pragmatisch, auf eine andere Lösung wird hier (https://forum.fhem.de/index.php/topic,51514.msg432009.html#msg432009) bzw. hier (https://github.com/ntruchsess/perl-firmata/issues/26) verwiesen.

Maintainer von Firmata ist Norbert - werde versuchen ihn zu kontaktieren, damit die Updates der Firmata-Module und der Firmata-Treiber eingecheckt werden.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 07 Januar 2018, 17:44:50
jensb hat vor einigen Tagen die mit FHEM ausgelieferte Firmata-Bibliothek aktualisiert (https://forum.fhem.de/index.php/topic,81815) - vielen Dank dafür. Nach einem FHEM update ist es nun möglich, mit neueren Firmata-Versionen als 2.6 zu arbeiten.

Die hier im Forum veröffentlichte RCSwitchFirmata-Version vom 05.11.2014 (https://forum.fhem.de/index.php/topic,22320.msg215634.html#msg215634) (auf Basis von ConfigurableFirmata 2.6 und rc-switch 2.5) habe ich als Version 1.0.0 (https://github.com/git-developer/RCSwitchFirmata/releases/tag/v1.0.0) veröffentlicht.

Außerdem habe ich RCSwitchFirmata (https://github.com/git-developer/RCSwitchFirmata) grundlegend überarbeitet und die Version 2.0.0 (https://github.com/git-developer/RCSwitchFirmata/releases/tag/v2.0.0) veröffentlicht. Diese Version erlaubt den Einsatz der aktuellen ConfigurableFirmata (https://github.com/firmata/ConfigurableFirmata)-Version 2.10.0 (https://github.com/firmata/ConfigurableFirmata/releases/tag/2.10.0) und die automatische Aktualisierung (https://github.com/git-developer/RCSwitchFirmata/blob/v2.0.0/FHEM/README.md) der FHEM-Module über den FHEM-Update-Mechanismus. Details zur Version 2.0.0 befinden sich in der zugehörigen README (https://github.com/git-developer/RCSwitchFirmata/blob/v2.0.0/README.md)-Datei.

Wer die Version 1.0.0 bereits im Einsatz hat, kann dies auch beibehalten und muss keine Aktualisierung durchführen. Die Nachteile der Version 1.0.0 sind in erster Linie die fehlende Möglichkeit zur Nutzung aktueller Firmata-Versionen und das manuelle Kopieren der FHEM-Module und Arduino-Bibliotheken an die passenden Stellen.

Die Versionen 1.0.0 und 2.0.0 sind inkompatibel zueinander, d.h. FHEM-Module und Arduino-Code müssen in derselben Version eingesetzt werden.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Meck am 19 Januar 2018, 20:58:08
Super das hört sich ja sehr gut an. Schon mal vielen Dank an alle!!!

Hab es auf die schnelle jetzt nicht hin bekommen, soll aber nichts heißen. Werde es aber morgen noch mal in ruhe anschauen.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Meck am 23 Januar 2018, 21:24:08
Hallo christian.

super vielen Dank für deine Arbeit. leider hat es bei mir nicht geklappt. Habe soweit alles wie in deiner Anleitung https://github.com/git-developer/RCSwitchFirmata/blob/v2.0.0/README.md (https://github.com/git-developer/RCSwitchFirmata/blob/v2.0.0/README.md) gemacht.

Wenn ich die RCSwitchFirmata Confiuartion vornehme
define rc_sender FRM_RCOUT 11
erhalte ich folgende Antwort
Unknown module FRM_RCOUT
Beim manuellen Update
update https://raw.githubusercontent.com/git-developer/RCSwitchFirmata/v2.0.0/FHEM/controls_frm_rc.txt
erhalte ich
fhem
nothing to do...

frm_rc
nothing to do...


Schaue ich in das Verzeichnis /opt/fhem/FHEM kann ich die Module nicht finden. Kann es sein, dass ich was falsch mache? Wenn ja was?


Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 24 Januar 2018, 06:49:40
Probier bitte mal
update all https://raw.githubusercontent.com/git-developer/RCSwitchFirmata/v2.0.0/FHEM/controls_frm_rc.txt
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Meck am 24 Januar 2018, 07:41:35
Danach kommt immer noch

Unknown Module FRM_RCOUT

Versuche ich manuell die Dateien in das Verzeichnis zu kopieren und versuche sie einzubinden kommt die Meldung das in Zeile 11 ein Fehler sein soll.
Titel: Antw:FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen
Beitrag von: Christian. am 24 Januar 2018, 08:07:34
1.) Wie ist die Ausgabe vom Update-Kommando?
2.) Wie ist die Ausgabe von update list?
3.) Überprüf bitte mal den Inhalt der von Dir heruntergeladenen Dateien. Es ist häufiger schon passiert, dass aus Versehen nicht das Perl-Modul, sondern eine HTML-Seite gespeichert wurde.