SensorAndSwitch Haus-Automation auf Webserver-Basis

meine 7170 bringt mit obigen Befehl = 0
die 7272 bringt = 60

komme ich aber nicht dran wenn apache auf der 7170 läuft ??
 
@koyaanisqatsi:

schubs mich mal in die richtige Richtung.

error_reporting(1);

hab ich gesetzt, ober wo erfolgt die Ausgabe?

Und was in der php.ini erlauben?
 
PHP:
<?php
error_reporting(1);
$Status = system("/usr/bin/ctlmgr_ctl r power status/act_temperature");
header("Content-Type: text/plain");
echo "T";
if ($Status) {
echo "#".$Status."#";
}
else {
echo "E#";
}
exit;
?>
//EOF
Code:
../cgi-bin/php-cgi -f pseudocputemp.php
61
T#61#
Keine Fehler, ansonsten hagelts Fehlermeldungen mit Angabe von Gründen.

Teste doch mal, anstatt CPU auf deine IP...
PHP:
$Status = system("/usr/bin/ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr");
 
Zuletzt bearbeitet:
Für die Sammlung der Scripts:

Pushbullet als Benachrichtigung wenn ein Schaltvorgang passiert ist.
 
Wäre es möglich wenn man ein PseudoGerät anklickt das die Hinterlegte URL aufgerufen wird?
 
koyaanisqatsi: Ich bastel grad an einem WLAN-Schalter :)

@dtrieb: Aufgerufen, ja, angezeigt, nein. ;)
 
Zuletzt bearbeitet:
Hi all.

Bräuchte Hilfe.

Localer Webserver mit Sensor and Switch funzt geil. Webserver auf Fritzboxen gibt mir nur eine leere weiße Datei ohne Inhalt ohne Fehler. Habe apache 2.4.9 von toolbooxflex3.1 von zebradem forum drauf mit php 5.4.15. Meine erste Vermutung ist das bei den modulen curl nicht geladen wird. Ist es richtig? Falls ja wie kann ich es am einfachsten beheben?

Danke und gruß
Andreas
 
@koyaanisqatsi:

bei mir kommt sauber
57
T#57##.

oder ist die 2.# das Problem?
 
Da musste JL3 fragen.
Sind seine "Entwickler Vorgaben". ;)
Siehe: pseudobeispiele/info.txt
 
Zuletzt bearbeitet:
Nein, die macht nix.

Ich hab das Problem, dass system nicht läuft. Entweder seh ich langsam den Wald vor lauter Bäumen nicht mehr, aber ich finde nicht mehr die Stelle, wo ich es aktivieren kann :gruebel:

Nachtrag: Und ständig [Mon Nov 24 18:05:03 2014] [error] [client..........] malformed header from script. Bad header=Content-Type: php-cgi
 
Zuletzt bearbeitet:
Dann versuch gleich passthru() zum Laufen zu bringen. ;)
...wird so empfohlen.

Je nachdem was du brauchst...
PHP:
header("Content-Type: text/plain");
header("Content-Type: text/html");
header("Content-Type: text/xml");
header("Content-Type: application/xhtml+xml");
...u.s.w.
Jede Ausgabe vorher (echo, Whitespace, Space, Tabs) kann da stören.
 
Zuletzt bearbeitet:
system arbeit, wenn ich ein Script aufrufe, wird die Ausgabe angezeigt.

Wenn ich z.B. /usr/bin/ctlmgr_ctl r wlan settings/ap_enabled in der Konsole aufrufe, bekomme ich 1 angezeigt
wenn ich es per system aufrufe kommt nichts raus......... warum? Falscher Benutzer? Benutzer nicht berechtigt /bin-Befehle auszuführen? :mad:
 
Läuft dein Apache nicht als root oder stehen in der /etc/passwd so komische Sachen drin dann...
Code:
 su - nobody ls
su: can't change directory to '/nonexistent'
su: can't change directory to '/': Permission denied
/etc/passwd
Code:
nobody:x:65535:65535:nobody:/nonexistent:/bin/false
...manchmal ganz praktisch (sicher).

