Homematic und AC Elwa E Auslesen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

MarkusSchickaneder
Beiträge: 21
Registriert: 15.04.2021, 15:24
System: CCU und Access Point
Hat sich bedankt: 4 Mal

Homematic und AC Elwa E Auslesen

Beitrag von MarkusSchickaneder » 18.07.2021, 20:33

Hallo

Hat von euch schon jemand Erfahrung oder ein Script zum Auslesen der Elwa E?

Ich möchte die Aktuelle Wassertemperatur und den Verbrauch Abfragen.

Über die IP Adresse und data.jsn werden alle codes Ausgegeben.

Danke für eure Hilfe

Gruß
Markus
Zuletzt geändert von Roland M. am 18.07.2021, 21:13, insgesamt 1-mal geändert.
Grund: Thema verschoben

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MichaelN » 18.07.2021, 20:40

JSON oder was wird da geliefert?

Wenn ja, dann schau dir das hier an :
viewtopic.php?f=26&t=65051&p=639981#p639981
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

MarkusSchickaneder
Beiträge: 21
Registriert: 15.04.2021, 15:24
System: CCU und Access Point
Hat sich bedankt: 4 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MarkusSchickaneder » 18.07.2021, 20:49

Hallo

Ja JSON wird Angezeigt:

Code: Alles auswählen

device	"AC ELWA-E"
fwversion	"00201.02"
status	3
power	0
boostpower	0
temp1	645
ww1target	725
boostactive	0
legboostnext	"off"
loctime	"20:39:01"
unixtime	1626633541
ctrlstate	"Conn. to Home Manager"
blockactive	0
meter1_id	null
meter1_ip	"null"
meter2_id	null
meter2_ip	"null"
meter3_id	null
meter3_ip	"null"
meter4_id	null
meter4_ip	"null"
meter5_id	null
meter5_ip	"null"
meter6_id	null
meter6_ip	"null"
surplus	null
m0sum	null
m0l1	null
m0l2	null
m0l3	null
m0bat	null
m1sum	null
m1l1	null
m1l2	null
m1l3	null
m1devstate	null
m2sum	null
m2l1	null
m2l2	null
m2l3	null
m2soc	null
m2state	null
m2devstate	null
m3sum	null
m3l1	null
m3l2	null
m3l3	null
m3soc	null
m3devstate	null
m4sum	null
m4l1	null
m4l2	null
m4l3	null
m4devstate	null
ecarstate	"null"
ecarboostctr	null
mss2	"null"
mss3	"null"
mss4	"null"
mss5	"null"
mss6	"null"
mss7	"null"
mss8	"null"
mss9	"null"
mss10	"null"
mss11	"null"
tempchip	35
cur_ip	"30.4.78.129"
cur_sn	"255.255.255.0"
cur_gw	"30.4.78.1"
cur_dns	"30.4.78.1"
cloudstate	4
debug_ip	"0.0.0.0"
Zuletzt geändert von alchy am 22.07.2021, 11:36, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MichaelN » 18.07.2021, 20:52

Ist das die original Ausgabe? oohne "," und ":"???
Btw sowas bitte immer in Code Tags posten (siehe oben Button </>)
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

MarkusSchickaneder
Beiträge: 21
Registriert: 15.04.2021, 15:24
System: CCU und Access Point
Hat sich bedankt: 4 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MarkusSchickaneder » 18.07.2021, 20:58

Hallo

So wird es mir im Firefox Angezeigt.

Gruß
Markus

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MichaelN » 18.07.2021, 21:01

:roll: das ist nicht die original Ausgabe. DDas ist die Interpretation von Firefox.

Probier das Script ruhig mal aus, Chance steht gut, das es well formed JSON ist.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

MarkusSchickaneder
Beiträge: 21
Registriert: 15.04.2021, 15:24
System: CCU und Access Point
Hat sich bedankt: 4 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MarkusSchickaneder » 18.07.2021, 21:07

:cry: Daran Probiere ich ja schon seit wochen rum!

Gruß
Markus

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MichaelN » 18.07.2021, 21:08

An dem Skript?
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

MarkusSchickaneder
Beiträge: 21
Registriert: 15.04.2021, 15:24
System: CCU und Access Point
Hat sich bedankt: 4 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MarkusSchickaneder » 18.07.2021, 21:17

Hallo

Ich versuche dieses Script Umzuschreiben:

Code: Alles auswählen

#!/usr/bin/php
<?php

