Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - executeCommandLine funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - executeCommandLine funktioniert nicht

    Hallo,

    Hab schon versucht in der englischen google group hilfe zu finden leider ohne Antwort....

    Ich möchte einen one-wire Ausgang setzen und der Befehl
    echo 255 > /mnt/1-wire/29.F60414000000/PIO.BYTE
    auf der commandline funktioniert einwandfrei

    Wenn ich nun zB
    executeCommandLine("echo 255 > /mnt/1-wire/29.F60414000000/PIO.BYTE")
    in eine Rule packe ist im Log wunderbar
    11:59:14.346 INFO o.openhab.io.net.exec.ExecUtil[:66]- executed commandLine 'echo 255 > /mnt/1-wire/29.F60414000000/PIO.BYTE'
    registriert .. aber leider wird der Ausgang nicht gesetzt ....

    hab es in einer rule versucht und auch in einem script .. leider kein Erfolg...

    Freue mich auf ein Feedback bzw einen Tipp wo ich falsch liege...

    System: Synology NAS DS214 / Openhab V1.4

    Vielen lieben Dank
    Chris

    #2
    Läuft OH vielleicht mit einem User, der onewire nicht beschreiben darf?

    Ohne zu wissen, ob das geht, vielleicht wäre das GPIO-Binding das richtige?
    Außerdem steht das auf der onewire-Binding Roadmap: "make one wire writeable for switch support (e.g. DS2408 1-Wire 8-Channel Addressable Switch)"
    Vielleicht wird schon dran gearbeitet...

    Kommentar


      #3
      Vielen Dank aber ich denke wenn es an der Schreibberechtigung liegen würde sollte im Log doch ein Error sein?
      zB wenn ich ein Space rausnehme und damit der Befehl nicht ausführbar ist bekomme ich folgenden Error
      17:31:47.900 ERROR o.openhab.io.net.exec.ExecUtil[:69] - couldn't execute commandLine 'echo198.90 > /mnt/1-wire/29.F60414000000/PIO.BYTE'

      Ich habe mal versuchsweise openhab Admin Rechte auf der Synology gegeben aber hat nichts geändert...

      Das mit dem Binding update hab ich auch gefunden und in einem Beitrag wurde der workaround mit der commandline empfohlen ...

      Kenn mich leider mit Linux nicht so gut aus - gibt es eine Berechtigungssteuerung für die Commandline welche ich für openhab freigeben müsste? hab gegoogelt aber in der schnelle nix gefunden ...

      Vielen Dank und liebe Grüße
      Chris

      Kommentar


        #4
        Verwendest Du in Deinem Skript absolute oder relative Pfade?
        Sowas wie:
        absolut: /usr/bin/echo "blablub" > Pfad/zum/GPIO
        relativ: echo "blablub" > Pfad/zum/GPIO

        Kommentar


          #5
          Danke aber sorry verstehe deine Frage nicht...

          Ich poste wie eingangs geschrieben

          echo 255 > /mnt/1-wire/29.F60414000000/PIO.BYTE

          der OWFS server erstellt ein virtuelles Directory mit entsprechenden files der I/O's und diese files beschreibt man entsprechend....

          Kommentar


            #6
            Zitat von stofferl Beitrag anzeigen
            Danke aber sorry verstehe deine Frage nicht...

            Ich poste wie eingangs geschrieben

            echo 255 > /mnt/1-wire/29.F60414000000/PIO.BYTE

            der OWFS server erstellt ein virtuelles Directory mit entsprechenden files der I/O's und diese files beschreibt man entsprechend....

            Versuche es mal mit /bin/echo (vollständiger Pfad zum echo, wo auch immer das bei Dir liegt). Gib "which echo" ein, dann siehst Du den absoluten Pfad.

            Kommentar


              #7
              Danke und sehr nett mir weiterzuhelfen

              Leider noch kein Erfolg ...

              Befehl: executeCommandLine("/bin/echo " + Output + " > /mnt/1-wire/29.F60414000000/PIO.BYTE")

              Log: 13:38:35.447 INFO o.openhab.io.net.exec.ExecUtil[:66]- executed commandLine '/bin/echo 30.60 > /mnt/1-wire/29.F60414000000/PIO.BYTE'

              Denke auch es hat entweder etwas mit Berechtigung oder der speziellen Ordnerstruktur von openhab auf der synology zu tun.

              Hab ja auch das Problem keine Charts generieren zu können (alles andere funktioniert) - die Daten werden zwar im Folder etc/rrd4j gespeichert kann sie aber nicht abrufen.
              Auch mit HABmin werden keine Persistence items angezeigt...

              Wollte mich als user openhab mit putty verbinden um zu sehen ob es ein Berechtigungsproblem ist
              Hab schon versucht das Passwort vom user openhab zu finden welches bei der installation von openhab erzeugt wird - leider ohne Erfolg.

              Die Ordnerstruktur von openhab auf der Syno ist:
              /var/packages/OpenHAB
              der Inhalt ist
              Ordner etc als link auf /var/packages/OpenHAB/etc wo der rrd4j ordner beinhaltet ist
              scripts (für start/stop,...)
              target als link auf /volume1/@appstore/OpenHAB

              LG
              Chris

              Kommentar


                #8
                Gelöst mit anderem Befehl

                Anstelle von
                executeCommandLine("/bin/echo " + Output + " > /mnt/1-wire/29.F60414000000/PIO.BYTE")

                verwende ich nun
                executeCommandLine("/opt/bin/owwrite -s 4303 29.F60414000000/PIO.BYTE " + Output)

                welches Einwandfrei funktioniert

                keine Ahnung warum es mit echo nicht klappt ........

                Kommentar


                  #9
                  Alternative

                  Ich hatte das gleiche Problem mit dem exec-binding und habe es folgendermaßen gelöst:

                  /bin/sh -c echo WERT >> /mnt/ow/3A.9FXXXXXXXX/PIO.A

                  eine komplette exec-Definition sieht dann bei mir so aus:

                  Switch PIO_1A "PIO 1A" { exec=">[OFF:/bin/sh@@-c@@echo 0 >> /mnt/ow/3A.9FXXXXXXXXX/PIO.A] >[ON:/bin/sh@@-c@@echo 1 >> /mnt/ow/3A.9FXXXXXXXXX/PIO.A]" }

                  Vielleicht hilft es ja dem Einen oder Anderen noch weiter...

                  Gruß Lentus

                  Kommentar

                  Lädt...
                  X