Hauptmenü

Firmata+Arduino

Begonnen von Rohan, 31 Januar 2013, 14:31:12

Vorheriges Thema - Nächstes Thema

fhemegon

Hallo,

ich bekomme beim schalten folgende Fehlermeldung

Rollo_ab no IODev assigned at ./FHEM/10_FRM.pm line 587

fhem.cfg
#####################
....
define FRM FRM 3030 [global]

define OWio OWX 3 // Pin 3 am Arduino
attr OWio IODev FRM
define OWX_28_BAXXXX OWTHERM DS18B20 BAXXXX
......

define Rollo_ab FRM_OUT 5

define Rollo_auf FRM_OUT 6

#####################
hatte schonmal funktioniert, kann leider mit der Fehlermeldung nichts anfangen?

Für eine Rückmeldung besten Dank

Grüße
fhemegon

ntruchsess

Dem Rollo_ab fehlt das IODev. Seit einer Änderung in fhem (an der AssignIoPort)-funktion muss das an allen FRM-clients gesetzt sein. (Setzt sich bei manuellem definieren bei laufendem fhem von selber, aber leider nicht, wenn FHEM ohne diese IODev-attribute in der fhem.cfg startet). Kann man auch über das Webfrontend machen, danach aber Save Config drücken.

Zitat von: fhemegon am 03 April 2014, 20:42:59
define FRM FRM 3030 [global]
......
define Rollo_ab FRM_OUT 5
attr Rollo_ab IODev FRM

define Rollo_auf FRM_OUT 6
attr Rollo_auf IODev FRM
#####################

Gruß,

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

Tobias

Zitat von: ntruchsess am 16 März 2014, 12:51:05
OneWire in der ConfigurableFirmata ist erst mal eine reine Softwarelösung, bei der der Arduino selber der Busmaster ist und das komplette Timing ganz ohne DS-irgendwas abwickelt. Die Vorteile eines speziellen Busmasters sind da gering (entlastet zwar den µC, aber das muss man erst mal so implementieren, dass der in der gesparten Zeit tatsächlich was anderes machen kann). Nur bei längeren Bussen mit vielen Chips dran kann ein spezialisierter Busmaster (mit eingebauter Slewrate-control) echte Vorteile bringen.
Aber der DS2480 ist wenig sinnvoll, RX/TX ist bei den Arduinos mit USB ja schon belegt und nur die Mega2560 und Due haben mehrere Hardware-serials. Der DS2482 mit I2C ist da die bessere Wahl, davon kann man ja auch bis zu 4 Stück an einem I2C-bus anschließen. Die ConfigurableFirmata-anbindung dafür habe ich im Oktober schon mal implementiert. Braucht allerdings noch Feinschliff, der DS2482 macht das Timing doch nicht komplett autonom wie ich ursprünglich dachte, da muss der µC mitarbeiten (ist beim DS2480 genauso). Das ist auch der Grund, warum eine Lösung, bei der die Intelligenz direkt am 1-Wire bus und nicht am anderen Ende einer 'verlängerten seriellen Schnittstelle' sitzt, sinnvoller ist. Da hängt die Stabilität nicht von der Qualität der Netzwerkverbundung ab. Der primäre Nachteil ist: der Arduino spricht kein owfs (hat noch niemand implementiert), sondern z.B. Firmata.

