Autor Thema: Selbstlernende Intertechno Codecs mit CUL auslesen  (Gelesen 12028 mal)

exmerci

  • Gast
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #15 am: 06 Februar 2017, 09:58:12 »
Hallo,

ich bin durch Zufall über Google auf diesen Thread gestoßen und hänge meine Frage mal hier an um nicht einen Neuen aufmachen zu müssen.
Da ich hier noch nicht ganz dran lang blicke habe ich erstmal nur eine einfache Frage.
Ich möchte einen Intertechno Schalter einfach durch eine einfaches get command ansteuern um es in einem Script zu verwenden. Ich habe ein Brematic Modul welches die Brücke zwischen Computer und Funk herstellt..
Meine Frage: Ist es überhaupt möglich?

Offline Zeuss65

  • New Member
  • *
  • Beiträge: 3
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #16 am: 19 November 2018, 07:33:49 »
Servus erstmal an alle  :)

Eines vorweg: Ich beziehe mich hier auf die "alternative" CulFW (a-culfw) von BjörnH (die es hier gibt). Ob alles auch mit der "normalen" CulFW geht, weiß ich nicht.
Ich bin selber kein FHEM-Nutzer, daher verzeit mir bitte wenn ich hier in völliger Unwissenheit irgendwelche Sachen schreibe die für euch ohnehin trivial sind.

Gebrauchen kann man diese Anleitung vor allem, wenn man seine selbstlernenden Intertechno Geräte bereits mit einer Fernbedienung angelernt hat und sie mit einer CUL ansteuern möchte, ohne dafür extra die Unterputzdosen wieder öffnen zu müssen.

Seit einiger Zeit habe ich hier eine NanoCUL rumliegen und wollte damit lediglich unter Linux per Bash meine Geräte schalten können.
Im Wiki bin ich dann auf einen Eintrag gestoßen wie man sich bei selbstlernenden Geräten einen Code "ausdenken" kann. Man kann, sofern man denn die Geräte bereits mit einer Fernbedienung angelernt hat, die Codes der Fernbedienung jedoch auch einfach auslesen.

Dazu öffnet man einfach ein Terminal und verbindet sich mit dem CUL, z.B. mit picocom, minicom oder wie sie alle heißen.
Dann bewegt man den CUL per "X21" Befehl dazu, empfangene Daten auszuspucken.
Nun drückt man auf seiner angelernten Fernbedienung die Taste, welche man "decodieren" möchte.

Das ganze sieht dann in etwas so aus:

christian@rechenknecht  ~  picocom -b 38400 /dev/ttyUSB0 -c
picocom v1.7

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 38400
parity is      : none
databits are   : 8
escape is      : C-a
local echo is  : yes
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        :
omap is        :
emap is        : crcrlf,delbs,

Terminal ready
X21
i59966A9A995A965660

Was jetzt hier von Bedeutung ist, ist der String i59966A9A995A965660. Im Prinzip steckt in den 16 zeichen nach dem "i" der komplette Code als Manchester-Coding im Hex-Format. Möchte man jetzt mit dem CUL etwas schalten kann man jedoch nicht einfach den selben String auf die serielle Schnittstelle schicken und gut ist. Die CulFW erwartet einen String wie z.B. is00101001011110111010001110010001.
Um ebendiesen aus einer Antwort der CUL zu extrahieren habe ich mal ein kurzes Python-Script geschrieben. Dieses gibt zum einen den kompletten String aus, den man dann auf die serielle Schnittstelle schicken kann und zum anderen spuckt es noch ein paar weitere Informationen aus, welcher Teil des Strings eigentlich was bedeutet. Wen es interessiert, der kann gerne im Homeeasy Hacking Wiki nachschauen.

Nun zum eigentlichen, dem Skript:
Am einfachsten ihr holt es euch mit wget oder git oder ihr ladet es hier oder aus dem Anhang herunter:

wget https://raw.githubusercontent.com/ChristianRinn/cul_scripts/master/cul_decode_itv3.pyoder
git clone https://github.com/ChristianRinn/cul_scripts
Dann muss man lediglich den empfangenen String von der CUL dem Skript als Argument übergeben und man bekommt den String, mit welchem man schalten kann zurück:

python cul_decode_itv3.py i59966A9A995A965660

Das Skript antwortet dann in etwa so:


The string to enter in your serial terminal is:
is00101001011110111010001110010001

The id of your remote control is:
00101001011110111010001110

The group flag is:
0

Your device was set to:
1

The group code is:
0001

Sooo, das war jetzt viel mehr als ich eigentlich dazu schreiben wollte und von meiner Seite sind da auch noch ein paar Fragen, z.B. warum das nicht direkt in der CUL-FW implementiert ist aber ich vermute mal, dass es mit FHEM und dem "alten" Intertechno-Protokoll zusammenhängt.
Nun ja, ich hoffe das es irgendjemand nützlich sein wird.

Viele Grüße

Christian

Edit: Skript angehängt

Wie kann ich unter Windows das Python-Script anwenden und den Code umrechnen ?
Ich nutze Raspberrymatic mit cuxd .
Gruß Jens

Offline RaspiLED

  • Hero Member
  • *****
  • Beiträge: 1937
  • Es begann alles so klein ;-)
Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #17 am: 19 November 2018, 08:10:20 »
Naja, Linux Subsystem(z.B. Debian) in Windows 10 installieren ;-)

Ansonsten halt Python unter Windows installieren.

*Duck weg*
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline Mast3rchief

  • Newbie
  • Beiträge: 2
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #18 am: 07 Dezember 2018, 23:16:09 »
Guten Abend,
bei meinen CSL/Bearware Funktsteckdosen hat das Dekodieren mit deinem Skript wunderbar geklappt, ein großes DANKE!
Meine Frage ist nun: Hat sich bei der Implementation in FHEM oder der a-culfw irgendetwas getan?
Ich kann die Funksteckdosen mit den umgerechneten Codes problemlos schalten, jedoch ging autocreate nicht und auch der Empfang (1.26.01 a-culfw) der mitgelieferten Fernbedienung funktioniert nicht:
Der CUL erkennt zwar ein Signal, sagt aber "unknown code, help me!", weil er wahrscheinlich intern keine Dekodierung vornimmt.
Da es sich doch eigentlich "nur" um ITv3 Codes handelt, sollte es doch nativ funktionieren oder irre ich mich?

Offline RaspiLED

  • Hero Member
  • *****
  • Beiträge: 1937
  • Es begann alles so klein ;-)
Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #19 am: 08 Dezember 2018, 00:15:16 »
Hi,
Könnte es evtl am Basistakt liegen?

attribut ITClock schau mal hier:
https://forum.fhem.de/index.php/topic,72000.msg636654.html#msg636654

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline Mast3rchief

  • Newbie
  • Beiträge: 2
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #20 am: 08 Dezember 2018, 16:07:26 »
Hi,
Könnte es evtl am Basistakt liegen?

attribut ITClock schau mal hier:
https://forum.fhem.de/index.php/topic,72000.msg636654.html#msg636654

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...

Vielen Dank für die schnelle Hilfe!
Dann muss ich den ITClock im IT Device setzen, richtig?
Wenn ich das dem verlinkten Thread richtig entnehme, ist der Parameter nach pXX der ITClock?
Meine Nachrichten sehen so aus:
Unknown code p11  256 1216  240  256  256 1232  64  1  8 0   224  8960     0 EC 95959A96AAAA95A9, help me!
Also wäre der ITClock 256. Doch leider hat sich nichts getan.
Mein Device sieht folgendermaßen aus:

defmod Lampe_WZ IT 10001000101110011111111110 0 1110
attr Lampe_WZ IODev CUL433
attr Lampe_WZ ITrepetition 5
attr Lampe_WZ eventMap on:an off:aus
attr Lampe_WZ group Licht
attr Lampe_WZ model itswitch
attr Lampe_WZ protocol V3
attr Lampe_WZ room Wohnzimmer

Den binären Code habe ich aus dem "95959A96AAAA95A9" dekodiert.
Mache ich evtl. schon bei der Definition etwas falsch?

 

decade-submarginal