Vielleicht wäre eine CGI geeigneter?
Die könnte dieses Skript aufrufen (zum schalten)...
/scripts/flipflop_wlan.sh
Code:
#!/bin/sh
ff_wlan () {
if [ $(/usr/bin/ctlmgr_ctl r wlan status/ap_enabled) == 0 ]
 then
  /usr/bin/ctlmgr_ctl w wlan settings/ap_enabled 1
  echo 'WLAN ein'
 else
  /usr/bin/ctlmgr_ctl w wlan settings/ap_enabled 0
  echo 'WLAN aus'
fi
}
ff_wlan
#EOF

Als CGI hab ich grad nur eine SNOM XML...
/cgi-bin/flipflop_wlan.cgi
Code:
#!/bin/sh
echo 'Content-type: application/xhtml+xml; charset="utf-8"
'
echo '<?xml version="1.0" encoding="utf-8"?>
<SnomIPPhoneText state="relevant">
<Title></Title>
<Prompt></Prompt>
<Text>'$(../scripts/flipflop_wlan.sh)'</Text>
<Fetch mil="5000">snom://mb_exit</Fetch>
</SnomIPPhoneText>
'
#EOF
 
Zuletzt bearbeitet:
User boxusr99
Group root

Das müsste doch reichen, oder?
 
Da bekomme ich keinen Status zurück, naja, egal. Wenn es nicht geht, kann mans nicht ändern.
 
Was steht denn als Homeverzeichnis und Shell für boxusr99 in der /etc/passwd ?
 
Shellskriptbefehle...
Code:
#!/bin/sh
local TEMPERATUR=$(ctlmgr_ctl r power status/act_temperature)
local STAT_TEMP=$(ctlmgr_ctl r cpu status/StatTemperature)
local CONN_STATUS=$(ctlmgr_ctl r dslstatistic status/ifacestat0/connection_status)
local DS_RATE=$(ctlmgr_ctl r sar status/dsl_ds_rate)
local US_RATE=$(ctlmgr_ctl r sar status/dsl_us_rate)
local MYIPADDR=$(ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr)
local MYIP6=$(ctlmgr_ctl r ipv6 settings/enabled)
local NUM_ONLINE=$(ctlmgr_ctl r wlan settings/active_stations)
local DECT_STATUS=$(ctlmgr_ctl r dect settings/enabled)
local NUM_NEW_MESSAGES=$(ctlmgr_ctl r tam settings/NumNewMessages)
local WLAN_AP="$(ctlmgr_ctl r wlan status/ap_enabled)"
local WLAN_GUEST="$(ctlmgr_ctl r wlan settings/guest_ap_enabled)"
...und das ist noch längst nicht alles. ;)

HI, danke für die Info, habs auf meiner 7390 ausprobiert, einiges geht nicht, wie Temp, DOWN/UP Rate..

vieles geht aber. Welche Befehle gibt es da noch oder wo kann ich diese selbst finden?

Ich würde gerne diese Funktionen nutzen. Für jeden Schalter ne PHP anlegen ist klar aber bei mir wird nix angezeigt ( ctlmgr_ctl r wlan settings/active_stations , wollte es erstmal zur Anzeige bringen).

Gruß
 
Eine Seite im AVM Webinterface öffnen (im neuen Tab, mittlere Maustaste klicken, Mousewheel).
Dann steht nicht meht fritz.box in der Adresszeile, sundern eine: *.lua
Ok, rechte Maustaste draufklicken und: Quelltext anzeigen
Interessante Infos unter: [QUERIES] {...}
Ansonsten: wehavemorefun.de
...und hier im Forum.
:roll:

@JL3: Gib ihn mal (testweise) anstatt /home-not-used irgend ein (R/W) Verzeichnis.
 
Zuletzt bearbeitet:
Ich versuche es, kann dir aber erst nachher berichten, muss kurz unterbrechen.
Müsste mit dem vi gehen? (wegen /etc-Bereich)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.