Elster A1500 Seriell auslesen

Hallo Dr.Niels

jetzt überforderst du mich :confused:

also unter Meldungen sieht das so aus, da hatte ich noch garn nicht rein geschaut-- man lernt nie aus.

da bringt er einen Fehler genau bei den Daten die ich haben will, aber warum?
Er soll mir die Daten doch 1-1 in die Variable schreiben, wieso Cannot auto-convert?

Gruß Remo

ps: das Script wird bei jedem Datenempfang ausgeführt.

Ich werde verrückt

hab mal ne String Variable genommen und siehe da, der Wert steht drin. :):):slight_smile:

Ich bin happy.

Ich denke jetzt komm ich weiter, das Problem wird sein, das der Wert z.B. (93.503*kwh) ist.
Damit kann eine Float nichts anfangen bzw. kann sie es nicht wiedergeben. Richtig?

Jetzt muss ich noch (*kwh) weg bekommen, dann passt alles.

Aber wieso funktioniert das nicht mit dem echo?

Grüße Remo

Hätte ich schreiben sollen, dass ich $string = $_IPS[‚VALUE‘]; geremmt habe um die Schleife zu testen ;-(
Dann sieht man auch beim Aufruf des Scriptes die Echo- Anweisung.
Sorry
Nutzt Du den Cutter? Wenn ja nimm doch das Sternchen als rechten Trenner * und für den linken Trenner *255(

Edit: sehe gerade, Du hast 2 Geräte, dann muß der rechte Trenner das Sternchen sein und der linke Trenner bleibt leer
Dann die Auswahl im Script anpassen.

Und String in Float geht so:

$float_value_of_string = floatval($header);

in $float_value_of_string steht der String, in $Header der Float - Wert
Mußt naturlemang auch eine Floatvariable haben in der Du das Ergebniss reinschreibst.
Gruß Helmut

Perfekt,

dank euch für die Unterstützung.

@Helmut: alles gut, liegt an mir, das Verständnis wächst bei mir,ist aber noch im Babystadium :slight_smile:

Ich werde das spätestens morgen mal erweitern bzw. für mich fertig machen.
Dann stell ich es hier rein, der Zähler ist ja nicht so selten. Da wird es schon einen geben der die selben Probleme hat :).

Vielleicht bin ja aber auch der Einzige :smiley:

bis dann und einen schönen Abend

Grüße Remo

Ich bin auch nicht der PHP-Kenner. Du packst Das :wink: Try and Fehler
Gruß Helmut

Das klingt doch so, als würde es gut voran gehen. Sehr schön :slight_smile:

Das echo funktioniert genau so wie gedacht. Innerhalb von IP-Symcon gibt echo die Ausgabe immer an den Aufrufenden weiter. Wenn du beispielsweise einfach auf Ausführen klickst, dann bist du das und die Nachricht kommt per Pop-Up. Aber bei einem Aufruf via RegisterVariable kommt der Aufruf von innerhalb. Daher wird die Ausgabe im Nachrichtenlog gespeichert. Stell dir mal vor, du wärst weg und in der Zwischenzeit werden jede Menge Nachrichten über RegisterVariable ausgewertet. Dann möchtest du nicht nach Hause kommen und 100 Pop-Ups wegklicken, sondern das ganze bestimmt viel lieber geordnet im Log lesen.

Hallo

Ich habe in diesem Thema Forum noch etwas gefunden, um den Zähler auszulesen.
Obis Elster AS1440 Programm zum Auslesen
Er hat ein Script das die Auslesezeit viel schneller macht.
Einloggen
Kann man sowas in IPS umsetzen oder auf dem Raspi laufen lassen und sich die Daten abgreifen?
(„Ja kann man“ Antwort hilft mir leider nicht, da ich so etwas nicht kann.
Daher wäre eine weiterführende Hilfe sehr willkommen.

Bernd

Hallo
Der Weg

Das Script 1440.c ist ein C-Programm, das zuerst kompiliert werden muss.
Am Raspi einloggen und „gcc“ eingeben.
Wenn folgendes kommt ist das schonmal gut:
gcc: fatal error: no input files
compilation terminated.

Bei folgendem sieht es dann eher schlecht aus:
-bash: gcc: command not found

Ich gehe mal davon aus, das das erstere kam, dann das 1440.c kompilieren.
Dies habe ich direkt ins /var/lib/symcon Verzeichniss gelegt, damit es auch mit gesichert wird.

Das geht mit
gcc as1440.c -o as1440
Danach sollte nach Aufruf von as1440 im selben Verzeichnis mit
./as1440
folgendes rauspurzeln:
usage: ./as1440 -F device -O obisval1[:obisval2…] [-p password ]
[-v]
[-n] [-e]
-v verbose
-t left trim zeros
-n don’t add units
-e endless loop (end with ctrl-c)

Wenn einn Lesekopf am Raspi ist, folgendes probieren:
./as1440 -F /dev/ttyUSB0 -O 1.7.0:1.8.0 -v

In IPS als Script einbauen


<?php

$data = shell_exec('/var/lib/symcon/as1440 -F /dev/ttyUSB0 -O 2.8.0:1.8.0:2.7.0:1.7.0 -v -n -t'); 
//echo $data;

//print_r ($data);
$werte = preg_split("/[\s,]+/", $data);
//print_r($werte);
$temp = ($werte[1]);
$Out180 = trim ($temp, 'notfound');
        SetValue (57421 /*[Energie\Hausanschluß Haus 16\Strom\As1440\Bezug Zählerstand 1.8.0]*/, $Out180); 
$temp = ($werte[3]);
$In280 = trim ($temp, 'notfound');
        SetValue (25607 /*[Energie\Hausanschluß Haus 16\Strom\As1440\Einspeisung Zählerstand 2.8.0]*/, $In280); 
$temp = ($werte[5]);
$Out170 = trim ($temp, 'notfound');
        SetValue (14160 /*[Energie\Hausanschluß Haus 16\Strom\As1440\Wirkleistung (Out) 1.7.0]*/, $Out170); 
$temp = ($werte[7]);
$In270 = trim ($temp, 'notfound');
        SetValue (18970 /*[Energie\Hausanschluß Haus 16\Strom\As1440\Wirkleistung (In) 2.7.0]*/, $In270); 
?>

Nicht schön, aber läuft.
Bernd

Hi Hbartel,

Ich hab Deinen Thread zur Verbindung eines A1500 von Elster mit einem Hichi Lesekopf gelesen und habe ein passendes Skript in mein Tasmota eingelesen.
Hast Du denn am A1500 noch irgendwas machen müssen, um den dazu zu bewegen, Daten rauszurücken?
Ich hab bei dem Netzbetreiber nachgefragt, der sagte, es gäbe keinen Pin, weil es ein Wandlerzähler sei. Gibt es denn im Menü noch irgend einen Punkt, an dem man die optische Schnittstelle aktivieren kann?
Bei mir kommen keine Daten
Gruß Rainer