Ab jetzt kann getestet werden!

Mit Hilfe der API Schnittstelle können Daten in die Solaranzeigen Datenbanken geschrieben werden.

Moderator: Ulrich

Antworten
Benutzeravatar
Ulrich
Administrator
Beiträge: 5503
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 152 Mal
Danksagung erhalten: 875 Mal
Kontaktdaten:

Ab jetzt kann getestet werden!

Beitrag von Ulrich »

Wie man über die neue API Daten in die Influx Datenbank der Solaranzeige schreiben kann, steht in dieser Anleitung: API.pdf Für den absoluten Laien ist das nichts, ich hoffe aber, dass Mitglieder behilflich sein werden. Mit XML Dokumenten muss man sich ein klein wenig auskennen.

Wer weitere Ideen hat, nur her damit. Die API wird noch weiter ausgebaut, je nach Bedarf. :D
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

my2cents
Beiträge: 32
Registriert: Do 20. Jan 2022, 14:35
Danksagung erhalten: 4 Mal

Re: Ab jetzt kann getestet werden!

Beitrag von my2cents »

Moin,

dazu hab ich ja idee, also probier ich es aus...
zuerstmal habe ich /usr/local/bin/update aufgerufen, um alles auf dem aktuellen Stand zu haben...

In der send.sh hast Du als destination host "http://rpisteuerung.local" angegeben, bei mir wird der Host nicht aufgelöst.

Geändert auf http://localhost/api/control.php erhalte ich ein 403. Da mault also der lighttpd rum. das Verzeichnis api

Code: Alles auswählen

drwxr--r-- 2 root     root      4096 Feb  2 20:06 api
Da kann der www-user also nicht rein...

also mit "chmod 755 /var/www/html/api" versehen und noch ein Versuch...

Das ergab:

Code: Alles auswählen

root@solaranzeige:/var/www/html/api# ./send.sh api_test.xml
<?xml version="1.0" encoding="UTF-8"?><solaranzeige><version>1.0</version><in-out>in</in-out>
<error_code>1</error_code>                                     
<error>Datenbank Eintrag nicht erfolgt. Bitte LOG Datei prüfen.</error></solaranzeige>root@solaranzeige:/var/www/html/a                                     pi
Ich habe im /var/log/lighttpd error.log keinen Eintrag und in /var/www/html/api/ ist auch kein log, nur die 4 Dateien, die auch vorher schon da waren.
Entgegen der Fehlermeldung wurde der Eintrag in die DB geschrieben.

Weiter kann ich noch nix dazu sagen.

Grüße
Markus


Edit sagt: Eleganter wäre, des Verzeichnis /var/www/html/api per chown -R www-data:www-data /var/www/html/api dem passenden Benutzer zu geben.

my2cents
Beiträge: 32
Registriert: Do 20. Jan 2022, 14:35
Danksagung erhalten: 4 Mal

Re: Ab jetzt kann getestet werden!

Beitrag von my2cents »

Der Fehler kam heraus, weil der zweite teil des .xml eine nicht existierende Datenbank anspricht.
Also entweder die XML anpassen oder die zweite DB erzeugen.

So funktionierts fehlerlos.

Benutzeravatar
Ulrich
Administrator
Beiträge: 5503
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 152 Mal
Danksagung erhalten: 875 Mal
Kontaktdaten:

Re: Ab jetzt kann getestet werden!

Beitrag von Ulrich »

Hallo Markus,

vielen Dank für die Hinweise!
Werde alles sofort ändern.

Die LOG Datei heißt: /var/www/log/api.log

Die Beschreibung "API.pdf" habe ich auch angepasst. Bitte noch einmal herunterladen.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

my2cents
Beiträge: 32
Registriert: Do 20. Jan 2022, 14:35
Danksagung erhalten: 4 Mal

Re: Ab jetzt kann getestet werden!

Beitrag von my2cents »

Ein Wunsch kam auf...

ich würde über diese commandozeilen basierte Api gern in die Remote DB schreiben, ohne dort einen Webserver öffnen zu müssen und dort die Api zu installieren.
Wäre das über die send.php bzw. control.php machbar und wenn ja, wie hoch ist der Aufwand?

Das wäre eine tolle Möglichkeit, manuell abzulesende Zählerstände im Grafana sichtbar zu machen und nebenbei mit aus zu werten. In der Local DB bringts mich nicht weiter, da ich die "nur" für die whatsapp Nachricht mitlaufen habe und nicht in Grafana darstelle. Der Pi ist mir, auch dank schlechter wlan Anbindung, zu langsam für Grafana.

Grüße
Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 5503
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 152 Mal
Danksagung erhalten: 875 Mal
Kontaktdaten:

Re: Ab jetzt kann getestet werden!

Beitrag von Ulrich »

Hallo Markus,

technisch ist das kein Problem. Das mit dem Aufwand ist nicht so einfach zu beantworten. Für einen, der programmieren kann, ist der Aufwand mittelmäßig. Ein Laie bricht sich dabei die Ohren.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Benutzeravatar
Ulrich
Administrator
Beiträge: 5503
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 152 Mal
Danksagung erhalten: 875 Mal
Kontaktdaten:

Re: Ab jetzt kann getestet werden!

Beitrag von Ulrich »

Nun ist auch das Auslesen der Datenbanken per API implementiert. In der dazugehörigen Dokumentation wird alles genau beschrieben.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

my2cents
Beiträge: 32
Registriert: Do 20. Jan 2022, 14:35
Danksagung erhalten: 4 Mal

Re: Ab jetzt kann getestet werden!

Beitrag von my2cents »

Moin Ulrich,

dann betrachte das mit dem Schreiben in die Remote DB bitte als feature request. Ich breche mir nicht so gern die Ohren. :)

Eilt ja nicht.

Grüße
Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 5503
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 152 Mal
Danksagung erhalten: 875 Mal
Kontaktdaten:

Re: Ab jetzt kann getestet werden!

Beitrag von Ulrich »

my2cents hat geschrieben:
Mo 7. Feb 2022, 12:35
Ein Wunsch kam auf...

ich würde über diese commandozeilen basierte Api gern in die Remote DB schreiben, ohne dort einen Webserver öffnen zu müssen und dort die Api zu installieren.
Wäre das über die send.php bzw. control.php machbar und wenn ja, wie hoch ist der Aufwand?

Das wäre eine tolle Möglichkeit, manuell abzulesende Zählerstände im Grafana sichtbar zu machen und nebenbei mit aus zu werten. In der Local DB bringts mich nicht weiter, da ich die "nur" für die whatsapp Nachricht mitlaufen habe und nicht in Grafana darstelle. Der Pi ist mir, auch dank schlechter wlan Anbindung, zu langsam für Grafana.

Grüße
Markus

Das sollte mit der send.sh funktionieren, wenn du anstatt "solaranzeige.local" den Remote Rechner Namen einträgst. Natürlich nur, wenn die Influx Datenbank auf dem Remoten Rechner nicht weiter geschützt und mit default Werten installiert wurde. Hast du die Installation geschützt, dann muss der Aufruf in der send.sh angepasst werden. Die zu übertragenden Daten müssen dann in eine xml Datei nach dem Vorbild der api_test.xml eingetragen werden. Alles andere steht in der API Beschreibung.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Antworten

Zurück zu „API Schnittstelle“