/*****************************************************************************
//  Solaranzeige Projekt             Copyright (C) [2015-2020]  [Ulrich Kunz]
//
//  Dieses Programm ist freie Software. Sie können es unter den Bedingungen
//  der GNU General Public License, wie von der Free Software Foundation
//  veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß
//  Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
//
//  Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es
//  Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne
//  die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN
//  BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
//
//  Ein original Exemplar der GNU General Public License finden Sie hier:
//  http://www.gnu.org/licenses/
//
//  Dies ist ein Programmteil des Programms "Solaranzeige"
//
//  Es dient der Steuerung einer My-PV Elwa-E mit BYD HVS/HVM und Modbus TCP Plenticore WR
//  Getestet an Elwa E FW 107 / SW.FW 102.06 
*****************************************************************************/
setlocale(LC_TIME,"de_DE.utf8");
$path_parts = pathinfo($argv[0]);
$Pfad = $path_parts['dirname'];

if (is_file($Pfad."/1.user.config.php")) {
  // Handelt es sich um ein Multi Regler System?
  require($Pfad."/1.user.config.php");
}
else {
  require($Pfad."/user.config.php");
}
require_once($Pfad."/phpinc/funktionen.inc.php");
 
if (!isset($funktionen)) {
  $funktionen = new funktionen();
}

// Im Fall, dass man die Device manuell eingeben muss
if (isset($USBDevice) and !empty($USBDevice)) {
  $USBRegler = $USBDevice;
}
//  Ist der Standort in der user.config.php angegeben?
//  Wenn nicht dann Standort Frankfurt nehmen
if (isset($Breitengrad)) {
    $breite = $Breitengrad;
} else {
    $breite = 50.1143999;
}

if (isset($Laengengrad)) {
    $laenge = $Laengengrad;
} else {
    $laenge = 8.6585178;
}

$Tracelevel = 6; //  1 bis 10  10 = Debug
$RemoteDaten = true;
$Device = "WR"; // WR = Wechselrichter
$aktuelleDaten = array();
$Version = "";
$Start = time();  // Timestamp festhalten
$aktuelleDaten["Regler"] = $Regler;
$aktuelleDaten["Objekt"] = $Objekt;
$aktuelleDaten["Firmware"] = 1.3;
//$aktuelleDaten["Produkt"]  = $aktuelleDaten["Seriennummer"];

/****************************************************************************
//  InfluxDB  Zugangsdaten ...stehen in der user.config.php
//  falls nicht, sind das hier die default Werte.
****************************************************************************/
$aktuelleDaten["InfluxAdresse"] = $InfluxAdresse;
$aktuelleDaten["InfluxPort"] = $InfluxPort;
$aktuelleDaten["InfluxUser"] =  $InfluxUser;
$aktuelleDaten["InfluxPassword"] = $InfluxPassword;
$aktuelleDaten["InfluxDBName"] = $InfluxDBName;
$aktuelleDaten["InfluxDaylight"] = $InfluxDaylight;
$aktuelleDaten["InfluxDBLokal"] = $InfluxDBLokal;
$aktuelleDaten["InfluxSSL"] = $InfluxSSL;
$aktuelleDaten["Demodaten"] = false;
$aktuelleDaten["Timestamp"] = $Start;
$aktuelleDaten["InfluxAdresse"] = "localhost";
$aktuelleDaten["InfluxPort"] = "8086";
$aktuelleDaten["InfluxDBName"] = $aktuelleDaten["InfluxDBLokal"];
$aktuelleDaten["InfluxSSL"] = false;


sleep(27);
$funktionen->log_schreiben("-------------   Start  elwa_auslesen.php    --------------- ","|--",6);

$COM1 = fsockopen("192.168.178.99"," 502", $errno, $errstr, 5);   // 5 = Timeout in Sekunden
if (!is_resource($COM1)) {
  $funktionen->log_schreiben("Kein Kontakt zur Elwa ".$WR_IP."  Port: ".$WR_Port,"XX ",3);
  $funktionen->log_schreiben("Exit.... ","XX ",9);
  goto Ausgang;
}

$i = 1;
{
  /****************************************************************************
  //  Ab hier wird die Elwa ausgelesen.
  /****************************************************************************
  //
  //  Ergebniswerte:
  //  $aktuelleDaten["Power"]   				W            Nummer				R/W
  //  $aktuelleDaten["Aktuelle_Wasser_Temp"]	0.1 °C       Nummer/°C			R
  //  $aktuelleDaten["Max_Wasser_Temp"]  		0.1 °C       Nummer/°C			R
  //  $aktuelleDaten["Status"]                  			Nummer				R
  //  $aktuelleDaten["Power_Timeout"]			sec			Nummer				R/W				
  //  $aktuelleDaten["Boostmodus"]							Nummer				R/W
  //  $aktuelleDaten["Boost_Temp"]				0.1 °C       Nummer/°C			R/W
  //  $aktuelleDaten["Boost_Time_Start"]					Nummer				R/W
  //  $aktuelleDaten["Boost_Time_Stop"]						Nummer				R/W
  //  $aktuelleDaten["Akuelle_Stunde"]						Nummer				R/W
  //  $aktuelleDaten["Akuelle_Minute"]						Nummer				R/W
  //  $aktuelleDaten["Akuelle_Sekunde"]						Nummer				R/W
  //  $aktuelleDaten["Manueller_Boost_Start"]				Nummer				W
  //  $aktuelleDaten["Elwa_Nummer"]							Nummer				R/W
  //  $aktuelleDaten["LeistungsTyp"]						Nummer				R/W
  //  $aktuelleDaten["ContolerTemp"]			0.1 °C       Nummer/°C			R
  //  $aktuelleDaten["Controler_FW_TCP"]					Nummer				R
  //  $aktuelleDaten["Geräte_IP"]							Nummer				R
  //  $aktuelleDaten["Elwa_Serien_Nr1-2"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr3-4"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr5-6"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr7-8"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr9-10"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr11-12"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr13-14"]					String				R
  //  $aktuelleDaten["Elwa_Serien_Nr15-16"]					String				R
  //  $aktuelleDaten["Boost_Sperr_Time_Start"]				Nummer				R/W
  //  $aktuelleDaten["Boost_Sperr_Time_Stop"]				Nummer				R/W
  //  $aktuelleDaten["Geräte_FW_Sub_Version"]				Nummer				R
  //  $aktuelleDaten["Geräte_FW_Update_Version"]			Nummer				R
  //  $aktuelleDaten["Temp_2"]					0.1 °C       Nummer/°C			R
  //  $aktuelleDaten["Control_Typ"]							Nummer				R/W
  //   modbus_register_lesen($COM1,$Register,$Laenge,$Typ,$GeraeteAdresse,$Befehl="03")
  //   modbus schreiben mit Befehl 03
  //  Adressen ab 1031 bis 1071 sind für AC-THORen verfügbar
  /****************************************************************************/

  $rc = $funktionen->modbus_register_lesen($COM1,"1000","0001","Dec16Bit","01","03");
  $aktuelleDaten["Power"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1001","0001","Dec16Bit","01","03");
  $aktuelleDaten["Aktuelle_Wasser_Temp"] = $rc["Wert"] / 10;
  $rc = $funktionen->modbus_register_lesen($COM1,"1002","0001","Dec16Bit","01","03");
  $aktuelleDaten["Max_Wasser_Temp"] = $rc["Wert"] / 10;
  $rc = $funktionen->modbus_register_lesen($COM1,"1003","0001","Dec16Bit","01","03");
  $aktuelleDaten["Status"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1004","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Power_Timeout"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1005","0001","Dec16Bit","01","03");
  $aktuelleDaten["Boostmodus"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1006","0001","Dec16Bit","01","03");
  $aktuelleDaten["Boost_Temp"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1007","0001","Dec16Bit","01","03");
  $aktuelleDaten["Boost_Time_Start1"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1008","0001","Dec16Bit","01","03");
  $aktuelleDaten["Boost_Time_Stop1"] = $rc["Wert"]; 
//  $rc = $funktionen->modbus_register_lesen($COM1,"1009","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Akuelle_Stunde"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1010","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Akuelle_Minute"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1011","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Akuelle_Sekunde"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1012","0001","Dec16Bit","01","03");
  $aktuelleDaten["Manueller_Boost_Start"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1013","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Nummer"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1014","0001","Dec16Bit","01","03");
//  $aktuelleDaten["LeistungsTyp"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1015","0001","Dec16Bit","01","03");
  $aktuelleDaten["ContolerTemp"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1016","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Controler_FW_TCP"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1017","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Geräte_IP"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1018","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr1-2"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1019","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr3-4"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1020","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr5-6"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1021","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr7-8"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1022","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr9-10"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1023","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr11-12"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1024","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr13-14"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1025","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Elwa_Serien_Nr15-16"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1026","0001","Dec16Bit","01","03");
  $aktuelleDaten["Boost_Time_Start2"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1027","0001","Dec16Bit","01","03");
  $aktuelleDaten["Boost_Time_Stop2"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1028","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Geräte_FW_Sub_Version"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1029","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Geräte_FW_Update_Version"] = $rc["Wert"];
//  $rc = $funktionen->modbus_register_lesen($COM1,"1030","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Temp_2"] = $rc["Wert"] / 10;
//  $rc = $funktionen->modbus_register_lesen($COM1,"1069","0001","Dec16Bit","01","03");
//  $aktuelleDaten["Meter_Power"] = $rc["Wert"];
  $rc = $funktionen->modbus_register_lesen($COM1,"1070","0001","Dec16Bit","01","03");
  $aktuelleDaten["Control_Typ"] = $rc["Wert"];

  /****************************************************************************
  //  ENDE Elwa AUSLESEN      ENDE Elwa AUSLESEN      ENDE Elwa AUSLESEN
  ****************************************************************************/

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Homematic und AC Elwa E Auslesen

Beitrag von MichaelN » 18.07.2021, 21:25

Damit kann ich dir nicht weiterhelfen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

Zurück zu „HomeMatic allgemein“