Neuartiges 1-Wire Interface

Begonnen von Prof. Dr. Peter Henning, 18 Januar 2014, 21:00:45

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Hallo Forum,
ich hab ein neues 1-Wire Interface gebaut, mit dem ein 1-Wire-Bus direkt ans Ethernet angekoppelt wird. Und zwar mit Hilfe dieses Moduls hier:

http://shop.kristech.pl/p/32/258/kt-eth-uart-1-.html

Das Teil stellt zwei UART-Ports zur Verfügung, an die man je einen DS2480 direkt anschließen kann. Auf der FHEM-Seite wird zeitgleich mit FHEM das Programm socat gestartet, das eine Telnet-Verbindung zu dem Kristech-Teil aufbaut und FHEM als virtuellen seriellen Port  zur Verfügung stellt:

socat PTY,link=/dev/vmodem0,raw,echo=0,waitslave TCP4:192.168.0.96:23

Das OWX-Modul als Backend greift auf diesen seriellen Port zu und funktioniert wie gewohnt.

Warum und wo soll dieses einsetzbar sein ? Ziel ist zunächst, 1-Wire in größerer Entfernung via Ethernet anzusprechen. Da gibt es eine Lücke:

- Der CUNO hat sich als ziemlich wenig tauglich erwiesen, komplexere 1-Wire Systeme aus der Entfernung zu bedienen.
- Einen Raspberry Pi mit OWFS und irgendeinem Interface kann man zwar mit OWServer ansprechen. Das läuft stabil (bei mir auch), ist aber wegen des Einstiegs in die RPi-Welt nicht jedermannes Sache.

Das Kristech-Modul verbraucht sehr wenig elektrische Leistung (weniger als 1 Watt) und ist sehr viel kleiner als ein RPi.

Eine detaillierte Anleitung werde ich demnächst posten.

LG

pah


ntruchsess

Zitat von: Prof. Dr. Peter Henning am 18 Januar 2014, 21:00:45Ziel ist zunächst, 1-Wire in größerer Entfernung via Ethernet anzusprechen. Da gibt es eine Lücke:
Schicke Idee, aber die genannte Lücke ist schon lange durch den Arduino mit Ethernet über OWX mit FRM geschlossen ;-)
Aber lass Dich deswegen nicht bremsen, Vielfalt schadet ja nicht :-)

Gruß,

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

Prof. Dr. Peter Henning

Ach, Du mit Deinem Arduino ...

So lange es die Dinger nicht fertig geflasht zu kaufen gibt, ist da eine Lücke. Aber lass Dich in Deinem Enthusiasmus nicht bremsen  ;D

LG

pah

spectra

Mir gefällt die Idee eines kompakten Ethernet-Buskopplers, das hatte ich mir vom CUNO beim Kauf erhofft.
Die Lücke besteht also durchaus nach wie vor. :) Das ganze transparent als UART-Port durchzuleiten wäre prima.
Ein wirkliches Novum wäre es, wenn man über einen PoE IC (nach 802.11af) den Bus speisen könnte. Das würde einige Probleme mit Sternverkabelungen lösen.

Ein Arduino mit angeflanschten Bus-Adaptern ist da auch nur bedingt geeignet, eben aus dem von pah genannten Grund: "ist aber wegen des Einstiegs in die Arduino [RPi]-Welt nicht jedermannes Sache."
Ein fertiges Board wäre da also schon viel schöner.

Mein "Traum"-Ethernet-Buskoppler sieht so aus:
- PoE fähig nach 802.11af (oder Stromversorgung per normalem Netzteil)
- vollständig SMD, also möglichst kleiner Footprint
- Jumperbarer RC-Filter (ggf. per Software, 2. Version ;), dann evtl. verschiedene RC-Kombinationen)
- Schraubklemmen und RJ45 für 1-Wire
- Nur ein DS2480
- evtl. ein DS18B20 onboard, rein zur "Ja-die-Kommunikation-funktioniert"-Bestätigung
- Per OWX ansprechbar
- vorgeflasht, FW-Update per Ethernet wünschenswert
- natürlich niedriger Stromverbrauch
- Bohrungen für Befestigung, z.B. für einen Hutschienenclip.
- Als Sahnehäubchen wäre es schön, wenn das ganze sich in ein Keystone-Panel klicken ließe, mit 1-Wire Schraubklemmen auf der Rückseite und Ethernet vorne. Dazu müsste die Platine aber wirklich klein und länglich werden.

Für größere Projekte wäre eine Mehr-Port Version natürlich genial, vorausgesetzt es lassen sich noch mehr UARTs am Microcontroller einrichten. Dann gleich mit 4 (oder mehr) DS2480 und separaten Anschlüssen. Dann eher nicht mehr als Keystone, dafür dann mit galvanisch getrennter Stromversorgung für die einzelnen Busreihen. Wie weit man da mit den spezifizierten 15,4 Watt von PoE kommt, weiß ich jetzt nicht einzuschätzen.

