Posts by Robby

    Danke Dennis89

    Das klappt. Habe einen falschen Ansatz verfolgt und den Fehler immer im ersten Script gesucht.

    Das es einfach mit der if Anweisung geht, hatte ich nicht auf den Schirm gehabt.


    Danke nochmal für den Denk Anstoß.

    Hallo liebe Forenmitglieder,


    habe bei mir mehrere Steckdosen KP105 mit den Raspberry am laufen. Das funktioniert auch soweit ganz gut.

    Die Statusabfrage wird über 2 Python Scripte realisiert.


    tplink_smartplug.py

    Auslesen.py

    Das Problem was ich habe, ist wenn eine Steckdose nicht erreichbar ist, das die Abfrage unterbrochen wird. Das Script tplink_smartplug.py gibt zwar wenn ich die Abfrage über der Console mache die Fehlermeldung print ("Cound not connect to host " + ip + ":" + str(port)) aus.


    Um auf meiner Webseite zu erkennen das eine Steckdose ausgefallen ist, benötige ich im Script Auslesen.py den Wert "99" in der Variable outputxx.


    Das ist das Problem was ich im Moment habe.

    Was muss ich ändern, habe schon versucht das zu realisieren. Aber leider habe ich noch zu wenig mit Python bis jetzt zu tun gehabt.

    Setze gerade einen neuen Raspberry auf.

    Bis lang habe ich zur Steuerung der GPIO WringPi benutzt. Aber aus aktuellen Anlass wollte ich die Steuerung jetzt über PIGS steuern.

    Das ein- und auschalten funktioniert auch soweit.

    Nur bei einigen Button habe ich bis jetzt immer die toggle funktion benutzt. Dazu der String


    exec( "gpio -g toggle {$_GET["gpio"]}" ) ;


    Ist das mit PIGS auch möglich. Konnte dazu nichts finden.

    Und wenn ja wie muss der String dabei aussehen?

    Der Hinweis hat mir geholfen. Bekam die Antwort

    Code
    /etc/php/7.4/apache2/php.ini:861:allow_url_include = On
    /etc/php/7.4/cli/php.ini:861:allow_url_include = Off

    Nachdem ich in der anderen php.ini den Wert auch geändert habe geht es jetzt.

    Danke für deine Hilfe

    fred0815

    Danke für deine schnelle Hilfe.

    Habe die Datei gefunden aber bei mir steht die in ein anderes Verzeichnis. /etc/php/7.4/apache2/php.ini

    Habe den Eintrag geändert, brachte aber keinen Erfolg. Ich habe die gleiche Fehlermeldung.

    Oder liegt es jetzt etwa am Script?

    Das Script dazu sieht so aus:

    Ich erstelle gerade für mein Smart Home eine neue Seite die in php geschrieben ist.

    In den Script benötige ich von den anderen Raspberry Variablen die dort in entsprechenden Dateien wie zb.: Temperatur.dat hinterlegt sind.

    Die Datei möchte ich per include einbinden.

    Dabei bekomme ich vom Apache eine Fehlermeldung

    wrapper is disabled in the server configuration by allow_url_include=0

    Habe schon in der config Datei nachgesehen, kann aber den Punkt niergends finden. In welche Datei muss ich die Änderung durchführen?


    Ja ich weiß das es auch mit Sicherheit zu tun hat, aber mein Smart Home ist ein seperates Netz und nicht mit dem Internet verbunden.

    Danke hyle, das war es. Jetzt läuft alles.

    Aber nur komisch das es beim anderen Raspy läuft und bei diesen nicht.

    Kann das an der Linux Version liegen, denn der andere müste noch DEBIAN sein und die aktuelle Version heißt glaube ich Booster oder so ähnlich.


    Denn dies war nicht das erste Problem was ich hatte.

    Da waren mehrere wo ich das script ändern musste, damit es lief.

    Da hatte ich ein Problem unter Python die print Befehle muste ich auf einmal in Klammern setzen, damit das lief.

    Habe ein Problem beim Aufruf einer Seite mit Übergabe von 2 Variablen.

    Bei einen 2. Rapberry funktioniert das ganze. Aber bei den neuen Raspberry mit aktuellen Linux bekomme ich es nicht ans laufen.


    Ich habe das ganze etwas vereinfacht.

    Ich habe ein Script: "Sonnen_Untergang.sh" wo ich eine php Seite mit aufrufe.

    Der Aufruf der Rollorseite funktioniert.

    Aufruf der Seite für die Lampe habe ich ein Problem. Dort benötige ich 2 variablen.

    Die Seite sieht im Moment so aus:

    Wie gesagt auf einen anderen Raspberry funktioniert das. Aber dort ist noch eine ältere Linux Version drauf. Ob es daran liegt?

    Hier habe ich das Problem, das die erste Variable $ain angezeigt wird und die zweite Variable $cmd leer ist.

    Ich kann die Variable auch tauschen, das Problem bleibt. Die erste wird übertragen die 2. nicht.

    im Errorlog von Apache bekomme ich den Fehler: PHP Notice: Undefined index: cmd in.


    Kann mir einer helfen und mir sagen was ich falsch gemacht habe?

    Bin schon den ganzen Tag auf der Suche nach den Fehler. Kann ihn aber nicht finden.
    Habe schon mehrfach mit der Variable $_SESSION gearbeitet und nie Probleme gehabt. Aber jetzt.


    Es geht darum, das ich bei meine Heizkörperregler die Temperatur ändern kann.

    In den Script: "Heizung_Aendern.php wähle ich die neue Temperatur aus.

    Über die $_GET Variable übergebe ich die AIN Nummer der einzelnen Heizkörperregler und den Raum.

    Das funktioniert bis hier alles. Der Inhalt von $_SESSION['raum'] wird auch angezeigt.

    Im script "Heizung_speichern.php" soll die neue Temperatur an den Regler übertragen werden.

    Im Script sind die Variablen von $_SESSION['raum' und $_SESSION['ain'] nicht mehr vorhanden.


    PHP
    <?php
    session_start();
    echo "Hallo Welt";
    echo $_SESSION['raum'];
    echo $_SESSION['ain'];
    echo $_POST['Temperatur'];
    ?>

    Die Variable $_POST['Temperatur'] wird angezeigt, aber die anderen beiden Variablen nicht mehr.

    Wo habe ich bei mir den Denkfehler?

    KKoPi

    habe jetzt beide Versionen ausprobiert. Die Datei wird jeweils erstellt mit Inhalt, aber bei beiden Versionen kommt die Fehlermeldung

    "file_put_contents(/tmp/Steckdose.json): failed to open stream: Permission denied in...." bez.

    "file_put_contents(/tmp/Steckdose.dat): failed to open stream: Permission denied in..."


    Eventuell liegt der Fehler noch ganz wo anders. Ich weiß nur nicht wo.

    Das Script wo die Werte ausgelesen und in der Datei gespeichert werden soll sieht so aus:


    Die Datei zum Auslesen der Werte:

    Dieses Script ist noch nicht fertig. Es wird später verglichen was sich verändert hat und entsprechend dann die URL erstellt um die Steckdose anzusteuern.

    Nur zur Info!

    Die Steuerung läuft einwandfrei. Nur sind die AVM Steckdosen träge beim schalten. Dadurch dauert es lange bis die Info zurückkommt das der Befehl ausgeführt wurde. Das wollte ich damit umgehen das ich den Zustand in einer Datei zwischen speichern möchte.

    KKoPi

    ja du hast vollkommen Recht. Es ist in php geschrieben. Hätte ich beischreiben müssen


    In der Datei "Auslesen.php" werden die Werte gespeichert.

    Code
    $steckdose = array ("ain1" => $ainStatus1, "ain2" => $ainStatus2, "ain3" => $ainStatus3,
                    ("ain4") => $ainStatus4, "ain5" => $ainStatus5 );
    $fp = fopen('/tmp/Steckdose.dat', 'w');
    fwrite($fp, print_r($steckdose, true));
    fclose ($fp);

    Und die Datei "Steckdose.dat" sieht dann wie oben aus.


    Aber dein Script geht bei mir nicht. Ich bekomme als Fehlermeldung:


    ain1: PHP Notice: Trying to access array offset on value of type int in.......

    Ich habe ein kleines Problem mit assoziativen array.

    Bislang bin ich nicht auf die Lösung gekommen. Irgendwie drehe ich mich im Kreis herrum.

    Kurz um was es sich handelt:

    Ich lese die aktuellen Zustände von Funksteckdosen aus und Speicher die in einer Datei "Steckdose.dat" ab.

    Die Datei sieht dann so aus:

    Mein Problem besteht darin, das ich die Zustände also Wert "0" bez "1" auslesen und in $ain1, $ain2 usw, speichern möchte.
    Bislang habe ich nur immer die ganze Zeile in einer Variable bekommen und nicht den reinen Wert.

    Wäre sehr Dankbar für eure Hilfe.

    Mit PHP direkt ist das IMHO nicht möglich, wobei ich mir in Verbindung mit PIGPIO nicht sicher bin. Du wirst ein Skript anschubsen müssen, z.B.:

    PHP
    <?php
    
    $output = shell_exec("/Pfad/zum/Skript.py <ggf. Argumente>");
    
    // evtl. die Ausgabe anzeigen lassen
    echo $output;
    
    ?>

    So ungefähr habe ich das bis jetzt am laufen. Habe nur gedacht das man dadurch den Umweg über ein Skript sparen könnte. Dann werde ich das so lassen wie ich es bis jetzt habe. Da weiß ich, das es funktioniert.


    Trotz alledem Danke für eure Infos

    Hallo liebe Community


    Ich bin gerade dabei meine Smart Home ein Update zu verpassen.

    Dabei wollte ich die GPIO mit PIGPIO steuern. Funktioniert auch soweit. Nun kam mir die Idee PIGPIO über den Webserver in PHP direkt anzusteuern.

    Leider konnte ich nichts finden wie man die darüber ansteuert.

    Ist das überhaupt Möglich, oder muss ich über Python etc gehen.

    Wenn das mit PHP geht kann mir dann einer ein Beispiel Skript schreiben ?

    tres

    bin schon den ganzen morgen am testen. Wollte das heute noch einmal nachstellen ob das richtig war. Leider funktionierte es nicht mehr. Warum auch immer.

    Dabei ist mir aufgefallen, das die SD-Karte die funktionierte in der Datei config.text nichts mehr drin stand.

    Da habe ich mir die Datei genauer angesehen und getestet.

    Nachdem ich die Zeile: dtoverlay=vc4-kms-v3d deaktiviert habe funktioniert bei mir der Bildschirm.

    Vielleicht ist das bei dir auch das gleiche Problem

    Hallo Jürgen


    Danke für deine Hilfe, ich habe einen 3b+ schätze der macht keine 4K

    Aber ich habe es jetzt ans laufen.

    Deine Einträge habe ich noch in der config.txt drin.

    Zusätzlich habe ich unter der raspi-config noch 2 Einträge geändert und zwar:


    Display Options --> Underscan --> yes

    Display Options --> Screen Blanking --> yes


    Danach bekomme ich jetzt auch ein Bild.