Hallo,
ich stelle nun noch die letzten Items auf das YAML Format um. Klappt alles prima, bis auf einen Sonderfall.
Ich habe eine Logic, mit der der ich via ssh den Status meiner NAS abfrage. Dazu werden die jeweiligen ssh Befehle als spezieller type des jeweiligen Items definiert.
Beispiel:
nas.yaml
Nun sind in den ssh Befehlen Sonderzeichen enthalten, die nach YAML so nicht erlaubt sind. Zum einen ist dort | enthalten, zum anderen auch das %.
Der entsprechende Teil der Logic sieht so aus:
Wie kann ich das umstellen bzw. kann man die ssh Befehle in irgendwas einpacken, so dass YAML das akzeptiert?
Danke für Eure Rückmeldung.
ich stelle nun noch die letzten Items auf das YAML Format um. Klappt alles prima, bis auf einen Sonderfall.
Ich habe eine Logic, mit der der ich via ssh den Status meiner NAS abfrage. Dazu werden die jeweiligen ssh Befehle als spezieller type des jeweiligen Items definiert.
Beispiel:
nas.yaml
Code:
temp: type: list ssh_cmd_pull: i2cget -y 0x0 0x0a 0x07 | xargs printf '%d\n' cache: 'yes' num: type: num eval: sh.ssh.nsa325.temp()[0] eval_trigger: ssh.nsa325.temp cooler: type: list ssh_cmd_pull: i2cget -y 0x0 0x0a 0x08 | xargs printf '%d\n' cache: 'yes' num: type: num eval: sh.ssh.nsa325.cooler()[0] eval_trigger: ssh.nsa325.cooler
Der entsprechende Teil der Logic sieht so aus:
Code:
if trigger['by'] == 'Scheduler': # scheduler / cycle for item in sh.find_items('ssh_cmd_pull'): # findet alle Items die ein Attribut 'ssh_cmd_pull' besitzen und führe cmd auf remote host aus cmd = item.conf['ssh_cmd_pull'] if isinstance(cmd, list): cmd = "'"+' | '.join(cmd)+"'" host = item.return_parent().conf['ssh_host'] stdin, stdout, stderr = ssh[host].exec_command(cmd) res = stdout.readlines() logger.debug("Logik SSH_Server : {0} : {1}".format(cmd, res) ) item(res[0].split(' ')) elif trigger['by'] == 'Item': # watchitem item = sh.return_item(trigger['source']) cmd = item.conf['ssh_cmd_push'] host = item.return_parent().conf['ssh_host'] stdin, stdout, stderr = ssh[host].exec_command(cmd) stdout.readlines() logger.debug("Logik SSH_Server : cmd_push: " + cmd) item(0)
Danke für Eure Rückmeldung.
Kommentar