Projekt: wie funktionieren OTA Updates mit der CCU2?

Begonnen von betateilchen, 30 Januar 2014, 14:36:03

Vorheriges Thema - Nächstes Thema

betateilchen

Abgezweigt aus diversen anderen Homematic-Threads, hier mal der "Forschungsthread" zu den OTA Updates, die CCU2 an bestimmte Homematic Komponenten ausliefern kann.
Damit verknüpft sich natürlich auch die Frage/das Ziel, solche Updates vielleicht irgendwann per fhem durchführen zu können.

Aktueller Stand:

1. Geräte, für die ein OTA Update derzeit vorgesehen/möglich ist:

  • Heizungsregler HM_CC_RT_DN
  • Regensensor HM-SEN_RD_O

2. Technische Möglichkeiten, die auf CCU2 verfügbar sind:

  • SSH Zugang ist vorhanden
  • strace ist auf der CCU2 installiert

Hier die aktuelle Prozessliste einer laufenden CCU2:


# ps
PID   USER     COMMAND
    1 root     init
    2 root     [kthreadd]
    3 root     [ksoftirqd/0]
    5 root     [kworker/u:0]
    6 root     [rcu_kthread]
    7 root     [khelper]
    8 root     [kdevtmpfs]
    9 root     [netns]
   10 root     [sync_supers]
   11 root     [bdi-default]
   12 root     [kintegrityd]
   13 root     [kblockd]
   14 root     [rpciod]
   15 root     [kworker/0:1]
   16 root     [kswapd0]
   17 root     [fsnotify_mark]
   18 root     [nfsiod]
   19 root     [crypto]
   24 root     [mtdblock0]
   25 root     [mtdblock1]
   26 root     [mtdblock2]
   27 root     [mtdblock3]
   28 root     [mtdblock4]
   29 root     [mtdblock5]
   30 root     [mtdblock6]
   31 root     [mtdblock7]
   32 root     [ubi_bgt0d]
   33 root     [ubi_bgt1d]
   34 root     [kworker/u:1]
   37 root     [deferwq]
   38 root     [devfreq_wq]
   43 root     [ubifs_bgt1_0]
   82 root     [eq3spi.0]
   89 root     [file-storage]
   92 root     [khubd]
   95 root     /usr/sbin/crond
   99 root     /sbin/syslogd -m 0
  101 root     /sbin/klogd
  104 root     /lib/udev/udevd -d
  113 root     watchdog -t 30 /dev/watchdog
  128 root     udhcpd -S /etc/udhcpd.usb0.conf
  138 root     /lib/udev/udevd -d
  139 root     /lib/udev/udevd -d
  254 root     udhcpc -x hostname homematic-ccu2 -V eQ3-CCU2 -b -s /bin/dhcp.sc
  260 root     /usr/sbin/ifplugd -i eth0 -fI -u0 -d10
  288 root     /bin/eq3configd
  289 root     /bin/ssdpd
  299 root     ntpclient -h ntp.homematic.com -l
  305 root     /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
  337 root     /bin/rfd -d -f /etc/config/rfd.conf -l 5
  347 root     java -Xmx32m -Dlog4j.configuration=file:///etc/config/log4j.xml
  384 root     /bin/ReGaHss -f /etc/rega.conf -l 2
  388 root     /bin/hss_led
  450 root     /sbin/getty -L ttyAMA0 115200 vt100
  451 root     /sbin/getty -L ttyGS0 115200 vt100
  481 root     [kworker/0:2]
  530 root     /usr/sbin/sshd
  540 root     {sshd} sshd: root@pts/0
  545 root     -sh
  663 root     ps


Hat jemand eine Idee, welches der eigentlich relevante Prozess sein könnte?
Hat jemand eine Idee, wofür die anderen Prozesse (288-388) sind?




-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wernieman

  288 root     /bin/eq3configd
  289 root     /bin/ssdpd
  299 root     ntpclient -h ntp.homematic.com -l
  305 root     /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
  337 root     /bin/rfd -d -f /etc/config/rfd.conf -l 5
  347 root     java -Xmx32m -Dlog4j.configuration=file:///etc/config/log4j.xml
  384 root     /bin/ReGaHss -f /etc/rega.conf -l 2
  388 root     /bin/hss_led


Mal zum "Ausblenden":
289: ssh-Deamon
299: ntpClient zum Zeiteinstellen (holt sich Zeit von  ntp.homematic.com)
305: lighttpd: Webserver, alternative zu apache

