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

Offline rizzir

  • New Member
  • *
  • Beiträge: 11
Selbstlernende Intertechno Codecs mit CUL auslesen
« am: 02 Dezember 2015, 00:31:44 »
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
« Letzte Änderung: 02 Dezember 2015, 00:50:36 von rizzir »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline cs-online

  • Sr. Member
  • ****
  • Beiträge: 773
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #1 am: 22 Dezember 2015, 11:03:18 »
Hallo,

erstmal: Das sieht sehr cool aus ! Und nach viel Mühe, die Du dir damit gemacht hast !

Aber das lange IT-Protokoll (V3 ?) kann zumindest die "normale" Cul-FW doch auch schon (und ich meine Björn hat das in seiner a-FW auch drin) und wenn ich das neulich bei einem Kollegen richtig gesehen habe, dann geht mit Autocreate mit einem Druck auf die Fernbedienung auch das Anlernen und automatische Anlegen in FHEM... Deshalb sehe ich leider im Moment außer den Zusatzinfos wie z.B. Gruppencode und so den Sinn Deiner Mühen nicht ganz, magst Du uns noch ein wenig mehr Hintergründe beschreiben ?

Grüße

Christian
FHEM auf Raspi 2, NanoCul 433 mit V1.65 für IT, NanoCul433 mit a-FW für Eurochrons, HM-CFG-USB-2, HM-WLAN-Gateway,ein paar HM-Aktoren,  2x EBUSD, ESP8266 am Strom-, Gas- , Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Lacrosse-Gateway und Sensoren, Alexa-Fhem... nd da geht noch was

Offline rizzir

  • New Member
  • *
  • Beiträge: 11
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #2 am: 05 April 2016, 12:40:15 »
Der eigentliche Sinn war, dass ich direkt per Bash, z.B. mit

$ printf "is00101001011110111010001110010001\n" > /dev/ttyUSB0

ein Gerät anschalten kann (ohne FHEM).
Da mir aber bei einem Druck auf die Fernbedienung die CulFW nur folgendes zurückgibt

$ i59966A9A995A965660

habe ich das Script zusammengeschustert um an die Binärkodierung zu kommen.

Wie ich bereits vermutete ist das wohl schon alles in FHEM implementiert, allerdings nicht direkt in der CulFW.

Viele Grüße
Gefällt mir Gefällt mir x 1 Liste anzeigen

Bibi.b

  • Gast
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #3 am: 10 April 2016, 12:58:55 »
Hi rizzir,

ich nutze kein FHEM, sondern die CUL am CCU2 mit Homematic. Ich habe tagelang (!!!!!) nach genau der "Übersetzung" des langen Codes gesucht und jetzt gefunden :-) Danke Dir!!! Die Eingabe des übersetzten Codes steuert jetzt z.B. meinen Intertechno ITDM-250 ! Das ist genial.
Danke

Offline sasquuatch

  • Full Member
  • ***
  • Beiträge: 334
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #4 am: 23 November 2016, 18:36:05 »
danke für deine anleitung. ich habe mir mal selbstlernende funksteckdosen vom hornbach geholt. auf der verpackung steht unitec bzw. intertek drauf
irgendeine nummer 48110, eventuell das modell. zudem noch receiver und transmitter nummern:
Receiver 55006x10
Transmitter 50074

leider bekomme ich da was anderes als du raus, kannst du damit was anfangen?

sudo 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
omB6AAAA8044
omB555556844
omB6D54AA045
omB6555046
omB6B5528044
omB5555A8044
om2AAAA04om6B5445
V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) nanoCUL433 (F-Band: 433MHz)
omB55A5044
V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) nanoCUL433 (F-Band: 433MHz)
V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) nanoCUL433 (F-Band: 433MHz)
omB55555004E
omB6DB56A451
omB6A556C050
omB556A90050
omB5556D5451
omB6DB56A852
omB555550050
omB6AB504F
omB555504E
omB6DA9AB050
omB6D56DAC4E
omAAD2A84F
omB5AAD3004E
omB6956AAA52
omB4AA9045
omB555555A8009
omB6AAA816
omB6AAAA800E
omB6AAAAA032
omB6A9550032
omB5AAD2C02E
omB5AAAA16
omB6AAAA8025
omB64B5026
omB596AA28
omB6A2A828
omB4926C2A
omB555A5802A
omB555694029
omB6AA9428
omB6AAB5502F
omB6AAA823
omB6AAAAA018
omB656AAAA16
omAAAA21
omB6AAA018
omB6AAAA8017
omB6A5555416
omB424B41C
omB6B555001E
omB5AAAAA01F
omB56D52A821
omB5A8AD0022
omB5554D000B
omB4A5354007
omB6D55AD006
omA494D8F8
omBAAAA008
omAAAAACFA
omB555AA80FD
omB6AA6A02
omB655000E
omB49AD50009
omB6AAAAC008
omB6AAA00D
omB555AAAA8005
omB6555014
omB5556D5418
omB555594012
omB6D5555413
omB6D5550016
omB6AAAB0014
omB6AAAA8013
omB6D5550009
omB5AAB540FD
omB552AAFE
omB6AB5413
omB6D56AA824
omB6AAAB4024
omB555550030
omB6D5694041
omB6AD5AD042
omB6A5594042
omB554B2A040
omB555A50040
omB6A5554041
omB65AB54040
omB655550040
omB6D5AD6840
omB6A5568046
omB64AA842
omB555A50042
omB556B54042
omB6A5568048
omB64B2A48

Offline KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3236
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #5 am: 23 November 2016, 18:53:00 »
Hi, da hast Du irgendwie das falsche Stichwort in der SuFu genutzt  :'( Die Unitec/Intertek scheinen etwas problematisch zu sein. Waren in den letzten Wochen zigmal Diskussionsthema. Gib einfach mal Unitec über das gesamte Forum ein und Dir sollten zig Beiträge um die Ohren fliegen  ;)
RPi3/2 Stretch-STV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)

Offline sasquuatch

  • Full Member
  • ***
  • Beiträge: 334
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #6 am: 24 November 2016, 11:01:40 »
habe danach schon geschaut, aber entweder sind es andere untic geräte oder haben dippschalter. zu den selbstlerndenen habe ich nichts gefunden oder es gab keine antwort mit lösungen.

da du was zu selbstlerndenen steckdosen geschrieben hast, dachte ich vielleicht gibt es da eine verbindung von intertechno zu unitec. die ganzen intertechno steckdosen mit dippschalter, sind so auch auf andere steckdosen mit dippschalter anwendbar. ich hatte gehofft, das es mit den selbsterlernenden auch geht.

dann hoffe ich das da noch irgendwer sich mal dran setzt und was bastelt, den 9,95 € ist schon ein schnapp.

Offline KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3236
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #7 am: 24 November 2016, 12:05:20 »
nicht verzagen. Es gab da Lösungen in den Beiträgen, auch V3(selbstlernend). Mal ohne dass die Fernbedienung einsetzbar ist, mal mit Modifikationen. Aber vielleicht auch nicht die Dosen, die Du ins Auge gefasst hast :'(
RPi3/2 Stretch-STV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)

Offline mahowi

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 991
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #8 am: 24 November 2016, 12:39:01 »
In diesem Thread gibt es einen Patch für culfw. Leider gibt's da noch nix für a-culfw.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Offline bjoernh

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 762
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #9 am: 26 November 2016, 19:53:24 »
In diesem Thread gibt es einen Patch für culfw. Leider gibt's da noch nix für a-culfw.
In der neuen a-culfw 1.23.00 ist etwas enthalten.
Das spezielle Bit ist dann die '3'

Was mich noch interessieren würde, wäre mal ein Empfang eines Handsenders. Ich denke da muss noch etwas im Fhem Modul angepasst werden.

Offline bjoernh

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 762
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #10 am: 26 November 2016, 22:04:50 »
Ich habe es für den Signalduino schon eingebaut, ich habe für "10" aber "D" verwendet. Die Änderung von "D" nach "3" im IT-Modul ist eine Kleinigkeit, bedeutet dann aber, daß diejenigen die das beim Signalduino bereits verwenden, den on/off Code anpassen müssen.

my %bintotristate=(
  "00" => "0",
  "01" => "F",
  "10" => "D",
  "11" => "1"
);

    return "Define $a[0]: wrong OFF format: specify a 2 digits 0/1/f/d "
    if( ($a[4] !~ m/^[df0-1]{2}$/i) );

Gruß Ralf

Hallo Ralf,

damit kann ich auch leben.
Ich werde es dann in der a-culfw auf D ändern.

OK, lokal geht es schon. Jetzt muss nur noch das FHEM Modul angepasst werden. Das sehe ich doch richtig, oder?
« Letzte Änderung: 26 November 2016, 22:30:21 von bjoernh »

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2338
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #11 am: 27 November 2016, 12:18:36 »
In der neuen a-culfw 1.23.00 ist etwas enthalten.
Das spezielle Bit ist dann die '3'

Was mich noch interessieren würde, wäre mal ein Empfang eines Handsenders. Ich denke da muss noch etwas im Fhem Modul angepasst werden.

Bei diesem Thema hier handelt sich es doch um IT v3, der Patch ist aber für IT v1.
Ich habe meine Antwort ins andere Thema verschoben.

Oder gibt es auch selbstlernende IT v1 Steckdosen?

Gruß Ralf
« Letzte Änderung: 27 November 2016, 12:29:23 von Ralf9 »
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module
SIGNALduino

Jonn3y

  • Gast
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #12 am: 13 Dezember 2016, 12:32:44 »
danke für deine anleitung. ich habe mir mal selbstlernende funksteckdosen vom hornbach geholt. auf der verpackung steht unitec bzw. intertek drauf
irgendeine nummer 48110, eventuell das modell. zudem noch receiver und transmitter nummern:
Receiver 55006x10
Transmitter 50074

leider bekomme ich da was anderes als du raus, kannst du damit was anfangen?

sudo 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
omB6AAAA8044
omB555556844
omB6D54AA045
omB6555046
omB6B5528044
omB5555A8044
om2AAAA04om6B5445
V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) nanoCUL433 (F-Band: 433MHz)
omB55A5044
V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) nanoCUL433 (F-Band: 433MHz)
V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) nanoCUL433 (F-Band: 433MHz)
omB55555004E
omB6DB56A451
omB6A556C050
omB556A90050
omB5556D5451
omB6DB56A852
omB555550050
omB6AB504F
omB555504E
omB6DA9AB050
omB6D56DAC4E
omAAD2A84F
omB5AAD3004E
omB6956AAA52
omB4AA9045
omB555555A8009
omB6AAA816
omB6AAAA800E
omB6AAAAA032
omB6A9550032
omB5AAD2C02E
omB5AAAA16
omB6AAAA8025
omB64B5026
omB596AA28
omB6A2A828
omB4926C2A
omB555A5802A
omB555694029
omB6AA9428
omB6AAB5502F
omB6AAA823
omB6AAAAA018
omB656AAAA16
omAAAA21
omB6AAA018
omB6AAAA8017
omB6A5555416
omB424B41C
omB6B555001E
omB5AAAAA01F
omB56D52A821
omB5A8AD0022
omB5554D000B
omB4A5354007
omB6D55AD006
omA494D8F8
omBAAAA008
omAAAAACFA
omB555AA80FD
omB6AA6A02
omB655000E
omB49AD50009
omB6AAAAC008
omB6AAA00D
omB555AAAA8005
omB6555014
omB5556D5418
omB555594012
omB6D5555413
omB6D5550016
omB6AAAB0014
omB6AAAA8013
omB6D5550009
omB5AAB540FD
omB552AAFE
omB6AB5413
omB6D56AA824
omB6AAAB4024
omB555550030
omB6D5694041
omB6AD5AD042
omB6A5594042
omB554B2A040
omB555A50040
omB6A5554041
omB65AB54040
omB655550040
omB6D5AD6840
omB6A5568046
omB64AA842
omB555A50042
omB556B54042
omB6A5568048
omB64B2A48

Hey, ich habe selbiges Problem mit den om-Codes. Gibt es dafür mittlerweile auch für a-culfw eine Lösung?

sti0

  • Gast
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #13 am: 22 Dezember 2016, 00:30:50 »
Hallo zusammen,

ich habe Brennenstuhl RCS 1000 Funksteckdosen.

Schalten kann ich diese z.B. mit is00FFFF0FFF0F für an und is00FFFF0FFFF0 für aus. Funktioniert wunderbar.

Wenn ich nun in minicom X21 eingebe und dann die Tasten auf der Fernbedienung drücke um eben jene Funksteckdosen zu schalten, so erhalte ich folgende Codes:

an: i05515138
aus: i0551543A

FHEM schaltet dann auch den State korrekt. Wenn ich nun jedoch das Signal außerhalb von FHEM verwenden will, müsste ich es ja auf den o.g. Code umrechnen. Das Script aus dem Thread hilft mir leider nicht weiter, da sich die Codes zu den Intertechno unterscheiden.

Irgendwie muss FHEM ja dennoch eine Umrechnung vornehmen, sonst würde der State ja nicht geändert werden. Hat jemand ne Idee wie ich die Umrechnung vollzogen bekomme?

Mein nanoCUL: V 1.23.04 a-culfw Build: 127 (2016-12-16_23-39-31) nanoCUL433 (F-Band: 433MHz)

Vielen Dank schonmal im Voraus!

Offline bjoernh

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 762
Antw:Selbstlernende Intertechno Codecs mit CUL auslesen
« Antwort #14 am: 23 Dezember 2016, 07:46:43 »
Hallo zusammen,

ich habe Brennenstuhl RCS 1000 Funksteckdosen.

Schalten kann ich diese z.B. mit is00FFFF0FFF0F für an und is00FFFF0FFFF0 für aus. Funktioniert wunderbar.

Wenn ich nun in minicom X21 eingebe und dann die Tasten auf der Fernbedienung drücke um eben jene Funksteckdosen zu schalten, so erhalte ich folgende Codes:

an: i05515138
aus: i0551543A

FHEM schaltet dann auch den State korrekt. Wenn ich nun jedoch das Signal außerhalb von FHEM verwenden will, müsste ich es ja auf den o.g. Code umrechnen. Das Script aus dem Thread hilft mir leider nicht weiter, da sich die Codes zu den Intertechno unterscheiden.

Irgendwie muss FHEM ja dennoch eine Umrechnung vornehmen, sonst würde der State ja nicht geändert werden. Hat jemand ne Idee wie ich die Umrechnung vollzogen bekomme?

Mein nanoCUL: V 1.23.04 a-culfw Build: 127 (2016-12-16_23-39-31) nanoCUL433 (F-Band: 433MHz)

Vielen Dank schonmal im Voraus!

Bsp:
i05515138
i = Intertechno
letzten zwei Werte RSSI = 38
055151 = Code (Hex)

055151 = 0000 0101 0101 0001 0101 0001 (Binär)

00 = 0
01 = F

0000 0101 0101 0001 0101 0001 = 00FFFF0FFF0F

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: 2156
  • 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: 2156
  • 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