Tasmota Webseite auslesen
-
- Beiträge: 2
- Registriert: Sa 7. Sep 2024, 16:19
Tasmota Webseite auslesen
Ih möchte eine Tasmato Webseite auslesen.Ich mache das mit S := (TFPHttpClient.SimpleGet('http://192.168.178.161/cs?'));
Ich kann die daten dort nicht finden.
Ich kann die daten dort nicht finden.
- Dateianhänge
-
- webseite.JPG (29.49 KiB) 3176 mal betrachtet
-
- quelltext.JPG (162.79 KiB) 3176 mal betrachtet
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Tasmota Webseite auslesen
Hast du die Möglichkeit, irgendwo ein MQTT Server am laufen zu lassen?
Wenn ja, wäre das , die Einfachste Möglichkeit.
Wenn ja, wäre das , die Einfachste Möglichkeit.
MFG
Michael Springwald
Michael Springwald
Re: Tasmota Webseite auslesen
Es sieht so aus, als würden die Daten dort erst mit Javascript eingesetzt.
HTML allein reicht dafür nicht aus.
Re: Tasmota Webseite auslesen
... was genau möchtest Du denn erreichen? Eigentlich sind alle Informationen über die Web API zu erreichen. Ich habe gerade nur einen alten Sonoff-Switch zur Hand, aber der reagiert ganz brav.
EDIT:
Ich habe gerade noch mal nachgelesen und denke, dass Du wirklich alle Informationen besser über das Status-Kommando bekommst:
Details zu den Argumenten des Status-Kommandos findest Du unter https://tasmota.github.io/docs/Commands/#management. Mittels "+0" bekommst Du alle informationen und Dank JSON-Format ist es auch kinderleicht unter Pascal auszulesen.
Code: Alles auswählen
$ curl "http://x.x.x.x/cm?cmnd=Power%20TOGGLE"
{"POWER":"ON"}%
$
Ich habe gerade noch mal nachgelesen und denke, dass Du wirklich alle Informationen besser über das Status-Kommando bekommst:
Code: Alles auswählen
$ curl --silent "http://x.x.x.x/cm?cmnd=Status+0"
{
"Status": {
"Module": 1,
"DeviceName": "xxx",
"FriendlyName": [
"xxx"
],
"Topic": "xxx",
"ButtonTopic": "0",
"Power": 1,
"PowerOnState": 3,
...
- corpsman
- Lazarusforum e. V.
- Beiträge: 1629
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Tasmota Webseite auslesen
Also ich lese mein Watermeter mittels dieses https://github.com/PascalCorpsman/Examp ... broker.pas aus, ggf reicht dir das auch schon, ..
--
Just try it
Just try it
-
- Beiträge: 2
- Registriert: Sa 7. Sep 2024, 16:19
Re: Tasmota Webseite auslesen
Hast du ein beispielcode für mich. Ich habe keinen MQTT Server geht das denn trotzdem
Re: Tasmota Webseite auslesen
... ich glaube immer noch, dass Du keinen MQTT-Server benötigst und schicke mein einfaches HTTP-GET ins Rennen.

Code: Alles auswählen
{$mode ObjFPC}{$H+}
program ReadTasmota;
uses
classes, sysutils, fphttpclient, fpjson, jsonparser;
var
client : TFPHttpclient;
RawResult : String;
JsonResult : TJSONObject;
TempJson : TJSONObject;
Devicename : String;
begin
Client := TFPHttpClient.Create(nil);
try
try
RawResult := Client.Get('http://10.10.10.10/cm?cmnd=Status+0');
except on e: Exception do
begin
writeln('Fehler aufgetreten bei der Statusabfrage.');
writeln(e.Message);
end;
end;
try
try
JsonResult := TJsonObject(GetJson(rawResult));
TempJson := TJsonObject(JsonResult.FindPath('Status.DeviceName'));
If TempJson <> Nil Then
begin
Devicename := TempJson.AsString;
end;
except on e: Exception do
begin
writeln('Empfangene Daten konnten nicht analysiert werden.');
writeln(e.Message);
end;
end;
finally
JsonResult.Free;
end;
writeln('Empfangenes JSON im Rohformat:');
writeln(RawResult);
writeln('Device Name = ', Devicename);
finally
Client.Free;
end;
end.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1629
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Tasmota Webseite auslesen
Wenn du in das über geordnete Verzeichnis schaust:Wolfgang Janzen hat geschrieben: Sa 14. Sep 2024, 14:27 Hast du ein beispielcode für mich. Ich habe keinen MQTT Server geht das denn trotzdem
https://github.com/PascalCorpsman/Examp ... ter/TCP_IP
da ist der Publisher und der Broker. Damit hast du beide Teile

--
Just try it
Just try it