Firmata over Ethernet: Einbindung in Arduino

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

Vorheriges Thema - Nächstes Thema

matthias soll

Hat jemand Probleme mit der Zuverlässigkeit mit einem Arduino und dem w5100 shield?
Bzw. läuft das stabiler als das ENC28J60?
USB scheint ja Problemlos zu laufen.
Momentan starte ich meinen Arduino auch mit einer Zeitschaltuhr nachts neu und nutze onewire erstmal nicht um zu testen ob es dann stabiler läuft.

bads

Jetzt habe ich den Thread mehrfach durchgelesen, komme aber nicht weiter. Ich habe einen NANOV3 (328P) und das Ethernetshield von Deek-Robot (Pin10:SS, Pin 11:MOSI, Pin12:MISO und Pin13:SCK). Ich kann den Arduino pingen.

Ich habe fast alles auskommentiert, bis auf Digital IN/OUT und 1-Wire. Trotzdem bekomme ich in Fhem den folgenden Fehler:

Zitat
015-01-29 22:14:43 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:15:34 FRM FRM:192.168.177.25:1025 DISCONNECTED
2015-01-29 22:15:43 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:16:36 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:20:10 FRM FRM:192.168.177.25:1025 DISCONNECTED
2015-01-29 22:20:18 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:20:22 FRM FRM:192.168.177.25:1026 DISCONNECTED
2015-01-29 22:20:29 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:24:00 FRM FRM:192.168.177.25:1025 DISCONNECTED
2015-01-29 22:24:08 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:24:24 FRM FIRMATA error: Unhandled sysex command
2015-01-29 22:24:59 FRM FRM:192.168.177.25:1025 DISCONNECTED
2015-01-29 22:25:08 FRM FIRMATA error: Unhandled sysex command

Der Sketch hat eine Binäre Sketchgröße: 28.536 Bytes (von einem Maximum von 30.720 Bytes), trotz entfernen von UDP? Müsste der Sketch nicht kleiner sein, oder was mache ich falsch?

Zitat
/*
* 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>

/*
* To execute Network Firmata on Yun uncomment Bridge.h and YunClient.h.
* Do not include Ethernet.h or SPI.h in this case.
* On Yun there's no need to configure local_ip and mac in the sketch
* as this is configured on the linux-side of Yun.
*/

//#include <Bridge.h>
//#include <YunClient.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,177,24)
//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,177,25)
//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

// 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>
#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 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 _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.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
        || 11==i
        || 12==i
        || 13==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(10), OUTPUT); // SS
pinMode(PIN_TO_DIGITAL(11), OUTPUT); // MISO(SI)
pinMode(PIN_TO_DIGITAL(12), OUTPUT); // MISO(SO)
pinMode(PIN_TO_DIGITAL(13), OUTPUT); // SCK
//pinMode(PIN_TO_DIGITAL(4), OUTPUT); //
//digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;
digitalWrite(PIN_TO_DIGITAL(10), 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 &&!defined _YUN_CLIENT_H_
  if (Ethernet.maintain())
    {
      stream.maintain(Ethernet.localIP());
    }
#endif
}

Zitat
ifndef UIPETHERNET_CONF_H
#define UIPETHERNET_CONF_H

/* for TCP */
#define UIP_SOCKET_NUMPACKETS    5
#define UIP_CONF_MAX_CONNECTIONS 4

/* for UDP
* set UIP_CONF_UDP to 0 to disable UDP (saves aprox. 5kb flash) */
#define UIP_CONF_UDP             0
#define UIP_CONF_BROADCAST       0
#define UIP_CONF_UDP_CONNS       0

/* number of attempts on write before returning number of bytes sent so far
* set to -1 to block until connection is closed by timeout */
#define UIP_ATTEMPTS_ON_WRITE    -1

/* timeout after which UIPClient::connect gives up. The timeout is specified in seconds.
* if set to a number <= 0 connect will timeout when uIP does (which might be longer than you expect...) */
#define UIP_CONNECT_TIMEOUT      -1

/* periodic timer for uip (in ms) */
#define UIP_PERIODIC_TIMER       250

/* timer to poll client for data after last write (in ms)
* set to -1 to disable fast polling and rely on periodic only (saves 100 bytes flash) */
#define UIP_CLIENT_TIMER         10

#endif

FHEM 5.5 auf Banana-PI, Raspberry PI mit FHEM2FHEM, ENOCEAN PI, ELTAKO FTK, ELTAKO FHF, HMLAN, HM-SEC-MDIR, HM-SEC-SC2, 1-Wire, Fussboden-Heizungssteuerung mit Selbstbau HM-Mod-Re-8 + Stellantriebe 230V

digital.arts

Hallo,

@bads:
FirmataScheduler und EncoderFirmata können auch auskommentiert werden
UIP_CONF_MAX_CONNECTIONS auf 1 schadet auch nicht

Hast Du mehrere solcher Firmatas im Einsatz ? Da ist zu beachten, im sketch nicht nur bei IP, auch bei der MAC-Adresse jeweils eine andere einzutragen !!

VG
Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

bads

Hallo Karl,

Danke. Ich habe nur einen Arduino zum Testen im Netz. Ich habe alles noch mal ausprobiert und zum Test auch  noch einmal 1-Wire auskommentiert. Auch die Änderungen von Dir habe ich vorgenommen. Der Sketch war dann 24.384K (inkl. OneWire). Trotzdem bekomme ich immer noch den gleichen Fehler. Hast Du eine Idee?

Zitat
2015.01.31 16:22:29 4: Connection accepted from FRM:192.168.177.25:1026
2015.01.31 16:22:29 5: FRM:>ff
2015.01.31 16:22:32 3: querying Firmata Firmware Version
2015.01.31 16:22:32 5: FRM:>f079f7
2015.01.31 16:22:32 5: FRM:<f079020654006500730074004600690072006d006100740061002e0069006e006f00f7
2015.01.31 16:22:32 3: Firmata Firmware Version: TestFirmata.ino V_2_06
2015.01.31 16:22:32 5: FRM:>f069f7
2015.01.31 16:22:32 5: FRM:>f06bf7
2015.01.31 16:22:32 5: FRM:<f07155006e00680061006e0064006c0065006400200073007900730065007800200063006f006d006d0061006e006400f7f06c7f7f000101017f000101017f000101017f000101017f000101017f000101017f000101017f000101017f7f7f7f7f000101017f000101017f000101
2015.01.31 16:22:32 3: received String_data: Unhandled sysex command
2015.01.31 16:22:32 5: FRM:<017f000101017f000101017f000101017f7f7ff7
2015.01.31 16:22:34 5: FRM:>f07a6807f7
2015.01.31 16:22:34 5: FRM:<f07155006e00680061006e0064006c0065006400200073007900730065007800200063006f006d006d0061006e006400f7
2015.01.31 16:22:34 3: received String_data: Unhandled sysex command

Danke Guido
FHEM 5.5 auf Banana-PI, Raspberry PI mit FHEM2FHEM, ENOCEAN PI, ELTAKO FTK, ELTAKO FHF, HMLAN, HM-SEC-MDIR, HM-SEC-SC2, 1-Wire, Fussboden-Heizungssteuerung mit Selbstbau HM-Mod-Re-8 + Stellantriebe 230V

Inputsammler

HAllo zusammen,

Habe gestern den Mega mit Ethernetshield und Firmata zum laufen gebracht.

Zur info für alle hier.

Ich hatte Probleme mit der Arduino IDE V 1.5x mit der neuen V1.06 hingegen nicht .
Ide
http://arduino.cc/download.php?f=/arduino-1.0.6-windows.zip

Firmata:
https://github.com/firmata/arduino/archive/configurable.zip

IDE entpackt:
c:\Arduino\arduino-1.0.6\

Inhalt gelöscht von
c:\tools\Arduino\arduino-1.0.6\libraries\Firmata\

Inhalt von dem Firmata das downlgeladen worden ist in das Verzeichnis entpackt

anschließend IDE gestartet
-> Beispiel --> Firmata --> configurableFirmata

Folgende Sachen bearbeitet:

/*
* 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>

/*
* To execute Network Firmata on Yun uncomment Bridge.h and YunClient.h.
* Do not include Ethernet.h or SPI.h in this case.
* On Yun there's no need to configure local_ip and mac in the sketch
* as this is configured on the linux-side of Yun.
*/

//#include <Bridge.h>
//#include <YunClient.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'
// Hier die FHEM Adresse eingeben
#define remote_ip IPAddress(192,168,27,36)
//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
Hier die IP von deinem  Arduino eingeben
#define local_ip IPAddress(192,168,27,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


Das habe ich dann in FHEM eingestellt

define FIRMATA FRM 3030 [global]
define Firmata_17 FRM_AD 17 # definiert Arduino Pin 17 als analogen Eingang
define Firmata_10 FRM_PWM 10 # definiert Arduino Pin 10 als analogen Ausgang
define Firmata_09 FRM_AD 9 # definiert Arduino Pin 9 als analogen Eingang
define Firmata_12 FRM_IN 12 # definiert Arduino Pin 12 als digitalen Eingang
define Firmata_11 FRM_OUT 11 # definiert Arduino Pin 11 als digitalen Ausgang
define Firmata_02 OWX 2


Und die alles läuft ohne Probleme.
Vielleicht hilft es hier jemanden weiter.

Wollte es in die WIKI schreiben aber es hat nicht funktioniert.
Rpi's und Bpi's und Hw von Dirk und locutus
CCU2,F20,Ks300,1-Wire,Homematic usw ...
vitodens 300 & IstrkrM372 auslesen über USB und FHEM
RUHE IN FRIEDEN AHA1805 RIP Mallorca +29.08.16
I miss you and your Family H.H.L.L.

0p3r4t0r_DE

Grüße,

muss mich hier mal kurz einklinken.
Ganz komisches Problem bei mir.
Folgender Sachstand: Benutze einen UnoR3 mit ENC28J60. IDE 1.6.0.
Habe mir confFirmata und UIPEthernet geladen und laut Beschreibung "installiert" bzw eingerichtet. Dann starte ich IDE und compiliere erst mal unverändert die confFirmata, mache dann meine Änderungen und compiliere neu (also IP vergeben und includes welche ich nicht brauche raus. Genauso, wie UDP Einstellungen ändern)
Sketch ist auf dem Arduino und läuft nun erst mal. Kann auch per FHEM drauf zugreifen und steuern. Also speicher ich mir den Sketch für später auf meiner HDD. Ziehe meinen Uno vom Strom um ihn an seine gewünschte Position wieder anzuschließen. Nun bricht aber ständig die Netzwerkverbindung zusammen. Ergo will ich Sketch noch mal bearbeiten um evtl noch mehr Speicherplatz zu sparen, damit der sauber läuft. Aber wenn ich nun meinen Sketch lade, der ja schon auf dem Uno läuft und gespeichert wurde, dann bringt er mir beim kompilieren immer folgenden Fehler.

Arduino: 1.6.0 (Windows 7), Platine: "Arduino Uno"

Verwende die Bibliothek Firmata im Ordner: C:\Program Files (x86)\Arduino\libraries\Firmata

Verwende die Bibliothek UIPEthernet im Ordner: C:\Program Files (x86)\Arduino\libraries\UIPEthernet



C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\FHEM_Final.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\FHEM_Final.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\Firmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\Firmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\AnalogFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\AnalogFirmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\AnalogInputFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\AnalogInputFirmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\AnalogOutputFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\AnalogOutputFirmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\DigitalInputFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\DigitalInputFirmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\DigitalOutputFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\DigitalOutputFirmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\Encoder.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\Encoder.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\Encoder7Bit.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\Encoder7Bit.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\EncoderFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\EncoderFirmata.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\EthernetClientStream.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\EthernetClientStream.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\FirmataExt.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\FirmataExt.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\FirmataReporting.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\FirmataReporting.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\FirmataScheduler.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\FirmataScheduler.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\FirmataStepper.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\FirmataStepper.cpp.o

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\Firmata -IC:\Program Files (x86)\Arduino\libraries\UIPEthernet\src -IC:\Program Files (x86)\Arduino\libraries\Firmata\utility C:\Program Files (x86)\Arduino\libraries\Firmata\utility\I2CFirmata.cpp -o C:\Users\Tedriran\AppData\Local\Temp\build1890073882798320334.tmp\Firmata\utility\I2CFirmata.cpp.o

C:\Program Files (x86)\Arduino\libraries\Firmata\utility\I2CFirmata.cpp:18:18: fatal error: Wire.h: No such file or directory
#include <Wire.h>
                  ^
compilation terminated.
Fehler beim Kompilieren.


Dies passiert auch, wenn ich erst den Beispielsketch von confFirmata unverändert lade und kompiliere und dann meinen Sketch versuche zu kompilieren.
Das heist, ich muss jedesmal die Einstellungen neu machen.

Kann mir zu den beiden Problemen (Netzwerkverbindungsverlust und Kompilieren) vielleicht jemand weiter helfen?

Ach ja, hier mal mein Sketch:


#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>

/*
* To execute Network Firmata on Yun uncomment Bridge.h and YunClient.h.
* Do not include Ethernet.h or SPI.h in this case.
* On Yun there's no need to configure local_ip and mac in the sketch
* as this is configured on the linux-side of Yun.
*/

//#include <Bridge.h>
//#include <YunClient.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,1,99)
//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,1,40)
//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

// 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;


Kann ich da evtl noch mehr raus kommentieren? Möchte nur 2 Pins mit "on-for-timer" verwenden.


Danke. Gruß

bads

nAbend,

ich versuche mal mein Glück in diesem Thread. Im 1-wire Bereich habe ich keine Antwort bekommen, da es wohl ein Problem mit der Firmata zu sein scheint.

http://forum.fhem.de/index.php/topic,13580.msg268146.html#msg268146


Ich habe mit der IDE und der aktuellen Configurable Firmata jeweils das gleiche Phänomen mit ENC28J60 und W5100 Ethernet-Shield. Den ENC mit UIPEthernet und den W5100 mit SPI und Ethernet.h.

Jeweils nach etwa 8 Stunden Betrieb und zyklischer Abfrage von 1-Wire Sensoren (3 Stück) antwortet der Arduino UNO nicht mehr. Nur nach einem Reset ist der UNO wieder ansprechbar.

Nach dem komilieren habe ich folgende Speicherbelegung (Nur 1-wire und digital, alles andere auskommentiert an features)

avr-size -C --mcu=atmega328 WZ5000.cpp.elf
AVR Memory Usage
----------------
Device: atmega328

Program:   23578 bytes (72.0% Full)
(.text + .data + .bootloader)

Data:       1338 bytes (65.3% Full)
(.data + .bss + .noinit)

Gibt es eine Möglichkeit da etwas zu debuggen Wenn ja, wie?

Danke
FHEM 5.5 auf Banana-PI, Raspberry PI mit FHEM2FHEM, ENOCEAN PI, ELTAKO FTK, ELTAKO FHF, HMLAN, HM-SEC-MDIR, HM-SEC-SC2, 1-Wire, Fussboden-Heizungssteuerung mit Selbstbau HM-Mod-Re-8 + Stellantriebe 230V

Bjoern777

Hallo zusammen,

ich kämpfe hier schon ein paar Tage mit dem Firmata over Ethernet.

Habe hier einen Nano mit enc28j60 und einem Relais-Board.

Was habe ich gemacht
- neue Arduino IDE 1.5.7 ausgepackt
- Firmata Verzeichnis im lib-Verzeichnis gelöscht
- ConfigurableFirmata runtergeladen und im lib/firmata Verzeichnis gespeichert
- Habe den Sketch geladen konfiguriert und hochgeladen

Netzwerkkabel dran + Reset => Ping funktioniert.

FIRMATA Device in FHEM angelegt:

define FIRMATA FRM 3030 global
attr FIRMATA verbose 5


In FHEM ist nun zu lesen

FRM
FIRMATA Initialized
FRM:192.168.178.29:1027 Connected

Digitalen Pin 8 eingerichtet:

define Firmata_OUT FRM_OUT 8
attr Firmata_OUT IODev FIRMATA
attr Firmata_OUT stateFormat value


Das Device taucht in FHEM auf, aber es passiert nix...

Im Log-File ist das hier zu finden:

2015.05.26 21:34:00 4: Connection accepted from FRM:192.168.178.29:1027
2015.05.26 21:34:00 5: FRM:>ff
2015.05.26 21:34:03 3: querying Firmata Firmware Version
2015.05.26 21:34:03 5: FRM:>f079f7
2015.05.26 21:34:03 5: FRM:<f079020743006f006e0066006900670075007200610062006c0065004600690072006d006100740061002e0069006e006f00f7
2015.05.26 21:34:03 3: Firmata Firmware Version: ConfigurableFirmata.ino V_2_07
2015.05.26 21:34:03 5: FRM:>
2015.05.26 21:34:03 5: FRM:>
2015.05.26 21:34:05 5: FRM:>
2015.05.26 21:35:02 5: FRM:>
2015.05.26 21:35:10 5: FRM:>
2015.05.26 21:35:11 5: FRM:>
2015.05.26 21:35:13 5: FRM:>
2015.05.26 21:35:14 5: FRM:>


Bei drücken von On oder Off erscheint jeweils sofort eine neue Zeile im Protokoll

2015.05.26 21:35:14 5: FRM:>


Hat jemand eine Idee woran das liegen könnte?

Vielen Dank + Gruss Björn

Tratonis

@Bjoern777 habe selbiges Problem, konntest Du das lösen?

AxelSchweiss

Prüft doch mal die Stromversorgung.
Ich habe hier schlappe 300mA gemessen.
Wenn das Netzteil nicht sauber die Spannung liefert macht der Netzwerkadapter (Bei mir ein W5100) die verücktesten Sachen.
z.B kommt ein DHCPREQUEST aber der der DHCPACK wird dann nicht mehr angenommen.
Mit dem richtigen Netzteil funktioniert es jetzt.
Das Problem von euch sieht ähnlich aus ... der Nachrichtenempfang funktioniert nicht.


Edi77

Ich habe einen Arduino Nano Klone von Deek-Robot und vom gleichen Hersteller das 28J60 Ethernet Shield.
Habe Arduino IDE 1.6.5 mit ConfigurableFirmata am laufen.
Wie binde ich jetzt die UIPEthernet ein?
Mit #include <UIPEthernet.h> kommt ein Fehler, da scheint sich ja einiges geändert zu haben.

Mit Arduino Uno und W5100 Shield habe ich kein Problem.

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Spielmann

Hallo Björn777,
das Problem liegt vermutlich an deiner Firmataversion. Ich habe gestern die Version V_2_07 auf mein Arduino Mega + W5100 Ethernet Shield aufgespielt, da ich diese mal testen wollte. FHEM (Raspi) hat sich gleich mit dem Arduino verbunden, nur die Schnittstellen am Arduino werden nicht angesprochen. Mit der Version 2_05 funktioniert bei mir alles (außer dass sich nach Stunden der Arduino nicht mehr ansprechen lässt).

Wie bei Bild 2_05 sollte es unter Firmata aussehen. Bei Bild 2_07 sind die Schnittstellen nicht definiert.

Versuche es also mal mit einer anderen Version (z.B. der Zip Link im Wiki http://www.fhemwiki.de/wiki/Arduino_mit_OneWireFirmata). Ich bin noch auf der Suche nach der 2_06 oder funktionierende 2_07, da ich mir dadurch weniger Verbindungsabbrüche erhoffe oder die Verbindung irgendwie mit einem Watchdog oder Befehl reconnecten kann (siehe http://forum.fhem.de/index.php/topic,40445.0.html)

Gruß
Spielmann


FHEM mit Raspi (Zentrale)
Raspberrymatic (Heizung)
Siemens LOGO8 (Lichtsteuerung)
Philips HUE Gedöns
Diesel-Tankstelle mit fhem und ESP (eine ewige Baustelle)

Spielmann

Hallo zusammen,
hat schon jemand ein Arduino mit configurable Firmata dauerhaft und ohne Verbindungsabbruch über mehrere Tage zum Laufen gebracht bzw. über einen Watchdog das System dauerhaft am laufen gehalten?

In diversen Threads wurde das Thema schon angesprochen (beispielsweise von Björn777 und bads), jedoch konnte ich noch nichts über eine erfolgreiche Konfiguration lesen ( http://forum.fhem.de/index.php/topic,13580.345.html  und  http://forum.fhem.de/index.php/topic,15780.msg269747.html#msg269747 ). Mich interessiert vor allem die Konfiguration von:
-   Arduino-Typ
-   ENC28J60 oder W5100 Ethernet-Shield
-   Version der configurablen Firmata (und evl. Einstellungen)
-   OWX oder OWX_ASYNC

Mein Aufbau sieht folgendermaßen aus:
-   Raspi mit FHEM
-   Arduino mega  mit configurable Firmata 2_05 am W5100 Ethernet Shield (die Version 2_06 finde ich nirgens mehr) . Am Arduino sind iButton-Reader und Zähler DS2423 (2 x OWX_ASYNC Schnittstellen), 10er-Tastaturmatrix (über analoge Matrix FRM_AD),  Kontakt (FRM_IN), Ausgang (FRM_OUT) und ein LCD (I2C).
OWX wollte ich nicht nehmen, da ich sonst wegen den iButtons ständig pollen muss.

Ich habe schon vor Tagen einen Thread im Anfängerforum eröffnet bezüglich der Firmata Version (http://forum.fhem.de/index.php/topic,40445.msg326770.html#msg326770 ), jedoch keine Antwort erhalten.

Gruß
Spielmann
FHEM mit Raspi (Zentrale)
Raspberrymatic (Heizung)
Siemens LOGO8 (Lichtsteuerung)
Philips HUE Gedöns
Diesel-Tankstelle mit fhem und ESP (eine ewige Baustelle)

Edi77

Hallo,

Bei mir läuft die Firmata seit ca. 2 Wochen mit einem Funduino UNO und 2 x DS18B20 stabil
Allerdings habe ich noch ein paar andere Probleme damit.
http://forum.fhem.de/index.php/topic,40927.msg331467.html#msg331467
https://forum.arduino.cc/index.php?topic=346856.0
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D