Python Skript via Button in Grafana starten

Überwachung der Solaranlage per eMail oder Pushover und Steuerung von Geräten mit Smart Home Zentralen. PV-Überschuss Steuerung verbunden mit Geräten und Tasmota Firmware. Wallbox Steuerungen und API Schnittstelle, über die Daten in die Solaranzeigen Datenbanken geschrieben und gelesen werden können. Alles, was man für Steuerungsaufgaben benötigt.

Moderator: Ulrich

Doc_snyder
Beiträge: 16
Registriert: Sa 23. Okt 2021, 20:23

Python Skript via Button in Grafana starten

Beitrag 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

Bogeyof
Beiträge: 943
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 17 Mal
Danksagung erhalten: 103 Mal

Re: Python Skript via Button in Grafana starten

Beitrag von Bogeyof »

Bitteschön...
Dateianhänge
Kostal_TC_T.php
(313 Bytes) 17-mal heruntergeladen

Doc_snyder
Beiträge: 16
Registriert: Sa 23. Okt 2021, 20:23

Re: Python Skript via Button in Grafana starten

Beitrag 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:

Bogeyof
Beiträge: 943
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 17 Mal
Danksagung erhalten: 103 Mal

Re: Python Skript via Button in Grafana starten

Beitrag 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).

Bogeyof
Beiträge: 943
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 17 Mal
Danksagung erhalten: 103 Mal

Re: Python Skript via Button in Grafana starten

Beitrag von Bogeyof »

Beispiel mit "Data Links":
Grafana1.png
Grafana2.png
Grafana3.png

Doc_snyder
Beiträge: 16
Registriert: Sa 23. Okt 2021, 20:23

Re: Python Skript via Button in Grafana starten

Beitrag 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

Bogeyof
Beiträge: 943
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 17 Mal
Danksagung erhalten: 103 Mal

Re: Python Skript via Button in Grafana starten

Beitrag 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.

Doc_snyder
Beiträge: 16
Registriert: Sa 23. Okt 2021, 20:23

Re: Python Skript via Button in Grafana starten

Beitrag 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 :|

Bogeyof
Beiträge: 943
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 17 Mal
Danksagung erhalten: 103 Mal

Re: Python Skript via Button in Grafana starten

Beitrag 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
Dateianhänge
Kostal_BatTC_T.py.txt
(9.27 KiB) 12-mal heruntergeladen

Doc_snyder
Beiträge: 16
Registriert: Sa 23. Okt 2021, 20:23

Re: Python Skript via Button in Grafana starten

Beitrag 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

Antworten