MQTTDevice mit Anbindung an den
TCP Server liegt auf github.
Wichtig: Fixed Json6 mqtthandling für V1.05x - es konnte passieren, dass Aktoren nicht geschaltet werden konnten (DeserializationError)
Nachtrag: die Funktion TCP Server ist eine Option und kann deaktiviert werden (bleiben). Der Tab Chart bleibt dann schlicht leer.
Das Bild zeigt einen Testlauf mit 4l Wasser: (Die Streuung um Zieltemp bitte nicht beachten)
Einmaischen: 60°C (16:26 - 16:34) -> Rast 1: 57°C (16:34 kaltes Wasser beigegeben)
Rast 2: 62°C (16:38 - 16:43) -> Rast 3: 72°C (16:43 - 16:49) -> Kochen (16:49 - 16:57)
Die Einrichtung ist leider etwas aufwendiger
Einrichtung: TCP Server
1. die Datei TCP Server/mqttdevice.php aus den repository auf den raspberrypi ins Verzeichnis iSpindle-srv/web kopieren
2. Datei iSpindle-srv/index.php editieren:
nach Zeile 119 einfügen
Code: Alles auswählen
$chart_filename_14 = get_field_from_sql($conn,$file,"chart_filename_14");
nach Zeile 222 (bzw. dann 223) einfügen
Code: Alles auswählen
<option value="mqttdevice.php"><?php echo $chart_filename_14 ?></option>
3. Datenbank erweitern
Das SQL Query aus TCP Server/MySQL_Update_mqttdevice.sql z.B. über phpmyadmin ausführen
Code: Alles auswählen
INSERT INTO `Strings` (`File`, `Field`, `Description_DE`, `Description_EN`) VALUES
('index', 'chart_filename_14', 'MQTTDevice', 'MQTTDevice'),
('mqttdevice', 'first_y', 'Powerlevel', 'Powerlevel'),
('mqttdevice', 'second_y', 'Zieltemperatur', 'Target temperature'),
('mqttdevice', 'timetext', 'Sensor- und Zieltemperatur der letzten', 'Sensor and target temperature of the last '),
('mqttdevice', 'timetext_reset', 'Sensor- und Zieltemperatur seit dem letzten Reset: ', 'Sensor and target temperature since last reset: '),
('mqttdevice', 'x_axis', 'Datum / Uhrzeit', 'Date / Time');
4. common_db_query.php ersetzen
Die Datei iSpindle-Srv\web\include\common_db_query.php umbenennen in ori.common_db_query.php
Danach die Datei TCP Server\common_db_query.php nach iSpindle-Srv\web\include\common_db_query.php kopieren
5. iSpindle-srv neu starten
sudo service ispindle-srv restart
Einrichtung CraftbeerPi3:
Beim CBPI muss nur ein Plugin hinzugefügt werden:
MQTTPub
Das Plugin basiert auf Manuels MQTT Plugin und stellt auf dem mosquitto die Kettles mit der Zieltemperatur bereit.
Bitte mit einem MQTTClient prüfen, ob die Daten vorhanden sind. Bei mir schaut das so aus:
Ich habe 3 Kettles. Wichtig sind die Nummern 1,2 oder 3.
Im MQTTDevice muss nun nur noch unter den Sensoren, Aktoren und Induktion die "richtige" Nummer eingetragen werden. Bei meinem Kettle mit der ID 1 und den Namen Maische & Sud muss die 1 bei dem zugehörigem Sensor am Kochtopf
und beim Induktionskochfeld im WebIf eingetragen werden. Unter den misc Settings im Tab System muss die IP TCP Server und der Port (9501) eingetragen und der TCP Server aktiviert werden.
Wenn das alles geklappt habt, seht ihr im TCP Server den neuen Eintrag MQTTDevice
Jetzt muss die iSpindle (Temperatursensor vom MQTTDevice) zwingend kalibriert werden. Ich habe für die 3 Parameter 0 eingetragen und abgespeichert. Wenn Ihr mehr als einen Sensor konfiguriert habt (also auch 2 oder mehr Kettles habt) dann muss die Kalibrierung für jeden Temperatursensor ausgeführt werden. Das Kalibrieren klingt für einen Sensor unsinnig, aber der TCP Server von Tozzi & co ist für die iSpindle.
Ich hoffe, ich hab nix vergessen
An der Stelle ein Danke@Tozzi für Tipps und Hinweise beim TCP Server
Nachtrag: Reset beim Start Brautag
Um an einem Brautag nur "neue" Daten zu sehen, muss man für jeden Sensor folgende URL aufrufen:
http://<ip raspberrypi>/iSpindle/reset_now.php?name=<Sensorname>&days=12&recipe=<Rezeptname>
Dabei sind die Vars ip raspberrypi, Sensorname und Rezeptname zu ersetzen, also z.B.
http:// ... /iSpindle/reset_now.php?name=Temp_Induktion&days=1&recipe=Muenchner_Hell
Innu