Beiträge von Griborim

    Mh bisher hab ich darüber keine Erfolge erzielt.

    Was mich halt verwundert ist, das bis zu einem gewissen teil es ja geht, bis auf eben wenn überspannung dazukommt.

    Ebenso scheint ja i2c weiterhin zu funktionieren, da es ja gefunden wird sobald das i2c modul neu gestartet wird.

    Hallo,

    ich verwende als OS Raspian für meinen PI.

    Nun habe ich dort einen Webserver laufen um einige Entwicklungen darauf zu testen.

    Nun sind per apt-get ja doch etwas ältere Versionen verfügbar.

    Nun wollte ich aber dennoch ganz gerne die neusten Versionen vom apache, php und mysql verwenden.

    Gibt es dazu eine Möglichkeit außer das ganze selbst zu kompilieren?

    Was gegen kompilieren sprich ist das ich mich null damit auskenne und leider da auch nicht so ganz durchblicke.

    Ok vergiss es mein Ansatz war falsch, ich habe den Fehler schon gefunden.
    Ich hatte die Variable i2c zu spät deklariert so konnte er die LED gar nicht ausmachen, da er dann ein Fehler brachte.

    Ich habe das ganze nun noch vorm sighandler definiert und nicht erst in dein main function.

    Manchmal sieht man den Wald vor lauter Bäumen nicht^^

    Da du ja das mit den i2c nicht verwendest hatte es bei dir auch geklappt^^

    Alles klar meigrafd.


    @__deets__

    ein kleines Problem habe ich nun seltsamerweiße wieder.

    Er registriert das SIGTERM nicht.

    Mein Ansatz ist da er in der while schleife hängt in der Main function wird das nicht mehr registriert weil er ja schon durchgelaufen ist.
    Wieso es aber vorhin außerhalb der while schleife ging kA.

    Wenn ich das ganze nun aber wieder in die while schleife mache habe ich ein Fenster wo hier auch das signal vorbei gehen könnte.

    Daher mein Ansatz das ganze als weiter threading zu starten.

    Was sagst du dazu?


    Kleiner Nachtrag: mir ist noch ein Fehler in meiner Implementierung aufgefallen, den habe ich ausgebuegelt - das kannst du problemlos in dein Programm uebernehmen:

    Durch die for-Schleife, die alle aktuellen Werte aus der Queue abruft loest man das (potentielle! hier nicht wirklich gegebene) Problem, dass man schneller Werte in die Queue schreibt, als sie abgearbeitet werden. Falls das mal passieren sollte (zB weil du die Blinkrate auf 5 Sekunden gestellt hast oder so.... alles hypothetisch), interessiert eben immer nur der aktuellest Wert - und so holt man den raus.

    Ah ok danke für den Hinweiß wurde eingepflegt.

    Hallo,

    ich bin nun etwas schlauer geworden was die ganze Sache angeht.

    Sobald der PI übertaktet wird passiert genau dieses Problem.

    Solange er kein overvolt bekommt läuft alles einwandfrei.

    Nur damit kann ich ja nicht wirklich viel übertakten.
    Unbedingt nötig wäre dies nun auch nicht für mein Projekt ( Funkiert als kleiner Webserver um meine Entwicklungen von php zu testen)

    Nun stelle ich mir die Frage würde hier eventuell ein 3A Netzteil abhilfe schaffen?

    Was meint ihr?

    Betrieben wird ein WLAN Stick über USB.
    Dann habe ich mir die PI Supply gekauft und diese ebenfalls Integriert ( Hier flackert auch beim booten kurz die LED, also ein zeichen das hier einiges an Strom fließt um den Kondensator aufzuladen)
    Die LED und aufrechterhaltung der PI Supply läuft über GPIO Pin 7, dieser hat ja nachdem Laden des Kernels 3.3V

    Und auf der GPIO Leiste sitzt auch die USV ( Pico UPS) die wird ja auch mit Spannung versorgt über den GPIO wo auch wiederrum ja ein Akku darüber geladen wird.
    An LEDs hat die USV die Bereitschaftsled und falls der Akku geladen wird eine LED dafür, sonst sind noch ein paar andere LEDs drauf.
    An sind aber nur immer die Bereitschaftsled und eine der Benutzerdefinierten LEDs die über I2C angesteuert werden wenn mein WLan Verbindung zum Router hat.

    Aber ich sags mal so die ganzen LEDs ziehen ja nicht viel an Strom.
    Das meiste wird der Kondensator beim Laden und die USV ziehen.

    Hallo __deets__,


    normalerweiße mache ich ja keinen doppelt Post.

    Aber ich wollte dir nur mal das jetzige Script zeigen.

    Das ganze läuft nun so wie von dir Vorgeschlagen mit Multi Threading.
    Die ganze Funktionsweiße hab ich rausbekommen als ich dein Script einfach mal ausgeführt habe und mir anschließend den Code nochmals genau angesehen habe und festgestellt habe er ruft ja den Status über Queue ab.

    Und da hatte es dann klick gemacht.

    Hier nun aber der Code.

    Bei deinem Beispiel war ja router_erreichbar = True dies habe ich auf False geändert, da ja genau genommen der Status 0 sein müsste bevor er überhaupt überprüft.

    Somit blinkt nun die LED beim Start und hört auf wenn die Überprüfung erfolgreich war.


    Na das sieht doch ganz gut aus. Das "if ping(...) == True" kann auch ohne "== True" auskommen, denn ein "if" reagiert auf "ist wahr"-werte -und True ist ja wahr. Wenn "ping(...) == True" notwendig waere, muesste eigentlich auch "(... (ping(...) == True) == True) == ....)" notwendig sein ;)

    Um die Blinkrate zu verfluessigen wirst du um multi-threading nicht herumkommen. Damit kannst du parallel pingen, und blinken.

    Hier mal ein Geruest - wieder zum selber befuellen ;)

    Da hast du natürlich recht mit dem True.
    Ist einfach eine kleine Angewohnheit von mir^^

    Der jetzige code von dir klingt sehr gut.
    Mal sehen ob ich da durchblicke^^


    Im Grunde nach muss ich mein code um deinen ergänzen bzw meinen in deinen einpflegen.

    Deine Art ist gut deets nur huihuihui schwer zu verstehen als Einsteiger ohne Tutorial^^
    Aber vielleicht versteh ich es nach ein paar Antworten noch.

    Die Main funktion ist die Hauptfunktion die aufgerufen wird und mir die led zum blinken bringt.

    Nun aber eine frage, das ping task ist doch vermutlich die function fürs pingen sprich die müsste doch dann mit meiner ersetzt werden?

    Ich verstehe nur nicht ganz wie weiß er wann er router ist erreichbar auf true setzen darf.

    Naja nicht ganz Andreas,

    irgendwie hat es beim Absenden wieder die Abstände zerschossen.

    Sprich das ping und das if befindet sich alles in der while schleife, lediglich das

    print os.getpid()

    signal.signal(signal.SIGTERM, sighandler)

    befindet sich über der while schleife.

    Und so funktioniert das ganze auch.


    Was mich eher interessiert gerade ist der Post von meigrafd.

    Beim Ping habe ich ja nun extra eingestellt das er nur einmal versucht zu pingen.
    Und so wie ich das verstanden habe bringt er ja eine 0 wenn er den router anpingen kann, bei allem anderen soll die led blinken.

    Von daher versteh ich nicht was daran ungenau ist?

    Ich verstehe deine Funktion schon, ist ja auch recht simpel alles.

    ich müsste ja nur deine funktion hinzufügen.

    und mit if abfragen ob diese funktion ein true rausgibt.


    EDIT:

    Ich habe das ganze mal angepasst.
    So sieht das derzeite Script aus.

    Nun muss ich nur mal schauen das ich die blinkrate etwas flüssiger mache.
    Da ja die LED länger ausbleibt wie an ist, allein bis der ganze Code abgearbeitet wurde.

    Ah ich glaube nun hat es klick gemacht.


    Das heißt eigentlich müsste mein Code dann so aussehen.


    Und das signal SIGTERM müsste ja mit dem herunterfahren kommen, richtig?

    Nein ich hatte das wirklich nicht eingerückt.

    Nur so wie deets verstehe ist dies nicht mein einziges Problem.

    Wenn ich deets richtig verstehe muss ich mein Programm irgendwie in seines integrieren.
    Nur derzeit habe ich davon 0 Ahnung.

    Habe auch schon versucht über google was zu finden, nur naja.

    Nein nein, versteh mich bitte nicht falsch python und der PI und alles außenrum ist total neuland für mich.

    Daher bin ich ja um jeden Tipp dankbar.

    So sieht nun mein Code aus.

    Nur getan hat sich da nix.

    Habe das script manuell gestartet, derzeit befindet es sich noch nicht im Autostart deswegen manuell.

    Und habe über putty den shutdown befehl gesendet.

    Nur die LED ist weiterhin angeblieben.


    Ich vermute ich habe da dann doch was falsch verstanden.

    Hallo,

    ich habe mir ein Script geschrieben welches eventuell noch optimiert werden kann, dazu bräuchte ich euren Rat.

    Folgendes macht dieses Script.

    Es Überprüft ob der Router angepingt werden kann, wenn nein fängt die LED am I2C Bus an zu blinken.
    Wenn ja leuchtet diese dauerhaft.

    Hier nun das Script.

    das ganze wird beim Starten in der rc.local ausgeführt.

    Nun ist es allerderings so das der LED Status gespeichert bleibt.
    So wäre nun gleich beim anmachen des PI die LED an.

    Dies könnte ich ganz einfach lösen in dem bevor der PI herunterfährt bzw. neu gestartet wird die LED auf 0 gesetzt wird.

    Wie kann ich dies realisieren so das garantiert das Script vom Start schon beendet ist und bevor der I2C nicht mehr erreichbar ist ich die LED noch auf 0 setzen kann.

    Bin für jeden Tipp dankbar.

    Hallo,

    nun habe ich leider ein weiteres Problem mit der PICO UPS.

    Ich wollte nun HWClock richtig einrichten.

    Nun ist mir dabei aber folgendes aufgefallen das beim starten des PI die UPS nicht über I2C erkannt wird.
    Starte ich die UPS über den Button UPSR neu, wird diese gefunden.

    Nach einem erneuten neustart des PI wiederrum aber nicht mehr.

    Ich bin etwas Ratlos.
    Ebenso muss ja laut Anleitung der gelbe Jumper entfernt werden, doch bleibt dieser entfernt oder setzt man diesen wieder drauf. Habe schon beides versucht aber es hat sich nix geändert.

    Ich habe schon mehrfach die Bedienungsanleitung durchforstet nur finde ich dafür nix.

    Hallo zusammen,

    ich habe mir nun diese usv auch gekauft und nun soweit auch zum laufen gebracht.

    Nun hab ich ein Problem noch, wenn der Strom abfällt und die usv den pi runterfahren tut.

    Dann geht die usv mit aus. Beim Starten vom pi geht diese aber nicht wieder mit an.

    Ich muss jedesmal die usv reseten, ist dies normal?