Für Sicherheit muss man als Betreiber des Moduls dann eben per VLAN sorgen, denn ich glaube eine Verschlüsselung einzubauen wäre übertriebener Aufwand.

So, das ist jetzt evtl. alles etwas viel verlangt, aber das musste einfach mal raus, vll. schnappt ja jemand eine Idee auf. Ich wäre froh, sowas kaufen zu können. :)

Beste Grüße,
Stefan

UweH

Seeeeeehr gut, da würde ich glatt meine Raspberrys ersetzen. Leider haben die KrisTechs heftige Versandkosten nach Deutschland, was ein "mal so testen" etwas verhindert. Da wäre fast eine Sammelbestellung angebracht.
@pah: läuft das problemlos und stabil?

ntruchsess

Zitat von: spectra am 19 Januar 2014, 12:47:20Ein Arduino mit angeflanschten Bus-Adaptern[...]wegen des Einstiegs in die Arduino [RPi]-Welt nicht jedermannes Sache. Ein fertiges Board wäre da also schon viel schöner.
Zitat von: Prof. Dr. Peter Henning am 19 Januar 2014, 05:36:40
So lange es die Dinger nicht fertig geflasht zu kaufen gibt, ist da eine Lücke.

Meint Ihr tatsächlich, dass fertig mit EthernetFirmata geflashte Arduinos mit 1-Wire-Anschluss absetzbar wären?
while (!asleep()) {sheep++};

Prof. Dr. Peter Henning

#6
@ntruchsess:

Ich denke, ja - das sollte man aber nicht auf meinem Denken beruhen lassen, sondern auf einer Umfrage basieren.

@spectra:

Nix RJ45. Die sind viel zu voluminös - auf dem Raum bringe ich mindestens zwei 3,5 mm Klinkenbuchsen unter.
Nix DS1820 on board - sondern einen DS2401. Die Temperaturmessung auf dem Board kann man wegen der Abwärme des Adapters sowieso vergessen

@UweH:

Ja, seit 1 Woche ohne Probleme. Ist aber noch kein fester Aufbau, sondern sitzt auf einem Steckbrett. Kommt noch in ein Hutschienengehäuse.

Betreffend das Teil von Kristech:

  • es gibt eine Managementsoftware dafür
  • Modul ist konfigurierbar per eingebautem Mikro-Webserver
  • Firmware ist per Ethernet update-fähig
  • es werden mehrere verschiedene Protokolle gefahren, anscheinend ist auch eine Verschlüsselung möglich
  • Ports etc. sind konfigurierbar
  • es gibt eine eingebaute Mikro-Firewall - wahrscheinlich als Paketfilter
- also ganz komfortabel. Mein Polnisch ist aber nicht gut genug, um alle Details bisher schon zu durchblicken. Die interessanteste Option scheint mir im Moment die einer Verschlüsselung zu sein - damit kann man auch aus dem eigenen Haus herausgehen.

Auch die Ankopplung von OWX mit socat ist nur eine Zwischenlösung, man kann problemlos eine Erweiterung des seriellen Backends bauen, die direkt auf den Socket schreibt.

LG

pah

erwin

Frage: wäre nicht auch ein WIZ107SR http://www.wiznet.co.kr/sub_modules/en/product/Product_Detail.asp?cate1=5&cate2=8&cate3=0&pid=1092 dafür einsetzbar?
Den gibts bei etlichen Distris....

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Prof. Dr. Peter Henning

Na ja, auf den ersten Blick: So halb.

Prinzipiell sollte das gehen, das Modul verlangt aber eine Spannungsversorgung von 3,3 V, die man noch separat aus den 5V generieren müsste. Und die Programmierung scheint nicht so komfortabel zu sein, wie bei Kristech (dort geht es über einen eingebauten Mikro-Webserver). Außerdem müsste man ausprobieren, ob das mit socat auch zusammenarbeitet.

Ich habe dafür im Moment keine Zeit, also: Go ahead.

Hier die erste (noch sehr rudimentäre) Dokumentation

http://www.fhemwiki.de/wiki/1W-ETH

LG

pah

UweH

#9
Hallo pah,

ich konnte es natürlich nicht lassen... ;-)
Testaufbau steht, Zugriff und Firmwareupdate ok, aber das definieren des virtuellen Ports hakt. Dieser Befehl: socat PTY,link=/dev/vmodem0,raw,echo=0,waitslave TCP4:192.168.xxx.xx:23bewirkt offenbar gar nichts (ja, socat ist installiert), als Antwort auf die Definition sagt mir FHEM: OWX: Can't open serial device /dev/vmodem0: Permission denied Verständlich, da in /dev kein vmodem0 existiert. Gibt's da noch einen Zwischenschritt, den ich nicht ausgeführt habe?

