neuer Regler erstellt: Shelly UNI

Welche Geräter können mit dieser Anzeige benutzt werden?
Laderegler, Wallboxen, Batterie-Management-Systeme, WLAN Schalter mit Tasmota Firmware und Wechselrichter

Moderator: Ulrich

Antworten
Michael.Narr
Beiträge: 6
Registriert: So 12. Feb 2023, 15:28

neuer Regler erstellt: Shelly UNI

Beitrag von Michael.Narr »

Hallo zusammen,
ich habe einen Shelly UNI im Einsatz, den ich für die Ansteuerung einer Wärmepumpe und die Abfrage von Systemtemperaturen nutzen.
Der UNI an sich ist mit der Shelly Cloud im Einsatz. Ich möchte das jedoch in Solaranzeige abbilden.

Eine shelly_uni.php ist erstellt und die könnte auch funktionieren.
Die multi_regler_auslesen.php habe ich ergänzt.
Der Start des PI läuft ohne Fehler.

Das Problem ist zuerst die Gerätenummer des Shelly uni.
Mir war es nicht möglich eine Geräte über 87 zu verwenden. Der Teil, der den Fehler ins LOG schreibt, konnte ich nicht finden.
Zum Schluss habe ich das Gerät 86 in multi_regler_auslesen.php geändert.
Trotzdem wird in die InfluxDB nicht mit Daten gefüllt.

Frage: Wo - in welche Datei - kann eine neue, unbenutzte Reglernummer angelegt werden?
Michael

Kostal Plenticore 10, Shelly 3EM
geplant: Wallbox und DIY Akku

Benutzeravatar
Ulrich
Administrator
Beiträge: 5526
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 155 Mal
Danksagung erhalten: 884 Mal
Kontaktdaten:

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Ulrich »

So etwas ist vorgesehen und steht hier:
download/UserDevice.pdf
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Michael.Narr
Beiträge: 6
Registriert: So 12. Feb 2023, 15:28

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Michael.Narr »

Ich habe aus einer der shelly.php ein user_config.php erstellt.
Es werden keine Fehler im LOG ausgegeben.
Die user_config.php enthält am Anfang einen Schreibbefehl ins LOG. Der kommt nicht im LOG an.
Sind außerhalb der user_config.php und der x.user.config.php noch Einträge erforderlich?
Hat jemand ein Muster für user_config.php?

Code: Alles auswählen

26.02. 16:30:01    -Multi Regler Auslesen [Start].
26.02. 16:30:01    -Verarbeitung von: '1.user.config.php'   Regler: 17
26.02. 16:30:01 |----------------   Start  kostal_plenticore.php    --------------- 
26.02. 16:30:01    -Kostal: 192.168.178.6 Port: 1502 GeräteID: 1
26.02. 16:30:02    -Alle 10 Minuten werden die Statistikdaten übertragen.
26.02. 16:30:02 *  -Daten zur lokalen InfluxDB [ kostalplenticore ] gesendet. 
26.02. 16:30:02    -Multi-Regler-Ausgang. 7
26.02. 16:30:09    -OK. Datenübertragung erfolgreich.
26.02. 16:30:09 |----------------   Stop   kostal_plenticore.php    --------------- 
26.02. 16:30:09    -Verarbeitung von: '2.user.config.php'   Regler: 31
26.02. 16:30:09 |--------------------   Start  shelly.php    ------------------ 
26.02. 16:30:09    -Shelly Typ: SHEM-3
26.02. 16:30:09    -Gesamtleistung: -247.12 Watt
26.02. 16:30:09    -Alle 10 Minuten werden die Statistikdaten übertragen.
26.02. 16:30:09 *  -Daten zur lokalen InfluxDB [ shelly3em ] gesendet. 
26.02. 16:30:09    -Multi-Regler-Ausgang. 7
26.02. 16:30:16    -OK. Datenübertragung erfolgreich.
26.02. 16:30:16    -WattstundenGesamtHeute: -8055.58
26.02. 16:30:16 |--------------------   Stop   shelly.php    ------------------ 
26.02. 16:30:17    -Verarbeitung von: '3.user.config.php'   Regler: 1000
26.02. 16:30:17    -Datei 'user_device.php' gefunden.
26.02. 16:31:01    -Multi Regler Auslesen [Start].
Michael

