Senec Stromspeicher vs. C#

Matze001

Level-3
Beiträge
2.883
Reaktionspunkte
594
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Zusammen,

ich lese hier grad einen Stromzähler von Senec aus.
Wenn jemand infos zur API braucht -> gern kurz fragen. Ich weiß nicht viel, aber für das was ich brauche reicht es.

Nun steh ich vor einer Aufgabe, an der ich mir das Hirn zermater.

Das Ergebnis laut Webserver (leicht versetzt) sind etwa 1,5-1,6kW
Die ausgelesenen Werte sind:

Direkt: 4499AB4A
Ein erster Wandlungsversuch von HEX in INT: 1150921546

Laut meinem Verständnis müsste das ein Float sein, aber ich kann in die Daten irgendwie nichts rein interpretieren.
Kann mich jemand abholen?

Grüße

Marcel
 
Das Ergebnis laut Webserver (leicht versetzt) sind etwa 1,5-1,6kW
Die ausgelesenen Werte sind:

Direkt: 4499AB4A
Ein erster Wandlungsversuch von HEX in INT: 1150921546

Laut meinem Verständnis müsste das ein Float sein, aber ich kann in die Daten irgendwie nichts rein interpretieren.
Kann mich jemand abholen?
Da rollen sich mir schon wieder die Fußnägel auf. Man kann nichts von HEX in irgendetwas wandeln, Hex ist eine Darstellungsart und die kann man höchstens umschalten. Ein INT kann man in ein DINT oder etwas anderes wandeln.
Wenn ich Deinen in Hex dargestellten Wert auf dieser Webseite eintrage erhalte ich ungefähr 1229,35 was ja grob Deinem Wert entspricht. Der Wert stellt also schon einen Real-Wert oder in C# FLOAT dar. Du musst den Übertragenen Wert in eine FLOAT Variablen packen. Soweit die Byteorder passt geht das direkt, ansonsten musst Du die einzelnen Bytes verschieben.
 
Es ist mal wieder Weihnachten... oder halt kurz danach. Und ich hab mal wieder genug Langeweile um das Thema anzugehen.
Leider bin ich immer noch so dumm wie vorher.

Ich lese den besagten String 4499AB4A aus, was ja laut oliver etwa 1229,35 entsprechen sollte.
Nun habe ich diesen String, und komme ums Verrecken nicht auf die Idee wie ich diesen in einem Float oder Double oder irgend einen anderen Zahlenwert bekomme. Konvertieren ist an der Stelle doch richtig, da ich den String in eine Zahl konvertieren muss, es ist keine Darstellung eines Speicherbereichs wie in der SPS... Alles was ich parse oder Wandel gibt entweder Fehler oder sehr falsche Werte.

Also wenn mich jemand in die richtige Richtung schubsen könnte, würde ich mich sehr freuen.

Grüße

Marcel
 
Zurück
Oben