tcl-Script

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

home-frank
Beiträge: 59
Registriert: 24.03.2009, 15:22

tcl-Script

Beitrag von home-frank » 24.06.2009, 22:36

hallo,
ich wollte so wie hier http://homematic-forum.de/forum/viewtop ... =19&t=2853 beschrieben ein tcl-script ausführen lassen.
meine ersten Versuche scheitern jedoch, es passiert garnichts, zumindest nichts was ich sehen kann.

also, ich habe per FTP die "test.tcl" nach usr/local kopiert
ein Programm im UI erstellt, ohne Bedingung nur mit folgendem Aufruf:

Code: Alles auswählen

system.Exec("tclsh /usr/local/test.tcl");
die test.tcl hat folgenden Inhalt:

Code: Alles auswählen

#!/bin/tclsh
dom.GetObject("gstatk1").State(3);
erste Zeile habe ich ohne Hintergrundwissen einfach mal aus dirch seinem Script übriggelassen
zweite Zeile funktioniert als HM-Script .
habe ich irgendwas vergessen ?
gr.
frank

Christoph
Beiträge: 283
Registriert: 28.07.2007, 13:12

Re: tcl-Script

Beitrag von Christoph » 24.06.2009, 22:47

Warum startest Du Dein Script nicht über telnet? Dann bekommst Du evtl. auch eine Fehlermeldung zu sehen.
Ciao, Christoph.

home-frank
Beiträge: 59
Registriert: 24.03.2009, 15:22

Re: tcl-Script

Beitrag von home-frank » 24.06.2009, 23:04

Christoph hat geschrieben:Warum startest Du Dein Script nicht über telnet? Dann bekommst Du evtl. auch eine Fehlermeldung zu sehen.
ähm, ja...

also Fehlermeldung sagt:
invalid command name "dom.GetObject("gstatk1").State(3)"
ich dachte er kennt die HM befehle?

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: tcl-Script

Beitrag von dirch » 25.06.2009, 01:00

Da fehlt noch eine Kleinigkeit

Code: Alles auswählen

#!/bin/tclsh
load tclrega.so

dom.GetObject("gstatk1").State(3);
Man beachte die zweite Zeile, ohne sie versteht der tcl Interpeter keinen CCU Skript Code.

Dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

home-frank
Beiträge: 59
Registriert: 24.03.2009, 15:22

Re: tcl-Script

Beitrag von home-frank » 25.06.2009, 22:15

Da fehlt noch eine Kleinigkeit
hi Dirch
ich hatte die Zeile zuerst drin, klappte nicht, dann ohne.. das gleiche,
wieder drin , geht nicht.
muß tclrega.so erst installiert, eingerichtet, aktiviert oder sonstwas werden ?

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: tcl-Script

Beitrag von dirch » 25.06.2009, 22:47

home-frank hat geschrieben:muß tclrega.so erst installiert, eingerichtet, aktiviert oder sonstwas werden ?
Nein, tclrega.so ist auf der CCU vorhanden, muss weder eingerichtet, aktiviert oder sonstwas werden. Und ohne wird es auf keinen Fall gehen.

Nimm die Zeile mal wieder rein, ruf es ueber telnet per tclsh /usr/local/test.tcl auf und poste die Ausgabe hier.

Gruss,
Dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

home-frank
Beiträge: 59
Registriert: 24.03.2009, 15:22

Re: tcl-Script

Beitrag von home-frank » 25.06.2009, 23:32

Code: Alles auswählen

~ # tclsh /usr/local/test.tcl
invalid command name "dom.GetObject("gstatk1").State(3)"
    while executing
"dom.GetObject("gstatk1").State(3);"
    (file "/usr/local/test.tcl" line 3)
und nochmal der gesammte Inhalt von test.tcl:

Code: Alles auswählen

#!/bin/tclsh
load tclrega.so
dom.GetObject("gstatk1").State(3);
gr.
frank

Christoph
Beiträge: 283
Registriert: 28.07.2007, 13:12

Re: tcl-Script

Beitrag von Christoph » 26.06.2009, 16:07

Ist denn der Name des Geräts korrekt?

Falls ja probiere doch mal:

Code: Alles auswählen

dom.GetObject('BidCos-RF.xxxxx:y.STATE').State(3);
Für xxx die SN des Geräts eintragen und bei y den Kanal.

Aber mal was anderen, was versuchst Du da zu setzen? Eine Variable? Ich kenne nämlich jetzt auf Anhieb kein HM Gerät, das mit State(3) etwas anfangen könnte.
Ciao, Christoph.

home-frank
Beiträge: 59
Registriert: 24.03.2009, 15:22

Re: tcl-Script

Beitrag von home-frank » 26.06.2009, 21:57

Christoph hat geschrieben:Ist denn der Name des Geräts korrekt?
wenn ich die Zeile 1:1 kopiere und direkt in das HM-Script stecke, funktioniert es wie erwartet.
Christoph hat geschrieben:Aber mal was anderen, was versuchst Du da zu setzen? Eine Variable?
Ja, eine Variable.
Es ist auch nur als Test gedacht, ich wollte zuerst mal sehen, ob er ein Tcl.Script verarbeitet, es ist sozusagen mein "Hallo Welt"-Tcl-Script.
aber irgendwie ist die Geburt schwerer als erwartet :shock:
gr.
frank

chii
Beiträge: 80
Registriert: 26.06.2009, 23:34

Re: tcl-Script

Beitrag von chii » 26.06.2009, 23:40

Hallo Frank,

versuch' mal folgendes:

Code: Alles auswählen

#!/bin/tclsh
load tclrega.so

rega_script {dom.GetObject("gstatk1").State(3);}
- Chii

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“