Falls Du eine Platine mit DS2482 für den Arduino machen willst: Am besten fände ich persönlich, wenn man die Platine direkt huckepack auf ein ENC28J60-modul (wie z.B. dieses stecken könnte und obendrauf einen 'Arduino mini pro'. Das hätte dann den kleinsten möglichen Formfaktor. Kann aber sein, dass andere lieber ein Shield im standard-Arduino-layout hätten. Als dritte Alternative einfach eine Platine, auf die man einen Arduino-nano aufstecken kann - da kann man dann ein Enc28J60-Ethernet-shield für Nano dazwischenstecken. Ist halt etwas teuerer als die Variante 'Mini Pro + ENC28J60-breakoutboard'...

Gruß,

Norbert
Hallo Norbert,
ich greife das Thema nochmal auf. Ich habe immermal wieder hänger in FHEM weil der owserver nicht antwortet, aus welchem Grund auch immer. (nonblocking ist deaktiviert)
Ich würde gerne eine DS2482 Platine für ein Hutschienenmodul bauen auf die sowohl die ETH-Platine als auch der Arduino Mini Pro sitzt. Blöderweise wird die ETH-Platine mit 3.3V betrieben, muss also noch zusätzlich ein Spannnugswandler mit drauf...

Jetzt die Fragen:
1. können meherer DS2482 mit einem Arduino Mini mit Firmata angesteuert werden?
2. Funktioniert jetzt schon sauber der Betrieb mit einem DS2482?

Ich benötige zwingend einen "echten" Busmaster da ich 2 sehr große Busnetze habe mit sehr vielen Clients (ca 40Stk) dran. Wenn möglich möchte ich ein Abfrageintervall von unter 5sek bei ca 15x DS2406 haben . Leitungslängen bis zu 60m
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

#273
Zitat von: Tobias am 04 April 2014, 11:05:46
1. können meherer DS2482 mit einem Arduino Mini mit Firmata angesteuert werden?
2. Funktioniert jetzt schon sauber der Betrieb mit einem DS2482?

1) Grundsätzlich ja. Natürlich teilen die sich die Rechenzeit und Bandbreite der Schnittstelle. D.h. es können z.B. nicht mehrere parallele 1-Wire searches auf einem einzelnen Arduino gleichzeitig laufen. Wenn jeder Busmaster seinen eigenen Arduino hat, dann schon.

2) keine Ahnung, Ich habe das DS2482 Firmatafeature vor einem halben Jahr geschrieben. Es hat auch funktioniert, war aber in meinem Testaufbau auch nicht stabiler als die Softwarelösung. Das lag aber wohl eher daran, dass ich in beiden Fällen den Bus nur mit einem einzigen Pullup-wiederstand ohne jede weitere Entstörmaßname angeschlossen habe. Ich habe das seitdem nicht weiter verfolgt. Aber wenn sich jemand (z.B. Du ;-)) um eine robuste, und im Hinblick auf die Strong-pullup-möglichkeiten des DS2482 vollständige Auslegung der Hardwareseite kümmern würde, dann würde ich die Softwareseite auch wieder in die Hand nehmen :-)
while (!asleep()) {sheep++};

Tobias

ich kümmer mich mal drum... aber nicht heute und morgen ;) Bin gerade mit meinem Innenraumsensor ausgelastet...
Hab mal von beiden ein Exemplar zum testen bestellt... Versand dauert ja 4Wochen

Als Bauteile sehe ich vorerst diese vor:
- Arduino
- Ethernet LAN

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Zitat von: Tobias am 04 April 2014, 12:50:50
- Arduino
- Ethernet LAN

Passt. Das verlinkte Ethernetmodul hat den nötigen 3.3V Spannungswandler auch schon onboard. Sollte sich direkt an den Arduino anschließen lassen.
while (!asleep()) {sheep++};

Tobias

Zitat von: ntruchsess am 04 April 2014, 12:59:14
Passt. Das verlinkte Ethernetmodul hat den nötigen 3.3V Spannungswandler auch schon onboard. Sollte sich direkt an den Arduino anschließen lassen.
hehe, hab auch lange danach gesucht... ;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

#277
Hi Norbert,
ich bin jetzt dabei die ConfigurableFirmata mit UIPEthernet zu kompilieren.
Edit: gelaberter Müll entfernt...
Wie kann ich ein Master.zip vom DS2482 Branch bekommen? Auf der github Seite finde ich keinen Link...

