Scriptsyntax für FS20 Aktor

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

kwb
Beiträge: 50
Registriert: 29.08.2006, 18:35
Hat sich bedankt: 3 Mal

Scriptsyntax für FS20 Aktor

Beitrag von kwb » 04.07.2017, 00:13

Ich versuche einen FS20-Aktor mit einem CCU2/WebUI-Script anzusprechen und zu schalten.
Leider komme ich bei der Definition der Befehlszeile dafür nicht weiter und habe auch keine passenden Beispiele gefunden.
Ich hoffe deshalb hier auf einen kleinen Hinweis, der mir hoffentlich weiterhilft.
Den Aktor selbst kann ich über die CUxD Terminal-Befehlszeile ansprechen und schalten.
Auch in dem CCU2/WebUI sind die angelegten CUxD-Geräte vorhanden und lassen sich über die Bedienungsseite auswählen und an- oder ausschalten.
Nur bei dem Versuch, die Geräte über einen Script anzusprechen komme ich nicht weiter weil mir offensichtlich die nötige Erfahrung fehlt.
Auch der Abschnitt 5.2 der CUxD Dokumentation hat mir dabei nicht wirklich weiter geholfen.
Irgentwie fehlt mir da die richtige Syntax für das Ansprechen der CUxD-Geräte.
Für einen kleinen Hinweis darauf, wie die dafür notwendige Befehlszeile aufgebaut sein muß, wäre ich daher sehr dankbar.
Mit bestem Dank für die Mühe und freundlichem Gruß, Werner

Benutzeravatar
uwe111
Beiträge: 4819
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Scriptsyntax für FS20 Aktor

Beitrag von uwe111 » 04.07.2017, 11:48

Hallo Werner,
kwb hat geschrieben:Nur bei dem Versuch, die Geräte über einen Script anzusprechen komme ich nicht weiter weil mir offensichtlich die nötige Erfahrung fehlt.
Wenn Du HM-Script meinst, dann erfolgt die Steuerung hier genau so, wie die Steuerung eines entsprechenden HomeMatic Aktors.
An welcher Stelle genau kommst Du nicht weiter?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von alchy » 04.07.2017, 14:32

z.B. >> H I E R << schon mal gelesen?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

kwb
Beiträge: 50
Registriert: 29.08.2006, 18:35
Hat sich bedankt: 3 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von kwb » 04.07.2017, 16:29

@Alchy, mit Hilfe deiner Dokumentation bin ich der Systematik einen Schritt näher gekommen. Die hatte ich vorher nicht gefunden. Vermutlich nach falschen Schlüsselworten gesucht. Vielen Dank dafür. Allerdings habe ich einige Merkwürdigkeiten festgestellt.
Bei dem FS20 Aktor mit dem ich getestet habe, handelt es sich um einen dieser alten Zwischenstecker FS20 ST-2.
Mit dieser Befehlszeile kann ich den Aktor einschalten.

Code: Alles auswählen

dom.GetObject("CUxD.CUX0200006:1.STATE").State("0167C010");
Mit dieser Befehlszeile läßt sich der Aktor aber nicht ausschalten.

Code: Alles auswählen

dom.GetObject("CUxD.CUX0200006:1.STATE").State("0167C000");
Dazu bedarf es das vorangestellte "F".

Code: Alles auswählen

dom.GetObject("CUxD.CUX0200006:1.STATE").State("F0167C000");
Mit vorangestelltem "F" und den Ziffern "10" am Ende läst er sich aber nicht einschalten. Ist das normal? Wo ist da die Logik?
Was mir auch nicht gelungen ist, ist die Verwendung des Datenpunkts "TOGGLE".

Code: Alles auswählen

dom.GetObject("CUxD.CUX0200006:1.TOGGLE").State();
Ich habe das mit und ohne das ".State()" am Ende versucht - ohne Erfolg. Was äre richtig? Falls ihr noch einen hilfreichen Tip dazu habt, wäre das Super.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von alchy » 04.07.2017, 18:50