Kostal Plenticore 10, Shelly 3EM
geplant: Wallbox und DIY Akku

Michael.Narr
Beiträge: 6
Registriert: So 12. Feb 2023, 15:28

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Michael.Narr »

Die user_config.php wird durchlaufen.
Ich bin bei der Fehlerbehebung
Michael

Kostal Plenticore 10, Shelly 3EM
geplant: Wallbox und DIY Akku

Michael.Narr
Beiträge: 6
Registriert: So 12. Feb 2023, 15:28

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Michael.Narr »

Ich brauche doch noch Hilfe:
Gut läuft: user_device.php wird durchlaufen.
Grundsätzlich können Daten in die InfluxDB geschrieben werden und in Grafana genutzt werden.

Nicht geht:
Wenn über ZusatzQuerry alle geplanten Daten (ca. 11 Stück) in die DB eingetragen werden sollen, wird die DB nicht geschrieben.
Ein Test mit den 3 Temperaturen ist erfolgreich.

Hier die Fehlermeldung im LOG

Code: Alles auswählen

26.02. 19:15:22    -Daten => [ Array
(
    [zentralerTimestamp] => 1677435311
    [Type] => SHUNI-1
    [Firmware] => 20221027-121732/v1.12.1-ga9117d3
    [OK] => 0
    [ZusatzQuery] => SH_UNI Externer_sensor=C,Analogeingang=0.08 1677435301
SH_UNI_DI Digitaleingang_1=0,Digitaleingang_2=0 1677435301
SH_UNI_Ausgang Ausgang_1=1,Ausgang_2= 1677435301
SH_UNI_TEMP Temperatur_1=41.81,Temperatur_2=26.94,Temperatur_3=40.69 1677435301
    [Produkt] => Shelly UNI
    [Regler] => 1000
    [Objekt] => Shelly UNI
    [Timestamp] => 1677435317
    [Monat] => 2
    [Woche] => 08
    [Wochentag] => Sonntag
    [Datum] => 26.02.2023
    [Uhrzeit] => 19:15:17
    [InfluxAdresse] => 
    [InfluxPort] => 8086
    [InfluxUser] => 
    [InfluxPassword] => 
    [InfluxDBName] => solaranzeige
    [InfluxDaylight] => 
    [InfluxDBLokal] => shellyuni
    [InfluxSSL] => 
    [Demodaten] => 
)
 ]
