Seite 1 von 3

Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 16:23
von Doc_snyder
Hallo zusammen,

ich habe bei meiner Suche keine Anleitung gefunden, wie man aus Grafana heraus ein Python Skript Starten kann (um z.B. in meinem Fall die Time Control beim Batteriemanagement zu enablen/disablen).

Was ich gerne machen würde:
- in Grafana z.B. den Raspberry Ausschalten Button kopieren
- den entsprechenden http://localhost/server.halt.php link auf ein neu zu erstellendes PHP ändern (das dann im Verzeichnis /var/www/html liegt)
- aus diesem PHP heraus soll dann ein Python Skript gestartet werde, wenn ich auf den Button drücke

Das ganze ist vermutlich trivial, aber ich bin ein blutiger Anfänger, falls das aus den Fragen nicht schon ersichtlich ist... :-)

Kann mir jemand sagen, wie ich aus PHP heraus ein Python Skript starten kann? Welcher Schritt fehlt noch, damit es funktionert? Kann mir vielleicht jemand von Euch ein ganz simples Beispiel geben?

Viele Grüße und Vielen Dank,
Nils

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 16:38
von Bogeyof
Bitteschön...

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 17:16
von Doc_snyder
Bogeyof, super, das ging ja fix, vielen Dank!

Läuft bei mir aber leider noch nicht richtig:

- vom Mobiltelefon/Laptop direkt gestartet, bekomme ich noch eine Fehlermeldung "Die Website ist nicht erreichbar"...
--> Muss ich den Link in Grafana noch ändern und z.B. die IP mit angeben? Oder passt Localhost, auch wenn man von einem anderen Gerät drauf zugreift?

- Per Remotedesktop kann ich das Php starten, die Nachricht "Der Status fuer TimeControl wurde gewechselt." kommt auch, beim Wechselrichter tut sich aber noch nichts - mein bzw. genauer Dein modifiziertes Skript ;-) läuft per Kommandozeile gestartet mit dem gleichen Python Befehl aber sauber durch und setzt auch die Timecontrol entsprechend (im Kostal Interface sichtbar) - Hast Du eine Idee? Eigentlich ist das ja nur eine Zeile Code... :lol:

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 17:28
von Bogeyof
Auf dem Handy funktioniert localhost nicht, das ist normal, Stichwort mDNS auch hier im Forum zu finden. Da müsstest du die IP Adresse einsetzen.
Das Andere habe ich nicht ganz verstanden? Wenn Du das angehängte Skript in /var/www/html per Kommandozeile startest, dann klappt es? Was machst Du mit Remote Desktop? Eingebunden in Grafana klappt es nicht? Vielleicht musst Du noch ausführbare Rechte setzen, sowohl beim PHP wie beim Python Skript.
Ich nutze das Skript exakt so wie Du möchtest in Grafana und es klappt. Allerdings nicht als Button sondern als einen von ca. 20 Links in einem Panel. Hier "Ausführen in einem neuen Tab" angewählt, damit öffnet sich ein neuer Tab mit der Meldung und nach Bestätigung schließt sich das Tab wieder und ich bleibe unverändert im Dashboard...

Edit: Habe es gerade mit dem RPI Neustarten Button getestet, funktioniert und ändert auch den Wert (sichtbar in der Kostal Weboberfläche). Allerdings springt er nicht mehr zum Dashboard zurück, was natürlich schlecht ist. Daher funktioniert die "Data Links" Variante hier besser (siehe nächsten Beitrag).

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 17:50
von Bogeyof
Beispiel mit "Data Links":
Grafana1.png
Grafana2.png
Grafana3.png

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 21:22
von Doc_snyder
Sehr beeindruckendes Grafana Panel hast Du da! :-)

Ich arbeite mich langsam vor:

Wenn ich per command line "pi@solaranzeige:/var/www/html $ php Kostal_disable_TC.php " die Skripte ausführe, funktioniert alles.
Wenn ich das gleiche über einen Data Link aus Grafana versuche, passiert nichts, abgesehen von dem sich öffnenden Fenster mit dem Printout.

Sind die Rechte und Gruppen/Owner so OK (mehr geht wohl nicht?), oder muss ich da noch etwas anpassen?

-rwxrwxrwx 1 www-data root 535 Jun 13 20:51 Kostal_disable_TC.php
-rwxrwxrwx 1 www-data root 519 Jun 13 20:51 Kostal_enable_TC.php

-rwxrwxrwx 1 pi pi 8416 Jun 13 15:35 Kostal_BatTC0.py
-rwxrwxrwx 1 pi pi 7908 Jun 13 15:31 Kostal_BatTC1.py

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 21:31
von Bogeyof
An den Berechtigungen liegt es wohl nicht. Ich habe es auch mit 644 (Standard ohne Ausführen Berechtigung) probiert, funktioniert trotzdem.
Das Skript, welches ich dir gegeben habe nutzt ein Python Skript, welches Du vermutlich nicht hast. Ist das vielleicht der Grund? Dieses Skript schaltet einfach um, je nachdem wie die Einstellung vorher war. Ich kann es gerne mal hier anhängen.
Ansonsten kann ich nicht helfen, ich vermute es wird nicht wirklich ausgeführt. Die Meldungen sind ja aus dem PHP Skript, die Frage ist ob das Python Skript überhaupt durchgeführt wird.

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 21:45
von Doc_snyder
Hallo Bogeyof,

vielen Dank nochmal für die schnelle Antwort. Ich probiere die Tage mal weiter, Du kannst mir ja Dein anderes Skript zum Umschalten auch mal anhängen.

Hoffentlich werde ich noch fündig, das kann ja eigentlich nur eine Kleinigkeit sein :|

Re: Python Skript via Button in Grafana starten

Verfasst: Mo 13. Jun 2022, 22:02
von Bogeyof
Das Python Skript gehört nach /solaranzeige, das hast Du hoffentlich bedacht...
Im Anhang das Skript zum Umschalten, wenn "TimeControl aus" wird intelligente Batteriesteuerung ausgeschaltet sowie TC eingeschaltet, wenn "TC ein" wird TC ausgeschaltet und intelligente Batteriesteuerung eingeschaltet.
Skript umbenennen (.txt weg) und IP-Adresse sowie Passwort eintragen, kopieren nach /solaranzeige

Re: Python Skript via Button in Grafana starten

Verfasst: Di 14. Jun 2022, 06:50
von Doc_snyder
Wenn ich Deine Skripte 1:1 verwende klappt es - Danke!

Gibt es den Battery Time Control Enable/Disable Status eigentlich auch per REST API in Grafana (habe ich nicht gefunden)? Oder gibt es dazu kein Feedback vom Wechselrichter?

Viele Grüße,
Nils