4x JK BMS - 1x i.O. und 3x falsches protokoll?

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

vwg60tuning
Beiträge: 17
Registriert: Sa 28. Dez 2024, 14:23
Hat sich bedankt: 4 Mal

4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von vwg60tuning »

Hallo,

habe ein Problem mit dem ich nicht so richtig weiter komme, ich hoffe es kann mir jemand helfen.

Ich habe die Multi Regler Version am Laufen. Die liest meinen WR, meinen SDM630 erfolgreich aus.

Bislang hatte ich einen DIY Akku mit Daly BMS ebenfalls erfolgreich ausgelesen.

Jetzt ersetze ich den Akku gegen 4 Stck. EEL Akkus mit eingebautem JK BMS.

Alle 4 sind per aktivem Logilink USB Hub mit demselben Kabel angeschlossen und korrekt per Rules konfiguriert.
In den einzelnen User configs alle mit Regler 104 eingestellt.

Der erste Akku wird korrekt ausgelesen, bei den restl 3 steht im Log Falsches Protokoll.

Das Protokoll für den genutzten UART 1 Port kann ich in der JK BT App auswählen. Dort stehen nur 2 versch. Modbus Protokolle zur Verfügung.

Egal welches ich einstelle, die Fehlermeldung falsches Protokoll bleibt.

Habe alles mehrfach durchgeschaut und kann keine Unterschiede zum ersten Akku finden, warum funktioniert nur der erste von 4?

Vielen Dank im Voraus für Eure Hilfe, ich hoffe das hat schonmal jemand gehabt...... ;)

Benutzeravatar
Ulrich
Administrator
Beiträge: 6294
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von Ulrich »

Haben alle 4 denn MODBUS eingebaut?
Wie lauten die MODBUS ADRESSEN der 4 Akkus?
Sind die Modbus Adressen denn richtig in den x.user.config.php eingetragen?
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

vwg60tuning
Beiträge: 17
Registriert: Sa 28. Dez 2024, 14:23
Hat sich bedankt: 4 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von vwg60tuning »

Ja, sind alles dieselben BMS Typen. Haben alle RS485 Modbus. Geräte Adressen sind 1-4 und WR_Adressen sind in den betrff. user configs auch mit 1 bis 4 angegeben. Hatte ich vergessen zu erwähnen.

Der erste wird ja auch wunderbar ausgelesen. Die Minute ist auch noch nicht rum, nur ca. 30 Sek.

So sieht das Log aus:

Code: Alles auswählen

05.02. 17:18:05    -Multi Regler Auslesen [Start].
05.02. 17:18:05    -Verarbeitung von: '1.user.config.php'   Regler: 9
05.02. 17:18:05 |----------------   Start  mpi_3phasen_serie.php   ---------------
05.02. 17:18:09    -MQTT Daten zum [ localhost ] senden.
05.02. 17:18:09    -Fehlercode. 14 Warnung: 2
05.02. 17:18:10 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
05.02. 17:18:10    -Multi-Regler-Ausgang. 4
05.02. 17:18:10 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: localhost Port: 1883
05.02. 17:18:14    -OK. Datenübertragung erfolgreich.
05.02. 17:18:14 |----------------   Stop   mpi_3phasen_serie.php   ---------------
05.02. 17:18:14    -Verarbeitung von: '2.user.config.php'   Regler: 34
05.02. 17:18:14 +  -WR_ID: 01
05.02. 17:18:14 |------------   Start  SDM630_meter.php  -- Regler 34 ------------
05.02. 17:18:15    -Fehler!
05.02. 17:18:15 |------------   Stop   SDM630_meter.php    -----------------------
05.02. 17:18:15    -Verarbeitung von: '3.user.config.php'   Regler: 104
05.02. 17:18:15 |------ [ Regler 104] ----   Start  jk_bms_modbus.php   --- [05.06.24] ------
05.02. 17:18:15    -Hardware Version: Raspberry Pi 3 Model B Rev 1.2
05.02. 17:18:15 +  -USB: /dev/ttyBMS1 WR_ID: 01
05.02. 17:18:16    -SOC:16
05.02. 17:18:16    -MQTT Daten zum [ localhost ] senden.
05.02. 17:18:16 *  -Daten zur lokalen InfluxDB [ jkbms ] gesendet.
05.02. 17:18:16    -Multi-Regler-Ausgang. 8
05.02. 17:18:16 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: localhost Port: 1883
05.02. 17:18:24    -OK. Datenübertragung erfolgreich.
05.02. 17:18:24 |-------------------------   Stop   jk_bms_modbus.php   ---------------------
05.02. 17:18:24    -Verarbeitung von: '4.user.config.php'   Regler: 104
05.02. 17:18:24 |------ [ Regler 104] ----   Start  jk_bms_modbus.php   --- [05.06.24] ------
05.02. 17:18:24    -Hardware Version: Raspberry Pi 3 Model B Rev 1.2
05.02. 17:18:24 +  -USB: /dev/ttyBMS2 WR_ID: 02
05.02. 17:18:28 !! -Falsches Protokoll ... Exit....
05.02. 17:18:28 |-------------------------   Stop   jk_bms_modbus.php   ---------------------
05.02. 17:18:29    -Verarbeitung von: '5.user.config.php'   Regler: 104
05.02. 17:18:29 |------ [ Regler 104] ----   Start  jk_bms_modbus.php   --- [05.06.24] ------
05.02. 17:18:29    -Hardware Version: Raspberry Pi 3 Model B Rev 1.2
05.02. 17:18:29 +  -USB: /dev/ttyBMS3 WR_ID: 03
05.02. 17:18:32 !! -Falsches Protokoll ... Exit....
05.02. 17:18:32 |-------------------------   Stop   jk_bms_modbus.php   ---------------------
05.02. 17:18:33    -Verarbeitung von: '6.user.config.php'   Regler: 104
05.02. 17:18:33 |------ [ Regler 104] ----   Start  jk_bms_modbus.php   --- [05.06.24] ------
05.02. 17:18:33    -Hardware Version: Raspberry Pi 3 Model B Rev 1.2
05.02. 17:18:33 +  -USB: /dev/ttyBMS4 WR_ID: 04
05.02. 17:18:34 !! -Falsches Protokoll ... Exit....
05.02. 17:18:34 |-------------------------   Stop   jk_bms_modbus.php   ---------------------
05.02. 17:18:39    -Multi Regler Auslesen [Stop].

Benutzeravatar
Ulrich
Administrator
Beiträge: 6294
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von Ulrich »

Hast du jetzt jeden BMS einzeln mit einem USB Kabel angeschlossen?
Dann muss $WR_Adresse immer "1" sein.
Liest du alle 4 über ein USB Kabel aus, dann muss $WR_Adresse "1" - "4" sein
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

vwg60tuning
Beiträge: 17
Registriert: Sa 28. Dez 2024, 14:23
Hat sich bedankt: 4 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von vwg60tuning »

Ich lese jeden einzeln, mit eigenem Kabel aus.
Habe es auch versucht mit überall WR_Adresse 1, da kam dieselbe Fehlermeldung.
Dachte mir 1-4 wäre trotzdem korrekt, weil Device Adress im jeweiligen BMS auch auf 1-4 steht, da die BMS mit einem anderen Port untereinander kommunizieren.

Du hattest doch vorgestern auch geschrieben die 4 JK BMS kann mann nicht an einem Kabel auslesen ?!?!

Benutzeravatar
Ulrich
Administrator
Beiträge: 6294
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von Ulrich »

Von den JK-BMS gibt es 2 Versionen. Eine arbeitet mit einem "alten" Protokoll und es gibt eine neuere Version, die mit dem MODBUS Protokoll arbeitet.

Regler 83 (alte Version)
Regler 104 (Modbus Version)

Beide haben eine RS485 Schnittstelle. Wenn du sagst, dass die 4 Geräte sich unterhalten, über welche Schnittstelle denn? Haben die einen zusätzlichen CAN BUS?
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

vwg60tuning
Beiträge: 17
Registriert: Sa 28. Dez 2024, 14:23
Hat sich bedankt: 4 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von vwg60tuning »

