Autor Thema: HMCCU und hmscript  (Gelesen 393 mal)

Offline Horti

  • Full Member
  • ***
  • Beiträge: 178
HMCCU und hmscript
« am: 07 April 2020, 22:48:02 »
Guten Abend,

ich versuche immer noch mit einem für mich vertretbaren Aufwand mein HB-Dis-EP-42BW mit FHEM ans Laufen zu kriegen. Da mein letzter Versuch, das Ding direkt mit FHEM in Betrieb zu nehmen scheiterte, versuche ich es nun mit HMCCU. Dank des genialen Scripts von TomMajor muss das Ding ja theoretisch noch nicht mal in FHEM über HMCCU eingerichtet sein, denn zur Ausgabe auf dem Display muss "nur" ein Einzeiler ausgeführt werden, z.B.:
system.Exec("tclsh /usr/local/addons/epaper42.tcl " # "JPDISEP000 /5 'Test ABC ÄÖÜäöüß' 1");wobei nur "/5 'Test ABC ÄÖÜäöüß' 1" dynamisch ist, der Rest ist statisch, zumindest bei nur einem HB-Dis-EP-42BW im System.

Meine naive Vorstellung wäre nun, dass ich diese Zeichenkette in FHEM berechne und mittels HMCCU an die CCU zur Ausführung übergebe. Doch lt. Wiki muss das Script als Datei vorliegen, damit das an die CCU übergeben werden kann:
set d_ccu hmscript /opt/fhem/sysvars.scr
Versuche ich die Anweisung doch als Zeichenkette zu übergeben:
set d_ccu hmscript "system.Exec("tclsh /usr/local/addons/epaper42.tcl " # "JPDISEP000 /5 'Test ABC ÄÖÜäöüß' 1");"sagt HMCCU:
HMCCU: d_ccu Usage: set d_ccu hmscript {file|!function|'['code']'} ['dump'] [parname=value [...]]
Auch Hochkommata und Doppelhochkommata anstelle der Anfürungszeichen funktionieren nicht, obwohl ich so die Ausgabe von HMCCU interpretieren würde. Kann es so funktionieren, wie ich es mir vorstelle? Wie müsste dann die Syntax lauten?

Danke schon mal!
« Letzte Änderung: 07 April 2020, 23:06:59 von Horti »

Offline zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3315
    • HMCCU
Antw:HMCCU und hmscript
« Antwort #1 am: 08 April 2020, 10:16:40 »
Wenn, dann so:

set d_ccu hmscript [system.Exec("tclsh /usr/local/addons/epaper42.tcl JPDISEP000 /5 'Test ABC ÄÖÜäöüß' 1");]
HMScript Code in der Kommandozeile muss in [] angegeben werden. Vermutlich wird es wegen der " trotzdem nicht funktionieren, da FHEM diese interpretiert, bevor sie ans Modul übergeben werden.

Bzw. Versuche es erst mal ohne die Umlaute. Das bit garantiert Probleme.
« Letzte Änderung: 08 April 2020, 10:18:50 von zap »
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

Offline Horti

  • Full Member
  • ***
  • Beiträge: 178
Antw:HMCCU und hmscript
« Antwort #2 am: 08 April 2020, 12:18:20 »
Auch ohne Umlaute kommt leider
Unknown command ], try help.
Kann man die Anführungszeichen für FHEM irgendwie maskieren? Oder muss HMCCU dafür angepasst werden?

Offline zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3315
    • HMCCU
Antw:HMCCU und hmscript
« Antwort #3 am: 08 April 2020, 13:37:47 »
Kannst Du nicht ein Script-File mit Parametern verwenden?

Wenn ich mich rechte erinnere, werden Parameter mit $ eingeleitet, also:

system.Exec("tclsh /usr/local/addons/epaper42.tcl $Device /5 '$Text' 1");

und dann

set d_hccu hmscript <File> Device=JPDISEP000 Text="Test ABC"
« Letzte Änderung: 08 April 2020, 13:49:15 von zap »
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

Offline Horti

  • Full Member
  • ***
  • Beiträge: 178
