Beiträge von Hofei

    Du hast wohl auch nicht verstanden was ich geschrieben bzw. gemeint habe?

    Was ich verstanden habe:

    1. ExecStartPre=systemctl stop picoffee.service
      Befehl wird gestartet, sobald die Abarbeitung erfolgreich war wird mit Schritt 2 begonnen
    2. ExecStart=/bin/bash /home/pi/db_backup/db_backup.sh
      Befehl wird gestartet nachdem Schritt 1 erfolgreich beendet wurde. Nach erfolgreicher Beendigung wird Schritt 3 gestartet
    3. ExecStartPost=systemctl start picoffee.service
      Befehl wird gestartet nachdem Schritt 2 erfolgreich beendet wurde. Nach erfolgreicher Beendigung wurde die Service Unit vollständig erfolgreich ausgeführt

    So habe ich deine Frage verstanden und so verstehe ich auch zugleich die Funktion der einzelnen Optionen.


    EDIT:

    Was soll den funktionieren oder nicht funktionieren?

    Die Abarbeitung der einzelnen Befehle in der oben dargestellten Reihenfolge - sry lange Leitung

    (damit der Prozess den systemd-timeout (90 sec.)) überlebt

    ||Stimmt da war ja was, erst kürzlich im anderen Thread - und ich hab auch noch selbst dazu Tests gemacht.


    Bei mir waren es nur komischerweise immer 180 Sekunden - aber ja du hast recht das diese Konstellation dann natürlich für das Backup nicht zu gebrauchen ist.



    Der Backup-Job kann ja als Fork weiterlaufen.

    Das erreiche ich dann Schätzungsweise mit dem Type=forking ?!


    Ich würde auch von einer timerunit keine weitere unit starten, sondern einfach direkt den Job

    :conf:-bisher ging ich immer davon aus, dass ich mit einer timerunit nur service units und keine Skripte starten kann.


    rpi444 ich hoffe doch stark, dass das so funktioniert, sonst wären die Begrifflichkeiten und Funktionen ziemlich umsonst. Aber dazu hat ThomasL mittlerweile schon was dazu gesagt, sonst hätte ich noch eine Testreihe starten müssen.

    Hallo,

    möchte eine Systemd Service Unit erstellen, welche von einem systemd Timer angesprochen wird zur regelmäßigen Datenbanksicherung.

    Jetzt bin ich auf die Idee gekommen, dass ich über die Service Unit für das Backup ja das entsprechende Programm welches die Datenbank verwendet stoppen und nach Beendigung des Backups wieder starten könnte.


    In etwa so (was aber nicht funktioniert):

    Fehlerausgabe:

    Das ist also wohl nicht so gedacht, dass man das systemctl Befehle darüber absetzen kann.

    Mir kam halt der Gedanke, da man ja auch in Requisite (u.ä) direkten Einfluss auf Units nehmen kann.

    Natürlich könnte ich das starten und stoppen im Backupskript selbst vornehmen...aber gibts für mein vorhaben auch eine "systemd Lösung?"

    Hallo,

    nur als kleiner Einwurf, ich nutze bei meinen Service Units für Python Skripte welche endlos laufen: Type=simple


    Welches Python (ob 2 oder 3) genau verwendet wird, da bin ich noch nicht so richtig hinter gestiegen.

    Das musst du aber wissen welches Python verwendet wird, wie willst du sonst die passenden Module für die passende Version installieren?! Deswegen wohl das Problem mit events. Das Ziel ist übrigends Python 3 ;)

    Ich möchte gerne vom Heizraum in unsere Wohnung ein Kabel verlegen an dem eine Alarmsirene evtl. zusätzlich mit Blitzlicht angeschlossen ist.

    Wie weit ist denn der Weg von Heizraum zur Wohnung und wie leicht lässt sich das Kabel verlegen?


    Um dies zu vermeiden gäbe es auch noch andere alternativen, sofern WLAN (Netzwerk) im Heizraum zur Verfügung steht.

    Erfasse die Temperaturen im Heizraum mit einen ESP oder Raspberry Pi, je nach Vorliebe.

    Dort wo die Sirene und das Blinklicht platziert werden sollen, plazierst du einen (weiteren) Raspberry Pi. Die Werte werden vom Heizraum an den Raspberry Pi gesendet, dieser nimmt die Werte entgegen, speichert sie wenn gewünscht, verarbeitet den Wert und steuert bei Bedarf Sirene und Blinklicht an. So hast du zwar etwas mehr Programmieraufwand (die Umsetzung ist aber leicht zu realisieren), sparst dir aber die (womöglich sehr lange) Leitung.

    Kleines Zwischenfazit:

    Die Telegramgruppe umfasst aktuell 13 gut gelaunte User, Moderatoren und Admins und 1 Bot.

    Es findet fast täglich reger Kommunikationswechsel über Gott und die Welt + Technik statt.


    Weitere Mitglieder gern Willkommen.

    Leider bin ich selbst noch zu keinem Erfolg gekommen, überall sind die Seite veraltet und irgendwelche Befehle funktionieren nicht mehr. (Oder ich kanns einfach nicht)

    Jedenfalls denke ich, ist die Lösung Bluez PAN. Wie man das ganze zum laufen bekommt, daran scheiter ich eben, aber hier mal meine aktuell zusammengetragenen Links:

    Bluez HowTo PAN

    bluetooth-pan-network-setup-with-bluez-5x

    eLinux Bluetooth_Network

    Hier würd alles ganz leicht aussehen, leider veraltet

    pand - Pan Daemon Befehlsübersicht - bekomm ich aber noch nicht zum laufen

    Die vielversprechenste Anleitung - hab die Skripte aber noch nicht versucht

    2. Vielversprechende Anleitung


    Hoffe wir kommen damit einen Schritt weiter -jetzt hast du mich auch für dieses Thema neugierig gemacht.

    Python
    1. import socket
    2. import telegram_bot_api as api
    3. ip = socket.gethostbyname(socket.gethostname())
    4. bot = api.bot("xyz")
    5. bot.sendMessage(chat_id=1234, text="IP Adresse von RPi: {}".format(ip))



    Bei Interesse kann ich die längst überholfällige Telegram Bot API dir auch zukommen lassen

    Hm, geht sowas im Hotel-WLAN?

    Sind die Hosts da nicht voneinander isoliert?

    Gute Frage, da fehlt mir aber das Wissen um da was passendes Antworten zu können.


    Bzgl IP Adresse, wie ichs für mich machen würde:

    Kleines Skript mit Telegram Bot, welches per Systemd bei Systemstart ausgeführt wird und mir die IP Adresse via Telegram aufs Handy sendet.

    Unabhängig dessen ob deine Befürchtung zutrifft:

    Jetzt, wo ich das schreibe, denke ich, dass das dann auch per IP nicht gehen könnte, wenn dieser isolation mode aktiv ist...


    Aber auch hier gilt, da fehlt mir das Wissen ...

    eine lokale PHP Webseite mit aktuellen Messwerten
    über Webseite ein Zimmer auswählen, in dessen zugehörige Datenbank Messdaten geschrieben werden

    Kannst du PHP?

    Denn auch das, ließe sich mit Python realisieren.


    Auch wenn ich dich von deiner Experementierfreude mit matplot sicherlich nicht abhalten will, aber kennst du Grafana

    Hiermit ließen sich bestimmt bessere Grafiken und Auswertungen generieren.

    Also mein Vorschlag:

    Der "Hauptraspberry Pi" fungiert ja als Server.

    Somit werden die Maschinen Pis zu Clients.

    Entweder du richtest die verwendete Datenbank so ein, dass man innerhalb des lokalen Netzwerkes darauf zugreifen kann und die Clients in die DB schreiben oder aber, wenn nur via Localhost darauf zugegriffen werden kann, erstellst du von den Clients einen SSH Tunnel mit dem Server und trägst über den Clients die entsprechenden Daten direkt in die Datenbank ein.

    Ebenso kannst du in der Datenbank die RFID Codes hinterlegen.

    Vorteil, zentrale Verwaltung der Codes. Um das ganze abzusichern kannst du den Inhalt von den RFID Codes ja nochmals zwischenspeichern auf den Clients, welche sich dann bei jeden Start nochmals die Aktualisierung vom Server abholen, oder falls eben der Server nicht erreichbar ist, mit den zwischengespeicherten weiter arbeiten.


    Abhängig dessen welche DB bei dir zum Einsatz kommt, gibt es unterschiedliche Python Module, welche für dich in Frage kommen können.

    Mit Peewee hättest du aber ein Modul, welches unabhängig der Datenbank zu verwenden ist.


    Code bitte immer in Codetags posten.

    Desweiteren verwende Python3 nicht Python2! Sollten weitere Empfehlungen zum Code gewünscht sein, gib bescheid ;)