Tasmota Webseite auslesen
- 
				Wolfgang Janzen
- 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) 4947 mal betrachtet
 
- 
			
		
				- quelltext.JPG (162.79 KiB) 4947 mal betrachtet
 
- 
				pluto
- 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: 1660
- 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
- 
				Wolfgang Janzen
- 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: 1660
- 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


 Verein
Verein 
 Links
Links Suche
Suche