Diese Temperatur und Luftfeuchtemesser sind schon etwas besonderes in der Funktion.
Die Geräte werden nicht von der Solaranzeige aktiv ausgelesen, sondern die Solaranzeige wartet darauf, dass das Gerät von sich aus die Daten übermittelt. Die Einträge in dem Shelly H&T Gerät sind somit ganz wichtig und nur bei den H&T Geräten einzugeben!.
Normalerweise wird er mit einer speziellen 3 Volt Batterie betrieben, sendet dann aber nur sehr selten Daten. Alle 12 Stunden einmal und bei Temperaturänderung von 1 Grad und Luftfeuchteänderung von 5%. (Shelly H&T) Dafür soll die Batterie 18 Monate halten. Ich habe die Luftfeuchteänderung auf 3% herabgesetzt. Dann läuft die Datenübertragung im Außenbereich recht gut. Das muss man aber selber ausprobieren.
Es gibt aber auch ein optionales Netzteil. Dann sendet der Fühler alle 10 Minuten die Werte, oder öfter.
Das Gerät kann mit der originalen Firmware ausgelesen werden. Die Cloud und MQTT können deaktiviert sein.
Folgende Einstellungen müssen in der Shelly Konfigurationssoftware gemacht werden: (Die IP-Adresse ist die vom Raspberry Pi. Sie sollte eine feste IP Adresse sein) Siehe Bild!
http://<IP-des-Raspberry>/shellyinput.php Erst, wenn der Fühler Daten sendet, kann man in der Datenbank etwas sehen. Also Geduld. In der LOG Datei "/var/www/log/solaranzeige.log" sieht man dann auch einen Eintrag. Der Eintrag beginnt mit "H&T-"
Möchte man mehrere Shelly H&T auslesen, wird nur eine use.config.php benötigt! Damit können so viele Shelly H&T ausgelesen werden, wie nötig. Sie müssen aber alle, so wie hier beschrieben, konfiguriert werden. Die Datenbank ist "solaranzeige" und das Measurement ist der Text aus der H&T Konfiguration unter ID. Normalerweise "plusht" Wie man beides ändern kann, steht weiter unten.
In der Datenbank "solaranzeige" erscheint dann ein neues Measurement mit dem Namen der Shelly-ID. Z.B. "shellyht032664" Dort hinein werden die Daten gespeichert, wenn der Fühler sie sendet. Es steht auch der Grund in der Datenbank. Möchte man eine andere Datenbank, als die solaranzeige nutzen, dann muss der Name in dem Script "shellyinput.php" am Anfang geändert werden. Der Bindestrich in der Shelly-ID wird entfernt, da in einem Measurement kein Minuszeichen auftauchen darf.
periodic = Die Zeit ist abgelaufen
button = Der Knopf im Sensor wurde gedrückt.
poweron = Der Fühler wurde neu gestartet.
sensor = Die Temperaturänderung, bzw. Luftfeuchteänderung war der Grund.
" " = Parameteränderung auf der WEB-Seite
in der user.config.php bitte Regler = 31 und folgendes eintragen:
Code: Alles auswählen
// 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 = "0";
$WR_Adresse = "0"; // Achtung Adresse als Dezimalzahl eingeben / 1 bis 256
// Maximal "256" = Hex FF
/*****************************************************************************/
Möchte man die Datenbank oder das Measurement ändern, in das die hier empfangenen daten gespeichert werden sollen, dann bitte die Datei /var/www/html/shellyinput.php mit einem Editor ändern:
Code: Alles auswählen
// Es dient dem Auslesen von Shelly H&T Sensoren mit WLAN Schnittstelle
// die sich sporadisch selber melden.
/********************************************************************************
// Tracelevel:
// 0 = keine LOG Meldungen
// 1 bis 9 (normal ist 7)
// 10 = Debugging
//
// Die Shelly Geräte senden unterschiedliche Daten:
// -------------------------------------------------
// $_GET["hum"]
// $_GET["temp"]
// $_GET["id"]
//
// $_SERVER["REMOTE_ADDR"]
// $_SERVER["REMOTE_USER"]
//
// Hier kann die Datenbank und das Measurement geändert werden.
// $Datenbankname = "solaranzeige";
// $Tabelle = "shellyH&T";
********************************************************************************/
$Tracelevel = 7;
$DatenbanknameNeu = "";
$MeasurementNeu = "";
/*******************************************************************************/
$DatenbanknameNeu = "shelly";
$MeasurementNeu = "shellyH&T";
Die Datenbank muss vorher in der InfluxDB erst angelegt werden. Die Datenbank heißt "solaranzeige" wenn sie nicht geändert wird.
Wenn man ständig nur die Temperatur messen möchte, ist der Shelly Plus 1 mit AddOn die bessere Wahl. Dort wird minütlich die Temperatur ausgelesen und das Gerät braucht keine Batterie, sondern hängt am Netz.
In der /var/www/log/solaranzeige.log muss dieser Text jede Minute zu finden sein:
-----------------------------------------------------------------------
Code: Alles auswählen
05.03. 08:36:11 |-------------------- Start shelly.php ------------------.
05.03. 08:36:11 H&T-Es handelt sich um einen Shelly H&T, der nur sporadisch über den Script shellyinput.php Daten meldet.
05.03. 08:36:11 |-------------------- Stop shelly.php ------------------.