nanoCUL und intertechno

Hallo @sathya,

ich habe mal eine grundsätzliche Frage zum Skripten. Ich habe mir die Anbindung von openweathermap mal etwas genauer angesehen. Wenn ich das richtig verstehe, ist dort im Device (xml-Beschreibung) das PHP-Skript zur Datenanbindung und Abholung eingebettet. Wenn ich mir aber überlege, dass ich für meine Intertechno-Steckdosen jeweils ein Device anlegen würde, kann ich dort ja nicht das Skript zur seriellen Verbindung zum CUL einbetten, da dann ja die anderen Devices nicht mehr drankommen. Wie kann man ein global verfügbares Skript starten, dass dann Devices aktualisiert, bzw. Devices kommunizieren durch das globale Skript mit dem CUL. Da fehlt mir der Überblick über das Datenmodell in homegear. Gibt es da eine Doku oder ein anderes Beispiel?

Vielen Dank und Grüße
jogant

Hallo @jogant,

kannst du mir die screen-Ausgabe mal schicken, damit ich schauen kann, ob es Intertechno-Pakete sind?

Richtig.

Richtig. Das einfachste wäre an dieser Stelle tatsächlich, alle Intertechno-Steckdosen über ein Gerät zu realisieren. Die Variante mit dem globalen Skript würde aber auch funktionieren. Das wird dann aber aufwändiger.

Das Ganze spielt aber keine große Rolle mehr, ich habe nämlich mal ein Intertechno-Modul implementiert: https://github.com/Homegear/Homegear-Intertechno

Ich vermute mal gegen morgen Abend sollte es auch für Raspbian Jessie kompiliert sein. Testen konnte ich es nur mit den neuen Steckdosen ohne DIP-Schalter.

Kurze Anleitung zum Erstellen von Geräten über das CLI:

fs 16
pc My-IT-Cul-1 1 ADRESSE

Adresse ist dabei bei den neuen Geräten die 26-stellige Gerätecode plus die 4-stellige Gruppen-ID. Das Ganze dann als Dezimalzahl. Also zum Beispiel:

  • Gerätecode: 01010010101011101000000110
  • Gruppe: 0001
  • Dann ist die Adresse 010100101010111010000001100001 => 14ABA060

Der Befehl im CLI wäre entsprechend:

 pc My-IT-Cul-1 1 14ABA060

Für die DIP-Geräte gilt das Analog:

  • Hauscode: F0F0
  • Gruppen-/Gerätecode: 0FF0
  • Festwert: 0F
  • Dann ist die Adresse F0F00FF00F. "F"s durch “1” ersetzen => 1010011001. Das Ganze Hexadezimal: 299.

Der Befehl im CLI entsprechend:

pc My-IT-Cul-1 1 299

Den Empfang von Paketen konnte ich noch nicht implementieren, weil mein CUL ja leider keine Pakete anzeigt.

Viele Grüße

Sathya

Hallo @sathya,

das sind ja super News. Wenn die RPI Pakete da sind werde ich testen und berichten. Vielen Dank dafür.

Ich habe die empfangenen Codes mal mitgeschnitten, allerdings mit CUL2MQTT. Auch dort wird X21 zum Empfang der IT-Codes eingestellt:

A: ON:  2016-10-12 00:05:39.324 <debug> cul < i01455116 { rssi: -63 }		is000FF0FFFFFF
A: OFF: 2016-10-12 00:05:47.912 <debug> cul < i01555F16 { rssi: -63 }		is000FF0FFFFF0

B: ON:  2016-10-12 00:07:13.311 <debug> cul < i015151EF { rssi: -82.5 }		is000FFF0FFFFF
B: OFF: 2016-10-12 00:07:17.508 <debug> cul < i01555FF7 { rssi: -78.5 }		is000FFF0FFFF0

C: ON:  2016-10-12 00:08:06.512 <debug> cul < i01555F02 { rssi: -73 }		is000FFFF0FFFF
C: OFF: 2016-10-12 00:08:10.310 <debug> cul < i01555FEC { rssi: -84 }		is000FFFF0FFF0

D: ON:  2016-10-12 00:08:49.865 <debug> cul < i01555F05 { rssi: -71.5 }		is000FFFFF0FFF
D: OFF: 2016-10-12 00:08:59.933 <debug> cul < i01555F01 { rssi: -73.5 }		is000FFFFF0FF0

Ich habe die RAW-Sequenzen mal dahinter geschrieben. Die eigentlichen Codes sind die hinter "cul <"
Ich nutze einen Selbstbau-CUL mit der alternativen CUL-Firmware

