Old version with non-working Camera photo download

This commit is contained in:
2025-10-06 18:33:41 +02:00
parent d46c1a3f0c
commit 7fa666bcd4
119 changed files with 9673 additions and 0 deletions

View File

@@ -0,0 +1,506 @@
package com.haussteuerung;
import static java.nio.charset.StandardCharsets.UTF_8;
import android.util.Log;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.eclipse.paho.android.service.MqttAndroidClient;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import java.util.ArrayList;
import java.util.Arrays;
import javax.net.ssl.SSLSocketFactory;
public class MqttClient {
static org.eclipse.paho.client.mqttv3.MqttClient client = null;
static boolean connSuccess = false;
static String logContent = "";
static String tv_Zustand1 = "", tv_Zustand2 = "", tv_Zustand3 = "", tv_Zustand4 = "", tv_Zustand5 = "", tv_Zustand6 = "";
static String tv_Zustand7 = "", tv_Zustand8 = "", tv_Zustand9 = "", tv_Zustand10 = "", tv_Zustand11 = "", tv_Zustand12 = "";
static String tv_Zustand13 = "", tv_Zustand14 = "", tv_Zustand15 = "", tv_Zustand16 = "", tv_Zustand17 = "", tv_Zustand18 = "";
public static void connect() {
try {
client = new org.eclipse.paho.client.mqttv3.MqttClient(
"wss://mqtt.klebl.info:443",
MainActivity.ID, // ClientId
new MemoryPersistence());
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
Log.d("MQTT connloss", "client lost connection " + cause);
Log.d("MQTT connloss", cause.getMessage());
Log.d("MQTT connless", String.valueOf(client.getDebug()));
Log.d("MQTT connloss", String.valueOf(MqttClient.client.isConnected()));
// MainActivity.tv_mqtt.setTextColor(Color.RED);
// if (!MqttClient.client.isConnected()) {
// try {
// client.reconnect();
// client.subscribe("stat/Haussteuerung/#");
// client.subscribe("fhem/temp/#");
// client.subscribe("fhem/Heizung/#");
// } catch (MqttException e) {
// e.printStackTrace();
// }
// }
// Log.d("MQTT connloss2", String.valueOf(MqttClient.client.isConnected()));
// disconnect();
// Log.d("MQTT connloss", "client disconnected after connection lost");
// connect();
}
@Override
public void messageArrived(String topic, MqttMessage message) {
Log.d("MQTTLOG", topic + ": " + message.toString());
if (topic.equals("stat/Haussteuerung/Alarm")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
if (jsonObject.get("Zustand").getAsString().equals("true")) {
// MainActivity.buttonAlarm.setText(R.string.alarm_ein);
// MainActivity.buttonAlarm.setBackgroundResource(R.drawable.alarm_true);
MainActivity.alarmStatus = true;
} else if (jsonObject.get("Zustand").getAsString().equals("false")) {
// MainActivity.buttonAlarm.setText(R.string.alarm_aus);
// MainActivity.buttonAlarm.setBackgroundResource(R.drawable.alarm_false);
MainActivity.alarmStatus = false;
}
}
if (topic.equals("stat/Haussteuerung/Waschmaschine/WM1")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
if (jsonObject.get("Zustand").getAsString().equals("ein")) {
// MainActivity.tv_WM1.setText(R.string.wm1_laeuft);
MainActivity.wm1Status = true;
} else if (jsonObject.get("Zustand").getAsString().equals("aus")) {
// MainActivity.tv_WM1.setText(R.string.wm1_aus);
MainActivity.wm1Status = false;
}
}
if (topic.equals("stat/Haussteuerung/Waschmaschine/WM2")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
if (jsonObject.get("Zustand").getAsString().equals("ein")) {
// MainActivity.tv_WM2.setText(R.string.wm2_laeuft);
MainActivity.wm2Status = true;
} else if (jsonObject.get("Zustand").getAsString().equals("aus")) {
// MainActivity.tv_WM2.setText(R.string.wm2_aus);
MainActivity.wm2Status = false;
}
}
if (topic.equals("stat/Haussteuerung/Log/List_Log")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
logContent = jsonObject.get("Zustand").getAsString().replace(";", "\n");
}
if (topic.equals("stat/Haussteuerung/Sky")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activitySky.zeitSkyMqtt = jsonObject.get("Datum").getAsString();
activitySky.isChecked = jsonObject.get("CheckboxSky").getAsBoolean();
}
if (topic.equals("stat/Haussteuerung/Waschmaschine/Tom")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activityLicht.nameTom = jsonObject.get("Name").getAsString();
activityLicht.checkedTom = jsonObject.get("Checkbox").getAsBoolean();
}
if (topic.equals("stat/Haussteuerung/Waschmaschine/Flo")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activityLicht.nameFlo = jsonObject.get("Name").getAsString();
activityLicht.checkedFlo = jsonObject.get("Checkbox").getAsBoolean();
}
if (topic.equals("stat/Haussteuerung/Waschmaschine/Stefan")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activityLicht.nameStefan = jsonObject.get("Name").getAsString();
activityLicht.checkedStefan = jsonObject.get("Checkbox").getAsBoolean();
}
if (topic.equals("stat/Haussteuerung/Glocke")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activityLicht.nameGlocke = jsonObject.get("Name").getAsString();
activityLicht.checkedGlocke = jsonObject.get("Checkbox").getAsBoolean();
}
// WEIHNACHTSBELEUCHTUNG
if (topic.equals("tele/sonoff153/STATE")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activityChristmas.power = jsonObject.get("POWER").getAsString();
activityChristmas.hsbColorArray = new ArrayList<>(Arrays.asList(jsonObject.get("HSBColor").getAsString().split(",")));
}
// WEIHNACHTSBELEUCHTUNG
handleLWP(topic, message);
fensterZustaende(topic, message);
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
Log.d("MQTTLOG", "delivery complete " + token);
}
});
} catch (MqttException e) {
e.printStackTrace();
}
MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
mqttConnectOptions.setUserName("steve");
mqttConnectOptions.setPassword("Florian1".toCharArray());
mqttConnectOptions.setAutomaticReconnect(true);
mqttConnectOptions.setCleanSession(false);
mqttConnectOptions.setKeepAliveInterval(15);
mqttConnectOptions.setConnectionTimeout(30);
mqttConnectOptions.setSocketFactory(SSLSocketFactory.getDefault()); // using the default socket factory
try {
client.connect(mqttConnectOptions);
// connSuccess = true;
subscribe("stat/Haussteuerung/#");
subscribe("fhem/temp/#");
subscribe("fhem/Heizung/#");
subscribe("tele/sonoff153/#");
subscribe("growatt/#");
Log.d("MQTTLOG", "client connected");
// MainActivity.tv_mqtt.setTextColor(Color.parseColor("#64DD17"));
} catch (MqttException e) {
e.printStackTrace();
// connSuccess = false;
Log.d("MQTTLOG", "connection failed " + e.getMessage());
// MainActivity.tv_mqtt.setTextColor(Color.RED);
}
}
public static void subscribe(String topic) {
try {
// if (!client.isConnected()) {
// client.reconnect();
// }
client.subscribe(topic);
} catch (MqttException e) {
e.printStackTrace();
}
}
public static void publish(String topic, String message) {
try {
// if (!client.isConnected()) {
// client.reconnect();
// }
client.publish(topic, message.getBytes(UTF_8),2, false);
Log.d("MQTTLOG", "Message" + message + "published.");
} catch (MqttException e) {
e.printStackTrace();
}
}
public static void publish(String topic, String message, int qos, boolean retained) {
try {
// if (!client.isConnected()) {
// client.reconnect();
// }
client.publish(topic, message.getBytes(UTF_8), qos, retained);
Log.d("MQTTLOG", "Message" + message + "published.");
} catch (MqttException e) {
e.printStackTrace();
}
}
public static void disconnect() {
try {
client.disconnect();
} catch (MqttException e) {
e.printStackTrace();
}
// MainActivity.tv_mqtt.setTextColor(Color.RED);
}
private static void handleLWP(String topic, MqttMessage message) {
if (topic.equals("stat/Haussteuerung/LWP/Warmwasser")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
FragmentWW.isCheckedWW1 = jsonObject.get("CheckWW1").getAsBoolean();
FragmentWW.isCheckedWW2 = jsonObject.get("CheckWW2").getAsBoolean();
FragmentWW.isCheckedWW3 = jsonObject.get("CheckWW3").getAsBoolean();
FragmentWW.switchWW1 = jsonObject.get("SilentModeWW1").getAsBoolean();
FragmentWW.switchWW2 = jsonObject.get("SilentModeWW2").getAsBoolean();
FragmentWW.switchWW3 = jsonObject.get("SilentModeWW3").getAsBoolean();
FragmentWW.wwZeit1Mqtt = jsonObject.get("ZeitWW1").getAsString();
FragmentWW.wwZeit2Mqtt = jsonObject.get("ZeitWW2").getAsString();
FragmentWW.wwZeit3Mqtt = jsonObject.get("ZeitWW3").getAsString();
FragmentWW.wwZeit4Mqtt = jsonObject.get("ZeitWW4").getAsString();
FragmentWW.wwZeit5Mqtt = jsonObject.get("ZeitWW5").getAsString();
FragmentWW.wwZeit6Mqtt = jsonObject.get("ZeitWW6").getAsString();
FragmentWW.tempWw1 = jsonObject.get("TempWW1").getAsInt();
FragmentWW.tempWw2 = jsonObject.get("TempWW2").getAsInt();
}
if (topic.equals("stat/Haussteuerung/LWP/Heizung")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
FragmentHeizung.isCheckedHZ1 = jsonObject.get("CheckHZ1").getAsBoolean();
FragmentHeizung.isCheckedHZ2 = jsonObject.get("CheckHZ2").getAsBoolean();
FragmentHeizung.isCheckedHZ3 = jsonObject.get("CheckHZ3").getAsBoolean();
FragmentHeizung.hzZeit1Mqtt = jsonObject.get("ZeitHZ1").getAsString();
FragmentHeizung.hzZeit2Mqtt = jsonObject.get("ZeitHZ2").getAsString();
FragmentHeizung.hzZeit3Mqtt = jsonObject.get("ZeitHZ3").getAsString();
FragmentHeizung.hzZeit4Mqtt = jsonObject.get("ZeitHZ4").getAsString();
FragmentHeizung.hzZeit5Mqtt = jsonObject.get("ZeitHZ5").getAsString();
FragmentHeizung.hzZeit6Mqtt = jsonObject.get("ZeitHZ6").getAsString();
FragmentHeizung.switchHZ1 = jsonObject.get("SilentModeHZ1").getAsBoolean();
FragmentHeizung.switchHZ2 = jsonObject.get("SilentModeHZ2").getAsBoolean();
FragmentHeizung.switchHZ3 = jsonObject.get("SilentModeHZ3").getAsBoolean();
FragmentHeizung.tempHz1 = jsonObject.get("TempHZ1").getAsInt();
FragmentHeizung.tempHz2 = jsonObject.get("TempHZ2").getAsInt();
FragmentHeizung.tempHz3 = jsonObject.get("TempHZ3").getAsInt();
}
if (topic.equals("fhem/temp/Temp_Boiler_oben")) {
FragmentWW.tempBoilerOben = message.toString();
}
if (topic.equals("fhem/temp/Temp_Boiler_unten")) {
FragmentWW.tempBoilerUnten = message.toString();
}
// Grossraum
if (topic.equals("fhem/Heizung/MAX_Grossraum/Mode")) {
FragmentHeizkoerper.modeHKGrossraum = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Grossraum/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKGrossraum = message.toString();
}
if (topic.equals("fhem/temp/Temp_Grossraum")) {
FragmentHeizkoerper.istTempHKGrossraum = message.toString();
}
// Doris
if (topic.equals("fhem/Heizung/MAX_Doris_klein/Mode")) {
FragmentHeizkoerper.modeHKDoris = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Doris_klein/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKDoris = message.toString();
}
if (topic.equals("fhem/temp/Temp_Doris")) {
FragmentHeizkoerper.istTempHKDoris = message.toString();
}
// Doris Bad
if (topic.equals("fhem/Heizung/MAX_Doris_Bad/Mode")) {
FragmentHeizkoerper.modeHKDorisBad = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Doris_Bad/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKDorisBad = message.toString();
}
if (topic.equals("fhem/temp/Temp_DorisBad")) {
FragmentHeizkoerper.istTempHKDorisBad = message.toString();
}
// Arbeitszimmer
if (topic.equals("fhem/Heizung/MAX_Arbeitszimmer/Mode")) {
FragmentHeizkoerper.modeHKArbeitszimmer = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Arbeitszimmer/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKArbeitszimmer = message.toString();
}
if (topic.equals("fhem/temp/Temp_Arbeitszimmer")) {
FragmentHeizkoerper.istTempHKArbeitszimmer = message.toString();
}
// Vorraum
if (topic.equals("fhem/Heizung/MAX_Vorraum/Mode")) {
FragmentHeizkoerper.modeHKVorraum = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Vorraum/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKVorraum = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Vorraum/Temperatur")) {
FragmentHeizkoerper.istTempHKVorraum = message.toString();
}
// WC EG
if (topic.equals("fhem/Heizung/MAX_WC/Mode")) {
FragmentHeizkoerper.modeHKWCEG = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_WC/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKWCEG = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_WC/Temperatur")) {
FragmentHeizkoerper.istTempHKWCEG = message.toString();
}
// Bad
if (topic.equals("fhem/Heizung/MAX_Bad/Mode")) {
FragmentHeizkoerper.modeHKBad = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Bad/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKBad = message.toString();
}
if (topic.equals("fhem/temp/Temp_Bad")) {
FragmentHeizkoerper.istTempHKBad = message.toString();
}
// Florian
if (topic.equals("fhem/Heizung/MAX_Florian/Mode")) {
FragmentHeizkoerper.modeHKFlorian = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Florian/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKFlorian = message.toString();
}
if (topic.equals("fhem/temp/Temp_Flo")) {
FragmentHeizkoerper.istTempHKFlorian = message.toString();
}
// Stefan
if (topic.equals("fhem/Heizung/MAX_Stefan/Mode")) {
FragmentHeizkoerper.modeHKStefan = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Stefan/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKStefan = message.toString();
Log.d("SollTempStefan", message.toString());
}
if (topic.equals("fhem/temp/Temp_Stefan")) {
FragmentHeizkoerper.istTempHKStefan = message.toString();
Log.d("IstTempStefan", message.toString());
}
// Dachboden
if (topic.equals("fhem/Heizung/MAX_Dachboden/Mode")) {
FragmentHeizkoerper.modeHKDachboden = message.toString();
}
if (topic.equals("fhem/Heizung/MAX_Dachboden/Solltemperatur")) {
FragmentHeizkoerper.sollTempHKDachboden = message.toString();
}
if (topic.equals("fhem/temp/Temp_Dachboden")) {
FragmentHeizkoerper.istTempHKDachboden = message.toString();
}
}
public static void fensterZustaende(String topic, MqttMessage message) {
if (topic.equals("stat/Haussteuerung/Fenster/Eingangstuer")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand1 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Garagetuer")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand2 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Kellertuer")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand3 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/TerrassenTuer_Doris")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand4 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/FensterLinks_Doris")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand5 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/FensterRechts_Doris")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand6 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/FensterBad_Doris")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand7 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Tom")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand8 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Wohnzimmer")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand9 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Esszimmer")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand10 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/EssplatzKueche")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand11 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Kueche")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand12 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Garderobe")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand13 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/WC")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand14 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Dachflaechenfenster")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand15 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Flo")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand16 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Stefan")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand17 = jsonObject.get("Zustand").getAsString();
}
if (topic.equals("stat/Haussteuerung/Fenster/Bad")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
tv_Zustand18 = jsonObject.get("Zustand").getAsString();
}
}
}