Antw:HMCCU und hmscript
« Antwort #4 am: 08 April 2020, 13:54:50 »
Hm, sieht nach "Von hinten durch die Brust ins Auge" aus, aber wenn's funktioniert  ;D

Ich werd's später versuchen, aber so wie ich das sehe, kann ich auch den kompletten Befehl als Parameter übergeben und in der Datei nur
$PARAMstehen haben?

Offline zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3315
    • HMCCU
Antw:HMCCU und hmscript
« Antwort #5 am: 08 April 2020, 20:45:54 »
Dann bist Du aber wieder in der Hochkommahölle
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

Offline Horti

  • Full Member
  • ***
  • Beiträge: 178
Antw:HMCCU und hmscript
« Antwort #6 am: 08 April 2020, 21:53:07 »
Dann bist Du aber wieder in der Hochkommahölle

Das habe ich auch schon bemerkt :) Ich habe das jetzt so gelöst, in der scr-Datei steht Folgendes:
system.Exec("tclsh /usr/local/addons/epaper42.tcl $Device $Text");und in FHEM rufe ich auf
set d_hccu hmscript <File> Device=JPDISEP000 Text="/5 'Test ABC' 1"
Damit sollte ich alles abbilden können, was ich mir vorgestellt habe und was das Display und TomMajors Script so hergibt. Zugegeben, ich habe noch nicht alle möglichen Parameter- und Sonderzeichenkombinationen ausprobiert, aber das ergibt sich dann, Learning by Doing :) Das Nonplusultra wäre, wenn ich mit einem Aufruf auch mehrere Zeilen setzen könnte, wie TomMajors Script das ja auch unterstützt:
usage: epaper42 serial /line text [icon number] [/nextline text [icon number]] ...
D.h. im Prinzip würde ich gerne Folgendes in FHEM aufrufen (zum Beispiel):
set d_hccu hmscript <File> Device=JPDISEP000 Text%1="/5 'Test ABC' 1" Text%2="/6 'Test XYZ' 2"
Wie müsste die dazugehörige scr-Datei aussehen? Ich weiss, die Frage ist nicht mehr HMCCU-spezifisch, aber vielleicht ist sie doch hier am Besten aufgehoben, wg. dem Kontext.

@zap: Danke für das HMCCU-Modul und Deine Unterstützung!

Offline zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3315
    • HMCCU
Antw:HMCCU und hmscript
« Antwort #7 am: 09 April 2020, 07:15:28 »
Muss ich mal drüber nachdenken ...

Andere Frage: inwiefern unterscheidet sich die Ansteuerung des Displays von HM Dis-EP-WM55?

Falls es sich nicht unterscheidet, könnte ich es kurzfrisitg direkt in HMCCU unterstützen?
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

Offline Horti

  • Full Member
  • ***
  • Beiträge: 178
Antw:HMCCU und hmscript
« Antwort #8 am: 09 April 2020, 22:17:18 »
Andere Frage: inwiefern unterscheidet sich die Ansteuerung des Displays von HM Dis-EP-WM55?

Falls es sich nicht unterscheidet, könnte ich es kurzfrisitg direkt in HMCCU unterstützen?

Nach Jerome's Aussage so gut wie gar nicht: https://forum.fhem.de/index.php/topic,73954.msg962094.html#msg962094.

Aber würde sich dann irgendwas bzgl. der Ansteuerung ändern? Oder Würde man dann TomMajors-Script quasi nach FHEM reinziehen und HMCCU nur noch fertige HM-Messages übergeben und hätte den Salat mit den Anführungszeichen nicht?

Offline zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3315
    • HMCCU
Antw:HMCCU und hmscript
« Antwort #9 am: 10 April 2020, 08:55:18 »
Du brauchst das Script dann gar nicht mehr. Die Parameter (Texte, Farben, Icons) werden einfach per Set Befehl übergeben. Das Script wird benötigt, um die Angaben in ein Display-Konformes Format zu wandeln. Das macht dann HMCCU, wie jetzt schon bei dem anderen Display.

Ich trage mal den Typ in HMCCU nach und du kannst dann testen, ob es einfach so ohne weitere Anpassung funktioniert.
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

 

decade-submarginal