Ethersex, Firmata, Arduino

Begonnen von le66ck, 13 September 2014, 12:18:53

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

kpwg

Ich hab's mal anders herum gelöst: da ich nicht zig- paar ISP-Normen benötige, die vielleicht noch bei jedem neuen Arduino wieder ein wenig anders ist, bekam der ProMini einer 6er ISP "nach Vorschrift". Großer Vorteil: wenn man nach Jahren mal wieder ran muss, ist ein genormter ISP viel schneller zur Hand als die Speziallösung. Da bleibt sogar der Lötkolben kalt.  ::)

Anbei ein Pro Mini, besagter 6pol. ISP, ein MAX485 für ZBus, Abschlusswiderstand zum jumpern, ein wenig Außenbeschaltung für Verpolschutz und die Spannungsregelung. Habe ich aus der Bastelkiste recycelt, mal eben gelötet und teste damit ZBus@Ethersex auf Telefonkabel. 20m sind kein Problem, längere Stücke liegen gerade nicht hier. Das spart den ENC28J60, verschwendet keine Gigabit-Ports am Switch und braucht viel weniger Strom. Zudem genügt billiges Telefonkabel. Vielleicht mach ich bei Bedarf eine Platine in SMD, welche genau unter den ProMini passt.

Viele Grüße, Ricardo

RPi_Fhem_Fan

Hallo Ricardo,

Deine Zbus@Ethersex Lösung klingt sehr interessant.
Ich habe mir bereits alle notwendigen Komponenten bestellt und möchte per Zbus meine Rolloantriebe steuern.
Kannst Du eventuell einmal Deinen Schaltplan und den Code dazu offenlegen?
Ich habe bisher über den Zbus hier im Forum nur wenig gefunden, eventuell könnte man einen eigenen Thread anlegen?

Gruß Martin

kpwg

Zitat von: RPi_Fhem_Fan am 06 April 2015, 11:47:45
Deine Zbus@Ethersex Lösung klingt sehr interessant.
Danke Martin! So schnell hab ich glaub ich auch noch nicht Forenbeiträge beantwortet. :) Passt halt grad so kurz vorm Mittag...

Mein ziel war ansich, Ethernetports zu sparen und nicht die teuren Gigabit-Ports mit 10Mbit Geräten vollzustopfen. Zudem habe ich noch eine Strecke, wo nur Telefonkabel liegt, was durch Andere eventuell zugänglich ist (bei LAN hätte ich da Bauchschmerzen) und wo- wie bei fast allen E6'en kaum Daten bewegt werden. Zudem stört der Stromverbrauch des ENC28J60.

Zitat von: RPi_Fhem_Fan am 06 April 2015, 11:47:45
Kannst Du eventuell einmal Deinen Schaltplan und den Code dazu offenlegen?
Nun, es gibt da keinen wirklichen Schaltplan und auch keinen Code. Habe ansich nur einen Controller her genommen (in dem Fall gleich einen Arduino pro mini) einen ISP zum flashen angebracht, an die Serielle (TXD, RXD und einen Pin zum Umschalten) einen MAX485 (da gibts noch bessere Tranceiver, aber der stand mir günstig zur Verfügung) und etwas Testperipherie aus der Bastelkiste.

Die letzten Tage bin ich noch einen Schritt weiter gegangen und habe mal ein kleines Board designt und hergestellt. Ein Prototyp läuft bereits, die anderen Platinen warten noch auf (jeweils zwei) Bauteile. Drei Bilder anbei. Ein paar Boards sollten zum Selbstkostenpreis über sein.
Projektvorstellung dazu: http://www.ethersex.de/index.php/ZBus_Board_1_0_%28Deutsch%29