Das erste BMS läuft mit dem neuen Regler 104. Alle anderen habe ich genauso eingestellt. Sie haben einen RS4851 Port für die Kommunikation mit dem WR (den ich für die Splaranzeige nutze ( Das Protokoll ist dort aus 13 Versionen einstellbar, darin scheinen 2 Protokolle passend =JK Modbus V1 (nutze ich momentan an allen Akkus und funktioniert auf dem 1. mit 115200 Baud, es gibt ein zweites Modpus V1 (9600) da scheinst nur die Baudrate geringer, es kann aber auch diverse andere Protokolle wie Pylontech etc.)

Dann hat es einen zusätzlichen CAN Bus, einen RS232 Bus , sowie jeweils 2 RS485-2 Ports zur Kommunikation untereinander.

Die Device Adressen sind mit dem DIP Schalter auf 1 bis 4 eingestellt.

Es handelt sich um den TYP JK_PB2A16S20P
Bild

Der Witz ist ja das dieselben Einstellungen in BMS 1 und 3.user config top funktionieren und bei BMS 2,3 & 4 nicht.

Ich kann auch mal den Code der 4 user configs einstellen? Evtl. siehst Du einen Fehler, den ich übersehe habe?

Eventuell könnte ich auch probieren das erste BMS mal auf Pylontech Protokoll und einen Pylontech Regler zu nutzen und mal zu schauen ob das funktioniert und ob er dann alle 4 BMS über eine Leitung ausliest?

Regler 83 werde ich im Laufe des Tages auch nochmal probieren und hier berichten. Evtl. neues BMS aber altes Protokoll, es ist ja auch Modbus V1. Aber dann wundert mich das 104 beim ersten BMS funktioniert, sind ja alles dieselben.

vwg60tuning
Beiträge: 17
Registriert: Sa 28. Dez 2024, 14:23
Hat sich bedankt: 4 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von vwg60tuning »

Hier die 4 user configs (3 funktioniert) WR Adresse 1-4 oder alle 1 probiert, gleicher Fehler:

3.user: (funktioniert)

Code: Alles auswählen


pi@solaranzeige:~ $ sudo nano /var/www/html/3.user.config.php
  GNU nano 7.2                                                                                       /var/www/html/3.user.config.php
//
$Regler = "104";
//
/******************************************************************************
//  Raspberry Gerätenummer   Raspberry Gerätenummer   Raspberry Gerätenummer
//  Falls mehr als ein Gerät pro Raspberry betrieben wird.
//  Es ist die Reihenfolge der Geräte und taucht auch in der Nummerierung
//  der  x.user.config.php Dateien auf
******************************************************************************/
//  GeräteID bzw. GeräteNummer Muss gleich mit der x.user.config.php sein.
//  Bitte nur bei einer Multi-Regler-Version ändern.  [ 1 bis 6 ]
$GeraeteNummer = "3";
//
//  Bei einem Micro Wechselrichter von AEconversion oder LiCom Box von Effekta
//  und anderen Geräten, die für den Zugang eine Seriennummer benötigen.
//  --------------------------------------------------------------------------
//  Z.B. Typ INV250-45 oder INV500-60 oder LiCom Box von Effekta
//  Steht auf dem Gerät! Ist 10 stellig. Serial-No. 0607600...
//  Bitte alle 10 Stellen hier eintragen.
//  Bei der AX LiCom Box von Effekta sind es 14 Stellen.
//  Bei den neuen AEconversion Geräten den Bootcode hier eintragen.
$Seriennummer = "0000000000";                 // Regler = "5"
//  Wird nur in seltenen Fällen gebraucht.
$Zugang_Kennwort = "";                        // wird zur Zeit nicht benutzt
//  Falls ein WLAN HF2211 serial   Gateway benutzt wird true eingeben
$HF2211 = false;
//
//  Nur bei PylonTech BMS US3000..       ($Regler = "41" )
//  und den neuen US2000C aus dem Jahr 2019 und später
//  Anzahl der vorhandenen Batteriepacks und Modell 2000 / 3000
//  -------------------------------------------------------------------
$Batteriepacks = "1"; //                 Regler = "41" + "91" und Andere.
$PylonTech = "2000";  //                 Regler = "41"
//
//
//  Ethernet Kabelverbindung:          Local Area Network  (LAN)
//  Alle Geräte, die über das LAN angesprochen und ausgelesen werden,
//  oder ein Serial Device Server, wie z.B. der HF2211 oder der Elfin-EW11,
//  dazwischen geschaltet haben, bitte hier IP und Port eintragen und
//  falls erforderlich die Device ID. (Geräteadresse = WR_Adresse)
//  Die Geräte Adresse wird auch manchmal bei RS485 Verbindungen benutzt.
//  -------------------------------------------------------------------
//  Bitte die Daten aus dem Gerät übernehmen
//
$WR_IP = "0.0.0.0";  //  Keine führenden Nullen!  67.xx Ja!, 067.xx Nein!
$WR_Port = "12345";
$WR_Adresse = "1";   //  Achtung Adresse als Dezimalzahl eingeben / 1 bis 256
//                       Maximal "256" = Hex FF
/*****************************************************************************/
//
//
//  Bezeichnung des Objektes. Freie Wahl, maximal 15 Buchstaben.
$Objekt = "JKBMS";
//
//
/******************************************************************************
//  InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB
//  ***************************************************************************
//  Die Daten können jede Minute oder öfter an eine InfluxDB Datenbank
//  übertragen werden. Die Datenbank muss nur über das Netzwerk erreichbar
//  sein. Sie kann sich im lokalen Netz, im Intenet oder aber auch auf diesem
//  Raspberry befinden. Bitte lesen Sie auch das Dokument
//  "Solaranzeige + InfluxDB" welches Sie auf unserem Support Server finden.
******************************************************************************/
//  Sollen die Daten in die lokale Influx Datenbank geschrieben werden?
//  Für die lokale Datenbank sind keine weiteren Angaben nötig.
//  true oder false
$InfluxDB_local = true;
//
//  Name der lokalen Datenbank. Bitte nicht ändern, sonst funktionieren die
//  Standard Dashboards nicht!
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Muti-Regler-Version müssen hier unterschiedliche lokale
//  Datenbanknamen eingetragen werden. Mit gleichem Namen müssen die Datenbanken
//  in der InfluxDB angelegt werden. Siehe Dokument:
//  "Multi-Regler-Version Installation"
$InfluxDBLokal  = "jkbms";
//
//  Wie oft pro Minute sollen die Daten ausgelesen und zur InfluxDB
//  übertragen werden?
//  Gültige Werte sind 1 bis 6 (6 = alle 10 Sekunden)
//  Bei einer zusätzlichen entfernten Datenbank kann das zu erheblichen
//  Traffic führen! Dieses gilt nur für die Single-Geräte-Version!
//  Wie es bei der Multi-Regler-Version funktioniert bitte in dem
//  entsprechenden Dokument nachlesen.
//  Default ist 1 (Ein mal pro Minute)
$Wiederholungen = 1;
//
/****************************************************************************/
//  ENTFERNTE INFLUX DATENBANK:
//  ---------------------------
//  Ist eine entfernte InfluxDB vorhanden und sollen dorthin auch die Daten
//  übertragen werden?
//  true oder false
$InfluxDB_remote = false;
//
//  Port an den die Daten geschickt werden. Normal ist Port 8086
$InfluxPort = 8086;
//
//  Name der entfernten Datenbank eintragen
//  Beispiel:  "solaranzeige" oder "MeineDatenbank"
$InfluxDBName  = "solaranzeige";
//
//  Adresse der Datenbank
//  Entweder die IP Adresse "xxx.xxx.xxx.xxx" oder den Hostnamen oder "localhost"
//  eintragen.
//  Beispiel:  "db.solaranzeige.de" oder "34.101.3.20"
$InfluxAdresse = "";
//
//  Wenn man mit UserID und Kennwort die Daten übertragen möchte, sollte man
//  auf jeden Fall auch die SSL Verschlüsselung einschalten. Dazu muss die
//  Influx Datenbank aber erst auf https eingerichtet werden.
$InfluxSSL = false;
//
//  Wenn die entfernte Datenbank mit UserID und Kennwort geschützt ist.
//  Wenn nicht, bitte leer lassen.
$InfluxUser = "";
$InfluxPassword ="";
//
//  Sollen die Daten nur bei Tageslicht an eine remote Datenbank gesendet werden?
//  Das reduziert den Traffic bei teuren Leitungen. Das betrifft nur die Remote
//  Datenbank falls konfiguriert.
//  true / false     ( false = die Daten werden rund um die Uhr gesendet. )
$InfluxDaylight = false;
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1
//  ****************************************************************************
//  Anbindung an eine vorhandene HomeMatic Zentrale
//  Für die genaue Einrichtung bitte das PDF Dokument "Homematic_Anschluss.pdf" lesen.
//  Es befindet sich auf unserem Support Server im Bereich "Verschiedene PDF Dokumente"
//  Kapitel 1 bis 7                Kapitel 1 bis 7              Kapitel 1 bis 7
********************************************************************************/
//  Sollen die Daten an eine vorhandene Homematic Zentrale gesendet werden?
//  Diese Werte kann dann die Zentrale dann verarbeiten.
//  Ein Beispiel: Folgende Werte werden übertragen:
//  * Ladestatus 0 = Keine Ladung, 2 = Fehler, 3 = Ladung (bulk); 4 = Nachladung (absorbtion),
//               5 = Erhaltungsladung (float)
//  * Ladestatus als Textzeile (Keine_Ladung, Normale_Ladung, Nachladung, Erhaltungsladung, Fehler)
//  * Batteriespannung in Volt
//  * Erzeugte Leistung am Tage in kWh
//  * Aktuell erzeugte Solar-Leistung
//  * Batteriestatus in % (Wie voll ist die Batterie?) Nicht bei allen Geräten!
//
//  true / false
$Homematic = false;
//
//  Welche IP Adresse hat Ihre Homematic Zentrale? Sie muss sich im selben
//  Netzwerk wie der Raspberry Pi befinden. Beispiel: 192.168.33.200
$Homematic_IP = "xxx.xxx.xxx.xxx";
//
//  Hier die Variablen eintragen, die zur HomeMatic Zentrale übermittelt werden
//  sollen. Siehe Dokument "HomeMatic_Anbindung.pdf"
//  Beispiel: "BatterieLadestatus,BatteriestatusText,Batteriespannung,Solarleistung,SolarleistungTag,Solarspannung";
$HomeMaticVar = "";
//
//  Den Status einzelner Geräte aus der HomeMatic Zentrale auslesen und in die
//  Influx Datenbank schreiben, damit man den Status im Dashboard anzeigen kann.
//  Nähere Einzelheiten stehen im Dokument "HomeMatic Anbindung"
$HM_auslesen = false;
//
//  Für jedes Gerät, dessen Status ausgelesen werden soll, müssen 4 Variablen
//  angegeben werden.
//  $HM[0]["Variable"] =       Kann man nennen wie man will, steht dann so in der Influx Datenbank.
//  $HM[0]["Interface"] =      Steht in der HomeMatic, bitte übernehmen
//  $HM[0]["Seriennummer"] =   Steht auch in der HomeMatic
//  $HM[0]["Datenpunkt"] =     STATE, POWER, ACTUAL_TEMPERATURE usw. Siehe HomeMatic
//
//  Für jede Systemvariable müssen 2 Variablen angegeben werden:
//  $HM[0]["Variable"] =        Kann man nennen wie man will. Steht dann so in der Influx Datenbank
//  $HM[0]["Systemvariable"] =  Name der Systemvariable in der HomeMatic
//  -----------------------------------------------------------------------
//
//  Beispiele:  ( Die zwei Schrägstich bei Aktivierung bitte entfernen. )
//  $HM[0]["Variable"] = "Wasserboiler";
//  $HM[0]["Interface"] = "BidCos-RF";
//  $HM[0]["Seriennummer"] = "OEQ1150699:1";
//  $HM[0]["Datenpunkt"] = "STATE";
//  $HM[1]["Variable"] = "Heizluefter";
//  $HM[1]["Interface"] = "BidCos-RF";
//  $HM[1]["Seriennummer"] = "OEQ1399311:1";
//  $HM[1]["Datenpunkt"] = "STATE";
//  $HM[2]["Variable"] = "...";
//  $HM[2]["Interface"] = "...";
//  $HM[2]["Seriennummer"] = "...";
//  $HM[2]["Datenpunkt"] = "POWER";
//  $HM[3]["Variable"] = "Anwesenheit";
//  $HM[3]["Systemvariable"] = "Anwesenheit";
//  usw.
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  XML API    XML API        XML API    XML API        XML API    XML API
//  Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2
//  ****************************************************************************
//  Ab Kapitel 7                AB Kapitel 7              AB Kapitel 7
//  Möchte man die variablen Daten eines an die Homematic angeschlossenen
//  Gerätes auslesen, wie z.B. ein Heizkörperventil, dann müssen hier die Daten
//  der angeschlossenen Geräte angegeben werden. Nähere Einzelheiten bitte im
//  Dokument Homematic_Anbindung.pdf ab Kapitel 7 lesen.
//
*******************************************************************************/
//
// $Homematic_Token = "xxxxxxxxxxxx";    // XML-API CCU Addon Version 2.x
//
/*******************************************************************************
//
//  Beispiel:
//  ---------
//  HM_Geraet 1
//  $HM_Geraetetyp[1] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[1] = "OEQ2419985";    // Wohnzimmer
//
//  HM_Geraet 2
//  $HM_Geraetetyp[2] = "HmIP-eTRV-B";     // Heizungsthermostat
//  $HM_Seriennummer[2] = "00201D89A8A446";// Badezimmer
//
//  HM_Geraet 3
//  $HM_Geraetetyp[3] = "HmIP-STHD";       // Wandthermostat
//  $HM_Seriennummer[3] = "000E9BE9967967";// Badezimmer
//
//  HM_Geraet 4
//  $HM_Geraetetyp[4] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[4] = "OEQ2421488";    // Küche
//
//  HM_Systemvariable 1
//  $HM_Systemvariable[1] = "Test";        // Variable 1
//  $HM_Systemvariable[2] = "DutyCycle";   // Variable 2
*******************************************************************************/
//
//  HM_Geraet 1
$HM_Geraetetyp[1] = "";      // Typenbezeichnung
$HM_Seriennummer[1] = "";    // Seriennummer
//
//
/******************************************************************************
//  MQTT Protokoll     MQTT Protokoll      MQTT Protokoll      MQTT Protokoll
//  Senden und / oder Empfangen
******************************************************************************/
//  Sollen alle ausgelesenen Daten mit dem MQTT Protokoll an einen
//  MQTT-Broker gesendet werden oder MQTT Daten empfangen werden?
//  Bitte das Solaranzeige-MQTT PDF Dokument lesen
$MQTT = true;
//
//
/******************************************************************************/
//  MQTT Daten senden     MQTT Daten senden     MQTT Daten senden     MQTT Daten
//  Wenn Daten mit dem MQTT Protokoll versendet werden sollen.
//
//  Wo ist der MQTT-Broker zu finden?
//  Entweder "localhost", eine Domain oder IP Adresse "xxx.xxx.xxx.xxx" eintragen.
//  broker.hivemq.com ist ein Test Broker   Siehe http://www.mqtt-dashboard.com/
$MQTTBroker = "localhost";
//
//  Benutzter Port des Brokers. Normal ist 1883  mit SSL 8883
$MQTTPort = 1883;
//
//  Falls der Broker gesichert ist. Sonst bitte leer lassen.
$MQTTBenutzer = "";
$MQTTKennwort = "";
//
//  Wenn man die Daten mit SSL Verschlüsselung versenden möchte.
//  Wenn hier true steht, muss im Verzeichnis "/var/www/html/" die "cerfile"
//  'ca.crt' vorhanden sein. Nähere Einzelheiten über diese Datei findet
//  man im Internet in der Mosquitto Dokumentation.
$MQTTSSL = false;
//
//  Timeout der Übertragung zum Broker. Normal = 10 bis 60 Sekunden
$MQTTKeepAlive = 60;
//
//  Topic Name oder Nummer des Gerätes solaranzeige/1
//  oder solaranzeige/box1                     (solaranzeige ist fest vorgegeben.)
//  Man kann das Gerät nennen wie man will, nur jedes Gerät, welches Daten
//  senden soll unterschiedlich. Entwerder 1 bis 6 oder Namen Ihrer Wahl vergeben.
$MQTTGeraet = "2";
//
//  Welche Daten sollen als MQTT Message übertragen werden? Wenn hier nichts
//  aufgeführt ist, werden alle ausgelesenen Daten übertragen.
//  Bitte darauf achten, dass keine Leerstellen zwischen den Variablen sind.
//  Die einzelnen Variablen müssen mit einem Komma getrennt und klein geschrieben
//  werden. Zusätzlich müssen sie den Eintrag vom $MQTTGeraet und ein Schrägstrich
//  enthalten. Das ist nötig, da mehrere Geräte an dem Raspberry hängen können.
//  Beispiel mit obigen MQTTGeraet:
//  $MQTTAuswahl = "1/ladestatus,1/solarspannung,1/solarstrom"
//  Werden hier Variablen eingetragen, dann werden auch nur diese Topics
//  übertragen.
$MQTTAuswahl = "";
//
//
/******************************************************************************
//  MQTT Empfang       MQTT Empfang       MQTT Empfang       MQTT Empfang
//  Subscribing    Subscribing    Subscribing    Subscribing    Subscribing
******************************************************************************/
//  Welche Daten sollen empfangen werden. Hier können die Topics, die
//  empfangen werden sollen aufgeführt werden. Dabei gibt es 2 Möglichkeiten
//  Entweder ein einzelner Wert oder eine Reihe von Werten.
//  Wichtig! Das basis Topics ist immer solaranzeige. Dann muss entweder befehl
//  oder anzeige kommen, dann die Gerätenummer und dann die Bezeichnung des
//  Wertes. Die Gerätenummer ist immer 1, außer bei Multi-Regler-Versionen.
//  Beispiel:  solaranzeige/anzeige/1/PV-Spannung
//  In diesem Beispiel wird der Wert der PV-Spannung in die Influx Datenbank
//  geschrieben unter dem Measurement MQTT
//  oder
//  Beispiel:  solaranzeige/befehl/1/POP  mit Wert 00
//  Der Befehl POP00 wird zum Wechselrichter geschickt. Er wird jedoch nur
//  ausgeführt wenn es sich um einen erlaubten Befehl handelt, der in der
//  Datei "befehle.ini.php" enthalten ist.
//
//  Beispiele:
//  $MQTTTopic[1] = "solaranzeige/befehl/1/POP";
//  $MQTTTopic[2] = "solaranzeige/befehl/1/PCP";
//  $MQTTTopic[3] = "solaranzeige/anzeige/1/Wasserboiler";
//
//  Oder auch
//  $MQTTTopic[1] = "solaranzeige/befehl/1/#";
//  Es können so viele Topics wie benötigt aufgeführt werden. Sie müssen nur
//  durch nummeriert werden [1] bis [n]
//  Bei Multi-Regler-Versionen muss zusätzlich noch die Gerätenummer angegeben
//  werden. Weitere Informationen finden Sie auf dem Support Forum.
//  Achtung! Damit der Empfang auch funktioniert muss $MQTT = true;
//  etwas weiter oben stehen!
$MQTTTopic[1] = "solaranzeige/befehl/2/#";
//
//
/******************************************************************************
//  SONOFF Geräte mit Tasmota Firmware       SONOFF Geräte mit Tasmota Firmware
//  POW R2 / TH10 R2 oder TH16 R2  oder GOSUND SP1xx
******************************************************************************/
//  Bitte den Topic-Namen, der in der TASMOTA Firmware angegeben ist, hier
//  eintragen. Unbedingt auf Groß- und Keinschreibung achten! Der Name kann
//  frei gewählt werden, er muss nur im Gerät und hier gleich sein. Werden
//  mehrere Sonoff Geräte mit der Solaranzeige betrieben, muss jedes einzelne
//  Gerät einen anderen Topic-Namen benutzen!
$Topic = "sonoff";
//
//
/******************************************************************************
//  WETTERDATEN     WETTERDATEN    WETTERDATEN    WETTERDATEN    WETTERDATEN
******************************************************************************/
//  Die Wetterdaten werden vom Server openweathermap.org geholt, da von dort
//  die Informationen kostenlos sind.
//  Man muss sich jedoch auf dem Server anmelden, um eine APP ID zu bekommen.
//
//  Bei einer Multi-Regler-Version nur in der 1.user.config.php aktivieren!
//  Sollen die aktuellen Wetterdaten geholt und abgespeichert werden?
//  Dadurch wird mehr Traffic generiert. Die Daten stehen dann in der Influx
//  Datenbank "aktuellesWetter" unter dem Measurement "Wetter" zur Verfügung.
//  Sie werden alle 30 Minuten aktualisiert
//  true oder false
$Wetterdaten = false;
//
//  Die Application ID bekommt man, wenn man sich auf dem Server
//  www.openweathermap.org registriert. Sie hat 32 Stellen und muss hier
//  eingetragen werden. Beispiel: "57b78415a343540e3a4e4f72751c90f9"
$APPID = "";
//
//  Der Standort wird mit einer StandortID angegeben. Wie die StandortID
//  ermittelt wird, bitte im Support Forum nachlesen. Man kann eine Liste
//  aller Standort ID's Weltweit hier herunterladen:
//  http://bulk.openweathermap.org/sample/city.list.json.gz
//  Default = "2925533" Frankfurt am Main oder die ID Ihres Standortes.
$StandortID = "2925533";
//
//
/******************************************************************************
//  PROGNOSEDATEN     PROGNOSEDATEN    PROGNOSEDATEN    PROGNOSEDATEN
******************************************************************************/
//  Die Wetterprognosedaten werden vom Server www.solarprognose.de geholt.
//  Teilweise sind die Daten dort kostenlos. [ www.solarprognose.de ]
//  Man muss sich jedoch auf dem Server anmelden, um eine Prognose ID zu bekommen.
//
//  Sollen die aktuellen Prognosedaten geholt und abgespeichert werden?
//  Die Daten stehen dann in der Influx Datenbank "solaranzeige" unter dem
//  Measurement "Wetterprognose" zur Verfügung. Sie werden pro Stunde einmal
//  aktualisiert.
//  Möchte man seinen eigenen Prognose Script nutzen, dann bitte hier User eingeben.
//  In diesem Fall wird alle 30 Minuten der Script "prognose.php" aufgerufen.
//  Dort müssen die Funktionen hinterlegt sein.
//  keine, API, User, beide
$Prognosedaten = "keine";              //  "keine" , "API" , "User" , "beide"
//
//  Wenn API eingetragen wird, dann folgende 3 Variablen füllen:
$AccessToken = "";                     // Bekommt man bei www.solarprognose.de
$PrognoseItem = "inverter";            // plant, inverter
$PrognoseID = "0";                     // Anlagen ID oder Wechselrichter ID
$Algorithmus = "";                     // kann leer bleiben oder
//                                     // mosmix | own-v1 | clearsky
//
/******************************************************************************
//  MESSENGER   MELDUNGEN        MESSENGER   MELDUNGEN        MESSENGER
******************************************************************************/
//  Es können Fehlermeldungen, Ereignisse oder Statistiken mit einem
//  Messenger übertragen werden. Dazu bitte Messenger = true eintragen
//  Genaue Informationen stehen im Dokument "Messenger_Nachrichten.pdf"
//
//  true / false
$Messenger = false;
//
//  Welcher Messengerdienst soll benutzt werden?
//  Pushover / Signal / WhatsApp
$Messengerdienst[1] = "Pushover";   //  Pushover, Signal oder WhatsApp
//  Die Solaranzeige müssen Sie bei Pushover / Signal oder WhatsApp
//  registrieren und einen API Token holen.
//  Wie das geht, steht in dem Dokument "Messenger_Nachrichten" auf dem
//  Support Server
//  Pushover Beispiel $API_Token = "amk4be851bcegnirhu1b71u6ou7uoh";
//  Signal Beispiel $API_Token = "999999";
$API_Token[1] = " ";
//
//  Der User_Key ist die Messeger Empfänger Adresse. Bei Pushover können bis zu
//  9 Empfänger angegeben werden. $User_Key[1]  bis  $User_Key[9]
//  Am Ende jeder Zeile das Semikolon nicht vergessen!
//  Pushover Beispiel: $User_Key[1] = "ub6c3wmw4a3idwk9b5ajgfs5a7aypt";
//  Siehe Dokument "Nachrichten_senden.pdf"
//  Bei WhatsApp und Signal kann nur ein Empfänger angegeben werden, da der Token
//  zur Rufnummer passen muss.
//  Signal Beispiel: $User_Key[1] = "+491769000000";
$User_Key[1] = "";
//
//  ------------------------------------------------------------------------
//  Und jetzt eventuell für weitere Personen:
//
//  $Messengerdienst[2] = "";     // Pushover, WhatsApp oder Signal
//  $API_Token[2] = "";
//  $User_Key[2] = "";
//
//  $Messengerdienst[3] = "";     / Pushover, WhatsApp oder Signal
//  $API_Token[3] = "";
//  $User_Key[3] = "";
//
//*****************************************************************************
//  Sonnen Auf und Untergang:
//  Standort für Frankfurt. Wer es etwas genauer haben möchte, hier den eigenen
//  Standort eintragen. Bitte als Dezimalzahl wie hier vorgegeben!
$Breitengrad = 50.1143999;
$Laengengrad = 8.6585178;
//
//
/******************************************************************************
//  aWATTar Börsenpreise      aWATTar Börsenpreise      aWATTar Börsenpreise.
//
//  Sollen die aktuellen Strom Börsenpreise in die oben angegebene locale.
//  Datenbank in das Measurement "awattarPreise" geschrieben werden?
******************************************************************************/
//
$aWATTar = false;
//
$Aufschlag = "0";       // Z.B.  "20,6"        Preis des Aufschlages in Cent
//
$aWATTarLand = "DE";     // "DE" = Deutschland   "AT" = Österreich
/******************************************************************************
//  ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!
//
//  Alles ab hier nicht ändern! Nur auf Anweisung. Änderungen hier können
//  das System zum Absturz bringen.
/******************************************************************************
//  USB Device      USB Device      USB Device      USB Device      USB Device
******************************************************************************/
//
//  USB Device, die automatisch erkannt wurde...  bitte nicht ändern
//  Wird nicht bei der Multi-Regler-Version benötigt.
//
$USBRegler         = "/dev/ttyBMS1";
//
//  Nur wenn die automatischer Erkennung nicht funktioniert hat, bitte manuell
//  eintragen. Im Normalfall wird das nicht benötigt. So lassen wie es ist.
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Multi-Regler-Version muss hier der Devicename manuell
//  eingetragen werden.
//
$USBDevice = "/dev/ttyBMS1";
//
//  Wird nur in seltenen Fällen gebraucht.
$SerielleGeschwindigkeit = "115200";
/*****************************************************************************/
//
/******************************************************************************
//  Raspberry Pi   Hardware   Raspberry Pi   Hardware   Raspberry Pi   Hardware
******************************************************************************/
// Bitte nicht ändern, wird automatisch ermittelt.
//
$Platine = "Raspberry Pi 3 Model B Rev 1.2";
//
/******************************************************************************
//  PHP Error Reporting        PHP Error Reporting        PHP Error Reporting
//  Bei ungeklärten Problemen hier einschalten. Normal = ausgeschaltet
******************************************************************************/
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_STRICT);
//
/******************************************************************************
//  Hier können zusätzliche Parameter, je nach Bedarf und Beschreibung
//  eingetragen werden.
******************************************************************************/
//  Ist für die neue Datenbankstruktur des Alpha ESS Wechselrichters
//  [ 0 / 1 ]  Mit 0 wird die alte Struktur eingeschaltet.
$Alpha_ESS = 0;
//
//  Nur bei WS100 Zählern anwendbar. "einfach" wenn jedes Gerät seinen
//  eigene Datenbank haben soll. "mehrfach" wenn alle WS100 Zähler die Daten
//  in eine Datenbank speichern sollen. Dann muss in jeder user.config.php
//  auch die gleiche Datenbank angegeben sein.
//  $WS100DB = "mehrfach";
//
// ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE
4.user:

Code: Alles auswählen

//  ---------------------------------------------------------------------------
//
$Regler = "104";
//
/******************************************************************************
//  Raspberry Gerätenummer   Raspberry Gerätenummer   Raspberry Gerätenummer
//  Falls mehr als ein Gerät pro Raspberry betrieben wird.
//  Es ist die Reihenfolge der Geräte und taucht auch in der Nummerierung
//  der  x.user.config.php Dateien auf
******************************************************************************/
//  GeräteID bzw. GeräteNummer Muss gleich mit der x.user.config.php sein.
//  Bitte nur bei einer Multi-Regler-Version ändern.  [ 1 bis 6 ]
$GeraeteNummer = "4";
//
//  Bei einem Micro Wechselrichter von AEconversion oder LiCom Box von Effekta
//  und anderen Geräten, die für den Zugang eine Seriennummer benötigen.
//  --------------------------------------------------------------------------
//  Z.B. Typ INV250-45 oder INV500-60 oder LiCom Box von Effekta
//  Steht auf dem Gerät! Ist 10 stellig. Serial-No. 0607600...
//  Bitte alle 10 Stellen hier eintragen.
//  Bei der AX LiCom Box von Effekta sind es 14 Stellen.
//  Bei den neuen AEconversion Geräten den Bootcode hier eintragen.
$Seriennummer = "0000000000";                 // Regler = "5"
//  Wird nur in seltenen Fällen gebraucht.
$Zugang_Kennwort = "";                        // wird zur Zeit nicht benutzt
//  Falls ein WLAN HF2211 serial   Gateway benutzt wird true eingeben
$HF2211 = false;
//
//  Nur bei PylonTech BMS US3000..       ($Regler = "41" )
//  und den neuen US2000C aus dem Jahr 2019 und später
//  Anzahl der vorhandenen Batteriepacks und Modell 2000 / 3000
//  -------------------------------------------------------------------
$Batteriepacks = "1"; //                 Regler = "41" + "91" und Andere.
$PylonTech = "2000";  //                 Regler = "41"
//
//
//  Ethernet Kabelverbindung:          Local Area Network  (LAN)
//  Alle Geräte, die über das LAN angesprochen und ausgelesen werden,
//  oder ein Serial Device Server, wie z.B. der HF2211 oder der Elfin-EW11,
//  dazwischen geschaltet haben, bitte hier IP und Port eintragen und
//  falls erforderlich die Device ID. (Geräteadresse = WR_Adresse)
//  Die Geräte Adresse wird auch manchmal bei RS485 Verbindungen benutzt.
//  -------------------------------------------------------------------
//  Bitte die Daten aus dem Gerät übernehmen
//
$WR_IP = "0.0.0.0";  //  Keine führenden Nullen!  67.xx Ja!, 067.xx Nein!
$WR_Port = "12345";
$WR_Adresse = "2";   //  Achtung Adresse als Dezimalzahl eingeben / 1 bis 256
//                       Maximal "256" = Hex FF
/*****************************************************************************/
//
//
//  Bezeichnung des Objektes. Freie Wahl, maximal 15 Buchstaben.
$Objekt = "JKBMS2";
//
//
/******************************************************************************
//  InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB
//  ***************************************************************************
//  Die Daten können jede Minute oder öfter an eine InfluxDB Datenbank
//  übertragen werden. Die Datenbank muss nur über das Netzwerk erreichbar
//  sein. Sie kann sich im lokalen Netz, im Intenet oder aber auch auf diesem
//  Raspberry befinden. Bitte lesen Sie auch das Dokument
//  "Solaranzeige + InfluxDB" welches Sie auf unserem Support Server finden.
******************************************************************************/
//  Sollen die Daten in die lokale Influx Datenbank geschrieben werden?
//  Für die lokale Datenbank sind keine weiteren Angaben nötig.
//  true oder false
$InfluxDB_local = true;
//
//  Name der lokalen Datenbank. Bitte nicht ändern, sonst funktionieren die
//  Standard Dashboards nicht!
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Muti-Regler-Version müssen hier unterschiedliche lokale
//  Datenbanknamen eingetragen werden. Mit gleichem Namen müssen die Datenbanken
//  in der InfluxDB angelegt werden. Siehe Dokument:
//  "Multi-Regler-Version Installation"
$InfluxDBLokal  = "jkbms2";
//
//  Wie oft pro Minute sollen die Daten ausgelesen und zur InfluxDB
//  übertragen werden?
//  Gültige Werte sind 1 bis 6 (6 = alle 10 Sekunden)
//  Bei einer zusätzlichen entfernten Datenbank kann das zu erheblichen
//  Traffic führen! Dieses gilt nur für die Single-Geräte-Version!
//  Wie es bei der Multi-Regler-Version funktioniert bitte in dem
//  entsprechenden Dokument nachlesen.
//  Default ist 1 (Ein mal pro Minute)
$Wiederholungen = 1;
//
/****************************************************************************/
//  ENTFERNTE INFLUX DATENBANK:
//  ---------------------------
//  Ist eine entfernte InfluxDB vorhanden und sollen dorthin auch die Daten
//  übertragen werden?
//  true oder false
$InfluxDB_remote = false;
//
//  Port an den die Daten geschickt werden. Normal ist Port 8086
$InfluxPort = 8086;
//
//  Name der entfernten Datenbank eintragen
//  Beispiel:  "solaranzeige" oder "MeineDatenbank"
$InfluxDBName  = "solaranzeige";
//
//  Adresse der Datenbank
//  Entweder die IP Adresse "xxx.xxx.xxx.xxx" oder den Hostnamen oder "localhost"
//  eintragen.
//  Beispiel:  "db.solaranzeige.de" oder "34.101.3.20"
$InfluxAdresse = "";
//
//  Wenn man mit UserID und Kennwort die Daten übertragen möchte, sollte man
//  auf jeden Fall auch die SSL Verschlüsselung einschalten. Dazu muss die
//  Influx Datenbank aber erst auf https eingerichtet werden.
$InfluxSSL = false;
//
//  Wenn die entfernte Datenbank mit UserID und Kennwort geschützt ist.
//  Wenn nicht, bitte leer lassen.
$InfluxUser = "";
$InfluxPassword ="";
//
//  Sollen die Daten nur bei Tageslicht an eine remote Datenbank gesendet werden?
//  Das reduziert den Traffic bei teuren Leitungen. Das betrifft nur die Remote
//  Datenbank falls konfiguriert.
//  true / false     ( false = die Daten werden rund um die Uhr gesendet. )
$InfluxDaylight = false;
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1
//  ****************************************************************************
//  Anbindung an eine vorhandene HomeMatic Zentrale
//  Für die genaue Einrichtung bitte das PDF Dokument "Homematic_Anschluss.pdf" lesen.
//  Es befindet sich auf unserem Support Server im Bereich "Verschiedene PDF Dokumente"
//  Kapitel 1 bis 7                Kapitel 1 bis 7              Kapitel 1 bis 7
********************************************************************************/
//  Sollen die Daten an eine vorhandene Homematic Zentrale gesendet werden?
//  Diese Werte kann dann die Zentrale dann verarbeiten.
//  Ein Beispiel: Folgende Werte werden übertragen:
//  * Ladestatus 0 = Keine Ladung, 2 = Fehler, 3 = Ladung (bulk); 4 = Nachladung (absorbtion),
//               5 = Erhaltungsladung (float)
//  * Ladestatus als Textzeile (Keine_Ladung, Normale_Ladung, Nachladung, Erhaltungsladung, Fehler)
//  * Batteriespannung in Volt
//  * Erzeugte Leistung am Tage in kWh
//  * Aktuell erzeugte Solar-Leistung
//  * Batteriestatus in % (Wie voll ist die Batterie?) Nicht bei allen Geräten!
//
//  true / false
$Homematic = false;
//
//  Welche IP Adresse hat Ihre Homematic Zentrale? Sie muss sich im selben
//  Netzwerk wie der Raspberry Pi befinden. Beispiel: 192.168.33.200
$Homematic_IP = "xxx.xxx.xxx.xxx";
//
//  Hier die Variablen eintragen, die zur HomeMatic Zentrale übermittelt werden
//  sollen. Siehe Dokument "HomeMatic_Anbindung.pdf"
//  Beispiel: "BatterieLadestatus,BatteriestatusText,Batteriespannung,Solarleistung,SolarleistungTag,Solarspannung";
$HomeMaticVar = "";
//
//  Den Status einzelner Geräte aus der HomeMatic Zentrale auslesen und in die
//  Influx Datenbank schreiben, damit man den Status im Dashboard anzeigen kann.
//  Nähere Einzelheiten stehen im Dokument "HomeMatic Anbindung"
$HM_auslesen = false;
//
//  Für jedes Gerät, dessen Status ausgelesen werden soll, müssen 4 Variablen
//  angegeben werden.
//  $HM[0]["Variable"] =       Kann man nennen wie man will, steht dann so in der Influx Datenbank.
//  $HM[0]["Interface"] =      Steht in der HomeMatic, bitte übernehmen
//  $HM[0]["Seriennummer"] =   Steht auch in der HomeMatic
//  $HM[0]["Datenpunkt"] =     STATE, POWER, ACTUAL_TEMPERATURE usw. Siehe HomeMatic
//
//  Für jede Systemvariable müssen 2 Variablen angegeben werden:
//  $HM[0]["Variable"] =        Kann man nennen wie man will. Steht dann so in der Influx Datenbank
//  $HM[0]["Systemvariable"] =  Name der Systemvariable in der HomeMatic
//  -----------------------------------------------------------------------
//
//  Beispiele:  ( Die zwei Schrägstich bei Aktivierung bitte entfernen. )
//  $HM[0]["Variable"] = "Wasserboiler";
//  $HM[0]["Interface"] = "BidCos-RF";
//  $HM[0]["Seriennummer"] = "OEQ1150699:1";
//  $HM[0]["Datenpunkt"] = "STATE";
//  $HM[1]["Variable"] = "Heizluefter";
//  $HM[1]["Interface"] = "BidCos-RF";
//  $HM[1]["Seriennummer"] = "OEQ1399311:1";
//  $HM[1]["Datenpunkt"] = "STATE";
//  $HM[2]["Variable"] = "...";
//  $HM[2]["Interface"] = "...";
//  $HM[2]["Seriennummer"] = "...";
//  $HM[2]["Datenpunkt"] = "POWER";
//  $HM[3]["Variable"] = "Anwesenheit";
//  $HM[3]["Systemvariable"] = "Anwesenheit";
//  usw.
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  XML API    XML API        XML API    XML API        XML API    XML API
//  Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2
//  ****************************************************************************
//  Ab Kapitel 7                AB Kapitel 7              AB Kapitel 7
//  Möchte man die variablen Daten eines an die Homematic angeschlossenen
//  Gerätes auslesen, wie z.B. ein Heizkörperventil, dann müssen hier die Daten
//  der angeschlossenen Geräte angegeben werden. Nähere Einzelheiten bitte im
//  Dokument Homematic_Anbindung.pdf ab Kapitel 7 lesen.
//
*******************************************************************************/
//
// $Homematic_Token = "xxxxxxxxxxxx";    // XML-API CCU Addon Version 2.x
//
/*******************************************************************************
//
//  Beispiel:
//  ---------
//  HM_Geraet 1
//  $HM_Geraetetyp[1] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[1] = "OEQ2419985";    // Wohnzimmer
//
//  HM_Geraet 2
//  $HM_Geraetetyp[2] = "HmIP-eTRV-B";     // Heizungsthermostat
//  $HM_Seriennummer[2] = "00201D89A8A446";// Badezimmer
//
//  HM_Geraet 3
//  $HM_Geraetetyp[3] = "HmIP-STHD";       // Wandthermostat
//  $HM_Seriennummer[3] = "000E9BE9967967";// Badezimmer
//
//  HM_Geraet 4
//  $HM_Geraetetyp[4] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[4] = "OEQ2421488";    // Küche
//
//  HM_Systemvariable 1
//  $HM_Systemvariable[1] = "Test";        // Variable 1
//  $HM_Systemvariable[2] = "DutyCycle";   // Variable 2
*******************************************************************************/
//
//  HM_Geraet 1
$HM_Geraetetyp[1] = "";      // Typenbezeichnung
$HM_Seriennummer[1] = "";    // Seriennummer
//
//
/******************************************************************************
//  MQTT Protokoll     MQTT Protokoll      MQTT Protokoll      MQTT Protokoll
//  Senden und / oder Empfangen
******************************************************************************/
//  Sollen alle ausgelesenen Daten mit dem MQTT Protokoll an einen
//  MQTT-Broker gesendet werden oder MQTT Daten empfangen werden?
//  Bitte das Solaranzeige-MQTT PDF Dokument lesen
$MQTT = true;
//
//
/******************************************************************************/
//  MQTT Daten senden     MQTT Daten senden     MQTT Daten senden     MQTT Daten
//  Wenn Daten mit dem MQTT Protokoll versendet werden sollen.
//
//  Wo ist der MQTT-Broker zu finden?
//  Entweder "localhost", eine Domain oder IP Adresse "xxx.xxx.xxx.xxx" eintragen.
//  broker.hivemq.com ist ein Test Broker   Siehe http://www.mqtt-dashboard.com/
$MQTTBroker = "localhost";
//
//  Benutzter Port des Brokers. Normal ist 1883  mit SSL 8883
$MQTTPort = 1883;
//
//  Falls der Broker gesichert ist. Sonst bitte leer lassen.
$MQTTBenutzer = "";
$MQTTKennwort = "";
//
//  Wenn man die Daten mit SSL Verschlüsselung versenden möchte.
//  Wenn hier true steht, muss im Verzeichnis "/var/www/html/" die "cerfile"
//  'ca.crt' vorhanden sein. Nähere Einzelheiten über diese Datei findet
//  man im Internet in der Mosquitto Dokumentation.
$MQTTSSL = false;
//
//  Timeout der Übertragung zum Broker. Normal = 10 bis 60 Sekunden
$MQTTKeepAlive = 60;
//
//  Topic Name oder Nummer des Gerätes solaranzeige/1
//  oder solaranzeige/box1                     (solaranzeige ist fest vorgegeben.)
//  Man kann das Gerät nennen wie man will, nur jedes Gerät, welches Daten
//  senden soll unterschiedlich. Entwerder 1 bis 6 oder Namen Ihrer Wahl vergeben.
$MQTTGeraet = "22";
//
//  Welche Daten sollen als MQTT Message übertragen werden? Wenn hier nichts
//  aufgeführt ist, werden alle ausgelesenen Daten übertragen.
//  Bitte darauf achten, dass keine Leerstellen zwischen den Variablen sind.
//  Die einzelnen Variablen müssen mit einem Komma getrennt und klein geschrieben
//  werden. Zusätzlich müssen sie den Eintrag vom $MQTTGeraet und ein Schrägstrich
//  enthalten. Das ist nötig, da mehrere Geräte an dem Raspberry hängen können.
//  Beispiel mit obigen MQTTGeraet:
//  $MQTTAuswahl = "1/ladestatus,1/solarspannung,1/solarstrom"
//  Werden hier Variablen eingetragen, dann werden auch nur diese Topics
//  übertragen.
$MQTTAuswahl = "";
//
//
/******************************************************************************
//  MQTT Empfang       MQTT Empfang       MQTT Empfang       MQTT Empfang
//  Subscribing    Subscribing    Subscribing    Subscribing    Subscribing
******************************************************************************/
//  Welche Daten sollen empfangen werden. Hier können die Topics, die
//  empfangen werden sollen aufgeführt werden. Dabei gibt es 2 Möglichkeiten
//  Entweder ein einzelner Wert oder eine Reihe von Werten.
//  Wichtig! Das basis Topics ist immer solaranzeige. Dann muss entweder befehl
//  oder anzeige kommen, dann die Gerätenummer und dann die Bezeichnung des
//  Wertes. Die Gerätenummer ist immer 1, außer bei Multi-Regler-Versionen.
//  Beispiel:  solaranzeige/anzeige/1/PV-Spannung
//  In diesem Beispiel wird der Wert der PV-Spannung in die Influx Datenbank
//  geschrieben unter dem Measurement MQTT
//  oder
//  Beispiel:  solaranzeige/befehl/1/POP  mit Wert 00
//  Der Befehl POP00 wird zum Wechselrichter geschickt. Er wird jedoch nur
//  ausgeführt wenn es sich um einen erlaubten Befehl handelt, der in der
//  Datei "befehle.ini.php" enthalten ist.
//
//  Beispiele:
//  $MQTTTopic[1] = "solaranzeige/befehl/1/POP";
//  $MQTTTopic[2] = "solaranzeige/befehl/1/PCP";
//  $MQTTTopic[3] = "solaranzeige/anzeige/1/Wasserboiler";
//
//  Oder auch
//  $MQTTTopic[1] = "solaranzeige/befehl/1/#";
//  Es können so viele Topics wie benötigt aufgeführt werden. Sie müssen nur
//  durch nummeriert werden [1] bis [n]
//  Bei Multi-Regler-Versionen muss zusätzlich noch die Gerätenummer angegeben
//  werden. Weitere Informationen finden Sie auf dem Support Forum.
//  Achtung! Damit der Empfang auch funktioniert muss $MQTT = true;
//  etwas weiter oben stehen!
$MQTTTopic[1] = "solaranzeige/befehl/22/#";
//
//
/******************************************************************************
//  SONOFF Geräte mit Tasmota Firmware       SONOFF Geräte mit Tasmota Firmware
//  POW R2 / TH10 R2 oder TH16 R2  oder GOSUND SP1xx
******************************************************************************/
//  Bitte den Topic-Namen, der in der TASMOTA Firmware angegeben ist, hier
//  eintragen. Unbedingt auf Groß- und Keinschreibung achten! Der Name kann
//  frei gewählt werden, er muss nur im Gerät und hier gleich sein. Werden
//  mehrere Sonoff Geräte mit der Solaranzeige betrieben, muss jedes einzelne
//  Gerät einen anderen Topic-Namen benutzen!
$Topic = "sonoff";
//
//
/******************************************************************************
//  WETTERDATEN     WETTERDATEN    WETTERDATEN    WETTERDATEN    WETTERDATEN
******************************************************************************/
//  Die Wetterdaten werden vom Server openweathermap.org geholt, da von dort
//  die Informationen kostenlos sind.
//  Man muss sich jedoch auf dem Server anmelden, um eine APP ID zu bekommen.
//
//  Bei einer Multi-Regler-Version nur in der 1.user.config.php aktivieren!
//  Sollen die aktuellen Wetterdaten geholt und abgespeichert werden?
//  Dadurch wird mehr Traffic generiert. Die Daten stehen dann in der Influx
//  Datenbank "aktuellesWetter" unter dem Measurement "Wetter" zur Verfügung.
//  Sie werden alle 30 Minuten aktualisiert
//  true oder false
$Wetterdaten = false;
//
//  Die Application ID bekommt man, wenn man sich auf dem Server
//  www.openweathermap.org registriert. Sie hat 32 Stellen und muss hier
//  eingetragen werden. Beispiel: "57b78415a343540e3a4e4f72751c90f9"
$APPID = "";
//
//  Der Standort wird mit einer StandortID angegeben. Wie die StandortID
//  ermittelt wird, bitte im Support Forum nachlesen. Man kann eine Liste
//  aller Standort ID's Weltweit hier herunterladen:
//  http://bulk.openweathermap.org/sample/city.list.json.gz
//  Default = "2925533" Frankfurt am Main oder die ID Ihres Standortes.
$StandortID = "2925533";
//
//
/******************************************************************************
//  PROGNOSEDATEN     PROGNOSEDATEN    PROGNOSEDATEN    PROGNOSEDATEN
******************************************************************************/
//  Die Wetterprognosedaten werden vom Server www.solarprognose.de geholt.
//  Teilweise sind die Daten dort kostenlos. [ www.solarprognose.de ]
//  Man muss sich jedoch auf dem Server anmelden, um eine Prognose ID zu bekommen.
//
//  Sollen die aktuellen Prognosedaten geholt und abgespeichert werden?
//  Die Daten stehen dann in der Influx Datenbank "solaranzeige" unter dem
//  Measurement "Wetterprognose" zur Verfügung. Sie werden pro Stunde einmal
//  aktualisiert.
//  Möchte man seinen eigenen Prognose Script nutzen, dann bitte hier User eingeben.
//  In diesem Fall wird alle 30 Minuten der Script "prognose.php" aufgerufen.
//  Dort müssen die Funktionen hinterlegt sein.
//  keine, API, User, beide
$Prognosedaten = "keine";              //  "keine" , "API" , "User" , "beide"
//
//  Wenn API eingetragen wird, dann folgende 3 Variablen füllen:
$AccessToken = "";                     // Bekommt man bei www.solarprognose.de
$PrognoseItem = "inverter";            // plant, inverter
$PrognoseID = "0";                     // Anlagen ID oder Wechselrichter ID
$Algorithmus = "";                     // kann leer bleiben oder
//                                     // mosmix | own-v1 | clearsky
//
/******************************************************************************
//  MESSENGER   MELDUNGEN        MESSENGER   MELDUNGEN        MESSENGER
******************************************************************************/
//  Es können Fehlermeldungen, Ereignisse oder Statistiken mit einem
//  Messenger übertragen werden. Dazu bitte Messenger = true eintragen
//  Genaue Informationen stehen im Dokument "Messenger_Nachrichten.pdf"
//
//  true / false
$Messenger = false;
//
//  Welcher Messengerdienst soll benutzt werden?
//  Pushover / Signal / WhatsApp
$Messengerdienst[1] = "Pushover";   //  Pushover, Signal oder WhatsApp
//  Die Solaranzeige müssen Sie bei Pushover / Signal oder WhatsApp
//  registrieren und einen API Token holen.
//  Wie das geht, steht in dem Dokument "Messenger_Nachrichten" auf dem
//  Support Server
//  Pushover Beispiel $API_Token = "amk4be851bcegnirhu1b71u6ou7uoh";
//  Signal Beispiel $API_Token = "999999";
$API_Token[1] = " ";
//
//  Der User_Key ist die Messeger Empfänger Adresse. Bei Pushover können bis zu
//  9 Empfänger angegeben werden. $User_Key[1]  bis  $User_Key[9]
//  Am Ende jeder Zeile das Semikolon nicht vergessen!
//  Pushover Beispiel: $User_Key[1] = "ub6c3wmw4a3idwk9b5ajgfs5a7aypt";
//  Siehe Dokument "Nachrichten_senden.pdf"
//  Bei WhatsApp und Signal kann nur ein Empfänger angegeben werden, da der Token
//  zur Rufnummer passen muss.
//  Signal Beispiel: $User_Key[1] = "+491769000000";
$User_Key[1] = "";
//
//  ------------------------------------------------------------------------
//  Und jetzt eventuell für weitere Personen:
//
//  $Messengerdienst[2] = "";     // Pushover, WhatsApp oder Signal
//  $API_Token[2] = "";
//  $User_Key[2] = "";
//
//  $Messengerdienst[3] = "";     / Pushover, WhatsApp oder Signal
//  $API_Token[3] = "";
//  $User_Key[3] = "";
//
//*****************************************************************************
//  Sonnen Auf und Untergang:
//  Standort für Frankfurt. Wer es etwas genauer haben möchte, hier den eigenen
//  Standort eintragen. Bitte als Dezimalzahl wie hier vorgegeben!
$Breitengrad = 50.1143999;
$Laengengrad = 8.6585178;
//
//
/******************************************************************************
//  aWATTar Börsenpreise      aWATTar Börsenpreise      aWATTar Börsenpreise.
//
//  Sollen die aktuellen Strom Börsenpreise in die oben angegebene locale.
//  Datenbank in das Measurement "awattarPreise" geschrieben werden?
******************************************************************************/
//
$aWATTar = false;
//
$Aufschlag = "0";       // Z.B.  "20,6"        Preis des Aufschlages in Cent
//
$aWATTarLand = "DE";     // "DE" = Deutschland   "AT" = Österreich
/******************************************************************************
//  ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!
//
//  Alles ab hier nicht ändern! Nur auf Anweisung. Änderungen hier können
//  das System zum Absturz bringen.
/******************************************************************************
//  USB Device      USB Device      USB Device      USB Device      USB Device
******************************************************************************/
//
//  USB Device, die automatisch erkannt wurde...  bitte nicht ändern
//  Wird nicht bei der Multi-Regler-Version benötigt.
//
$USBRegler         = "/dev/BMS2";
//
//  Nur wenn die automatischer Erkennung nicht funktioniert hat, bitte manuell
//  eintragen. Im Normalfall wird das nicht benötigt. So lassen wie es ist.
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Multi-Regler-Version muss hier der Devicename manuell
//  eingetragen werden.
//
$USBDevice = "/dev/ttyBMS2";
//
//  Wird nur in seltenen Fällen gebraucht.
$SerielleGeschwindigkeit = "115200";
/*****************************************************************************/
//
/******************************************************************************
//  Raspberry Pi   Hardware   Raspberry Pi   Hardware   Raspberry Pi   Hardware
******************************************************************************/
// Bitte nicht ändern, wird automatisch ermittelt.
//
$Platine = "Raspberry Pi 3 Model B Rev 1.2";
//
/******************************************************************************
//  PHP Error Reporting        PHP Error Reporting        PHP Error Reporting
//  Bei ungeklärten Problemen hier einschalten. Normal = ausgeschaltet
******************************************************************************/
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_STRICT);
//
/******************************************************************************
//  Hier können zusätzliche Parameter, je nach Bedarf und Beschreibung
//  eingetragen werden.
******************************************************************************/
//  Ist für die neue Datenbankstruktur des Alpha ESS Wechselrichters
//  [ 0 / 1 ]  Mit 0 wird die alte Struktur eingeschaltet.
$Alpha_ESS = 0;
//
//  Nur bei WS100 Zählern anwendbar. "einfach" wenn jedes Gerät seinen
//  eigene Datenbank haben soll. "mehrfach" wenn alle WS100 Zähler die Daten
//  in eine Datenbank speichern sollen. Dann muss in jeder user.config.php
//  auch die gleiche Datenbank angegeben sein.
//  $WS100DB = "mehrfach";
//
// ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE

