Ankündigung

Einklappen
Keine Ankündigung bisher.

linknx shell-cmd

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

    linknx shell-cmd

    Hallo!

    Habe offensichtlich wieder mal ein Problem mit linknx.
    Ich würde gerne über eine GA die Ausführung eines Scripts veranlassen ...

    Code:
    <?xml version="1.0" ?>
    
    <config>
    
        <services>
    
            <smsgateway />
    
            <emailserver />
    
            <xmlserver type="inet" port="1027" />
    
            <knxconnection url="ip:127.0.0.1" />
    
            <exceptiondays />
    
            <persistence type="file" path="/var/www/linknx/" />
    
            <ioports />
    
        </services>
    
        <objects>
    
            <object type="1.001" id="Badezimmer_Licht" gad="15/5/10" >Badezimmer_Licht</object>
    
        </objects>
    
        <rules>
    
            <rule id="Badezimmer_Licht_ein">
    
                <condition type="object" id="Badezimmer_Licht" value="1" trigger="true"/>
    
                <actionlist type="if-true">
    
                    <action type="shell-cmd" cmd="/var/www/system/ZWayVDev_zway_50_on.php"/>
    
                </actionlist>
    
            </rule>
    
            <rule id="Badezimmer_Licht_aus">
    
                <condition type="object" id="Badezimmer_Licht" value="0" trigger="true"/>
    
                <actionlist type="if-true">
    
                    <action type="shell-cmd" cmd="/var/www/system/ZWayVDev_zway_50_off.php"/>
    
                </actionlist>
    
            </rule>
    
        </rules>
    
        <logging level="INFO" />
    
    </config>
    Linknx startet mit dieser Config, jedoch wenn ich die GA mit 1 oder null beschreibe habe ich folgende Fehlermeldung im Log-File:

    Code:
    /var/www/system/ZWayVDev_zway_50_on.php: 1: /var/www/system/ZWayVDev_zway_50_on.php: cannot open ?php: No such file
    
    /var/www/system/ZWayVDev_zway_50_on.php: 2: /var/www/system/ZWayVDev_zway_50_on.php: Syntax error: word unexpected (expecting ")")
    
    /var/www/system/ZWayVDev_zway_50_off.php: 1: /var/www/system/ZWayVDev_zway_50_off.php: cannot open ?php: No such file
    
    /var/www/system/ZWayVDev_zway_50_off.php: 2: /var/www/system/ZWayVDev_zway_50_off.php: Syntax error: word unexpected (expecting ")")
    Was mache ich hier falsch?
    Danke!

    #2
    Was sind denn die Berechtigungen? (Mach mal „ls -al /var/www/system“)
    und wie sieht die php Datei aus? Ist da ein shebang drin?

    Kommentar


      #3
      Berechtigungen sollten passen:

      -rwxr-xr-x 1 501 dialout 56 Aug 26 18:43 ZWayVDev_zway_50_off.php

      -rwxr-xr-x 1 501 dialout 55 Aug 26 19:17 ZWayVDev_zway_50_on.php


      she... was?
      Code:
      [B]<?php[/B]
      
      exec('sudo /usr/sbin/ZWayVDev_zway_50_on');
      
      [B]?>[/B]

      Kommentar


        #4
        Danke - Du hast den richtigen Denkanstoß gegeben ....
        Ich rufe nun die Datei direkt auf - keine Ahnung warum ich es über den Umweg versucht habe - jetzt funktioniert es so wie es soll!
        Code:
         <action type="shell-cmd" cmd="/usr/sbin/ZWayVDev_zway_50_on"/>

        Kommentar


          #5
          Du hast eine Shell (das was Du als Kommandozeile bekommst) aufgerufen. Die startet das PHP Script und versteht es nicht. Die Datei Endungen sind in Linux vollkommen egal, daher hilft der Shell das .php am Ende nicht, das könnte auch .bla heißen.
          deshalb gibt man der Shell in der ersten Zeile einen Tipp wie das auszuführen ist, den nennt man shebang.
          Bei Dir hätte sowas wie „#!/usr/bin/env php“
          on der ersten Zeile des php scripts stehen müssen, dann hätte es geklappt. Direkt starten des binary macht bei Deinem beispiel aber eh mehr Sinn.

          Kommentar

          Lädt...
          X