Ben met PHP bezig, en ik kom er momenteel helemaal niet meer uit. Ik heb een scriptje in elkaar geknutseld welke een lamp aanzet bij zonsondergang en uitzet bij zonsopkomst.
Dit werkt prima als ik het in m'n browser uitvoer (via Apache2) en als ik het uitvoer in de CLI als "php zon.php". Zodra ik hetzelfde script elke minuut wil laten uitvoeren via een cronjob werkt het niet
Via zowel de webbrowser als via CLI wordt netjes de GPIO poort aangepast als dat nodig is en schakelt mijn relais. Via de crontab wordt het relais niet geschakeld, terwijl volgens de output in zon.txt dit ook gebeurd moet zijn...
Mijn crontab is als volgt: * * * * * php /var/www/html/zon.php >> /var/www/html/zon.txt
Mijn crontab staat onder de user "pi", dezelfde user waarmee ik het op de CLI uitvoer. Via de webbrowser is het de user "www-data". Dit zou dus geen probleem moeten zijn...anyone?
Output is als volgt, maar niet geschakeld. Doe ik m'n cron commando via CLI dan krijg ik dezelfde output maar dan schakelt relais wel.
Dit werkt prima als ik het in m'n browser uitvoer (via Apache2) en als ik het uitvoer in de CLI als "php zon.php". Zodra ik hetzelfde script elke minuut wil laten uitvoeren via een cronjob werkt het niet

Mijn crontab is als volgt: * * * * * php /var/www/html/zon.php >> /var/www/html/zon.txt
Mijn crontab staat onder de user "pi", dezelfde user waarmee ik het op de CLI uitvoer. Via de webbrowser is het de user "www-data". Dit zou dus geen probleem moeten zijn...anyone?

Output is als volgt, maar niet geschakeld. Doe ik m'n cron commando via CLI dan krijg ik dezelfde output maar dan schakelt relais wel.
code:
1
| [29-12-2015 22:36] Zon ondergegaan en status nog 0, op 1 gezet :-) |
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| <?php $bcm_pin = 4; $huidige_tijd = date ( "U" ); $opkomst = date_sunrise ( time ( ), SUNFUNCS_RET_TIMESTAMP ); $ondergang = date_sunset ( time ( ), SUNFUNCS_RET_TIMESTAMP ); echo "[" . date ( "d-m-Y H:i" ) . "] "; system ("gpio -g mode " . $bcm_pin . " out"); $huidig = exec ("gpio -g read " . $bcm_pin ); if ( $huidige_tijd > $opkomst AND $huidige_tijd < $ondergang ) { if ( $huidig == 1 ) { system ("gpio -g write " . $bcm_pin . " 0" ); echo "Zon opgekomen en status nog 1, op 0 gezet :-)"; } else { echo "Het is licht en de lamp is al uit"; } } else { if ( $huidig == 0 ) { system ("gpio -g write " . $bcm_pin . " 1" ); echo "Zon ondergegaan en status nog 0, op 1 gezet :-)"; } else { echo "Het is donker maar de lamp is al aan"; } } echo "\n" ?> |
[ Voor 39% gewijzigd door WoBBeL op 29-12-2015 22:36 ]