vwg60tuning
Beiträge: 17
Registriert: Sa 28. Dez 2024, 14:23
Hat sich bedankt: 4 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von vwg60tuning »

5.user:

Code: Alles auswählen

//  ---------------------------------------------------------------------------
//
$Regler = "104";
//
/******************************************************************************
//  Raspberry Gerätenummer   Raspberry Gerätenummer   Raspberry Gerätenummer
//  Falls mehr als ein Gerät pro Raspberry betrieben wird.
//  Es ist die Reihenfolge der Geräte und taucht auch in der Nummerierung
//  der  x.user.config.php Dateien auf
******************************************************************************/
//  GeräteID bzw. GeräteNummer Muss gleich mit der x.user.config.php sein.
//  Bitte nur bei einer Multi-Regler-Version ändern.  [ 1 bis 6 ]
$GeraeteNummer = "5";
//
//  Bei einem Micro Wechselrichter von AEconversion oder LiCom Box von Effekta
//  und anderen Geräten, die für den Zugang eine Seriennummer benötigen.
//  --------------------------------------------------------------------------
//  Z.B. Typ INV250-45 oder INV500-60 oder LiCom Box von Effekta
//  Steht auf dem Gerät! Ist 10 stellig. Serial-No. 0607600...
//  Bitte alle 10 Stellen hier eintragen.
//  Bei der AX LiCom Box von Effekta sind es 14 Stellen.
//  Bei den neuen AEconversion Geräten den Bootcode hier eintragen.
$Seriennummer = "0000000000";                 // Regler = "5"
//  Wird nur in seltenen Fällen gebraucht.
$Zugang_Kennwort = "";                        // wird zur Zeit nicht benutzt
//  Falls ein WLAN HF2211 serial   Gateway benutzt wird true eingeben
$HF2211 = false;
//
//  Nur bei PylonTech BMS US3000..       ($Regler = "41" )
//  und den neuen US2000C aus dem Jahr 2019 und später
//  Anzahl der vorhandenen Batteriepacks und Modell 2000 / 3000
//  -------------------------------------------------------------------
$Batteriepacks = "1"; //                 Regler = "41" + "91" und Andere.
$PylonTech = "2000";  //                 Regler = "41"
//
//
//  Ethernet Kabelverbindung:          Local Area Network  (LAN)
//  Alle Geräte, die über das LAN angesprochen und ausgelesen werden,
//  oder ein Serial Device Server, wie z.B. der HF2211 oder der Elfin-EW11,
//  dazwischen geschaltet haben, bitte hier IP und Port eintragen und
//  falls erforderlich die Device ID. (Geräteadresse = WR_Adresse)
//  Die Geräte Adresse wird auch manchmal bei RS485 Verbindungen benutzt.
//  -------------------------------------------------------------------
//  Bitte die Daten aus dem Gerät übernehmen
//
$WR_IP = "0.0.0.0";  //  Keine führenden Nullen!  67.xx Ja!, 067.xx Nein!
$WR_Port = "12345";
$WR_Adresse = "3";   //  Achtung Adresse als Dezimalzahl eingeben / 1 bis 256
//                       Maximal "256" = Hex FF
/*****************************************************************************/
//
//
//  Bezeichnung des Objektes. Freie Wahl, maximal 15 Buchstaben.
$Objekt = "JKBMS3";
//
//
/******************************************************************************
//  InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB
//  ***************************************************************************
//  Die Daten können jede Minute oder öfter an eine InfluxDB Datenbank
//  übertragen werden. Die Datenbank muss nur über das Netzwerk erreichbar
//  sein. Sie kann sich im lokalen Netz, im Intenet oder aber auch auf diesem
//  Raspberry befinden. Bitte lesen Sie auch das Dokument
//  "Solaranzeige + InfluxDB" welches Sie auf unserem Support Server finden.
******************************************************************************/
//  Sollen die Daten in die lokale Influx Datenbank geschrieben werden?
//  Für die lokale Datenbank sind keine weiteren Angaben nötig.
//  true oder false
$InfluxDB_local = true;
//
//  Name der lokalen Datenbank. Bitte nicht ändern, sonst funktionieren die
//  Standard Dashboards nicht!
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Muti-Regler-Version müssen hier unterschiedliche lokale
//  Datenbanknamen eingetragen werden. Mit gleichem Namen müssen die Datenbanken
//  in der InfluxDB angelegt werden. Siehe Dokument:
//  "Multi-Regler-Version Installation"
$InfluxDBLokal  = "jkbms3";
//
//  Wie oft pro Minute sollen die Daten ausgelesen und zur InfluxDB
//  übertragen werden?
//  Gültige Werte sind 1 bis 6 (6 = alle 10 Sekunden)
//  Bei einer zusätzlichen entfernten Datenbank kann das zu erheblichen
//  Traffic führen! Dieses gilt nur für die Single-Geräte-Version!
//  Wie es bei der Multi-Regler-Version funktioniert bitte in dem
//  entsprechenden Dokument nachlesen.
//  Default ist 1 (Ein mal pro Minute)
$Wiederholungen = 1;
//
/****************************************************************************/
//  ENTFERNTE INFLUX DATENBANK:
//  ---------------------------
//  Ist eine entfernte InfluxDB vorhanden und sollen dorthin auch die Daten
//  übertragen werden?
//  true oder false
$InfluxDB_remote = false;
//
//  Port an den die Daten geschickt werden. Normal ist Port 8086
$InfluxPort = 8086;
//
//  Name der entfernten Datenbank eintragen
//  Beispiel:  "solaranzeige" oder "MeineDatenbank"
$InfluxDBName  = "solaranzeige";
//
//  Adresse der Datenbank
//  Entweder die IP Adresse "xxx.xxx.xxx.xxx" oder den Hostnamen oder "localhost"
//  eintragen.
//  Beispiel:  "db.solaranzeige.de" oder "34.101.3.20"
$InfluxAdresse = "";
//
//  Wenn man mit UserID und Kennwort die Daten übertragen möchte, sollte man
//  auf jeden Fall auch die SSL Verschlüsselung einschalten. Dazu muss die
//  Influx Datenbank aber erst auf https eingerichtet werden.
$InfluxSSL = false;
//
//  Wenn die entfernte Datenbank mit UserID und Kennwort geschützt ist.
//  Wenn nicht, bitte leer lassen.
$InfluxUser = "";
$InfluxPassword ="";
//
//  Sollen die Daten nur bei Tageslicht an eine remote Datenbank gesendet werden?
//  Das reduziert den Traffic bei teuren Leitungen. Das betrifft nur die Remote
//  Datenbank falls konfiguriert.
//  true / false     ( false = die Daten werden rund um die Uhr gesendet. )
$InfluxDaylight = false;
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1
//  ****************************************************************************
//  Anbindung an eine vorhandene HomeMatic Zentrale
//  Für die genaue Einrichtung bitte das PDF Dokument "Homematic_Anschluss.pdf" lesen.
//  Es befindet sich auf unserem Support Server im Bereich "Verschiedene PDF Dokumente"
//  Kapitel 1 bis 7                Kapitel 1 bis 7              Kapitel 1 bis 7
********************************************************************************/
//  Sollen die Daten an eine vorhandene Homematic Zentrale gesendet werden?
//  Diese Werte kann dann die Zentrale dann verarbeiten.
//  Ein Beispiel: Folgende Werte werden übertragen:
//  * Ladestatus 0 = Keine Ladung, 2 = Fehler, 3 = Ladung (bulk); 4 = Nachladung (absorbtion),
//               5 = Erhaltungsladung (float)
//  * Ladestatus als Textzeile (Keine_Ladung, Normale_Ladung, Nachladung, Erhaltungsladung, Fehler)
//  * Batteriespannung in Volt
//  * Erzeugte Leistung am Tage in kWh
//  * Aktuell erzeugte Solar-Leistung
//  * Batteriestatus in % (Wie voll ist die Batterie?) Nicht bei allen Geräten!
//
//  true / false
$Homematic = false;
//
//  Welche IP Adresse hat Ihre Homematic Zentrale? Sie muss sich im selben
//  Netzwerk wie der Raspberry Pi befinden. Beispiel: 192.168.33.200
$Homematic_IP = "xxx.xxx.xxx.xxx";
//
//  Hier die Variablen eintragen, die zur HomeMatic Zentrale übermittelt werden
//  sollen. Siehe Dokument "HomeMatic_Anbindung.pdf"
//  Beispiel: "BatterieLadestatus,BatteriestatusText,Batteriespannung,Solarleistung,SolarleistungTag,Solarspannung";
$HomeMaticVar = "";
//
//  Den Status einzelner Geräte aus der HomeMatic Zentrale auslesen und in die
//  Influx Datenbank schreiben, damit man den Status im Dashboard anzeigen kann.
//  Nähere Einzelheiten stehen im Dokument "HomeMatic Anbindung"
$HM_auslesen = false;
//
//  Für jedes Gerät, dessen Status ausgelesen werden soll, müssen 4 Variablen
//  angegeben werden.
//  $HM[0]["Variable"] =       Kann man nennen wie man will, steht dann so in der Influx Datenbank.
//  $HM[0]["Interface"] =      Steht in der HomeMatic, bitte übernehmen
//  $HM[0]["Seriennummer"] =   Steht auch in der HomeMatic
//  $HM[0]["Datenpunkt"] =     STATE, POWER, ACTUAL_TEMPERATURE usw. Siehe HomeMatic
//
//  Für jede Systemvariable müssen 2 Variablen angegeben werden:
//  $HM[0]["Variable"] =        Kann man nennen wie man will. Steht dann so in der Influx Datenbank
//  $HM[0]["Systemvariable"] =  Name der Systemvariable in der HomeMatic
//  -----------------------------------------------------------------------
//
//  Beispiele:  ( Die zwei Schrägstich bei Aktivierung bitte entfernen. )
//  $HM[0]["Variable"] = "Wasserboiler";
//  $HM[0]["Interface"] = "BidCos-RF";
//  $HM[0]["Seriennummer"] = "OEQ1150699:1";
//  $HM[0]["Datenpunkt"] = "STATE";
//  $HM[1]["Variable"] = "Heizluefter";
//  $HM[1]["Interface"] = "BidCos-RF";
//  $HM[1]["Seriennummer"] = "OEQ1399311:1";
//  $HM[1]["Datenpunkt"] = "STATE";
//  $HM[2]["Variable"] = "...";
//  $HM[2]["Interface"] = "...";
//  $HM[2]["Seriennummer"] = "...";
//  $HM[2]["Datenpunkt"] = "POWER";
//  $HM[3]["Variable"] = "Anwesenheit";
//  $HM[3]["Systemvariable"] = "Anwesenheit";
//  usw.
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  XML API    XML API        XML API    XML API        XML API    XML API
//  Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2
//  ****************************************************************************
//  Ab Kapitel 7                AB Kapitel 7              AB Kapitel 7
//  Möchte man die variablen Daten eines an die Homematic angeschlossenen
//  Gerätes auslesen, wie z.B. ein Heizkörperventil, dann müssen hier die Daten
//  der angeschlossenen Geräte angegeben werden. Nähere Einzelheiten bitte im
//  Dokument Homematic_Anbindung.pdf ab Kapitel 7 lesen.
//
*******************************************************************************/
//
// $Homematic_Token = "xxxxxxxxxxxx";    // XML-API CCU Addon Version 2.x
//
/*******************************************************************************
//
//  Beispiel:
//  ---------
//  HM_Geraet 1
//  $HM_Geraetetyp[1] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[1] = "OEQ2419985";    // Wohnzimmer
//
//  HM_Geraet 2
//  $HM_Geraetetyp[2] = "HmIP-eTRV-B";     // Heizungsthermostat
//  $HM_Seriennummer[2] = "00201D89A8A446";// Badezimmer
//
//  HM_Geraet 3
//  $HM_Geraetetyp[3] = "HmIP-STHD";       // Wandthermostat
//  $HM_Seriennummer[3] = "000E9BE9967967";// Badezimmer
//
//  HM_Geraet 4
//  $HM_Geraetetyp[4] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[4] = "OEQ2421488";    // Küche
//
//  HM_Systemvariable 1
//  $HM_Systemvariable[1] = "Test";        // Variable 1
//  $HM_Systemvariable[2] = "DutyCycle";   // Variable 2
*******************************************************************************/
//
//  HM_Geraet 1
$HM_Geraetetyp[1] = "";      // Typenbezeichnung
$HM_Seriennummer[1] = "";    // Seriennummer
//
//
/******************************************************************************
//  MQTT Protokoll     MQTT Protokoll      MQTT Protokoll      MQTT Protokoll
//  Senden und / oder Empfangen
******************************************************************************/
//  Sollen alle ausgelesenen Daten mit dem MQTT Protokoll an einen
//  MQTT-Broker gesendet werden oder MQTT Daten empfangen werden?
//  Bitte das Solaranzeige-MQTT PDF Dokument lesen
$MQTT = true;
//
//
/******************************************************************************/
//  MQTT Daten senden     MQTT Daten senden     MQTT Daten senden     MQTT Daten
//  Wenn Daten mit dem MQTT Protokoll versendet werden sollen.
//
//  Wo ist der MQTT-Broker zu finden?
//  Entweder "localhost", eine Domain oder IP Adresse "xxx.xxx.xxx.xxx" eintragen.
//  broker.hivemq.com ist ein Test Broker   Siehe http://www.mqtt-dashboard.com/
$MQTTBroker = "localhost";
//
//  Benutzter Port des Brokers. Normal ist 1883  mit SSL 8883
$MQTTPort = 1883;
//
//  Falls der Broker gesichert ist. Sonst bitte leer lassen.
$MQTTBenutzer = "";
$MQTTKennwort = "";
//
//  Wenn man die Daten mit SSL Verschlüsselung versenden möchte.
//  Wenn hier true steht, muss im Verzeichnis "/var/www/html/" die "cerfile"
//  'ca.crt' vorhanden sein. Nähere Einzelheiten über diese Datei findet
//  man im Internet in der Mosquitto Dokumentation.
$MQTTSSL = false;
//
//  Timeout der Übertragung zum Broker. Normal = 10 bis 60 Sekunden
$MQTTKeepAlive = 60;
//
//  Topic Name oder Nummer des Gerätes solaranzeige/1
//  oder solaranzeige/box1                     (solaranzeige ist fest vorgegeben.)
//  Man kann das Gerät nennen wie man will, nur jedes Gerät, welches Daten
//  senden soll unterschiedlich. Entwerder 1 bis 6 oder Namen Ihrer Wahl vergeben.
$MQTTGeraet = "33";
//
//  Welche Daten sollen als MQTT Message übertragen werden? Wenn hier nichts
//  aufgeführt ist, werden alle ausgelesenen Daten übertragen.
//  Bitte darauf achten, dass keine Leerstellen zwischen den Variablen sind.
//  Die einzelnen Variablen müssen mit einem Komma getrennt und klein geschrieben
//  werden. Zusätzlich müssen sie den Eintrag vom $MQTTGeraet und ein Schrägstrich
//  enthalten. Das ist nötig, da mehrere Geräte an dem Raspberry hängen können.
//  Beispiel mit obigen MQTTGeraet:
//  $MQTTAuswahl = "1/ladestatus,1/solarspannung,1/solarstrom"
//  Werden hier Variablen eingetragen, dann werden auch nur diese Topics
//  übertragen.
$MQTTAuswahl = "";
//
//
/******************************************************************************
//  MQTT Empfang       MQTT Empfang       MQTT Empfang       MQTT Empfang
//  Subscribing    Subscribing    Subscribing    Subscribing    Subscribing
******************************************************************************/
//  Welche Daten sollen empfangen werden. Hier können die Topics, die
//  empfangen werden sollen aufgeführt werden. Dabei gibt es 2 Möglichkeiten
//  Entweder ein einzelner Wert oder eine Reihe von Werten.
//  Wichtig! Das basis Topics ist immer solaranzeige. Dann muss entweder befehl
//  oder anzeige kommen, dann die Gerätenummer und dann die Bezeichnung des
//  Wertes. Die Gerätenummer ist immer 1, außer bei Multi-Regler-Versionen.
//  Beispiel:  solaranzeige/anzeige/1/PV-Spannung
//  In diesem Beispiel wird der Wert der PV-Spannung in die Influx Datenbank
//  geschrieben unter dem Measurement MQTT
//  oder
//  Beispiel:  solaranzeige/befehl/1/POP  mit Wert 00
//  Der Befehl POP00 wird zum Wechselrichter geschickt. Er wird jedoch nur
//  ausgeführt wenn es sich um einen erlaubten Befehl handelt, der in der
//  Datei "befehle.ini.php" enthalten ist.
//
//  Beispiele:
//  $MQTTTopic[1] = "solaranzeige/befehl/1/POP";
//  $MQTTTopic[2] = "solaranzeige/befehl/1/PCP";
//  $MQTTTopic[3] = "solaranzeige/anzeige/1/Wasserboiler";
//
//  Oder auch
//  $MQTTTopic[1] = "solaranzeige/befehl/1/#";
//  Es können so viele Topics wie benötigt aufgeführt werden. Sie müssen nur
//  durch nummeriert werden [1] bis [n]
//  Bei Multi-Regler-Versionen muss zusätzlich noch die Gerätenummer angegeben
//  werden. Weitere Informationen finden Sie auf dem Support Forum.
//  Achtung! Damit der Empfang auch funktioniert muss $MQTT = true;
//  etwas weiter oben stehen!
$MQTTTopic[1] = "solaranzeige/befehl/33/#";
//
//
/******************************************************************************
//  SONOFF Geräte mit Tasmota Firmware       SONOFF Geräte mit Tasmota Firmware
//  POW R2 / TH10 R2 oder TH16 R2  oder GOSUND SP1xx
******************************************************************************/
//  Bitte den Topic-Namen, der in der TASMOTA Firmware angegeben ist, hier
//  eintragen. Unbedingt auf Groß- und Keinschreibung achten! Der Name kann
//  frei gewählt werden, er muss nur im Gerät und hier gleich sein. Werden
//  mehrere Sonoff Geräte mit der Solaranzeige betrieben, muss jedes einzelne
//  Gerät einen anderen Topic-Namen benutzen!
$Topic = "sonoff";
//
//
/******************************************************************************
//  WETTERDATEN     WETTERDATEN    WETTERDATEN    WETTERDATEN    WETTERDATEN
******************************************************************************/
//  Die Wetterdaten werden vom Server openweathermap.org geholt, da von dort
//  die Informationen kostenlos sind.
//  Man muss sich jedoch auf dem Server anmelden, um eine APP ID zu bekommen.
//
//  Bei einer Multi-Regler-Version nur in der 1.user.config.php aktivieren!
//  Sollen die aktuellen Wetterdaten geholt und abgespeichert werden?
//  Dadurch wird mehr Traffic generiert. Die Daten stehen dann in der Influx
//  Datenbank "aktuellesWetter" unter dem Measurement "Wetter" zur Verfügung.
//  Sie werden alle 30 Minuten aktualisiert
//  true oder false
$Wetterdaten = false;
//
//  Die Application ID bekommt man, wenn man sich auf dem Server
//  www.openweathermap.org registriert. Sie hat 32 Stellen und muss hier
//  eingetragen werden. Beispiel: "57b78415a343540e3a4e4f72751c90f9"
$APPID = "";
//
//  Der Standort wird mit einer StandortID angegeben. Wie die StandortID
//  ermittelt wird, bitte im Support Forum nachlesen. Man kann eine Liste
//  aller Standort ID's Weltweit hier herunterladen:
//  http://bulk.openweathermap.org/sample/city.list.json.gz
//  Default = "2925533" Frankfurt am Main oder die ID Ihres Standortes.
$StandortID = "2925533";
//
//
/******************************************************************************
//  PROGNOSEDATEN     PROGNOSEDATEN    PROGNOSEDATEN    PROGNOSEDATEN
******************************************************************************/
//  Die Wetterprognosedaten werden vom Server www.solarprognose.de geholt.
//  Teilweise sind die Daten dort kostenlos. [ www.solarprognose.de ]
//  Man muss sich jedoch auf dem Server anmelden, um eine Prognose ID zu bekommen.
//
//  Sollen die aktuellen Prognosedaten geholt und abgespeichert werden?
//  Die Daten stehen dann in der Influx Datenbank "solaranzeige" unter dem
//  Measurement "Wetterprognose" zur Verfügung. Sie werden pro Stunde einmal
//  aktualisiert.
//  Möchte man seinen eigenen Prognose Script nutzen, dann bitte hier User eingeben.
//  In diesem Fall wird alle 30 Minuten der Script "prognose.php" aufgerufen.
//  Dort müssen die Funktionen hinterlegt sein.
//  keine, API, User, beide
$Prognosedaten = "keine";              //  "keine" , "API" , "User" , "beide"
//
//  Wenn API eingetragen wird, dann folgende 3 Variablen füllen:
$AccessToken = "";                     // Bekommt man bei www.solarprognose.de
$PrognoseItem = "inverter";            // plant, inverter
$PrognoseID = "0";                     // Anlagen ID oder Wechselrichter ID
$Algorithmus = "";                     // kann leer bleiben oder
//                                     // mosmix | own-v1 | clearsky
//
/******************************************************************************
//  MESSENGER   MELDUNGEN        MESSENGER   MELDUNGEN        MESSENGER
******************************************************************************/
//  Es können Fehlermeldungen, Ereignisse oder Statistiken mit einem
//  Messenger übertragen werden. Dazu bitte Messenger = true eintragen
//  Genaue Informationen stehen im Dokument "Messenger_Nachrichten.pdf"
//
//  true / false
$Messenger = false;
//
//  Welcher Messengerdienst soll benutzt werden?
//  Pushover / Signal / WhatsApp
$Messengerdienst[1] = "Pushover";   //  Pushover, Signal oder WhatsApp
//  Die Solaranzeige müssen Sie bei Pushover / Signal oder WhatsApp
//  registrieren und einen API Token holen.
//  Wie das geht, steht in dem Dokument "Messenger_Nachrichten" auf dem
//  Support Server
//  Pushover Beispiel $API_Token = "amk4be851bcegnirhu1b71u6ou7uoh";
//  Signal Beispiel $API_Token = "999999";
$API_Token[1] = " ";
//
//  Der User_Key ist die Messeger Empfänger Adresse. Bei Pushover können bis zu
//  9 Empfänger angegeben werden. $User_Key[1]  bis  $User_Key[9]
//  Am Ende jeder Zeile das Semikolon nicht vergessen!
//  Pushover Beispiel: $User_Key[1] = "ub6c3wmw4a3idwk9b5ajgfs5a7aypt";
//  Siehe Dokument "Nachrichten_senden.pdf"
//  Bei WhatsApp und Signal kann nur ein Empfänger angegeben werden, da der Token
//  zur Rufnummer passen muss.
//  Signal Beispiel: $User_Key[1] = "+491769000000";
$User_Key[1] = "";
//
//  ------------------------------------------------------------------------
//  Und jetzt eventuell für weitere Personen:
//
//  $Messengerdienst[2] = "";     // Pushover, WhatsApp oder Signal
//  $API_Token[2] = "";
//  $User_Key[2] = "";
//
//  $Messengerdienst[3] = "";     / Pushover, WhatsApp oder Signal
//  $API_Token[3] = "";
//  $User_Key[3] = "";
//
//*****************************************************************************
//  Sonnen Auf und Untergang:
//  Standort für Frankfurt. Wer es etwas genauer haben möchte, hier den eigenen
//  Standort eintragen. Bitte als Dezimalzahl wie hier vorgegeben!
$Breitengrad = 50.1143999;
$Laengengrad = 8.6585178;
//
//
/******************************************************************************
//  aWATTar Börsenpreise      aWATTar Börsenpreise      aWATTar Börsenpreise.
//
//  Sollen die aktuellen Strom Börsenpreise in die oben angegebene locale.
//  Datenbank in das Measurement "awattarPreise" geschrieben werden?
******************************************************************************/
//
$aWATTar = false;
//
$Aufschlag = "0";       // Z.B.  "20,6"        Preis des Aufschlages in Cent
//
$aWATTarLand = "DE";     // "DE" = Deutschland   "AT" = Österreich
/******************************************************************************
//  ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!
//
//  Alles ab hier nicht ändern! Nur auf Anweisung. Änderungen hier können
//  das System zum Absturz bringen.
/******************************************************************************
//  USB Device      USB Device      USB Device      USB Device      USB Device
******************************************************************************/
//
//  USB Device, die automatisch erkannt wurde...  bitte nicht ändern
//  Wird nicht bei der Multi-Regler-Version benötigt.
//
$USBRegler         = "/dev/ttyBMS3";
//
//  Nur wenn die automatischer Erkennung nicht funktioniert hat, bitte manuell
//  eintragen. Im Normalfall wird das nicht benötigt. So lassen wie es ist.
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Multi-Regler-Version muss hier der Devicename manuell
//  eingetragen werden.
//
$USBDevice = "/dev/ttyBMS3";
//
//  Wird nur in seltenen Fällen gebraucht.
$SerielleGeschwindigkeit = "115200";
/*****************************************************************************/
//
/******************************************************************************
//  Raspberry Pi   Hardware   Raspberry Pi   Hardware   Raspberry Pi   Hardware
******************************************************************************/
// Bitte nicht ändern, wird automatisch ermittelt.
//
$Platine = "Raspberry Pi 3 Model B Rev 1.2";
//
/******************************************************************************
//  PHP Error Reporting        PHP Error Reporting        PHP Error Reporting
//  Bei ungeklärten Problemen hier einschalten. Normal = ausgeschaltet
******************************************************************************/
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_STRICT);
//
/******************************************************************************
//  Hier können zusätzliche Parameter, je nach Bedarf und Beschreibung
//  eingetragen werden.
******************************************************************************/
//  Ist für die neue Datenbankstruktur des Alpha ESS Wechselrichters
//  [ 0 / 1 ]  Mit 0 wird die alte Struktur eingeschaltet.
$Alpha_ESS = 0;
//
//  Nur bei WS100 Zählern anwendbar. "einfach" wenn jedes Gerät seinen
//  eigene Datenbank haben soll. "mehrfach" wenn alle WS100 Zähler die Daten
//  in eine Datenbank speichern sollen. Dann muss in jeder user.config.php
//  auch die gleiche Datenbank angegeben sein.
//  $WS100DB = "mehrfach";
//
// ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE
6.user:

