PHP-Code:
$json->time_received
PHP-Code:
$json['time_received']
$json->time_received
$json['time_received']
. . . logic_setOutput($id,1,([B]$json->time_received[/B])); . . .
$json = (json_decode($result)); // Hier steht dein JSON String als Object
$json['time_received']
###[DEF]###
[name = NEDAP v0.1]
[e#1 = Trigger #init=1]
[e#2 = Loglevel #init=8]
[e#3 = UserID]
[e#4 = Passwort]
[e#5 = PR ID]
[a#1 = time_received]
[a#2 = platform_grid_power]
[a#3 = solar_power]
[a#4 = solar_power_input1]
[a#5 = solar_temperature_input ]
[a#6 = solar_voltage_input1]
[a#7 = solar_current_input1]
[a#8 = solar_power_input2]
[a#9 = solar_temperature_input2 ]
[a#10 = solar_voltage_input2 ]
[a#11 = solar_current_input2 ]
[a#12 = battery_state_of_charge ]
[a#13 = battery_bus_power ]
[a#14 = battery_voltage ]
[a#15 = battery_current ]
[a#16 = battery_pack_temperature ]
[a#17 = dcac_grid_voltage ]
[a#18 = dcac_frequency ]
[a#19 = dcac_grid_power ]
[a#20 = dcac_local_voltage ]
[a#21 = dcac_local_power ]
[a#22 = JSON complete ]
[v#100 = 0.0.1 ] // Version
[v#101 = 19009999 ] // LBS ID
[v#102 = NEDAP ] // LBS name
[v#103 = 0 ] // Log level
[v#104 = 1 ] // One logfile per instance
[v#105 = 0 ] // log ID in each line
###[/DEF]###
###[HELP]###
E1: if >=1 update will be triggered
E2: Enable Logging (0-none|1-emerg|2-alert|3-crit|4-err|5-warning|6-notice|7-info|8-debug)
E3: UserID of myPowerouter.com
E4: Password of myPowerouter.com
E5: PowerrouterID
A01 - LastUpdateTime *
A02 - Sensor Leistung [W] *
A03 - Solar Leistung gesamt [W]*
A04 - Leistung Eingang 1 [W] *
A05 - Temperatur Eingang 1 [°C] *
A06 - Spannung Eingang 1 [V] *
A07 - Stromstärke Eingang 1 [A] *
A08 - Leistung Eingang 2 [W] *
A09 - Temperatur Eingang 2 [°C] *
A10 - Spannung Eingang 2 [V] *
A11 - Stromstärke Eingang 2 [A] *
A12 - Ladezustand Batterie [%]
A13 - Leistung Batterie [W] *
A14 - Spannung Batterie [V] *
A15 - Strom Batterie [A] *
A16 - Batterie Temperatur [°C] *
A17 - Netzspannung [V] *
A18 - Netzfrequenz [Hz] *
A19 - Netzleistung [W] *
A20 - Spannung am Local Out [V] *
A21 - Leistung am Local Out [W] *
A22 - Gesamtstring von mypowerrouter *
V1: Indicator whether daemon is running
V100: Version
V101: LBS Number
V102: Log file name
V103: Log level
V104: One log file per LBS instance
V105: log ID in each log entry
Changelog:
==========
v0.1: Initial version
###[/HELP]###
###[LBS]###
<?
function LB_LBSID($id=NULL)
{
$E = getLogicEingangDataAll($id);
if ($E[1]['value'] != 0 && $E[1]['refresh'] == 1) {
if (logic_getVar($id, 1) != 1) { // dieses Konstrukt stellt sicher, dass das EXEC-Script nur einmal gestartet wird
logic_setVar($id, 1, 1);
logic_callExec(LBSID, $id);
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?
require (dirname(__FILE__) . "/../../../../main/include/php/incl_lbsexec.php");
set_time_limit(5);
sql_connect();
$version = getLogicElementVar($id, 100);
$lbsNo = getLogicElementVar($id, 101);
$logName = getLogicElementVar($id, 102) . "-LBS$lbsNo";
$logName = preg_replace('/ /', '_', $logName);
if ($E = logic_getInputs($id)) {
$uid = $E[3]['value'];
$upw = $E[4]['value'];
$prid = $E[5]['value'];
$url = 'https://mypowerrouter.com/power_routers/' . $prid . '/logs/1minutes.json?normalize_logs=true&include_last_log=true&solar_power=true&solar_power_input1=true&solar_voltage_input1=true&solar_current_input1=true&solar_temperature_input1=true&solar_power_input2=true&solar_voltage_input2=true&solar_current_input2=true&solar_temperature_input2=true&dcac_grid_power=true&dcac_grid_voltage=true&dcac_frequency=true&dcac_local_power=true&dcac_local_voltage=true&battery_state_of_charge=true&battery_bus_power=true&battery_voltage=true&battery_current=true&battery_pack_temperature=true&platform_grid_power=true&grid_sensor_power_l1=true&grid_sensor_voltage_l1=true&grid_sensor_current_l1=true&grid_sensor_power_l2=true&grid_sensor_voltage_l2=true&grid_sensor_current_l2=true&grid_sensor_power_l3=true&grid_sensor_voltage_l3=true&grid_sensor_current_l3=true&responseContentDataType=json';
$headers = array(
'Accept: application/json',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, "$uid:$upw");
// curl_setopt($curl, CURLOPT_USERPWD, "$uid:$upw");
$result = curl_exec($ch);
$ch_error = curl_error($ch);
curl_close($ch);
if ($ch_error) {
// Error occucred
} else {
if($result){
$json = (json_decode($result,true)); // Hier steht dein JSON String
//OUTPUT
logic_setOutput($id,22,$json); //GESAMTSTRING
logic_setOutput($id,1,($json->{'time_received'}));
logic_setOutput($id,2,($json->{'platform_grid_power'}));
logic_setOutput($id,3,($json->{'solar_power'}));
logic_setOutput($id,4,($json->{'solar_power_input1'}));
logic_setOutput($id,5,($json->{'solar_temperature_input1'}));
logic_setOutput($id,6,($json->{'solar_voltage_input1'}));
logic_setOutput($id,7,($json->{'solar_current_input1'}));
logic_setOutput($id,8,($json->{'solar_power_input2'}));
logic_setOutput($id,9,($json->{'solar_temperature_input2'}));
logic_setOutput($id,10,($json->{'solar_voltage_input2'}));
logic_setOutput($id,11,($json->{'solar_current_input2'}));
logic_setOutput($id,12,($json->{'battery_state_of_charge'}));
logic_setOutput($id,13,($json->{'battery_bus_power'}));
logic_setOutput($id,14,($json->{'battery_voltage'}));
logic_setOutput($id,15,($json->{'battery_current'}));
logic_setOutput($id,16,($json->{'battery_pack_temperature'}));
logic_setOutput($id,17,($json->{'dcac_grid_voltage'}));
logic_setOutput($id,18,($json->{'dcac_frequency'}));
logic_setOutput($id,19,($json->{'dcac_grid_power'}));
logic_setOutput($id,20,($json->{'dcac_local_voltage'}));
logic_setOutput($id,21,($json->{'dcac_local_power'}));
}
}
}
sql_disconnect();
?>
###[/EXEC]###

###[DEF]###
[name = JSON-Abfrage ]
[e#1 TRIGGER = Trigger ]
[e#2 IMPORTANT = Request URL ]
[B][e#3 = Username ]
[e#4 = Password ]
[e#5 = Log level #init=8 ][/B]
[a#1 = Result ]
...
setLogicElementVar($id, 103, $E[[B]5[/B]]['value']); //set loglevel to #VAR 103
...
$url = $E[2]['value']; // URL to get content from
[B]$username = $E[3]['value'];
$password = $E[4]['value'];[/B]
[B]$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Basic " . base64_encode("$username:$password")
)
));[/B]
if($result = file_get_contents($url[B], false, $context[/B])){
$url = "hier die URL für die Abfrage";
$user = "";
$pass = "";
$headers = array(
'Accept: application/json',
'Content-Type: application/json',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_USERPWD, "$user:$pass");
$result = curl_exec($ch);
$ch_error = curl_error($ch);
curl_close($ch);
if ($ch_error) {
// Error occucred
} else {
if($result){
$json = (json_decode($result,true));
// Hier steht dein JSON String
}
}
)
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.


Einen Kommentar schreiben: