[vz-users] LadereglerWerte aus Morningstar MPPT in Volkszähler
Manfred Frank
info at mmm-frank.de
Tue Jan 8 10:47:46 CET 2013
Hallo,
Dies ist die Ausgabe auf dem Monitor: nach dem Aufruf ./sunsaver
adc_vb_f = 50.58 V
adc_va_f = 50.51 V
adc_vl_f = 96.51 V
adc_ic_f = 6.03 A
adc_il_f = 5.41 A
T_hs = 49 C
T_batt = 0 C
EEPROM setting edit (reset required)
RTS shorted
RTS was valid, now disconnected
Local temperature sensor failed
Fault 10
Fault 12
Fault 15
Vb_f = 147.22 V
load_fault = Load output self-diagnostic faults:
External short circuit
Overcurrent
FETs shorted
Software bug
HVD
Heatsink over-temperature
EEPROM setting edit (reset required)
V_lvd = 6.99 V
Ahl_r = 7984632.00 Ah
Ahl_t = 118189880.00 Ah
hourmeter = 1272993551 h
alarm = Controller self-diagnostic alarms:
RTS shorted
Ths open
Alarm 21
dip_switch = DIP switch settings:
Switch 1 OFF - Battery Type: Sealed or Flooded
Switch 2 ON - LVD = 11.00 V, LVR = 12.10 V or custom load settings
Switch 3 OFF - Auto-Equalize Off
Switch 4 ON - MODBUS Protocol
Power_out = 33.84 W
Sweep_Vmp = 24.05 V
Sweep_Pmax = 153.98 W
Sweep_Voc = 0.00 V
Vb_min_daily = 9.55 V
Vb_max_daily = 0.00 V
Ahc_daily = 0.00 Ah
Ahl_daily = 0.00 Ah
array_fault_daily = Today's solar input self-diagnostic faults:
No faults
load_fault_daily = Today's load output self-diagnostic faults:
Overcurrent
FETs shorted
Software bug
alarm_daily = Today's controller self-diagnostic alarms:
RTS open
RTS disconnected
P12
Alarm 20
vb_min = 33.45 V
vb_max = 0.00 V
Und ich möchte jetzt den Power_out an das shellscript übergeben und mit :
curl --silent --data "" "http://192.168.2.101/middleware.php/data/$u.json?value=$x"
anzeigen lassen
LG
Manfred
-----Ursprüngliche Nachricht-----
Von: volkszaehler-users-bounces at lists.volkszaehler.org [mailto:volkszaehler-users-bounces at lists.volkszaehler.org] Im Auftrag von Thorben Thuermer
Gesendet: Dienstag, 8. Januar 2013 10:10
An: volkszaehler-users at lists.volkszaehler.org
Betreff: Re: [vz-users] LadereglerWerte aus Morningstar MPPT in Volkszähler
On Tue, 8 Jan 2013 08:57:18 +0100 Manfred Frank wrote:
> Hallo,
> leider bin ich der Linux Anfänger der sich erstmals auf unbekanntes Eis begibt.
> Ich habe zwar schon ein paar Linux Dateien verändert ..aber das wars dann aber auch.
du machst dir das ganze VIEL zu umstaendlich.
wie gehabt, du belaesst das vorhandene C-programm einfach wie es ist.
du rufst es aus dem shellscript auf,
und aus der ausgabe extrahierst du den wert den du haben willst.
wenn du uns einmal die ausgabe schickst, koennen wir dir die losung dafuer geben.
trotzdem nochmal zu deinen fragen...
> Deshalb hab ich mit diesem Projekt so meine Probleme:
> Wie krieg ich den Wert in eine Datei, und dann wieder raus.
>
> 1. in C
> f=fopen("/root/test.c", "w");
> fputs ("adc_vb_f"=adc_vb_f , f); ****was muss hier rein damit in der Datei dann steht: adc_vb_f=51
> sunsaver.c:453: error: assignment of read-only location â"adc_vb_f"â
in C gibt es keine implizite string-konkatenation, und noch weniger typenkonvertierung.
du versuchst, den string "adc_vb_f" und den wert der variablen adc_vb_f auszugeben. zum einen kannst du die nicht einfach so verketten, zum anderen muss die variable erst in eine string-darstellung konvertiert werden.
zudem steht das gleichheitszeichen ausserhalb der anfuehrungszeichen, damit versuchst du, den wert der variablen der string-konsten zuzuweisen, und die ist read-only.
die loesung waehre in etwa:
fprintf(f,"adc_vb_f=%f\n",adc_vb_f);
wobei man noch wissen muesste, welchen typ die variable hat.
> 2. im /bin/bash
> u="f097b770-53ef-11e2-8947-6f64b65c053f"
> cat /root/test.c |grep adc_vb_f=$z
das ist auch voelliger unfug.
grep sucht zeilen die auf eine expression matchen aus einer datei, und gibt diese aus.
grep kann keinen wert aus der datei einer variablen zuweisen.
korrekt waehre:
z=$(cat /root/test.c)
> XXXX *****was muss hier rein damit aus z (adc_vb_f=51) nur noch x=51
> wird
zB. mittels des parameter-expansion features der shell:
x=${z/*=/}
> curl --silent --data "" "http://192.168.2.101/middleware.php/data/$u.json?value=$x"
>
> Manfred
- Thorben
> -----Ursprüngliche Nachricht-----
> Von: volkszaehler-users-bounces at lists.volkszaehler.org
> [mailto:volkszaehler-users-bounces at lists.volkszaehler.org] Im Auftrag
> von Thorben Thuermer
> Gesendet: Montag, 7. Januar 2013 19:53
> An: volkszaehler-users at lists.volkszaehler.org
> Betreff: Re: [vz-users] LadereglerWerte aus Morningstar MPPT in
> Volkszähler
>
> On Mon, 7 Jan 2013 19:43:27 +0100 Manfred Frank wrote:
> > Das ist ja schon mal super
> >
> > der erste Teil klappt schon mal... (Variable im http Aufruf) , aber
> > halt leider nur in /bin/bash u="f097b770-53ef-11e2-8947-6f64b65c053f"
> > x=$Power_out
> > curl --silent --data ""
> > http://192.168.2.101/middleware.php/data/$u.json?value=$x
> >
> > wie krieg ich das Ganze nun noch in ein Java Script rein?
> > Kann mir Dabei jemand behilflich sein?
> > http://rosebud.homedns.org/solar/sunsaver.tar.gz
> >
> > Aber hier mal ein Auszug:
> > #include <stdio.h>
>
> das programm ist aber C und nicht javascript...
>
> in das programm dann noch einen http-client einzubauen wollen wir dir glaube ich nicht erklaeren...
> der einfachere und naheliegendere weg ist, mittels eines shellscripts aus der ausgabe des vorhandenen programms den wert den du brauchst herauszufiltern den du brauchst, und dann wie gehabt perl curl/wget an die middleware zu senden.
>
> dafuer gibst du uns am besten einmal die ausgabe des programms.
>
> > LG
> > Manfred
>
> - T.
>
> > Von: W3ll Schmidt
> > Gesendet: Montag, 7. Januar 2013 16:58
> > An: volkszaehler.org - users
> > Betreff: Re: [vz-users] LadereglerWerte aus Morningstar MPPT in
> > Volkszähler
> >
> > Kannste Dir hier klauen ...
> >
> > #!/bin/bash
> [...]
> > test -z "$t" || curl --silent --data "" "http://localhost/middleware.php/data/$u.json?value=$t"
> >
> > Am 7. Januar 2013 16:29 schrieb Manfred Frank Hallo,
> >
> > ich möchte ein Script erstellen das es mir ermöglicht, den aktuelle Laderegler Wert
> > " Power_out" an den Volkszähler (bei mir 192.168.2.101) zu
> > übermitteln
> >
> > der crontab startet dieses Programm alles 5 min leite scheitere ich
> > an
> > 2 Dingen.
> > curl -sL
> > http://192.168.2.101/middleware.php/data/f097b770-53ef-11e2-8947-6f6
> > 4b
> > 65c053f.json?operation=add&value=1000
> > wenn ich dies so eintrage, erscheint immer der Wert 1 web frontend
> >
> > 2. wie trag ich grundsätzlich in so eine Befehlszeile eine Variable
> > ein z.B.
> > curl -sL http://192.168.2.101/middleware.php/data/f097b770-53ef-11e2-8947-6f64b65c053f.json?operation=add&value=Power_out
> > Kann mir jemand dabei behilflich sein... Ich stelle dann das "Gesamtwerk" auch gerne zur Verfügung
> >
> > Danke
> > Manfred
More information about the volkszaehler-users
mailing list