der rest ... ???
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

Zitat von: Wernieman am 30 Januar 2014, 14:49:16

  289 root     /bin/ssdpd


289: ssh-Deamon


das glaubst Du doch selbst nicht, oder?

Der SSH-Dämon läuft als 530 und heißt auch sshd (und nicht ssdpd)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

288 root     /bin/eq3configd
337 root     /bin/rfd -d -f /etc/config/rfd.conf -l 5
347 root     java -Xmx32m -Dlog4j.configuration=file:///etc/config/log4j.xml
384 root     /bin/ReGaHss -f /etc/rega.conf -l 2
388 root     /bin/hss_led


rfd: Ist der Dienst der per XML-RPC die HM-RF Kommunikation abwickelt. Also der Homematic-Funk Software Layer
ReGaHss: Ist die Logic-Schicht. Der CCU. Also alles was das UI der CCU Logisch macht.
hss_led: Das ist der Dienst der die LED- und Taster der CCU2 ansprechbar macht.

Gruß
Dirk

Wernieman

#4
@betateilchen

Ups .. da war ich mal wider "Betriebsblind" sorry

Wollte eigentlich schreiben:
SSDP (Simple Service Discovery Protocol)
http://de.wikipedia.org/wiki/SSDP

Habe beim schreiben zu sehr weitergedacht :o(
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

@Dirk danke :)

(Taster hab ich übrigens an der CCU2 noch keine entdeckt, ich hab sie aber noch nicht aufgeschraubt)

Das heißt, rfd und ReGaHss dürften vermutlich die zwei Dinge sein, die uns am meisten interessieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

#6
Stimmt, Taster hat nur die CCU1.

ZitatDas heißt, rfd und ReGaHss dürften vermutlich die zwei Dinge sein, die uns am meisten interessieren.
Korrekt.
Wenn der Firmwareupdate etwa vergleichsweise wie bei HM-Wired funktioniert, Dann wird die Firmware Byteweise in den normalen Messages zum Device geschickt.
Und dafür ist rfd zuständig.

Update:
Link gelöscht. Ist wohl nur für registrierte Benutzer sichtbar.

jab

Moin,

Zum verifizieren kann man auch lsof verwenden. Es zeigt alle Handels aller Prozesse an. Da kannst du dann sehen welche pid das device geöffnet hat.


Gruß
Jan

martinp876

@Dirk,

die normalen messages scheinen es nicht zu sein. Diese könnten wir ja sonst mit einem "monitor HMLAN" sniffen. Das ist schon versucht worden. Es kam die Message "enter boot loader" dann war Schluss. Die Messages sind also zumindest modifiziert.

Denkbar ist, dass zum Update einiges umgeschaltet wird - so die Übertragungsgeschwindigkeit (weniger pausen), die message länge, der Overhead. Könnte sein, dass ein neuer Process für den Update gestartet wird - oder die sonstige Verarbeitung gestoppt wird.

eQ3 muss bei dieser unüblichen Datenmenge und dem sonstigen Verkehr in der Luft die Geschichte zügig und sicher über die Bühne geht. Es besteht eh die Frage was passiert, sollte der update unterborchen werden. kann das Device dann auf die alte Load zurückfallen und man darf noch einmal probieren?

netstat sollte die Kommunikationspfade beschreiben - aber wenn sie möglicherweise transient sind kann man sie vorher und nacher nicht sehen.
Es kommt auf den ersten Test an.

Interessant wäre vorab einfach einmal den normalen traffic zu tracen - wenn das klappt und der update den gleichen Pfad nimmt/process nutzt können wir ansetzen

Gruss Martin

betateilchen

Interessant finde ich, dass es zwei unterschiedliche Updateverfahren für HM-Geräte gibt: Der RT muss manuall in den Update-Modus geschaltet werden, der Regensensor aber nicht. Die Übertragung der Firmware zum Regensensor hat relativ lange gedauert (mindestens eine Minute), der Sensor hat dabei munter vor sich hingeblinkt. Ich gehe davon aus, dass die neue Firmware nicht sofort geschrieben wird, sondern erst komplett übertragen, dann geprüft und dann das Update stattfindet.