Code: Alles auswählen

//  ---------------------------------------------------------------------------
//
$Regler = "104";
//
/******************************************************************************
//  Raspberry Gerätenummer   Raspberry Gerätenummer   Raspberry Gerätenummer
//  Falls mehr als ein Gerät pro Raspberry betrieben wird.
//  Es ist die Reihenfolge der Geräte und taucht auch in der Nummerierung
//  der  x.user.config.php Dateien auf
******************************************************************************/
//  GeräteID bzw. GeräteNummer Muss gleich mit der x.user.config.php sein.
//  Bitte nur bei einer Multi-Regler-Version ändern.  [ 1 bis 6 ]
$GeraeteNummer = "6";
//
//  Bei einem Micro Wechselrichter von AEconversion oder LiCom Box von Effekta
//  und anderen Geräten, die für den Zugang eine Seriennummer benötigen.
//  --------------------------------------------------------------------------
//  Z.B. Typ INV250-45 oder INV500-60 oder LiCom Box von Effekta
//  Steht auf dem Gerät! Ist 10 stellig. Serial-No. 0607600...
//  Bitte alle 10 Stellen hier eintragen.
//  Bei der AX LiCom Box von Effekta sind es 14 Stellen.
//  Bei den neuen AEconversion Geräten den Bootcode hier eintragen.
$Seriennummer = "0000000000";                 // Regler = "5"
//  Wird nur in seltenen Fällen gebraucht.
$Zugang_Kennwort = "";                        // wird zur Zeit nicht benutzt
//  Falls ein WLAN HF2211 serial   Gateway benutzt wird true eingeben
$HF2211 = false;
//
//  Nur bei PylonTech BMS US3000..       ($Regler = "41" )
//  und den neuen US2000C aus dem Jahr 2019 und später
//  Anzahl der vorhandenen Batteriepacks und Modell 2000 / 3000
//  -------------------------------------------------------------------
$Batteriepacks = "1"; //                 Regler = "41" + "91" und Andere.
$PylonTech = "2000";  //                 Regler = "41"
//
//
//  Ethernet Kabelverbindung:          Local Area Network  (LAN)
//  Alle Geräte, die über das LAN angesprochen und ausgelesen werden,
//  oder ein Serial Device Server, wie z.B. der HF2211 oder der Elfin-EW11,
//  dazwischen geschaltet haben, bitte hier IP und Port eintragen und
//  falls erforderlich die Device ID. (Geräteadresse = WR_Adresse)
//  Die Geräte Adresse wird auch manchmal bei RS485 Verbindungen benutzt.
//  -------------------------------------------------------------------
//  Bitte die Daten aus dem Gerät übernehmen
//
$WR_IP = "0.0.0.0";  //  Keine führenden Nullen!  67.xx Ja!, 067.xx Nein!
$WR_Port = "12345";
$WR_Adresse = "4";   //  Achtung Adresse als Dezimalzahl eingeben / 1 bis 256
//                       Maximal "256" = Hex FF
/*****************************************************************************/
//
//
//  Bezeichnung des Objektes. Freie Wahl, maximal 15 Buchstaben.
$Objekt = "JKBMS4";
//
//
/******************************************************************************
//  InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB     InfluxDB
//  ***************************************************************************
//  Die Daten können jede Minute oder öfter an eine InfluxDB Datenbank
//  übertragen werden. Die Datenbank muss nur über das Netzwerk erreichbar
//  sein. Sie kann sich im lokalen Netz, im Intenet oder aber auch auf diesem
//  Raspberry befinden. Bitte lesen Sie auch das Dokument
//  "Solaranzeige + InfluxDB" welches Sie auf unserem Support Server finden.
******************************************************************************/
//  Sollen die Daten in die lokale Influx Datenbank geschrieben werden?
//  Für die lokale Datenbank sind keine weiteren Angaben nötig.
//  true oder false
$InfluxDB_local = true;
//
//  Name der lokalen Datenbank. Bitte nicht ändern, sonst funktionieren die
//  Standard Dashboards nicht!
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Muti-Regler-Version müssen hier unterschiedliche lokale
//  Datenbanknamen eingetragen werden. Mit gleichem Namen müssen die Datenbanken
//  in der InfluxDB angelegt werden. Siehe Dokument:
//  "Multi-Regler-Version Installation"
$InfluxDBLokal  = "jkbms4";
//
//  Wie oft pro Minute sollen die Daten ausgelesen und zur InfluxDB
//  übertragen werden?
//  Gültige Werte sind 1 bis 6 (6 = alle 10 Sekunden)
//  Bei einer zusätzlichen entfernten Datenbank kann das zu erheblichen
//  Traffic führen! Dieses gilt nur für die Single-Geräte-Version!
//  Wie es bei der Multi-Regler-Version funktioniert bitte in dem
//  entsprechenden Dokument nachlesen.
//  Default ist 1 (Ein mal pro Minute)
$Wiederholungen = 1;
//
/****************************************************************************/
//  ENTFERNTE INFLUX DATENBANK:
//  ---------------------------
//  Ist eine entfernte InfluxDB vorhanden und sollen dorthin auch die Daten
//  übertragen werden?
//  true oder false
$InfluxDB_remote = false;
//
//  Port an den die Daten geschickt werden. Normal ist Port 8086
$InfluxPort = 8086;
//
//  Name der entfernten Datenbank eintragen
//  Beispiel:  "solaranzeige" oder "MeineDatenbank"
$InfluxDBName  = "solaranzeige";
//
//  Adresse der Datenbank
//  Entweder die IP Adresse "xxx.xxx.xxx.xxx" oder den Hostnamen oder "localhost"
//  eintragen.
//  Beispiel:  "db.solaranzeige.de" oder "34.101.3.20"
$InfluxAdresse = "";
//
//  Wenn man mit UserID und Kennwort die Daten übertragen möchte, sollte man
//  auf jeden Fall auch die SSL Verschlüsselung einschalten. Dazu muss die
//  Influx Datenbank aber erst auf https eingerichtet werden.
$InfluxSSL = false;
//
//  Wenn die entfernte Datenbank mit UserID und Kennwort geschützt ist.
//  Wenn nicht, bitte leer lassen.
$InfluxUser = "";
$InfluxPassword ="";
//
//  Sollen die Daten nur bei Tageslicht an eine remote Datenbank gesendet werden?
//  Das reduziert den Traffic bei teuren Leitungen. Das betrifft nur die Remote
//  Datenbank falls konfiguriert.
//  true / false     ( false = die Daten werden rund um die Uhr gesendet. )
$InfluxDaylight = false;
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1    Teil 1
//  ****************************************************************************
//  Anbindung an eine vorhandene HomeMatic Zentrale
//  Für die genaue Einrichtung bitte das PDF Dokument "Homematic_Anschluss.pdf" lesen.
//  Es befindet sich auf unserem Support Server im Bereich "Verschiedene PDF Dokumente"
//  Kapitel 1 bis 7                Kapitel 1 bis 7              Kapitel 1 bis 7
********************************************************************************/
//  Sollen die Daten an eine vorhandene Homematic Zentrale gesendet werden?
//  Diese Werte kann dann die Zentrale dann verarbeiten.
//  Ein Beispiel: Folgende Werte werden übertragen:
//  * Ladestatus 0 = Keine Ladung, 2 = Fehler, 3 = Ladung (bulk); 4 = Nachladung (absorbtion),
//               5 = Erhaltungsladung (float)
//  * Ladestatus als Textzeile (Keine_Ladung, Normale_Ladung, Nachladung, Erhaltungsladung, Fehler)
//  * Batteriespannung in Volt
//  * Erzeugte Leistung am Tage in kWh
//  * Aktuell erzeugte Solar-Leistung
//  * Batteriestatus in % (Wie voll ist die Batterie?) Nicht bei allen Geräten!
//
//  true / false
$Homematic = false;
//
//  Welche IP Adresse hat Ihre Homematic Zentrale? Sie muss sich im selben
//  Netzwerk wie der Raspberry Pi befinden. Beispiel: 192.168.33.200
$Homematic_IP = "xxx.xxx.xxx.xxx";
//
//  Hier die Variablen eintragen, die zur HomeMatic Zentrale übermittelt werden
//  sollen. Siehe Dokument "HomeMatic_Anbindung.pdf"
//  Beispiel: "BatterieLadestatus,BatteriestatusText,Batteriespannung,Solarleistung,SolarleistungTag,Solarspannung";
$HomeMaticVar = "";
//
//  Den Status einzelner Geräte aus der HomeMatic Zentrale auslesen und in die
//  Influx Datenbank schreiben, damit man den Status im Dashboard anzeigen kann.
//  Nähere Einzelheiten stehen im Dokument "HomeMatic Anbindung"
$HM_auslesen = false;
//
//  Für jedes Gerät, dessen Status ausgelesen werden soll, müssen 4 Variablen
//  angegeben werden.
//  $HM[0]["Variable"] =       Kann man nennen wie man will, steht dann so in der Influx Datenbank.
//  $HM[0]["Interface"] =      Steht in der HomeMatic, bitte übernehmen
//  $HM[0]["Seriennummer"] =   Steht auch in der HomeMatic
//  $HM[0]["Datenpunkt"] =     STATE, POWER, ACTUAL_TEMPERATURE usw. Siehe HomeMatic
//
//  Für jede Systemvariable müssen 2 Variablen angegeben werden:
//  $HM[0]["Variable"] =        Kann man nennen wie man will. Steht dann so in der Influx Datenbank
//  $HM[0]["Systemvariable"] =  Name der Systemvariable in der HomeMatic
//  -----------------------------------------------------------------------
//
//  Beispiele:  ( Die zwei Schrägstich bei Aktivierung bitte entfernen. )
//  $HM[0]["Variable"] = "Wasserboiler";
//  $HM[0]["Interface"] = "BidCos-RF";
//  $HM[0]["Seriennummer"] = "OEQ1150699:1";
//  $HM[0]["Datenpunkt"] = "STATE";
//  $HM[1]["Variable"] = "Heizluefter";
//  $HM[1]["Interface"] = "BidCos-RF";
//  $HM[1]["Seriennummer"] = "OEQ1399311:1";
//  $HM[1]["Datenpunkt"] = "STATE";
//  $HM[2]["Variable"] = "...";
//  $HM[2]["Interface"] = "...";
//  $HM[2]["Seriennummer"] = "...";
//  $HM[2]["Datenpunkt"] = "POWER";
//  $HM[3]["Variable"] = "Anwesenheit";
//  $HM[3]["Systemvariable"] = "Anwesenheit";
//  usw.
//
//
//
/*******************************************************************************
//  HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG      HOMEMATIC  ANBINDUNG
//  XML API    XML API        XML API    XML API        XML API    XML API
//  Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2    Teil 2
//  ****************************************************************************
//  Ab Kapitel 7                AB Kapitel 7              AB Kapitel 7
//  Möchte man die variablen Daten eines an die Homematic angeschlossenen
//  Gerätes auslesen, wie z.B. ein Heizkörperventil, dann müssen hier die Daten
//  der angeschlossenen Geräte angegeben werden. Nähere Einzelheiten bitte im
//  Dokument Homematic_Anbindung.pdf ab Kapitel 7 lesen.
//
*******************************************************************************/
//
// $Homematic_Token = "xxxxxxxxxxxx";    // XML-API CCU Addon Version 2.x
//
/*******************************************************************************
//
//  Beispiel:
//  ---------
//  HM_Geraet 1
//  $HM_Geraetetyp[1] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[1] = "OEQ2419985";    // Wohnzimmer
//
//  HM_Geraet 2
//  $HM_Geraetetyp[2] = "HmIP-eTRV-B";     // Heizungsthermostat
//  $HM_Seriennummer[2] = "00201D89A8A446";// Badezimmer
//
//  HM_Geraet 3
//  $HM_Geraetetyp[3] = "HmIP-STHD";       // Wandthermostat
//  $HM_Seriennummer[3] = "000E9BE9967967";// Badezimmer
//
//  HM_Geraet 4
//  $HM_Geraetetyp[4] = "HM-CC-RT-DN";     // Heizungsthermostat
//  $HM_Seriennummer[4] = "OEQ2421488";    // Küche
//
//  HM_Systemvariable 1
//  $HM_Systemvariable[1] = "Test";        // Variable 1
//  $HM_Systemvariable[2] = "DutyCycle";   // Variable 2
*******************************************************************************/
//
//  HM_Geraet 1
$HM_Geraetetyp[1] = "";      // Typenbezeichnung
$HM_Seriennummer[1] = "";    // Seriennummer
//
//
/******************************************************************************
//  MQTT Protokoll     MQTT Protokoll      MQTT Protokoll      MQTT Protokoll
//  Senden und / oder Empfangen
******************************************************************************/
//  Sollen alle ausgelesenen Daten mit dem MQTT Protokoll an einen
//  MQTT-Broker gesendet werden oder MQTT Daten empfangen werden?
//  Bitte das Solaranzeige-MQTT PDF Dokument lesen
$MQTT = true;
//
//
/******************************************************************************/
//  MQTT Daten senden     MQTT Daten senden     MQTT Daten senden     MQTT Daten
//  Wenn Daten mit dem MQTT Protokoll versendet werden sollen.
//
//  Wo ist der MQTT-Broker zu finden?
//  Entweder "localhost", eine Domain oder IP Adresse "xxx.xxx.xxx.xxx" eintragen.
//  broker.hivemq.com ist ein Test Broker   Siehe http://www.mqtt-dashboard.com/
$MQTTBroker = "localhost";
//
//  Benutzter Port des Brokers. Normal ist 1883  mit SSL 8883
$MQTTPort = 1883;
//
//  Falls der Broker gesichert ist. Sonst bitte leer lassen.
$MQTTBenutzer = "";
$MQTTKennwort = "";
//
//  Wenn man die Daten mit SSL Verschlüsselung versenden möchte.
//  Wenn hier true steht, muss im Verzeichnis "/var/www/html/" die "cerfile"
//  'ca.crt' vorhanden sein. Nähere Einzelheiten über diese Datei findet
//  man im Internet in der Mosquitto Dokumentation.
$MQTTSSL = false;
//
//  Timeout der Übertragung zum Broker. Normal = 10 bis 60 Sekunden
$MQTTKeepAlive = 60;
//
//  Topic Name oder Nummer des Gerätes solaranzeige/1
//  oder solaranzeige/box1                     (solaranzeige ist fest vorgegeben.)
//  Man kann das Gerät nennen wie man will, nur jedes Gerät, welches Daten
//  senden soll unterschiedlich. Entwerder 1 bis 6 oder Namen Ihrer Wahl vergeben.
$MQTTGeraet = "44";
//
//  Welche Daten sollen als MQTT Message übertragen werden? Wenn hier nichts
//  aufgeführt ist, werden alle ausgelesenen Daten übertragen.
//  Bitte darauf achten, dass keine Leerstellen zwischen den Variablen sind.
//  Die einzelnen Variablen müssen mit einem Komma getrennt und klein geschrieben
//  werden. Zusätzlich müssen sie den Eintrag vom $MQTTGeraet und ein Schrägstrich
//  enthalten. Das ist nötig, da mehrere Geräte an dem Raspberry hängen können.
//  Beispiel mit obigen MQTTGeraet:
//  $MQTTAuswahl = "1/ladestatus,1/solarspannung,1/solarstrom"
//  Werden hier Variablen eingetragen, dann werden auch nur diese Topics
//  übertragen.
$MQTTAuswahl = "";
//
//
/******************************************************************************
//  MQTT Empfang       MQTT Empfang       MQTT Empfang       MQTT Empfang
//  Subscribing    Subscribing    Subscribing    Subscribing    Subscribing
******************************************************************************/
//  Welche Daten sollen empfangen werden. Hier können die Topics, die
//  empfangen werden sollen aufgeführt werden. Dabei gibt es 2 Möglichkeiten
//  Entweder ein einzelner Wert oder eine Reihe von Werten.
//  Wichtig! Das basis Topics ist immer solaranzeige. Dann muss entweder befehl
//  oder anzeige kommen, dann die Gerätenummer und dann die Bezeichnung des
//  Wertes. Die Gerätenummer ist immer 1, außer bei Multi-Regler-Versionen.
//  Beispiel:  solaranzeige/anzeige/1/PV-Spannung
//  In diesem Beispiel wird der Wert der PV-Spannung in die Influx Datenbank
//  geschrieben unter dem Measurement MQTT
//  oder
//  Beispiel:  solaranzeige/befehl/1/POP  mit Wert 00
//  Der Befehl POP00 wird zum Wechselrichter geschickt. Er wird jedoch nur
//  ausgeführt wenn es sich um einen erlaubten Befehl handelt, der in der
//  Datei "befehle.ini.php" enthalten ist.
//
//  Beispiele:
//  $MQTTTopic[1] = "solaranzeige/befehl/1/POP";
//  $MQTTTopic[2] = "solaranzeige/befehl/1/PCP";
//  $MQTTTopic[3] = "solaranzeige/anzeige/1/Wasserboiler";
//
//  Oder auch
//  $MQTTTopic[1] = "solaranzeige/befehl/1/#";
//  Es können so viele Topics wie benötigt aufgeführt werden. Sie müssen nur
//  durch nummeriert werden [1] bis [n]
//  Bei Multi-Regler-Versionen muss zusätzlich noch die Gerätenummer angegeben
//  werden. Weitere Informationen finden Sie auf dem Support Forum.
//  Achtung! Damit der Empfang auch funktioniert muss $MQTT = true;
//  etwas weiter oben stehen!
$MQTTTopic[1] = "solaranzeige/befehl/44/#";
//
//
/******************************************************************************
//  SONOFF Geräte mit Tasmota Firmware       SONOFF Geräte mit Tasmota Firmware
//  POW R2 / TH10 R2 oder TH16 R2  oder GOSUND SP1xx
******************************************************************************/
//  Bitte den Topic-Namen, der in der TASMOTA Firmware angegeben ist, hier
//  eintragen. Unbedingt auf Groß- und Keinschreibung achten! Der Name kann
//  frei gewählt werden, er muss nur im Gerät und hier gleich sein. Werden
//  mehrere Sonoff Geräte mit der Solaranzeige betrieben, muss jedes einzelne
//  Gerät einen anderen Topic-Namen benutzen!
$Topic = "sonoff";
//
//
/******************************************************************************
//  WETTERDATEN     WETTERDATEN    WETTERDATEN    WETTERDATEN    WETTERDATEN
******************************************************************************/
//  Die Wetterdaten werden vom Server openweathermap.org geholt, da von dort
//  die Informationen kostenlos sind.
//  Man muss sich jedoch auf dem Server anmelden, um eine APP ID zu bekommen.
//
//  Bei einer Multi-Regler-Version nur in der 1.user.config.php aktivieren!
//  Sollen die aktuellen Wetterdaten geholt und abgespeichert werden?
//  Dadurch wird mehr Traffic generiert. Die Daten stehen dann in der Influx
//  Datenbank "aktuellesWetter" unter dem Measurement "Wetter" zur Verfügung.
//  Sie werden alle 30 Minuten aktualisiert
//  true oder false
$Wetterdaten = false;
//
//  Die Application ID bekommt man, wenn man sich auf dem Server
//  www.openweathermap.org registriert. Sie hat 32 Stellen und muss hier
//  eingetragen werden. Beispiel: "57b78415a343540e3a4e4f72751c90f9"
$APPID = "";
//
//  Der Standort wird mit einer StandortID angegeben. Wie die StandortID
//  ermittelt wird, bitte im Support Forum nachlesen. Man kann eine Liste
//  aller Standort ID's Weltweit hier herunterladen:
//  http://bulk.openweathermap.org/sample/city.list.json.gz
//  Default = "2925533" Frankfurt am Main oder die ID Ihres Standortes.
$StandortID = "2925533";
//
//
/******************************************************************************
//  PROGNOSEDATEN     PROGNOSEDATEN    PROGNOSEDATEN    PROGNOSEDATEN
******************************************************************************/
//  Die Wetterprognosedaten werden vom Server www.solarprognose.de geholt.
//  Teilweise sind die Daten dort kostenlos. [ www.solarprognose.de ]
//  Man muss sich jedoch auf dem Server anmelden, um eine Prognose ID zu bekommen.
//
//  Sollen die aktuellen Prognosedaten geholt und abgespeichert werden?
//  Die Daten stehen dann in der Influx Datenbank "solaranzeige" unter dem
//  Measurement "Wetterprognose" zur Verfügung. Sie werden pro Stunde einmal
//  aktualisiert.
//  Möchte man seinen eigenen Prognose Script nutzen, dann bitte hier User eingeben.
//  In diesem Fall wird alle 30 Minuten der Script "prognose.php" aufgerufen.
//  Dort müssen die Funktionen hinterlegt sein.
//  keine, API, User, beide
$Prognosedaten = "keine";              //  "keine" , "API" , "User" , "beide"
//
//  Wenn API eingetragen wird, dann folgende 3 Variablen füllen:
$AccessToken = "";                     // Bekommt man bei www.solarprognose.de
$PrognoseItem = "inverter";            // plant, inverter
$PrognoseID = "0";                     // Anlagen ID oder Wechselrichter ID
$Algorithmus = "";                     // kann leer bleiben oder
//                                     // mosmix | own-v1 | clearsky
//
/******************************************************************************
//  MESSENGER   MELDUNGEN        MESSENGER   MELDUNGEN        MESSENGER
******************************************************************************/
//  Es können Fehlermeldungen, Ereignisse oder Statistiken mit einem
//  Messenger übertragen werden. Dazu bitte Messenger = true eintragen
//  Genaue Informationen stehen im Dokument "Messenger_Nachrichten.pdf"
//
//  true / false
$Messenger = false;
//
//  Welcher Messengerdienst soll benutzt werden?
//  Pushover / Signal / WhatsApp
$Messengerdienst[1] = "Pushover";   //  Pushover, Signal oder WhatsApp
//  Die Solaranzeige müssen Sie bei Pushover / Signal oder WhatsApp
//  registrieren und einen API Token holen.
//  Wie das geht, steht in dem Dokument "Messenger_Nachrichten" auf dem
//  Support Server
//  Pushover Beispiel $API_Token = "amk4be851bcegnirhu1b71u6ou7uoh";
//  Signal Beispiel $API_Token = "999999";
$API_Token[1] = " ";
//
//  Der User_Key ist die Messeger Empfänger Adresse. Bei Pushover können bis zu
//  9 Empfänger angegeben werden. $User_Key[1]  bis  $User_Key[9]
//  Am Ende jeder Zeile das Semikolon nicht vergessen!
//  Pushover Beispiel: $User_Key[1] = "ub6c3wmw4a3idwk9b5ajgfs5a7aypt";
//  Siehe Dokument "Nachrichten_senden.pdf"
//  Bei WhatsApp und Signal kann nur ein Empfänger angegeben werden, da der Token
//  zur Rufnummer passen muss.
//  Signal Beispiel: $User_Key[1] = "+491769000000";
$User_Key[1] = "";
//
//  ------------------------------------------------------------------------
//  Und jetzt eventuell für weitere Personen:
//
//  $Messengerdienst[2] = "";     // Pushover, WhatsApp oder Signal
//  $API_Token[2] = "";
//  $User_Key[2] = "";
//
//  $Messengerdienst[3] = "";     / Pushover, WhatsApp oder Signal
//  $API_Token[3] = "";
//  $User_Key[3] = "";
//
//*****************************************************************************
//  Sonnen Auf und Untergang:
//  Standort für Frankfurt. Wer es etwas genauer haben möchte, hier den eigenen
//  Standort eintragen. Bitte als Dezimalzahl wie hier vorgegeben!
$Breitengrad = 50.1143999;
$Laengengrad = 8.6585178;
//
//
/******************************************************************************
//  aWATTar Börsenpreise      aWATTar Börsenpreise      aWATTar Börsenpreise.
//
//  Sollen die aktuellen Strom Börsenpreise in die oben angegebene locale.
//  Datenbank in das Measurement "awattarPreise" geschrieben werden?
******************************************************************************/
//
$aWATTar = false;
//
$Aufschlag = "0";       // Z.B.  "20,6"        Preis des Aufschlages in Cent
//
$aWATTarLand = "DE";     // "DE" = Deutschland   "AT" = Österreich
/******************************************************************************
//  ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!   ACHTUNG!
//
//  Alles ab hier nicht ändern! Nur auf Anweisung. Änderungen hier können
//  das System zum Absturz bringen.
/******************************************************************************
//  USB Device      USB Device      USB Device      USB Device      USB Device
******************************************************************************/
//
//  USB Device, die automatisch erkannt wurde...  bitte nicht ändern
//  Wird nicht bei der Multi-Regler-Version benötigt.
//
$USBRegler         = "/dev/ttyBMS4";
//
//  Nur wenn die automatischer Erkennung nicht funktioniert hat, bitte manuell
//  eintragen. Im Normalfall wird das nicht benötigt. So lassen wie es ist.
//  ---  Nur bei Multi-Regler-Version  Nur bei Multi-Regler-Version  ----
//  Bei einer Multi-Regler-Version muss hier der Devicename manuell
//  eingetragen werden.
//
$USBDevice = "/dev/ttyBMS4";
//
//  Wird nur in seltenen Fällen gebraucht.
$SerielleGeschwindigkeit = "115200";
/*****************************************************************************/
//
/******************************************************************************
//  Raspberry Pi   Hardware   Raspberry Pi   Hardware   Raspberry Pi   Hardware
******************************************************************************/
// Bitte nicht ändern, wird automatisch ermittelt.
//
$Platine = "Raspberry Pi 3 Model B Rev 1.2";
//
/******************************************************************************
//  PHP Error Reporting        PHP Error Reporting        PHP Error Reporting
//  Bei ungeklärten Problemen hier einschalten. Normal = ausgeschaltet
******************************************************************************/
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_STRICT);
//
/******************************************************************************
//  Hier können zusätzliche Parameter, je nach Bedarf und Beschreibung
//  eingetragen werden.
******************************************************************************/
//  Ist für die neue Datenbankstruktur des Alpha ESS Wechselrichters
//  [ 0 / 1 ]  Mit 0 wird die alte Struktur eingeschaltet.
$Alpha_ESS = 0;
//
//  Nur bei WS100 Zählern anwendbar. "einfach" wenn jedes Gerät seinen
//  eigene Datenbank haben soll. "mehrfach" wenn alle WS100 Zähler die Daten
//  in eine Datenbank speichern sollen. Dann muss in jeder user.config.php
//  auch die gleiche Datenbank angegeben sein.
//  $WS100DB = "mehrfach";
//
// ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE ENDE

Benutzeravatar
Ulrich
Administrator
Beiträge: 6294
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: 4x JK BMS - 1x i.O. und 3x falsches protokoll?

Beitrag von Ulrich »

Bitte gebe doch einmal auf der Konsole folgendes ein:

stty -F /dev/ttyBMS1 raw speed 115200 cs8 -iexten -echo -echoe -echok -onlcr -hupcl ignbrk time 5

stty -F /dev/ttyBMS2 raw speed 115200 cs8 -iexten -echo -echoe -echok -onlcr -hupcl ignbrk time 5

stty -F /dev/ttyBMS3 raw speed 115200 cs8 -iexten -echo -echoe -echok -onlcr -hupcl ignbrk time 5

stty -F /dev/ttyBMS4 raw speed 115200 cs8 -iexten -echo -echoe -echok -onlcr -hupcl ignbrk time 5


nur um zu überprüfen, ob alle USB Devices auch wirklich richtig benannt sind.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Zurück zu „Allgemeines“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast