Sonoff-Tasmota
Sonoff-Tasmota copied to clipboard
Order of meter descriptions defines whether meter is (not) working
PROBLEM DESCRIPTION
I have got two meters requiring RX/TX and one meter requiring only RX - all connected at the same time.
Whether SML script works depends on the order of their meter descriptions.
I found one working order - all other orders have at least one meter showing only 0's.
REQUESTED INFORMATION
Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!
- [x] Read the Contributing Guide and Policy and the Code of Conduct
- [x] Searched the problem in issues
- [ ] Searched the problem in the docs
- [ ] Searched the problem in the forum
- [ ] Searched the problem in the chat
- [x] Device used (e.g., Sonoff Basic): ESP-12F in development board
- [ ] Tasmota binary firmware version number used: 12.2.0.2
- [ ] Pre-compiled
- [x] Self-compiled
- [ ] IDE / Compiler used: _____
- [x] Flashing tools used: esptool
- [ ] Provide the output of command:
Backlog Template; Module; GPIO 255
:
Only wokring script:
>D
>B
=>sensor53 r
>M 3
+1,12,o,0,9600,Strom
1,1-0:1.7.0*255(@1,P_in,W,P_in,2
1,1-0:21.7.0*255(@1,L1,W,L1,2
1,1-0:41.7.0*255(@1,L2,W,L2,2
1,1-0:61.7.0*255(@1,L3,W,L3,2
1,1-0:1.8.0*255(@1,E_in,kWh,E_in,3
1,1-0:2.8.0*255(@1,E_out,kWh,E_out,3
1,=h<hr/>
+2,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
2,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
2,F7031Cx06SSss@i0:10,Vorlauftemp.,°C,Temp_Flow,1
2,F7031Cx14SSss@i0:10,Rücklauftemp.,°C,Temp_Return,1
2,F7031Cx26SSss@i0:10,Speichertemp.,°C,Temp_Vessel,1
2,F70308xxxxUUuu@i1:0.1,Messwertm3-h,l/h,Metric_M3H,0
2,F70304UUuu@i2:1,StellsignalRk1,%,CtrlSig_RK1,0
2,=h<hr/>
+3,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
3,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
3,3F10x29xx0044kstr@i0:100,Volumenstrom,m³,Volume,2
3,3F10x08xx0056kstr@i0:100,Vorlauftemp.,°C,PreTemp,2
3,3F10x15xx0057kstr@i0:100,Rücklauftemp.,°C,AftTemp,2
3,3F10x22xx004Akstr@i0:1,Fließgeschw.,l/h,Flow,0
#
- [ ] If using rules, provide the output of this command:
Backlog Rule1; Rule2; Rule3
:
Rules output here:
- [ ] Provide the output of this command:
Status 0
:
STATUS 0 output here:
- [ ] Provide the output of the Console log output when you experience your issue; if applicable:
(Please use
weblog 4
for more debug information)
Console output here:
TO REPRODUCE
- Flash Tasmota
- Configure & activate script
- Notice all meters are working
- Change order of meter descriptions
- Notice some non-working meters
EXPECTED BEHAVIOUR
All meters are working no matter in which order they appear in the script.
SCREENSHOTS
If applicable, add screenshots to help explain your problem.
ADDITIONAL CONTEXT
Add any other context about the problem here.
(Please, remember to close the issue when the problem has been addressed)
Some examples:
Meter 1 (Kamstrup) delivers no values
>D
>B
=>sensor53 r
>M 3
+1,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
1,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
+2,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
2,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
+3,12,o,0,9600,Strom
3,1-0:1.7.0*255(@1,P_in,W,P_in,2
#
Meter 1 (Kamstrup) delivers no values
>D
>B
=>sensor53 r
>M 3
+1,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
1,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
+2,12,o,0,9600,Strom
2,1-0:1.7.0*255(@1,P_in,W,P_in,2
+3,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
3,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
#
Meter 2 (Kamstrup) delivers no values
>D
>B
=>sensor53 r
>M 3
+1,12,o,0,9600,Strom
1,1-0:1.7.0*255(@1,P_in,W,P_in,2
+2,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
2,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
+3,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
3,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
#
Meter 2 (Kamstrup) delivers no values
>D
>B
=>sensor53 r
>M 3
+1,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
1,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
+2,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
2,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
+3,12,o,0,9600,Strom
3,1-0:1.7.0*255(@1,P_in,W,P_in,2
#
Meter 1 (ModBus) delivers no values
>D
>B
=>sensor53 r
>M 3
+1,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
1,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
+2,12,o,0,9600,Strom
2,1-0:1.7.0*255(@1,P_in,W,P_in,2
+3,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
3,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
#
All meters working (different configuration from above)
>D
>B
=>sensor53 r
>M 3
+1,12,o,0,9600,Strom
1,1-0:1.7.0*255(@1,P_in,W,P_in,2
+2,4,m,0,19200,SekHK,2,5,rF7030009000E,rF703001C0004,F703006A
2,F7031CSSss@i0:10,Außentemp.,°C,Temp_Outside,1
+3,14,kN2,0,1200,PriHK,13,10,3F1005003C00560057004A0044
3,3F10003Ckstr@i0:1000,Wärmemenge,MWh,HeatEnergyE1,3
#
At first I thought it's the fault of Kamstrup protocol but second last example shows ModBus is also affected.
you are on an esp8266 and thus use all channels in software serial mode this will not work. software serial blocks when sending and so prevents any receiving (no full duplex) if is also critical to use higher baudrates.
esp32 has 3 hardware serial UARTS and thus should work without issues
But there are two working configurations. And whether it works or not only depends on the order of meter descriptions - there is no reconfiguration on the hardware side.
I documented one working configuration here.