Hi zusammen,
ich würde gerne per Tasmota einen MBus-Wärmemengenzähler (Engelmann SensoStar A bzw. Kalo kaloUltramax MK bzw. Allmess) auslesen. Im Mikrocontroller-Forum scheinen schon einmal zwei Leute auf Linux-Basis kleine C-Programme geschrieben zu haben, die die Werte dort abfragen:
https://www.mikrocontroller.net/topic/438972#6103099
und
Hallo, hat sich an dieser Front schon was getan ?
ich habe mal mit Tasmota Script im Script versucht die Baudraten umzuschalten.
Der Versuch sieht auf dem Oszi auch nichtmal so übel aus. Aber, funktioniert nicht. Ich vermute ich muss das MBus_test C Programm mal auf einem Rapsberry laufen lassen. Da ist u.a. ja auch die Checksummenberechnung drin.
So als Inspiration hänge ich mal die Script Anfänge an, die Baudratenumschaltung funktioniert, allerdings nicht die Umschaltung 8N1 nach 8E1. Aber es wird in einem Forum beschrieben, das es prinzipiel auch mit 300 Baud mit falscher Parität geht, wenn auch weniger zuverlässig.
Mit sensor53 d1 kann man auch von der Konsole aus im Tasmota den RAW-Debug mode einschalten. Aber auch schon auf dem Oszi zeigen sich keine Antworten.
>D
res=0
scnt=0
>B
=>sensor53 r
>F
;count 100ms
scnt+=1
switch scnt
;6mal 100ms nach start
case 6
;set sml driver to 300 baud & jede Menge 55h
;res=sml(1 0 300)
res=sml(1 1 "5555555555555555555555555555555555555555555555555555555555555555555555")
;1100ms later > 0x10, 0x5B, address=00, 0x00, 0x16 ist die 81 als Checksumme richtig??
case 11
res=sml(1 0 2400)
res=sml(1 1 "105b00001681")
;Restart sequence after 100x100ms
case 100
; (10s) later > restart sequence
scnt=0
ends
>M 1
+1,3,oE1,0,2400,SML,1