Selbstlernende Intertechno Codecs mit CUL auslesen

Begonnen von rizzir, 02 Dezember 2015, 00:31:44

Vorheriges Thema - Nächstes Thema

exmerci

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?

Zeuss65

Zitat von: rizzir 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.py
oder
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

RaspiLED

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, ...

Mast3rchief

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?

RaspiLED

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, ...

Mast3rchief

Zitat von: RaspiLED 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, ...

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?

ppmss

Hallo zusammen,
ich habe einen nanoCUL 433 und schalte damit alte Funksteckdosen (Intertechno-Dip-Schlater), was recht gut funktioniert.
Nun habe ich im Baumarkt 48110_UNITEC erstanden und möchte diese gerne mit Fernbedienung anlernen und über FHEM auch über den CUL schalten.
Mit picocom erhalte ich mit X21 keine Ausgabe.
Mit X25 erhalte ich für A an:
picocom v3.1

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 38400
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : yes
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        :
omap is        :
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready
V
V 1.67 nanoCUL433
X25
p 3 1024  432  288 1200  4  2 1 1B 83C980
p 3  896  576  400 1072  4  2 1 1B 83C980
p 3  880  608  400 1088  4  2 1 1B 83C980
p 3  864  624  352 1104  4  2 1 1A 83C980

Hat jemand eine Idee, wie ich das interpretieren kann?
Was davon muss ich wie an den CUL senden? Ich verwende aktuell  CUL433.

Vielen Dank,
Peter

KölnSolar

Hallo Peter,
ZitatHat jemand eine Idee, wie ich das interpretieren kann?
Ja, kann man nichts mit anfangen. P3 sagt nur, dass der CUL glaubt, dass das Protokoll nicht vollständig ist.

ZitatV 1.67 nanoCUL433
Ganz schlechte Version, um 433MHz zu analysieren. Entweder die aktuellste aculfw auf den nano flashen oder direkt auf SIGNALduino umsteigen. Letzterer ist die zukunftsreichere Variante, weil anders konzipiert als culfw/aculfw.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

ppmss

Hallo Markus,
ich danke dir.

Mal sehen, welchen Weg ich gehe.

Ciao,
Peter


ppmss

Hm, nochwas,
Markus, Du meintest, V 1.67 nanoCUL433 sei eine schlechte Version?
Bei https://www.nanocul.de/selfsite.php?aktion=Firmware ist das aber die aktuellste, die ich finden kann.

Wo gibt es denn eine 'bessere' Firmware?

Danke und Ciao,
Peter

KölnSolar

ZitatKannst Du mir sagen, ob dieser SignalDuino ok ist?
Du hast bereits die Hardware. ;)
ZitatDu meintest, V 1.67 nanoCUL433 sei eine schlechte Version
Schlecht ausgedrückt von mir. Wenn CUL, dann die aculfw flashen. Ansonsten Signalduino flashen.
Grüße
Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

ppmss

Hallo Markus,
ich werde alt ....

Ich bekomme den flash nicht hin (habs direkt auf dem Rasp versucht - 5.10.60-v7l+ #1449 SMP Wed Aug 25 15:00:44 BST 2021 armv7l GNU/Linux)

a-culfw_1.26.08_build_324/CUL $ sudo ./flash.sh
-------------------------------------------------------------
This program flash the cul device with new firmware.
Please change the device into the bootloader
-------------------------------------------------------------
Please choose a device:
1 = CUL_V2 868MHZ
2 = CUL_V2_HM 868MHZ
3 = CUL_V2_MAX 868MHZ
4 = CUL_V3 868MHZ
5 = CUL_V4 868MHZ
6 = CUL_V2 433MHZ
7 = CUL_V2_HM 433MHZ
8 = CUL_V2_MAX 433MHZ
9 = CUL_V3 433MHZ
0 = CUL_V4 433MHZ
Please select device (1-5): 0

The device will now be flashed
Continue (y/n)?y
Flash now device
Call: dfu-programmer atmega32u2 erase
dfu-programmer: no device present.
Call: dfu-programmer atmega32u2 flash CUL_V4_433MHZ.hex
dfu-programmer: no device present.
Call: dfu-programmer atmega32u2 start
dfu-programmer: no device present.

Im /dev gibt es keine entsprechende Gerätedatei/link
was ist im flash.sh mit MCU gemeint?
Was fehlt mir noch?
Makefiles gibt es in dem Paket auch nicht ... zumindest nicht unter CUL

Danke und Ciao,
Peter

KölnSolar

Hm, das sieht aber nicht nach nano aus, sondern busware-CUL.

avrdude ist installiert ? a-culfw entpackt ? FHEM heruntergefahren(sonst geht's nicht) ?

Dann kannst Du in das Unterverzeichnis /devices/nanoCUL der entpackten aculfw gehen, dann den Aufruf sudo ./flash.sh und dann sollte der Auswahldialog so aussehen-------------------------------------------------------------
This program flash the cul device with new firmware
Please change the device into the bootloader
-------------------------------------------------------------
Please choose a device:
1 = nanoCUL868
2 = nanoCUL433
Please select device (1-2):


Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Beta-User

Das flash-Programm dfu-... war schon korrekt, aber das Teil muss erst in einen speziellen Modus => Knopf beim Einstecken drücken oder raw B00 (?).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files