kwb hat geschrieben:@Alchy, mit Hilfe deiner Dokumentation bin ich der Systematik einen Schritt näher gekommen. Die hatte ich vorher nicht gefunden. Vermutlich nach falschen Schlüsselworten gesucht.
Die CUxD Sachen habe ich ja erst vorhin eingefügt, :mrgreen: auf Grund deiner Frage hier.
Aber ob CUxD oder RF oder IP oder wired, das Vorgehen ist immer gleich, oder zumindest sehr ähnlich.

Ich habe keinerlei FS20 Geräte und damit auch überhaupt keine Möglichkeit so etwas zu checken. Aber Uwe wird sich sicher dazu äußern, oder jemand der so etwas auch einsetzt.
Die Sachne mit 0167C000 sagen mir gar nichts, da müsste ich nachlesen.
Ich hätte ja aus dem Bauch heraus vermutet, das das so wie "überall" mit .State(1) oder .State(true) für ein bzw. .State(0) oder .State(false) für aus gehen würde.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

kwb
Beiträge: 50
Registriert: 29.08.2006, 18:35
Hat sich bedankt: 3 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von kwb » 04.07.2017, 20:10

alchy hat geschrieben:Die Sachne mit 0167C000 sagen mir gar nichts
Die ersten 4 Stellen sind der hexadezimal umgerechnete FS20 Hauscode. Dann folgen zwei Stellen FS20-Adresse. Die letzten zwei Stellen sind der FS20-Befehl: 00 für aus; 10 für an. Zum Toggeln läßt man offensichtlich die beiden letzten Stellen einfach weg. Es gibt noch mehr Befehle - kann man bei Bedarf in der CUxD Doku Kapitel 5.2 nachlesen. Irritierend ist auf jeden Fall die Geschichte mit dem führenden "F", das beim Ausschalten gesetzt sein muß und beim Einschalten nicht gesetzt sein darf. Der Befehl mit dem F entspricht dem Befehlscode, den man im CUxD-Terminal in der Kommandozeile angeben kann, um ein Device anzusprechen. Dort ist das F aber bei beiden Befehlen erforderlich. Wenn Uwe da Erfahrungen hat, wäre es nett, wenn diese teilen könnte.
Nochmals vielen Dank und Grüße, Werner

Benutzeravatar
uwe111
Beiträge: 4819
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Scriptsyntax für FS20 Aktor

Beitrag von uwe111 » 04.07.2017, 20:13

alchy hat geschrieben:Ich hätte ja aus dem Bauch heraus vermutet, das das so wie "überall" mit .State(1) oder .State(true) für ein bzw. .State(0) oder .State(false) für aus gehen würde.
Genau so ist es auch! Der Parameter der Methode ist vom Typ Boolean. Etwas anderes hat da nichts zu suchen. :)
kwb hat geschrieben:Was mir auch nicht gelungen ist, ist die Verwendung des Datenpunkts "TOGGLE".
Einfach so:

Code: Alles auswählen

dom.GetObject("CUxD.CUX0200006:1.TOGGLE").State(1);
Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

kwb
Beiträge: 50
Registriert: 29.08.2006, 18:35
Hat sich bedankt: 3 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von kwb » 04.07.2017, 22:08

uwe111 hat geschrieben:Der Parameter der Methode ist vom Typ Boolean. Etwas anderes hat da nichts zu suchen
Hallo Uwe, vielen Dank für deine Ausführungen. Ich habe sie ausprobiert und sie funktionieren einwandfrei. Ich hatte wohl versucht in dem CCU-Skript die CUxD-Befehlssyntax mit unterzubringen. Warum das dann auch noch funktionierte, ist schon ein wenig schleierhaft. Anyway, auf jeden Fall habe ich mit eurer Hilfe bei meinen ersten Versuchen mit der Scriptprogrammierung wieder einiges gelernt und besser verstanden. Besten Dank dafür.
Gruß, Werner

kwb
Beiträge: 50
Registriert: 29.08.2006, 18:35
Hat sich bedankt: 3 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von kwb » 04.07.2017, 23:30

wenn ich darf, möchte ich noch eine weitere Frage an Uwe anhängen. Die ist zwar etwas off topic, hängt aber direkt damit zusammen.
Hintergrund: Ich verwende eine CCU2 für die HM-Geräte zur Wintergarten-Klimasteuerung und zur Gartenbewässerung in Kombination mit einer FHZ2000 zur Licht und Heizungssteuerung mit den alten FS20/FHT80b Geräten. Momentan verwende ich die homeputer CL Studio Software zur Steuerung des Gesamtsystems. Meine derzeitigen Tests gehen in die Richtung, zu versuchen, auf die FHZ2000 zu verzichten und alle Geräte über eine CCU2/CUL Kombination ohne hpCL zu handeln.
Zu Versuchszwecken hatte ich gestern einen vorhandenen CUL-Stick an die CCU2 angeschlossen. Zunächst sah auch alles ziemlich positiv aus. Später mußte ich allerdings feststellen, dass sich die CCU2 jetzt häufig aufhängt. Hast du vielleicht einen Rat, wie ich vorgehen könnte um herauszubekommen, was die Ursache für das Aufhängen sein könnte.
Die CUxD-Geräte werden derzeit noch nicht aktiv über den CUL manipuliert (Von meinen paar Tests mal abgesehen), sind natürlich alle in die hpCL Software eingebunden und werden von dort über diverse Makros gesteuert. Ob das einen potentiellen Konfliktherd für die CCU2 darstellt, kann ich nicht beurteilen. Ebensowenig kann ich beurteilen, ob die Einbindung des CUL auf der CCU in Kombination mit der sonstigen Zusatzsoftware Konfliktpotential birgt. Alle Soft- und Firmwareversionen sollten auf dem aktuellen Stand sein. Falls von Interesse, habe ich ein Listing der Zusatzsoftware und des CUxD-Status angehängt. Gibt es irgendwelche Logs, die man zu Rate ziehen könnte? Gibt es eine bessere Methode als das Ziehen des Netzsteckers um die CCU im Fehlerfall wieder zu reaktivieren?

Code: Alles auswählen

installierte Zusatzsoftware:
Programmedrucken CCU2	
Installierte Version:	1.1 modified by HMside	

XML-API	
Installierte Version:	1.10	

CUx-Daemon	
Installierte Version:	1.10a	
CUx-Daemon 1.10a

CL-Web-Server	
Installierte Version:	1.8 - 170428	

CL-WEB-Server
Homeputer CL	
Installierte Version:	3.16 - 170602	

homeputer CL für HomeMatic - Zentrale CCU2
Anwesenheitssimulation	
Installierte Version:	1.0	

QuickAccess	
Installierte Version:	2.0b1	

Code: Alles auswählen

 USB 1-1 - USB2.0 Hub [HUB] - Tue Jul  4 21:24:26 2017
  USB 1-1.2 - {CUX} CUL868 [COMM] - /dev/ttyACM0 {:3s} - V 1.66 CUL868 (CUL_V3) - Tue Jul  4 21:24:56 2017
  USB 1-1.4 - Mass Storage Device [STORAGE] - Tue Jul  4 21:24:26 2017

  Erfolgreich mit HomeMatic-CCU 127.0.0.1:8181 verbunden!

  als RPC-Server(INIT) von HomeMatic-CCU (1900) angefordert!

  Diese Web-Seite wurde aufgerufen von: 192.168.2.110

  CUxD-Uptime(1.10a):    0 Tag(e) 01:24:34, 56456 Bytes belegt, Compiled May  8 2017 16:22:37
  CCU-Uptime(2.27.8):    0 Tag(e) 01:24:48, load-average: 0.67 0.78 0.62, 10s-cpu-load: 25.9%
  Speicher:  Total 255392k  Used 135396k  Free 119996k  (Cached 42140k)
  CPU(1): ARM926EJ-S rev 5 (v5l) [226.09 bogomips]
  Linux version 3.4.11.ccu2 (hudson@entw-build-10) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-70) ) #1 PREEMPT Fri Mar 24 12:30:48 CET 2017

  Filesystem: /                  ubifs    (ro) Total     172944k  Used      88612k (51.2%)  Free      84332k (48.8%)
  Filesystem: /dev               devtmpfs (rw) Total     127636k  Used          0k ( 0.0%)  Free     127636k (100.0%)
  Filesystem: /dev/shm           tmpfs    (rw) Total     127696k  Used          0k ( 0.0%)  Free     127696k (100.0%)
  Filesystem: /tmp               tmpfs    (rw) Total     127696k  Used        116k ( 0.1%)  Free     127580k (99.9%)
  Filesystem: /media             tmpfs    (rw) Total     127696k  Used          0k ( 0.0%)  Free     127696k (100.0%)
  Filesystem: /var               tmpfs    (rw) Total     200704k  Used       1320k ( 0.7%)  Free     199384k (99.3%)
  Filesystem: /usr/local         ubifs    (rw) Total      41284k  Used       8080k (19.6%)  Free      33204k (80.4%)
  Filesystem: /media/sd-mmcblk0  vfat     (rw) Total    8060540k  Used        476k ( 0.0%)  Free    8060064k (100.0%)

  CCU-MAC:     00:1A:22:03:F8:D9
  HM-Config:   /etc/config/homematic.regadom(2213435) OK! - Tue Jul  4 21:38:00 2017
  CUxD-Config: /usr/local/addons/cuxd/cuxd.ps(2382) - Tue Jul  4 10:45:05 2017

  aktuelle Parameter: (* = bei Änderung Neustart erforderlich)

	*LISTENPORT     '8700'
	*HM-SCRIPTHOST  '127.0.0.1'
	*HM-SCRIPTPORT  '8181'
	*RPCHOST        '127.0.0.1'
	*RPCPORT        '8701'
	 HTTP-REFRESH   '5'
	 TERMINALLINES  '25'
	 RCVLOGSIZE     '10000'
	 CUXINITCMD     'X21'
	 LOGFILE        ''
	 LOGLEVEL       '1'
	 LOGSIZE        '1000000'
	 LOGFILEMOVE    ''
	 DEVLOGFILE     ''
	 DEVLOGSIZE     '100000'
	 DEVLOGMOVE     ''
	 DEVLOGMOVE-HR  ''
	 DEVLOGEXPORT   ''
	 DEVTIMEFORMAT  '%Y-%m-%dT%X'
	 DEVDATAFORMAT  ''
	 DEVLOGOLDALIAS '1'
	 SUBSCRIBE-RF   '1'
	 SUBSCRIBE-WR   '1'
	 AUTOSAVE       '1'
	 MOUNTCMD       ''
	 UMOUNTCMD      ''
	 BACKUPCMD      ''
	 SYSLOGMOVE     ''
	 SYSLOGMOVEDAILY ''
	 TH-DIR         ''
	 TH-DIR-FILTER  ''
	 ADDRESS-BUFFER '120'
	 CLOUDMATIC_CMD '/etc/config/addons/mh/cloudmatic'
	 WEBCAMCONFIG   '/usr/local/addons/cuxd/webcamconfig.ini'
	 WEBCAMSNAPSHOT '/tmp/snapshots'
	 WEBCAMCACHE    '/tmp/webcams'
	 SYSLOGFILENAME '/var/log/messages'
	 CUXD-CHARTS    '/etc/config/addons/www/cuxchart/index.html'
	 DFU_ERASE      './dfu-programmer $TARGET$ erase'
	 DFU_FLASH      './dfu-programmer $TARGET$ flash $HEXFILE$'
	 DFU_START      './dfu-programmer $TARGET$ start'


  Aktuelle Geräteeinstellungen - 36 Gerät(e), 78 Channel(s):

  	CUX0300001:	dev('') code('FD6925')
	CUX0300002:	dev('') code('2C4D5C')
	CUX0300005:	dev('') code('006720')
	CUX0300006:	dev('') code('006728')
	CUX0300007:	dev('') code('006724')
	CUX0300008:	dev('') code('006714')
	CUX0300009:	dev('') code('006710')
	CUX0300010:	dev('') code('006718')
	CUX0200001:	dev('') code('016782')
	CUX0200002:	dev('') code('016790')
	CUX0200003:	dev('') code('016791')
	CUX0200004:	dev('') code('016792')
	CUX0200005:	dev('') code('016793')
	CUX0200006:	dev('') code('0167C0')
	CUX0200007:	dev('') code('0167C1')
	CUX0200008:	dev('') code('0167C2')
	CUX0200009:	dev('') code('0167C3')
	CUX0200010:	dev('') code('0167C4')
	CUX0200011:	dev('') code('0167C5')
	CUX0200012:	dev('') code('0167C6')
	CUX0200013:	dev('') code('0167C7')
	CUX0200014:	dev('') code('016781')
	CUX0700001:	dev('') code('000000')
	CUX0700002:	dev('') code('000000')
	CUX0700003:	dev('') code('000000')
	CUX0700004:	dev('') code('000000')
	CUX0700005:	dev('') code('000000')
	CUX0700006:	dev('') code('000000')
	CUX0700007:	dev('') code('000000')
	CUX0700008:	dev('') code('000000')
	CUX0900001:	dev('') code('5C06')
	CUX0900002:	dev('') code('4438')
	CUX0900003:	dev('') code('5020')
	CUX0900004:	dev('') code('1335')
	CUX0900005:	dev('') code('2B47')
	CUX0900006:	dev('') code('2426')


  gefundene Adressen (aktuelle zuerst 22:49:00):

      Letzte    Status	Device	Gerät			'CODE'
      22:48:57  [?]	ttyACM0	FHT80b(043,071)		'2B47'		(-62dBm)
      22:48:20  [?]	ttyACM0	FHT80b(068,056)		'4438'		(-84dBm)
      22:48:15  [?]	ttyACM0	WEATHER-T/H(8)		'7'		(-91dBm)
      22:48:11  [?]	ttyACM0	FHT80b(080,032)		'5020'		(-72dBm)
      22:47:58  [?]	ttyACM0	FHT80b(092,006)		'5C06'		(-76dBm)
      22:47:24  [?]	ttyACM0	FHT80b(036,038)		'2426'		(-60dBm)
      22:47:08  [?]	ttyACM0	FHT80b(019,053)		'1335'		(-73dBm)
      22:00:54  [X]	ttyACM0	FS20(1112 2324 - 4124)	'0167C7'	(-68dBm)
      22:00:53  [X]	ttyACM0	FS20(1112 2324 - 4123)	'0167C6'	(-67dBm)
      22:00:52  [X]	ttyACM0	FS20(1112 2324 - 4122)	'0167C5'	(-68dBm)
      22:00:51  [X]	ttyACM0	FS20(1112 2324 - 4121)	'0167C4'	(-68dBm)
      22:00:50  [X]	ttyACM0	FS20(1112 2324 - 4114)	'0167C3'	(-71dBm)
      22:00:49  [X]	ttyACM0	FS20(1112 2324 - 4113)	'0167C2'	(-69dBm)
      22:00:47  [X]	ttyACM0	FS20(1112 2324 - 4111)	'0167C0'	(-69dBm)
      22:00:40  [X]	ttyACM0	FS20(1112 2324 - 4112)	'0167C1'	(-69dBm)
      22:00:40  [?]	ttyACM0	FS20(1111 2324 - 2114)	'006743'	(-76dBm)
      21:44:25  [?]	ttyACM0	FS20(1111 2324 - 1312)	'006721'	(-81dBm)
      21:44:25  [X]	ttyACM0	FS20(1111 2324 - 1311)	'006720'	(-80dBm)
      21:28:00  [X]	ttyACM0	FS20(1112 2324 - 3213)	'016792'	(-66dBm)

kwb
Beiträge: 50
Registriert: 29.08.2006, 18:35
Hat sich bedankt: 3 Mal

Re: Scriptsyntax für FS20 Aktor

Beitrag von kwb » 05.07.2017, 08:14

Ich muß meine Aussage bezüglich der hängenden CCU2 etwas korrigieren.
Allem Anschein nach läuft die CCU doch noch. Auch die hpCL Makros werden offensichtlich zum richtigen Zeitpunkt ausgeführt.
Darüber hinaus habe ich Zugriff auf alle Geräte über die mobile control CL App.
Lediglich ein Zugriff über das Web-Interface ist nicht möglich. Das behauptet mit konstanter Bosheit: "Die Homematic CCU2 ist noch nicht bereit
Bitte warten. Sie werden automatisch auf die Startseite weitergeleitet.".
Sollte da WebUI einen Konflikt mit dem zusätzlich installierten CUL haben? Oder habe ich da grundsätzlich zuviele Zusatzpakete installiert?
Hat jemand eine Idee, wie man den Fehler angehen sollte? Ich werde als erstes den CUL mal wieder abnehmen und schauen, wie sich die CCU dann verhält.

Antworten

Zurück zu „CUxD“