So funktioniert das auch bei der CCU2: Erst wird die Firmware auf die CCU2 hochgeladen, dann muss das eigentlich Update als nächster Schritt explizit gestartet werden. Sollte bei der Übertragung zur CCU2 etwas schiefgehen, wird das als Fehler gemeldet.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Zitat von: martinp876 am 30 Januar 2014, 19:46:50
die normalen messages scheinen es nicht zu sein. Diese könnten wir ja sonst mit einem "monitor HMLAN" sniffen. Das ist schon versucht worden. Es kam die Message "enter boot loader" dann war Schluss. Die Messages sind also zumindest modifiziert.
Also war das eine falsche Vermutung.

ZitatDenkbar ist, dass zum Update einiges umgeschaltet wird - so die Übertragungsgeschwindigkeit (weniger pausen), die message länge, der Overhead.
Das würde ich dann auch sagen. Wenn, so wie betateilchen beschreibt, der Updateprozess relativ lange dauert, dann ist auch denkbar, dass das auf einer anderen Frequenz im 868 Mhz-Bereich stattfindet. Nämlich auf einer, auf der länger gesendet werden darf.
Hat schon mal jemand versucht während dem Update mit einem SDR o.ä. zu schauen ob die Übertragung während des Updates ggf. auf einer anderen Frequenz stattfindet?
Dann könnte man den CUL entsprechend umstellen und mitlauschen.

Zitat von: betateilchen am 30 Januar 2014, 20:13:26
Ich gehe davon aus, dass die neue Firmware nicht sofort geschrieben wird, sondern erst komplett übertragen, dann geprüft und dann das Update stattfindet.
Das würde ich auch vermuten.
Im Regensensor Werkelt ein Mikrokontroller von ST (STM8L151C8U6). Dieser hat bis zu 64 KB Flash Memory.
Für die Firmware des Sensors sollten 32 KB locker ausreichen, so dass beim Update vermutlich freie Bereiche des Flashes beschrieben werden.
Nach dem Update over the Air wird der Inhalt der übertragenen Daten dann vermutlich überprüft. Checksumme. Ggf. auch noch eine Signatur.
Diese Prüfung könnte sogar "Sektorweise" erfolgen, so dass nach einem Übertragungsfehler nur noch die fehlenden und fehlerhaften Daten übertragen werden brauchen.

Falls dann alles stimmt, kann der Bootloader den Temporären Programmcode dann in den Hauptbereich kopieren / verschieben.
Somit kann man Übertragunsfehler 100 %ig ausschließen.

Gruß
Dirk

betateilchen

cool... gestern hab ich das anstehende Firmwareupdate 2.7.8 der CCU2 gemacht und was passiert heute? Neue Firmware 2.7.14 verfügbar...  8)

Also nochmal alles von vorne.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

auf dem Web ist 2.7.14 noch nicht zu finden.

Über den detaillierten Updateprozess ist es mühselig zu Diskutieren. Ist genug Flash da um 2 Images zu halten? Hat das Flash 2 oder mehr Bänke? War wird alles geprüft vor dem Schreiben? Ist der Bootloader auch in dem Flash? Ist genut RAM zu Verfügung das image ggf zwischen zu speichern? Hat man das Schreiben zeitich auf nach dem Download verschoben um processing-power für dem Message-transfere zu haben? es gibt viele Möglichkeiten.
Wichtig ist, dass zumindest einige Tests (checksumme) durchgeführt werden, bevor das Device umschaltet. Das müsste eQ3 schon machen zur eignen Sicherheit - und wir haben auch mehr spielraum zum Testen.

Die Imagefiles müssten in der CCU Fw eigentlich voliegen - ich habe keinen Entpacker für das Image. Kann einer das File des T mir zukommen lassen?

jab


betateilchen

Hier mal was zur Größe der Firmwarefiles...


# ls -al
total 1416
drwxr-xr-x    4 root     root          1608 Jan 30 10:56 .
drwxr-xr-x   20 root     root          1448 Jan 30 10:56 ..
-rwxr-xr-x    1 root     root         57880 Jan 30 10:56 coprocessor_update.eq3
-rwxr-xr-x    1 root     root          1539 Jan 30 10:56 fwmap
-rwxr-xr-x    1 root     root        136112 Jan 30 10:56 hm-cc-rt-dn_update.eq3
-rwxr-xr-x    1 root     root        125920 Jan 30 10:56 hm-lgw-o-tw-w-eu_update.eq3
-rwxr-xr-x    1 root     root         67096 Jan 30 10:56 hm-sen-rd-o_update.eq3
-rwxr-xr-x    1 root     root        146872 Jan 30 10:56 hmw-lgw-o-dr-gs-eu_update.eq3
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_io12_sw14_dr_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_io12_sw7_dr_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_io_12_fm_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_io_4_fm_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_io_sr_fm_hw0_unstable.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_lc_bl1_dr_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_lc_dim1l_dr_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_lc_sw2_dr_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_sen_sc_12_dr_hw0.hex
-rwxr-xr-x    1 root     root         86413 Jan 30 10:56 hmw_sen_sc_12_fm_hw0.hex
drwxr-xr-x    2 root     root          1344 Jan 30 10:56 hs485types
drwxr-xr-x    3 root     root          7472 Jan 30 10:56 rftypes

# cat fwmap
#Type           Filename                Version

#Module types reported by firmware

#Hardware types reported by bootloader
#HomeMatic Wired
H16V0                   hmw_io_4_fm_hw0.hex                             @0x77F0         #HMW-IO-4-FM
H17V0                   hmw_lc_sw2_dr_hw0.hex                   @0x77F0         #HMW-LC-Sw2-DR
H18V0                   hmw_io12_sw7_dr_hw0.hex         @0x77F0         #HMW-IO-12-Sw7-DR
H20V0                   hmw_lc_dim1l_dr_hw0.hex         @0x77F0         #HMW-LC-Dim1L-DR
H21V0                   hmw_lc_bl1_dr_hw0.hex                   @0x77F0         #HMW-LC-Bl1-DR
H22V0                   hmw_io_sr_fm_hw0_unstable.hex   @0x77F0         #HMW-IO-SR-FM(UNSTABLE)
H25V0                   hmw_sen_sc_12_dr_hw0.hex                @0x77F0         #HMW-Sen-SC-12-DR
H26V0                   hmw_sen_sc_12_fm_hw0.hex                @0x77F0         #HMW-Sen-SC-12-FM
H27V0                   hmw_io_12_fm_hw0.hex                    @0x77F0         #HMW-IO-12-FM
H28V0                   hmw_io12_sw14_dr_hw0.hex                        @0x77F0         #HMW-IO-12-SW14-DR

#Coprozessor
ARM7                    hss_comm.enc                                    0.056
CCU2                    coprocessor_update.eq3                          1.0.11          #CoProzessor CCU2 

#Gateways
HMW-LGW-O-DR-GS-EU hmw-lgw-o-dr-gs-eu_update.eq3 1.0.5
HM-LGW-O-TW-W-EU hm-lgw-o-tw-w-eu_update.eq3 1.1.3

#HomeMatic RF
149 hm-cc-rt-dn_update.eq3 1.2 # HM-CC-RT-DN
167 hm-sen-rd-o_update.eq3 1.4 #HM-Sen-RD-O




Welche XML Files hättest Du denn gerne?


# ls -al
total 2400
drwxr-xr-x    3 root     root          7472 Jan 30 10:56 .
drwxr-xr-x    4 root     root          1608 Jan 30 10:56 ..
drwxr-xr-x    2 root     root           240 Jan 30 10:56 replaceMap
-rwxr-xr-x    1 root     root          7310 Jan 30 10:56 rf_4dis.xml
-rwxr-xr-x    1 root     root          3638 Jan 30 10:56 rf_ash550.xml
-rwxr-xr-x    1 root     root         39689 Jan 30 10:56 rf_bl.xml
-rwxr-xr-x    1 root     root         38788 Jan 30 10:56 rf_bl_644.xml
-rwxr-xr-x    1 root     root         38543 Jan 30 10:56 rf_bl_conf_644.xml
-rwxr-xr-x    1 root     root         37705 Jan 30 10:56 rf_bl_conf_644_le_v2_1.xml
-rwxr-xr-x    1 root     root         38472 Jan 30 10:56 rf_bl_le_v2_3.xml
-rwxr-xr-x    1 root     root         70348 Jan 30 10:56 rf_cc_rt_dn.xml
-rwxr-xr-x    1 root     root         74682 Jan 30 10:56 rf_cc_rt_dn_bom.xml
-rwxr-xr-x    1 root     root         94279 Jan 30 10:56 rf_cc_tc.xml
-rwxr-xr-x    1 root     root         93331 Jan 30 10:56 rf_cc_tc_le_v1_9.xml
-rwxr-xr-x    1 root     root          3295 Jan 30 10:56 rf_cc_vd.xml
-rwxr-xr-x    1 root     root          3649 Jan 30 10:56 rf_central.xml
-rwxr-xr-x    1 root     root         38899 Jan 30 10:56 rf_cf.xml
-rwxr-xr-x    1 root     root         42021 Jan 30 10:56 rf_cfm.xml
-rwxr-xr-x    1 root     root         24205 Jan 30 10:56 rf_cm.xml
-rwxr-xr-x    1 root     root          6496 Jan 30 10:56 rf_cmm.xml
-rwxr-xr-x    1 root     root         32838 Jan 30 10:56 rf_d.xml
-rwxr-xr-x    1 root     root         31140 Jan 30 10:56 rf_d_le_v1_7.xml
-rwxr-xr-x    1 root     root         31357 Jan 30 10:56 rf_d_le_v1_9.xml
-rwxr-xr-x    1 root     root         20341 Jan 30 10:56 rf_ddc.xml
-rwxr-xr-x    1 root     root         41283 Jan 30 10:56 rf_dim_1l_644.xml
-rwxr-xr-x    1 root     root         40049 Jan 30 10:56 rf_dim_1l_644_le_v2_4.xml
-rwxr-xr-x    1 root     root         41947 Jan 30 10:56 rf_dim_1pwm_644.xml
-rwxr-xr-x    1 root     root         40847 Jan 30 10:56 rf_dim_1pwm_644_le_v2_4.xml
-rwxr-xr-x    1 root     root         43042 Jan 30 10:56 rf_dim_1t_644.xml
-rwxr-xr-x    1 root     root         41663 Jan 30 10:56 rf_dim_1t_644_le_v2_4.xml
-rwxr-xr-x    1 root     root         41977 Jan 30 10:56 rf_dim_1tconf_644.xml
-rwxr-xr-x    1 root     root         41158 Jan 30 10:56 rf_dim_1tconf_644_le_v2_4.xml
-rwxr-xr-x    1 root     root         40875 Jan 30 10:56 rf_dim_2l_644.xml
-rwxr-xr-x    1 root     root         39779 Jan 30 10:56 rf_dim_2l_644_le_v2_4.xml
-rwxr-xr-x    1 root     root         42211 Jan 30 10:56 rf_dim_2t_644.xml
-rwxr-xr-x    1 root     root         41115 Jan 30 10:56 rf_dim_2t_644_le_v2_4.xml
-rwxr-xr-x    1 root     root         33991 Jan 30 10:56 rf_dim_t.xml
-rwxr-xr-x    1 root     root         32747 Jan 30 10:56 rf_dim_t_le_v1_9.xml
-rwxr-xr-x    1 root     root         33905 Jan 30 10:56 rf_es_pmsw.xml
-rwxr-xr-x    1 root     root         20747 Jan 30 10:56 rf_fs_ba.xml
-rwxr-xr-x    1 root     root         15212 Jan 30 10:56 rf_keymatic.xml
-rwxr-xr-x    1 root     root          6493 Jan 30 10:56 rf_ks550.xml
-rwxr-xr-x    1 root     root          7155 Jan 30 10:56 rf_ou_led16_ge_v1_1.xml
-rwxr-xr-x    1 root     root          6529 Jan 30 10:56 rf_ou_led16_le_v1_0.xml
-rwxr-xr-x    1 root     root          7499 Jan 30 10:56 rf_pb-2-wm55_ge_v1_4.xml
-rwxr-xr-x    1 root     root          7293 Jan 30 10:56 rf_pb-2-wm55_le_v1_3.xml
-rwxr-xr-x    1 root     root          7234 Jan 30 10:56 rf_pbi.xml
-rwxr-xr-x    1 root     root          7573 Jan 30 10:56 rf_rc-4-2.xml
-rwxr-xr-x    1 root     root          6911 Jan 30 10:56 rf_rc-key4-2.xml
-rwxr-xr-x    1 root     root          6911 Jan 30 10:56 rf_rc-sec4-2.xml
-rwxr-xr-x    1 root     root          8386 Jan 30 10:56 rf_rc.xml
-rwxr-xr-x    1 root     root          7736 Jan 30 10:56 rf_rc_12.xml
-rwxr-xr-x    1 root     root         19385 Jan 30 10:56 rf_rc_19.xml
-rwxr-xr-x    1 root     root          6942 Jan 30 10:56 rf_rc_single_on.xml
-rwxr-xr-x    1 root     root          8997 Jan 30 10:56 rf_rd.xml
-rwxr-xr-x    1 root     root          8072 Jan 30 10:56 rf_rd_le_v1_3.xml
-rwxr-xr-x    1 root     root         49686 Jan 30 10:56 rf_rep.xml
-rwxr-xr-x    1 root     root         40392 Jan 30 10:56 rf_resc_win_pcb_sc.xml
-rwxr-xr-x    1 root     root          8299 Jan 30 10:56 rf_rhs.xml
-rwxr-xr-x    1 root     root          7910 Jan 30 10:56 rf_rhs_e_v1_7.xml
-rwxr-xr-x    1 root     root          7730 Jan 30 10:56 rf_rhs_le_v1_6.xml
-rwxr-xr-x    1 root     root         59776 Jan 30 10:56 rf_roto_wdf_solar.xml
-rwxr-xr-x    1 root     root         25423 Jan 30 10:56 rf_s.xml
-rwxr-xr-x    1 root     root          2642 Jan 30 10:56 rf_s550ia.xml
-rwxr-xr-x    1 root     root         21725 Jan 30 10:56 rf_s_1conf_644.xml
-rwxr-xr-x    1 root     root         20645 Jan 30 10:56 rf_s_1conf_644_le_v2_1.xml
-rwxr-xr-x    1 root     root         21617 Jan 30 10:56 rf_s_1conf_644_le_v2_3.xml
-rwxr-xr-x    1 root     root         20898 Jan 30 10:56 rf_s_4_ba.xml
-rwxr-xr-x    1 root     root         23599 Jan 30 10:56 rf_s_644.xml
-rwxr-xr-x    1 root     root         20737 Jan 30 10:56 rf_s_ba.xml
-rwxr-xr-x    1 root     root         18842 Jan 30 10:56 rf_s_le_v1_5.xml
-rwxr-xr-x    1 root     root         25103 Jan 30 10:56 rf_s_le_v2_3.xml
-rwxr-xr-x    1 root     root         16571 Jan 30 10:56 rf_s_mega168.xml
-rwxr-xr-x    1 root     root          7763 Jan 30 10:56 rf_sc.xml
-rwxr-xr-x    1 root     root          7186 Jan 30 10:56 rf_sc_e_v1_7.xml
-rwxr-xr-x    1 root     root          7006 Jan 30 10:56 rf_sc_le_v1_6.xml
-rwxr-xr-x    1 root     root          6322 Jan 30 10:56 rf_scd_v1_0.xml
-rwxr-xr-x    1 root     root          6695 Jan 30 10:56 rf_sci_3.xml
-rwxr-xr-x    1 root     root          8850 Jan 30 10:56 rf_sec_mdir.xml
-rwxr-xr-x    1 root     root          8625 Jan 30 10:56 rf_sec_mdir_v1_5.xml
-rwxr-xr-x    1 root     root          5878 Jan 30 10:56 rf_sec_sd.xml
-rwxr-xr-x    1 root     root          5542 Jan 30 10:56 rf_sec_sd_schueco.xml
-rwxr-xr-x    1 root     root         25511 Jan 30 10:56 rf_sec_sfa.xml
-rwxr-xr-x    1 root     root          5851 Jan 30 10:56 rf_sen_ep.xml
-rwxr-xr-x    1 root     root          8180 Jan 30 10:56 rf_sen_mdir.xml
-rwxr-xr-x    1 root     root          7946 Jan 30 10:56 rf_sen_mdir_v1_5.xml
-rwxr-xr-x    1 root     root          8540 Jan 30 10:56 rf_sen_wa_od.xml
-rwxr-xr-x    1 root     root          4345 Jan 30 10:56 rf_swi.xml
-rwxr-xr-x    1 root     root        164176 Jan 30 10:56 rf_tc_it_wm-w-eu.xml
-rwxr-xr-x    1 root     root          6709 Jan 30 10:56 rf_tis.xml
-rwxr-xr-x    1 root     root          6305 Jan 30 10:56 rf_tis_le_v1_0.xml
-rwxr-xr-x    1 root     root          5690 Jan 30 10:56 rf_wds30_ot2.xml
-rwxr-xr-x    1 root     root          3466 Jan 30 10:56 rf_wds40_th_i_2.xml
-rwxr-xr-x    1 root     root          6510 Jan 30 10:56 rf_wds_v1_0.xml
-rwxr-xr-x    1 root     root          7250 Jan 30 10:56 rf_wds_v1_1.xml
-rwxr-xr-x    1 root     root         23400 Jan 30 10:56 rf_winmatic.xml
-rwxr-xr-x    1 root     root          4073 Jan 30 10:56 rf_ws550.xml
#
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!