Comments (13)
Gibt es irgendwelche Gründe warum du "async-mqtt-client" genutzt hast? Ansonsten würde ich die Lib z. B. mit "pubsubclient" austauschen.
Performance Gründe. Und ich finde auch allgemein das Handling mit den Async Bibliotheken einfacher. Auch mit dem Reconnection und Connection Status Handling habe ich bisher mit der async-mqtt-client Bibliothek bessere Erfahrungen gemacht.
from opendtu.
Hmmm, dann müsste ich mir mal vertieft "AsyncTCP_SSL" ansehen....
from opendtu.
So, habe mal ein wenig geforscht. Die von dir verwendete async-mqtt-client Bibliothek (https://github.com/marvinroger/async-mqtt-client.git) hat seit einem Jahr kein update mehr bekommen. Ich habe jetzt https://github.com/bertmelis/espMqttClient genommen. Damit geht auch SSL.
Habe jetzt noch ein letztes Problem mit vue.
Habe enable TLS hinzugefügt:
Man kann jetzt auch das Root CA Certificate hinzufügen:
Allerdings wird die "Textarea" nicht mit dem Zertifikat initialisiert, wenn der Text zu lang ist:
Wenn ich das Zertifikat in defaults.h
"kürze" geht alles.
// ISRG_Root_X1.crt -- Root CA for Letsencrypt
#define MQTT_ROOT_CA_CERT "-----BEGIN CERTIFICATE-----\n" \
"MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw\n" \
"TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n" \
"cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4\n" \
"WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu\n" \
"ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY\n" \
"MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc\n" \
"h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+\n" \
"0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U\n" \
"A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW\n" \
"T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH\n" \
"B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC\n" \
"B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv\n" \
"KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn\n" \
"OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn\n" \
"jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw\n" \
"qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI\n" \
"rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\n" \
"HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq\n" \
"hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL\n" \
"ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ\n" \
"3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK\n" \
"NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5\n" \
"ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur\n" \
"TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC\n" \
"jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc\n" \
"oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq\n" \
"4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA\n" \
"mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d\n" \
"emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=\n" \
"-----END CERTIFICATE-----\n"
Cut & Paste mit Save funktioniert problemlos.
Ich bereite mal ein pull Request vor. Vielleicht fällt dir was auf. Bin für jeden Tip dankbar.
from opendtu.
Hallo @helgeerbe,
danke für den PR. Ich werde versuchen mal am Wochenende drüber zu schauen. Was mir noch nicht ganz klar ist, warum die Partitionsgröße geändert werden muss. aktuell dürften da 280kb frei sein. und wenn ich es richtig überflogen habe darf das zertifikat max 2kb groß sein.
from opendtu.
bzgl. dem nicht-anzeigen des zertifikates... ich würde vermuten, dass ein get request auf /api/mqtt/config auch schon ein leeres element anzeigt.
In der onMqttAdminGet Methode wird auch ein AsyncJsonResponse erzeugt. Dies hat u.a. einen optionalen Parameter maxJsonBufferSize der default auf 1024 eingestellt ist. Mein erster versuch wäre, diesen puffer zu vergrößern.
from opendtu.
Hallo @tbnobody,
du hast recht. Die Partition muss anscheinend nicht vergrößert werden. Habe das auch schon im PR korrigiert. Ich hatte Speicherfehler, die auf fehlenden Speicher hindeuteten und der esp bootete permanent. Aber da hatte ich auch noch mit anderen Bibliotheken experimentiert, möglich dass es auch memory leaks gab.
Den JsonBuffer habe ich schon auf 3072 hochgesetzt.
from opendtu.
Den JsonBuffer habe ich schon auf 3072 hochgesetzt.
Achso, das wusste ich nicht das du das schon getestet hast. Weil im PR ist es ja nicht drin.
from opendtu.
Reden wir über verschiedene Buffer?
Ich habe das hier in WebApi_mqtt.cpp geändert
DynamicJsonDocument root(3072); //TODO check size was 1024 + 2048 for cert
DeserializationError error = deserializeJson(root, json);
from opendtu.
OK, gefunden. Das habe ich übersehen, da der default nicht explizit gesetzt wurde. Werde ich gleich mal testen.
from opendtu.
Ich meinte diese Stelle hier:
Line 54 in 12df602
from opendtu.
Ja, das war der entscheidende Hinweis. Ich habe jetzt überall 3072 eingetragen.
Mein Sender ist auch da und ich kann endlich mal richtig testen.
from opendtu.
MQTT mit TLS funktioniert jetzt soweit. Im Status, wird jetzt auch die CertInfo angezeigt, wenn TLS=true ist.
from opendtu.
Danke für den Hinweis mit der https://github.com/bertmelis/espMqttClient Bibliothek. Ich habe deine commits noch zusammengefasst und die ein oder andere kleine Änderung vorgenommen.
from opendtu.
Related Issues (20)
- Power not set to 0 when not reachable at EOD HOT 4
- v23.10.9: crash after a few days of normal operation HOT 7
- build action fails due to ModuleNotFoundError: No module named 'pkg_resources': HOT 1
- HTTP error upon OTA upgrade HOT 17
- v23.11.15 needs reboot in the morning ,no data HOT 2
- OpenDTU does not wake up from night mode - it keeps in "night mode" HOT 6
- [Request] Set voltage and current for inverter string to 0 over night HOT 2
- Total Yield made available through API should respect/apply negative yield offset HOT 7
- [Request] Allow to configure LWT QoS HOT 7
- Unbekanntes Modell HMT-1800-4T / Hardware Teilenummer
- Gesamtleistung hängt sich auf wenn Umrichter nicht erreichbar HOT 4
- + new mqtt topic [serial]/status/rssi HOT 2
- Selbstständig alles gelöscht HOT 3
- HM-800 verliert Power Limit HOT 3
- Abschaltung abhängig von der DC Eingangsspannung HOT 1
- HMS made for American Market: default of 915MHz instead of 865MHz! HOT 2
- HMS-1600-4T - Geting no data of inverter for AllianceApps OpenDTU Fusion HOT 26
- [Request] Add "General topics" and "Inverter total topics" values to Home Assistant MQTT Auto Discovery HOT 2
- In battery mode daily counter won't reset HOT 5
- Firmwar update Probleme HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opendtu.