Arduino Firmata FRM Fehlermeldung

Begonnen von Flori, 23 Januar 2017, 15:37:28

Vorheriges Thema - Nächstes Thema

Flori

Habe die frage schon einmal im Anfängerbereich gestellt da konnte mir aber anscheinend niemand helfen. 

Hi,

versuche gerade den digitalen Pin meines Arduino mit Firmata zu schalten
config:
define initialUsbCheck notify global:INITIALIZED usb create
define FIRMATA FRM 3030 global
attr FIRMATA sampling-interval 300
define pin7 FRM_OUT 7
attr pin7 IODev FIRMATA
attr pin7 stateFormat value

in der Übersicht steht hinter Firmata connected

am Pin des Arduinos tut sich aber nichts  wen ich in FHEM schalte

im log gibt es einen Fehlermeldung :
2017.01.22 15:03:02 1: Including fhem.cfg
2017.01.22 15:03:02 3: telnetPort: port 7072 opened
2017.01.22 15:03:02 3: WEB: port 8083 opened
2017.01.22 15:03:02 3: WEBphone: port 8084 opened
2017.01.22 15:03:02 3: WEBtablet: port 8085 opened
2017.01.22 15:03:02 2: eventTypes: loaded 8 events from ./log/eventTypes.txt
2017.01.22 15:03:02 1: Including ./log/fhem.save
2017.01.22 15:03:02 3: FIRMATA: port 3030 opened
2017.01.22 15:03:02 1: usb create starting
2017.01.22 15:03:02 3: Probing CUL device /dev/ttyAMA0
2017.01.22 15:03:03 3: Probing TCM_ESP3 device /dev/ttyAMA0
2017.01.22 15:03:03 3: Probing FRM device /dev/ttyAMA0
2017.01.22 15:03:08 1: usb create end
2017.01.22 15:03:08 0: Featurelevel: 5.7
2017.01.22 15:03:08 0: Server started with 14 defined entities (fhem.pl:13142/2017-01-18 perl:5.020002 os:linux user:fhem pid:3558)
2017.01.22 15:03:11 3: querying Firmata Firmware Version
2017.01.22 15:03:11 3: Firmata Firmware Version: ConfigurableFirmata.ino V_2_09
2017.01.22 15:03:11 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 632.


Habe ich etwas vergessen ?
Desweiteren meine ich mich zu erinnern das mir früher die verfügbaren Pin´s des Arduinos, in den Intarnals angezeigt wurden.
Diese anzeige fehlt jetzt?

bin über jede Hilfe Dankbar

Grüße Flo

wthiess

#1
Bei mir läufts so:

Digital Pin 11 u. 12.
define Arduino1 FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A700RH5J-if00-port0@57600
attr Arduino1 room Firmata

define Firmata_12 FRM_OUT 12
attr Firmata_12 IODev Arduino1
attr Firmata_12 devStateIcon on:radio_checked off:radio_unchecked .*:radio_unchecked
attr Firmata_12 activeLow yes
attr Firmata_12 room Firmata
attr Firmata_12 stateFormat value

define Firmata_11 FRM_OUT 11
attr Firmata_11 IODev Arduino1
attr Firmata_11 devStateIcon on:radio_checked off:radio_unchecked .*:radio_unchecked
attr Firmata_11 activeLow yes
attr Firmata_11 room Firmata
attr Firmata_11 stateFormat value


Allerdings habe ich folgendes Problem. Beim start des Arduinos schalten die beiden Ports einmalig kurz. Das ist eventuell unangenehm, wenn dann das Garagentor aufgeht.

lg
Wolfgang
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

dbox2user

Hallo Flo!

Ich bin zwar kein super Profi, aber mit configurable Firmata habe ich mich auch schon beschäftigt.
Wie Du schon selbst schreibst, die verfügbaren Pins müssen in den Internals angezeigt werden.
Wenn da schon nichts angezeigt wird gehts nicht.

Nehm am besten die configurable firmata V 2.06.
Alle neueren Versionen scheinen wohl nicht sauber zu laufen.
Das hab ich im Forum schon oft gelesen.

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

wthiess

ich habs grad mit "SimpleDigitalFirmata" getestet. Mit dieser hab ich auch die unmotivierten kurzen Einschaltungen beim neustart nicht.
Installiert nach dieser Anleitung:
https://wiki.fhem.de/wiki/Arduino_Firmata

lg
Wolfgang


#include <Firmata.h>

byte previousPIN[TOTAL_PORTS];  // PIN means PORT for input
byte previousPORT[TOTAL_PORTS];

void outputPort(byte portNumber, byte portValue)
{
  // only send the data when it changes, otherwise you get too many messages!
  if (previousPIN[portNumber] != portValue) {
    Firmata.sendDigitalPort(portNumber, portValue);
    previousPIN[portNumber] = portValue;
  }
}

void setPinModeCallback(byte pin, int mode) {
  if (IS_PIN_DIGITAL(pin)) {
    pinMode(PIN_TO_DIGITAL(pin), mode);
  }
}

void digitalWriteCallback(byte port, int value)
{
  byte i;
  byte currentPinValue, previousPinValue;

  if (port < TOTAL_PORTS && value != previousPORT[port]) {
    for (i = 0; i < 8; i++) {
      currentPinValue = (byte) value & (1 << i);
      previousPinValue = previousPORT[port] & (1 << i);
      if (currentPinValue != previousPinValue) {
        digitalWrite(i + (port * 8), currentPinValue);
      }
    }
    previousPORT[port] = value;
  }
}

void setup()
{
  Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION);
  Firmata.attach(DIGITAL_MESSAGE, digitalWriteCallback);
  Firmata.attach(SET_PIN_MODE, setPinModeCallback);
  Firmata.begin(57600);
}

void loop()
{
  byte i;

  for (i = 0; i < TOTAL_PORTS; i++) {
    outputPort(i, readPort(i, 0xff));
  }

  while (Firmata.available()) {
    Firmata.processInput();
  }
}
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

Edi77

Habe auch Firmata mit 2x Arduino Mega 256 und W5100 im Einsatz, und bin auch noch auf dem Stand Configurable Firmata V 2.06
Ich habe da so manchmal meine Probleme das sich nach einem reboot/restart/reboot des FHEM der Mega sich nicht mehr meldet, und dann der FHEM öfters hengt.
Also habe ich mir mal bei einem Mega was gebaut, das wenn der FHEM neu gestartet wird der MEGA für 5 Sek der Strom unterbrochen wird ( mit einer SPS die den reboot vom FHEM erkennt ) und seit dem läuft dies Firmata einigermaßen stabil.

Ich frage mich allerdings auch, hat sich da wirklich in den letzten Monaten nichts mehr getan, immer noch 2.06 ( 2 Jahre alt )????
Die aktuelle ist wohl V2.1 ( 1.2.16 ) also auch schon ein gutes Jahr alt, bitte korrigieren falls ich mich irre.

Ich finde da Let's Control it mit den ESP interessanter, zumal die jetzt auch mit Arduino Mega/Nano was machen, noch inter der Entwicklung aber da tut sich noch was

http://www.letscontrolit.com/wiki/index.php/Main_Page

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