Posts by janzeitler

    Ja super! Dann wäre das auch erledigt. :danke_ATDE:



    //EDIT: Hier wäre alles in einem Script:
    .....


    //EDIT2: Da fällt mir gerade auf das man bei "regain" noch eine Prüfung einbauen sollte ob der letzte Schaltzeitpunkt "heute" war, bevor man es einfach ausführt... Das fix ich morgen.


    Ich kann warten... :D Also kein Problem wenn Du das später machst.


    Allerdings muß ich zugeben, daß ich etwas verwirrt bin. :s :
    "//EDIT: Hier wäre alles in einem Script:" heißt, daß ich diesen Part "regain" unter Deinem schalten.php aus Beitrag #39 in das Skript schalten.php einfüge. Oder???
    So habe ich Deinen
    Crontabeintrag:

    Code
    * * * * *   /usr/bin/php /var/www/schalten.php cron >/dev/null 2>&1
    @reboot     /usr/bin/php /var/www/schalten.php regain >/dev/null 2>&1


    verstanden.
    Sorry wenn ich blöd nachfrage aber in PHP bin ich absoluter Newbie und sehr sehr dankbar für Deine Hilfe aber ich möchte Dir unnötige Arbeit ersparen, nur weil ich mich nicht richtig ausgedrückt oder es nicht richtig verstanden habe..


    Achja. Bevor ich Dir das verheimliche (hatte ich völlig übersehen):


    Wenn du noch ein bash Script nutzt - was ich jetzt nicht rauslesen konnte


    Der eigentliche Schaltvorgang wird in schalten.php, Bsp. USB-Dosen, über mein /var/sudowebscript.sh erledigt:

    Quote


    #********* Anfang Schleife USB-Steckdosen**********
    case ($n1 >= 1) and ($n1 <= 4);
    #
    exec("sudo /var/sudowebscript.sh $n1 $n2");


    Hier nochmal mein /var/sudowebscript.sh (von Dir "geklaut" und angepasst)


    Sorry, daß ich so spät damit rausrücke. :blush:

    WOW - :danke_ATDE::angel: für die Menge an Arbeit!



    PS: Ich hab das hier vereinfacht dargestellt - professionell sähe es nämlich komplizierter aus :fies:


    Gut, daß Du es nicht professionell gemacht hast - dann würde ich nichts mehr kapieren - ist so schon ne Menge Input. (nicht böse gemeint)
    Ehrlich gesagt - das muß ich jetzt erstmal verdauen und vor allem umsetzen!
    Wenn ich das richtig verstanden habe, dann entfällt jetzt sogar die Prüfung was sollte geschaltet sein, nach reboot. Da der crotab ja jede Minute durchgefürt wird.
    Hammer :thumbs1: Ich melde mich auf jeden Fall mit einem Feedback sobald ich das alles druchgeackert habe.

    Hallo meigrafd - auf Dich hatte ich als Helfer gehofft!
    Ja so ähnlich geht`s mir auch: :D


    Kannst du bitte noch mal einen ausführlichen Zwischenbericht, mit Beschreibung was du vor hast bzw erreichen willst, sowie deinem bisherigen Code, posten? Hab den Überblick verloren...


    Ich weiß nicht ob ich mit meinem Plan auf dem Holz weg bin:
    Was habe ich bis jetzt:
    Das Schaltscript: /var/www/schalten.php:


    Das Auslesescript: /var/www/lesen.php:


    Den crontab:


    schalten.php und crontab funktionieren tadellos.
    auslesen.php liest (aus der SQL Tabelle "Zeiten") und übergibt über printf.. auch alles was ich glaube zu benötigen am Bildschirm aus.
    Da schalten.php die [id_Typ] und den [Status] benötigt lese ich die + die Einschlatstunde und Einschaltminute, genauso für Ausschalten, aus. Den Status den ich zu den Zeiten benötige kenne ich ja und gebe in händisch mit.
    Und was will ich jetzt noch? :
    Entweder - mit aulesen.php eine Datei erzeugen (also die arrays in eine Datei schreiben) die ich mit cron entweder als crontab ausführen kann. Ergebnis ist dann eine Datei wie ich sie händisch per crontab -e erstelle. Problem hierbei: mit fwrite (siehe Beitrag #35) bekomme ich die Fehlermeldung - zuviele Argumente. "explode" bekomme ich nicht hin.
    Oder aber im crontab einen Eintrag setzen, wie in meigrafd`s weckerscript, damit der cron dann täglich das ausführt was ich bisher händisch in meine crontab geschrieben habe. Hier verstehe ich das Weckerscript, trotz vielem googlen zu wenig um mir das so umzubiegen. Also wie schicke ich die Daten für schalten.php mit?
    Ich hoffe ich nerve nicht mit den Spoilern aber so bleibt es übersichtlich und konnte klar ausdrücken was ich vorhabe. Jetzt hänge ich fest und benötige Hilfe.
    Vielen Dank im Voraus dafür.

    EDIT: Hier stand Quatsch daher Beitrag geändert:
    Habe jetzt meine benötigten Daten aus der SQL Tabelle als Array vorliegen:
    [code=php]
    printf("id=%s Start_h=%s Start_min=%s id_Typ=%s
    ",$rows['id'],$rows['start_h'],$rows['start_min'],$rows['id_Typ']); // Ausgabe Daten
    [/php]
    Hänge nun beim Schreiben in Datei
    Output soll sein:
    [code=php]
    $rows['start_min'];$rows['start_h'];*;*;*;/usr/bin/php;/var/www/schalten.php;$rows['id_Typ'];ein
    [/php]
    Statt ; brauche ich aber ein "Leerzeichen".
    mit fwrite bekomme ich die Fehlermeldung - zuviele Argumente:
    [code=php]
    $daten = "$rows['start_min'];$rows['start_h'];*;*;*;/usr/bin/php;/var/www/schalten.php;$rows['id_Typ'];ein";
    $dateihandle = fopen("$filename","w");
    fwrite($dateihandle, $daten);
    [/php]


    Ich hoffe es kann mir jemand helfen.

    Genau das war es!!!
    Die weckzeiten.txt wird erstellt - aber es passiert nichts um die eingestellte Uhrzeit... :s


    Sorry, daß ich solästig bin

    Also mein Skript /var/www/schalten.php:

    Hallo,


    habe Dein Weckerskript in die von Dir beschriebene Datei, ins angegebene Verzeichnis abgelegt. Auch mit chmod +x versehen. Sudo crontab -e usw. - alles gemacht. Aber wenn ich eine Weckzeit einstellen will, dann erhalte ich die Fehlermeldung:


    Was mir nicht kler ist -> wo wird die txt.weckzeiten abgelegt?
    [code=php]
    Warning: file_put_contents(txt.weckerzeiten): failed to open stream: Permission denied in /var/www/html/wecker/index.php on line 150
    [/php]
    Da ich für mein Projekt diese Vorgangsweise nutzen möchte wäre es mir wichtig, dass alles funktioniert.
    Was habe ich falsch gemacht? :s

    :danke_ATDE:
    Und wieder unglaublich schnell geholfen der meigrafd! Super - vielen Dank für die ausführliche Erklärung. Man sucht sich per Google teilweise einen Wolf! Vor allem wenn man nicht weiß wonach man genau suchen soll. Aber ich hab den Wink mit dem Zaunpfahl verstanden! :D
    Jetzt weiß ich, daß ich es komplett in PHP machen muß :^^:



    Warum du jetzt aber aus einer PHP Datei ein bash script nutzt um dann wieder PHP auszuführen, versteh ich nicht :s Mach das doch alles direkt in PHP. Dann könntest du in dem Script auch Funktionen definieren, dieses "schalten.php" dann in deiner Seite include'n und direkt die Funktionen ausführen, ohne exec(); bzw das kannst du dann in der schalten.php nutzen ;)


    Ehrlich gesagt: weil ich, wie man hier sagt: ein PHP-Nackerbazi (null Ahnung), bin. Mein schalten.sh läuft wie ein Uhrwerk. Darum wollte ich es mir einfach machen und das Skript über PHP ausführen. Ich werde versuchen das schalten.sh auf PHP zu übertragen. Mal sehen ob ich das hinbekomme...

    So jetzt habe ich die 3 Tabellen neu gemacht + 1 zusätzlich die Tabelle Zeiten (in dieser sollen später die Schaltzeiten ein - aus zentral hinlegt werdensollen, ohne crontab-Einträge)
    Zur Verdeutlichung habe ich die 4 Tabellen in Excel angelegt und als Angang hierangehängt. Diese wurden genauso in MySQl angelegt und befüllt.
    Inspiriert durch:
    Idee wie in:


    http://www.forum-raspberrypi.d…-befehle-mit-php-absetzen
    Beitrag #6 (meigrafd)


    Habe ich auch mit PHP experimerntiert und viel nachgelesen. Mein Gedanke ist statt des schalten.sh skripts nun schalten.php aufzurufen in dem dann mit shell_exec das schalten.sh skript (zum eigentlichen Schaltvorgang) ausgeführt wird und der Schreibvorgang in die MySQl Tabellen dann php erledigt.
    Um wieder nur 1 Skript in PHP zu haben dachte ich geht wie in der Shell:

    Code
    php schalten.php 11 ein


    dann bekomme ich aber als Ergebnis:

    Code
    /home/pi/aquarium/sh/schalten.sh: Zeile 5: ((: >=1: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \">=1\").
    /home/pi/aquarium/sh/schalten.sh: Zeile 25: ((: >=11: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \">=11\").
    /home/pi/aquarium/sh/schalten.sh: Zeile 51: ((: >=16: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \">=16\").
    /home/pi/aquarium/sh/schalten.sh: Zeile 86: ((: >=16: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \">=16\").


    Also gehe ich davon aus, daß PHP die $1 und $2 Variablen aus dem Aufruf nicht an die Shell weitergibt, bzw. diese nicht mitverarbeitet.
    Ein

    PHP
    #!/usr/bin/php
    <?php
            echo $n1;
    ?>


    Liefert als Ergebnis:

    Code
    PHP Notice:  Undefined variable: n1 in /home/pi/schalten2.php on line 3


    Bin ich also nun mit PHP auf dem Holzweg und ich lasse das schalten.sh Skript auch in die MySQL Tabelle "Vorgang" schreiben, weil es ja schon (bis auf das MySQL schreiben) fix fertig ist und funzt. Oder wie muß ich die "11" und "ein" sonst an das schalten.php Skript mitübergeben?


    Ich brauche also wieder mal :helpnew:


    :danke_ATDE: im Voraus.

    Einige werden sich jetzt fragen was will ein Newbie wie der hierzu sagen?
    Zur Erklärung: Ich lese schon Jahre in diesem Forum, nicht angemeldet, mit. Da ich für mein Projekt unbedingt die angehängte Grafik eines Threads sehen wollte habe ich mich doch entschlossen mich hier anzumelden. Aktiv (außerhalb meines Projektes) wollte ich nicht werden! Aber da in einem Thread hier dermaßen auf meinem "Helfer und Ratgeber" herumgehackt wurde, sehe ich es als Herzensangelgenheit an mich hier auch zu Wort zu melden! In besagtem Thread wurde von meinem Beitrag behauptet - hier gehört das nicht her! Dann gebe ich eben hier meinen Senf dazu!


    rmjspa - Du hast mir aus dem Herzen gesprochen:


    So viel Zeit wie Du, meigrafd, Dir für mich genommen hast und mir sehr ausführlich geholfen hast (und hoffentlich weiter hilfst...) das ist mehr als wünschenswert und auch für mich als Newbie hast Du nie "von oben herab" gewirkt. Da gibt es andere hier, auf die diese Beschreibung weit mehr zutrifft. Weiter kann ich bestätigen, daß Du und Dein cooles Profilbild in "grundsätzlich fast in jedem Thread" (Zitat von Flllo, Beitrag #7) vorhanden sind. Das muß Dir erst mal einer nachmachen!
    Selbst wenn ich nur annähernd Dein Wissen hätte würde meine bescheidene Zeit das nie zulassen und daher habe ich Hochachtung vor so viel Engagement. Vielleicht sollten das einige im Hinterkopf behalten wenn Sie sich von Dir angegriffen fühlen...


    Von mir ein klares :thumbs1: und weiter so :angel: Oder sind Emotikons ab sofort unerwünscht? :fies:


    Solltest Du Dich aus diesem Forum zurückziehen - was ich gut verstehen könnte wäre das ein großer Verlust und für mich ein klarer Grund es ebenfalls zu tun.


    Ich hatte in meinem Beitrag auf eine Relaiskarte verwiesen (mit Besorgungsquaelle) die auch für den PI passt mit dem ULN 2803 dazwischen sind die 5V für den PI kein Problem udn der PI stirbt nicht. Man kann hier nur Stichworte für Tante Google geben. Mit dem Link in meinem Beitrag wird sogar die Verkabelung und mögliche Probleme mit dem PI 2 angezeigt. Falls es dem TO hilft kann ich hier meine Bestelliste mit Bestellnummern angeben. Dann hat er alle benötigten Bauteile beinander.
    weiterer Anschlussplan hier:
    http://www.forum-raspberrypi.de/attachment.php?aid=2504
    Wenn man diesen nicht lesen kann -> Finger weg vom basteln!



    Stimmt auch nur in welcher Anleitung oder Relaiskarte steht das?


    Hm, ich verweise auf den Hausverstand. Man solte nicht basteln anfangen, wenn man nicht die Hintergründe versteht und sich nicht in die Materie einliest.Wenn jemand an den PIOS mit Strom spielt und das dann schief geht dann war ist der Ratgeber aus der Anleitung Schuld? Jeder handelt hier auf eigenes Risiko und wer sich der Gefahr den PI zu braten nicht bewußt ist der sollte sich an jemanden wenden der das kann. Du kannst nicht jeden PI vor Basteleien retten! Das ist meine bescheidene Meinung.



    du kennst die Hintergründe nicht, es wird schon einen Grund haben warum er dort den fies smilie setzte, also nochmal warum tut er das? keine Antwort ist auch eine Antwort.


    Richtig - und so wird es vielen anderen auch gehen. Daher ist diese Diskussion hier fehl am Platz. Macht doch einen eigenen Thread dafür auf - mein Vorschlag.
    Wenn sich jemand nicht äußern mag, dann hat er wohl alles gesagt was zu sagen war. Man kann nicht alles zu Tode diskutieren. Auch wenn ich mich wiederhole - hier gehört das nicht her!



    nicht bei Strom, da gibt es keine 2 Meinungen, ist ja nicht wie Software reversibel.


    Stimmt - aber hier geht es um eine Lösung für Relais und nur indirekt um Strom. Lösung wie Du schon gesagt hast mehrfach durchgesprochen -> Relaiskarte!
    Jetzt sollten wir das Thema erledigt haben bis der TO sich wieder mit konkreten Fragen meldet.


    Ich bin ebenfalls Neuling im Forum.
    Ich hatte ebenfalls auf die Lösung mit einer Relaiskarte verwiesen, ein Beispiel mit einer Relaiskarte und ULN 2803 beigefügt. Aus meiner bescheidenen Sicht sollte das die Lösung sein.
    Es liegt am Themenersteller selbst sich das für ihn Passende rauszusuchen. Es gibt sicherlich die Möglichkeit die Herstellerangaben zu überschreiten. Das passiert aber auf eigenes Risiko und ist für Anfänger nicht geeignet. EliteX13 ich würde wie georg-Lu_1963-1 es vorschlägt den selben Weg gehen, der in vielen Foren geraten wird: Wenn Relais - dann Relaiskarte + passendes Umfeld! Tante Google hat auch mir geholfen. Man muß eben Zeit dain investieren und lesen... lesen... lesen


    Auf die Gefahr hin von längerfristigen Mitgliedern Prügel zu beziehen äußere ich mich mal zur ausgearteten Diskussion:
    Diese Diskussion mit samt aufeinander Rumgehacke hilft dem TS nicht weiter und verfälschen den Beitrag für alle die später hier (z.Bsp. über Tante Google) Rat suchen und nachlesen. Das kann ich aus eigener Erfahrung so sagen.
    @ Andreas; ich habe meigrafd als sehr kompetenten und besonnenen Ratgeber kennengelernt. Er hat viel seiner sicherlich kostbaren Freizeit damit verbracht mir ausführliche und kompetente Hilfestellungen zu geben. Ich kann ihn, für mich, nur in die Liga der User, die Du als besonnen anführst, einreihen.
    @ jar; wie kann man sich nur an so einem doofen Emotikon aufhängen? Sollte es hier ein Problem geben, dann diskutiere doch mit meigrafd per PN das Ganze aus. Wie gesagt hilft dem TS nicht weiter....


    Gleichzeitig kann ich auch gut verstehen, daß es zu Diskussionen kommt, wenn hier Leute mit viel Wissen aufeinander treffen und unterschiedliche Lösungsansätze geben. Es gibt eben wie immer viele Wege die nach Rom führen.


    So und jetzt könnt ihr auch auf mir rumhacken - nur wird auch das dem TS in keinster Weise helfen.


    Geht. Habe ich auch gemacht. USBKabel mit Mini-USB-Stecker selbst gemacht:
    Datenleitung hab ich gekappt und schwarze (bzw. rote) Leitung an schwarze (bzw. rote) Leitung gelötet. Achtung: Verpolen tut meines Wissens dem PI nicht gut! (Habs aber noch nie ausprobiert :D )
    Man sollte etwas Elektrikerfahrung haben. Such über Tante Google da findest Du Bilder mit Kabelfarbe und was drüber läuft.


    Ja das Problem liegt wirklich bei Amazon!
    Den Button Amazon Prime Account auf "Adobe Flash Player" umschalten gibt es nicht mehr. =(
    Ich schau halt über die Amazon Prime Instant Video App von Amazon außerhalb von Kodi...


    Was mich noch mehr nervt: IPTV geht nicht mehr in vollem Umfang... - auch hier liegt das Problem an Sendern die die Seitenbetreiber klagen usw. :@


    ...


    PS: Das Amazon-Prime-Instant-Video-Addon für Kodi stammt aus der Feder des sehr aktiven Kodi-Entwicklers AddonScriptorDE. Aktuell nimmt er sich allerdings wohl eine Auszeit, sodass das Addon aufgrund von Änderungen auf der Seite von Amazon Prime Instant Video nicht mehr funktioniert. Nun hat sich allerdings der User lordk aus dem Kodinerds-Forum der Sache angenommen und das Addon auf einen aktuellen Stand gebracht. Bis AddonScriptorDE wieder in die Entwicklung einsteigt, betreut lordk die von ihm aktualisierte Version des Addons in einem von ihm betriebenen Addon-Repository. Sobald AddonScriptorDE wieder aktiv wird, sollen die Änderung zurück in das ursprüngliche Addon fließen. Den Quellcode des geänderten Addons findet ihr auf Github.


    Ich hab Kodi auf einem Cubieboard 8 allerdings auf Android laufen und da funzt auch das neue Addon von lordk nicht. K.A. warum nicht.

    Oder habt ihr andere Ideen wie ich etwas mehr Ampere aus meinem Raspberry Pi Kitzeln könnte?


    Also eine Lösung habe ich nicht für Dich aber einen anderen Ansatz.
    Ich habe es über diese 8-Kanal Relasikarte gelöst:


    SainSmart 8-Kanäle RelaisModul Brett 5V Für Arduino PIC AVR MCU DSP Relay Module


    http://www.amazon.de/gp/product/B005WR734M?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00 (Affiliate-Link)


    Auszug aus meiner Rezessoin zur Karte:
    Auf der Seite von http://blog.lieberlieber.com (einfach nach“ raspberry-pi-2-not-ready-for-real-life“ googeln) findet man die Lösung mit einem ULN2803A. Diesen IC Uln 2803 Dil18 habe ich zusammen mit einer IC-Fassung 18-polig, eine Experimentier-Platine und Steckerstiften für unter 10,- € gekauft (+Relaiskartenkosten). Alles verlötet und mit Steckbrückenkabel verbunden. Wichtig ist dabei noch, daß Ihr die Relaiskarte und den Raspberry Pi mit dem gleichen Netzteil versorgt. Hier sind Netzteile mit 5V und über 2A mit 2 usb-Anschlüssen – so kann man das mini-usb- Kabel für den Pi und zusätlich eines (mit den Steckbrückensteckern für den ULN2803A und die Relaiskarte) basteln. Eine feine und relativ einfache Lösung, so flackern die LEDs der Relaiskarte nicht.


    Übrigens gibt es auch Karten mit 2 oder 4 Relais.
    So kann man sicher Relais schalten ohne die GPIO zu grillen. Laut Hersteller soll es sogar möglich sein Spannungen von bis zu 230V zu schalten - ich schalte nur 12V (traue mich nicht 230V da drauf zu geben!) und meine 230V über eine Gembird USB Steckdosenleiste.
    Vielleicht ist das ein Lösungsansatz für Dich.

    Also ich bin gestern mit einem Jumper Leitung ausversehen auf Pin 3v3 gekommen anstatt auf Pin 5V und das Netzteil war am DC Kupplung drann.


    Stimme auch meinem Vorredner zu. Will wirklich nicht klugscheissen aber ich benutze nur Dupont Drahtüberbrückungskabel female. Kosten nicht die Welt und sind isoliert- da kommt dann keine Spannung versehentlich irgendwo hin. Allerdings gegen falsches Anschließen helfen die auch nicht. Aus ähnlichen Erfahrungen wie Deinen stecke ich nur im ausgeschalteten Zustand irgendwas und kontrolliere dann 3x mit einem Anschlußplan nach bevor ich Strom drauf gebe.
    Bin eben ein Kontrollfreak und trotzdem habe ich schon das eine oder andere Elektroteil gebraten! Shit happens und wenn man bastelt noch mehr.
    Also Kopf hoch und weitermachen! Es ging schon besseren Leuten so wie Dir.
    Viel Glück beim nächsten Versuch.