Zitat von: RPi_Fhem_Fan am 06 April 2015, 11:47:45
Ich habe bisher über den Zbus hier im Forum nur wenig gefunden, eventuell könnte man einen eigenen Thread anlegen?
Scheint leider auch recht exotisch, obwohl RS485 doch recht gebräuchlich ist.  :-[ Ich vermute eher, es nutzt einfach Keiner.

RPi_Fhem_Fan

Ricardo,

vielen Dank für Deine sehr schnelle und äußerst detaillierte Antwort. Sobald alle Teile bei mir angekommen sind (ich muss erst noch die Max 485 IC's bestellen), werde ich einen eigenen Prototyp aufbauen.
Gerne können wir dann den Zbus gemeinsam hier im Forum dann etwas populärer machen

kpwg

Zitat von: RPi_Fhem_Fan am 06 April 2015, 13:27:30
Gerne können wir dann den Zbus gemeinsam hier im Forum dann etwas populärer machen

Bin dabei!  ;D

Smarti

Hallo,

ich weiß das Thema ist schon etwas angestaubt, aber bezieht sich genau auf ein Thema das mich schon seit einiger Zeitbeschäftigt.

Vorab:
Ich versuche meine Automatisierung so zu realisieren, dass auch im Fall eines Problems mit FHEM, Basisfunktionen erhalten bleiben. Meist tritt dann ein Problem auf, wenn man am wenigsten Zeit dafür hat sich darum zu kümmern.
Daher versuche ich ein möglichst modulares Konzept zu entwerfen, so ich schnell reagieren, bzw. austauschen kann.

Hierfür habe ich gerne AVRs im Einsatz. Eine MCU hat einfach den Charme, wenn das Programm läuft gibt es eigentliche keine Probleme.

Daher lässt mich Arduino + Ethersex seit einiger Zeit nicht mehr los. Es bietet eine einfach/günstige verfügbare Hardware + vielseitige Software mit welcher sich schnell Ideen umsetzten lassen.

Leider muss ich feststellen Ethersex hat enormes Potential, hat allerdings ein sehr hohes Einsteiger Level. Die Dokumentation von Ethersex lässt an vielen Stellen Lücken.

So warte ich momentan noch auf eine Bestellung MAX485 um mal einen Test aufzubauen. Würde gerne wie im Bild eine Topologie etablieren wollen. Kann das Funktionieren?

Hat noch jemand zusätzliche Doku zu Ethersex, also mehr als unter ethersex.de?



Beta-User

Hallo Smarti,

für den Fall, dass du mit E6 nicht weiter kommst (habe dazu seit mehreren Monaten keinen Post mehr gesehen):
Eine ähnliche Topologie kann man mit MySenors aufbauen (auch kabelgebunden mit RS485).
Um die Nodes starten zu lassen, ohne dass/bevor ein Controller (FHEM) verfügbar ist, muß man "nur" eine entsprechende Option setzen. Auch eine direkte Kommunikation Arduino<->Arduino ist möglich (letzteres habe ich aber selbst noch nicht getestet).

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Ranseyer

>Max485

Hi, habe inzwischen gelernt, dass der Max487 meist besser geeignet ist...

Gesendet von meinem VTR-L09 mit Tapatalk

FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

kpwg

Zitat von: Smarti am 13 November 2017, 14:16:53
Leider muss ich feststellen Ethersex hat enormes Potential, hat allerdings ein sehr hohes Einsteiger Level. Die Dokumentation von Ethersex lässt an vielen Stellen Lücken.

So warte ich momentan noch auf eine Bestellung MAX485 um mal einen Test aufzubauen. Würde gerne wie im Bild eine Topologie etablieren wollen. Kann das Funktionieren?

Hat noch jemand zusätzliche Doku zu Ethersex, also mehr als unter ethersex.de?
Ja, das ist leider so. Die Einstiegshürde halte ich auch für recht hoch, zumal man sich doch noch mit den Atmels und deren Besonderheiten ziemlich detailiert befassen muss. Da kann beispielsweise schon mal die eine oder andere Sache so nicht funktionieren, weil eben gerade kein Timer mehr frei ist. Der Firmwarebuilder nimmt einem da noch zahlreiche Sorgen ab; kompliziert wird es dann mit C6 Skripten. Wenn man ein wenig ergebnisorientierter basteln möchte und nur begrenzt Zeit hat, stößt man mit E6 schnell an die Grenzen. Dafür funktioniert es besonders zuverlässig- da kommt auch Homematic nicht mit. Die Doku hat sich leider nicht großartig verbessert. Einen Schub könnte das Projekt bekommen, wenn E6 in den Firmwarebuilder integriert wäre, damit man Daten leichter hin- und herschieben kann.

Die Topologie wird mit E6 funktionieren- kommt eben auf die Software an. Andere Software wird das aber auch bedienen können.  Aus reiner Hardware-Sicht hat diese Topologie reichlich Vorteile, sofern man die Möglichkeit mit entsprechenden Leitungen hat.

Zitat von: Beta-User am 13 November 2017, 14:35:45
für den Fall, dass du mit E6 nicht weiter kommst (habe dazu seit mehreren Monaten keinen Post mehr gesehen):
Eine ähnliche Topologie kann man mit MySensors aufbauen (auch kabelgebunden mit RS485).

Das muss ich mir auch mal anschauen.

Zitat von: Ranseyer am 13 November 2017, 16:54:15
Hi, habe inzwischen gelernt, dass der Max487 meist besser geeignet ist...

Sehe ich auch so. Der MAX485 war für mich damals "Basis"- mittlerweile würde ich da Besseres verbauen. Kann ich bei den drei übrig gebliebenen Boards noch korrigieren :)

Smarti

Zitat von: kpwg am 13 November 2017, 17:24:11
Ja, das ist leider so. Die Einstiegshürde halte ich auch für recht hoch, zumal man sich doch noch mit den Atmels und deren Besonderheiten ziemlich detailiert befassen muss. Da kann beispielsweise schon mal die eine oder andere Sache so nicht funktionieren, weil eben gerade kein Timer mehr frei ist. Der Firmwarebuilder nimmt einem da noch zahlreiche Sorgen ab; kompliziert wird es dann mit C6 Skripten. Wenn man ein wenig ergebnisorientierter basteln möchte und nur begrenzt Zeit hat, stößt man mit E6 schnell an die Grenzen. Dafür funktioniert es besonders zuverlässig- da kommt auch Homematic nicht mit. Die Doku hat sich leider nicht großartig verbessert. Einen Schub könnte das Projekt bekommen, wenn E6 in den Firmwarebuilder integriert wäre, damit man Daten leichter hin- und herschieben kann.

Was ist der Firmwarebuilder? Ich kenne mich mit den Atmels schon relativ gut aus, ich will nur nicht das Rad neu erfinden. Ich nutze gerne die Arduinos nur als Hardwarebasis und schreibe meine Anwendungen im AVRStudio.

Mein Plan wäre schon was E6 nicht direkt bietet mit C6 nach zurüsten. Allerdings habe ich gerade momentan auch das Thema Dokumentation: Wo werden welche Hardwareresourcen verwendet...

Zitat von: kpwg am 13 November 2017, 17:24:11
Die Topologie wird mit E6 funktionieren- kommt eben auf die Software an. Andere Software wird das aber auch bedienen können.  Aus reiner Hardware-Sicht hat diese Topologie reichlich Vorteile, sofern man die Möglichkeit mit entsprechenden Leitungen hat.

Saniere fleißig und wo es geht werden strippen gezogen ;)

Zitat von: kpwg am 13 November 2017, 17:24:11
Das muss ich mir auch mal anschauen.

Sehe ich auch so. Der MAX485 war für mich damals "Basis"- mittlerweile würde ich da Besseres verbauen. Kann ich bei den drei übrig gebliebenen Boards noch korrigieren :)

Gut zu wissen, für Tests kann ich meine MAX485 verwenden, schaue mir auf jeden Fall den MAX487 auch mal an.

kpwg

Zitat von: Smarti am 13 November 2017, 21:18:48
Was ist der Firmwarebuilder? Ich kenne mich mit den Atmels schon relativ gut aus, ich will nur nicht das Rad neu erfinden. Ich nutze gerne die Arduinos nur als Hardwarebasis und schreibe meine Anwendungen im AVRStudio.

Das ist die genutzte Oberfläche von E6. Damit baut man sich die "Firmware". Mit guter Kenntnis innerhalb der ATMEGAs ist schon sehr viel gewonnen. Ich nehme ebenso gerne Arduinos und kann damit recht schnell funktionierende Ergebnisse erzielen. Mit dem Mega 2560 habe ich noch nichts gemacht. Im Einsatz sind hier m644 mit LAN-Anbindung und m328p als ZBUS-Slaves. Ich habe die m32 alle durch m644 ersetzt, da der Puffer für ZBUS<->LAN im m32 zu klein ist. Die ZBUS Strecke verschluckt sich, wenn bei zu kleinem Puffer und zu hoher Bitrate viele Daten anstehen. Das spielt bei den normalen Meßdaten keine Rolle, wird aber kritisch, wenn man über ZBUS mit zB nur 19k2 die Weboberfläche aufruft. Hier hatte ich einen Vergleich mit verschiedenen Bitraten und Prozessoren erstellt und kam zu dem Schluß, das die entscheidende Verbesserung nur mit größerem Puffer, wie es ab m644 möglich ist, zu erzielen ist. Der m32 geht für diesen Zweck nur bescheiden, mit dem m328p als LAN-ZBUS-Gateway wars Murks. Mittlere Bitraten liefen am besten, zu hohe Bitraten stocken im Empfänger, zu niedrige Bitraten im Sender.

Zitat von: Smarti am 13 November 2017, 21:18:48
Mein Plan wäre schon was E6 nicht direkt bietet mit C6 nach zurüsten. Allerdings habe ich gerade momentan auch das Thema Dokumentation: Wo werden welche Hardwareresourcen verwendet...

In den entsprechenden Sourcen auf Github wird man da am ehesten fündig. Der Quellcode ist recht gut kommentiert, so das Du mit den AVR-Kentnissen das meiste erkennen wirst. C6 ist im Prinzip AVRGCC mit ein paar "speziellen Helferlein". Es ist auch möglich, nur mit C und seinen gängigen Befehlen zu schreiben.

Zitat von: Smarti am 13 November 2017, 21:18:48
Saniere fleißig und wo es geht werden strippen gezogen ;)

Sehr gut, da kann man notfalls alles in die Tonne werfen und KNX installieren :) ;D
Wenn die Strippen einmal liegen, ist fast alles möglich. Funk sollte immer nur zweite Wahl sein.

Zitat von: Smarti am 13 November 2017, 21:18:48
Gut zu wissen, für Tests kann ich meine MAX485 verwenden, schaue mir auf jeden Fall den MAX487 auch mal an.

Allein Maxim listet 199 RS422/485 Transceiver-ICs. Da gibt es große Unterschiede beim ESD-Schutz, verschiedene TTL-Pegel, Treiberleistungen und möglichen Geschwindigkeiten. Bei mir wars die Preisfrage; funktionieren tuts jedenfalls zuverlässig.

Smarti

Ah okey, firmwarebuilder = menuconfig. Läuft leider (meines) wissens nur unter Linux.

Hat hier jemand Erfahrung mit Docker? für mein Verständnis wäre das genau das richtig dafür, die Ethersex builder in einen Container zu packen.

Ich finden den Mega2560 recht praktisch. Da er "massig" Speicher / PIOs mit sich bringt.

In dieser Ausführung packe ich in auf ein "Baseboard": http://www.inhaos.com/product_info.php?products_id=118
alternativ mit usb: http://wiki.epalsite.com/index.php?title=Mega2560_Pro_Mini




kpwg

Zitat von: Smarti am 16 November 2017, 12:27:08
Ah okey, firmwarebuilder = menuconfig. Läuft leider (meines) wissens nur unter Linux.

Hat hier jemand Erfahrung mit Docker? für mein Verständnis wäre das genau das richtig dafür, die Ethersex builder in einen Container zu packen.

Für Linux habe ich (m)ein altes Notebook. Darauf läuft ein Debian 8 mit XFCE, der komplette E6-Kram und die Arduino Umgebung. Ich finde diese Lösung entspannter und weniger zeitaufwändig, als irgendwelche Life-Systeme oder virtuelle Umgebungen. Außerhalb der Bastelsaison räume ich die Kiste dann einfach mit weg. Ich verwende für jedes E6-Device einen separaten Pfad und konfiguriere daher im menuconfig nicht jedesmal alles wieder um, sonder kann dann auch nach längerer Zeit immer wieder an dem Punkt fortsetzen, wo ich mit dem Device zuletzt unterwegs war.