Btw: der Wiki Artikel ist nicht mehr aktuell... Der Sketch heißt jetzt ConfigurableFirmata und nicht OneWireSchedulerFirmata
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

#278
wenn man auf Github über den Knopf 'branches' die Sicht auf den gewünschten Branch einstellt, dann ändert sich auch der hinter dem 'Download ZIP'-Knopf (rechts unten) hinterlegte Link: DS2482.zip

Hab grade noch mal den aktuellen Stand der ConfigurableFirmata reingemerged.

Wer Fehler im Wiki findet sollte sie am besten gleich korrigieren ;-)

Gruß,

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

Tobias

Hi Norbert,
ich fühle mich mal bzgl Wiki angesprochen ;) Wollte nur dir in "deinen" Artikel nicht reinmurksen.

Btw möchte ich dich mal auf diesen Beitrag hier aufmerksam machen..
http://forum.fhem.de/index.php/topic,22608.msg167686.html#msg167686
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Zitat von: Tobias am 12 Mai 2014, 12:22:47
Die ENC28J60 Module arbeiten aber nicht per RX/TX sondern per SPI
Aber die Diskussion ist wohl wieder besser hier aufgehoben ;)

Nun, dann hier. Klär mich mal darüber auf, was ein ENC28J60-modul mit WLAN zu tun hat.
Das von Tobias verlinkte WLAN FunkModul hat ganz sicher weder ENC28J60, noch SPI ;-)
[/quote]
Gruß,

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

Tobias

#281
Ich habe jetzt  mal ConfigurableFirmata auf den Arduino Mini Pro per ParallelProgrammer geflashed. Ging gut. Außer das es kein zweites Mal mehr funktioniert :( Die LED auf dem Mini hat ein schwaches Dauerleuchten. Der angeschlossene ENC ist im Netzwerk angemeldet. Auf der Fritzbox sehe ich die vergebene IP. Hab den ENC nur per VCC/Gnd + Mosi/Miso/SCK/CS an die korrespondierenden Pins auf dem ArduinoMini angeschlossen. Mehr nicht

Ist das Normal das die LED auf dem Mini dauerleuchtet?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Zitat von: Tobias am 12 Mai 2014, 21:19:21
Ist das Normal das die LED auf dem Mini dauerleuchtet?

wenn Dein Mini Pro dieses Schaltbild hat, dann hängt eine LED an PB5 (= SCK). Dann ist es normal, dass die ein bischen leuchtet.
while (!asleep()) {sheep++};

Tobias

Ist ein atmega328p und der enc hängt an Pin 10,11,12,13
Ich such morgen mal raus wo die LED dran hängt

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

So, das ist der Schaltplan des Arduino Pro Mini. Die LED hängt auch hier am PB5/SCK.

* 14 Digital input / output ports RX, TX D13, D2 ~~ of,
* 2 or 8 analog input port A0 to A7
* The TTL level serial transceiver port RX / TX
* 6 PWM ports, D3,, D5 , D6, D9, D10, D11
* Using Atmel Atmega328P-AU microcontroller
* supports serial download
* Support for external 3.3V ~ 12V DC power supply
* Support 9V battery-powered
* clock frequency 16MHz
* Dimensions: 33.3 * 18.0 (mm)

Ich weiß noch nicht warum sich der Mini nicht ein 2tes Mal flashen lässt. Angeschlossen zum Programmieren hab ich nur GND/VCC/RX/TX. CTS und DTR benötige ich nicht, korrekt? Oder ist es besser per ISP zu flashen?

Kann ich davon ausgehen das die Kommunikation mit dem ENC per SPI grundsätzlich funktioniert wenn dieser sich per DHCP am Netzwerk anmeldet? Im Sketch habe ich die fixe IP auskommentiert damit DHCP genutzt wird.

Final ist es, wie vor ein paar Monaten angedeutet, das Ziel, den Mini, den ENC und optional einen DS2482 in einem DIN Hutschienengehäuse unterzubringen
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter