Hallo zusammen,
ich möchte gerne meinen Raspberry incl. COC868, CUL433 und RFXTRX433 als CUN an meinen FHEM Server anbinden.
Auf dem Raspberry läuft ebenfalls FHEM (Busware Image). Da ich per FHEM2FHEM jedoch keine Intertechno Steckdosen schalten kann, würde ich den Raspberry gerne per socat anbinden.
Ich habe bereits folgendes ausprobiert, bin leider für die Endlösung zu dösig:
Im Terminal /usr/bin/socat -ly -lh GOPEN:/dev/ttyACM0,raw,echo=0 TCP-LISTEN:2323 eingegeben.
Den CUL433 konnte ich so auch ansprechen. Beende ich das Terminal ist jedoch alles vorbei.
Folgendes habe ich im Wiki gefunden:
http://www.fhemwiki.de/wiki/CUL_ueber_Netz
Ich denke das dies die Lösung ist. Nur wie binde ich das was da als Script angegeben ist in den Raspberry ein. Tut mir leid, wenn ich jetzt fehlende Linuxkentnisse anschreibe, würde mich trozdem freuen, wenn mir jemand sagen könnte, wie und wo ich das Script schreibe und einbinde.
Schöne Grüße
Daniel
Hallo,
der Link zeigt doch schon auf ein Script -#!...
Das Ganze in die Datei /etc/rc.local packen - wenn es die nicht gibt erstellen. Als Editor nehme ich immer nano - aber das ist Geschmacksache. Diese Datei wird dann von dem Startscript rc.local in der /etc/init.d/ bei jedem Systemstart ausgeführt (Short-Description: Run /etc/rc.local if it exist).
Gruß Christoph
Hallo Christoph,
denke mit der Aussage das das Script in die /etc/rc.local rein muß hast du mir schon geholfen.
Müsste dann also folgendes reinschreiben, wenn ich richtig liege:
#!/bin/sh
DEV1=/dev/ttyAMA0
DEV2=/dev/ttyUSB0
DEV3=/dev/ttyACM0
while (true)
do
/usr/bin/socat -ly -lh GOPEN:$DEV1,raw,echo=0 TCP-LISTEN:2321
/usr/bin/socat -ly -lh GOPEN:$DEV2,raw,echo=0 TCP-LISTEN:2322
/usr/bin/socat -ly -lh GOPEN:$DEV3,raw,echo=0 TCP-LISTEN:2323
sleep 2
done
Gruß
Daniel
So ganz klappt es noch nicht. Habe erst einmal nur den CUL433 angebunden habe dazu folgendes in die rc.local geschrieben:
while (true)
do
/usr/bin/socat -ly -lh GOPEN:/dev/ttyACM0,b38400,raw,echo=0 TCP-LISTEN:2323
sleep 2
done
TRX und COC bekomme ich noch nicht so ganz angebunden. Weiß vielleicht jemand, ob ich das ganze Script noch einmal einfügen muß, oder wie von mir vorhin geschrieben nur die Zeile mit dem weiteren Device.
pro port/device ein eigenes script.
gruss
andre
@duese:
Hat das jetzt so funktioniert? Ich habe was ähnliches aufgebaut, allerdings mit Netcat statt Socat. Hat mit einem SCC an enem Raspberry Pi als "CUN" funktioniert. Jetzt kam ein CUL443 an den Raspberry hinzu und irgendwas hakt. Es werden sowohl CUN als auch SCC am Cubie (Master mit fhem) initialisiert, aber obwohl ich ausdrücklich dummy mit attr 0 versehen habe, erhalte ich bei Abfrage eines raw-Wertes: "No raw for dummies" Manche Dinge kommen mal an mal nicht, mache kommen gar nicht an. Hatte mit einem einzelnen CUL (bzw SCC) am Raspie dieses Problem so nicht.
Und weiter: Kannst Du parallel auch vom Raspie mit fhem auf den CUL zugreifen? Geht bei mir so nicht. Ich muss da erst fhem mit einer Config mit SCC und CUL starten, dann fhem auf dem Cubie, dann auf dem Raspie wieder beenden und evtl. mit einer speziellen Config ohne SCC/CUL-Anbindung wieder starten.
Wird Mal Zeit, über den teilweisen Erfolg zu berichten.
Warum es so ist, weiß ich nicht, aber seit ich die Definition des Typs für die CULs bzw den SCC ersatzlos entfernt habe, funktioniert es, ohne dass der CUL als Dummie angelegt wird.
Trotzdem ist das ganze nicht so perfekt. Wenn mal alles läuft ist gut. Es werden der lokale CUL833 und der lokale TRX am Cubie erkannt, über einen Raspi kommen per nc ein SCC und ein CUL433 sowie über einen zweiten Raspi ein weiterer CUL433 dazu. Der Startprozess im Falle des Neustarts eines der Raspberry Pis ist nun:
1. Starte auf beiden Raspis FHEM mit einer speziellen Config, die die CULs und den SCC lokal einbindet
2. Beende gleich FHEM wieder
3. Starte FHEM auf dem Cubie
4. Ggf. öfters mittels reopen die entfernten CULs neu einbinden, Ggf. den ganzen Prozess öfters wiederholen.
5. Der CUL433 am Raspi mit dem zusätzlichen SCC kann manchmal nicht angesprochen werden - angeblich hat er als Befehl ein unbekanntes Zeichen bekommen. Bin absoluter Laie, habe aber das Gefühl, dieses unbekannte Zeichen steckt im internen Speicher des CUL433. Es hilft dann nur, den CUL433 lokal am Raspi in FHEM zu integrieren und ihm dort einen bekannten Befehl zu verpassen. In der fhem.save auf dem Cubie muss eventuell noch der falsche Eintrag bezüglich dieses CULs gelöscht werden. Nach evtl. einigen Versuchen läuft dann wieder alles.
6. Manchmal muss für den SCC, der einige FHTs zu steuern hat, ein
set SCC raw T01xxxx
abgesetzt werden, damit er wieder mit den FHTs arbeitet.
Sobald die Kommunikation läuft, wird auf den Raspis FHEM mit einer Config ohne Einbinden der CULs/SCC gestartet, um per TTS dort die Sprachausgabe zu nutzen und per Sysmon deren Tätigkeit zu überwachen.
Ein Lichtblick: Wird am Cubie FHEM neu gestartet, werden die entfernten CULs normalerweise erkannt ohne dass an den Raspis etwas gemacht werden muss.
So ganz optimal ist das alles noch nicht. Vielleicht gibt es eine andere Möglichkeit, die das ganze automatisieren würde? Socat anstelle von netcat zu nutzen hat die Situation nicht verbessert.