Hallo Zusammen
ich ergänze mal diesen Thread um ein Adruino-script für einen ISKRA MT175 - und ein script für 2x ISKRA 175 (ich habe Wärmepumpe und Normalstrom über getrennte Zähler).
Die Zähler habe ich vor ca. 1,5 Jahren bekommen... und jetzt endlich habe ich es zum laufen gebracht (Corona sei dank...)
Die Scripte sprechen "Binäres" SML so wie hier beschrieben.
Ich empfehle auch diesen Blog-Eintrag zu lesen: Schattenseite.de
Die Scripte kann man leicht auf andere Zähler anpassen - man muss nur die richtigen Stellen im SML Telegram finden.
Der MT175 kann "Server-ID" (aka Seriennummer), Gesammtzähler, Zähler Tarif 1, Zähler Tarif 2, Gesamtwirkleistung, Leisting L1, L2 und L3.
Ich habe aber nur dem Gesamtzähler und die Gesamtwirkleistung ausgegeben. Der Code für die restlichen Werte ist aber auch vorhanden.
Wenn Ihr den Code auf andere Zähler anpassen wollt müsst ihr:
Mehr fällt mir erstmal nicht ein.
Vielleicht starten wir hier eine Sammlung der "An welcher Stelle ist welcher Wert im SML telegram" für andere Reader?
Der Code ist nicht schön - aber funktioniert. Danke auch an Lapheus (da habe ich mir ein bisschen Code geklaut).
Ich bin für Feedback immer offen :-)
Gruß
Thorsten
ich ergänze mal diesen Thread um ein Adruino-script für einen ISKRA MT175 - und ein script für 2x ISKRA 175 (ich habe Wärmepumpe und Normalstrom über getrennte Zähler).
Die Zähler habe ich vor ca. 1,5 Jahren bekommen... und jetzt endlich habe ich es zum laufen gebracht (Corona sei dank...)
Die Scripte sprechen "Binäres" SML so wie hier beschrieben.
Ich empfehle auch diesen Blog-Eintrag zu lesen: Schattenseite.de
Die Scripte kann man leicht auf andere Zähler anpassen - man muss nur die richtigen Stellen im SML Telegram finden.
Der MT175 kann "Server-ID" (aka Seriennummer), Gesammtzähler, Zähler Tarif 1, Zähler Tarif 2, Gesamtwirkleistung, Leisting L1, L2 und L3.
Ich habe aber nur dem Gesamtzähler und die Gesamtwirkleistung ausgegeben. Der Code für die restlichen Werte ist aber auch vorhanden.
Wenn Ihr den Code auf andere Zähler anpassen wollt müsst ihr:
- die Gesamtlänge eines Telegramms ermitteln - da ich alle telegramme mit anderer Länge einfach verwerfe: if (nextBufferPosition != 384) {
- die Stelle der Werte im Buffer anpassen (am besten einmal einen buffer herausschreiben, abzählen, ...)
- anpassen wie oft ihr die aktuelle Leistung übermitteln wollt (wird aber nur übermittelt wenn sich der Wert "signifikant" ändert
Derzeit wird alle 10 sekunden geprüft:
#define KNX_SEND_INTERVAL_LEISTUNG 10000 // alle 10 sekunden die Leistung prüfen/ausgeben bei veränderung
und neu bei einem Wert der 100 Watt höher oder niedriger als der vorherige Wert war:
if (Leistungresult > altLeistungresult+100 || Leistungresult+100 < altLeistungresult) {
(anpassen sollte selbsterklärend sein).
- der Zählerstand wird übermittelt wenn der Timer abgelaufen ist (30 minuten) oder der Zählerstand um einen "0,1" schritt hochgegangen ist:
if (Zaehlerstand > (altZaehlerstand+1000) || millis() - sendTimeZaehlerstand1 > KNX_SEND_INTERVAL_MS_ZAEHLER ) {
Wer nur ganze Zählerstände übermitteln will muss +1000 durch +10000 ersetzen.
Mehr fällt mir erstmal nicht ein.
Vielleicht starten wir hier eine Sammlung der "An welcher Stelle ist welcher Wert im SML telegram" für andere Reader?
Der Code ist nicht schön - aber funktioniert. Danke auch an Lapheus (da habe ich mir ein bisschen Code geklaut).
Ich bin für Feedback immer offen :-)
Gruß
Thorsten
Kommentar