Danke

Edit: Wenn ich Deinen Text richtig interpretiere, ist das hier
ZitatAuf der FHEM-Seite wird zeitgleich mit FHEM das Programm socat gestartet
der Knackpunkt, der mich bremst..

Prof. Dr. Peter Henning

Ahh,

Device permissions....
Kommt daher, dass FHEM nicht als root ausgeführt wird. Ich überlege mir ein eordentliche Lösung. Zwischenlösung: Bitte mit ls -l /dev/vmodem0 abfragen, auf welchen pts das zeigt:

z.B. ist die ausgabe lrwxrwxrwx 1 root root 10 Jan 26 08:15 /dev/vmodem0 -> /dev/pts/4

Dann bitte mit chmod 666 /dev/pts/4 den Port zum Schreiben freigeben.

LG

pah


Tobias

#11
cool, so einen ethernetadapter hatte ich mal bei meiner letzten kristech bestellung mit geordert. der liegt jetzt bei mir zum testen bereit...
Da ich demnächste eine PlatinenSammelbestellung mache, überlege ich gerade aus pah´s Schaltplan eine Huckepackplatine fürs 1wire zu erstellen ;) und davon auch ein paar zu ordern....
Interessenten??

Edit: pah: muss in deine Schaltung noch eine Längenkompensation mit rein?? Gibts in der Schaltung noch Optimierungspotential? Einmal bestellt ist keine Änderung mehr möglich :(
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

UweH

@pah: Diese Meldung kommt von ls:ls:Zugriff auf /dev/vmodem0 nicht möglich: Datei oder Verzeichnis nicht gefundenEs gibt in meinem /dev kein vmodem0. Wie kann man das definieren/anlegen/klauen oder was auch immer? Ich habe in den dürftigen Infos im Netz leider nicht das Passende gefunden (oder hab's nicht verstanden bzw das Falsche gesucht...)

@Tobias: Du kannst Dir dafür mal meinen Testaufbau ansehen, ich habe den Schaltplan von pah mal etwas aufgebohrt, das ist aber ganz sicher noch nicht der letzte Stand. Den Rest müssen die Tests ergeben.
Die Platine kannst Du ignorieren, das ist nur mein derzeitiger Test. Da ich 12V auf einer Leitung mitführe, habe ich ein 12V-Schaltnetzteil als Versorgung und auf dem Testaufbau einen DC/DC-Wandler für die 5V (das sind übrigens solche Teile:http://www.ebay.de/itm/DC-DC-Converter-Einstellbare-Leistung-Abwartsmodul-Buck-LM2596-S-1-23V-30V-HE-/400614066483?pt=LH_DefaultDomain_77&hash=item5d46758933, wegen der regelbaren Ausgangsspannung sehr universell einsetzbar...).

Das Interface hat übrigens einen kleinen Nachteil, es ist 35mm breit und damit 2mm zu breit für 2-fach Hutschienengehäuse. Schade, somit muss man viel Platz im größeren Gehäuse verschenken.

Prof. Dr. Peter Henning

Interessent für Platine bin ich auch - denn das Teil läuft bestens. Bei mir sehen die Sachen nach der Entwicklung immer ein wenig, nun, sagen wir, rustikal aus.

Betreffend die Schaltung: Man kann noch einen Pullup-Widerstand und ein RC-Glied mit auf die Platine nehmen. Und sich überlegen, vielleicht nur einen DS2480 anzubauen - in einem nur 25mm breiten Hutschienengehäude geht das gerade so unterzubringen, wenn man das Kristech-Modul hochkant stellt, siehe Foto.

Betreffend die Device permissions:

Ich habe in mein FHEM-Startscript die folgenden vier Zeilen eingebaut:

  socat -s PTY,link=/dev/vmodem0,raw,echo=0,waitslave TCP4:192.168.0.96:23 &
  sleep 2
  pty=`ls -l /dev/vmodem0 | grep -oE '[^ ]+$'`
  chmod 666 $pty

LG

pah

Prof. Dr. Peter Henning

#14
@UweH:

1. Ist das Interface per ping erreichbar ?
2. Ist das Kristech-Teil als Webserver zu finden (Achtung, Jumper öffnen, siehe Foto oben) ?
3. Ist socat installiert, und läuft es ? Wenn ja, welche Befehlszeile?

Betreffend die Breite, wie gesagt, ich habe es in 25 mm Hutschienengehäuse untegberacht, incl. 2 Klinkenbuchsen für meine nicht-stationären 1-Wire devices ...

LG

pah