Grüße
jogant

Die alternative CUL-Firmware war der entscheidende Hinweis. Ich schaue dann mal, dass ich den Empfang auch noch eingebaut bekomme ;-).

Viele Grüße

Sathya

1 Like

Hallo @jogant,

den Empfang der neuen Intertechno-Pakete habe ich jetzt eingebaut. Leider habe ich kein Intertechno-Gerät, welches mir die alten Pakete sendet. Die Ausgabe von CUL2MQTT kann ich noch nicht so ganz interpretieren. Sind die zugehörigen is-Befehle sicher korrekt? An Position 8 und 9 steht beispielsweise nicht wie erwartet “0F”? Kannst du mir doch noch einmal die Screen-Ausgabe für alle Tasten und dazu deinen Hauscode und Gerätecode senden?

Viele Grüße

Sathya

Hallo @sathya,

die Pakete, die ich mitgeschnitten habe, sind so vom CUL-Stick empfangen worden. Ich werde heute Abend nochmal eine screen-Session mitschneiden. Der einzige Unterschied zwischen den Ausgaben ist die Anzahl der Pakete. Die Pakete, die mit einem (dauerhaften) Tastendruck der Fernbedienung mitgeschnitten werden, unterscheiden sich an den letzten beiden oder drei Stellen. Ich denke, dass dort die Feldstärke geschickt wird, die halt pro Paket unterschiedlich sein kann.

Ansonsten habe ich aber auch Probleme mit der Interpretation. Die empfangenen Pakete sehen anders aus, als die gesendeten, obwohl beide zum gleichen Ergebnis führen und die Steckdose schaltet. Vermutlich muss man da noch in die CUL-fw einsteigen, um zu verlässlichen Ergebnissen zu kommen.

Aber vielleicht helfen dir ja die Mitschnitte. Ich melde mich nochmal von zu Hause.

Viele Grüße
jogant

Das wäre super ;-).

Die Intertechno-Version mit Unterstützung für die neuen Fernbedienungen habe ich gerade gepushed. Sie sollte in ein paar Stunden kompiliert sein.

Hallo @sathya,

ich war nochmal tätig, obwohl ich zugeben muss, dass es immer undurchsichtiger wird.
Ich habe zwei Systeme mit jeweils drei Steckdosen, eins von REV Ritter und ein zweites ELRO440 kompatibles System von Pollin. Ich kann beide Systeme wunderbar über die passenden Codes über den CUL schalten. Wenn ich die Fernbedienung von REV Ritter betätige, sehe ich gar nichts im Monitor. Bei der Fernbedienung von Pollin sehe ich sicher bei jedem Tastendruck auch Aktivität im Monitor. Ich schreibe daher mal die Mitschnitte von der Pollin (ELRO) Fernbedienung auf.

Ich habe jeweils die ganze Ausgabe ohne das führende i von HEX in BIN umrechnen lassen und die Aktivität auf der Fernbedienung dahinter geschrieben:

10000010001010101000100001101  	A:ON
10000010001010101010000001101	A:OFF

10000010100010101000100010100	B:ON
10000010100010101010000001101	B:OFF

10000010101000101000100001101	C:ON
10000010101000101010000001010	C:OFF

10000010101010001000100001101	D:ON
10000010101010001010000000101	D:OFF

Ich habe die Schalter wie auf der FHEM-Seite beschrieben eingestellt.

Ich hoffe, du kannst was damit anfangen. Allerdings finde ich es schon sehr wunderlich, dass von der einen Fernbedienung gar nichts zu sehen ist im CUL.
Ich hatte mal ein einfaches 433 MHz-Modul direkt an die GPIOs des PI angeschlossen. Mit diesem Aufbau konnte ich aber was mitlesen. Wenn ich das mitgelesene einfach wieder ausgegeben habe, haben die Steckdosen auch geschaltet. Ist schon alles etwas merkwürdig …

Viele Grüße
jogant

2 Likes

Hallo @jogant,

ok, das passt jetzt ;-). Ich muss mir noch einmal überlegen, wie ich die verschiedenen alten Intertechno-Systeme unter einen Hut bekomme. Intertechno V3 ist da etwas einfacher… Ich werde die ELRO-Fernbedienung aber die Tage implementieren.

Viele Grüße

Sathya

Hallo @sathya,

