Firmata over Ethernet: Einbindung in Arduino

Begonnen von CaptBlaubaer, 27 Oktober 2013, 00:44:58

Vorheriges Thema - Nächstes Thema

fetzz

#105
Hallo Zusammen.

Ich verzweifel gerade daran meinen Arduino Nano clone mit einem ENC28J60 Ethernet shield ans laufen zu bekommen.

Was bisher geschah...
Setup:
- IDE 1.0.5.-r2
- Arduino Nano clone v3 (Dieses hier...)
- ENC28J60 Ethernet shield (Dieses hier..)
- Netzwerk 192.168.178.0

Folgender Sketch wurde in den Nano geladen:


/*
* 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,178,33)
//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 3030
//replace with arduinos ip-address. Comment out if Ethernet-startup should use dhcp
#define local_ip IPAddress(192,168,178,44)
//replace with ethernet shield mac. It's mandatory every device is assigned a unique mac
const byte mac[] = {0x90,0xA2,0xDA,0x0D,0x07,0x02};
#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 <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
#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 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
  }
#endif
#ifdef StepperFirmata_h
  stepper.update();
#endif
#if defined NETWORK_FIRMATA && !defined local_ip
  if (Ethernet.maintain())
    {
      stream.maintain(Ethernet.localIP());
    }
#endif
}


Kompilieren,hochladen klappt fehlerfrei.
Allerdings meldet sich der Nano nicht im Netzwerk an.
Reagiert nicht auf Ping, taucht nicht bei aktiven Netzwerkgeräten in der Fritzbox auf.

Anmerkung:
Die Beispiele "Advanced Chat Server" und "Echo Server" kann ich hochladen und sie funktionieren einwandfrei. Das heisst ein Hardwarefehler sowie Netzwerkfehler kann ich ausschließen.
Ich habe sogar aus Verzweifelung IDE deinstalliert und neugezogen. Die Ordner Firmata und UIPEthernet erneut geändert/hinzugefügt.
Der Fehler ist mitgewandert...


Ich weiss nicht mehr wie ich weiter suchen soll.

Wer kann mir helfen?

Danke

Grüße
fetzz

ntruchsess

#106
Hallo fetzz

Abgesehen davon, dass Dein verlinkter Arduino kein nano V3 ist (sondern ein 'mini pro) sieht das ganze eigentlich korrekt aus.
So wie es im Sketch konfiguriert ist muss dein FHEM-server die 192.168.178.33 haben, port 3030 (tcp) darf nicht von einer Firewall geblockt werden (ggf. von einem anderen Rechner aus mit 'telnet 192.168.178.33:3030' prüfen, ob man verbinden kann).
Das FRM device muss mit 'define <name> FRM 3030 global' definiert werden (das 'global' ist wichtig, <name> ist frei wählbar).

kann es sein, dass Dein nano einen ATmega168 hat (und keinen ATmega328)? So einen 168 nano hab ich mir auch mal aus versehen gekauft, der hat nicht genug Speicher für die ConfigurableFirmata mit ENC28J60, für die Beispiele von UIPEthernet sollte es aber gerade so langen.

In der Fritzbox wird der Arduino nicht auftauchen, wenn er eine feste ip-addresse hat - er meldet sich dann ja nicht per DHCP an. Ping sollte aber trotzden gehen.

Gruß,

Norbert
while (!asleep()) {sheep++};

fetzz

#107
Hallo Norbert,

Vielen Dank für deine Antwort.
In der Tat ist die Verlinkung fehlerhaft. Hier ist mein Model

Der FHEM-Server antwortet, wenn ich eine Putty-Session auf Port 3030 starte ( kryptische Zeichen werden wiedergegeben).

Das Device ist auch definiert worden.
define FIRMATA FRM 3030 global
Allerdings bleibt es im FHEM auf disconnect, der Port wird dann ja wieder geschlossen.

In der Fritzbox tauchen meine anderen Geräte mit fester IP auf, allerdings lässt sich der Arduino mit dem im vorherigen Post aufgeführten Sketch nicht anpingen.
Auch ein Trace mit Wireshark brachte keine Erleuchtung, das Gerät meldet sich einfach nicht im Netzwerk.

Was mir aufgefallen ist, dass die LED (on Board, PIN 13) schwach leuchtend schnell flackert.

Ich habe das ganze auch mit einem zweiten Arduino ausprobiert,das Verhalten ist mit beiden Geräten gleich.

Hast Du noch ein heißen Tipp, wo man den Fehler suchen könnte?

Grüße
Holger

hollyghost

#108
Hallo fetzz,
bist du weiter / zum Ziel gekommen?
Ich habe hier ein ähnliches Setup (gleicher Nano Clone allerdings nen anderen ENC28J60)
Bevor ich hier das Basteln anfange, wollte ich natürlich so viel als möglich an Informationen zusammen haben und da hätte mich dein Ergebnis mit dieser Hardware interessiert.
Grüße
Holger

Wzut

@hollyghost , die ENC Module von Eckstein kannst du verwenden ( habe davon selbst  2 Stück mit Firmata und einen Arduino Clone am Start )
Allerdings bitte daran denken das diese Module nur 3,3V haben. Manche Leute behaupten die SPI Eingänge seinen trotzdem 5V tolerant , andere verbauen zusätzliche 5V/3,3V  Spannungsteiler bzw. ich lasse die beiden Arduinos komplett mit 3,3V laufen. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

hollyghost

Hallo Wzut,
Danke für deine Antwort - dann werde ich mich mal dran machen :)
Mal sehen, ob sich der Nano über die USB-Buchse mit 3V3 versorgen lässt.
Grüße
Holger

fetzz

Hallo Hollyghost (Holger),

Ich bin mit dem Setup nicht weiter gekommen, ich habe mir eine w5100 Netzwerkkarte zugelegt. Damit funktioniert es einwandfrei  >:(
das ganze Thema lege ich erst mal ganz unten auf meinen to-do Stapel, bis ich wieder Muse für das Thema habe.

Grüße
Holger

hollyghost

Hallo fetzz,
Danke für die Antwort - diese Erfahrung habe ich leider auch schon bei anderen'Projekten' gesammelt [emoji4]
Bei Firmata bin ich allerdings recht zuversichtlich was den ENC betrifft.
Im Moment liegt dieses Vorhaben aber auf Eis, da meine Family endlich ihre Rollläden automatisch gesteuert haben will.... Das geht natürlich vor. Deshalb muss hier erst noch eine Platine fertig gemacht werden, dass sie zum 'Ätzer' kommt. Ich halte euch auf dem Laufenden.
Grüße
Holger

ntruchsess

Zitat von: fetzz am 01 September 2014, 20:43:32
Was mir aufgefallen ist, dass die LED (on Board, PIN 13) schwach leuchtend schnell flackert.
Ich habe das ganze auch mit einem zweiten Arduino ausprobiert,das Verhalten ist mit beiden Geräten gleich.
Hast Du noch ein heißen Tipp, wo man den Fehler suchen könnte?

Hallo Holger,

Du hast vermutlich zu viele Features im Sketch dringelassen, dann reicht das RAM nicht und der Arduino geht in einen Boot-loop. Streich mal testweise alles außer Digital/Analog-I/O und 1-Wire weg. I2C + 1-Wire geht z.B. nicht zusammen mit UIPEthernet auf einem Mega328p - läßt sich zwar flashen, läuft aber nicht. Die WIZ5100-basierte Ethernet-lib braucht weniger RAM (da macht der Chip das TCP, die Library reicht nur noch durch).

Gruß,

Norbert
while (!asleep()) {sheep++};

Samsi

Hi,

ich komme uahc einfach nicht weiter.

Arduino UNO mit ENC28J60:

CONNECTS 3
DEF    3030 global
DeviceName 3030
FD 4
NAME FIRMATA
NOTIFYDEV global
NR 28
NTFY_ORDER 50-FIRMATA
PORT 3030
STATE Initialized
TYPE FRM
firmware ConfigurableFirmata.ino
firmware_version V_2_06

Da die Firmware_version angezeigt wird, vermute ich mal die Kommunikation stimmt soweit, oder?
Außerdem geht CONNECTS jedes mal um einen Zähler weiter, wenn ich den Arduino neu einschalte.
Ich kann den Arduino auch anpingen. Er holt sich seine IP per DHCP, was auch funktioniert. ER erscheint in der FritzBox.


Das eigentliche Problem ist der Input Pin:

DEF    5
IODev FIRMATA
NAME Firmata_IN
NR 29
PIN 5
STATE reading
TYPE FRM_IN

STATE zeigt immer reading an. Trotz  attr verbose 5 bekomme ich keine Einträge im Logfile


Hier noch die Arduino Config:



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

#include <UIPEthernet.h>

#if defined ethernet_h || defined UIPETHERNET_H || defined _YUN_CLIENT_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,0,6)
//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 3030
//replace with arduinos ip-address. Comment out if Ethernet-startup should use dhcp. Is ignored on Yun
//#define local_ip IPAddress(192,168,0,6)
//replace with ethernet shield mac. It's mandatory every device is assigned a unique mac. Is ignored on Yun
const byte mac[] = {0x90,0xA2,0xDA,0x0D,0x07,0x02};
#endif


//#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 <utility/FirmataExt.h>
//FirmataExt firmataExt;

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

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




Der Sketch compiliert unter IDE 1.0.5 , allerdings bekomme ich auch einige Warnings, z.B:

In file included from C:\Program Files (x86)\Arduino\libraries\UIPEthernet\Dhcp.cpp:8:
C:\Program Files (x86)\Arduino\libraries\UIPEthernet\/utility/util.h:5:1: warning: "ntohs" redefined
In file included from C:\Program Files (x86)\Arduino\libraries\UIPEthernet\/UIPUdp.h:28,
                 from C:\Program Files (x86)\Arduino\libraries\UIPEthernet\/Dhcp.h:7,
                 from C:\Program Files (x86)\Arduino\libraries\UIPEthernet\Dhcp.cpp:6:
C:\Program Files (x86)\Arduino\libraries\UIPEthernet\/utility/uip.h:1087:1: warning: this is the location of the previous definition
C:\Program Files (x86)\Arduino\libraries\UIPEthernet\utility\uip_arp.c: In function 'uip_arp_update':
C:\Program Files (x86)\Arduino\libraries\UIPEthernet\utility\uip_arp.c:160: warning: 'tabptr' may be used uninitialized in this function
C:\Program Files (x86)\Arduino\libraries\UIPEthernet\utility\uip_arp.c: In function 'uip_arp_out':
C:\Program Files (x86)\Arduino\libraries\UIPEthernet\utility\uip_arp.c:356: warning: 'tabptr' may be used uninitialized in this function

Bekommt Ihr diese Warnings auch?

Grüße

FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

ntruchsess

Liegt nicht an den Warnings sondern:

Für FRM_IN muss die DigitalInputFirmata enabled sein. Die bei Dir angeschaltete AnalogInputFirmata ist for FRM_AD. FirmataExt muss auch an sein, sonst hat das FRM-modul auch keine Möglichkeit zu merken, dass der gewünschte pinmode gar nicht unterstützt wird.

- Norbert
while (!asleep()) {sheep++};

Samsi

Hallo Norbert,

danke aber das hatte ich hier im thread auch schon gesehen und auch schon enabled und auf den Arduino hochgeladen. Hatte es nur versehentlich nicht gespeichert und deswegen hier die falsche Konfiguration gepostet. Jedenfalls ging es auch nicht, wenn es Enabled war.

Ich habe jetzt noch etwas probiert und die Analogen disabled, weil ich nur ca. 500byte frei hatte.

Jetzt, nur mit den Digitalen, habe ich rund 2KB frei und es  funktioniert zumindest teilweise. Das reading on/off kommt jetzt.

Dafür zeigt er aber in der Firmware "Configura,*,% �"

Ich denke das liegt jetzt am Speicher. Aber wenigstens ein kleines Erfolgserlebnis.

Außerdem bekomme ich auch die "Unhandled sysex command" Meldungen.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

ntruchsess

gib dem Arduino eine feste IP und stelle UDP in der uipethernet.conf ab. Dann klappt's auch mit dem Speicher.
while (!asleep()) {sheep++};

Samsi

Danke! Jetzt sieht man sogar die Internals  analog_resolutions etc.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Samsi

Könnte man evtl. auch das folgende WLAN Modul zum laufen bringen, vielleicht hat das ja schon jemand probiert?

http://www.ebay.de/itm/231311596017

eine Arduino-Ethernet compatible Library gibt es wohl schon:

https://github.com/chunlinhan/WiFiRM04
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM