[vz-users] LadereglerWerte aus Morningstar MPPT in Volkszähler
Manfred Frank
info at mmm-frank.de
Mon Jan 7 19:43:27 CET 2013
Hallo
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?
Dort gibt's das ganze Programm:
http://rosebud.homedns.org/solar/sunsaver.tar.gz
Aber hier mal ein Auszug:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <modbus.h>
#define SUNSAVERMPPT 0x01 /* Default address of the SunSaver MPPT */
int main(void)
{
modbus_t *ctx;
int rc;
float adc_vb_f,adc_va_f,adc_vl_f,adc_ic_f,adc_il_f;
uint16_t data[10];
/* Set up a new MODBUS context */
ctx = modbus_new_rtu("/dev/ttyUSB0", 9600, 'N', 8, 2);
if (ctx == NULL) {
fprintf(stderr, "Unable to create the libmodbus context\n");
return -1;
}
modbus_set_slave(ctx, SUNSAVERMPPT);
/* Open the MODBUS connection to the SunSaver MPPT */
if (modbus_connect(ctx) == -1) {
fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
modbus_free(ctx);
return -1;
}
/* Read the first five RAM Registers */
rc = modbus_read_registers(ctx, 0x0008, 5, data);
if (rc == -1) {
fprintf(stderr, "%s\n", modbus_strerror(errno));
return -1;
}
/* Convert the results to their proper floating point values */
adc_vb_f=data[0]*100.0/32768.0;
printf("adc_vb_f=%.2f\n",adc_vb_f);
ist ein Auszug aus dem Programmcode
LG
Manfred
Von: volkszaehler-users-bounces at lists.volkszaehler.org [mailto:volkszaehler-users-bounces at lists.volkszaehler.org] Im Auftrag 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
#################################################################################################
# cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
s="28-0000042b410e"
# Volkszaehler UUID
u="52196840-2ef9-11e2-853d-fff0722808ce"
output=$(cat /sys/bus/w1/devices/$s/w1_slave)
echo "$output" | head -n1 | grep -i yes > /dev/null && t=$(echo "$output" | tail -n1 | cut -f2 -d= | awk '{print $1/1000}')
#Komando nur ausfuehren, wenn $t gesetzt ist ($t wird nur gesetzt wenn in erste Zeile auf YES matched)
test -z "$t" || curl --silent --data "" "http://localhost/middleware.php/data/$u.json?value=$t"
#################################################################################################
Am 7. Januar 2013 16:29 schrieb Manfred Frank <info at mmm-frank.de<mailto:info at mmm-frank.de>>:
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-6f64b65c053f.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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://volkszaehler.org/pipermail/volkszaehler-users/attachments/20130107/74cf8cb3/attachment-0001.html>
More information about the volkszaehler-users
mailing list