sorry ich war die letzten Tage etwas Land unter und hatte am Abend immer mal nur ein paar Minuten hier gefummelt und bin somit nicht zum antworten gekommen. So wie ich das aber sehe hast du schon eine Menge hin bekommen und sehr viele Informationen von @jogant erhalten. Dafür an euch beide erst einmal vielen Dank!

So wie ich das gerade gelesen habe, kann man nun Daten über homegear auf jeden Fall einmal an Intertechno senden, aber die Fernbedingung noch nicht empfangen. Das ist doch korrekt oder?

Folgende Info kann ich euch noch geben, zumindest haben das meine letzten Forschungen ergeben. Die unterschiedlichen beiden Signale die durch einen Knopfdruck auf der Fernbedienung erzeugt werden, sind angeblich nicht die Signalstärke, sondern die günstigen Modelle (wie z.B. Brennenstuhl) senden einfach zwei unterschiedliche Signale und können somit von mehreren Herstellen ohne Anpassung eingesetzt werden. Ich verwende zum loggen aber eigentlich immer das erste Signal, da dies auch bei kurzem Tastendruck erzeugt wird. Ob die Aussage so stimmt, kann ich aber leider nicht sagen. Aber nach meinen Ergebnissen genügt es, dass erste Signal zu empfangen und auch wieder zu senden. Damit kann man den Schaltzustand der Dose dann ebenfalls auslösen.

Ich wäre heute und morgen Vormittag auf jeden Fall erreichbar, wenn ich irgendwie helfen kann. Da ich es leider weiterhin nicht geschafft habe, meine Signale sauber zu empfangen und an openhab zu übergeben. Mittels screen empfange ich die Pakete zwar, aber ich bekomme diese nicht in openhab eingebunden. Ich hatte das auch einmal mit cul2mqtt und a-culfw versucht, bin aber kläglich gescheitert.

@jogant: aus was besteht denn dein selbstbau CUL? Das selbe versuche ich hier nämlich auch. Ich habe hier einen Selbstbau aus einem Arduino mit a-CULFW drauf und versuche diesen an MQTT anzubinden. Bei meinem System soll nämlich langsam MQTT dreh und angelpunkt werden und openhab an dieser Stelle erst einmal ablösen um einfach flexibler zu werden. Vielleicht kannst du mir hier bitte einmal einiges mehr an Input geben?

So, dass soll es erst einmal gewesen sein. Bei Fragen einfach noch einmal bei mir melden.

Viele Grüße
Dennis

Hallo @Dennis,

mein Selbstbau-CUL besteht auch aus einem Nano und einem Billig 433 MHz Modul. Ich habe das ganze aber nicht gesteckt, sondern korrekt mit Spannungsteilern gelötet. Das Modul hat eigentlich auch eine ganz gute Reichweite. Jedenfalls besser, als die Fernbedienung.
Im Augenblick habe ich die Verbindung zu MQTT über CUL2MQTT hergestellt. Ich habe ein paar Anpassungen an der CUL-Implementierung gemacht, aber bislang ist das nicht reif für die Veröffentlichung. Das läuft aber seit einigen Tagen ohne Aussetzer. Eigentlich möchte ich insgesamt so wenig Komponenten wie möglich verwenden, daher werde ich nächste Woche die CUL-Anbindung in homegear testen. MQTT ist als Message Broker sicher eine gute Sache, weil alle Welt eine Schnittstelle zu MQTT baut. Mit CUL2MQTT ist aber wieder eine Komponente mehr im Spiel. Ich bin da aber eher leidenschaftslos und suche immer nur gut funktionierende Lösungen. MQTT nutze ich halt noch für meine MySensors-Geräte und weil die CUL-Anbindung in openHAB2 auf einem RPI derzeit nicht läuft, war das halt ein sinnvoller Ansatz.

Grüße
jogant

Hi @jogant,

welches billige 433Mhz-Modul hast du denn? Schon ein CC1101 oder? Meine config sieht nämlich aktuell genau so aus, aber CUL2MQTT will bei mir einfach nicht. Vielleicht kannst du mir deine config mal als “for internal use” weiter geben. Ich komme nämlich wirklich nicht weiter und habe bestimmt schon in Summe 80 Stunden arbeit dort rein gesteckt. Langsam mag meine Frau auch nicht mehr, da unser Haus schon etwas verrückt spielt. Ich brauche dringend mal eine Entwicklungsumgebung, um nicht immer unser Haus inkl. meiner Aquarien außer gefecht zu setzen :wink:

Pfia di
Dennis

Ja, das Funkmodul ist auf Basis des TI CC1101. Aber ein billiges aus China… CUL2MQTT stellt nicht die richtige Baudrate ein. der Selbstbau-CUL braucht 38400 Baud. Deswegen habe ich eine weitere Commandline-Option eingebaut und reiche die dann durch bis zum Öffnen der seriellen Schnittstelle.
Die beiden js-Files im Archiv kannst du auspacken und mit
screen node index.js -v 'debug' -n '/cul' -s '/dev/ttyUSB0' -b 38400
im Hintergrund starten.
Viel Erfolg
index.zip (3.8 KB)

@jogant
Vielen Dank! Damit werde ich es auch noch einmal testen. Mal schauen wie weit ich mit deinem Input komme. Ich habe nämlich aktuell die schon die Vermutung, dass mein Problem am Arduino liegt, da es einer mit CH340-Chip ist anstatt mit FTDI. Aber die Vermutung habe ich auch nur, weil ich einfach nicht mehr weiter komme. Könntest du mir noch veraten welchen Chip du drauf hast?

Viele Grüße
Dennis

Hallo @Dennis,
ich habe auch den CH340. Der tuts auch. Einziges Problem ist, dass er den Linux Kern gerne mal veranlasst, die Schnittstelle zu wechseln, (ttyUSB1 statt 0), wenn man den Arduino abzieht und wieder ansteckt. Nach einem Reboot ist aber wieder alles wie am Anfang (ttyUSB0). Einfach mal mit dmesg | grep USB schauen, wie die Schnittstelle aktuell heißt.

Gruß
jogant

Hey @jogant
okay, das Problem ist mir bekannt. Wenn das das einzige Problem ist, kann ich aktuell damit leben. Eine letze Frage noch, mit dem CUL2MQTT sendest du aber nur an die Steckdosen oder? Ein Empfang hast du da noch nicht mit dabei, richtig? Der Empfang den du an @sathya weiter oben gepostet hast, stammte immer aus dem screen. Korrekt?

Vielen Dank für eure klasse Hilfe hier!

Servus
Dennis

Hi @ Dennis,
CUL2MQTT empfängt auch und sendet was zum Broker. Ich werte das aber nicht aus, weil es unzuverlässig ist. Wenn also einer die originale Fernbedienung nimmt, laufen die Zustände auseinander. Aber damit kann ich derzeit leben. Wenn es wichtig wäre, muss man eben eine Technik mit Rückkanal verwenden.

PS: ursprünglich hat CUL2MQTT nur empfangen, die Senderichtung hat [akentner] (https://github.com/akentner/cul2mqtt) dazugebaut. Ich habe nur logging und die Baudrate eingebaut.

Gruß
jogant

Hey @jogant,

irgendwie verstehe ich nicht, wie dein nanoCUL Signale empfängt, da du in deinem Script ja kein X67 an den CUL sendest um diesen in den korrekten Modus zu versetzen. Aber ich werde dein Script ebenfalls morgen früh einmal testen. Es sind ja doch ein paar gute neue Denkansätze für mich mit dabei. Vielen Dank noch einmal!

Das die Zustände bei dem Verwenden der Fernbedienung auseinander laufen ist für mich auch okay. Vielmehr will ich die Fernbedienung nutzen um komplexe Schaltvorgänge zu steuern, anstelle nur einer einzelnen Steckdose. Ich bin gerne ein Freund von vorhandenen Komponenten weiterzuverwenden. Also warum nicht auch die Fernbedienung weiter verwenden.

Bzgl. deines PS: Danke für den Hinweis. Ich stehe aktuell auch mit beiden ein wenig in Kontakt, da ich so langsam wirklich am verzweifeln bin. Sowohl bzgl. dem Empfang und auch dem Senden. Vielleicht sollten wir uns alle einmal zusammen schließen und alle Efahrungen sammeln.

Pfia di
Dennis

Hi @Dennis,
Der CUL wird mit X21 initialisiert wenn die serielle Schnittstelle geöffnet wird. Das ist in initMode versteckt. Ich habe auch ein bisschen gesucht…
Bei X21 werden die Daten empfangen, aber mit weniger Debug Informationen.
Gruß
jogant

hi @jogant,

ah ich verstehe! Vielen vielen Dank! Du wirst es nicht glauben, aber nun habe ich es zum ersten mal zu laufen gebracht. Was ich aber noch nicht verstehe ist, dass ich es nur im debugging zum laufen bekomme. wenn ich das script ohne debuging starte wird es leider nix mit daten empfangen. hast du eine idee woran das liegen könnte?

Grüße
Dennis