26.02. 19:15:22    -Daten nicht zur lokalen InfluxDB gesendet! info: array (
Der entsprechende Teil in user_config.php sieht so aus:

Code: Alles auswählen

//****************************************************************************/
// Aufbereiten Query zum Speichern der Daten
// ***************************************************************************

$aktuelleDaten["ZusatzQuery"] = "SH_UNI ";
$aktuelleDaten["ZusatzQuery"] .= "Externer_sensor=".$UNI_Daten["Externer_sensor"];
$aktuelleDaten["ZusatzQuery"] .= ",Analogeingang=".$UNI_Daten["Analogeingang"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
$aktuelleDaten["ZusatzQuery"] .= "SH_UNI_DI ";
$aktuelleDaten["ZusatzQuery"] .= "Digitaleingang_1=".$UNI_Daten["Digitaleingang_1"];
$aktuelleDaten["ZusatzQuery"] .= ",Digitaleingang_2=".$UNI_Daten["Digitaleingang_2"];
//$aktuelleDaten["ZusatzQuery"] .= ",Digitaleingang_1_Event=".$UNI_Daten["Digitaleingang_1_Event"];
//$aktuelleDaten["ZusatzQuery"] .= ",Digitaleingang_2_Event=".$UNI_Daten["Digitaleingang_2_Event"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
$aktuelleDaten["ZusatzQuery"] .= "SH_UNI_Ausgang ";
$aktuelleDaten["ZusatzQuery"] .= "Ausgang_1=".$UNI_Daten["Ausgang_1"];
$aktuelleDaten["ZusatzQuery"] .= ",Ausgang_2=".$UNI_Daten["Ausgang_2"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
$aktuelleDaten["ZusatzQuery"] .= "SH_UNI_TEMP ";
$aktuelleDaten["ZusatzQuery"] .= "Temperatur_1=".$UNI_Daten["Temperatur_1"];
$aktuelleDaten["ZusatzQuery"] .= ",Temperatur_2=".$UNI_Daten["Temperatur_2"];
$aktuelleDaten["ZusatzQuery"] .= ",Temperatur_3=".$UNI_Daten["Temperatur_3"];
//$aktuelleDaten["ZusatzQuery"] .= ",Luftfeuchtigkeit=".$UNI_Daten["Luftfeuchtigkeit"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];

 
Ich hatte zu Beginn versucht, alle Daten in ein Measurement zu packen. Das ging auch nicht.

Wer kann helfen?? Bitte!!
Michael

Kostal Plenticore 10, Shelly 3EM
geplant: Wallbox und DIY Akku

Benutzeravatar
Ulrich
Administrator
Beiträge: 5526
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 155 Mal
Danksagung erhalten: 884 Mal
Kontaktdaten:

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Ulrich »

Du musst bei den Werten zwischen Text und reinen Zahlen unterscheiden.

Zahl=2.34, Text="das ist ein Text", Zahl1=200,Text1="noch ein Text" usw.

In der Zusatzquery muss alles was Text ist in Gänsefüßchen eingeschlossen werden, damit Influx das als Text erkennt.
Leider gibt die Influx Datenbank keinen Hinweis auf den Fehler, sondern speichert ihn einfach nicht ab.

Man kann alles als Text abspeichern, nur umgekehrt geht das nicht. Zahl="200" würde gehen. Zahl=4C00 geht nicht.

Externer_sensor=C => falsch

Externer_sensor="C" => richtig
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Michael.Narr
Beiträge: 6
Registriert: So 12. Feb 2023, 15:28

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Michael.Narr »

Danke für die Hilfe Ulrich.
Es gab noch ein weiteres Problem: Nicht alle Variablen vom Shelly UNI haben einen Wert. Einige kommen mit NULL bzw. "" daher. Das ist erledigt.

Aber die Anführungszeichen habe ich nicht so hinbekommen, dass die InfluxDB auch zufrieden ist.

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"] = "SH_UNI ";
$aktuelleDaten["ZusatzQuery"] .= "Externer_sensor="."'".$UNI_Daten["Externer_sensor"]."'";
$aktuelleDaten["ZusatzQuery"] .= ",Analogeingang=".$UNI_Daten["Analogeingang"];
$aktuelleDaten["ZusatzQuery"] .= ",Digitaleingang_1=".$UNI_Daten["Digitaleingang_1"];


Die Anführungszeichen bei Externer_sensor sind " ' " - Doppel +Einfach + Doppelt.

Das Ergebnis sieht eigentlich gut aus, aber klappt nicht.

Code: Alles auswählen

    [ZusatzQuery] => SH_UNI Externer_sensor='C',Analogeingang=0,Digitaleingang_1=0,Digitaleingang_2=0,Digitaleingang_1_Event=0,Digitaleingang_2_Event=0,Ausgang_1=0,Ausgang_2=0,Temperatur_1=42.12,Temperatur_2=29.44,Temperatur_3=41.25 1677520441
    [Produkt] => Shelly UNI
Wie sieht die Lösung aus??
Michael

Kostal Plenticore 10, Shelly 3EM
geplant: Wallbox und DIY Akku

Benutzeravatar
Ulrich
Administrator
Beiträge: 5526
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 155 Mal
Danksagung erhalten: 884 Mal
Kontaktdaten:

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Ulrich »

So:

$aktuelleDaten["ZusatzQuery"] .= "Externer_sensor=\"".$UNI_Daten['Externer_sensor']."\"";
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Michael.Narr
Beiträge: 6
Registriert: So 12. Feb 2023, 15:28

Re: neuer Regler erstellt: Shelly UNI

Beitrag von Michael.Narr »

So hat das gut funktionier. Vielen dank für die Hilfe.

Ich habe die user_device.php mal angehängt.
Als Reglernummer habe ich 1000 verwendet.
Dateianhänge
user_device.php
(11.68 KiB) 95-mal heruntergeladen
Michael

Kostal Plenticore 10, Shelly 3EM
geplant: Wallbox und DIY Akku

Antworten

Zurück zu „Regler, Wallboxen und Wechselrichter“